Wiktionary zhwiktionary https://zh.wiktionary.org/wiki/Wiktionary:%E9%A6%96%E9%A1%B5 MediaWiki 1.47.0-wmf.2 case-sensitive Media Special Talk User User talk Wiktionary Wiktionary talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Appendix Appendix talk Transwiki Transwiki talk Rhymes Rhymes talk Thesaurus Thesaurus talk Citations Citations talk Reconstruction Reconstruction talk TimedText TimedText talk Module Module talk Event Event talk 美國 0 847 9759692 9067437 2026-05-15T00:35:04Z TongcyDai 53191 9759692 wikitext text/x-wiki ==漢語== {{zh-forms|s=美国}} {{zh-wp|zh|yue|lzh|gan|hak|cdo|nan:Bí-kok|wuu}} ===詞源=== 來自{{zh-m|美|Měi|note={{zh-l|亞美利加}}的簡稱,來自{{der|zh|en|America}}}} + {{zh-l|國}}。 ===發音=== {{zh-pron |m=Měiguó |ma=LL-Q9192 (cmn)-Luilui6666-美国.wav |dg=Мый2гуй1/Мый2гуә1 |c=mei5 gwok3 |ca=LL-Q9186 (yue)-Jonashtand-美國.wav |c-t=mei4 gok2 |h=pfs=Mî-koet;gd=mi1 guêd5 |mb=Mĭ-gŏ |md=Mī-guók |mn=Bí-kok |mn-t=mui2 gog4 |px=pt,xy:bi3 gorh6 |w=sh:5me koq |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{senseid|zh|Q30}}{{place|zh|國家|cont/北美洲}} #: {{zh-x|^美國 ^權利.^法案|}} #: {{zh-x|我 第 一 次 申請 ^美國 旅遊 簽證 被 拒簽 了。|}} #: {{zh-x|^美國 ^北 ^佛羅里達 ^大學 宣布 關閉 ^孔子.^學院。|}} #: {{zh-x|在 2{èr}0{shí} 世紀 6{liù}0{shí} 年代,^美國 人工.智能 出現 了 爆發性 的 發展。|}} ====同義詞==== {{syn-saurus|zh|美國}} {{zh-dial}} ====衍生詞==== {{col3|zh|美國人|美國英語|美國化|美國佬|美國夢|美國內戰|美國資訊交換標準代碼|美國信息交換標準代碼|美國仙丹|美國塗豆|美國時間|美國民權聯盟|美股}} ====派生詞==== {{CJKV|||미국|Mĩ Quốc}} '''其他''': * {{desc|bor=1|za|Meijgoz}} ====翻譯==== {{trans-top|北美洲國家}} <!--不收全稱--> * 阿拉伯语:{{t+|ar|الْوِلَايَاتُ الْمُتَّحِدَة|f-p}}、{{t+|ar|أَمْرِيكَا|f}}、{{t|ar|أَمِيرِكَا|f|tr=ʾamērikā}}、{{t|ar|أَمْرِيكَة|f}} * 亚美尼亚语:{{t|hy|Միացյալ Նահանգներ}}、{{t+|hy|Ամերիկա}} * 阿斯图里亚斯语:{{t+|ast|Estaos Uníos|m-p}} * 阿塞拜疆语:{{t+|az|Amerika}} * 白俄罗斯语:{{t|be|Злу́чаныя Шта́ты|m-p}}、{{t|be|ЗША|m-p}}、{{t|be|Аме́рыка|f}} * 孟加拉语:{{t|bn|যুক্তরাষ্ট্র}}、{{t|bn|আমেরিকা}} * 布列塔尼语:{{t+|br|Stadoù-Unanet|p}} * 保加利亚语:{{t|bg|Съедине́ните ща́ти|m-p}}、{{t|bg|Аме́рика|f}} * 缅甸语:{{t|my|အမေရိက}} * 加泰罗尼亚语:{{t+|ca|Estats Units|m-p}} * 查莫罗语:{{t|ch|Estados Unidos}} * 切罗基语:{{t|chr|ᎠᎹᏰᏟ}} * 科西嘉语:{{t|co|Stati Uniti|m-p}} * 捷克语:{{t+|cs|Spojené státy|m-p}} * 丹麦语:{{t|da|De Forenede Stater|c-p}} * 荷兰语:{{t+|nl|Verenigde Staten|m-p}} * 宗喀语:{{t|dz|ཨ་མི་རི་ཀ}} * 英語:{{t+|en|United States}}、{{t+|en|America}} * 世界语:{{t+|eo|Usono|s}} * 爱沙尼亚语:{{t|et|Ühendriigid|p}} * 芬兰语:{{t+|fi|Yhdysvallat|p}} * 法语:{{t+|fr|États-Unis|m-p}} * 加利西亚语:{{t+|gl|Estados Unidos|m-p}} * 格鲁吉亚语:{{t|ka|შეერთებული შტატები}}、{{t+|ka|აშშ}}、{{t|ka|ამერიკა}} * 德语:{{t+|de|Vereinigte Staaten|p}}、{{t+|de|Amerika|n}} * 希腊语:{{t+|el|Ηνωμένες Πολιτείες|f-p}} * 海地克里奥尔语:{{t|ht|Etazini}}、{{qualifier|到/在美國}} {{t|ht|Ozetazini}} * 希伯来语:{{t+|he|אַרְצוֹת הַבְּרִית|f-p|tr=artsot ha-brit}} * 印地语:{{t+|hi|अमेरिका|m}} * 匈牙利语:{{t+|hu|Egyesült Államok}} * 冰岛语:{{t+|is|Bandaríkin|n-p}} * 印尼语:{{t+|id|Amerika Serikat}}、{{t+|id|Amerika}} * 因特语:{{t+|ia|Statos Unite}} * 伊努皮亚克语:{{t|ik|Tannapta nunaŋat}} * 爱尔兰语:{{t|ga|Stáit Aontaithe|m-p}} * 意大利语:{{t+|it|Stati Uniti|m-p}} * 日语:{{t+|ja|合衆国|tr=がっしゅうこく, Gasshūkoku}}、{{t+|ja|米国|tr=べいこく, Beikoku}}、{{t+|ja|アメリカ|tr=Amerika}} * 嘉萊語: {{t|jra|čar Mi}} * 高棉语:{{t+|km|សហរដ្ឋអាមេរិក}}、{{t|km|សហរដ្ឋ}} * 朝鲜语:{{t+|ko|^미국(美國)}}、{{t+|ko|^아메리카}}、{{t|ko|^미합중국(美合衆國)}} * 库尔德语: *: 北库尔德语:{{t|kmr|Ameriqayê Yekbûyî}} * 拉科塔语:{{t|lkt|Mílahaŋska Tȟamákȟočhe|lit=長刀之地}} * 老挝语:{{t|lo|ສະຫະລັດອະເມລິກາ}}、{{t|lo|ອະເມລິກາ}}、{{t|lo|ອາເມລິກາ}} * 拉脱维亚语:{{t|lv|Savienotās Valstis|f-p}} * 立陶宛语:{{t|lt|Jungtinės Valstijos|m-p}} * 马其顿语:{{t|mk|Соединети Држави|f-p}} * 马来语:{{t+|ms|Amerika Syarikat}} * 蒙古语: *: 西里尔字母:{{t|mn|Америк}} * 诺曼语:{{t|nrf|Êtats Unnis|m-p}} * 挪威语: *: 书面挪威语:{{t|nb|De forente stater|m-p}} *: 新挪威语:{{t|nn|Sambandsstatane|m-p}} * 奥克语:{{t+|oc|Estats Units|m-p}} * 奥里亚语:{{t+|or|ଯୁକ୍ତରାଜ୍ୟ}} * 波斯语:{{t+|fa|ایالات متحده|tr=ayâlât-e motahideh}}、{{t+|fa|اتازونی|tr=etâzuni}} {{qualifier|过时}}、{{t+|fa|آمریکا|tr=âmrikâ}} * 波兰语:{{t+|pl|Stany Zjednoczone|m-in-p}} * 葡萄牙语:{{t+|pt|Estados Unidos|m-p}} * 罗马尼亚语:{{t|ro|Statele Unite|f-p}} * 俄语:{{t+|ru|Соединённые Шта́ты|m-p}}、{{t+|ru|Аме́рика|f}} * 梵语:{{t|sa|संयुक्तराज्यानि}} * 撒丁语:{{t|sc|Istados Unidos|m-p}} * 塞尔维亚-克罗地亚语: *: 西里尔字母:{{t|sh|Амѐрика|f}}、{{t|sh|САД|f-p}} *: 罗马字母:{{t+|sh|Amèrika}}、{{t|sh|SAD|f-p}} * 僧伽罗语:{{t|si|ඇමරිකාව}} * 斯洛伐克语:{{t|sk|Spojené štáty|m-p}} * 斯洛文尼亚语:{{t|sl|Združene države|m-p}} * 西班牙语:{{t+|es|Estados Unidos|m-p}} * 瑞典语:{{t+|sv|Förenta staterna|n}} * 他加禄语:{{t+|tl|Estados Unidos}}、{{t+|tl|Amerika}} * 泰卢固语:{{t+|te|సంయుక్త రాష్ట్రాలు}} * 泰语:{{t+|th|สหรัฐอเมริกา}}、{{t+|th|สหรัฐฯ}}、{{t+|th|อเมริกา}} * 提格里尼亚语:{{t|ti|ሕቡራት መንግስታት}} * 土耳其语:{{t+|tr|Birleşik Devletler}} * 乌克兰语:{{t|uk|Сполу́чені Шта́ти|m-p}}、{{t|uk|Аме́рика|f}} * 越南语:{{t+|vi|Hoa Kỳ}}、{{t|vi|nước Mỹ}}、{{t|vi|Mỹ Quốc}} * 威尔士语:{{t+|cy|Unol Daleithiau|f-p}} * 西弗里斯兰语:{{t|fy|Feriene Steaten|m-p}} * 意第绪语:{{t|yi|פֿאַראייניקטע שטאַטן|p}}、{{t|yi|אַמעריקע|n}}、{{t|yi|פֿש״אַ}} * 中阿拉斯加尤皮克语:{{t|esu|United States}} {{trans-bottom}} {{trans-top|部分語言中的縮寫}} <!--簡化成類似“亞美利加”、“聯合國家”的,請放上一章節--> * 南非语:{{t+|af|VSA}}、{{t|af|USA}} * 阿尔巴尼亚语:{{t+|sq|SHBA|p}} * 亚美尼亚语:{{t+|hy|ԱՄՆ}} * 阿塞拜疆语:{{t+|az|ABŞ}} * 巴什基尔语:{{t|ba|АҠШ}} * 白俄罗斯语:{{t|be|ЗША|m-p}} * 保加利亚语:{{t|bg|САЩ|m-p}} * 加泰罗尼亚语:{{t+|ca|EUA|m-p}} * 捷克语:{{t|cs|SSA|p}}、{{t+|cs|USA|p}} * 丹麦语:{{t+|da|USA}} * 荷兰语:{{t+|nl|VS}}、{{t+|nl|VSA}} {{qualifier|罕用}} * 爱沙尼亚语:{{t+|et|USA}} * 芬兰语:{{t+|fi|USA}} * 法语:{{t|fr|ÉUA|m-p}}、{{t+|fr|É.-U.|m-p}} * 格鲁吉亚语:{{t+|ka|აშშ}} * 德语:{{t+|de|USA|p}} * 希腊语:{{t+|el|ΗΠΑ|f-p}} * 匈牙利语:{{t+|hu|USA}}、{{t+|hu|AEÁ}} * 冰岛语:{{t+|is|BNA|f-p}} * 伊多语:{{t+|io|Usa}} * 爱尔兰语:{{t|ga|SAM}} * 意大利语:{{t|it|U.S.A.|m-p}} * 日语:{{t+|ja|米|tr=べい, Bei}} {{qualifier|用作組詞}}、{{t|ja|ユー・エス・エー|tr=Yū-Esu-Ē}} * 哈萨克语:{{t|kk|АҚШ}} * 高棉语:{{t|km|អាមេរិក}} * 朝鲜语:{{t+|ko|^미(美)}} {{qualifier|用作組詞}} * 库尔德语: *: 北库尔德语:{{t|kmr|AY}} * 吉尔吉斯语:{{t|ky|АКШ}} * 拉脱维亚语:{{t|lv|ASV|f-p}} * 立陶宛语:{{t+|lt|JAV|}} * 马其顿语:{{t+|mk|САД|f-p}} * 马来语:{{t|ms|AS}} * 蒙古语: *: 西里尔字母:{{t|mn|АНУ}} * 纳瓦霍语:{{t|nv|WBA}}、{{t|nv|W.B.A.}} * 挪威语: *: 书面挪威语:{{t+|nb|USA}} *: 新挪威语:{{t+|nn|USA}} * 奥克语:{{t|oc|EUA|m-p}} * 波兰语:{{t+|pl|USA|p}} * 葡萄牙语:{{t+|pt|EUA|m-p}}、{{t+|pt|E.U.A.|m-p}} * 罗马尼亚语:{{t+|ro|SUA|f-p}} * 俄语:{{t+|ru|США|m-p}} * 萨莫吉提亚语:{{t|sgs|JAV|}} * 塞尔维亚-克罗地亚语: *: 西里尔字母:{{t|sh|САД|f-p}} *: 罗马字母:{{t|sh|SAD|f-p}} * 斯洛伐克语:{{t+|sk|USA|p}} * 斯洛文尼亚语:{{t+|sl|ZDA|f-p}} * 西班牙语:{{t+|es|EE. UU.|m-p}}、{{t+|es|EUA|m-p}}、{{t+|es|EU|m-p}} * 瑞典语:{{t+|sv|USA|n}} * 塔吉克语:{{t|tg|ИМА}} * 鞑靼语:{{t|tt|АКШ}} * 土耳其语:{{t+|tr|ABD}} * 土库曼语:{{t|tk|ABŞ}} * 乌克兰语:{{t+|uk|США|m-p}} * 乌兹别克语:{{t|uz|AQSh}} * 越南语:{{t+|vi|Mỹ}} * 沃拉普克语:{{t|vo|TPM}} {{trans-bottom}} {{trans-see|全稱|美利堅合眾國}} {{trans-top|关于美国的;美国的(形容词)}} * 阿尔巴尼亚语:{{t+|sq|amerikan}} * 阿姆哈拉语:{{t|am|አሜሪካዊ}} * 阿拉伯语:{{t|ar|أَمْرِيكِيّ}} *: 埃及阿拉伯语:{{t|arz|أمريكاني|tr=ʔamrīkāniyy}} * 亚美尼亚语:{{t+|hy|ամերիկական}}, {{t+|hy|ամերիկյան}} * 阿塞拜疆语:{{t|az|amerikalı}}, {{t|az|amerika}} * 白俄罗斯语:{{t|be|амерыка́нскі}} * 孟加拉语:{{t+|bn|মার্কিন}}, {{t|bn|মার্কিনী}} * 保加利亚语:{{t|bg|америка́нски}} * 缅甸语:{{t|my|အမေရိကန်}} * 加泰罗尼亚语:{{t+|ca|estatunidenc}}, {{t+|ca|nord-americà}} * 捷克语:{{t+|cs|americký}} * 丹麦语:{{t+|da|amerikansk}} * 荷兰语:{{t+|nl|Amerikaans}} * 英语:{{t+|en|American}} * 世界语:{{t+|eo|usona}} * 爱沙尼亚语:{{t|et|ameerika}} * 芬兰语:{{t+|fi|amerikkalainen}}, {{t+|fi|yhdysvaltalainen}}, {{t|fi|[[Yhdysvallat|Yhdysvaltain]]}} {{qualifier|名詞的屬格}}, {{t|fi|[[Amerikka|Amerikan]]}} {{qualifier|名詞的屬格}} * 法语:{{t+|fr|américain}}, {{t+|fr|états-unien}} * 加利西亚语:{{t+|gl|estadounidense|m|f}} * 格鲁吉亚语:{{t|ka|ამერიკული}} * 德语:{{t+|de|amerikanisch}}, {{qualifier|更為準確}} {{t+|de|US-amerikanisch}} * 希腊语:{{t+|el|αμερικανικός|m}} * 海地克里奥尔语:{{t|ht|ameriken}} * 夏威夷语:{{t|haw|ʻAmelika}}, {{t|haw|haole}} * 希伯来语:{{t+|he|אָמֶרִיקָנִי|tr=amerikáni}} * 印地语:{{t+|hi|अमरीकी}} * 匈牙利语:{{t+|hu|amerikai}} * 冰岛语:{{t+|is|bandarískur}} * 爱多语:{{t|io|Usana}} * 国际语:{{t|ia|statounitese}} * 爱尔兰语:{{t+|ga|Meiriceánach}} * 意大利语:{{t+|it|americano}}, {{qual|更為準確}} {{t+|it|statunitense}} * 日语:{{t+|ja|アメリカ|alt=アメリカの|tr=Amerika no}}, {{t+|ja|米国|alt=米国の|tr=べいこくの, Beikoku no}}, {{t+|ja|アメリカン|tr=Amerikan}}, {{t+|ja|米|tr=べい, bei}} * 哈萨克语:{{t|kk|американдық}}, {{t|kk|америка}} * 高棉语:{{t|km|អាមេរិក}} * 韩语:{{t+|ko|미국|alt=미국의}} * 库尔德语: *: 北库尔德语:{{t+|kmr|amerîkî}} * 吉尔吉斯语:{{t+|ky|америкалык}}, {{t|ky|америка}} * 拉脱维亚语:{{t|lv|amerikānisks}}, {{t|lv|amerikāņu}} * 立陶宛语:{{t|lt|amerikietiškas}}, {{t|lt|amerikiečių}} * 卢森堡语:{{t|lb|amerikanesch}} * 马其顿语:{{t|mk|америка́нски}} * 马来语:{{t+|ms|Amerika}} * 蒙古语:{{t|mn|америк}} * 挪威语: *: 书面挪威语:{{t+|nb|amerikansk}} *: 新挪威语:{{t|nn|amerikansk}} * 普什图语:{{t|ps|امريکايی|tr=amrikâyay}} * 波斯语:{{t+|fa|آمریکایی|tr=âmrikâyi}} * 波兰语:{{t+|pl|amerykański}} * 葡萄牙语:{{t+|pt|americano|m}}, {{t+|pt|norte-americano|m}}, {{t|pt|estado-unidens|m|f}} * 罗马尼亚语:{{t+|ro|american}} * 俄语:{{t+|ru|америка́нский}} * 苏格兰盖尔语:{{t|gd|Ameireaganach}} * 塞尔维亚-克罗地亚语: *: 西里尔字母:{{t|sh|амѐричкӣ}} *: 拉丁字母:{{t+|sh|američki}} * 斯洛伐克语:{{t+|sk|americký}} * 斯洛文尼亚语:{{t+|sl|amêriški}} * 西班牙语:{{t+|es|estadounidense}}, {{t+|es|norteamericano}}, {{t+|es|usamericano}} {{qualifier|DAMER}} * 瑞典语:{{t+|sv|amerikansk}} * 塔加洛语:{{t|tl|Amerikahin}}, {{t|tl|Amerikano}} * 塔吉克语:{{t+|tg|амрикоӣ}} * 泰语:{{t+|th|อเมริกัน}} * 土耳其语:{{t+|tr|Amerikalı}}, {{t+|tr|Amerikan}} * 土库曼语:{{t|tk|amerikaly}}, {{t|tk|amerika}} * 乌克兰语:{{t+|uk|америка́нський}} * 乌尔都语:{{t|ur|امریکی|tr=amrīkī}}, {{t|ur|امریکائی|tr=amrīkā'ī}} * 乌兹别克语:{{t+|uz|amerikalik}}, {{t|uz|amerika}} * 越南语: (thuộc) {{t+|vi|Mỹ}}, (thuộc) {{t+|vi|Hoa Kỳ}}; {{qual|关于语言}} {{t+|vi|tiếng Mỹ}} * 沃拉普克语:{{t+|vo|Lamerikänik}}, {{t|vo|Lamerikänanik}}, {{qual|关于语言}} {{t|vo|Lamerikäna-Linglänapükik}} * 意第绪语:{{t|yi|אַמעריקאַניש}} {{trans-bottom}} ====參見==== * {{zh-l|美洲}} ==朝鮮語== {{ko-hanjatab}} ===專有名詞=== {{ko-proper noun|hangeul=미국}} # {{hanja form of|미국}} ==越南語== {{vi-hantutab}} ===專有名詞=== {{vi-proper noun|sc=Hani}} # {{han tu form of|Mĩ Quốc}} ddnkd08xcqrff5wjim6x7awts4npqyr Wiktionary:统计 4 1718 9760139 9759294 2026-05-15T05:00:10Z TongcyBot 83009 機器人:更新每日統計數據 (2026-05-15) 9760139 wikitext text/x-wiki {{Interwiki}} {{shortcut|WT:STAT}} ==基本資料== {| class="wikitable" ! 項目 !! 資料 |- ! MediaWiki版本 | {{CURRENTVERSION}} |- ! 詞條數量 | [[Special:Statistics|'''{{NUMBEROFARTICLES}}''']] |- ! 總頁面數 | {{NUMBEROFPAGES}} |- ! 已編碼的語言數量 | {{#invoke:list of languages|count}} |- ! 檔案數量 | {{NUMBEROFFILES}} |- ! 註冊用戶數 | {{NUMBEROFUSERS}} |- ! 活躍用戶數 | {{NUMBEROFACTIVEUSERS}} |- ! 管理員數量 | {{NUMBEROFADMINS}} |- ! 全站頁面編輯次數 | {{NUMBEROFEDITS}} |} 其他資料請參考[[Special:Statistics]]。 ==頁面== 本表是中文维基詞典詞條数依日期到達的里程碑,以每一万个词条为单位计数。<!-- 以下內容已不再更新 * 近期統計圖表(區分機器人與一般用戶,選擇zhwiktionary_p,每日自動更新):[https://tools.wmflabs.org/wmcharts/wmchart0001.php 編輯次數]{{·}}[https://tools.wmflabs.org/wmcharts/wmchart0002.php 新增詞條數量]--> * 目前的詞條數:'''{{NUMBEROFARTICLES}}'''({{重新整理|更新}})。 {{Milestone}} ==与相邻语言版本的比较== 中文维基词典词条收录量为'''{{NUMBEROFARTICLES}}''',在所有语言版本的詞典中[[meta:Wiktionary#List of Wiktionaries|'''位列第4''']]。 {{autoStat | 2026-05-01 | fr | mg | zh | th | el | 6910311 | 5911338 | 2317075 | 2180613 | 1578407 | 6910465 | 5911778 | 2317733 | 2180625 | 1578438 | 6910902 | 5911947 | 2318306 | 2180659 | 1578642 | 6911431 | 5912087 | 2318644 | 2180659 | 1578727 | 6911789 | 5912618 | 2319200 | 2180693 | 1578858 | 6912182 | 5912774 | 2319756 | 2180695 | 1578878 | 6912997 | 5913101 | 2320558 | 2180707 | 1578945 | 6913587 | 5914311 | 2321341 | 2180732 | 1578967 | 6914008 | 5914542 | 2321908 | 2180738 | 1578993 | 6914917 | 5914730 | 2322662 | 2180747 | 1579019 | 6915864 | 5914994 | 2323162 | 2180753 | 1579114 | 6916634 | 5915340 | 2323608 | 2180766 | 1579178 | 6916940 | 5916674 | 2323976 | 2180768 | 1579265 | 6917350 | 5917831 | 2324585 | 2180776 | 1579287 | 6917821 | 5918823 | 2325063 | 2180778 | 1579331 | 6918489 | 5920727 | 2325493 | 2180780 | 1579363 }} * 来源:[https://wikistats.wmcloud.org/display.php?t=wt Wikistats] 统计的具体时间为当日1时(UTC)左右,近似表示前一天的数据 * 关于里程碑,参见[[Wiktionary:宣告]] ==页面访问统计== 历史数据参见:[[Wiktionary:统计/存档]] ===总页面浏览量=== {{Collapse2|header=最近一年中文維基詞典的存取量|float=right |{{Graph:PageViews| 365 | _ |scale=sqrt}} }} {{Collapse2|header=自2016年起中文維基詞典總頁面瀏覽量(時間單位:月)|float=right |{{Graph:Chart | width = 800 | height = 300 | xAxisTitle = 時間 | yAxisTitle = 瀏覽量(次) | x = 2016/01/01,2016/02/01,2016/03/01,2016/04/01,2016/05/01,2016/06/01,2016/07/01,2016/08/01,2016/09/01,2016/10/01,2016/11/01,2016/12/01,2017/01/01,2017/02/01,2017/03/01,2017/04/01,2017/05/01,2017/06/01,2017/07/01,2017/08/01,2017/09/01,2017/10/01,2017/11/01,2017/12/01,2018/01/01,2018/02/01,2018/03/01,2018/04/01,2018/05/01,2018/06/01,2018/07/01,2018/08/01,2018/09/01,2018/10/01,2018/11/01,2018/12/01,2019/01/01,2019/02/01,2019/03/01,2019/04/01,2019/05/01,2019/06/01,2019/07/01,2019/08/01,2019/09/01,2019/10/01,2019/11/01,2019/12/01,2020/01/01,2020/02/01,2020/03/01,2020/04/01,2020/05/01,2020/06/01,2020/07/01,2020/08/01,2020/09/01,2020/10/01,2020/11/01,2020/12/01,2021/01/01,2021/02/01,2021/03/01,2021/04/01,2021/05/01,2021/06/01,2021/07/01,2021/08/01,2021/09/01,2021/10/01,2021/11/01,2021/12/01,2022/01/01,2022/02/01,2022/03/01,2022/04/01,2022/05/01,2022/06/01,2022/07/01,2022/08/01,2022/09/01,2022/10/01,2022/11/01,2022/12/01,2023/01/01,2023/02/01,2023/03/01,2023/04/01,2023/05/01,2023/06/01,2023/07/01,2023/08/01,2023/09/01,2023/10/01,2023/11/01,2023/12/01,2024/01/01,2024/02/01,2024/03/01,2024/04/01,2024/05/01,2024/06/01,2024/07/01,2024/08/01,2024/09/01,2024/10/01,2024/11/01,2024/12/01,2025/01/01,2025/02/01,2025/03/01,2025/04/01,2025/05/01,2025/06/01,2025/07/01,2025/08/01,2025/09/01,2025/10/01,2025/11/01,2025/12/01,2026/01/01,2026/02/01,2026/03/01,2026/04/01 | xType = date | yAxisFormat = | showSymbols = | y1 = 10097003,10370374,8792159,8941196,7730585,8096248,6653053,7707543,10114598,7503416,6761878,8479478,6306309,7029498,7793566,8952099,7201718,7403015,9094546,8753927,8887701,8836025,7012428,8297104,9776325,7383846,6846537,6478883,7844796,6800241,7032236,8907342,8070578,8878639,7374038,10399016,8843049,11735279,15986235,6536323,7794540,6340229,6963086,7077486,7262235,8135613,7350657,5924829,5389757,6706817,5468323,6028296,7420864,8089314,9463391,8952807,8032717,7976343,8839864,8511738,9062568,9099531,9196338,11036657,13507384,12075399,13497219,15603301,16689908,15728651,14140022,16914100,13589392,14818070,19016624,15144543,14891967,17026541,17298554,14032388,14847453,17608848,19967345,16730368,14386645,12098112,13610799,13122059,13901295,13433194,15511876,15674859,17748912,26144678,22153348,21554742,23027727,29476088,31116352,31891299,31844500,26251290,24446253,43524978,42154325,30934003,60141744,38114834,35256147,36402985,32703811,27105782,45361042,55198883,39017796,28042128,37231311,52390983,65887852,43219295,50138160,26315414,38336237,63309024 }} }} {| class="wikitable mw-collapsible mw-collapsed" ! 日期 !! 浏览量 |- | 2026-04-01 || 63,309,024 |- | 2026-03-01 || 38,336,237 |- | 2026-02-01 || 26,315,414 |- | 2026-01-01 || 50,138,160 |- | 2025-12-01 || 43,219,295 |- | 2025-11-01 || 65,887,852 |- | 2025-10-01 || 52,390,983 |- | 2025-09-01 || 37,231,311 |- | 2025-08-01 || 28,042,128 |- | 2025-07-01 || 39,017,796 |- | 2025-06-01 || 55,198,883 |- | 2025-05-01 || 45,361,042 |- | 2025-04-01 || 27,105,782 |- | 2025-03-01 || 32,703,811 |- | 2025-02-01 || 36,402,985 |- | 2025-01-01 || 35,256,147 |- | 2024-12-01 || 38,114,834 |- | 2024-11-01 || 60,141,744 |- | 2024-10-01 || 30,934,003 |- | 2024-09-01 || 42,154,325 |- | 2024-08-01 || 43,524,978 |- | 2024-07-01 || 24,446,253 |- | 2024-06-01 || 26,251,290 |- | 2024-05-01 || 31,844,500 |- | 2024-04-01 || 31,891,299 |- | 2024-03-01 || 31,116,352 |- | 2024-02-01 || 29,476,088 |- | 2024-01-01 || 23,027,727 |- | 2023-12-01 || 21,554,742 |- | 2023-11-01 || 22,153,348 |- | 2023-10-01 || 26,144,678 |- | 2023-09-01 || 17,748,912 |- | 2023-08-01 || 15,674,859 |- | 2023-07-01 || 15,511,876 |- | 2023-06-01 || 13,433,194 |- | 2023-05-01 || 13,901,295 |- | 2023-04-01 || 13,122,059 |- | 2023-03-01 || 13,610,799 |- | 2023-02-01 || 12,098,112 |- | 2023-01-01 || 14,386,645 |- | 2022-12-01 || 16,730,368 |- | 2022-11-01 || 19,967,345 |- | 2022-10-01 || 17,608,848 |- | 2022-09-01 || 14,847,453 |- | 2022-08-01 || 14,032,388 |- | 2022-07-01 || 17,298,554 |- | 2022-06-01 || 17,026,541 |- | 2022-05-01 || 14,891,967 |- | 2022-04-01 || 15,144,543 |- | 2022-03-01 || 19,016,624 |- | 2022-02-01 || 14,818,070 |- | 2022-01-01 || 13,589,392 |- | 2021-12-01 || 16,914,100 |- | 2021-11-01 || 14,140,022 |- | 2021-10-01 || 15,728,651 |- | 2021-09-01 || 16,689,908 |- | 2021-08-01 || 15,603,301 |- | 2021-07-01 || 13,497,219 |- | 2021-06-01 || 12,075399 |- | 2021-05-01 || 13,507,384 |- | 2021-04-01 || 11,036,657 |- | 2021-03-01 || 9,196,338 |- | 2021-02-01 || 9,099,531 |- | 2021-01-01 || 9,062,568 |- | 2020-12-01 || 8,511,738 |- | 2020-11-01 || 8,839,864 |- | 2020-10-01 || 7,976,343 |- | 2020-09-01 || 8,032,717 |- | 2020-08-01 || 8,952,807 |- | 2020-07-01 || 9,463,391 |- | 2020-06-01 || 8,089,314 |- | 2020-05-01 || 7,420,864 |- | 2020-04-01 || 6,028,296 |- | 2020-03-01 || 5,468,323 |- | 2020-02-01 || 6,706,817 |- | 2020-01-01 || 5,389,757 |- | 2019-12-01 || 5,924,829 |- | 2019-11-01 || 7,350,657 |- | 2019-10-01 || 8,135,613 |- | 2019-09-01 || 7,262,235 |- | 2019-08-01 || 7,077,486 |- | 2019-07-01 || 6,963,086 |- | 2019-06-01 || 6,340,229 |- | 2019-05-01 || 7,794,540 |- | 2019-04-01 || 6,536,323 |- | 2019-03-01 || 15,986,235 |- | 2019-02-01 || 11,735,279 |- | 2019-01-01 || 8,843,049 |- | 2018-12-01 || 10,399,016 |- | 2018-11-01 || 7,374,038 |- | 2018-10-01 || 8,878,639 |- | 2018-09-01 || 8,070,578 |- | 2018-08-01 || 8,907,342 |- | 2018-07-01 || 7,032,236 |- | 2018-06-01 || 6,800,241 |- | 2018-05-01 || 7,844,796 |- | 2018-04-01 || 6,478,883 |- | 2018-03-01 || 6,846,537 |- | 2018-02-01 || 7,383,846 |- | 2018-01-01 || 9,776,325 |- | 2017-12-01 || 8,297,104 |- | 2017-11-01 || 7,012,428 |- | 2017-10-01 || 8,836,025 |- | 2017-09-01 || 8,887,701 |- | 2017-08-01 || 8,753,927 |- | 2017-07-01 || 9,094,546 |- | 2017-06-01 || 7,403,015 |- | 2017-05-01 || 7,201,718 |- | 2017-04-01 || 8,952,099 |- | 2017-03-01 || 7,793,566 |- | 2017-02-01 || 7,029,498 |- | 2017-01-01 || 6,306,309 |- | 2016-12-01 || 8,479,478 |- | 2016-11-01 || 6,761,878 |- | 2016-10-01 || 7,503,416 |- | 2016-09-01 || 10,114,598 |- | 2016-08-01 || 7,707,543 |- | 2016-07-01 || 6,653,053 |- | 2016-06-01 || 8,096,248 |- | 2016-05-01 || 7,730,585 |- | 2016-04-01 || 8,941,196 |- | 2016-03-01 || 8,792,159 |- | 2016-02-01 || 10,370,374 |- | 2016-01-01 || 10,097,003 |} 数据来源:[https://stats.wikimedia.org/#/zh.wiktionary.org/reading/total-page-views/normal|table|1-year|~total|monthly Total page views] ===热词=== 页面浏览量最高的词条: {{Wiktionary:統計/熱詞 |year=2024 |month=6 |t1=尛 |cat1=[[:Category:漢字|漢字]] |v1=5,385 |m1=82.8 |t2=。 |cat2=[[:Category:標點符號|標點符號]] |v2=5,355 |m2=94.4 |t3=! |cat3=[[:Category:標點符號|標點符號]] |v3=3,407 |m3=74.2 |t4=凪 |cat4=[[:Category:和製漢字|和製漢字]]|v4=3,120 |m4=62.0 |t5=雫 |cat5=[[:Category:和製漢字|和製漢字]] |v5= 3,114 |m5=64.6 |t6=又双叒叕 |cat6=[[:Category:漢語副詞|漢語副詞]] |v6=2,528 |m6=73.4 |t7=你好 |cat7=[[:Category:漢語感嘆詞|漢語感嘆詞]] |v7=2,513 |m7=41.1 |t8=昶 |cat8=[[:Category:漢字|漢字]] |v8=2,412 |m8=56.7 |t9=肉便器 |cat9=[[:Category:漢語名詞|漢語名詞]] |v9=2,345 |m9=78.4 |t10=辻 |cat10=[[:Category:和製漢字|和製漢字]] |v10=2,150 |m10=71.8 }} 数据来源:[https://pageviews.toolforge.org/topviews/?project=zh.wiktionary.org&platform=all-access&date={{CURRENTYEAR}}-{{CURRENTMONTH}}&excludes= Topviews Analysis - Most viewed pages of a project] ==收录词条== {{See|Wiktionary:统计/各语言词条}} ==参看== *[[Special:Statistics|基本统计]] [[Category:維基詞典統計]] btb3xs5rywscli4r8ut6v58lb55skvu 歐洲 0 11535 9759645 9728583 2026-05-14T23:41:20Z TongcyDai 53191 9759645 wikitext text/x-wiki {{also|洲歐}} ==漢語== {{zh-forms|s=欧洲}} {{zh-wp|zh|wuu|yue|gan|hak:Êu-chû|nan:Au-chiu|cdo:Ĕu-ciŭ|lzh:歐羅巴洲}} [[File:Europe orthographic Caucasus Urals boundary (with borders).svg|250px|thumb]] ===詞源=== 源自{{zh-m|歐|note={{zh-l|歐羅巴}}的簡稱}} + {{zh-m|洲}}。 ===發音=== {{zh-pron |m=Ōuzhōu |c=au1 zau1 |h=pfs=Êu-chû |md=Ĕu-ciŭ |mn=xm,tw:Au-chiu |mn-t=ao1 ziu1 |w=1eu tseu |cat=pn,a }} ===專有名詞=== {{head|zh|專有名詞}} # {{senseid|zh|Q46}}{{place|zh|位於[[亞洲]]以西(通常以[[烏拉爾山脈]]為界)、[[非洲]]以北、[[大西洋]]以東的<<大洲>>|tcl=[[亞洲]]以西、[[非洲]]以北的<<大洲>>}} #: {{zh-x|^歐洲 一體化|}} #: {{zh-x|^歐洲 發端|}} ====同義詞==== * {{qualifier|簡稱}} {{zh-l|歐}} * {{qualifier|過時}} {{zh-l|歐羅巴}} ====派生詞彙==== {{col3|zh|歐洲聯盟|歐洲大陸|歐洲鰉|歐安會}} ====相關詞彙==== {{table:continents/zh}} ====翻譯==== {{trans-top|id=Q46|大洲}} * 阿布哈茲語:{{t|ab|Европа}} * 亞齊語:{{t|ace|Iërupa}} * 南非語:{{t+|af|Europa}} * 阿坎語:{{t|ak|Yurop}} * 阿爾巴尼亞語:{{t|sq|Evropë|f}}、{{t+|sq|Evropa|f}} {{qualifier|定指}} * 阿姆哈拉語:{{t|am|አውሮፓ}} * 安地列斯克里奧爾語:{{t|gcf|Éwop}} * 阿拉伯語:{{t+|ar|أُورُوبَّا|f}}、{{t|ar|أُورُبَّا|f}}、{{t|ar|أُورُوبَّة|f}} *: 埃及阿拉伯語:{{t|arz|أوروبا|f|tr=ʔurupa, ʔuruba}} *: 漢志阿拉伯語:{{t|acw|أوربّا|f|tr=ʔōrubba}}、{{t|acw|أورپا|f|tr=ʔōruppa}} * 阿拉貢語:{{t|an|Europa|f}} * 亞美尼亞語:{{t+|hy|Եվրոպա}} * 阿薩姆語:{{t|as|ইউৰোপ}} * 亞述新亞拉姆語:{{t|aii|ܐܘܪܝܦܝ}} * 阿斯圖里亞斯語:{{t+|ast|Europa|f}} * 艾馬拉語:{{t+|ay|Iwrupa}} * 阿塞拜疆語:{{t+|az|Avropa}}、{{t|az|Ovropa}} {{qualifier|仿古}} * 班查語:{{t|bjn|Irupa}} * 巴什基爾語:{{t|ba|Европа}}、{{qualifier|棄用}} {{t|ba|Аурупа}} * 巴斯克語:{{t+|eu|Europa}} * 白俄羅斯語:{{t|be|Еўро́па|f}}、{{t|be|Эўро́па|f}} {{qualifier|傳統正寫法}} * 孟加拉語:{{t+|bn|ইউরোপ}} * 保加利亞語:{{t+|bg|Евро́па|f}} * 緬甸語:{{t|my|ဥရောပ}} * 布里亞特語:{{t|bua|Европо}} * 加泰羅尼亞語:{{t+|ca|Europa|f}} * 車臣語:{{t|ce|Европа}}、{{t|ce|Йивроп}} * 齊切瓦語:{{t|ny|Ulaya}} * 科西嘉語:{{t|co|Europa|f}}、{{t|co|Auropa|f}} * 捷克語:{{t+|cs|Evropa|f}} * 丹麥語:{{t+|da|Europa|n}} * 迪維希語:{{t|dv|ޔޫރަޕު}} * 荷蘭語:{{t+|nl|Europa|n}} * 埃爾齊亞語:{{t|myv|Европа}} * 英語:{{t+|en|Europe}} * 世界語:{{t+|eo|Eŭropo}} * 愛沙尼亞語:{{t+|et|Euroopa}} * 法拉法拉語:{{t|gur|Europa}} * 法羅語:{{t|fo|Evropa|n}} * 芬蘭語:{{t+|fi|Eurooppa}} * 法語:{{t+|fr|Europe|f}} * 加利西亞語:{{t+|gl|Europa|f}} * 格魯吉亞語:{{t+|ka|ევროპა}} * 德語:{{t+|de|Europa|n}} * 希臘語:{{t+|el|Ευρώπη|f}} *: 古希臘語:{{t|grc|Εὐρώπη|f}} * 古吉拉特語:{{t|gu|યુરોપ}} * 古西語:{{t|guz|Ng’umbu}} * 海地克里奧爾語:{{t|ht|Ewòp}} * 哈爾彥維語:{{t|bgc|ऐ़रूप}} * 豪薩語:{{t+|ha|Turai}} * 夏威夷語:{{t|haw|ʻEulopa}} * 希伯來語:{{t+|he|אֵירוֹפָּה|f|tr=eirópa}} * 希利蓋農語:{{t|hil|Ewropa}} * 印地語:{{t+|hi|यूरोप}}、{{t+|hi|युरोप|m}} * 匈牙利語:{{t+|hu|Európa}} * 冰島語:{{t+|is|Evrópa|f}} * 伊多語:{{t+|io|Europa}} * 伊博語:{{t|ig|Iroopu}} * 印尼語:{{t+|id|Eropa}} * 因特語:{{t+|ia|Europa}} * 愛爾蘭語:{{t+|ga|Eoraip|f}} * 意大利語:{{t+|it|Europa}} * 日語:{{t+|ja|ヨーロッパ|tr=Yōroppa}}、{{t+|ja|欧羅巴|tr=Yōroppa}} {{qualifier|借字}}、{{t+|ja|欧州|tr=おうしゅう, Ōshū}} * 東切爾克斯語:{{t|kbd|Еуропэ}} * 卡納達語:{{t+|kn|ಯುರೋಪ್}} * 卡舒比語:{{t|csb|Eùropa|f}} * 哈薩克語:{{t+|kk|Еуропа}} * 高棉語:{{t+|km|អឺរ៉ុប}} * 彼爾姆科米語:{{t|koi|Европа}} * 茲梁科米語:{{t|kpv|Европа}} * 朝鮮語:{{t+|ko|^유럽}}、{{t+|ko|^구주(歐洲)}}、{{t+|ko|^구라파(歐羅巴)}} {{qualifier|過時}} * 庫爾德語: *: 中庫爾德語:{{t|ckb|ئەوروپا}} *: 北庫爾德語:{{t+|kmr|Ewropa}} * 吉爾吉斯語:{{t+|ky|Европа}} * 拉登語:{{t-needed|lld}} * 拉蒂諾語:{{t-needed|lad}} * 老撾語:{{t|lo|ເອີລົບ}}、{{t+|lo|ເອີຣົບ}} {{qualifier|過時}} * 拉丁語:{{t+|la|Eurōpa|f}} * 拉脫維亞語:{{t|lv|Eiropa|f}} * 利古里亞語:{{t|lij|Eoröpa}} * 立陶宛語:{{t+|lt|Europa|f}} * 立窩尼亞語:{{t|liv|Eirōp}} * 低地德語:{{t+|nds|Europa}}、{{t|nds|Uropa}} * 傣仂語:{{t|khb|ᦵᦁᦲᧁᧈᦵᦋᦲᧁᧈ}} * 盧森堡語:{{t+|lb|Europa|f}} * 馬其頓語:{{t|mk|Европа|f}} * 馬來語:{{t+|ms|Eropah}} * 馬拉雅拉姆語:{{t+|ml|യൂറോപ്പ്}} * 馬爾他語:{{t|mt|Ewropa|f|alt=L-Ewropa}} * 曼島語:{{t|gv|Oarpey}} * 毛利語:{{t+|mi|Ūropi}} * 馬拉地語:{{t|mr|युरोप}} * 毛里求斯克里奧爾語:{{t|mfe|Lerop}} * 中古英語:{{t|enm|Europe}} * 米蘭德斯語:{{t|mwl|Ouropa|f}} * 莫克沙語:{{t|mdf|Европа}} * 蒙古語: *: 西里爾字母:{{t+|mn|Европ}} *: 蒙古語:{{t|mn|ᠧᠦ᠋ᠷᠣᠫᠠ}} * 莫西語:{{t|mos|Yerope}}、{{t|mos|yerope}}、{{t|mos|Nasaar-tẽnga}} * 納瓦特爾語:{{t|nah|Europan}} * 瑙魯語:{{t|na|Uirope}} * 納瓦霍語:{{t|nv|Tó Wónaanídi Bilagáana Bikéyah}} * 尼泊爾語:{{t|ne|युरोप}} * 大科摩羅語:{{t|zdj|Ulaya|c11}} * 北弗里斯蘭語:{{t|frr|Europa}} {{qualifier|黑爾戈蘭島}} * 挪威語: *: 書面挪威語:{{t+|nb|Europa|n}} *: 新挪威語:{{t+|nn|Europa|n}} * 奧克語:{{t+|oc|Euròpa|f}} * 奧利亞語:{{t|or|ୟୁରୋପ}} * 奧塞梯語:{{t|os|Европӕ}} * 普什圖語:{{t+|ps|اروپا|f|tr=orupã}}、{{t+|ps|يورپ|m|tr=uróp}} * 波斯語:{{t+|fa|اروپا|tr=orupâ}}、{{t|fa|اورپا|tr=oropâ}}、{{t|fa|فرنگستان|tr=farangestân}} * 皮特凱恩語:{{t|pih|Urup}} * 波蘭語:{{t+|pl|Europa|f}} * 葡萄牙語:{{t+|pt|Europa|f}} * 旁遮普語:{{t|pa|ਯੂਰਪ}} * 羅馬尼亞語:{{t+|ro|Europa|f}} *: 西里爾字母:{{t+|ro|Еуропа|f}} * 羅曼什語:{{t|rm|Europa|f}} * 俄語:{{t+|ru|Евро́па|f}} * 盧森尼亞語:{{t|rue|Евро́па|f}} * 梵語:{{t|sa|आरूप}} * 低地蘇格蘭語:{{t|sco|Europe}} * 蘇格蘭蓋爾語:{{t|gd|Roinn-Eòrpa|f|alt=an Roinn-Eòrpa}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Евро́па|f}}、{{t|sh|Еуро́па|f}} {{qualifier|克羅地亞/克羅埃西亞}} *: 拉丁字母:{{t+|sh|Evrópa|f}}、{{t+|sh|Európa|f}} {{qualifier|克羅地亞/克羅埃西亞}} * 西里西亞語:{{t|szl|Ojropa}} * 僧加羅語:{{t+|si|යුරෝපය}} * 斯洛伐克語:{{t+|sk|Európa|f}} * 斯洛文尼亞語:{{t+|sl|Evrópa|f}} * 索布語: *: 下索布語:{{t|dsb|Europa|f}} *: 上索布語:{{t+|hsb|Europa|f}} * 塞索托語:{{t|st|Yuropo}} * 西班牙語:{{t+|es|Europa|f}} * 蘇庫馬語:{{t|suk|bulaya}} * 斯瓦希里語:{{t|sw|Ulaya}}、{{t|sw|Uropa}} {{qualifier|罕用}} * 瑞典語:{{t+|sv|Europa|n}} * 他加祿語:{{t+|tl|Europa}} * 塔吉克語:{{t+|tg|Аврупо}} * 泰米爾語:{{t+|ta|ஐரோப்பா}} * 韃靼語:{{t|tt|Аурупа}} * 泰盧固語:{{t+|te|ఐరోపా}}、{{t|te|యూరప్}} * 泰語:{{t+|th|ยุโรป}} * 藏語:{{t|bo|ཡོ་རོབ་གླིང}} * 提格里尼亞語:{{t|ti|ኤውሮጳ}} * 土耳其語:{{t+|tr|Avrupa}} * 土庫曼語:{{t|tk|Ýewropa}} * 烏得穆爾特語:{{t|udm|Европа}} * 烏克蘭語:{{t+|uk|Євро́па|f}} * 烏爾都語:{{t|ur|یورپ|tr=yūrap|m}} * 維吾爾語:{{t|ug|ياۋروپا}} * 烏茲別克語:{{t+|uz|Yevropa}} * 維普斯語:{{t-needed|vep}} * 越南語:{{t+|vi|Châu Âu}} ({{t|vi|洲歐}}), {{t+|vi|Âu}} ({{t|vi|歐}}) * 沃拉普克語:{{t+|vo|Yurop}} * 佛羅語:{{t-needed|vro}} * 沃特語:{{t-needed|vot}} * 瓦隆語:{{t+|wa|Urope|f}} * 威爾士語:{{t+|cy|Ewrop|f}} * 西弗里斯蘭語:{{t+|fy|Jeropa|n}}、{{t+|fy|Europa|n}} * 雅庫特語:{{t|sah|Европа}} * 意第緒語:{{t|yi|אייראָפּע|f}} * 約魯巴語:{{t|yo|Yúróòpù}} * 壯語:{{t|za|Ouhcouh}} {{trans-bottom}} ===形容詞=== {{head|zh|形容詞}} # {{lb|zh|neologism|俚語|抽卡遊戲}} [[好運]] #: {{ant|zh|非洲}} {{zh-cat|大洲}} ==朝鮮語== {{ko-hanjatab}} ===專有名詞=== {{ko-pos|proper|hangeul=구주}} # {{hanja form of|구주}} ==越南語== {{vi-hantutab}} ===專有名詞=== {{vi-proper noun|sc=Hani}} # {{han tu form of|Âu châu|}} mfiec6adz5892434iscsu6rmpyyrn5n 9759646 9759645 2026-05-14T23:42:03Z TongcyDai 53191 9759646 wikitext text/x-wiki {{also|洲歐}} ==漢語== {{zh-forms|s=欧洲}} {{zh-wp|zh|wuu|yue|gan|hak:Êu-chû|nan:Au-chiu|cdo:Ĕu-ciŭ|lzh:歐羅巴洲}} [[File:Europe orthographic Caucasus Urals boundary (with borders).svg|250px|thumb]] ===詞源=== 源自{{zh-m|歐|note={{zh-l|歐羅巴}}的簡稱}} + {{zh-m|洲}}。 ===發音=== {{zh-pron |m=Ōuzhōu |c=au1 zau1 |h=pfs=Êu-chû |md=Ĕu-ciŭ |mn=xm,tw:Au-chiu |mn-t=ao1 ziu1 |w=1eu tseu |cat=pn,a }} ===專有名詞=== {{head|zh|專有名詞}} # {{senseid|zh|Q46}}{{place|zh|位於[[亞洲]]以西(通常以[[烏拉爾山脈]]為界)、[[非洲]]以北、[[大西洋]]以東的<<大洲>>;為[[地球]]的七大[[洲]]之一|tcl=[[亞洲]]以西、[[非洲]]以北的<<大洲>>}} #: {{zh-x|^歐洲 一體化|}} #: {{zh-x|^歐洲 發端|}} ====同義詞==== * {{qualifier|簡稱}} {{zh-l|歐}} * {{qualifier|過時}} {{zh-l|歐羅巴}} ====派生詞彙==== {{col3|zh|歐洲聯盟|歐洲大陸|歐洲鰉|歐安會}} ====相關詞彙==== {{table:continents/zh}} ====翻譯==== {{trans-top|id=Q46|大洲}} * 阿布哈茲語:{{t|ab|Европа}} * 亞齊語:{{t|ace|Iërupa}} * 南非語:{{t+|af|Europa}} * 阿坎語:{{t|ak|Yurop}} * 阿爾巴尼亞語:{{t|sq|Evropë|f}}、{{t+|sq|Evropa|f}} {{qualifier|定指}} * 阿姆哈拉語:{{t|am|አውሮፓ}} * 安地列斯克里奧爾語:{{t|gcf|Éwop}} * 阿拉伯語:{{t+|ar|أُورُوبَّا|f}}、{{t|ar|أُورُبَّا|f}}、{{t|ar|أُورُوبَّة|f}} *: 埃及阿拉伯語:{{t|arz|أوروبا|f|tr=ʔurupa, ʔuruba}} *: 漢志阿拉伯語:{{t|acw|أوربّا|f|tr=ʔōrubba}}、{{t|acw|أورپا|f|tr=ʔōruppa}} * 阿拉貢語:{{t|an|Europa|f}} * 亞美尼亞語:{{t+|hy|Եվրոպա}} * 阿薩姆語:{{t|as|ইউৰোপ}} * 亞述新亞拉姆語:{{t|aii|ܐܘܪܝܦܝ}} * 阿斯圖里亞斯語:{{t+|ast|Europa|f}} * 艾馬拉語:{{t+|ay|Iwrupa}} * 阿塞拜疆語:{{t+|az|Avropa}}、{{t|az|Ovropa}} {{qualifier|仿古}} * 班查語:{{t|bjn|Irupa}} * 巴什基爾語:{{t|ba|Европа}}、{{qualifier|棄用}} {{t|ba|Аурупа}} * 巴斯克語:{{t+|eu|Europa}} * 白俄羅斯語:{{t|be|Еўро́па|f}}、{{t|be|Эўро́па|f}} {{qualifier|傳統正寫法}} * 孟加拉語:{{t+|bn|ইউরোপ}} * 保加利亞語:{{t+|bg|Евро́па|f}} * 緬甸語:{{t|my|ဥရောပ}} * 布里亞特語:{{t|bua|Европо}} * 加泰羅尼亞語:{{t+|ca|Europa|f}} * 車臣語:{{t|ce|Европа}}、{{t|ce|Йивроп}} * 齊切瓦語:{{t|ny|Ulaya}} * 科西嘉語:{{t|co|Europa|f}}、{{t|co|Auropa|f}} * 捷克語:{{t+|cs|Evropa|f}} * 丹麥語:{{t+|da|Europa|n}} * 迪維希語:{{t|dv|ޔޫރަޕު}} * 荷蘭語:{{t+|nl|Europa|n}} * 埃爾齊亞語:{{t|myv|Европа}} * 英語:{{t+|en|Europe}} * 世界語:{{t+|eo|Eŭropo}} * 愛沙尼亞語:{{t+|et|Euroopa}} * 法拉法拉語:{{t|gur|Europa}} * 法羅語:{{t|fo|Evropa|n}} * 芬蘭語:{{t+|fi|Eurooppa}} * 法語:{{t+|fr|Europe|f}} * 加利西亞語:{{t+|gl|Europa|f}} * 格魯吉亞語:{{t+|ka|ევროპა}} * 德語:{{t+|de|Europa|n}} * 希臘語:{{t+|el|Ευρώπη|f}} *: 古希臘語:{{t|grc|Εὐρώπη|f}} * 古吉拉特語:{{t|gu|યુરોપ}} * 古西語:{{t|guz|Ng’umbu}} * 海地克里奧爾語:{{t|ht|Ewòp}} * 哈爾彥維語:{{t|bgc|ऐ़रूप}} * 豪薩語:{{t+|ha|Turai}} * 夏威夷語:{{t|haw|ʻEulopa}} * 希伯來語:{{t+|he|אֵירוֹפָּה|f|tr=eirópa}} * 希利蓋農語:{{t|hil|Ewropa}} * 印地語:{{t+|hi|यूरोप}}、{{t+|hi|युरोप|m}} * 匈牙利語:{{t+|hu|Európa}} * 冰島語:{{t+|is|Evrópa|f}} * 伊多語:{{t+|io|Europa}} * 伊博語:{{t|ig|Iroopu}} * 印尼語:{{t+|id|Eropa}} * 因特語:{{t+|ia|Europa}} * 愛爾蘭語:{{t+|ga|Eoraip|f}} * 意大利語:{{t+|it|Europa}} * 日語:{{t+|ja|ヨーロッパ|tr=Yōroppa}}、{{t+|ja|欧羅巴|tr=Yōroppa}} {{qualifier|借字}}、{{t+|ja|欧州|tr=おうしゅう, Ōshū}} * 東切爾克斯語:{{t|kbd|Еуропэ}} * 卡納達語:{{t+|kn|ಯುರೋಪ್}} * 卡舒比語:{{t|csb|Eùropa|f}} * 哈薩克語:{{t+|kk|Еуропа}} * 高棉語:{{t+|km|អឺរ៉ុប}} * 彼爾姆科米語:{{t|koi|Европа}} * 茲梁科米語:{{t|kpv|Европа}} * 朝鮮語:{{t+|ko|^유럽}}、{{t+|ko|^구주(歐洲)}}、{{t+|ko|^구라파(歐羅巴)}} {{qualifier|過時}} * 庫爾德語: *: 中庫爾德語:{{t|ckb|ئەوروپا}} *: 北庫爾德語:{{t+|kmr|Ewropa}} * 吉爾吉斯語:{{t+|ky|Европа}} * 拉登語:{{t-needed|lld}} * 拉蒂諾語:{{t-needed|lad}} * 老撾語:{{t|lo|ເອີລົບ}}、{{t+|lo|ເອີຣົບ}} {{qualifier|過時}} * 拉丁語:{{t+|la|Eurōpa|f}} * 拉脫維亞語:{{t|lv|Eiropa|f}} * 利古里亞語:{{t|lij|Eoröpa}} * 立陶宛語:{{t+|lt|Europa|f}} * 立窩尼亞語:{{t|liv|Eirōp}} * 低地德語:{{t+|nds|Europa}}、{{t|nds|Uropa}} * 傣仂語:{{t|khb|ᦵᦁᦲᧁᧈᦵᦋᦲᧁᧈ}} * 盧森堡語:{{t+|lb|Europa|f}} * 馬其頓語:{{t|mk|Европа|f}} * 馬來語:{{t+|ms|Eropah}} * 馬拉雅拉姆語:{{t+|ml|യൂറോപ്പ്}} * 馬爾他語:{{t|mt|Ewropa|f|alt=L-Ewropa}} * 曼島語:{{t|gv|Oarpey}} * 毛利語:{{t+|mi|Ūropi}} * 馬拉地語:{{t|mr|युरोप}} * 毛里求斯克里奧爾語:{{t|mfe|Lerop}} * 中古英語:{{t|enm|Europe}} * 米蘭德斯語:{{t|mwl|Ouropa|f}} * 莫克沙語:{{t|mdf|Европа}} * 蒙古語: *: 西里爾字母:{{t+|mn|Европ}} *: 蒙古語:{{t|mn|ᠧᠦ᠋ᠷᠣᠫᠠ}} * 莫西語:{{t|mos|Yerope}}、{{t|mos|yerope}}、{{t|mos|Nasaar-tẽnga}} * 納瓦特爾語:{{t|nah|Europan}} * 瑙魯語:{{t|na|Uirope}} * 納瓦霍語:{{t|nv|Tó Wónaanídi Bilagáana Bikéyah}} * 尼泊爾語:{{t|ne|युरोप}} * 大科摩羅語:{{t|zdj|Ulaya|c11}} * 北弗里斯蘭語:{{t|frr|Europa}} {{qualifier|黑爾戈蘭島}} * 挪威語: *: 書面挪威語:{{t+|nb|Europa|n}} *: 新挪威語:{{t+|nn|Europa|n}} * 奧克語:{{t+|oc|Euròpa|f}} * 奧利亞語:{{t|or|ୟୁରୋପ}} * 奧塞梯語:{{t|os|Европӕ}} * 普什圖語:{{t+|ps|اروپا|f|tr=orupã}}、{{t+|ps|يورپ|m|tr=uróp}} * 波斯語:{{t+|fa|اروپا|tr=orupâ}}、{{t|fa|اورپا|tr=oropâ}}、{{t|fa|فرنگستان|tr=farangestân}} * 皮特凱恩語:{{t|pih|Urup}} * 波蘭語:{{t+|pl|Europa|f}} * 葡萄牙語:{{t+|pt|Europa|f}} * 旁遮普語:{{t|pa|ਯੂਰਪ}} * 羅馬尼亞語:{{t+|ro|Europa|f}} *: 西里爾字母:{{t+|ro|Еуропа|f}} * 羅曼什語:{{t|rm|Europa|f}} * 俄語:{{t+|ru|Евро́па|f}} * 盧森尼亞語:{{t|rue|Евро́па|f}} * 梵語:{{t|sa|आरूप}} * 低地蘇格蘭語:{{t|sco|Europe}} * 蘇格蘭蓋爾語:{{t|gd|Roinn-Eòrpa|f|alt=an Roinn-Eòrpa}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Евро́па|f}}、{{t|sh|Еуро́па|f}} {{qualifier|克羅地亞/克羅埃西亞}} *: 拉丁字母:{{t+|sh|Evrópa|f}}、{{t+|sh|Európa|f}} {{qualifier|克羅地亞/克羅埃西亞}} * 西里西亞語:{{t|szl|Ojropa}} * 僧加羅語:{{t+|si|යුරෝපය}} * 斯洛伐克語:{{t+|sk|Európa|f}} * 斯洛文尼亞語:{{t+|sl|Evrópa|f}} * 索布語: *: 下索布語:{{t|dsb|Europa|f}} *: 上索布語:{{t+|hsb|Europa|f}} * 塞索托語:{{t|st|Yuropo}} * 西班牙語:{{t+|es|Europa|f}} * 蘇庫馬語:{{t|suk|bulaya}} * 斯瓦希里語:{{t|sw|Ulaya}}、{{t|sw|Uropa}} {{qualifier|罕用}} * 瑞典語:{{t+|sv|Europa|n}} * 他加祿語:{{t+|tl|Europa}} * 塔吉克語:{{t+|tg|Аврупо}} * 泰米爾語:{{t+|ta|ஐரோப்பா}} * 韃靼語:{{t|tt|Аурупа}} * 泰盧固語:{{t+|te|ఐరోపా}}、{{t|te|యూరప్}} * 泰語:{{t+|th|ยุโรป}} * 藏語:{{t|bo|ཡོ་རོབ་གླིང}} * 提格里尼亞語:{{t|ti|ኤውሮጳ}} * 土耳其語:{{t+|tr|Avrupa}} * 土庫曼語:{{t|tk|Ýewropa}} * 烏得穆爾特語:{{t|udm|Европа}} * 烏克蘭語:{{t+|uk|Євро́па|f}} * 烏爾都語:{{t|ur|یورپ|tr=yūrap|m}} * 維吾爾語:{{t|ug|ياۋروپا}} * 烏茲別克語:{{t+|uz|Yevropa}} * 維普斯語:{{t-needed|vep}} * 越南語:{{t+|vi|Châu Âu}} ({{t|vi|洲歐}}), {{t+|vi|Âu}} ({{t|vi|歐}}) * 沃拉普克語:{{t+|vo|Yurop}} * 佛羅語:{{t-needed|vro}} * 沃特語:{{t-needed|vot}} * 瓦隆語:{{t+|wa|Urope|f}} * 威爾士語:{{t+|cy|Ewrop|f}} * 西弗里斯蘭語:{{t+|fy|Jeropa|n}}、{{t+|fy|Europa|n}} * 雅庫特語:{{t|sah|Европа}} * 意第緒語:{{t|yi|אייראָפּע|f}} * 約魯巴語:{{t|yo|Yúróòpù}} * 壯語:{{t|za|Ouhcouh}} {{trans-bottom}} ===形容詞=== {{head|zh|形容詞}} # {{lb|zh|neologism|俚語|抽卡遊戲}} [[好運]] #: {{ant|zh|非洲}} {{zh-cat|大洲}} ==朝鮮語== {{ko-hanjatab}} ===專有名詞=== {{ko-pos|proper|hangeul=구주}} # {{hanja form of|구주}} ==越南語== {{vi-hantutab}} ===專有名詞=== {{vi-proper noun|sc=Hani}} # {{han tu form of|Âu châu|}} 83lj2jakka7sb6t2z52sneyv3bslttv 亞洲 0 13398 9759627 9728254 2026-05-14T23:20:08Z TongcyDai 53191 9759627 wikitext text/x-wiki {{also|洲亞}} ==漢語== {{zh-forms|s=亚洲}} {{zh-wp}} [[File:Asia (orthographic projection).svg|250px|thumb]] ===發音=== {{zh-pron |m=亞zhōu,cap=y,2cap=y |c=aa3 zau1 |g='nga3 ziiu1 |h=pfs=Á-chû;hrs=h:aˊ zhiuˋ/h:aˋ zhiuˋ |md=Ā-ciŭ |mn=A-chiu |mn-t=a1 ziu1 |px=pt,xy:^a4 ziu1 |w=sh:1ia tseu |cat=pn |ca=LL-Q9186-Luilui6666-亚洲.wav }} ===專有名詞=== {{zh-proper noun}} # {{senseid|zh|Q48}}{{place|zh|地球上面積最大的<<大洲>>,位於[[歐洲]]以東(通常以[[烏拉山脈]]為界),[[太平洋]]以西,[[大洋洲]]以北,[[北冰洋]]以南|tcl=地球上面積最大的<<大洲>>,位於[[歐洲]]和[[太平洋]]之間}} ====同義詞==== * {{qual|過時}} {{zh-l|亞細亞}} * {{qual|正式|書面}} {{zh-l|亞細亞洲}} ====衍生詞==== {{col3|zh|亞超|亞洲人|亞洲四小龍|亞洲運動會|亞洲象|亞洲胡狼}} ====派生詞==== {{CJKV|s=亜洲||あしゅう|아주|Á châu}} 其他: * {{desc|vi|châu Á|calq=1}} ====相關詞彙==== {{table:continents/zh}} ====翻譯==== {{trans-top|大洲|id=Q48}} * 阿布哈茲語:{{t|ab|Азиа}} * 西切爾克斯語:{{t|ady|Азие}} * 南非語:{{t|af|Asië}} * 阿坎語:{{t|ak|Ehyia}}、{{t|ak|Asia}} * 阿爾巴尼亞語:{{t|sq|Azi|f}}、{{t+|sq|Azia|f}} {{qualifier|定形}} *: 古阿爾巴尼亞語:{{t|sq|Natoli|alt=Natolia|f}} * 阿姆哈拉語:{{t|am|እስያ}} * 阿拉伯語:{{t+|ar|آسِيَا|f}} *: 埃及阿拉伯語:{{t|arz|أسيا|f|tr=asya}} *: 漢志阿拉伯語:{{t|acw|آسْيَا|f|tr=ʾāsya}} *: 南黎凡特阿拉伯語:{{t|ajp|آسيا|tr=ʔāsya}} * 阿拉貢語:{{t|an|Asia|f}} * 亞美尼亞語:{{t+|hy|Ասիա}} *: 古典亞美尼亞語:{{t|xcl|Ասիա}} * 阿薩姆語:{{t|as|এছিয়া}} * 亞述新亞拉姆語:{{t|aii|ܐܲܣܝܼܵܐ|tr=Āsiya|f}} * 阿斯圖里亞斯語:{{t+|ast|Asia|f}} * 阿瓦爾語:{{t|av|Азия}} * 阿塞拜疆語:{{t+|az|Asiya}} * 巴厘語:{{t|ban|Asia}} * 巴什基爾語:{{t|ba|Азия}} * 巴斯克語:{{t+|eu|Asia}} * 巴伐利亞語:{{t|bar|Asien}} * 白俄羅斯語:{{t|be|А́зія|f}} * 孟加拉語:{{t+|bn|এশিয়া}} * 中比科爾語:{{t|bcl|Asya}} * 比什奴普萊利亞-曼尼普爾語:{{t|bpy|এশিয়া}} * 布拉灰語:{{t|brh|Eşíá}} * 布列塔尼語:{{t+|br|Azia|f}} * 保加利亞語:{{t+|bg|А́зия|f}} * 緬甸語:{{t+|my|အာရှ}} * 布里亞特語:{{t|bua|Ази}} * 加泰羅尼亞語:{{t+|ca|Àsia|f}} * 宿霧語:{{t|ceb|Asya}} * 車臣語:{{t|ce|Ази}} * 切羅基語:{{t|chr|ᎠᏏᎠ}}、{{t|chr|ᏓᎶᏂᎨᏍᏛ}} * 楚瓦什語:{{t|cv|Ази}} * 康沃爾語:{{t|kw|Asi}} * 科西嘉語:{{t+|co|Asia}} * 克里米亞韃靼語:{{t|crh|Asiya}} * 捷克語:{{t+|cs|Asie|f}} * 丹麥語:{{t+|da|Asien|n}} * 迪維希語:{{t|dv|އޭޝިއާ}} * 丁卡語:{{t|din|Athiɛ}} * 荷蘭語:{{t+|nl|Azië|n}} * 宗喀語:{{t|dz|ཨ་ཤི་ཡ}} * 英語:{{t+|en|Asia}} * 埃爾齊亞語:{{t|myv|Азия}} * 世界語:{{t+|eo|Azio}} * 愛沙尼亞語:{{t+|et|Aasia}} * 法拉法拉語:{{t|gur|Asia}} * 法羅語:{{t|fo|Asia}} * 芬蘭語:{{t+|fi|Aasia}} * 法蘭克-普羅旺斯語:{{t|frp|Asia|f}} * 法語:{{t+|fr|Asie|f}} * 弗留利語:{{t|fur|Asie|f}} * 加利西亞語:{{t+|gl|Asia|f}} * 格魯吉亞語:{{t|ka|აზია}} * 德語:{{t+|de|Asien|n}} *: 中部法蘭克尼亞語:{{t|gmw-cfr|Aasije}} * 希臘語:{{t+|el|Ασία|f}} *: 古希臘語:{{t|grc|Ἀσία|f}} * 格陵蘭語:{{t|kl|Asia}} * 巴拉圭瓜拉尼語:{{t|gug|Asya}} * 古吉拉特語:{{t+|gu|એશિયા}} * 海地克里奧爾語:{{t|ht|Azi}} * 豪薩語:{{t|ha|Asiya}} * 夏威夷語:{{t|haw|ʻĀkia}} * 希伯來語:{{t+|he|אַסְיָה|f|tr=ásya}} * 印地語:{{t+|hi|एशिया}} * 匈牙利語:{{t+|hu|Ázsia}} * 冰島語:{{t+|is|Asía|f}} * 伊多語:{{t+|io|Azia}} * 伊博語:{{t|ig|Asia}} * 伊洛卡諾語:{{t|ilo|Asia}} * 印尼語:{{t+|id|Asia}} * 印古什語:{{t|inh|Ази}} * 因特語:{{t+|ia|Asia}} * 愛爾蘭語:{{t|ga|Áise|f|alt=An Áise}} *: 古愛爾蘭語:{{t|sga|Aissia}} * 意大利語:{{t+|it|Asia|f}} * 日語:{{t+|ja|アジア|tr=Ajia}}、{{qualifier|過時}} {{t+|ja|亜細亜|tr=あじあ, Ajia}}、{{t|ja|亜洲|tr=あしゅう, Ashū}} * 爪哇語:{{t|jv|Asia}} * 東切爾克斯語:{{t|kbd|Азиэ}} * 卡拜爾語:{{t|kab|Asya}} * 卡納達語:{{t+|kn|ಏಷ್ಯಾ}} * 卡片片甘語:{{t|pam|Asia}} * 克什米爾語:{{t|ks|ایشیا}} * 卡舒比語:{{t|csb|Azjô|f}} * 哈薩克語:{{t+|kk|Азия}} * 高棉語:{{t+|km|អាស៊ី}} * 彼爾姆科米語:{{t|koi|Азия}} * 茲梁科米語:{{t|kpv|Азия}} * 朝鮮語:{{t+|ko|^아시아}}、{{t+|ko|^아주(亞洲)}} * 庫爾德語: *: 中庫爾德語:{{t|ckb|ئاسیا}} *: 北庫爾德語:{{t+|kmr|Asya}} * 吉爾吉斯語:{{t+|ky|Азия}} * 拉蒂諾語:{{t|lad|Asia|f}} * 拉克語:{{t|lbe|Азия}} * 老撾語:{{t+|lo|ອາຊີ}} * 拉丁語:{{t+|la|Asia|f}} * 拉脫維亞語:{{t+|lv|Āzija|f}} * 列茲金語:{{t|lez|Азия}} * 利古里亞語:{{t|lij|Asia}} * 林堡語:{{t+|li|Azië}} * 林加拉語:{{t|ln|Azía}} * 立陶宛語:{{t+|lt|Azija|f}} * 低地德語:{{t|nds|Asien}} * 盧森堡語:{{t+|lb|Asien}} * 傣仂語:{{t|khb|ᦊᦱᧈᦵᦋᦲᧁᧈ}} * 馬其頓語:{{t|mk|А́зија|f}} * 馬拉加斯語:{{t+|mg|Azia}} * 馬來語:{{t|ms|Asia}} * 馬拉雅拉姆語:{{t+|ml|ഏഷ്യ}} * 馬爾他語:{{t|mt|Asja|f}} * 曼島語:{{t|gv|Aishey|alt=Yn Aishey}} * 馬拉地語:{{t|mr|आशिया}} * 馬里語: *: 東馬里語:{{t|mhr|Азий}} *: 西馬里語:{{t|mrj|Ази}} * 馬贊德蘭語:{{t|mzn|آسیا}} * 莫克沙語:{{t|mdf|Азия}}、{{t|mdf|Азиясь}} * 蒙古語: *: 西里爾字母:{{t+|mn|Ази}} *: 蒙古語:{{t|mn|ᠠᠽᠢ}}、{{t|mn|ᠠᠽᠢᠶ᠎ᠠ}} * 莫西語:{{t|mos|Azi}}、{{t|mos|azi}} * 納瓦特爾語:{{t|nah|Axia}} * 那不勒斯語:{{t|nap|Asia|f}} * 尼泊爾語:{{t|ne|एशिया}} * 尼瓦爾語:{{t|new|एसिया}} * 諾曼語:{{t|nrf|Âsie|f}} {{qual|澤西}} * 北薩米語:{{t|se|Ásia}} * 挪威語: *: 書面挪威語:{{t+|nb|Asia|n}} *: 新挪威語:{{t+|nn|Asia|n}} * 奧克語:{{t+|oc|Asia|f}} * 教會斯拉夫語: *: 西里爾字母:{{t|cu|Асїꙗ|f}} * 古東斯拉夫語:{{t|orv|Асиꙗ}} * 奧利亞語:{{t|or|ଏସିଯା}}、{{t|or|ଏସିଆ}} * 奧羅莫語:{{t|om|Asia}} * 奧塞梯語:{{t|os|Ази}} * 鄂圖曼土耳其語:{{t|ota|آسیا|tr=asiya}} * 班詩蘭語:{{t|pag|Asia}} * 普什圖語:{{t+|ps|آسيا|f|tr=āsyā}}、{{t|ps|اېشيا|f|tr=ešyā}} * 賓夕法尼亞德語:{{t|pdc|Asie}} * 波斯語:{{t+|fa|آسیا|tr=âsiyâ}} * 皮埃蒙特語:{{t|pms|Asia|f}} * 門諾低地德語:{{t|pdt|Asien|n}} * 波蘭語:{{t+|pl|Azja|f}} * 葡萄牙語:{{t+|pt|Ásia|f}} * 旁遮普語:{{t|pa|ਏਸ਼ਿਆ}} * 克丘亞語:{{t|qu|Asya}} * 羅興亞語:{{t|rhg|Asía}} * 羅馬尼亞語:{{t+|ro|Asia|f}} * 羅曼什語:{{t|rm|Asia|f}} * 俄語:{{t+|ru|А́зия|f}} * 盧森尼亞語:{{t|rue|А́зія|f}} * 盧旺達語:{{t|rw|Azia}} * 斯高克倫語:{{t|ksw|အ့ၡၢၣ်}} * 薩摩亞語:{{t|sm|Asia}} * 梵語:{{t|sa|एशिया}} * 桑塔利語:{{t|sat|ᱮᱥᱤᱭᱟ}} * 低地蘇格蘭語:{{t|sco|Asie}} * 蘇格蘭蓋爾語:{{t|gd|Àisia|f}}、{{t|gd|Aisia}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|А̑зија|f}} *: 拉丁字母:{{t+|sh|Ȃzija|f}} * 西西里語:{{t|scn|Asia|f}} * 西里西亞語:{{t|szl|Azyjo|f}} * 信德語:{{t|sd|ايشيا}} * 僧加羅語:{{t|si|ආසියාව}} * 斯洛伐克語:{{t+|sk|Ázia|f}} * 斯洛文尼亞語:{{t+|sl|Ázija|f}} * 索馬里語:{{t+|so|Aasiya}} * 索布語: *: 下索布語:{{t|dsb|Azija|f}} *: 上索布語:{{t+|hsb|Azija|f}} * 塞索托語:{{t|st|Asia}} * 西班牙語:{{t+|es|Asia|f}} * 巽他語:{{t+|su|Asia}} * 斯瓦希里語:{{t+|sw|Asia}} * 瑞典語:{{t+|sv|Asien|n}} * 他加祿語:{{t+|tl|Asya}} * 塔吉克語:{{t+|tg|Осиё}} * 泰米爾語:{{t+|ta|ஆசியா}} * 韃靼語:{{t|tt|Азия}} * 泰盧固語:{{t+|te|ఆసియా}} * 德頓語:{{t|tet|Ázia}} * 泰語:{{t+|th|เอเชีย}} * 藏語:{{t|bo|ཨེ་ཤེ་ཡ}}、{{t|bo|ཡ་ཀྲོའུ་གླིང}} * 提格里尼亞語:{{t|ti|እስያ}} * 托克皮辛語:{{t|tpi|Esia}} * 土耳其語:{{t+|tr|Asya}} * 土庫曼語:{{t+|tk|Aziýa}} * 圖瓦語:{{t|tyv|Азия}} * 烏得穆爾特語:{{t|udm|Азия}} * 烏克蘭語:{{t+|uk|А́зія|f}} * 烏爾都語:{{t|ur|ایشیاء|tr=eśiyā'}}、{{t+|ur|ایشیا|m|tr=eśiyā}} * 維吾爾語:{{t|ug|ئاسىيا}} * 烏茲別克語:{{t+|uz|Osiyo}} * 威尼斯語:{{t+|vec|Axia|f}} * 越南語:{{t+|vi|Châu Á}} ({{t|vi|洲亞}})、{{t|vi|Á Châu}} ({{t|vi|亞洲}})、{{t+|vi|Á}} ({{t|vi|亞}})、{{qualifier|罕用、棄用}} {{t|vi|Á Tế Á}} ({{t|vi|亞細亞}}) * 沃拉普克語:{{t+|vo|Siyop}} * 瓦隆語:{{t+|wa|Azeye}} * 威爾士語:{{t+|cy|Asia}} * 西弗里斯蘭語:{{t+|fy|Aazje}} * 西旁遮普語:{{t|pnb|ایشیا}} * 沃洛夫語:{{t+|wo|Asi}} * 雅庫特語:{{t|sah|Азия}} * 意第緒語:{{t|yi|אַזיע|f}} * 約魯巴語:{{t|yo|Éṣíà}} * 壯語:{{t|za|Yacouh}} ({{t|za|亞洲}}) {{trans-bottom}} {{C|zh|大洲}} ==日語== {{ja-kanjitab|あ|しゅう|yomi=o}} ===發音=== {{ja-pron|あしゅう}} ===專有名詞=== {{ja-pos|proper|あしゅう}} # {{ja-kyujitai spelling of|亜洲}} ==朝鮮語== {{ko-hanjatab}} ===專有名詞=== {{ko-proper noun|hj|hangeul=아주}} # {{hanja form of|아주|}} ==越南語== {{vi-hantutab}} ===專有名詞=== {{vi-proper noun|sc=Hani}} # {{han tu form of|Á châu|}} qgay9iz8pz1d2c7ufsje9y3onaenh2i Zambia 0 13631 9759426 9531875 2026-05-14T15:21:42Z TongcyDai 53191 9759426 wikitext text/x-wiki {{also|Zámbia|Zâmbia}} ==英語== {{wikipedia|lang=en}} ===詞源=== 來自[[Zambezi]]。 ===發音=== * {{IPA|en|/ˈzæmbiə/}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-Zambia.wav|音頻 (英國)}} ===專有名詞=== {{en-proper noun}} # {{tcl|en|贊比亞|t1=贊比亞|t2=尚比亞}} ====整體詞==== * {{l|en|Subsahara}} ====衍生詞==== * {{l|en|Zambian}} ===參見=== {{list:countries in Africa/en}} [[Category:含有後綴-ia的英語詞]] ==中瓦斯特卡納瓦特爾語== ===專有名詞=== {{head|nch|專有名詞}} # {{place|nch|國|cont/非洲|t=贊比亞}} ==中納瓦特爾語== ===專有名詞=== {{head|nhn|專有名詞}} # {{place|nhn|國|cont/非洲|t=贊比亞}} ==齊切瓦語== ===詞源=== {{rfe|ny}} ===發音=== * {{ny-IPA|Zámbia}} ===專有名詞=== {{ny-proper noun|Zámbia}} # {{place|ny|國|cont/非洲|t=贊比亞}} ==丹麥語== ===專有名詞=== {{head|da|專有名詞}} # {{place|da|國|cont/非洲|t=贊比亞}} ==荷蘭語== {{swp|lang=nl}} ===詞源=== 源自{{bor|nl|en|Zambia}}。 ===發音=== * {{IPA|nl|/ˈzɑm.bi.aː/}} * {{hyphenation|nl|Zam|bia}} ===專有名詞=== {{nl-proper noun|n}} # {{place|nl|國|cont/非洲|t=贊比亞}} ====衍生詞==== * {{l|nl|Zambiaan}} * {{l|nl|Zambiaas}} ==加利西亞語== {{wp|gl:}} ===其他形式=== * {{alt|gl|Zâmbia||reinteg}} ===發音=== {{gl-pr}} * {{hyph|gl|Zam|bia}} ===專有名詞=== {{gl-proper noun|f}} # {{tcl|gl|贊比亞|id=Q953}} ====派生詞彙==== * {{l|gl|zambiano}} ==匈牙利語== {{swp|hu:}} ===發音=== * {{hu-IPA}} * {{hyphenation|hu|Zam|bia}} * {{rhymes|hu|jɒ|s=3}} ===專有名詞=== {{head|hu|專有名詞}} # {{place|hu|國家|continent/非洲|t=贊比亞|cat=非洲國家}} ====變格==== {{hu-infl-nom|Zambiá|o|n=sg}}{{hu-pos-tok|Zambiá|n=sg}} ====衍生詞==== * {{l|hu|zambiai}} ==印尼語== {{wp|id:}} ===詞源=== 源自 {{m|id|Zambezi}}。 ===發音=== {{id-pr}} ===專有名詞=== {{id-proper noun}} # {{tcl|id|贊比亞|id=Q953}} ===名詞=== {{id-noun|a}} # [[贊比亞人]],[[尚比亞人]] ===形容詞=== {{id-adj}} # [[贊比亞]]的,[[尚比亞]]的 ==意大利語== {{wikipedia|lang=it}} ===發音=== {{it-pr|Dzàmbia}} ===專有名詞=== {{it-proper noun|m}} # {{place|it|國|cont/非洲|t=贊比亞}} ====衍生詞==== * {{l|it|zambiano}} {{C|it|國家}} ==拉丁語== {{wikipedia|lang=la}} ===發音=== * {{la-IPA}} ===專有名詞=== {{la-proper noun|Zambia<1>}} # {{lb|la|新拉丁語}} {{place|la|國|cont/非洲|t=贊比亞}} ====變格==== {{la-ndecl|Zambia<1>}} {{C|la|非洲國家|地名}} ==書面挪威語== {{wikipedia|lang=no}} ===專有名詞=== {{head|nb|專有名詞}} # {{place|nb|國|cont/非洲|t=贊比亞}} ====相關詞==== * {{l|nb|zambier}} * {{l|nb|zambisk}} {{C|nb|非洲國家}} ==新挪威語== {{wikipedia|lang=nn}} ===專有名詞=== {{head|nn|專有名詞}} # {{place|nn|國|cont/非洲|t=贊比亞}} ====相關詞==== * {{l|nn|zambiar}} * {{l|nn|zambisk}} {{C|nn|非洲國家}} ==波蘭語== {{swp|lang=pl}} ===發音=== {{pl-pr|a=Pl-Zambia.ogg}} ===專有名詞=== {{head|pl|專有名詞|g=f}} # {{place|pl|國|cont/非洲|t=贊比亞}} ====變格==== {{pl-decl-noun-sing |Zambia |Zambii |Zambii |Zambię |Zambią |Zambii |Zambio }} ====衍生詞==== * {{qualifier|名詞}} {{l|pl|Zambijczyk|g=m}}, {{l|pl|Zambijka|g=f}} * {{qualifier|形容詞}} {{l|pl|zambijski}} ===延伸閱讀=== * {{R:pl:WSJP}} * {{R:pl:PWN}} {{C|pl|非洲國家}} ==斯洛伐克語== {{wp|sk:}} ===發音=== * {{sk-IPA|t=loan|r=1|h=1}} ===專有名詞=== {{sk-proper noun|f|adj=zambijský|dem=Zambijčan|fdem=Zambijčanka}} # {{tcl|sk|贊比亞|id=Q953}} ====變格==== {{sk-ndecl|f|n=sg}} ===延伸閱讀=== * {{R:sk:SDK}} ==西班牙語== {{wikipedia|lang=es}} ===發音=== {{es-pr|+<audio:LL-Q1321 (spa)-Rodelar-Zambia.wav>}} ===專有名詞=== {{es-proper noun|f}} # {{place|es|國|cont/非洲|t=贊比亞}} {{C|es|非洲國家}} ==斯瓦希里語== ===發音=== * {{audio|sw|Sw-ke-Zambia.flac|音頻 (肯亞)}} ===專有名詞=== {{head|sw|專有名詞}} # {{place|sw|國|r/南非|t1=贊比亞}} ===參見=== {{list:countries in Africa/sw}} ==瑞典語== ===專有名詞=== {{sv-proper noun|n}} # {{place|sv|國|cont/非洲|t=贊比亞}} {{C|sv|非洲國家}} a4z5ehfs92puaws71xlp0qaumyfbcxq 9759427 9759426 2026-05-14T15:24:06Z TongcyDai 53191 9759427 wikitext text/x-wiki {{also|Zámbia|Zâmbia}} ==英語== {{wikipedia|lang=en}} ===詞源=== 來自[[Zambezi]]。 ===發音=== * {{IPA|en|/ˈzæmbiə/}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-Zambia.wav|音頻 (英國)}} ===專有名詞=== {{en-proper noun}} # {{tcl|en|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ====整體詞==== * {{l|en|Subsahara}} ====衍生詞==== * {{l|en|Zambian}} ===參見=== {{list:countries in Africa/en}} [[Category:含有後綴-ia的英語詞]] ==中瓦斯特卡納瓦特爾語== ===專有名詞=== {{head|nch|專有名詞}} # {{tcl|nch|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ==中納瓦特爾語== ===專有名詞=== {{head|nhn|專有名詞}} # {{tcl|nhn|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ==齊切瓦語== ===詞源=== {{rfe|ny}} ===發音=== * {{ny-IPA|Zámbia}} ===專有名詞=== {{ny-proper noun|Zámbia}} # {{tcl|ny|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ==丹麥語== ===專有名詞=== {{head|da|專有名詞}} # {{tcl|da|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ==荷蘭語== {{swp|lang=nl}} ===詞源=== 源自{{bor|nl|en|Zambia}}。 ===發音=== * {{IPA|nl|/ˈzɑm.bi.aː/}} * {{hyphenation|nl|Zam|bia}} ===專有名詞=== {{nl-proper noun|n}} # {{tcl|nl|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ====衍生詞==== * {{l|nl|Zambiaan}} * {{l|nl|Zambiaas}} ==加利西亞語== {{wp|gl:}} ===其他形式=== * {{alt|gl|Zâmbia||reinteg}} ===發音=== {{gl-pr}} * {{hyph|gl|Zam|bia}} ===專有名詞=== {{gl-proper noun|f}} # {{tcl|gl|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ====派生詞彙==== * {{l|gl|zambiano}} ==匈牙利語== {{swp|hu:}} ===發音=== * {{hu-IPA}} * {{hyphenation|hu|Zam|bia}} * {{rhymes|hu|jɒ|s=3}} ===專有名詞=== {{head|hu|專有名詞}} # {{tcl|hu|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ====變格==== {{hu-infl-nom|Zambiá|o|n=sg}}{{hu-pos-tok|Zambiá|n=sg}} ====衍生詞==== * {{l|hu|zambiai}} ==印尼語== {{wp|id:}} ===詞源=== 源自 {{m|id|Zambezi}}。 ===發音=== {{id-pr}} ===專有名詞=== {{id-proper noun}} # {{tcl|id|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ===名詞=== {{id-noun|a}} # [[贊比亞人]],[[尚比亞人]] ===形容詞=== {{id-adj}} # [[贊比亞]]的,[[尚比亞]]的 ==意大利語== {{wikipedia|lang=it}} ===發音=== {{it-pr|Dzàmbia}} ===專有名詞=== {{it-proper noun|m}} # {{tcl|it|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ====衍生詞==== * {{l|it|zambiano}} {{C|it|國家}} ==拉丁語== {{wikipedia|lang=la}} ===發音=== * {{la-IPA}} ===專有名詞=== {{la-proper noun|Zambia<1>}} # {{lb|la|新拉丁語}} {{tcl|la|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ====變格==== {{la-ndecl|Zambia<1>}} {{C|la|外名}} ==書面挪威語== {{wikipedia|lang=no}} ===專有名詞=== {{head|nb|專有名詞}} # {{tcl|nb|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ====相關詞==== * {{l|nb|zambier}} * {{l|nb|zambisk}} ==新挪威語== {{wikipedia|lang=nn}} ===專有名詞=== {{head|nn|專有名詞}} # {{tcl|nn|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ====相關詞==== * {{l|nn|zambiar}} * {{l|nn|zambisk}} ==波蘭語== {{swp|lang=pl}} ===發音=== {{pl-pr|a=Pl-Zambia.ogg}} ===專有名詞=== {{head|pl|專有名詞|g=f}} # {{tcl|pl|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ====變格==== {{pl-decl-noun-sing |Zambia |Zambii |Zambii |Zambię |Zambią |Zambii |Zambio }} ====衍生詞==== * {{qualifier|名詞}} {{l|pl|Zambijczyk|g=m}}, {{l|pl|Zambijka|g=f}} * {{qualifier|形容詞}} {{l|pl|zambijski}} ===延伸閱讀=== * {{R:pl:WSJP}} * {{R:pl:PWN}} ==斯洛伐克語== {{wp|sk:}} ===發音=== * {{sk-IPA|t=loan|r=1|h=1}} ===專有名詞=== {{sk-proper noun|f|adj=zambijský|dem=Zambijčan|fdem=Zambijčanka}} # {{tcl|sk|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ====變格==== {{sk-ndecl|f|n=sg}} ===延伸閱讀=== * {{R:sk:SDK}} ==西班牙語== {{wikipedia|lang=es}} ===發音=== {{es-pr|+<audio:LL-Q1321 (spa)-Rodelar-Zambia.wav>}} ===專有名詞=== {{es-proper noun|f}} # {{tcl|es|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ==斯瓦希里語== ===發音=== * {{audio|sw|Sw-ke-Zambia.flac|音頻 (肯亞)}} ===專有名詞=== {{head|sw|專有名詞}} # {{tcl|sw|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} ===參見=== {{list:countries in Africa/sw}} ==瑞典語== ===專有名詞=== {{sv-proper noun|n}} # {{tcl|sv|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953}} 6ihuj27brdrbsetomgxv40tbbpuoq1f 9759428 9759427 2026-05-14T15:25:59Z TongcyDai 53191 9759428 wikitext text/x-wiki {{also|Zámbia|Zâmbia}} ==英語== {{wikipedia|lang=en}} ===詞源=== 來自[[Zambezi]]。 ===發音=== * {{IPA|en|/ˈzæmbiə/}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-Zambia.wav|音頻 (英國)}} ===專有名詞=== {{en-proper noun}} # {{tcl|en|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ====整體詞==== * {{l|en|Subsahara}} ====衍生詞==== * {{l|en|Zambian}} ===參見=== {{list:countries in Africa/en}} [[Category:含有後綴-ia的英語詞]] ==中瓦斯特卡納瓦特爾語== ===專有名詞=== {{head|nch|專有名詞}} # {{tcl|nch|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ==中納瓦特爾語== ===專有名詞=== {{head|nhn|專有名詞}} # {{tcl|nhn|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ==齊切瓦語== ===詞源=== {{rfe|ny}} ===發音=== * {{ny-IPA|Zámbia}} ===專有名詞=== {{ny-proper noun|Zámbia}} # {{tcl|ny|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ==丹麥語== ===專有名詞=== {{head|da|專有名詞}} # {{tcl|da|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ==荷蘭語== {{swp|lang=nl}} ===詞源=== 源自{{bor|nl|en|Zambia}}。 ===發音=== * {{IPA|nl|/ˈzɑm.bi.aː/}} * {{hyphenation|nl|Zam|bia}} ===專有名詞=== {{nl-proper noun|n}} # {{tcl|nl|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ====衍生詞==== * {{l|nl|Zambiaan}} * {{l|nl|Zambiaas}} ==加利西亞語== {{wp|gl:}} ===其他形式=== * {{alt|gl|Zâmbia||reinteg}} ===發音=== {{gl-pr}} * {{hyph|gl|Zam|bia}} ===專有名詞=== {{gl-proper noun|f}} # {{tcl|gl|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ====派生詞彙==== * {{l|gl|zambiano}} ==匈牙利語== {{swp|hu:}} ===發音=== * {{hu-IPA}} * {{hyphenation|hu|Zam|bia}} * {{rhymes|hu|jɒ|s=3}} ===專有名詞=== {{head|hu|專有名詞}} # {{tcl|hu|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ====變格==== {{hu-infl-nom|Zambiá|o|n=sg}}{{hu-pos-tok|Zambiá|n=sg}} ====衍生詞==== * {{l|hu|zambiai}} ==印尼語== {{wp|id:}} ===詞源=== 源自 {{m|id|Zambezi}}。 ===發音=== {{id-pr}} ===專有名詞=== {{id-proper noun}} # {{tcl|id|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ===名詞=== {{id-noun|a}} # [[贊比亞人]],[[尚比亞人]] ===形容詞=== {{id-adj}} # [[贊比亞]]的,[[尚比亞]]的 ==意大利語== {{wikipedia|lang=it}} ===發音=== {{it-pr|Dzàmbia}} ===專有名詞=== {{it-proper noun|m}} # {{tcl|it|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ====衍生詞==== * {{l|it|zambiano}} {{C|it|國家}} ==拉丁語== {{wikipedia|lang=la}} ===發音=== * {{la-IPA}} ===專有名詞=== {{la-proper noun|Zambia<1>}} # {{lb|la|新拉丁語}} {{tcl|la|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ====變格==== {{la-ndecl|Zambia<1>}} {{C|la|外名}} ==書面挪威語== {{wikipedia|lang=no}} ===專有名詞=== {{head|nb|專有名詞}} # {{tcl|nb|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ====相關詞==== * {{l|nb|zambier}} * {{l|nb|zambisk}} ==新挪威語== {{wikipedia|lang=nn}} ===專有名詞=== {{head|nn|專有名詞}} # {{tcl|nn|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ====相關詞==== * {{l|nn|zambiar}} * {{l|nn|zambisk}} ==波蘭語== {{swp|lang=pl}} ===發音=== {{pl-pr|a=Pl-Zambia.ogg}} ===專有名詞=== {{head|pl|專有名詞|g=f}} # {{tcl|pl|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ====變格==== {{pl-decl-noun-sing |Zambia |Zambii |Zambii |Zambię |Zambią |Zambii |Zambio }} ====衍生詞==== * {{qualifier|名詞}} {{l|pl|Zambijczyk|g=m}}, {{l|pl|Zambijka|g=f}} * {{qualifier|形容詞}} {{l|pl|zambijski}} ===延伸閱讀=== * {{R:pl:WSJP}} * {{R:pl:PWN}} ==斯洛伐克語== {{wp|sk:}} ===發音=== * {{sk-IPA|t=loan|r=1|h=1}} ===專有名詞=== {{sk-proper noun|f|adj=zambijský|dem=Zambijčan|fdem=Zambijčanka}} # {{tcl|sk|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ====變格==== {{sk-ndecl|f|n=sg}} ===延伸閱讀=== * {{R:sk:SDK}} ==西班牙語== {{wikipedia|lang=es}} ===發音=== {{es-pr|+<audio:LL-Q1321 (spa)-Rodelar-Zambia.wav>}} ===專有名詞=== {{es-proper noun|f}} # {{tcl|es|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ==斯瓦希里語== ===發音=== * {{audio|sw|Sw-ke-Zambia.flac|音頻 (肯亞)}} ===專有名詞=== {{head|sw|專有名詞}} # {{tcl|sw|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} ===參見=== {{list:countries in Africa/sw}} ==瑞典語== ===專有名詞=== {{sv-proper noun|n}} # {{tcl|sv|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=y}} onzp4rfjxrre6l7ldgi9d0whp6mnmlq 9759466 9759428 2026-05-14T20:46:50Z TongcyDai 53191 9759466 wikitext text/x-wiki {{also|Zámbia|Zâmbia}} ==英語== {{wikipedia|lang=en}} ===詞源=== 來自[[Zambezi]]。 ===發音=== * {{IPA|en|/ˈzæmbiə/}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-Zambia.wav|a=UK}} ===專有名詞=== {{en-proper noun}} # {{tcl|en|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ====整體詞==== * {{l|en|Subsahara}} ====衍生詞==== * {{l|en|Zambian}} ===參見=== {{list:countries in Africa/en}} [[Category:含有後綴-ia的英語詞]] ==中瓦斯特卡納瓦特爾語== ===專有名詞=== {{head|nch|專有名詞}} # {{tcl|nch|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ==中納瓦特爾語== ===專有名詞=== {{head|nhn|專有名詞}} # {{tcl|nhn|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ==齊切瓦語== ===詞源=== {{rfe|ny}} ===發音=== * {{ny-IPA|Zámbia}} ===專有名詞=== {{ny-proper noun|Zámbia}} # {{tcl|ny|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ==丹麥語== ===專有名詞=== {{head|da|專有名詞}} # {{tcl|da|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ==荷蘭語== {{swp|lang=nl}} ===詞源=== 源自{{bor|nl|en|Zambia}}。 ===發音=== * {{IPA|nl|/ˈzɑm.bi.aː/}} * {{hyphenation|nl|Zam|bia}} ===專有名詞=== {{nl-proper noun|n}} # {{tcl|nl|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ====衍生詞==== * {{l|nl|Zambiaan}} * {{l|nl|Zambiaas}} ==加利西亞語== {{wp|gl:}} ===其他形式=== * {{alt|gl|Zâmbia||reinteg}} ===發音=== {{gl-pr}} * {{hyph|gl|Zam|bia}} ===專有名詞=== {{gl-proper noun|f}} # {{tcl|gl|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ====派生詞彙==== * {{l|gl|zambiano}} ==匈牙利語== {{swp|hu:}} ===發音=== * {{hu-IPA}} * {{hyphenation|hu|Zam|bia}} * {{rhymes|hu|jɒ|s=3}} ===專有名詞=== {{head|hu|專有名詞}} # {{tcl|hu|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ====變格==== {{hu-infl-nom|Zambiá|o|n=sg}}{{hu-pos-tok|Zambiá|n=sg}} ====衍生詞==== * {{l|hu|zambiai}} ==印尼語== {{wp|id:}} ===詞源=== 源自 {{m|id|Zambezi}}。 ===發音=== {{id-pr}} ===專有名詞=== {{id-proper noun}} # {{tcl|id|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ===名詞=== {{id-noun|a}} # [[贊比亞人]],[[尚比亞人]] ===形容詞=== {{id-adj}} # [[贊比亞]]的,[[尚比亞]]的 ==意大利語== {{wikipedia|lang=it}} ===發音=== {{it-pr|Dzàmbia}} ===專有名詞=== {{it-proper noun|m}} # {{tcl|it|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ====衍生詞==== * {{l|it|zambiano}} {{C|it|國家}} ==拉丁語== {{wikipedia|lang=la}} ===發音=== * {{la-IPA}} ===專有名詞=== {{la-proper noun|Zambia<1>}} # {{lb|la|新拉丁語}} {{tcl|la|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ====變格==== {{la-ndecl|Zambia<1>}} {{C|la|外名}} ==書面挪威語== {{wikipedia|lang=no}} ===專有名詞=== {{head|nb|專有名詞}} # {{tcl|nb|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ====相關詞==== * {{l|nb|zambier}} * {{l|nb|zambisk}} ==新挪威語== {{wikipedia|lang=nn}} ===專有名詞=== {{head|nn|專有名詞}} # {{tcl|nn|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ====相關詞==== * {{l|nn|zambiar}} * {{l|nn|zambisk}} ==波蘭語== {{swp|lang=pl}} ===發音=== {{pl-pr|a=Pl-Zambia.ogg}} ===專有名詞=== {{head|pl|專有名詞|g=f}} # {{tcl|pl|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ====變格==== {{pl-decl-noun-sing |Zambia |Zambii |Zambii |Zambię |Zambią |Zambii |Zambio }} ====衍生詞==== * {{qualifier|名詞}} {{l|pl|Zambijczyk|g=m}}, {{l|pl|Zambijka|g=f}} * {{qualifier|形容詞}} {{l|pl|zambijski}} ===延伸閱讀=== * {{R:pl:WSJP}} * {{R:pl:PWN}} ==斯洛伐克語== {{wp|sk:}} ===發音=== * {{sk-IPA|t=loan|r=1|h=1}} ===專有名詞=== {{sk-proper noun|f|adj=zambijský|dem=Zambijčan|fdem=Zambijčanka}} # {{tcl|sk|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ====變格==== {{sk-ndecl|f|n=sg}} ===延伸閱讀=== * {{R:sk:SDK}} ==西班牙語== {{wikipedia|lang=es}} ===發音=== {{es-pr|+<audio:LL-Q1321 (spa)-Rodelar-Zambia.wav>}} ===專有名詞=== {{es-proper noun|f}} # {{tcl|es|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ==斯瓦希里語== ===發音=== * {{audio|sw|Sw-ke-Zambia.flac|音頻 (肯亞)}} ===專有名詞=== {{head|sw|專有名詞}} # {{tcl|sw|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} ===參見=== {{list:countries in Africa/sw}} ==瑞典語== ===專有名詞=== {{sv-proper noun|n}} # {{tcl|sv|贊比亞|t1=贊比亞|t2=尚比亞|id=Q953|nolb=1}} bcv8woh6rz7pgvnkrl40r0q1man0lev Zimbabwe 0 13632 9759493 9531891 2026-05-14T20:55:56Z TongcyDai 53191 9759493 wikitext text/x-wiki {{also|津巴布韋}} ==英語== {{wikipedia|lang=en}} ===詞源=== 派生自{{der|en|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{IPA|en|/zɪmˈbɑːbweɪ/}} * {{hyphenation|en|Zim|ba|bwe}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-Zimbabwe.wav|a=UK}} ===專有名詞=== {{en-proper noun}} # {{tcl|en|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|en|Subsahara}} ===參見=== {{list:countries in Africa/en}} ==南非語== {{wp|af:}} ===詞源=== 派生自{{der|af|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|af|專有名詞}} # {{tcl|af|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{C|af|國家}} ==齊切瓦語== ===詞源=== 派生自{{der|ny|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{ny-IPA|Zimbábwe}} ===專有名詞=== {{ny-proper noun|Zimbábwe}} # {{tcl|ny|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{C|ny|國家}} ==捷克語== ===詞源=== 派生自{{der|cs|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{cs-proper noun|n|indecl=1|adj=zimbabwský|dem=Zimbabwan}} # {{tcl|cs|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|cs|zimbabwský}} * {{l|cs|Zimbabwan}} {{C|cs|國家}} ==荷蘭語== ===詞源=== 派生自{{der|nl|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{IPA|nl|/ˌzɪmˈbɑp.ʋə/|/ˌzɪmˈbɑ.bʋə/}} * {{audio|nl|Nl-Zimbabwe.ogg}} * {{hyphenation|nl|Zim|bab|we}} ===專有名詞=== {{nl-proper noun|n}} # {{tcl|nl|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====派生詞彙==== * {{l|nl|Zimbabwaan}} {{C|nl|國家}} ==芬蘭語== ===詞源=== 派生自{{der|fi|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|fi|專有名詞}} # {{tcl|fi|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====變格==== {{fi-decl-nalle|n=sg|Zimbabw|||a}} ====派生詞彙==== * 形容詞:{{l|fi|zimbabwelainen}} * 名詞:{{l|fi|zimbabwelainen}} {{C|fi|國家}} ==匈牙利語== {{swp|lang=hu}} ===詞源=== 派生自{{der|hu|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{hu-IPA}} * {{hyphenation|hu|Zim|bab|we}} * {{rhymes|hu|vɛ}} ===專有名詞=== {{head|hu|專有名詞}} # {{tcl|hu|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====變格==== {{hu-infl-nom|Zimbabwé|o|n=sg}}{{hu-pos-tok|Zimbabwé|n=sg}} 較少用的變格:<!-- cf. MNSZ2 at http://clara.nytud.hu/mnsz2-dev/index.html , 347 vs 250 hits for Zimbabwéban vs Zimbabwében --> {{hu-infl-nom|Zimbabwé|e|n=sg}}{{hu-pos-tek|Zimbabwé|n=sg}} ====派生詞彙==== * {{l|hu|zimbabwei}} ==印尼語== {{wp|id:}} ===詞源=== {{der+|id|sn|dzimba-dze-mabwe|t=house of stones}}, in reference to {{w|Great Zimbabwe}}。 ===發音=== {{id-pr|Zim.bab.wé}} ===專有名詞=== {{id-proper noun|head=}} # {{tcl|id|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參見=== {{list:countries in Africa/id}} ===延伸閱讀=== * {{R:KBBI Daring}} ==意大利語== {{wikipedia|lang=it}} ===詞源=== 派生自{{der|it|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== {{it-pr|Dzimbàbwe,#Dzimbàbu.e<ref:{{R:it:DiPI}}>}} ===專有名詞=== {{it-proper noun|m}} # {{tcl|it|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====派生詞彙==== * {{l|it|zimbabwiano}} ===參考資料=== <references/> ==書面挪威語== {{wikipedia|lang=no}} ===詞源=== 派生自{{der|nb|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|nb|專有名詞}} # {{tcl|nb|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|nb|zimbabwer}} * {{l|nb|zimbabwisk}} ==新挪威語== {{wikipedia|lang=nn}} ===詞源=== 派生自{{der|nn|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|nn|專有名詞}} # {{tcl|nn|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|nn|zimbabwar}} * {{l|nn|zimbabwisk}} {{C|nn|國家}} ==波蘭語== ===詞源=== 派生自{{der|pl|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===詞源=== 借自{{bor|pl|en|津巴布韋}},派生自{{der|pl|sn|dzimba-dze-mabwe|t=石頭屋}}。 ===發音=== * {{pl-pr|z-imbabwe|a=Pl-Zimbabwe.ogg|h=Zim.bab.we}} ===專有名詞=== {{pl-proper noun|n|indecl=yes}} # {{tcl|pl|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{cln|pl|外名}} ==葡萄牙語== ===詞源=== 派生自{{der|pt|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{pt-proper noun|m}} # {{alternative form of|pt|Zimbabué}} {{C|pt|國家}} ==修納語== ===專有名詞=== {{sn-proper noun|Zimbábwe}} # {{tcl|sn|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{C|sn|國家}} ==斯洛伐克語== {{wikipedia|lang=sk}} ===詞源=== 派生自{{der|sk|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{sk-proper noun|n|gen=Zimbabwe}} # {{tcl|sk|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參考資料=== * {{R:SDK}} {{C|sk|國家}} ==斯瓦希里語== ===詞源=== 派生自{{der|sw|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{audio|sw|Sw-ke-Zimbabwe.flac|a=Kenya}} ===專有名詞=== {{head|sw|專有名詞}} # {{tcl|sw|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參見=== {{list:countries in Africa/sw}} ==瑞典語== ===詞源=== 派生自{{der|sv|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{sv-proper noun|n}} # {{tcl|sv|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ==聰加語== ===名詞=== {{head|ts|專有名詞}} # {{tcl|ts|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} 9lkbs5g48xwb986suuywllq0y7opavm 9759494 9759493 2026-05-14T20:56:10Z TongcyDai 53191 9759494 wikitext text/x-wiki {{also|zimbabwe}} ==英語== {{wikipedia|lang=en}} ===詞源=== 派生自{{der|en|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{IPA|en|/zɪmˈbɑːbweɪ/}} * {{hyphenation|en|Zim|ba|bwe}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-Zimbabwe.wav|a=UK}} ===專有名詞=== {{en-proper noun}} # {{tcl|en|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|en|Subsahara}} ===參見=== {{list:countries in Africa/en}} ==南非語== {{wp|af:}} ===詞源=== 派生自{{der|af|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|af|專有名詞}} # {{tcl|af|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{C|af|國家}} ==齊切瓦語== ===詞源=== 派生自{{der|ny|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{ny-IPA|Zimbábwe}} ===專有名詞=== {{ny-proper noun|Zimbábwe}} # {{tcl|ny|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{C|ny|國家}} ==捷克語== ===詞源=== 派生自{{der|cs|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{cs-proper noun|n|indecl=1|adj=zimbabwský|dem=Zimbabwan}} # {{tcl|cs|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|cs|zimbabwský}} * {{l|cs|Zimbabwan}} {{C|cs|國家}} ==荷蘭語== ===詞源=== 派生自{{der|nl|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{IPA|nl|/ˌzɪmˈbɑp.ʋə/|/ˌzɪmˈbɑ.bʋə/}} * {{audio|nl|Nl-Zimbabwe.ogg}} * {{hyphenation|nl|Zim|bab|we}} ===專有名詞=== {{nl-proper noun|n}} # {{tcl|nl|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====派生詞彙==== * {{l|nl|Zimbabwaan}} {{C|nl|國家}} ==芬蘭語== ===詞源=== 派生自{{der|fi|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|fi|專有名詞}} # {{tcl|fi|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====變格==== {{fi-decl-nalle|n=sg|Zimbabw|||a}} ====派生詞彙==== * 形容詞:{{l|fi|zimbabwelainen}} * 名詞:{{l|fi|zimbabwelainen}} {{C|fi|國家}} ==匈牙利語== {{swp|lang=hu}} ===詞源=== 派生自{{der|hu|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{hu-IPA}} * {{hyphenation|hu|Zim|bab|we}} * {{rhymes|hu|vɛ}} ===專有名詞=== {{head|hu|專有名詞}} # {{tcl|hu|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====變格==== {{hu-infl-nom|Zimbabwé|o|n=sg}}{{hu-pos-tok|Zimbabwé|n=sg}} 較少用的變格:<!-- cf. MNSZ2 at http://clara.nytud.hu/mnsz2-dev/index.html , 347 vs 250 hits for Zimbabwéban vs Zimbabwében --> {{hu-infl-nom|Zimbabwé|e|n=sg}}{{hu-pos-tek|Zimbabwé|n=sg}} ====派生詞彙==== * {{l|hu|zimbabwei}} ==印尼語== {{wp|id:}} ===詞源=== {{der+|id|sn|dzimba-dze-mabwe|t=house of stones}}, in reference to {{w|Great Zimbabwe}}。 ===發音=== {{id-pr|Zim.bab.wé}} ===專有名詞=== {{id-proper noun|head=}} # {{tcl|id|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參見=== {{list:countries in Africa/id}} ===延伸閱讀=== * {{R:KBBI Daring}} ==意大利語== {{wikipedia|lang=it}} ===詞源=== 派生自{{der|it|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== {{it-pr|Dzimbàbwe,#Dzimbàbu.e<ref:{{R:it:DiPI}}>}} ===專有名詞=== {{it-proper noun|m}} # {{tcl|it|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====派生詞彙==== * {{l|it|zimbabwiano}} ===參考資料=== <references/> ==書面挪威語== {{wikipedia|lang=no}} ===詞源=== 派生自{{der|nb|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|nb|專有名詞}} # {{tcl|nb|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|nb|zimbabwer}} * {{l|nb|zimbabwisk}} ==新挪威語== {{wikipedia|lang=nn}} ===詞源=== 派生自{{der|nn|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|nn|專有名詞}} # {{tcl|nn|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|nn|zimbabwar}} * {{l|nn|zimbabwisk}} {{C|nn|國家}} ==波蘭語== ===詞源=== 派生自{{der|pl|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===詞源=== 借自{{bor|pl|en|津巴布韋}},派生自{{der|pl|sn|dzimba-dze-mabwe|t=石頭屋}}。 ===發音=== * {{pl-pr|z-imbabwe|a=Pl-Zimbabwe.ogg|h=Zim.bab.we}} ===專有名詞=== {{pl-proper noun|n|indecl=yes}} # {{tcl|pl|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{cln|pl|外名}} ==葡萄牙語== ===詞源=== 派生自{{der|pt|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{pt-proper noun|m}} # {{alternative form of|pt|Zimbabué}} {{C|pt|國家}} ==修納語== ===專有名詞=== {{sn-proper noun|Zimbábwe}} # {{tcl|sn|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{C|sn|國家}} ==斯洛伐克語== {{wikipedia|lang=sk}} ===詞源=== 派生自{{der|sk|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{sk-proper noun|n|gen=Zimbabwe}} # {{tcl|sk|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參考資料=== * {{R:SDK}} {{C|sk|國家}} ==斯瓦希里語== ===詞源=== 派生自{{der|sw|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{audio|sw|Sw-ke-Zimbabwe.flac|a=Kenya}} ===專有名詞=== {{head|sw|專有名詞}} # {{tcl|sw|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參見=== {{list:countries in Africa/sw}} ==瑞典語== ===詞源=== 派生自{{der|sv|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{sv-proper noun|n}} # {{tcl|sv|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ==聰加語== ===名詞=== {{head|ts|專有名詞}} # {{tcl|ts|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ojp756t57okue9pvvlwgtgcy5m4ml7f 9759495 9759494 2026-05-14T20:56:41Z TongcyDai 53191 9759495 wikitext text/x-wiki {{also|zimbabwe}} ==英語== {{wikipedia|lang=en}} ===詞源=== 派生自{{der|en|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{IPA|en|/zɪmˈbɑːbweɪ/}} * {{hyphenation|en|Zim|ba|bwe}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-Zimbabwe.wav|a=UK}} ===專有名詞=== {{en-proper noun}} # {{tcl|en|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|en|Subsahara}} ===參見=== {{list:countries in Africa/en}} ==南非語== {{wp|af:}} ===詞源=== 派生自{{der|af|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|af|專有名詞}} # {{tcl|af|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{C|af|國家}} ==齊切瓦語== ===詞源=== 派生自{{der|ny|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{ny-IPA|Zimbábwe}} ===專有名詞=== {{ny-proper noun|Zimbábwe}} # {{tcl|ny|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{C|ny|國家}} ==捷克語== ===詞源=== 派生自{{der|cs|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{cs-proper noun|n|indecl=1|adj=zimbabwský|dem=Zimbabwan}} # {{tcl|cs|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|cs|zimbabwský}} * {{l|cs|Zimbabwan}} {{C|cs|國家}} ==荷蘭語== ===詞源=== 派生自{{der|nl|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{IPA|nl|/ˌzɪmˈbɑp.ʋə/|/ˌzɪmˈbɑ.bʋə/}} * {{audio|nl|Nl-Zimbabwe.ogg}} * {{hyphenation|nl|Zim|bab|we}} ===專有名詞=== {{nl-proper noun|n}} # {{tcl|nl|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====派生詞彙==== * {{l|nl|Zimbabwaan}} {{C|nl|國家}} ==芬蘭語== ===詞源=== 派生自{{der|fi|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|fi|專有名詞}} # {{tcl|fi|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====變格==== {{fi-decl-nalle|n=sg|Zimbabw|||a}} ====派生詞彙==== * 形容詞:{{l|fi|zimbabwelainen}} * 名詞:{{l|fi|zimbabwelainen}} {{C|fi|國家}} ==匈牙利語== {{swp|lang=hu}} ===詞源=== 派生自{{der|hu|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{hu-IPA}} * {{hyphenation|hu|Zim|bab|we}} * {{rhymes|hu|vɛ}} ===專有名詞=== {{head|hu|專有名詞}} # {{tcl|hu|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====變格==== {{hu-infl-nom|Zimbabwé|o|n=sg}}{{hu-pos-tok|Zimbabwé|n=sg}} 較少用的變格:<!-- cf. MNSZ2 at http://clara.nytud.hu/mnsz2-dev/index.html , 347 vs 250 hits for Zimbabwéban vs Zimbabwében --> {{hu-infl-nom|Zimbabwé|e|n=sg}}{{hu-pos-tek|Zimbabwé|n=sg}} ====派生詞彙==== * {{l|hu|zimbabwei}} ==印尼語== {{wp|id:}} ===詞源=== {{der+|id|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== {{id-pr|Zim.bab.wé}} ===專有名詞=== {{id-proper noun|head=}} # {{tcl|id|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參見=== {{list:countries in Africa/id}} ===延伸閱讀=== * {{R:KBBI Daring}} ==意大利語== {{wikipedia|lang=it}} ===詞源=== 派生自{{der|it|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== {{it-pr|Dzimbàbwe,#Dzimbàbu.e<ref:{{R:it:DiPI}}>}} ===專有名詞=== {{it-proper noun|m}} # {{tcl|it|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====派生詞彙==== * {{l|it|zimbabwiano}} ===參考資料=== <references/> ==書面挪威語== {{wikipedia|lang=no}} ===詞源=== 派生自{{der|nb|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|nb|專有名詞}} # {{tcl|nb|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|nb|zimbabwer}} * {{l|nb|zimbabwisk}} ==新挪威語== {{wikipedia|lang=nn}} ===詞源=== 派生自{{der|nn|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|nn|專有名詞}} # {{tcl|nn|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|nn|zimbabwar}} * {{l|nn|zimbabwisk}} {{C|nn|國家}} ==波蘭語== ===詞源=== 派生自{{der|pl|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===詞源=== 借自{{bor|pl|en|津巴布韋}},派生自{{der|pl|sn|dzimba-dze-mabwe|t=石頭屋}}。 ===發音=== * {{pl-pr|z-imbabwe|a=Pl-Zimbabwe.ogg|h=Zim.bab.we}} ===專有名詞=== {{pl-proper noun|n|indecl=yes}} # {{tcl|pl|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{cln|pl|外名}} ==葡萄牙語== ===詞源=== 派生自{{der|pt|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{pt-proper noun|m}} # {{alternative form of|pt|Zimbabué}} {{C|pt|國家}} ==修納語== ===專有名詞=== {{sn-proper noun|Zimbábwe}} # {{tcl|sn|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{C|sn|國家}} ==斯洛伐克語== {{wikipedia|lang=sk}} ===詞源=== 派生自{{der|sk|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{sk-proper noun|n|gen=Zimbabwe}} # {{tcl|sk|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參考資料=== * {{R:SDK}} {{C|sk|國家}} ==斯瓦希里語== ===詞源=== 派生自{{der|sw|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{audio|sw|Sw-ke-Zimbabwe.flac|a=Kenya}} ===專有名詞=== {{head|sw|專有名詞}} # {{tcl|sw|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參見=== {{list:countries in Africa/sw}} ==瑞典語== ===詞源=== 派生自{{der|sv|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{sv-proper noun|n}} # {{tcl|sv|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ==聰加語== ===名詞=== {{head|ts|專有名詞}} # {{tcl|ts|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} cox2aifqa7yk8lo66hkymvabw9fbwar 9759496 9759495 2026-05-14T20:56:55Z TongcyDai 53191 9759496 wikitext text/x-wiki {{also|zimbabwe}} ==英語== {{wikipedia|lang=en}} ===詞源=== 派生自{{der|en|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{IPA|en|/zɪmˈbɑːbweɪ/}} * {{hyphenation|en|Zim|ba|bwe}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-Zimbabwe.wav|a=UK}} ===專有名詞=== {{en-proper noun}} # {{tcl|en|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|en|Subsahara}} ===參見=== {{list:countries in Africa/en}} ==南非語== {{wp|af:}} ===詞源=== 派生自{{der|af|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|af|專有名詞}} # {{tcl|af|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{C|af|國家}} ==齊切瓦語== ===詞源=== 派生自{{der|ny|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{ny-IPA|Zimbábwe}} ===專有名詞=== {{ny-proper noun|Zimbábwe}} # {{tcl|ny|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{C|ny|國家}} ==捷克語== ===詞源=== 派生自{{der|cs|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{cs-proper noun|n|indecl=1|adj=zimbabwský|dem=Zimbabwan}} # {{tcl|cs|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|cs|zimbabwský}} * {{l|cs|Zimbabwan}} {{C|cs|國家}} ==荷蘭語== ===詞源=== 派生自{{der|nl|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{IPA|nl|/ˌzɪmˈbɑp.ʋə/|/ˌzɪmˈbɑ.bʋə/}} * {{audio|nl|Nl-Zimbabwe.ogg}} * {{hyphenation|nl|Zim|bab|we}} ===專有名詞=== {{nl-proper noun|n}} # {{tcl|nl|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====派生詞彙==== * {{l|nl|Zimbabwaan}} {{C|nl|國家}} ==芬蘭語== ===詞源=== 派生自{{der|fi|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|fi|專有名詞}} # {{tcl|fi|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====變格==== {{fi-decl-nalle|n=sg|Zimbabw|||a}} ====派生詞彙==== * 形容詞:{{l|fi|zimbabwelainen}} * 名詞:{{l|fi|zimbabwelainen}} {{C|fi|國家}} ==匈牙利語== {{swp|lang=hu}} ===詞源=== 派生自{{der|hu|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{hu-IPA}} * {{hyphenation|hu|Zim|bab|we}} * {{rhymes|hu|vɛ}} ===專有名詞=== {{head|hu|專有名詞}} # {{tcl|hu|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====變格==== {{hu-infl-nom|Zimbabwé|o|n=sg}}{{hu-pos-tok|Zimbabwé|n=sg}} 較少用的變格:<!-- cf. MNSZ2 at http://clara.nytud.hu/mnsz2-dev/index.html , 347 vs 250 hits for Zimbabwéban vs Zimbabwében --> {{hu-infl-nom|Zimbabwé|e|n=sg}}{{hu-pos-tek|Zimbabwé|n=sg}} ====派生詞彙==== * {{l|hu|zimbabwei}} ==印尼語== {{wp|id:}} ===詞源=== {{der+|id|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== {{id-pr|Zim.bab.wé}} ===專有名詞=== {{id-proper noun|head=Zimbabwe}} # {{tcl|id|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參見=== {{list:countries in Africa/id}} ===延伸閱讀=== * {{R:KBBI Daring}} ==意大利語== {{wikipedia|lang=it}} ===詞源=== 派生自{{der|it|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== {{it-pr|Dzimbàbwe,#Dzimbàbu.e<ref:{{R:it:DiPI}}>}} ===專有名詞=== {{it-proper noun|m}} # {{tcl|it|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====派生詞彙==== * {{l|it|zimbabwiano}} ===參考資料=== <references/> ==書面挪威語== {{wikipedia|lang=no}} ===詞源=== 派生自{{der|nb|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|nb|專有名詞}} # {{tcl|nb|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|nb|zimbabwer}} * {{l|nb|zimbabwisk}} ==新挪威語== {{wikipedia|lang=nn}} ===詞源=== 派生自{{der|nn|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|nn|專有名詞}} # {{tcl|nn|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|nn|zimbabwar}} * {{l|nn|zimbabwisk}} {{C|nn|國家}} ==波蘭語== ===詞源=== 派生自{{der|pl|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===詞源=== 借自{{bor|pl|en|津巴布韋}},派生自{{der|pl|sn|dzimba-dze-mabwe|t=石頭屋}}。 ===發音=== * {{pl-pr|z-imbabwe|a=Pl-Zimbabwe.ogg|h=Zim.bab.we}} ===專有名詞=== {{pl-proper noun|n|indecl=yes}} # {{tcl|pl|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{cln|pl|外名}} ==葡萄牙語== ===詞源=== 派生自{{der|pt|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{pt-proper noun|m}} # {{alternative form of|pt|Zimbabué}} {{C|pt|國家}} ==修納語== ===專有名詞=== {{sn-proper noun|Zimbábwe}} # {{tcl|sn|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{C|sn|國家}} ==斯洛伐克語== {{wikipedia|lang=sk}} ===詞源=== 派生自{{der|sk|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{sk-proper noun|n|gen=Zimbabwe}} # {{tcl|sk|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參考資料=== * {{R:SDK}} {{C|sk|國家}} ==斯瓦希里語== ===詞源=== 派生自{{der|sw|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{audio|sw|Sw-ke-Zimbabwe.flac|a=Kenya}} ===專有名詞=== {{head|sw|專有名詞}} # {{tcl|sw|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參見=== {{list:countries in Africa/sw}} ==瑞典語== ===詞源=== 派生自{{der|sv|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{sv-proper noun|n}} # {{tcl|sv|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ==聰加語== ===名詞=== {{head|ts|專有名詞}} # {{tcl|ts|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} j2jfvwve9l8a9ypnixy53pv6ti4gj6j 9759497 9759496 2026-05-14T20:58:12Z TongcyDai 53191 9759497 wikitext text/x-wiki {{also|zimbabwe}} ==英語== {{wikipedia|lang=en}} ===詞源=== 派生自{{der|en|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{IPA|en|/zɪmˈbɑːbweɪ/}} * {{hyphenation|en|Zim|ba|bwe}} ** {{audio|en|LL-Q1860 (eng)-Vealhurl-Zimbabwe.wav|a=UK}} ===專有名詞=== {{en-proper noun}} # {{tcl|en|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|en|Subsahara}} ===參見=== {{list:countries in Africa/en}} ==南非語== {{wp|af:}} ===詞源=== 派生自{{der|af|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|af|專有名詞}} # {{tcl|af|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ==齊切瓦語== ===詞源=== 派生自{{der|ny|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{ny-IPA|Zimbábwe}} ===專有名詞=== {{ny-proper noun|Zimbábwe}} # {{tcl|ny|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ==捷克語== ===詞源=== 派生自{{der|cs|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{cs-proper noun|n|indecl=1|adj=zimbabwský|dem=Zimbabwan}} # {{tcl|cs|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|cs|zimbabwský}} * {{l|cs|Zimbabwan}} ==荷蘭語== ===詞源=== 派生自{{der|nl|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{IPA|nl|/ˌzɪmˈbɑp.ʋə/|/ˌzɪmˈbɑ.bʋə/}} * {{audio|nl|Nl-Zimbabwe.ogg}} * {{hyphenation|nl|Zim|bab|we}} ===專有名詞=== {{nl-proper noun|n}} # {{tcl|nl|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====派生詞彙==== * {{l|nl|Zimbabwaan}} ==芬蘭語== ===詞源=== 派生自{{der|fi|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|fi|專有名詞}} # {{tcl|fi|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====變格==== {{fi-decl-nalle|n=sg|Zimbabw|||a}} ====派生詞彙==== * 形容詞:{{l|fi|zimbabwelainen}} * 名詞:{{l|fi|zimbabwelainen}} ==匈牙利語== {{swp|lang=hu}} ===詞源=== 派生自{{der|hu|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{hu-IPA}} * {{hyphenation|hu|Zim|bab|we}} * {{rhymes|hu|vɛ}} ===專有名詞=== {{head|hu|專有名詞}} # {{tcl|hu|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====變格==== {{hu-infl-nom|Zimbabwé|o|n=sg}}{{hu-pos-tok|Zimbabwé|n=sg}} 較少用的變格:<!-- cf. MNSZ2 at http://clara.nytud.hu/mnsz2-dev/index.html , 347 vs 250 hits for Zimbabwéban vs Zimbabwében --> {{hu-infl-nom|Zimbabwé|e|n=sg}}{{hu-pos-tek|Zimbabwé|n=sg}} ====派生詞彙==== * {{l|hu|zimbabwei}} ==印尼語== {{wp|id:}} ===詞源=== {{der+|id|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== {{id-pr|Zim.bab.wé}} ===專有名詞=== {{id-proper noun|head=Zimbabwe}} # {{tcl|id|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參見=== {{list:countries in Africa/id}} ===延伸閱讀=== * {{R:KBBI Daring}} ==意大利語== {{wikipedia|lang=it}} ===詞源=== 派生自{{der|it|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== {{it-pr|Dzimbàbwe,#Dzimbàbu.e<ref:{{R:it:DiPI}}>}} ===專有名詞=== {{it-proper noun|m}} # {{tcl|it|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====派生詞彙==== * {{l|it|zimbabwiano}} ===參考資料=== <references/> ==書面挪威語== {{wikipedia|lang=no}} ===詞源=== 派生自{{der|nb|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|nb|專有名詞}} # {{tcl|nb|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|nb|zimbabwer}} * {{l|nb|zimbabwisk}} ==新挪威語== {{wikipedia|lang=nn}} ===詞源=== 派生自{{der|nn|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{head|nn|專有名詞}} # {{tcl|nn|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ====相關詞彙==== * {{l|nn|zimbabwar}} * {{l|nn|zimbabwisk}} ==波蘭語== ===詞源=== 派生自{{der|pl|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===詞源=== 借自{{bor|pl|en|Zimbabwe}},派生自{{der|pl|sn|dzimba-dze-mabwe|t=石頭屋}}。 ===發音=== * {{pl-pr|z-imbabwe|a=Pl-Zimbabwe.ogg|h=Zim.bab.we}} ===專有名詞=== {{pl-proper noun|n|indecl=yes}} # {{tcl|pl|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} {{cln|pl|外名}} ==葡萄牙語== ===詞源=== 派生自{{der|pt|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{pt-proper noun|m}} # {{alternative form of|pt|Zimbabué}} ==修納語== ===專有名詞=== {{sn-proper noun|Zimbábwe}} # {{tcl|sn|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ==斯洛伐克語== {{wikipedia|lang=sk}} ===詞源=== 派生自{{der|sk|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{sk-proper noun|n|gen=Zimbabwe}} # {{tcl|sk|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參考資料=== * {{R:SDK}} ==斯瓦希里語== ===詞源=== 派生自{{der|sw|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===發音=== * {{audio|sw|Sw-ke-Zimbabwe.flac|a=Kenya}} ===專有名詞=== {{head|sw|專有名詞}} # {{tcl|sw|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ===參見=== {{list:countries in Africa/sw}} ==瑞典語== ===詞源=== 派生自{{der|sv|sn|dzimba-dze-mabwe|t=石頭屋}},即{{w|大辛巴威}}遺址。 ===專有名詞=== {{sv-proper noun|n}} # {{tcl|sv|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} ==聰加語== ===名詞=== {{head|ts|專有名詞}} # {{tcl|ts|津巴布韋|id=Q954|t1=津巴布韋|t2=辛巴威|nolb=1}} 7jkqc47eniuem65pf0yuja7ynl02z6k Nordamerika 0 15760 9759656 9547945 2026-05-14T23:52:05Z TongcyDai 53191 9759656 wikitext text/x-wiki {{also|Nord-Amerika}} ==丹麥語== {{wp|da:}} ===詞源=== 源自 {{compound|da|nord|Amerika}}。 ===發音=== {{rfp|da}} ===專有名詞=== {{head|da|專有名詞}} # {{tcl|da|北美洲|id=Q49}} ==德語== ===詞源=== {{ety|de|:af|Nord|Amerika}} {{compound|de|Nord|Amerika}} ===發音=== * {{IPA|de|/ˌnɔrt.aˈmeːrika/|/ˈnɔrt.aˌmeːrika/|[nɔʁt.ʔa.meː.ʁi.ka]|[nɔʁ.ta-]|[nɔɐ̯-]|[nɔː-]|[-ʁɪ-]}} * {{IPA|de|/ˌnɔɑ̯d̥ɑˈmɛɐ̯ʀikɑ/|aa=Austria}} * {{audio|de|De-Nordamerika.ogg|a=柏林}} * {{hyph|de|Nord|ame|ri|ka}} ===專有名詞=== {{de-proper noun|n}} # {{tcl|de|北美洲|id=Q49}} ====同類詞彙==== {{list:continents/de}} ====相關詞彙==== * {{l|de|nordamerikanisch}} {{cln|de|外名}} ==瑞典語== {{wp|sv:}} ===詞源=== 源自 {{compound|sv|nord|Amerika}} ===發音=== * {{IPA|sv|/ˈnuːrdaˌmeːrɪka/}} ===專有名詞=== {{sv-proper noun|n}} # {{tcl|sv|北美洲|id=Q49}} ====派生詞彙==== * {{l|sv|nordamerikansk}} * {{l|sv|nordamerikan}} * {{l|sv|nordamerikanska}} ====參見==== * {{l|sv|Centralamerika}} * {{l|sv|Sydamerika}} {{list:continents/sv}} {{list:countries in North America/sv}} ===參考資料=== * {{R:svenska.se|saol}} * [https://web.archive.org/web/20220126211703/https://mesh.kib.ki.se/term/D009656/north-america Svensk MeSH] ===異序詞=== * {{anagrams|sv|a=aadeikmnorr|rikedomarna}} tp9xid5kt93uvhc2th5aiezvbapdaez Australien 0 16901 9759657 9584694 2026-05-14T23:53:48Z TongcyDai 53191 9759657 wikitext text/x-wiki {{also|australien}} ==丹麥語== {{wp|da:}} ===專有名詞=== {{head|da|專有名詞|g=n}} # {{tcl|da|澳大利亞|id=Q408,Q3960}} {{cln|da|外名}} ==法語== {{wp|fr:}} ===名詞=== {{fr-noun|m|f=+}} # {{demonym-noun|fr|<<c/澳大利亞>>|g=m}} ===延伸閱讀=== * {{R:fr:TLFi}} ===異序詞=== * {{l|fr|neutralisa}} {{C|fr|國籍}} ==德語== {{wp|de:}} ===發音=== * {{audio|de|De-Australien.ogg}} * {{IPA|de|/aʊsˈtʁaːli̯ən/}} * {{audio|de|De-Australien2.ogg|a=柏林}} ===專有名詞=== {{de-proper noun|toponym}} # {{tcl|de|澳大利亞|id=Q408,Q3960}} ====同類詞彙==== {{list:continents/de}} ====相關詞彙==== * {{l|de|Australier}} * {{l|de|australisch}} {{cln|de|外名}} ==門諾低地德語== ===名詞=== {{head|pdt|專有名詞|g=n}} # {{tcl|pdt|澳大利亞|id=Q408,Q3960}} ==瑞典語== {{wp|sv:}} ===發音=== * {{audio|sv|LL-Q9027 (swe)-Moonhouse-Australien.wav}} ===專有名詞=== {{sv-proper noun|n}} # {{tcl|sv|澳大利亞|id=Q408}} #: {{syn|sv|Nya Holland|Ulimaroa|q=obsolete}} # {{tcl|sv|澳大利亞|id=Q3960}} ====相關詞彙==== {{col|sv |australisk<t:澳大利亞的><pos:形容詞> |australiensisk<t:澳大利亞的><pos:形容詞> |australier<t:澳大利亞男性><g:c> |australienare<t:澳大利亞男性><g:c> |australiska<t:澳大利亞女性><g:c> |australienska<t:澳大利亞女性><g:c> }} ====參見==== * {{l|sv|Oceanien}} * {{l|sv|koala}} * {{l|sv|kontinent}} * {{l|sv|känguru}} * {{l|sv|världsdel}} {{list:countries in Oceania/sv}} ===延伸閱讀=== * {{R:svenska.se}} * {{R:Utrikes namnbok|12}} * [https://web.archive.org/web/20250225050812/https://mesh.kib.ki.se/term/D001315/australia Svensk MeSH] {{cln|sv|外名}} msy6l05d6rl231bfy0r9aynkc0sphsd 9759658 9759657 2026-05-14T23:54:11Z TongcyDai 53191 /* 專有名詞 */ // Edit via Wikiplus 9759658 wikitext text/x-wiki {{also|australien}} ==丹麥語== {{wp|da:}} ===專有名詞=== {{head|da|專有名詞|g=n}} # {{tcl|da|澳大利亞|id=Q408,Q3960}} {{cln|da|外名}} ==法語== {{wp|fr:}} ===名詞=== {{fr-noun|m|f=+}} # {{demonym-noun|fr|<<c/澳大利亞>>|g=m}} ===延伸閱讀=== * {{R:fr:TLFi}} ===異序詞=== * {{l|fr|neutralisa}} {{C|fr|國籍}} ==德語== {{wp|de:}} ===發音=== * {{audio|de|De-Australien.ogg}} * {{IPA|de|/aʊsˈtʁaːli̯ən/}} * {{audio|de|De-Australien2.ogg|a=柏林}} ===專有名詞=== {{de-proper noun|toponym}} # {{tcl|de|澳大利亞|id=Q408,Q3960}} ====同類詞彙==== {{list:continents/de}} ====相關詞彙==== * {{l|de|Australier}} * {{l|de|australisch}} {{cln|de|外名}} ==門諾低地德語== ===名詞=== {{head|pdt|專有名詞|g=n}} # {{tcl|pdt|澳大利亞|id=Q408,Q3960}} ==瑞典語== {{wp|sv:}} ===發音=== * {{audio|sv|LL-Q9027 (swe)-Moonhouse-Australien.wav}} ===專有名詞=== {{sv-proper noun|n}} # {{tcl|sv|澳大利亞|id=Q408}} #: {{syn|sv|Nya Holland|Ulimaroa|q=棄用}} # {{tcl|sv|澳大利亞|id=Q3960}} ====相關詞彙==== {{col|sv |australisk<t:澳大利亞的><pos:形容詞> |australiensisk<t:澳大利亞的><pos:形容詞> |australier<t:澳大利亞男性><g:c> |australienare<t:澳大利亞男性><g:c> |australiska<t:澳大利亞女性><g:c> |australienska<t:澳大利亞女性><g:c> }} ====參見==== * {{l|sv|Oceanien}} * {{l|sv|koala}} * {{l|sv|kontinent}} * {{l|sv|känguru}} * {{l|sv|världsdel}} {{list:countries in Oceania/sv}} ===延伸閱讀=== * {{R:svenska.se}} * {{R:Utrikes namnbok|12}} * [https://web.archive.org/web/20250225050812/https://mesh.kib.ki.se/term/D001315/australia Svensk MeSH] {{cln|sv|外名}} 351n5mk4l77sl8yzmhf3ufjv03hk4zn Algerien 0 17194 9759440 9528086 2026-05-14T16:01:03Z TongcyDai 53191 9759440 wikitext text/x-wiki {{also|Algérien|algérien}} ==德語== ===發音=== * {{IPA|de|/alˈɡeːʁiən/}} * {{audio|de|De-at-Algerien.ogg|a=奧地利}} * {{audio|de|De-Algerien.ogg|a=柏林}} ===專有名詞=== {{de-proper noun|toponym}} # {{tcl|de|阿爾及利亞|id=Q262}} ====變格==== {{de-ndecl|n.sg}} ====派生詞彙==== * {{l|de|Algerier}} * {{l|de|algerisch}} ===參見=== {{list:countries in Africa/de}} {{cln|de|外名}} ==盧森堡語== {{wikipedia|lb:}} ===發音=== * {{audio|lb|Lb-Algerien.ogg}} ===專有名詞=== {{head|lb|專有名詞|g=n}} # {{tcl|lb|阿爾及利亞|id=Q262}} ====相關詞彙==== * {{l|lb|algeresch}} mfe5c6p735zwfjdsdhdz2y0qj6inf2m u 0 34125 9759462 8455853 2026-05-14T17:39:38Z ~2026-29084-20 133375 /* */ 9759462 wikitext text/x-wiki TB51k2U25QmFxgtohKAw6Nfn5G3F5JFmw7 == 英语 == ===發音=== ; 字母名 * {{IPA|en|/juː/}} ; 音位 * {{IPA|en|/a/|/ʉː/|/ʊ/|a=AusE}} * {{audio|en|en-ca-u.ogg|音頻(加拿大)}} * {{IPA|en|/ʌ/|/uː/|/ʊ/|a=RP}} * {{IPA|en|/ʌ/|/u/|/ʊ/|a=US}} * {{audio|en|en-us-u.ogg|音頻(通用美式)}} 互联网上的非正式缩写、相当于[[you]]"你" ==西班牙语== 或 == 马尔他语 == 和、与、并且 ==荷兰语== [[Category:荷兰语]] 您 ==西班牙语== f. 西班牙语的第二十四个字母 conj. 或,或者,即,就是(o在以o或ho起始的词前时改写为u) [[Category:英語]] [[Category:拉丁文字]] [[Category:英语名词]] [[Category:西班牙语]] [[Category:西班牙语名词]] nnu9mrcaznb8io3a889jv6ssl58kgn4 9759464 9759462 2026-05-14T17:59:59Z TongcyDai 53191 取消[[Special:Contributions/~2026-29084-20|~2026-29084-20]] ([[User talk:~2026-29084-20|对话]])的编辑;更改回[[Special:Contributions/KotoriBot|KotoriBot]]的最后一个版本 8455853 wikitext text/x-wiki == 英语 == ===發音=== ; 字母名 * {{IPA|en|/juː/}} ; 音位 * {{IPA|en|/a/|/ʉː/|/ʊ/|a=AusE}} * {{audio|en|en-ca-u.ogg|音頻(加拿大)}} * {{IPA|en|/ʌ/|/uː/|/ʊ/|a=RP}} * {{IPA|en|/ʌ/|/u/|/ʊ/|a=US}} * {{audio|en|en-us-u.ogg|音頻(通用美式)}} 互联网上的非正式缩写、相当于[[you]]"你" ==西班牙语== 或 == 马尔他语 == 和、与、并且 ==荷兰语== [[Category:荷兰语]] 您 ==西班牙语== f. 西班牙语的第二十四个字母 conj. 或,或者,即,就是(o在以o或ho起始的词前时改写为u) [[Category:英語]] [[Category:拉丁文字]] [[Category:英语名词]] [[Category:西班牙语]] [[Category:西班牙语名词]] ba7db3i6wxhkni1xkwykvf0eh7on425 Algeria 0 42020 9759412 9211375 2026-05-14T14:37:10Z TongcyDai 53191 9759412 wikitext text/x-wiki ==英语== {{wp|lang=en}} [[File:Flag of Algeria.svg|thumb|right|Flag of '''Algeria''']] [[File:Algeria (centered orthographic projection).svg|thumb|right|'''Algeria''']] ===词源=== 源自[[w:阿拉伯语|阿拉伯语]] ''[[الجزائر]]'' (al-jazāʾir, “岛”),  ''[[جزيرة]]'' (jazīra, “岛”)的复数形式, 和曾经存在于阿尔及尔湾上的几个小岛有关。 ===發音=== * {{IPA|en|/ælˈdʒɪəɹiə/|a=RP}} * {{IPA|en|/ælˈdʒɪɹiə/|a=GA}} * {{audio|en|LL-Q1860 (eng)-Soundguys-Algeria.wav|a=UK}} * {{audio|en|En-us-Algeria.ogg|a=US}} * {{rhymes|en|ɪɹiə|s=4}} ===专有名词=== {{en-proper noun}} # {{tcl|en|阿爾及利亞|id=Q262}} ====衍生词==== * {{l|en|Algerian}} ====派生語彙==== * {{desc|ja|bor=1|アルジェリア|tr=Arujeria}} ===參見=== * [[Appendix:Countries of the world]] {{list:countries in Africa/en}} {{list:provinces of Algeria/en}} ===異序詞=== * {{anagrams|en|a=aaegilr|lairage|regalia}} ==芬兰语== {{wikipedia|lang=fi}} ===专有名词=== {{fi-proper noun}} # {{tcl|fi|阿爾及利亞|id=Q262}} ====變格==== {{fi-decl-kulkija|n=sg|Algeri|a}} ===專有名詞=== {{head|fi|專有名詞變格形}} # {{inflection of|fi|Alger||par|s}} ====衍生詞==== {{col|fi |algerialainen }} {{col|fi|title=compounds |algerianarabia |algeriangundi |algeriannakkeli |algeriantamaani }} ===異序詞=== * {{anagrams|fi|a=aaegilr|regaali}} ==意大利语== {{wikipedia|lang=it}} [[File:Algeria_(orthographic_projection).svg|thumb|right|250px]] ===发音=== * {{audio|it|It-Algeria.ogg|Audio}} ===专有名词=== {{it-proper noun|f}} # {{tcl|it|阿爾及利亞|id=Q262}} ====派生词==== * {{l|it|algerino}} ===異序詞=== * {{anagrams|it|a=aaegilr|aligera|regalai|regalia}} {{cln|it|外名}} ==斯瓦希里语== {{wp|lang=sw}} ===其他写法=== * {{alter|sw|Aljeria}} ===發音=== * {{audio|sw|Sw-ke-Algeria.flac|a=Kenya}} ===专有名词=== {{head|sw|專有名詞}} # {{tcl|sw|阿爾及利亞|id=Q262}} ===參見=== {{list:countries in Africa/sw}} kxlvom8rl1y36zp8gymf9rivao87gtv Wiktionary:机器人 4 59753 9760179 7062436 2026-05-15T10:30:01Z ~2026-29286-06 133385 /* */ 9760179 wikitext text/x-wiki 趙焯文是我養的機器人 {{Auto-archive | archive_after_last_comment = 60 | archive_to_subpage = 申请存档 }} {{Interwiki|机器人}} {{Shortcut|WT:BOT}} {{方針列表}} [[File:Wiktionary Bots.png|230px|right]] <div> 歡迎來到'''Wiktionary:机器人''',您可以在這裏就机器人運作提問。如果您的問題是關于維基詞典運作中的一般問題,請訪問[[Wiktionary:啤酒馆|啤酒館]]。如果您的問題是關于某個詞的,請訪問[[Wiktionary:茶室|茶室]]。多谢您的合作! 爲了大家方便閱讀,請在問題或答案之後簽名:打四個波浪號(<nowiki>~~~~</nowiki>)。保存頁面之後,計算機會自動顯示出名字和時間。 维基词典的机器人主要用于自动处理一些繁琐的格式或数据。机器人可以用来创建条目,修改或破坏条目,因此我们需要谨慎的使用它。一个好的机器人对维基詞典计划能带来很大的帮助。但是由于系统本身并没有设计机器人,因此再好的机器人也可能带有某些缺点。 *'''中文 (zh)''': 本wiki允许[[m:bot policy#Global_bots|全局机器人]]和[[m:bot policy#Automatic_approval|自动批准的机器人]]。这类机器人请不要在這裡申请。其他机器人的申请请到'''[[#新机器人注册]]'''提出。 * '''英文 (en)''': Requests for the [[m:bot|bot]] flag should be made on this page. This wiki uses the [[m:bot policy|standard bot policy]], and allows [[m:bot policy#Global_bots|global bots]] and [[m:bot policy#Automatic_approval|automatic approval of certain types of bots]]. Other bots should apply below. <div class="center" style="width:auto; margin-left:auto; margin-right:auto;{{#if:|;}}">'''直接寫個[//zh.wiktionary.org/w/wiki.phtml?title=Wiktionary:机器人&action=edit&section=3 新提議]</div> </div> == 当前的准则 == 在当前的状况下,一个机器人的制造者需要遵循下列准则,以证明它所负有的责任: #机器人必须是'''有用的''' #机器人必须是'''无害的''' #机器人絕'''不能对服务器造成影响''' #使用机器人必须被'''批准''' 在使用一个机器人之前你必须获得管理员的许可,并且通告大家他不是一个真实的人(您可以在用户页上注明)。另外,使用一个机器人时,请为这个机器人单独注册一个用户名,并且最好在用户名中用“bot”来表示这个用户是一个机器人。例如申请一个用户名为'''User:WiktionaryBot'''。 在当前的系统中,一个已注册的机器人所作的修改在[[Special:Recentchanges|最近更改]]中默认是隐藏的,其他用户不会看到。如果您想看到机器人所作的修改,可以使用[{{fullurl:Special:最近更改|hidehumans=1&hideWikibase=1&urlversion=2}} 這個連結]来查看。 '''请在获得社群的批准后,至[[:m:Steward requests/Bot status]]申請機器人權限。''' == 已注册的机器人 == 當前全部機器人自動列表,請參看[[Special:用户列表/bot]] <pre> #[[User:机器人帐户名|机器人帐户名]] (操作:[[User:用户名|用户名]][[User_talk:用户名|<sup><small>对话页</small></sup>]]) </pre> #[[User:A2093064-bot|A2093064-bot]] (操作:[[User:Xiplus|Xiplus]][[User_talk:Xiplus|<sup><small>对话页</small></sup>]]) #[[User:JackBot|JackBot]] (操作:[[meta:User:JackPotte|JackPotte]]) #[[User:OctraBot|OctraBot]] (操作:[[User:Octahedron80|Octahedron80]]) #[[User:TongcyBot|TongcyBot]] (操作:[[User:TongcyDai|TongcyDai]][[User_talk:TongcyDai|<sup><small>对话页</small></sup>]]) #[[User:CrowleyBot|CrowleyBot]] (操作:[[User:EdwardAlexanderCrowley|EdwardAlexanderCrowley]][[User_talk:EdwardAlexanderCrowley|<sup><small>对话页</small></sup>]]) #[[User:KotoriBot|KotoriBot]] (操作:[[User_talk:Hzy980512|Hzy980512]]) # [[User:Cewbot|Cewbot]](操作者:[[User:Kanashimi|Kanashimi]]) === 已除權的機器人 === #[[User:RobotGMwikt|RobotGMwikt]] (操作:[[User:GerardM|GerardM]][[User_talk:GerardM|<sup><small>对话页</small></sup>]][http://zh.wiktionary.org/w/index.php?title=User_talk:GerardM&action=edit&section=new <sup>+</sup>]) #[[User:PiBot|PiBot]] (操作:[[User:Shibo77|Shibo77]][[User_talk:Shibo77|<sup><small>对话页</small></sup>]][http://zh.wiktionary.org/w/index.php?title=User_talk:Shibo77&action=edit&section=new <sup>+</sup>]) #[[User:OKBot|OKBot]] (操作:[[:ar:User:OsamaK]]) #[[User:SpaceBirdyBot|SpaceBirdyBot]] (操作:[[:is:Notandi:Spacebirdy]]) #[[User:VolkovBot|VolkovBot]] (操作:[[:ru:User:Volkov]]) #[[User:SieBot|SieBot]] (操作:[[:commons:User:Siebrand]]) #[[User:Luckas-bot|Luckas-bot]] (操作:[[:pt:User:Luckas Blade]]) #[[User:lccfbot|lccfbot]] (操作:[[User:Lccf]]) #[[USer:Wjcdbot|Wjcdbot]] (操作:[[User:Wjcd]]) #[[User:KamikazeBot|KamikazeBot]] (操作:[[User:Karol007]]) #[[User:MenasimBot|MenasimBot]] (操作:[[:en:User:Menasim]]) 除 PiBot, Lccfbot, Wjcdbot 外,其餘均為僅用於添加跨語言連結的機械人。 由於大批量導入工作的完成,以及2017年以後不再需要向詞條手動添加跨語言鏈接,上述機器人已久無使用需要,已於2018年除權。 [[Category:维基词典|机]] [[Category:維基詞典方針]] == 机器人提议 == 如果您希望那些功能机器人的实现会对维基词典有助,可以在下面提出,大家也可以讨论是否支持这种机器人的出现,机器人的制造者们也有可能会考虑去实现您的设想。舊的討論請參見[[Wiktionary:机器人/提议存档]]。 == 机器人申請 == * [[Wiktionary:机器人/申请存档|申请存档]] <pre> # {{支持}}~~~~ # {{中立}}~~~~ # {{反对}}~~~~ </pre> <!-- 請在本列以下申請。Please apply below this line. --> <!-- 如無申請,請加入「{{Nodis|申請}}」--> {{Nodis|申請}} mle9t4jtb9ci9ktztqjl6twswkha2ee pecan 0 131796 9760163 6661264 2026-05-15T07:28:14Z InternetArchiveBot 95668 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 9760163 wikitext text/x-wiki ==英語== ===發音=== {{rel-top|發音}} * {{IPA|en|/piːˈkɑːn/}} {{qualifier|美國32%使用者使用的發音;除紐約、新英格蘭和東南沿海以外,其他地方都很普遍}}<ref name="dialect">[https://web.archive.org/web/20200517132431/http://www4.uwm.edu/FLL/linguistics/dialect/staticmaps/q_21.html The Dialect Survey], and [https://web.archive.org/web/20130606184957/http://spark-1590165977.us-west-2.elb.amazonaws.com/jkatz/SurveyMaps/ Joshua Katz's maps of it]</ref> * {{IPA|en|/pɪˈkɑːn/}} {{qualifier|美國23%使用者使用的發音,主要是在中西部南部;亦用於英國}}<ref name="dialect" /><ref>{{R:Dictionary.com}}</ref><ref name=COED>"[http://www.wordreference.com/definition/pecan pecan]" in the ''Concise Oxford English Dictionary'', 2008, WordReference.com</ref> * {{IPA|en|/ˈpiːkæn/}} {{qualifier|美國14%使用者使用的發音,常見於紐約、新英格蘭和東南沿海地區;也用於英國、澳大利亞和加拿大}}<ref name="dialect" /><ref name=Merriam-Webster>{{R:Merriam Webster Online}}</ref><ref>Christopher Davies, ''Divided by a Common Language: A Guide to British and American English'' (2005-7)</ref><ref name="Gage">'''1983''', ''{{w|Gage Canadian Dictionary}}''</ref><ref name="Canadian Oxford">'''2004''', ''{{w|Canadian Oxford Dictionary}}'', 2 ed.</ref> * {{IPA|en|/ˈpiːkɑːn/}} {{qualifier|美國13%使用者使用的發音,主要是在上中西部地區}}<ref name="dialect" /> * {{IPA|en|/piːˈkæn/}} {{qualifier|美國7%使用者使用的發音,在任何地區都不常見;也用於加拿大,澳大利亞和新西蘭}}<ref name="dialect" /><ref name="Canadian Oxford" /><ref name="Aus Oxford">'''2004''', ''{{w|Australian Oxford Dictionary}}''</ref><ref name="NZ Oxford">'''2005''', ''New Zealand Oxford Dictionary''</ref> * {{IPA|en|/ˈpɪkæn/}} {{qualifier|幾乎只在新英格蘭沿海地區使用,但即使在那裡也不是最常見的發音}}<ref name="dialect" /> * {{IPA|en|/pəˈkɔːn/|/pɪˈkɔːn/}} {{qualifier|用于路易斯安那}}<ref>Claude E. Kantner, ''Variant Louisiana pronunciations of the word "pecan"'' (1944)</ref> * {{IPA|en|/pəˈkɑːn/}} {{qualifier|若不重读,有时用于美国}}<ref name=Merriam-Webster /> * {{IPA|en|/pɪˈkæn/}} {{qualifier|用于英國和加拿大;亦被一些美國使用者使用}}<ref name=Merriam-Webster /><ref name=Gage/><ref>Burkhard Dretzke, ''Modern British and American English pronunciation'' (2008)</ref> * {{IPA|en|/ˈpiːkən/}} {{qualifier|用于英國、澳大利亞和新西蘭}}<ref name=COED /><ref name="Aus Oxford" /><ref name="NZ Oxford" /> * {{IPA|en|/pəˈkɒn/}} {{qualifier|用于加拿大}}<ref name="Canadian Oxford" /> {{rel-bottom}} * {{audio|en|en-au-pecan.ogg|音頻(澳式) {{IPAchar|/ˈpiːkæn/}}}} * {{rhymes|en|ɑːn|æn|ɔːn|iːkən}} :'''pecan''' #[[一种大胡桃]] [[Category:英语名词]] [[Category:待分類的英語詞]] [[Category:英語]] [[分类:拉丁文字]] inaie2pkqhksmer3vjh0math3kjmxlj 非洲 0 140425 9759532 9728769 2026-05-14T22:02:06Z TongcyDai 53191 9759532 wikitext text/x-wiki ==漢語== {{zh-forms}} {{zh-wp}} [[File:Africa location map.svg|250px|thumb]] ===詞源=== {{zh-etym-short|阿非利加|洲}}。 ===發音=== {{zh-pron |m=Fēizhōu |c=fei1 zau1 |h=pfs=Fî-chû |md=Hĭ-ciŭ |mn=Hui-chiu |mn-t=hui1 ziu1 |w=1fi tseu |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q48}}{{place|zh|位於[[歐洲]]以南、[[大西洋]]以東、[[印度洋]]以西、[[南極洲]]以北的<<大洲>>,大部分地區位於[[東半球]]|tcl=位於[[歐洲]]以南、介於[[大西洋]]和[[印度洋]]之間的<<大洲>>}} #:{{zh-x|上年 我 探望 了 一些 ^非洲 家庭。|}} ====同義詞==== * {{qual|棄用}} {{zh-l|阿非利加}}、{{zh-l|亞非利加}} ====衍生詞==== {{col3|zh|黑非洲|北部非洲|非洲之角|非洲聯盟|非洲野犬|非洲獵犬|非洲豬瘟|非洲和尚——黑人僧}} ====相關詞彙==== {{table:continents/zh}} ====翻譯==== {{trans-top|id=Q15|大洲}} * 亞齊語:{{t|ace|Afrika}} * 西切爾克斯語:{{t|ady|Африкэ}} * 南非語:{{t+|af|Afrika}} * 阿坎語:{{t|ak|Afrika}} * 阿爾巴尼亞語:{{t|sq|Afrikë|f}} {{qualifier|不定}}、{{t+|sq|Afrika|f}} {{qualifier|定指}} * 阿姆哈拉語:{{t|am|አፍሪቃ}} * 阿拉伯語:{{t+|ar|أَفْرِيقِيَا|f}}、{{t+|ar|إِفْرِيقِيَا|f}} *: 漢志阿拉伯語:{{t|acw|أفريقيا|f|tr=ʔafrīqya}} * 亞美尼亞語:{{t+|hy|Աֆրիկա}} * 亞述新亞拉姆語:{{t|aii|ܐܲܦܪܝܼܩܵܐ|tr=Āfrīqa|f}} * 阿斯圖里亞斯語:{{t+|ast|África}} * 阿塞拜疆語:{{t+|az|Afrika}} * 班巴拉語:{{t|bm|Afrika}} * 巴什基爾語:{{t|ba|Африка}} * 巴斯克語:{{t+|eu|Afrika}} * 巴伐利亞語:{{t|bar|Afrika}} * 白俄羅斯語:{{t|be|А́фрыка|f}} * 孟加拉語:{{t+|bn|আফ্রিকা}} * 伯塔維語:{{t|bew|Aprika}} * 布拉灰語:{{t|brh|Afríká}} * 布列塔尼語:{{t+|br|Afrika|f}} * 保加利亞語:{{t+|bg|А́фрика|f}} * 緬甸語:{{t|my|အာဖရိက}} * 盧森尼亞語:{{t|rue|А́фрика|f}} * 加泰羅尼亞語:{{t+|ca|Àfrica|f}} * 中阿特拉斯柏柏爾語:{{t|tzm|ⵜⴰⴼⴻⵔⴽⴰ}}、{{t|tzm|ⵜⴰⴼⵔⵉⵇⵜ}} * 車臣語:{{t|ce|Африка}}、{{t|ce|Африк}} * 切羅基語:{{t|chr|ᎬᎿᎨᏍᏛ}} * 齊切瓦語:{{t|ny|Afirika}} * 康沃爾語:{{t|kw|Afrika}} * 科西嘉語:{{t+|co|Africa|f}} * 克里米亞韃靼語:{{t|crh|Afrika}} * 捷克語:{{t+|cs|Afrika|f}} * 丹麥語:{{t+|da|Afrika|n}} * 迪維希語:{{t+|dv|އެފްރިކާ}} * 丁卡語:{{t|din|Apirïka}} * 荷蘭語:{{t+|nl|Afrika|n}} * 宗喀語:{{t|dz|ཨཕ་རི་ཀ}} * 英語:{{t+|en|Africa}} * 世界語:{{t+|eo|Afriko}} * 愛沙尼亞語:{{t+|et|Aafrika}} * 法羅語:{{t|fo|Afrika|f|n}} * 芬蘭語:{{t+|fi|Afrikka}} * 法語:{{t|fr|l’[[Afrique]]|f}} * 弗留利語:{{t|fur|Afriche|f}} * 加利西亞語:{{t+|gl|África|f}} * 格魯吉亞語:{{t+|ka|აფრიკა}} * 德語:{{t+|de|Afrika|n}} * 希臘語:{{t+|el|Αφρική|f}} *: 古希臘語:{{t|grc|Ἀφρική|f}}、{{t|grc|Λιβύη}} * 格陵蘭語:{{t|kl|Afrika}} * 古吉拉特語:{{t|gu|આફ્રિકા}} * 豪薩語:{{t+|ha|Afirka}} * 夏威夷語:{{t|haw|ʻApelika}} * 希伯來語:{{t+|he|אַפְרִיקָה|f|tr=áfrika}} * 印地語:{{t+|hi|अफ़्रीका|m}}、{{t|hi|कालद्वीप|m|lit=black continent}} * 匈牙利語:{{t+|hu|Afrika}} * 冰島語:{{t+|is|Afríka|f}} * 伊多語:{{t+|io|Afrika}} * 伊博語:{{t|ig|Eluàlà}} * 英格里亞語:{{t|izh|Afrikka}} * 愛爾蘭語:{{t|ga|[[an]] [[Afraic]]|f}} *: 中古愛爾蘭語:{{t|mga|Afraicc|f}} *: 古愛爾蘭語:{{t|sga|Afraicc|f}} * 意大利語:{{t+|it|Africa|f}} * 日語:{{t+|ja|アフリカ|tr=Afurika}}、{{qualifier|過時}} {{t+|ja|阿弗利加|tr=Afurika}} * 爪哇語:{{t|jv|Afrika}} * 卡拜爾語:{{t|kab|Tafrikt}} * 卡爾梅克衛拉特語:{{t|xal|Априк}} * 卡納達語:{{t|kn|ಆಫ್ರಿಕಾ}} * 卡拉卡爾帕克語:{{t|kaa|Afrika}} * 克什米爾語:{{t|ks|اَفریٖقہ}} * 卡舒比語:{{t+|csb|Afrika|f}} * 哈薩克語:{{t+|kk|Африка}} * 高棉語:{{t|km|អាហ្វ្រិក}} * 剛果語:{{t|kg|Afelika}}、{{t|kg|Afrika}}、{{t|kg|Katiopa}} * 朝鮮語:{{t+|ko|^아프리카}} * 庫爾德語: *: 北庫爾德語:{{t+|kmr|Efrîqa}} * 吉爾吉斯語:{{t+|ky|Африка}} * 拉登語:{{t-needed|lld}} * 拉蒂諾語:{{t|lad|Afrika}} * 老撾語:{{t+|lo|ອາຟຣິກກາ}}、{{t|lo|ອາຟຣິກາ}}、{{t|lo|ອາຝະລິກາ}}、{{t|lo|ອາຟຣິກ}}、{{t|lo|ອາຟະລິກ}} * 拉丁語:{{t+|la|Āfrica|f}}、{{t|la|利比亞|f}} * 拉脫維亞語:{{t+|lv|Āfrika|f}} * 林加拉語:{{t|ln|Afríka}} * 立陶宛語:{{t+|lt|Afrika|f}} * 傣仂語:{{t|khb|ᦵᦝᧀᧈᦵᦋᦲᧁᧈ}} * 馬其頓語:{{t|mk|Африка|f}} * 馬拉加斯語:{{t+|mg|Afrika}} * 馬來語:{{t+|ms|Afrika}} * 馬拉雅拉姆語:{{t+|ml|ആഫ്രിക്ക}} * 馬爾他語:{{t|mt|Afrika}} * 曼島語:{{t|gv|Affrick|f|alt=Yn Affrick}} * 毛利語:{{t|mi|Āwherika}} * 馬拉地語:{{t|mr|आफ्रिका}} * 蒙古語: *: 西里爾字母:{{t+|mn|Африк}} *: 蒙古語:{{t|mn|ᠠᠹᠷᠢᠺᠠ}} * 莫西語:{{t|mos|Afriki}} * 納瓦霍語:{{t|nv|Naakaii Łizhiní Bikéyah}} * 尼泊爾語:{{t+|ne|अफ्रिका}} * 北薩米語:{{t|se|Afrihkká}} * 北塞索托語:{{t|nso|Afrika}} * 西北奧吉布瓦語:{{t|ojb|Makadewiiyaas-gichi-aki}} * 挪威語: *: 書面挪威語:{{t+|nb|Afrika|n}} *: 新挪威語:{{t+|nn|Afrika|n}} * 奧克語:{{t+|oc|Africa|f}} * 奧利亞語:{{t|or|ଆଫ୍ରିକା}} * 古教會斯拉夫語: *: 西里爾字母:{{t|cu|Афріка|f}} *: Glagolitic: {{t|cu|Ⰰⱇⱃⰻⰽⰰ|f}} * 古英語:{{t+|ang|Affrica|f}} * 古法語:{{t|fro|Affrique|f}}、{{t|fro|Affrike|f}} * 奧塞梯語:{{t|os|Африкӕ}} * 班詩蘭語:{{t|pag|Afrika}} * 帕皮阿門托語:{{t|pap|Afrika}} * 普什圖語:{{t+|ps|افريقا|tr=afrīqā}} * 波斯語: *: Classical 波斯語:{{t|fa-cls|آفْرِیقَا}} *: 達利波斯語:{{t|prs|آفْرِیقَا}} *: 伊朗波斯語:{{t|fa-ira|آفْریقا}} * 皮埃蒙特語:{{t-needed|pms}} * 皮特凱恩語:{{t|pih|Afreka}} * 門諾低地德語:{{t+|pdt|Afrika|f}} * 波蘭語:{{t+|pl|Afryka|f}} * 葡萄牙語:{{t+|pt|África|f}} * 旁遮普語:{{t+|pa|ਅਫ਼ਰੀਕਾ}} * 羅馬尼亞語:{{t+|ro|Africa|f}} * 俄語:{{t+|ru|А́фрика|f}} * 盧旺達語:{{t|rw|Afurika}} * 梵語:{{t|sa|अफ्रीका}} * 撒丁語:{{t|sc|Afrika}} * 蘇格蘭蓋爾語:{{t|gd|Afraga|m}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|А̀фрика|f}} *: 拉丁字母:{{t+|sh|Àfrika|f}} * 西里西亞語:{{t|szl|Afrika}} * 信德語:{{t|sd|آفريڪا}} * 僧加羅語:{{t+|si|අප්‍රිකාව}} * 斯洛伐克語:{{t+|sk|Afrika|f}} * 斯洛文尼亞語:{{t+|sl|Áfrika|f}} * 索馬里語:{{t|so|Afrika}} * 索布語: *: Lower 索布語:{{t|dsb|Afrika|f}} *: Upper 索布語:{{t+|hsb|Afrika|f}} * 塞索托語:{{t+|st|Afrika}} * 南恩德貝勒語:{{t|nr|Afrika}} * 西班牙語:{{t+|es|África|f}} * 蘇里南湯加語:{{t|srn|Afrika}} * 巽他語:{{t+|su|Afrika}} * 斯瓦希里語:{{t+|sw|Afrika}} * 史瓦濟語:{{t|ss|Afrika}} * 瑞典語:{{t+|sv|Afrika|n}} * 他加祿語:{{t+|tl|Aprika}} * 塔吉克語:{{t+|tg|Африқо}} * 泰米爾語:{{t+|ta|ஆப்பிரிக்கா}} * 韃靼語:{{t|tt|Африка}} * 泰盧固語:{{t+|te|ఆఫ్రికా}} * 泰語:{{t+|th|แอฟริกา}} * 藏語:{{t|bo|ཨ་ཧྥེ་རི་ཁ}} * 提格里尼亞語:{{t|ti|ኣፍሪቃ}} * 聰加語:{{t|ts|Afrika}} * 茨瓦納語:{{t|tn|Aforika}} * 土耳其語:{{t+|tr|Afrika}} * 土庫曼語:{{t|tk|Afrika}} * 烏克蘭語:{{t+|uk|А́фрика|f}} * 烏爾都語:{{t|ur|اَفْرِیقَہ|m}}、{{t|ur|اَفْرِیقا|m}} * 維吾爾語:{{t+|ug|ئافرىقا}} * 烏茲別克語:{{t+|uz|Afrika}} * 瓦伊語:{{t|vai|ꕉꔱꔸꕪ|tr=Áfíríka}} * 文達語:{{t|ve|Afurika}} * 威尼斯語:{{t-needed|vec}} * 維普斯語:{{t|vep|Afrik}} * 越南語:{{t+|vi|Châu Phi}} ({{t|vi|洲非}}), {{t|vi|Phi Châu}} ({{t|vi|非洲}}), {{t+|vi|Phi}} * 沃拉普克語:{{t+|vo|Frikop}}、{{qualifier|棄用}} {{t|vo|Fikop}} * 佛羅語:{{t|vro|Afriga}} * 沃特語:{{t-needed|vot}} * 瓦隆語:{{t+|wa|Afrike|f}} * 瓦瑞瓦瑞語:{{t|war|Aprika}} * 威爾士語:(yr) {{t+|cy|Affrica|f}} * 西佛蘭德語:{{t-check|vls|Afrika}} * 西弗里斯蘭語:{{t+|fy|Afrika|n}} * 沃洛夫語:{{t+|wo|Afrig}} * 科薩語:{{t|xh|i-Afrika}} * 意第緒語:{{t|yi|אַפֿריקע}} * 約魯巴語:{{t|yo|Ilẹ̀ Adúláwọ̀}}、{{t|yo|Áfíríkà}} * 扎扎其語:{{qualifier|Southern Zazaki}} {{t+|zza|Afrika}} * 壯語:{{t|za|Feihcouh}} * 祖魯語:{{t|zu|i-Afrika}} {{trans-bottom}} ===形容詞=== {{head|zh|形容詞}} # {{lb|zh|neologism|俚語|抽卡遊戲}} [[壞運]] #: {{ant|zh|歐洲}} {{zh-cat|大洲}} ==越南語== {{vi-hantutab}} ===專有名詞=== {{vi-proper noun|Phi châu|sc=Hani}} # {{han tu form of|Phi châu|}} kfiwc31daleagqztbpbntg12up69a1w 9759533 9759532 2026-05-14T22:03:39Z TongcyDai 53191 9759533 wikitext text/x-wiki ==漢語== {{zh-forms}} {{zh-wp}} [[File:Africa location map.svg|250px|thumb]] ===詞源=== {{zh-etym-short|阿非利加|洲}}。 ===發音=== {{zh-pron |m=Fēizhōu |c=fei1 zau1 |h=pfs=Fî-chû |md=Hĭ-ciŭ |mn=Hui-chiu |mn-t=hui1 ziu1 |w=1fi tseu |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q15}}{{place|zh|位於[[歐洲]]以南、[[大西洋]]以東、[[印度洋]]以西、[[南極洲]]以北的<<大洲>>,大部分地區位於[[東半球]]|tcl=位於[[歐洲]]以南、介於[[大西洋]]和[[印度洋]]之間的<<大洲>>}} #:{{zh-x|上年 我 探望 了 一些 ^非洲 家庭。|}} ====同義詞==== * {{qual|棄用}} {{zh-l|阿非利加}}、{{zh-l|亞非利加}} ====衍生詞==== {{col3|zh|黑非洲|北部非洲|非洲之角|非洲聯盟|非洲野犬|非洲獵犬|非洲豬瘟|非洲和尚——黑人僧}} ====相關詞彙==== {{table:continents/zh}} ====翻譯==== {{trans-top|id=Q15|大洲}} * 亞齊語:{{t|ace|Afrika}} * 西切爾克斯語:{{t|ady|Африкэ}} * 南非語:{{t+|af|Afrika}} * 阿坎語:{{t|ak|Afrika}} * 阿爾巴尼亞語:{{t|sq|Afrikë|f}} {{qualifier|不定}}、{{t+|sq|Afrika|f}} {{qualifier|定指}} * 阿姆哈拉語:{{t|am|አፍሪቃ}} * 阿拉伯語:{{t+|ar|أَفْرِيقِيَا|f}}、{{t+|ar|إِفْرِيقِيَا|f}} *: 漢志阿拉伯語:{{t|acw|أفريقيا|f|tr=ʔafrīqya}} * 亞美尼亞語:{{t+|hy|Աֆրիկա}} * 亞述新亞拉姆語:{{t|aii|ܐܲܦܪܝܼܩܵܐ|tr=Āfrīqa|f}} * 阿斯圖里亞斯語:{{t+|ast|África}} * 阿塞拜疆語:{{t+|az|Afrika}} * 班巴拉語:{{t|bm|Afrika}} * 巴什基爾語:{{t|ba|Африка}} * 巴斯克語:{{t+|eu|Afrika}} * 巴伐利亞語:{{t|bar|Afrika}} * 白俄羅斯語:{{t|be|А́фрыка|f}} * 孟加拉語:{{t+|bn|আফ্রিকা}} * 伯塔維語:{{t|bew|Aprika}} * 布拉灰語:{{t|brh|Afríká}} * 布列塔尼語:{{t+|br|Afrika|f}} * 保加利亞語:{{t+|bg|А́фрика|f}} * 緬甸語:{{t|my|အာဖရိက}} * 盧森尼亞語:{{t|rue|А́фрика|f}} * 加泰羅尼亞語:{{t+|ca|Àfrica|f}} * 中阿特拉斯柏柏爾語:{{t|tzm|ⵜⴰⴼⴻⵔⴽⴰ}}、{{t|tzm|ⵜⴰⴼⵔⵉⵇⵜ}} * 車臣語:{{t|ce|Африка}}、{{t|ce|Африк}} * 切羅基語:{{t|chr|ᎬᎿᎨᏍᏛ}} * 齊切瓦語:{{t|ny|Afirika}} * 康沃爾語:{{t|kw|Afrika}} * 科西嘉語:{{t+|co|Africa|f}} * 克里米亞韃靼語:{{t|crh|Afrika}} * 捷克語:{{t+|cs|Afrika|f}} * 丹麥語:{{t+|da|Afrika|n}} * 迪維希語:{{t+|dv|އެފްރިކާ}} * 丁卡語:{{t|din|Apirïka}} * 荷蘭語:{{t+|nl|Afrika|n}} * 宗喀語:{{t|dz|ཨཕ་རི་ཀ}} * 英語:{{t+|en|Africa}} * 世界語:{{t+|eo|Afriko}} * 愛沙尼亞語:{{t+|et|Aafrika}} * 法羅語:{{t|fo|Afrika|f|n}} * 芬蘭語:{{t+|fi|Afrikka}} * 法語:{{t|fr|l’[[Afrique]]|f}} * 弗留利語:{{t|fur|Afriche|f}} * 加利西亞語:{{t+|gl|África|f}} * 格魯吉亞語:{{t+|ka|აფრიკა}} * 德語:{{t+|de|Afrika|n}} * 希臘語:{{t+|el|Αφρική|f}} *: 古希臘語:{{t|grc|Ἀφρική|f}}、{{t|grc|Λιβύη}} * 格陵蘭語:{{t|kl|Afrika}} * 古吉拉特語:{{t|gu|આફ્રિકા}} * 豪薩語:{{t+|ha|Afirka}} * 夏威夷語:{{t|haw|ʻApelika}} * 希伯來語:{{t+|he|אַפְרִיקָה|f|tr=áfrika}} * 印地語:{{t+|hi|अफ़्रीका|m}}、{{t|hi|कालद्वीप|m|lit=black continent}} * 匈牙利語:{{t+|hu|Afrika}} * 冰島語:{{t+|is|Afríka|f}} * 伊多語:{{t+|io|Afrika}} * 伊博語:{{t|ig|Eluàlà}} * 英格里亞語:{{t|izh|Afrikka}} * 愛爾蘭語:{{t|ga|[[an]] [[Afraic]]|f}} *: 中古愛爾蘭語:{{t|mga|Afraicc|f}} *: 古愛爾蘭語:{{t|sga|Afraicc|f}} * 意大利語:{{t+|it|Africa|f}} * 日語:{{t+|ja|アフリカ|tr=Afurika}}、{{qualifier|過時}} {{t+|ja|阿弗利加|tr=Afurika}} * 爪哇語:{{t|jv|Afrika}} * 卡拜爾語:{{t|kab|Tafrikt}} * 卡爾梅克衛拉特語:{{t|xal|Априк}} * 卡納達語:{{t|kn|ಆಫ್ರಿಕಾ}} * 卡拉卡爾帕克語:{{t|kaa|Afrika}} * 克什米爾語:{{t|ks|اَفریٖقہ}} * 卡舒比語:{{t+|csb|Afrika|f}} * 哈薩克語:{{t+|kk|Африка}} * 高棉語:{{t|km|អាហ្វ្រិក}} * 剛果語:{{t|kg|Afelika}}、{{t|kg|Afrika}}、{{t|kg|Katiopa}} * 朝鮮語:{{t+|ko|^아프리카}} * 庫爾德語: *: 北庫爾德語:{{t+|kmr|Efrîqa}} * 吉爾吉斯語:{{t+|ky|Африка}} * 拉登語:{{t-needed|lld}} * 拉蒂諾語:{{t|lad|Afrika}} * 老撾語:{{t+|lo|ອາຟຣິກກາ}}、{{t|lo|ອາຟຣິກາ}}、{{t|lo|ອາຝະລິກາ}}、{{t|lo|ອາຟຣິກ}}、{{t|lo|ອາຟະລິກ}} * 拉丁語:{{t+|la|Āfrica|f}}、{{t|la|利比亞|f}} * 拉脫維亞語:{{t+|lv|Āfrika|f}} * 林加拉語:{{t|ln|Afríka}} * 立陶宛語:{{t+|lt|Afrika|f}} * 傣仂語:{{t|khb|ᦵᦝᧀᧈᦵᦋᦲᧁᧈ}} * 馬其頓語:{{t|mk|Африка|f}} * 馬拉加斯語:{{t+|mg|Afrika}} * 馬來語:{{t+|ms|Afrika}} * 馬拉雅拉姆語:{{t+|ml|ആഫ്രിക്ക}} * 馬爾他語:{{t|mt|Afrika}} * 曼島語:{{t|gv|Affrick|f|alt=Yn Affrick}} * 毛利語:{{t|mi|Āwherika}} * 馬拉地語:{{t|mr|आफ्रिका}} * 蒙古語: *: 西里爾字母:{{t+|mn|Африк}} *: 蒙古語:{{t|mn|ᠠᠹᠷᠢᠺᠠ}} * 莫西語:{{t|mos|Afriki}} * 納瓦霍語:{{t|nv|Naakaii Łizhiní Bikéyah}} * 尼泊爾語:{{t+|ne|अफ्रिका}} * 北薩米語:{{t|se|Afrihkká}} * 北塞索托語:{{t|nso|Afrika}} * 西北奧吉布瓦語:{{t|ojb|Makadewiiyaas-gichi-aki}} * 挪威語: *: 書面挪威語:{{t+|nb|Afrika|n}} *: 新挪威語:{{t+|nn|Afrika|n}} * 奧克語:{{t+|oc|Africa|f}} * 奧利亞語:{{t|or|ଆଫ୍ରିକା}} * 古教會斯拉夫語: *: 西里爾字母:{{t|cu|Афріка|f}} *: Glagolitic: {{t|cu|Ⰰⱇⱃⰻⰽⰰ|f}} * 古英語:{{t+|ang|Affrica|f}} * 古法語:{{t|fro|Affrique|f}}、{{t|fro|Affrike|f}} * 奧塞梯語:{{t|os|Африкӕ}} * 班詩蘭語:{{t|pag|Afrika}} * 帕皮阿門托語:{{t|pap|Afrika}} * 普什圖語:{{t+|ps|افريقا|tr=afrīqā}} * 波斯語: *: Classical 波斯語:{{t|fa-cls|آفْرِیقَا}} *: 達利波斯語:{{t|prs|آفْرِیقَا}} *: 伊朗波斯語:{{t|fa-ira|آفْریقا}} * 皮埃蒙特語:{{t-needed|pms}} * 皮特凱恩語:{{t|pih|Afreka}} * 門諾低地德語:{{t+|pdt|Afrika|f}} * 波蘭語:{{t+|pl|Afryka|f}} * 葡萄牙語:{{t+|pt|África|f}} * 旁遮普語:{{t+|pa|ਅਫ਼ਰੀਕਾ}} * 羅馬尼亞語:{{t+|ro|Africa|f}} * 俄語:{{t+|ru|А́фрика|f}} * 盧旺達語:{{t|rw|Afurika}} * 梵語:{{t|sa|अफ्रीका}} * 撒丁語:{{t|sc|Afrika}} * 蘇格蘭蓋爾語:{{t|gd|Afraga|m}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|А̀фрика|f}} *: 拉丁字母:{{t+|sh|Àfrika|f}} * 西里西亞語:{{t|szl|Afrika}} * 信德語:{{t|sd|آفريڪا}} * 僧加羅語:{{t+|si|අප්‍රිකාව}} * 斯洛伐克語:{{t+|sk|Afrika|f}} * 斯洛文尼亞語:{{t+|sl|Áfrika|f}} * 索馬里語:{{t|so|Afrika}} * 索布語: *: Lower 索布語:{{t|dsb|Afrika|f}} *: Upper 索布語:{{t+|hsb|Afrika|f}} * 塞索托語:{{t+|st|Afrika}} * 南恩德貝勒語:{{t|nr|Afrika}} * 西班牙語:{{t+|es|África|f}} * 蘇里南湯加語:{{t|srn|Afrika}} * 巽他語:{{t+|su|Afrika}} * 斯瓦希里語:{{t+|sw|Afrika}} * 史瓦濟語:{{t|ss|Afrika}} * 瑞典語:{{t+|sv|Afrika|n}} * 他加祿語:{{t+|tl|Aprika}} * 塔吉克語:{{t+|tg|Африқо}} * 泰米爾語:{{t+|ta|ஆப்பிரிக்கா}} * 韃靼語:{{t|tt|Африка}} * 泰盧固語:{{t+|te|ఆఫ్రికా}} * 泰語:{{t+|th|แอฟริกา}} * 藏語:{{t|bo|ཨ་ཧྥེ་རི་ཁ}} * 提格里尼亞語:{{t|ti|ኣፍሪቃ}} * 聰加語:{{t|ts|Afrika}} * 茨瓦納語:{{t|tn|Aforika}} * 土耳其語:{{t+|tr|Afrika}} * 土庫曼語:{{t|tk|Afrika}} * 烏克蘭語:{{t+|uk|А́фрика|f}} * 烏爾都語:{{t|ur|اَفْرِیقَہ|m}}、{{t|ur|اَفْرِیقا|m}} * 維吾爾語:{{t+|ug|ئافرىقا}} * 烏茲別克語:{{t+|uz|Afrika}} * 瓦伊語:{{t|vai|ꕉꔱꔸꕪ|tr=Áfíríka}} * 文達語:{{t|ve|Afurika}} * 威尼斯語:{{t-needed|vec}} * 維普斯語:{{t|vep|Afrik}} * 越南語:{{t+|vi|Châu Phi}} ({{t|vi|洲非}}), {{t|vi|Phi Châu}} ({{t|vi|非洲}}), {{t+|vi|Phi}} * 沃拉普克語:{{t+|vo|Frikop}}、{{qualifier|棄用}} {{t|vo|Fikop}} * 佛羅語:{{t|vro|Afriga}} * 沃特語:{{t-needed|vot}} * 瓦隆語:{{t+|wa|Afrike|f}} * 瓦瑞瓦瑞語:{{t|war|Aprika}} * 威爾士語:(yr) {{t+|cy|Affrica|f}} * 西佛蘭德語:{{t-check|vls|Afrika}} * 西弗里斯蘭語:{{t+|fy|Afrika|n}} * 沃洛夫語:{{t+|wo|Afrig}} * 科薩語:{{t|xh|i-Afrika}} * 意第緒語:{{t|yi|אַפֿריקע}} * 約魯巴語:{{t|yo|Ilẹ̀ Adúláwọ̀}}、{{t|yo|Áfíríkà}} * 扎扎其語:{{qualifier|Southern Zazaki}} {{t+|zza|Afrika}} * 壯語:{{t|za|Feihcouh}} * 祖魯語:{{t|zu|i-Afrika}} {{trans-bottom}} ===形容詞=== {{head|zh|形容詞}} # {{lb|zh|neologism|俚語|抽卡遊戲}} [[壞運]] #: {{ant|zh|歐洲}} {{zh-cat|大洲}} ==越南語== {{vi-hantutab}} ===專有名詞=== {{vi-proper noun|Phi châu|sc=Hani}} # {{han tu form of|Phi châu|}} 3x9vxl6of1qjs0c0xmzy8d9dr5xols2 辛巴威 0 145311 9759490 6761459 2026-05-14T20:52:12Z TongcyDai 53191 9759490 wikitext text/x-wiki ==漢語== {{zh-forms|gloss=-}} ===發音=== {{zh-pron |m=Xīnbāwēi |c=san1 baa1 wai1 |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{lb|zh|臺灣}} {{place|zh|國家|r/南非|official=辛巴威共和國|capital=哈拉雷}} ====近義詞==== * {{qualifier|中國大陸}} {{zh-l|津巴布韋}} ====參見==== * {{qualifier|歷史}} {{zh-l|羅德西亞}} gzoh8xso6v4sorm3xmkf38rdutcnndo 文革 0 146314 9760144 7767172 2026-05-15T06:06:05Z Fglffer 55252 /* 日語 */ 9760144 wikitext text/x-wiki ==漢語== {{zh-forms}} ===讀音=== {{zh-pron |m=Wéngé |c=man4 gaak3,man4 gaap3 |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{zh-short|文化大革命}} {{zh-cat|中國歷史|歷史事件|文化大革命}} ==日語== {{ja-kanjitab|ぶん|かく|yomi=o}} ===發音=== {{ja-pron|ぶんかく|acc=0|acc_ref=DJR,NHK}} ===專有名詞=== {{ja-pos|proper|ぶんかく}} # {{short for|ja|文化大革命}} ===參考資料=== <references/> {{topic|ja|中國歷史|歷史事件|文化大革命|sort=ぶんかく}} mmf6ecek7mmm05waoq93acsjjon3840 北美洲 0 151017 9759635 9115630 2026-05-14T23:27:47Z TongcyDai 53191 9759635 wikitext text/x-wiki ==漢語== {{zh-forms|type=21}} ===發音=== {{zh-pron |m=Běiměizhōu |c=bak1 mei5 zau1 |mn=Pak-bí-chiu |mn-t=bag4 mui2 ziu1 |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{senseid|zh|Q49}}{{place|zh|構成[[美洲]]北部的<<大洲>>;位於[[太平洋]]以東、[[大西洋]]以西、[[南美洲]]以北(通常以[[巴拿馬運河]]為界)、[[北冰洋]]以南;為[[地球]]的七[[大洲]]之一|tcl=構成[[美洲]]北部的<<大洲>>}} #: {{cot|zh|南美洲}} # 地理名词,包括[[美国]]和[[加拿大]]及其附属岛屿(有时也包括[[格陵兰]]) #: {{cot|zh|拉丁美洲}} ====近義詞==== * {{zh-l|北美}} ====相關詞彙==== {{table:continents/zh}} ====翻譯==== {{trans-top|id=Q49|大洲}} * 南非語:{{t|af|Noord-Amerika}} * 阿爾巴尼亞語:{{t|sq|Amerikë Veriore|f}}、{{t|sq|Amerika Veriore|f}} {{qualifier|定指}} * 阿姆哈拉語:{{t|am|ስሜን አሜሪካ}} * 阿拉伯語:{{t+|ar|أَمْرِيكَا الشَّمَالِيَّة|f}} * 亞美尼亞語:{{t|hy|Հյուսիսային Ամերիկա}} * 亞述新亞拉姆語:{{t|aii|ܓܲܪܒܵܝ ܐܵܡܵܝܪܟܵܐ|f|tr=Gārbāy Amayrka}} * 阿塞拜疆語:{{t+|az|Şimali Amerika}} * 白俄羅斯語:{{t|be|Паўно́чная Аме́рыка|f}} * 孟加拉語:{{t+|bn|উত্তর আমেরিকা}} * 保加利亞語:{{t|bg|Се́верна Аме́рика|f}} * 緬甸語:{{t|my|မြောက်အမေရိက}} * 加泰羅尼亞語:{{t+|ca|Amèrica del Nord|f}} * 切羅基語:{{t|chr|ᏧᏴᏢ ᎠᎹᏰᏟ}} * 科西嘉語:{{t|co|America di u Nordu|f}}、{{t|co|America settentriunale|f}} * 捷克語:{{t+|cs|Severní Amerika|f}} * 丹麥語:{{t+|da|Nordamerika|n}} * 荷蘭語:{{t+|nl|Noord-Amerika|n}} * 英語:{{t+|en|North America}} * 世界語:{{t+|eo|Nordameriko}} * 愛沙尼亞語:{{t+|et|Põhja-Ameerika}} * 法羅語:{{t|fo|Norðuramerika|f|n}} * 芬蘭語:{{t+|fi|Pohjois-Amerikka}} * 法語:{{t+|fr|Amérique du Nord|f}} * 加利西亞語:{{t+|gl|América do Norte}} * 格魯吉亞語:{{t|ka|ჩრდილოეთი ამერიკა}}、{{t|ka|ჩრდილო ამერიკა}} * 德語:{{t+|de|Nordamerika|n}} * 希臘語:{{t+|el|Βόρεια Αμερική|f}} * 海地克里奧爾語:{{t|ht|Amerik dinò}} * 哈爾彥維語:{{t|bgc|ओ॔टऱ्यामरेख्या}} * 夏威夷語:{{t|haw|ʻAmelika ʻĀkau}} * 希伯來語:{{t+|he|אָמֶרִיקָה הַצְּפוֹנִית|f|tr=amérika ha-ts'fonít}}、{{t|he|צְפוֹן אָמֶרִיקָה|f|tr=ts'fon amérika}} * 印地語:{{t+|hi|उत्तर अमेरिका|m}}、{{t|hi|उत्तर अमरीका|m}} * 匈牙利語:{{t+|hu|Észak-Amerika}} * 冰島語:{{t+|is|Norður-Ameríka|f}} * 伊多語:{{t+|io|Nord-Amerika}} * 愛爾蘭語:{{t|ga|Meiriceá Thuaidh|m}} * 意大利語:{{t+|it|America del Nord|f}} * 日語:{{t+|ja|北アメリカ|tr=Kita Amerika}}、{{t+|ja|北米|tr=ほくべい, Hokubei}} * 哈薩克語:{{t+|kk|Солтүстік Америка}} * 高棉語:{{t|km|អាមេរិកខាងជើង}} * 朝鮮語:{{t|ko|^북미(北美)}}、{{t+|ko|^북아메리카}} * 庫爾德語: *: 北庫爾德語:{{t+|kmr|Amerîkaya Bakur}} * 吉爾吉斯語:{{t+|ky|Түндүк Америка}} * 拉科塔語:{{t|lkt|Khéya Wíta}} * 老撾語:{{t+|lo|ອາເມລິກາເໜືອ}} * 拉脫維亞語:{{t|lv|Ziemeļamerika|f}} * 立陶宛語:{{t+|lt|Šiaurės Amerika|f}} * 馬其頓語:{{t|mk|Северна Америка|f}} * 馬來語:{{t+|ms|Amerika Utara}} * 蒙古語: *: 西里爾字母:{{t|mn|Хойд Америк}} * 納瓦霍語:{{t|nv|Náhookǫsjí Kéyah dah siʼánígíí}} * 諾曼語:{{t|nrf|Améthique du Nord|f}} {{qualifier|澤西}} * 挪威語: *: 書面挪威語:{{t+|nb|Nord-Amerika|n}} * 奧克語:{{t+|oc|America del Nòrd|f}} * 普什圖語:{{t|ps|شمالی امریکا|f|tr=šamāli amrikā}} * 波斯語:{{t|fa|آمریکای شمالی|tr=âmrikâ-ye šomâli}} * 波蘭語:{{t+|pl|Ameryka Północna|f}} * 葡萄牙語:{{t+|pt|América do Norte|f}} * 羅馬尼亞語:{{t+|ro|America de Nord|f}} * 俄語:{{t+|ru|Се́верная Аме́рика|f}} * 梵語:{{t|sa|उत्तरीयामरेखिका}} * 蘇格蘭蓋爾語:{{t|gd|Aimeireaga-a-Tuath|f}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Се̏ве̄рна̄ Амѐрика|f}}、{{t|sh|Сје̏ве̄рна̄ Амѐрика|f}} *: 拉丁字母:{{t|sh|Sȅvērnā Amèrika|f}}、{{t+|sh|Sjȅvērnā Amèrika|f}} * 僧加羅語:{{t+|si|උතුරු ඇමෙරිකාව}} * 斯洛伐克語:{{t+|sk|Severná Amerika|f}} * 斯洛文尼亞語:{{t|sl|Severna Amerika|f}} * 塞索托語:{{t|st|Amerika Leboya}} * 西班牙語:{{t+|es|América del Norte|f}}、{{t+|es|Norteamérica}} * 斯瓦希里語:{{t|sw|Amerika ya Kaskazini}} * 瑞典語:{{t+|sv|Nordamerika|n}} * 塔吉克語:{{t+|tg|Амрикои Шимолӣ}} * 韃靼語:{{t|tt|Төньяк Америка}} * 泰盧固語:{{t+|te|ఉత్తర అమెరికా}} * 泰語:{{t|th|อเมริกาเหนือ}} * 土耳其語:{{t+|tr|Kuzey Amerika}} * 土庫曼語:{{t|tk|Demirgazyk Amerika}} * 烏克蘭語:{{t|uk|Півні́чна Аме́рика|f}} * 烏爾都語:{{t|ur|شمالی امریکہ|m|tr=śumālī amrīkā}} * 維吾爾語:{{t|ug|شىمالىي ئامېرىكا}} * 烏茲別克語:{{t+|uz|Shimoliy Amerika}} * 越南語:{{t+|vi|Bắc Mỹ}} {{t|vi|北美}}) * 沃拉普克語:{{t+|vo|Nolüda-Merop}} * 威爾士語:{{t+|cy|Gogledd America}} * 西弗里斯蘭語:{{t|fy|Noard-Amearika|n}}、{{t|fy|Noard-Amerika|n}} {{trans-bottom}} {{zh-cat|北美洲}} th4sl3n6ewlu76fy6628votgvk752of 砒霜 0 193348 9760151 8914576 2026-05-15T06:27:46Z Fglffer 55252 /* 漢語 */ 9760151 wikitext text/x-wiki ==漢語== {{zh-forms|alt=砒礵,磇霜,砒酸-台灣話}} {{zh-wp}} ===發音=== {{zh-pron |m=pīshuāng |c=pei1 soeng1 |h=pfs=phî-sông |md=piĕ-sŏng |mn=phi-sng |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|chemistry}} [[三氧化二砷]] # {{lb|zh|mineral}} [[信石]] ====衍生詞==== {{col3|zh|壽星吃砒霜|蜜餞砒霜}} hu7op2o54p1zc0kzez0f8peu18jyl0e 9760153 9760151 2026-05-15T06:33:05Z Fglffer 55252 /* 漢語 */ 9760153 wikitext text/x-wiki ==漢語== {{zh-forms|alt=砒礵,磇霜,砒酸-台灣話}} {{zh-wp}} ===發音=== {{zh-pron |m=pīshuāng |c=pei1 soeng1 |h=pfs=phî-sông |md=piĕ-sŏng |mn=phi-sng/phī-sng/phīⁿ-sng |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|chemistry}} [[三氧化二砷]] # {{lb|zh|mineral}} [[信石]] ====衍生詞==== {{col3|zh|壽星吃砒霜|蜜餞砒霜}} rxqbs2ogm166apr4tvknr3t08udt0yn Antarktika 0 300875 9759644 9542983 2026-05-14T23:38:30Z TongcyDai 53191 9759644 wikitext text/x-wiki {{also|Antarktíka|Antarktikā}} ==南非語== {{wp|af:}} ===專有名詞=== 源自 {{af-proper noun}} # {{tcl|af|南極洲|id=Q51}} ====相關詞彙==== * {{l|en|Antarkties}} ===參見=== * {{l|af|Arktika}} * {{l|af|Suidpool}} ==愛沙尼亞語== {{wp|et:}} ===專有名詞=== {{head|et|專有名詞}} # [[南極]] ====變格==== {{et-decl-ohutu|Antarktika|n=sg}} ====近義詞==== * {{l|et|Lõunamanner}} ====相關詞彙==== * {{l|et|Antarktis||南極洲}} ==德語== ===發音=== * {{IPA|de|/antˈʔaʁktika/}} * {{audio|de|De-Antarktika.ogg|a=柏林}} ===專有名詞=== {{head|de|專有名詞|g=f|屬格|Antarktikas|or|Antarktika}} # {{tcl|de|南極洲|id=Q51}} ====變格==== {{de-ndecl|f.sg}} ====派生詞彙==== * {{l|de|antarktisch}} ====相關詞彙==== * {{l|de|Antarktis}} ===參見=== {{list:continents/de}} ===延伸閱讀=== * {{pedia|lang=de}} * {{R:de:DWDS}} * {{R:de:Duden}} * {{R:de:UniLeipzig}} ==匈牙利語== {{swp|hu:}} ===發音=== * {{hu-IPA}} * {{rhymes|hu|kɒ|s=4}} * {{hyphenation|hu|An|tark|ti|ka}} ===專有名詞=== {{head|hu|專有名詞}} # {{tcl|hu|南極洲|id=Q51}} ====變格==== {{hu-infl-nom|Antarktiká|o|n=sg}}{{hu-pos-tok|Antarktiká|n=sg}} ===參見=== {{list:continents/hu}} ==伊多語== {{wp|io:}} ===發音=== {{io-IPA}} ===專有名詞=== {{head|io|專有名詞}} # {{tcl|io|南極洲|id=Q51}} ===參見=== {{list:continents/io}} ==印尼語== {{wp|id:}} ===詞源=== {{bor+|id|nl|Antarctica}},源自{{der|id|la-new|Antarctica}},源自{{der|id|grc|ἀνταρκτικός}},源自 {{m|grc|ἀντ-|t=反}} + {{m|grc|ἀρκτικός|t=[[北極]]}},源自{{der|id|grc|ἄρκτος|t=[[bear]]}}。在2017年正寫法更動之前的拼寫為 {{m|id|Antartika}}。 ===發音=== {{id-pr|+,antartika}} ===專有名詞=== {{id-proper noun}} # {{tcl|id|南極洲|id=Q51}} ====其他形式==== * {{alt|id|Antartika||被取代}} * {{alt|ms|Antartika||標準馬來語}} ====參見==== {{list:continents/id}} ===延伸閱讀=== * {{R:KBBI Daring}} ==拉脫維亞語== {{swp|lv:}} [[File:Antarctica-Region.png|thumb|250px|Antarktika]] ===詞源=== 最终源自{{uder|lv|grc|ἀνταρκτικός}},源自 {{m|grc|ἀντί||反}} + {{m|grc|ἄρκτος||[[大熊座]];[[北]]}}。 ===發音=== * {{audio|lv|lv-riga-Antarktika.ogg}} ===專有名詞=== {{lv-proper noun|f|4th}} # [[南極]] #: {{ux|lv|'''Antarktika''' sastāv no Antarktīdas un šelfa ledājiem, ūdeņiem un salām, kas atrodas Dienvidu okeānā, uz dienvidiem no Antarktiskās konverģences|'''Antarctic''' is made up of the continent of Antarctica, [[shelf]] [[glacier]]s, waters and islands that are located in the [[Southern Ocean]] southward of the [[Antarctic convergence]]|inline=1}} ====變格==== {{lv-decl-noun|Antarktik|a|4th|no-pl||||proper|extrawidth=-60}} ====近義詞==== * {{l|lv|Antarktīda}} ====相關詞彙==== * {{l|lv|antarktisks}} ====參見==== * {{l|lv|kontinents}} {{list:continents/lv}} ==書面挪威語== {{wp|no:}} ===專有名詞=== {{head|nb|專有名詞}} # {{tcl|nb|南極洲|id=Q51}} ====相關詞彙==== * {{l|nb|Antarktis}} * {{l|nb|antarktisk}} ==新挪威語== {{wp|nn:}} ===專有名詞=== {{head|nn|專有名詞}} # {{tcl|nn|南極洲|id=Q51}} ====相關詞彙==== * {{l|nn|Antarktis}} * {{l|nn|antarktisk}} ==塞爾維亞-克羅地亞語== ===發音=== * {{IPA|sh|/antǎrktika/}} * {{hyphenation|sh|Ant|ark|ti|ka}} ===專有名詞=== {{sh-propn|Antàrktika|f}} # {{lb|sh|克羅地亞}} {{tcl|sh|南極洲|id=Q51}} #: {{syn|sh|Antàrktik<ll:Bosnia,Serbia,or,口語>}} ====變格==== {{sh-decl-noun-unc |Antarktika |Antarktike |Antarktici |Antarktiku |Antarktiko |Antarktici |Antarktikom }} ==斯洛文尼亞語== ===發音=== * {{sl-IPA|Antárktika}} ===專有名詞=== {{sl-proper noun|Antárktika|f}} # {{tcl|sl|南極洲|id=Q51}} ====變格==== {{sl-decl-noun-f|Antárktik|n=sg}} ==他加祿語== ===發音=== {{tl-pr|Antárktika}} ===專有名詞=== {{tl-proper noun|Antárktiká|b=+}} # {{alt form|tl|Antartika}} ==土耳其語== [[Image: Antarctica 6400px from Blue Marble.jpg|thumb|Antarktika]] ===專有名詞=== {{tr-proper noun}} # {{tcl|tr|南極洲|id=Q51}} ====變格==== {{tr-decl-noun-unc |Antarktika |Antarktika'yı |Antarktika'ya |Antarktika'da |Antarktika'dan |Antarktika'nın }} ====相關詞彙==== * {{l|tr|Güney Kutbu}} tsegpfu0o07hpy3vgwkgv8mhlsechst Algérie 0 318471 9759438 7656515 2026-05-14T15:59:44Z TongcyDai 53191 9759438 wikitext text/x-wiki {{also|Algerie|Algerië}} ==法語== {{wp|fr:}} ===詞源=== {{etymon|fr|:af|Alger|-ie|tree=1}} 源自 {{af|fr|Alger|-ie}}。{{etystub|fr}} ===發音=== * {{fr-IPA}} * {{audio|fr|Fr-Algérie.ogg}} * {{audio|fr|LL-Q150 (fra)-GrandCelinien-Algérie.wav|a=巴黎}} * {{audio|fr|LL-Q150 (fra)-Poslovitch-Algérie.wav|a=孚日}} * {{rhymes|fr|i|s=3}} ===專有名詞=== {{fr-proper noun|f}} # {{tcl|fr|阿爾及利亞|id=Q262|place_caplc=Alger}} ====派生詞彙==== * {{l|fr|guerre d'Algérie}} ====相關詞彙==== * {{l|fr|algérien}} ===異序詞=== * {{l|fr|galerie}}、{{l|fr|gèlerai}}、{{l|fr|regelai}} {{cln|fr|外名}} ==諾曼語== ===詞源=== {{rfe|nrf}} ===專有名詞=== {{nrf-proper noun|f}} # {{tcl|nrf|阿爾及利亞|id=Q262}} ==越南語== {{wp|lang=vi}} ===專有名詞=== {{vi-propn}} # {{alt form|vi|An-giê-ri}} {{cln|vi|外名}} 20ujhjh48zdc9fgiiwjitwjpw6yuhc7 bách chiến bách thắng 0 327616 9759463 8356395 2026-05-14T17:48:01Z InternetArchiveBot 95668 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 9759463 wikitext text/x-wiki ==越南語== ===詞源=== {{vi-etym-sino|百戰百勝}}。 ===發音=== {{vi-IPA}} ===成語=== {{head|vi|成語}} # [[百戰百勝]] #* '''2020''', Nguyễn Hưng [https://web.archive.org/web/20250519124943/https://kinhtedothi.vn/thong-diep-tu-lich-su-pham-ngu-lao-vi-tuong-bach-chien-bach-thang.html " (Thông điệp từ lịch sử) Phạm Ngũ Lão - vị tướng '''bách chiến, bách thắng''' (來自歷史的消息) Phạm Ngũ Lão - '''百戰百勝'''的將軍"] ''Kinh Tế & Đô Thị (經濟與城市事務)'' #*: {{quote|vi|Điều đáng nói, vị tướng này dường như là truyền nhân của Hưng Đạo Đại Vương Trần Quốc Tuấn. Đây là vị tướng có nhiều nét tương đồng với Trần Quốc Tuấn, cả về tài năng chỉ huy quân sự, lẫn lòng trung thành với vua, với đất nước. Họ đều là những người bách chiến, bách thắng.|值得一提的是,這位將軍似乎是{{w|陳興道|興道王陳國峻}}的後人。這位將軍與陳國峻有許多相似之處,都善於指揮軍隊,並且忠於皇帝和國家。他們都是'''百戰百勝'''的人。}} ====近義詞==== * {{l|vi|trăm trận trăm thắng}} {{C|vi|百}} kpbub2zy7p2u11v9btlrlkiphmi8xes Алжир 0 327826 9759434 9535266 2026-05-14T15:52:29Z TongcyDai 53191 9759434 wikitext text/x-wiki ==保加利亞語== {{wp|bg:}} {{wp|bg:+ (град),+ (област)}} ===詞源=== 最终源自{{der|bg|ar|اَلْجَزَائِر||the islands}}。 ===發音=== {{bg-pr|Алжи́р|a=[KK]}} ===專有名詞=== {{bg-proper noun|Алжи́р|mf|adj=алжи́рски|dem=алжи́рец|fdem=алжи́рка}} # {{tcl|bg|阿爾及利亞|id=Q262}} # {{tcl|bg|阿爾及爾|id=Q3561,Q141026}} ==哈薩克語== {{kk-alt}} {{wp|kk:}} ===專有名詞=== {{head|kk|專有名詞}} # {{tcl|kk|阿爾及利亞|id=Q262}} # {{tcl|kk|阿爾及爾|id=Q3561}} ==吉爾吉斯語== {{wp|ky:}} ===專有名詞=== {{ky-prop}} # {{tcl|ky|阿爾及利亞|id=Q262}} ====變格==== {{ky-decl-noun-sg}} ==馬其頓語== ===發音=== * {{mk-IPA}} ===專有名詞=== {{mk-proper noun|m|adj=алжирски}} # {{tcl|mk|阿爾及利亞|id=Q262}} # {{tcl|mk|阿爾及爾|id=Q3561}} ====派生詞彙==== * {{l|mk|Алжирец|g=m}}、{{l|mk|Алжирка|g=f}} * {{l|mk|алжирец|g=m}}、{{l|mk|алжирка|g=f}} ==蒙古語== {{wp|mn:}} ===發音=== {{mn-IPA|Алжи́р}} ===專有名詞=== {{mn-proper noun|ᠠᠯᠵᠢᠷ}} # {{tcl|mn|阿爾及利亞|id=Q262}} # {{tcl|mn|阿爾及爾|id=Q3561}} ==潘諾尼亞盧森尼亞語== ===詞源=== {{bor+|rsk|sh|Алжир//Alžir}}, probably from {{der|rsk|de|Algier}},最终源自{{der|rsk|ar|اَلْجَزَائِر}}。 ===發音=== * {{rsk-IPA}} * {{rhymes|rsk|alʒir|s=2}} * {{hyph|rsk|Ал|жир}} ===專有名詞=== {{rsk-proper noun|m-in|adj=алжирски|dem=Алжирец|fdem=Алжирка}} # {{tcl|rsk|阿爾及利亞|id=Q262}} # {{tcl|rsk|阿爾及爾|id=Q3561,Q141026}} ====變格==== {{rsk-decl-noun-table |Алжир|Алжиру|Алжиру|Алжир|Алжиром|Алжиру|Алжиру }} ===參見=== {{list:countries in Africa/rsk}} ===參考資料=== * {{R:rsk:SRS|Алжир|832|2}} {{cln|rsk|singularia tantum}} ==俄語== {{wp|ru:}} ===其他形式=== * {{alt|ru|Алжи́ръ||ru-PRO}} ===發音=== * {{ru-IPA|Алжи́р}} * {{audio|ru|Ru-Алжир.ogg}} ===專有名詞=== {{ru-proper noun+|Алжи́р|m|adj=алжи́рский}} # {{tcl|ru|阿爾及利亞|id=Q262}} # {{tcl|ru|阿爾及爾|id=Q3561}} ====變格==== {{ru-noun-table|Алжи́р|n=sg}} ====派生詞彙==== * {{l|ru|алжи́рец|g=m-an}}、{{l|ru|алжи́рка|g=f-an}} ====參見==== {{list:countries in Africa/ru}} ==塞爾維亞-克羅地亞語== ===發音=== * {{IPA|sh|/ǎlʒiːr/}} * {{hyphenation|sh|Ал|жир}} ===專有名詞=== {{sh-propn|А̀лжӣр|m-in}} # {{tcl|sh|阿爾及利亞|id=Q262}} # {{tcl|sh|阿爾及爾|id=Q3561}} ====變格==== {{sh-decl-noun-unc |А̀лжӣр |Алжи́ра |Алжиру |Алжир |Алжире |Алжиру |Алжиром }} ==烏克蘭語== {{wp|uk:}} ===其他形式=== * {{alt|uk|Альжі́р||1928-1933 spelling}} ===發音=== * {{uk-IPA|Алжи́р}} * {{audio|uk|LL-Q8798 (ukr)-Tohaomg-Алжир.wav}} * {{rhymes|uk|ɪr|s=2}} * {{hyphenation|uk|Ал|жир}} ===專有名詞=== {{uk-proper noun|Алжи́р<sg.genu>|adj=алжи́рський}} # {{tcl|uk|阿爾及利亞|id=Q262}} ====變格==== {{uk-ndecl|Алжи́р<sg.genu>}} ===專有名詞=== {{uk-proper noun|Алжи́р<sg>|adj=алжи́рський}} # {{tcl|uk|阿爾及爾|id=Q3561}} ====變格==== {{uk-ndecl|Алжи́р<sg>}} ====派生詞彙==== {{col3|uk| |алжи́рець |алжи́рка }} ===參見=== {{list:countries in Africa/uk}} ===參考資料=== * {{R:uk:Horokh}} 5479gg788ji6m5qjfu01yvcyx25m84w 9759435 9759434 2026-05-14T15:52:53Z TongcyDai 53191 9759435 wikitext text/x-wiki ==保加利亞語== {{wp|bg:}} {{wp|bg:+ (град),+ (област)}} ===詞源=== 最终源自{{der|bg|ar|اَلْجَزَائِر||島嶼}}。 ===發音=== {{bg-pr|Алжи́р|a=[KK]}} ===專有名詞=== {{bg-proper noun|Алжи́р|mf|adj=алжи́рски|dem=алжи́рец|fdem=алжи́рка}} # {{tcl|bg|阿爾及利亞|id=Q262}} # {{tcl|bg|阿爾及爾|id=Q3561,Q141026}} ==哈薩克語== {{kk-alt}} {{wp|kk:}} ===專有名詞=== {{head|kk|專有名詞}} # {{tcl|kk|阿爾及利亞|id=Q262}} # {{tcl|kk|阿爾及爾|id=Q3561}} ==吉爾吉斯語== {{wp|ky:}} ===專有名詞=== {{ky-prop}} # {{tcl|ky|阿爾及利亞|id=Q262}} ====變格==== {{ky-decl-noun-sg}} ==馬其頓語== ===發音=== * {{mk-IPA}} ===專有名詞=== {{mk-proper noun|m|adj=алжирски}} # {{tcl|mk|阿爾及利亞|id=Q262}} # {{tcl|mk|阿爾及爾|id=Q3561}} ====派生詞彙==== * {{l|mk|Алжирец|g=m}}、{{l|mk|Алжирка|g=f}} * {{l|mk|алжирец|g=m}}、{{l|mk|алжирка|g=f}} ==蒙古語== {{wp|mn:}} ===發音=== {{mn-IPA|Алжи́р}} ===專有名詞=== {{mn-proper noun|ᠠᠯᠵᠢᠷ}} # {{tcl|mn|阿爾及利亞|id=Q262}} # {{tcl|mn|阿爾及爾|id=Q3561}} ==潘諾尼亞盧森尼亞語== ===詞源=== {{bor+|rsk|sh|Алжир//Alžir}}, probably from {{der|rsk|de|Algier}},最终源自{{der|rsk|ar|اَلْجَزَائِر}}。 ===發音=== * {{rsk-IPA}} * {{rhymes|rsk|alʒir|s=2}} * {{hyph|rsk|Ал|жир}} ===專有名詞=== {{rsk-proper noun|m-in|adj=алжирски|dem=Алжирец|fdem=Алжирка}} # {{tcl|rsk|阿爾及利亞|id=Q262}} # {{tcl|rsk|阿爾及爾|id=Q3561,Q141026}} ====變格==== {{rsk-decl-noun-table |Алжир|Алжиру|Алжиру|Алжир|Алжиром|Алжиру|Алжиру }} ===參見=== {{list:countries in Africa/rsk}} ===參考資料=== * {{R:rsk:SRS|Алжир|832|2}} {{cln|rsk|singularia tantum}} ==俄語== {{wp|ru:}} ===其他形式=== * {{alt|ru|Алжи́ръ||ru-PRO}} ===發音=== * {{ru-IPA|Алжи́р}} * {{audio|ru|Ru-Алжир.ogg}} ===專有名詞=== {{ru-proper noun+|Алжи́р|m|adj=алжи́рский}} # {{tcl|ru|阿爾及利亞|id=Q262}} # {{tcl|ru|阿爾及爾|id=Q3561}} ====變格==== {{ru-noun-table|Алжи́р|n=sg}} ====派生詞彙==== * {{l|ru|алжи́рец|g=m-an}}、{{l|ru|алжи́рка|g=f-an}} ====參見==== {{list:countries in Africa/ru}} ==塞爾維亞-克羅地亞語== ===發音=== * {{IPA|sh|/ǎlʒiːr/}} * {{hyphenation|sh|Ал|жир}} ===專有名詞=== {{sh-propn|А̀лжӣр|m-in}} # {{tcl|sh|阿爾及利亞|id=Q262}} # {{tcl|sh|阿爾及爾|id=Q3561}} ====變格==== {{sh-decl-noun-unc |А̀лжӣр |Алжи́ра |Алжиру |Алжир |Алжире |Алжиру |Алжиром }} ==烏克蘭語== {{wp|uk:}} ===其他形式=== * {{alt|uk|Альжі́р||1928-1933 spelling}} ===發音=== * {{uk-IPA|Алжи́р}} * {{audio|uk|LL-Q8798 (ukr)-Tohaomg-Алжир.wav}} * {{rhymes|uk|ɪr|s=2}} * {{hyphenation|uk|Ал|жир}} ===專有名詞=== {{uk-proper noun|Алжи́р<sg.genu>|adj=алжи́рський}} # {{tcl|uk|阿爾及利亞|id=Q262}} ====變格==== {{uk-ndecl|Алжи́р<sg.genu>}} ===專有名詞=== {{uk-proper noun|Алжи́р<sg>|adj=алжи́рський}} # {{tcl|uk|阿爾及爾|id=Q3561}} ====變格==== {{uk-ndecl|Алжи́р<sg>}} ====派生詞彙==== {{col3|uk| |алжи́рець |алжи́рка }} ===參見=== {{list:countries in Africa/uk}} ===參考資料=== * {{R:uk:Horokh}} rnzmk25ccbomce1wc0nyujoqph8o3tp 9759436 9759435 2026-05-14T15:53:16Z TongcyDai 53191 9759436 wikitext text/x-wiki ==保加利亞語== {{wp|bg:}} {{wp|bg:+ (град),+ (област)}} ===詞源=== 最终源自{{der|bg|ar|اَلْجَزَائِر||島嶼}}。 ===發音=== {{bg-pr|Алжи́р|a=[KK]}} ===專有名詞=== {{bg-proper noun|Алжи́р|mf|adj=алжи́рски|dem=алжи́рец|fdem=алжи́рка}} # {{tcl|bg|阿爾及利亞|id=Q262}} # {{tcl|bg|阿爾及爾|id=Q3561,Q141026}} ==哈薩克語== {{kk-alt}} {{wp|kk:}} ===專有名詞=== {{head|kk|專有名詞}} # {{tcl|kk|阿爾及利亞|id=Q262}} # {{tcl|kk|阿爾及爾|id=Q3561}} ==吉爾吉斯語== {{wp|ky:}} ===專有名詞=== {{ky-prop}} # {{tcl|ky|阿爾及利亞|id=Q262}} ====變格==== {{ky-decl-noun-sg}} ==馬其頓語== ===發音=== * {{mk-IPA}} ===專有名詞=== {{mk-proper noun|m|adj=алжирски}} # {{tcl|mk|阿爾及利亞|id=Q262}} # {{tcl|mk|阿爾及爾|id=Q3561}} ====派生詞彙==== * {{l|mk|Алжирец|g=m}}、{{l|mk|Алжирка|g=f}} * {{l|mk|алжирец|g=m}}、{{l|mk|алжирка|g=f}} ==蒙古語== {{wp|mn:}} ===發音=== {{mn-IPA|Алжи́р}} ===專有名詞=== {{mn-proper noun|ᠠᠯᠵᠢᠷ}} # {{tcl|mn|阿爾及利亞|id=Q262}} # {{tcl|mn|阿爾及爾|id=Q3561}} ==潘諾尼亞盧森尼亞語== ===詞源=== {{bor+|rsk|sh|Алжир//Alžir}},可能源自{{der|rsk|de|Algier}},最终源自{{der|rsk|ar|اَلْجَزَائِر}}。 ===發音=== * {{rsk-IPA}} * {{rhymes|rsk|alʒir|s=2}} * {{hyph|rsk|Ал|жир}} ===專有名詞=== {{rsk-proper noun|m-in|adj=алжирски|dem=Алжирец|fdem=Алжирка}} # {{tcl|rsk|阿爾及利亞|id=Q262}} # {{tcl|rsk|阿爾及爾|id=Q3561,Q141026}} ====變格==== {{rsk-decl-noun-table |Алжир|Алжиру|Алжиру|Алжир|Алжиром|Алжиру|Алжиру }} ===參見=== {{list:countries in Africa/rsk}} ===參考資料=== * {{R:rsk:SRS|Алжир|832|2}} {{cln|rsk|singularia tantum}} ==俄語== {{wp|ru:}} ===其他形式=== * {{alt|ru|Алжи́ръ||ru-PRO}} ===發音=== * {{ru-IPA|Алжи́р}} * {{audio|ru|Ru-Алжир.ogg}} ===專有名詞=== {{ru-proper noun+|Алжи́р|m|adj=алжи́рский}} # {{tcl|ru|阿爾及利亞|id=Q262}} # {{tcl|ru|阿爾及爾|id=Q3561}} ====變格==== {{ru-noun-table|Алжи́р|n=sg}} ====派生詞彙==== * {{l|ru|алжи́рец|g=m-an}}、{{l|ru|алжи́рка|g=f-an}} ====參見==== {{list:countries in Africa/ru}} ==塞爾維亞-克羅地亞語== ===發音=== * {{IPA|sh|/ǎlʒiːr/}} * {{hyphenation|sh|Ал|жир}} ===專有名詞=== {{sh-propn|А̀лжӣр|m-in}} # {{tcl|sh|阿爾及利亞|id=Q262}} # {{tcl|sh|阿爾及爾|id=Q3561}} ====變格==== {{sh-decl-noun-unc |А̀лжӣр |Алжи́ра |Алжиру |Алжир |Алжире |Алжиру |Алжиром }} ==烏克蘭語== {{wp|uk:}} ===其他形式=== * {{alt|uk|Альжі́р||1928-1933 spelling}} ===發音=== * {{uk-IPA|Алжи́р}} * {{audio|uk|LL-Q8798 (ukr)-Tohaomg-Алжир.wav}} * {{rhymes|uk|ɪr|s=2}} * {{hyphenation|uk|Ал|жир}} ===專有名詞=== {{uk-proper noun|Алжи́р<sg.genu>|adj=алжи́рський}} # {{tcl|uk|阿爾及利亞|id=Q262}} ====變格==== {{uk-ndecl|Алжи́р<sg.genu>}} ===專有名詞=== {{uk-proper noun|Алжи́р<sg>|adj=алжи́рський}} # {{tcl|uk|阿爾及爾|id=Q3561}} ====變格==== {{uk-ndecl|Алжи́р<sg>}} ====派生詞彙==== {{col3|uk| |алжи́рець |алжи́рка }} ===參見=== {{list:countries in Africa/uk}} ===參考資料=== * {{R:uk:Horokh}} riab32h9ty81i0pf5meza3nigna93xc 9759437 9759436 2026-05-14T15:53:41Z TongcyDai 53191 9759437 wikitext text/x-wiki ==保加利亞語== {{wp|bg:}} {{wp|bg:+ (град),+ (област)}} ===詞源=== 最终源自{{der|bg|ar|اَلْجَزَائِر||島嶼}}。 ===發音=== {{bg-pr|Алжи́р|a=[KK]}} ===專有名詞=== {{bg-proper noun|Алжи́р|mf|adj=алжи́рски|dem=алжи́рец|fdem=алжи́рка}} # {{tcl|bg|阿爾及利亞|id=Q262}} # {{tcl|bg|阿爾及爾|id=Q3561,Q141026}} ==哈薩克語== {{kk-alt}} {{wp|kk:}} ===專有名詞=== {{head|kk|專有名詞}} # {{tcl|kk|阿爾及利亞|id=Q262}} # {{tcl|kk|阿爾及爾|id=Q3561}} ==吉爾吉斯語== {{wp|ky:}} ===專有名詞=== {{ky-prop}} # {{tcl|ky|阿爾及利亞|id=Q262}} ====變格==== {{ky-decl-noun-sg}} ==馬其頓語== ===發音=== * {{mk-IPA}} ===專有名詞=== {{mk-proper noun|m|adj=алжирски}} # {{tcl|mk|阿爾及利亞|id=Q262}} # {{tcl|mk|阿爾及爾|id=Q3561}} ====派生詞彙==== * {{l|mk|Алжирец|g=m}}、{{l|mk|Алжирка|g=f}} * {{l|mk|алжирец|g=m}}、{{l|mk|алжирка|g=f}} ==蒙古語== {{wp|mn:}} ===發音=== {{mn-IPA|Алжи́р}} ===專有名詞=== {{mn-proper noun|ᠠᠯᠵᠢᠷ}} # {{tcl|mn|阿爾及利亞|id=Q262}} # {{tcl|mn|阿爾及爾|id=Q3561}} ==潘諾尼亞盧森尼亞語== ===詞源=== {{bor+|rsk|sh|Алжир//Alžir}},可能源自{{der|rsk|de|Algier}},最终源自{{der|rsk|ar|اَلْجَزَائِر}}。 ===發音=== * {{rsk-IPA}} * {{rhymes|rsk|alʒir|s=2}} * {{hyph|rsk|Ал|жир}} ===專有名詞=== {{rsk-proper noun|m-in|adj=алжирски|dem=Алжирец|fdem=Алжирка}} # {{tcl|rsk|阿爾及利亞|id=Q262}} # {{tcl|rsk|阿爾及爾|id=Q3561,Q141026}} ====變格==== {{rsk-decl-noun-table |Алжир|Алжиру|Алжиру|Алжир|Алжиром|Алжиру|Алжиру }} ===參見=== {{list:countries in Africa/rsk}} ===參考資料=== * {{R:rsk:SRS|Алжир|832|2}} {{cln|rsk|唯單名詞}} ==俄語== {{wp|ru:}} ===其他形式=== * {{alt|ru|Алжи́ръ||ru-PRO}} ===發音=== * {{ru-IPA|Алжи́р}} * {{audio|ru|Ru-Алжир.ogg}} ===專有名詞=== {{ru-proper noun+|Алжи́р|m|adj=алжи́рский}} # {{tcl|ru|阿爾及利亞|id=Q262}} # {{tcl|ru|阿爾及爾|id=Q3561}} ====變格==== {{ru-noun-table|Алжи́р|n=sg}} ====派生詞彙==== * {{l|ru|алжи́рец|g=m-an}}、{{l|ru|алжи́рка|g=f-an}} ====參見==== {{list:countries in Africa/ru}} ==塞爾維亞-克羅地亞語== ===發音=== * {{IPA|sh|/ǎlʒiːr/}} * {{hyphenation|sh|Ал|жир}} ===專有名詞=== {{sh-propn|А̀лжӣр|m-in}} # {{tcl|sh|阿爾及利亞|id=Q262}} # {{tcl|sh|阿爾及爾|id=Q3561}} ====變格==== {{sh-decl-noun-unc |А̀лжӣр |Алжи́ра |Алжиру |Алжир |Алжире |Алжиру |Алжиром }} ==烏克蘭語== {{wp|uk:}} ===其他形式=== * {{alt|uk|Альжі́р||1928-1933 spelling}} ===發音=== * {{uk-IPA|Алжи́р}} * {{audio|uk|LL-Q8798 (ukr)-Tohaomg-Алжир.wav}} * {{rhymes|uk|ɪr|s=2}} * {{hyphenation|uk|Ал|жир}} ===專有名詞=== {{uk-proper noun|Алжи́р<sg.genu>|adj=алжи́рський}} # {{tcl|uk|阿爾及利亞|id=Q262}} ====變格==== {{uk-ndecl|Алжи́р<sg.genu>}} ===專有名詞=== {{uk-proper noun|Алжи́р<sg>|adj=алжи́рський}} # {{tcl|uk|阿爾及爾|id=Q3561}} ====變格==== {{uk-ndecl|Алжи́р<sg>}} ====派生詞彙==== {{col3|uk| |алжи́рець |алжи́рка }} ===參見=== {{list:countries in Africa/uk}} ===參考資料=== * {{R:uk:Horokh}} cnov47nl8hm79q0so3pxp421gahvps6 분홍색 0 426459 9759419 5248601 2026-05-14T14:56:41Z Sayonzei 40728 9759419 wikitext text/x-wiki ==朝鮮語== ===詞源=== {{ko-etym-sino|粉紅||色|}}。 ===發音=== {{ko-IPA|l=y}} ===名詞=== {{ko-noun|hanja=粉紅色}} # [[粉紅色]] #: {{color panel|F52887|FF80BF}} #: {{syn|ko|핑크색}} ===參見=== {{table:colors/ko}} {{C|ko|粉色}} gl96a2c2j2zvl8yxets84e31rs1kvu6 오렌지색 0 475834 9759417 5257412 2026-05-14T14:56:03Z Sayonzei 40728 9759417 wikitext text/x-wiki ==朝鮮語== ===詞源=== 源自 {{compound|ko|오렌지|색(色)}}。 ===發音=== {{ko-IPA}} ===名詞=== {{ko-noun}} # [[橙色]] #: {{color panel|FF8000}} ====近義詞==== * {{l|ko|주황색(朱黃色)}} ===參見=== {{table:colors/ko}} {{C|ko|彩虹顏色|橙色}} t57j8vh80bk31ajfdum2ayj991tk2tb 주황색 0 525291 9759416 5573169 2026-05-14T14:55:58Z Sayonzei 40728 9759416 wikitext text/x-wiki ==朝鮮語== ===詞源=== {{ko-etym-sino|朱黃色}}。 ===發音=== {{ko-IPA}} ===名詞=== {{ko-noun|hanja=朱黃色}} # [[橙色]] #: {{color panel|FF8000}} ====近義詞==== * {{ko-l|오렌지색}} ===參見=== {{table:colors/ko}} {{C|ko|彩虹顏色|橙色}} i0o6pfz5yq7x4aj799oqc0o245hix72 초록색 0 538298 9759418 5265714 2026-05-14T14:56:24Z Sayonzei 40728 9759418 wikitext text/x-wiki ==朝鮮語== ===詞源=== {{ko-etym-sino|草綠||色|}}。 ===發音=== {{ko-IPA}} ===名詞=== {{ko-noun|hanja=草綠色}} # [[草綠色]] #: {{color panel|008000|00FF00}} #: {{syn|ko|초록빛}} ===參見=== {{table:colors/ko}} {{C|ko|彩虹顏色|綠色}} 978igkr3bykj4kkxambipe9e7knubem 阿爾及爾 0 573335 9759430 8937225 2026-05-14T15:45:09Z TongcyDai 53191 9759430 wikitext text/x-wiki ==漢語== {{zh-forms|s=阿尔及尔|gloss=-}} {{zh-wp}} ===發音=== {{zh-pron |m=Ā'ěrjí'ěr |cat=pn }} ===专有名词=== {{head|zh|专有名词}} # {{sid|zh|Q3561}}{{place|zh|caplc|c/阿爾及利亞|r/北非}} ====翻譯==== {{trans-top|阿尔及利亚首都}} * 南非語:{{t|af|Algiers}} * 阿爾巴尼亞語:{{t|sq|Algjer|m}} * 阿姆哈拉語:{{t|am|አልጀርስ}} * 安地列斯克里奧爾語:{{t|gcf|Aljé}} * 阿拉伯語:{{t+|ar|الْجَزَائِر|f-p}} *: 阿爾及利亞阿拉伯語:{{t|arq|الدزاير|tr=ed-dzāyir}} *: 埃及阿拉伯語:{{t|arz|الجزاير|tr=el-gazāyer}} *: 摩洛哥阿拉伯語:{{t|ary|الجزائر|tr=el-jazāʔir}}、{{t|ary|الجزاير|tr=el-jazāyir}} * 亞拉姆語: *: 亞述新亞拉姆語:{{t|aii|ܓܙܐܝܪ}} * 亞美尼亞語:{{t+|hy|Ալժիր}} * 阿斯圖里亞斯語:{{t+|ast|Arxel}} * 阿塞拜疆語:{{t+|az|Əlcəzair}} * 巴什基爾語:{{t|ba|Алжир}} * 白俄羅斯語:{{t|be|Алжы́р|m}}、{{t|be|Альжы́р|m}} {{qualifier|傳統正寫法}} * 保加利亞語:{{t|bg|Алжи́р|m}} * 緬甸語:{{t|my|[[အယ်လဂျီးယား]][[မြို့]]}} * 加泰羅尼亞語:{{t+|ca|Alger|m}} * 科西嘉語:{{t|co|Algeri|f}} * 捷克語:{{t+|cs|Alžír|m}} * 丹麥語:{{t+|da|Algier|n}} * 荷蘭語:{{t+|nl|Algiers|n}} * 英語:{{t+|en|Algiers}} * 世界語:{{t+|eo|Alĝero}} * 芬蘭語:{{t+|fi|Alger}} * 法語:{{t+|fr|Alger|m|f}} * 加利西亞語:{{t+|gl|Alxer}} * 德語:{{t+|de|Algier|n}} * 希臘語:{{t+|el|Αλγέρι|n}} * 希伯來語:{{t|he|אַלְגִ׳יר|f|tr=aljír}} * 印地語:{{t|hi|अल्जीयर्स|m}} * 匈牙利語:{{t+|hu|Algír}} * 冰島語:{{t|is|Algeirsborg}} * 伊多語:{{t+|io|Aljer}} * 印尼語:{{t|id|Aljir}}、{{t+|id|Aljazair}} {{qualifier|棄用}} * 愛爾蘭語:{{t|ga|Cathair na hAilgéire|f}} * 意大利語:{{t+|it|Algeri|f}} * 日語:{{t+|ja|アルジェ|tr=Aruje}} * 卡拜爾語:{{t|kab|ⴷⵣⴰⵢⴻ|tr=dzayer}} * 哈薩克語:{{t+|kk|Алжир}} * 高棉語:{{t+|km|អាល់ហ្សេ}} * 朝鮮語:{{t|ko|^알제}} * 庫爾德語: *: 北庫爾德語:{{t+|kmr|Cezayir}} * 吉爾吉斯語:{{t+|ky|Алжир}} * 拉丁語:{{t|la|Algeria|f}} * 拉脫維亞語:{{t|lv|Alžīra}} * 立陶宛語:{{t+|lt|Alžyras}} * 馬其頓語:{{t+|mk|Алжир|m}} * 馬爾他語:{{t|mt|Alġier}} * 馬拉地語:{{t|mr|अ‍ॅल्जियर्स}} * 蒙古語: *: 西里爾字母:{{t|mn|Алжир}} * 納瓦霍語:{{t|nv|Áljiis}} * 挪威語: *: 書面挪威語:{{t+|nb|Alger}} *: 新挪威語:{{t|nn|Alger}} * 奧克語:{{t|oc|Argièr|m}}、{{t|oc|Argèr|m}}、{{t|oc|Argèir|m}}、{{t|oc|Algièr|m}} * 鄂圖曼土耳其語:{{t|ota|جزائر|tr=Cezâyir}}、{{t|ota|جزائر غرب|tr=Cezâyir-i Garb}} * 普什圖語:{{t|ps|الجزيره|f|tr=alǰazirá}} * 波斯語:{{t|fa|الجزیره|tr=aljazire}} * 波蘭語:{{t+|pl|Algier|m}} * 葡萄牙語:{{t+|pt|Argel|m}} * 羅馬尼亞語:{{t+|ro|Alger}} * 俄語:{{t+|ru|Алжи́р|m}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|А̀лжӣр|m}} *: 拉丁字母:{{t+|sh|Àlžīr|m}} * 西西里語:{{t|scn|Algeri|f}} * 僧加羅語:{{t|si|ඇල්ජිරියස්}} * 斯洛伐克語:{{t+|sk|Alžír|m}} * 斯洛文尼亞語:{{t+|sl|Alžir|m}} * 西班牙語:{{t+|es|Argel|m}} * 瑞典語:{{t+|sv|Alger|n}} * 他加祿語:{{t|tl|Arhel}} * 塔吉克語:{{t|tg|Алҷазира}} * 泰米爾語:{{t|ta|அல்ஜியர்ஸ்}} * 韃靼語:{{t|tt|Әлҗәзаир}} * 泰語:{{t|th|แอลเจียร์ส}}、{{t|th|อัลเจียร์ส}} * 藏語:{{t|bo|ཨཱལ་ཇི་ཡར་སི}} * 土耳其語:{{t+|tr|Cezayir}} * 烏克蘭語:{{t+|uk|Алжи́р|m}} * 烏爾都語:{{t|ur|الجزائر|m|tr=aljazā'ir}} * 維吾爾語:{{t|ug|ئالجىر}} * 烏茲別克語:{{t+|uz|Jazoir}} * 越南語:{{t|vi|An-giê}} * 意第緒語:{{t|yi|אַלזשיר|n}} {{trans-bottom}} md0qsv97ipv77tqvnrwjzuaeufy2cnq 9759433 9759430 2026-05-14T15:51:40Z TongcyDai 53191 9759433 wikitext text/x-wiki ==漢語== {{zh-forms|s=阿尔及尔|gloss=-}} {{zh-wp}} ===發音=== {{zh-pron |m=Ā'ěrjí'ěr |cat=pn }} ===专有名词=== {{head|zh|专有名词}} # {{sid|zh|Q3561}}{{place|zh|caplc|c/阿爾及利亞|r/北非}} # {{sid|zh|Q141026}}{{place|en|province|c/阿爾及利亞}} ====翻譯==== {{trans-top|阿尔及利亚首都}} * 南非語:{{t|af|Algiers}} * 阿爾巴尼亞語:{{t|sq|Algjer|m}} * 阿姆哈拉語:{{t|am|አልጀርስ}} * 安地列斯克里奧爾語:{{t|gcf|Aljé}} * 阿拉伯語:{{t+|ar|الْجَزَائِر|f-p}} *: 阿爾及利亞阿拉伯語:{{t|arq|الدزاير|tr=ed-dzāyir}} *: 埃及阿拉伯語:{{t|arz|الجزاير|tr=el-gazāyer}} *: 摩洛哥阿拉伯語:{{t|ary|الجزائر|tr=el-jazāʔir}}、{{t|ary|الجزاير|tr=el-jazāyir}} * 亞拉姆語: *: 亞述新亞拉姆語:{{t|aii|ܓܙܐܝܪ}} * 亞美尼亞語:{{t+|hy|Ալժիր}} * 阿斯圖里亞斯語:{{t+|ast|Arxel}} * 阿塞拜疆語:{{t+|az|Əlcəzair}} * 巴什基爾語:{{t|ba|Алжир}} * 白俄羅斯語:{{t|be|Алжы́р|m}}、{{t|be|Альжы́р|m}} {{qualifier|傳統正寫法}} * 保加利亞語:{{t|bg|Алжи́р|m}} * 緬甸語:{{t|my|[[အယ်လဂျီးယား]][[မြို့]]}} * 加泰羅尼亞語:{{t+|ca|Alger|m}} * 科西嘉語:{{t|co|Algeri|f}} * 捷克語:{{t+|cs|Alžír|m}} * 丹麥語:{{t+|da|Algier|n}} * 荷蘭語:{{t+|nl|Algiers|n}} * 英語:{{t+|en|Algiers}} * 世界語:{{t+|eo|Alĝero}} * 芬蘭語:{{t+|fi|Alger}} * 法語:{{t+|fr|Alger|m|f}} * 加利西亞語:{{t+|gl|Alxer}} * 德語:{{t+|de|Algier|n}} * 希臘語:{{t+|el|Αλγέρι|n}} * 希伯來語:{{t|he|אַלְגִ׳יר|f|tr=aljír}} * 印地語:{{t|hi|अल्जीयर्स|m}} * 匈牙利語:{{t+|hu|Algír}} * 冰島語:{{t|is|Algeirsborg}} * 伊多語:{{t+|io|Aljer}} * 印尼語:{{t|id|Aljir}}、{{t+|id|Aljazair}} {{qualifier|棄用}} * 愛爾蘭語:{{t|ga|Cathair na hAilgéire|f}} * 意大利語:{{t+|it|Algeri|f}} * 日語:{{t+|ja|アルジェ|tr=Aruje}} * 卡拜爾語:{{t|kab|ⴷⵣⴰⵢⴻ|tr=dzayer}} * 哈薩克語:{{t+|kk|Алжир}} * 高棉語:{{t+|km|អាល់ហ្សេ}} * 朝鮮語:{{t|ko|^알제}} * 庫爾德語: *: 北庫爾德語:{{t+|kmr|Cezayir}} * 吉爾吉斯語:{{t+|ky|Алжир}} * 拉丁語:{{t|la|Algeria|f}} * 拉脫維亞語:{{t|lv|Alžīra}} * 立陶宛語:{{t+|lt|Alžyras}} * 馬其頓語:{{t+|mk|Алжир|m}} * 馬爾他語:{{t|mt|Alġier}} * 馬拉地語:{{t|mr|अ‍ॅल्जियर्स}} * 蒙古語: *: 西里爾字母:{{t|mn|Алжир}} * 納瓦霍語:{{t|nv|Áljiis}} * 挪威語: *: 書面挪威語:{{t+|nb|Alger}} *: 新挪威語:{{t|nn|Alger}} * 奧克語:{{t|oc|Argièr|m}}、{{t|oc|Argèr|m}}、{{t|oc|Argèir|m}}、{{t|oc|Algièr|m}} * 鄂圖曼土耳其語:{{t|ota|جزائر|tr=Cezâyir}}、{{t|ota|جزائر غرب|tr=Cezâyir-i Garb}} * 普什圖語:{{t|ps|الجزيره|f|tr=alǰazirá}} * 波斯語:{{t|fa|الجزیره|tr=aljazire}} * 波蘭語:{{t+|pl|Algier|m}} * 葡萄牙語:{{t+|pt|Argel|m}} * 羅馬尼亞語:{{t+|ro|Alger}} * 俄語:{{t+|ru|Алжи́р|m}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|А̀лжӣр|m}} *: 拉丁字母:{{t+|sh|Àlžīr|m}} * 西西里語:{{t|scn|Algeri|f}} * 僧加羅語:{{t|si|ඇල්ජිරියස්}} * 斯洛伐克語:{{t+|sk|Alžír|m}} * 斯洛文尼亞語:{{t+|sl|Alžir|m}} * 西班牙語:{{t+|es|Argel|m}} * 瑞典語:{{t+|sv|Alger|n}} * 他加祿語:{{t|tl|Arhel}} * 塔吉克語:{{t|tg|Алҷазира}} * 泰米爾語:{{t|ta|அல்ஜியர்ஸ்}} * 韃靼語:{{t|tt|Әлҗәзаир}} * 泰語:{{t|th|แอลเจียร์ส}}、{{t|th|อัลเจียร์ส}} * 藏語:{{t|bo|ཨཱལ་ཇི་ཡར་སི}} * 土耳其語:{{t+|tr|Cezayir}} * 烏克蘭語:{{t+|uk|Алжи́р|m}} * 烏爾都語:{{t|ur|الجزائر|m|tr=aljazā'ir}} * 維吾爾語:{{t|ug|ئالجىر}} * 烏茲別克語:{{t+|uz|Jazoir}} * 越南語:{{t|vi|An-giê}} * 意第緒語:{{t|yi|אַלזשיר|n}} {{trans-bottom}} 9q5c20uwsth5ujv7j2ed2sz7lj5tuh6 阿爾及利亞 0 573336 9759411 9728765 2026-05-14T14:35:57Z TongcyDai 53191 9759411 wikitext text/x-wiki ==漢語== {{zh-forms|s=阿尔及利亚|gloss=-}} {{zh-wp}} [[File:Flag of Algeria.svg|250px|thumb|阿爾及利亞國旗]] ===詞源=== 源自{{bor|zh|en|Algeria}}。 ===發音=== {{zh-pron |m=Ā'ěrjílì亞 |c=aa3 ji5 kap6 lei6 aa3 |mn=xm,qz,tw:A-ní-ki̍p-lī-a/zz:A-jíⁿ-ki̍p-lī-a |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q262}}{{place|zh|國家|r/北非|[[地中海]]南岸|caplc=阿爾及爾|official=阿爾及利亞人民民主共和國}}。 ====翻譯==== {{trans-top|id=Q262|國家}} * 阿布哈兹语:{{t|ab|Алжир}} * 亚齐语:{{t|ace|Aljazair}} * 西切爾克斯語:{{t|ady|Алжир}} * 南非语:{{t|af|Algerië}} * 阿尔巴尼亚语:{{t+|sq|Algjeri|f}} {{qualifier|不定}}、{{t+|sq|Algjeria|f}} * 阿姆哈拉语:{{t|am|አልጄሪያ}} * 阿拉伯语:{{t+|ar|الْجَزَائِر|f-p}} *: 阿爾及利亞阿拉伯语:{{t|arq|الدزَاير|tr=al-dzayir}} *: 埃及阿拉伯语:{{t|arz|الجزاير|f|tr=el-gazayer}} *: 摩洛哥阿拉伯语:{{t|ary|الجزاير|tr=el-jazāyir}} * 阿拉贡语:{{t|an|Alcheria}} * 亚美尼亚语:{{t+|hy|Ալժիր}} * 阿萨姆语:{{t|as|আলজেৰিয়া|tr=alzeria}} * 亚述新亚拉姆语:{{t|aii|ܓܵܙܲܥܝܼܪ|tr=gazāʾir}} * 阿斯图里亚斯语:{{t+|ast|Arxelia|f}} * 阿塞拜疆语:{{t+|az|Əlcəzair}} * 巴什基尔语:{{t|ba|Алжир}} * 巴斯克语:{{t|eu|Aljeria}} * 白俄罗斯语:{{t|be|Алжы́р|m}}、{{t|be|Альжы́р|m}} {{qualifier|傳統正字法}} * 孟加拉语:{{t+|bn|আলজেরিয়া}} * 布列塔尼语:{{t+|br|Aljeria}} * 保加利亚语:{{t|bg|Алжи́р|m}} * 缅甸语:{{t|my|အယ်လ်ဂျီးရီးယား}} * 加泰罗尼亚语:{{t+|ca|Algèria|f}} * 中阿特拉斯柏柏尔语:{{t|tzm|ⵍⵣⵣⴰⵢⴻⵔ}}、{{t|tzm|ⴷⵣⴰⵢⴻⵔ}} * 切罗基语:{{t|chr|ᎠᎵᏥᎵᏯ}} * 科普特语:{{t|cop|ⲛⲓⲛⲏⲥⲟⲥ}} * 康沃尔语:{{t|kw|Aljeri}} * 科西嘉语:{{t|co|Algeria|f}}、{{t|co|Alghjeria|f}} * 克里米亚鞑靼语:{{t|crh|Cezair}} * 捷克语:{{t+|cs|Alžírsko|n}} * 丹麦语:{{t+|da|Algeriet|n}} * 迪维希语:{{t|dv|ޖަޒާއިރު}} * 荷兰语:{{t+|nl|Algerije|n}} * 英語:{{t+|en|Algeria}} * 世界语:{{t+|eo|Alĝerio}} * 爱沙尼亚语:{{t+|et|Alžeeria}} * 法罗语:{{t|fo|Algeria|n}} * 芬兰语:{{t+|fi|Algeria}} * 法语:{{t+|fr|Algérie|f}} * 加利西亚语:{{t+|gl|Alxeria|f}} * 格鲁吉亚语:{{t+|ka|ალჟირი}} * 德语:{{t+|de|Algerien|n}} * 希腊语:{{t+|el|Αλγερία|f}} * 海地克里奥尔语:{{t+|ht|Aljeri}} * 豪萨语:{{t|ha|Aljeriya}} * 夏威夷语:{{t|haw|ʻAlekelia}} * 希伯来语:{{t|he|אַלְגִ׳ירְיָה|f|tr=aljírya}} * 印地语:{{t+|hi|अल्जीरिया|m}} * 匈牙利语:{{t+|hu|Algéria}} * 冰岛语:{{t+|is|Alsír|n}} * 印尼语:{{t+|id|Aljazair}} * 因特语:{{t|ia|Algeria}} * 爱尔兰语:{{t|ga|Ailgéir|f|alt=An Ailgéir}} * 意大利语:{{t+|it|Algeria|f}} * 日语:{{t+|ja|アルジェリア|tr=Arujeria}} * 東切爾克斯語:{{t|kbd|Алджазаир}} * 卡拜尔语:{{t|kab|Leddzayer}} * 卡倫金語:{{t|kln|Aljeria}} * 卡姆巴語:{{t|kam|Aljeria}} * 卡纳达语:{{t|kn|ಅಲ್ಜೀರಿಯ}} * 哈萨克语:{{t|kk|Алжир}}、{{t|kk|Жезаир}} * 高棉语:{{t|km|អាល់ហ្សេរី}} * 基库尤语:{{t|ki|Aljeria}} * 朝鲜语:{{t+|ko|^알제리}} * 库尔德语: *: 中库尔德语:{{t|ckb|جەزایر}} *: 北库尔德语:{{t+|kmr|Cezayir}} * 吉尔吉斯语:{{t+|ky|Алжир}} * 拉蒂诺语:{{t|lad|Arjelia}} * 老挝语:{{t|lo|ອານເຍຣີ}} * 拉丁语:{{t|la|Algerium}} * 拉脱维亚语:{{t|lv|Alžīrija|f}} * 立陶宛语:{{t+|lt|Alžyras|m}} * 卢希亚语:{{t|luy|Aljeria}} * 盧歐語:{{t|luo|Aljeria}} * 卢森堡语:{{t|lb|Algerien}} * 马其顿语:{{t+|mk|Алжир|m}} * 马拉加斯语:{{t+|mg|Alzeria}} * 马来语:{{t+|ms|Algeria}} * 马拉雅拉姆语:{{t+|ml|അൾജീരിയ}} * 马耳他语:{{t|mt|Alġerija|f|alt=l-Alġerija}} * 毛利语:{{t|mi|Aratiria}} * 梅魯語:{{t|mer|Aljeria}} * 蒙古语: *: 西里尔字母:{{t|mn|Алжир}} * 瑙鲁语:{{t|na|Algeria}} * 纳瓦霍语:{{t|nv|Aljííya}} * 诺曼语:{{t|nrf|Algérie|f}} * 挪威语: *: 书面挪威语:{{t+|nb|Algerie}} *: 新挪威语:{{t+|nn|Algerie}} * 奥克语:{{t+|oc|Argeria|f}} * 普什图语:{{t+|ps|الجزاير|m|tr=alǰazāyᶕr}} * 波斯语:{{t+|fa|الجزایر|tr=aljazâyer}} * 波兰语:{{t+|pl|Algieria|f}} * 葡萄牙语:{{t+|pt|Argélia|f}} * 罗马尼亚语:{{t+|ro|Algeria|f}} * 罗曼什语:{{t|rm|Algeria}} * 俄语:{{t+|ru|Алжи́р|m}} * 低地苏格兰语:{{t|sco|Algerie}} * 苏格兰盖尔语:{{t|gd|Algeria}} * 塞尔维亚-克罗地亚语: *: 西里尔字母:{{t|sh|А̀лжӣр|m}} *: 罗马字母:{{t+|sh|Àlžīr|m}} * 掸语:{{t|shn|မိူင်းဢႄးၵျီးရီးယႃး}} * 西西里语:{{t|scn|Algirìa|f}} * 僧伽罗语:{{t|si|ඇල්ජීරියාව}} * 斯洛伐克语:{{t+|sk|Alžírsko|n}} * 斯洛文尼亚语:{{t+|sl|Alžírija|f}} * 西班牙语:{{t+|es|Argelia|f}} * 斯瓦希里语:{{t+|sw|Algeria}}、{{t+|sw|Aljeria}} * 瑞典语:{{t+|sv|Algeriet|n}} * 他加禄语:{{t|tl|Arhelya}} * 塔吉克语:{{t+|tg|Алҷазоир}} * 泰米尔语:{{t|ta|அல்சீரியா}} * 鞑靼语:{{t|tt|Әлҗәзаир}}、{{t|tt|Алжир}} * 泰语:{{t+|th|แอลจีเรีย}} * 藏语:{{t|bo|ཨཱལ་ཇི་རི་ཡ}} * 提格里尼亚语:{{t|ti|ኣልጀርያ}} * 土耳其语:{{t+|tr|Cezayir}} * 土库曼语:{{t|tk|Alžir}} * 乌克兰语:{{t+|uk|Алжи́р|m}} * 乌尔都语:{{t|ur|الجزائر|m|tr=aljazā'ir}}、{{t|ur|الجیریا|m|tr=aljīriyā}} * 维吾尔语:{{t+|ug|ئالجىرىيە}} * 乌兹别克语:{{t+|uz|Jazoir}} * 越南语:{{t|vi|An-giê-ri}} * 佛罗语:{{t|vro|Alžeeriä}} * 威尔士语:{{t+|cy|Algeria}} * 西弗里斯兰语:{{t+|fy|Algerije}} * 意第绪语:{{t|yi|אַלזשיר}}、{{t|yi|אַלגעריע}} * 约鲁巴语:{{t|yo|Àlùgèríánì}} {{trans-bottom}} {{zh-cat|國家}} 0otjq25j43x8zl6u0tsr9qxtr4huouw 阿非利加 0 573348 9759534 7811395 2026-05-14T22:07:19Z TongcyDai 53191 9759534 wikitext text/x-wiki ==漢語== {{zh-forms|gloss=-}} ===詞源=== {{bor+|zh|en|Africa}}。 ===發音=== {{zh-pron |m=Āfēilìjiā |c=aa3 fei1 lei6 gaa1 |md=Ā-hĭ-lé-gă |mn=A-hui-lī-ka |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{lb|zh|棄用}} [[非洲]] # {{sid|zh|Q181238}}{{lb|zh|historical}} {{place|zh|<<emp/羅馬帝國>>的一個<<行省>>,包括現在的<<c:also/突尼斯>>、<<c/阿爾及利亞>>東北部和<<c/利比亞>>沿海部分地區;從公元前146年(最初屬於羅馬共和國)到公元698年存在,但公元439年至534年被[[汪達爾人]]佔領|tcl=|<<emp/羅馬帝國>>的一個<<行省>>,包括現在的<<c:also/突尼斯>>以及<<c/阿爾及利亞>>、<<c/利比亞>>部分沿海地區}} ====近義詞==== * {{qualifier|棄用}} {{zh-l|亞非利加}} ====派生詞彙==== {{col3|zh|非洲}} {{zh-cat|非洲|大洲}} 3h5pra9clb1z0vv4jmc9e075x5p9fi6 9759535 9759534 2026-05-14T22:07:40Z TongcyDai 53191 9759535 wikitext text/x-wiki ==漢語== {{zh-forms|gloss=-}} ===詞源=== {{bor+|zh|en|Africa}}。 ===發音=== {{zh-pron |m=Āfēilìjiā |c=aa3 fei1 lei6 gaa1 |md=Ā-hĭ-lé-gă |mn=A-hui-lī-ka |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{lb|zh|棄用}} [[非洲]] # {{sid|zh|Q181238}}{{lb|zh|historical}} {{place|zh|<<emp/羅馬帝國>>的一個<<行省>>,包括現在的<<c:also/突尼斯>>、<<c/阿爾及利亞>>東北部和<<c/利比亞>>沿海部分地區;從公元前146年(最初屬於羅馬共和國)到公元698年存在,但公元439年至534年被[[汪達爾人]]佔領|tcl=<<emp/羅馬帝國>>的一個<<行省>>,包括現在的<<c:also/突尼斯>>以及<<c/阿爾及利亞>>、<<c/利比亞>>部分沿海地區}} ====近義詞==== * {{qualifier|棄用}} {{zh-l|亞非利加}} ====派生詞彙==== {{col3|zh|非洲}} {{zh-cat|非洲|大洲}} 4ojsxg6ovt63czwsifudizxm1nphf3u 包莖 0 577752 9760162 9142265 2026-05-15T07:20:52Z ~2026-29195-68 133382 /* */ 9760162 wikitext text/x-wiki 包皮 ==漢語== {{zh-forms|s=包茎|alt=包徑}} {{zh-wp}} ===發音=== {{zh-pron |m=bāojīng,bāojìng,2nb=非標準或方言,2er=y |c=baau1 ging3 |mn=pau-keng |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|醫學}} 不能將人類[[陰莖]][[包皮]]拉到[[龜頭]]後面的[[病症]] ====翻譯==== {{trans-top|不能將人類陰莖包皮拉到龜頭後面的病症}} * 加泰罗尼亚语:{{t|ca|fimosi|m}} * 捷克语:{{t|cs|fimóza|f}} * 荷兰语:{{t|nl|voorhuidsvernauwing|f}} * 英語:{{t+|en|phimosis}} * 世界语:{{t|eo|fimozo}} * 法罗语:{{t|fo|likkutútur|m}} * 芬兰语:{{t+|fi|fimoosi}} * 法语:{{t+|fr|phimosis}} * 德语:{{t+|de|Phimose|f}} * 希腊语: *: 古希臘語:{{t|grc|φίμωσις|f}} * 匈牙利语:{{t+|hu|fitymaszűkület}} * 意大利语:{{t+|it|fimosi|f}} * 日语:{{t+|ja|包茎|tr=ほうけい, hōkei}} * 拉丁语:{{t|la|phimosis}} * 波兰语:{{t+|pl|stulejka|f}} * 俄语:{{t+|ru|фимо́з|m}} {{trans-bottom}} ===延伸閱讀=== * {{R:nan:tdj|44969|p=587}} {{zh-cat|男科學|醫學徵象和症狀|生殖器}} ==日語== {{ja-kanjitab|ほう|けい|yomi=on}} ===名詞=== {{ja-noun|ほうけい}} # {{ja-kyujitai spelling of|包茎}} ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=포경}} # {{hanja form of|포경}} r4o4fns8yxh5a093985dwsljopnw5rk 9760164 9760162 2026-05-15T07:41:40Z Fglffer 55252 撤销[[Special:Contributions/~2026-29195-68|~2026-29195-68]]([[User talk:~2026-29195-68|讨论]])的修订版本[[Special:Diff/9760162|9760162]] 9760164 wikitext text/x-wiki ==漢語== {{zh-forms|s=包茎|alt=包徑}} {{zh-wp}} ===發音=== {{zh-pron |m=bāojīng,bāojìng,2nb=非標準或方言,2er=y |c=baau1 ging3 |mn=pau-keng |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|醫學}} 不能將人類[[陰莖]][[包皮]]拉到[[龜頭]]後面的[[病症]] ====翻譯==== {{trans-top|不能將人類陰莖包皮拉到龜頭後面的病症}} * 加泰罗尼亚语:{{t|ca|fimosi|m}} * 捷克语:{{t|cs|fimóza|f}} * 荷兰语:{{t|nl|voorhuidsvernauwing|f}} * 英語:{{t+|en|phimosis}} * 世界语:{{t|eo|fimozo}} * 法罗语:{{t|fo|likkutútur|m}} * 芬兰语:{{t+|fi|fimoosi}} * 法语:{{t+|fr|phimosis}} * 德语:{{t+|de|Phimose|f}} * 希腊语: *: 古希臘語:{{t|grc|φίμωσις|f}} * 匈牙利语:{{t+|hu|fitymaszűkület}} * 意大利语:{{t+|it|fimosi|f}} * 日语:{{t+|ja|包茎|tr=ほうけい, hōkei}} * 拉丁语:{{t|la|phimosis}} * 波兰语:{{t+|pl|stulejka|f}} * 俄语:{{t+|ru|фимо́з|m}} {{trans-bottom}} ===延伸閱讀=== * {{R:nan:tdj|44969|p=587}} {{zh-cat|男科學|醫學徵象和症狀|生殖器}} ==日語== {{ja-kanjitab|ほう|けい|yomi=on}} ===名詞=== {{ja-noun|ほうけい}} # {{ja-kyujitai spelling of|包茎}} ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=포경}} # {{hanja form of|포경}} 1rbgdcxufqcx27ptb9v21ioqnhdhfng 本邦 0 579450 9760159 6683191 2026-05-15T06:52:38Z Hzy980512 19278 9760159 wikitext text/x-wiki ==日语== {{ja-kanjitab|ほん|ほう|k2=ぽう|yomi=o,kanon}} ===发音=== {{ja-pron|ほんぽう|acc=1|acc_ref=NHK,SMK7,DJR}} ===名词=== {{ja-noun|ほんぽう|hist=ほんぱう}} # [[我国]] ====近义词==== * {{ja-r|我が国|わ が くに}} ===参考资料=== <references/> :* {{R:Kanjipedia Kotoba|0006509900}} {{C|ja|日本}} ==朝鲜语== {{ko-hanjatab}} ===名词=== {{ko-noun|hangeul=본방}} # {{hanja form of|본방|}} o6gircgu0ugxt7i3gnqq0zzbwgrp172 9760165 9760159 2026-05-15T07:58:33Z Fglffer 55252 9760165 wikitext text/x-wiki ==漢語== {{zh-forms}} ===發音=== {{zh-pron |m=běnbāng |cat=n }} ===名詞=== {{head|zh|名詞}} # [[故鄉]],[[故國]] #* {{zh-x|昔 w:韩安国\^韓.^安國 起 自 徒 中,w:朱買臣\^朱.^買臣 出於 幽賤,並 以 才 宜,還 守 本邦。||CL|ref=《[[s:後漢書/卷60下|後漢書·蔡邕傳]]》}} ==日语== {{ja-kanjitab|ほん|ほう|k2=ぽう|yomi=o,kanon}} ===发音=== {{ja-pron|ほんぽう|acc=1|acc_ref=NHK,SMK7,DJR}} ===名词=== {{ja-noun|ほんぽう|hist=ほんぱう}} # [[我國]] ====近义词==== * {{ja-r|我が国|わ が くに}} ===参考资料=== <references/> :* {{R:Kanjipedia Kotoba|0006509900}} {{C|ja|日本}} ==朝鲜语== {{ko-hanjatab}} ===名词=== {{ko-noun|hangeul=본방}} # {{hanja form of|본방}} 0vi5ztezr36l0sn4s02lq6kfp93sl09 比率 0 579918 9759716 8293266 2026-05-15T02:03:50Z Jiba1219 110530 /* 日語 */ 9759716 wikitext text/x-wiki ==漢語== {{zh-forms}} ===讀音=== {{zh-pron |m=bǐlǜ |c=bei2 leot6-2 |mn=pí-lu̍t |cat=n }} ===名詞=== {{head|zh|名詞}} # [[比照]],[[比例]] # [[比值]] {{zh-cat|數學}} ==日語== {{ja-kanjitab|ひ|りつ|yomi=on,kanon}} ===詞源=== 源自{{m|ja|比|tr=hi}} + {{m|ja|率|tr=ritsu}}。 ===發音=== {{ja-pron|ひりつ}} ===名詞=== {{ja-noun|ひりつ}} # [[比值]],[[比率#漢語|比率]] ====派生詞==== {{der-top}} * {{ja-r|合併 比率|がっぺい ひりつ}} * {{ja-r|直間 比率|ちょっかん ひりつ}} * {{ja-r|自己 資本 比率|じこ しほん ひりつ}} * {{ja-r|要素 比率 理論|ようそ ひりつ りろん}} {{der-mid}} * {{ja-r|負債 比率|ふさい ひりつ}} * {{ja-r|資本 比率|しほん ひりつ}} * {{ja-r|間隔 比率|かんかく ひりつ}} {{der-bottom}} ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hj|hangeul=비율}} # {{hanja form of|비율}} 9vm0cis1b9gtx4ci3mbvxbbeqiqc6ab 9760157 9759716 2026-05-15T06:45:25Z Fglffer 55252 9760157 wikitext text/x-wiki ==漢語== {{zh-forms}} ===發音=== {{zh-pron |m=bǐlǜ |c=bei2 leot6-2 |mn=pí-lu̍t |cat=n }} ===名詞=== {{head|zh|名詞}} # [[比值]];[[比照]],[[比例]] ====同義詞==== * {{qual|泉漳話}} {{zh-l|成數}} ====派生詞==== {{CJKV||j=比%率|ひ%りつ|비율|}} ==日語== {{ja-kanjitab|ひ|りつ|yomi=on,kanon}} ===詞源=== 源自{{m|ja|比|tr=hi}} + {{m|ja|率|tr=ritsu}}。 ===發音=== {{ja-pron|ひりつ}} ===名詞=== {{ja-noun|ひりつ}} # [[比值]];[[比照]],[[比例]] ====衍生詞==== {{col2|sort=0|ja |{{ja-r|比%率%法|ひ%りつ%ほう}} |{{ja-r|合%併%比%率|がっ%ぺい% ひ%りつ}} |{{ja-r|間%隔%比%率|かん%かく% ひ%りつ}} |{{ja-r|自%己%資%本%比%率|じ%こ% し%ほん% ひ%りつ}} |{{ja-r|資%本%比%率|し%ほん% ひ%りつ}} |{{ja-r|直%間%比%率|ちょっ%かん% ひ%りつ}} |{{ja-r|負%債%比%率|ふ%さい% ひ%りつ}} |{{ja-r|要%素%比%率%理%論|よう%そ% ひ%りつ% り%ろん}} }} ===來源=== <references/> :* {{R:Kanjipedia Kotoba|0005793600}} ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hj|hangeul=비율}} # {{hanja form of|비율}} lavbkupcdl30osp8zvxicvrtjghyhpf 9760171 9760157 2026-05-15T08:18:35Z Sayonzei 40728 /* 日語 */ 9760171 wikitext text/x-wiki ==漢語== {{zh-forms}} ===發音=== {{zh-pron |m=bǐlǜ |c=bei2 leot6-2 |mn=pí-lu̍t |cat=n }} ===名詞=== {{head|zh|名詞}} # [[比值]];[[比照]],[[比例]] ====同義詞==== * {{qual|泉漳話}} {{zh-l|成數}} ====派生詞==== {{CJKV||j=比%率|ひ%りつ|비율|}} ==日語== {{ja-kanjitab|ひ|りつ|yomi=on,kanon}} ===詞源=== 源自{{m|ja|比|tr=hi}} + {{m|ja|率|tr=ritsu}}。 ===發音=== {{ja-pron|ひりつ|acc=0|acc_ref=DJR,NHK,SMK7,NKD2}} ===名詞=== {{ja-noun|ひりつ}} # [[比值]];[[比照]],[[比例]] ====衍生詞==== {{col2|sort=0|ja |{{ja-r|比%率%法|ひ%りつ%ほう}} |{{ja-r|合%併%比%率|がっ%ぺい% ひ%りつ}} |{{ja-r|間%隔%比%率|かん%かく% ひ%りつ}} |{{ja-r|自%己%資%本%比%率|じ%こ% し%ほん% ひ%りつ}} |{{ja-r|資%本%比%率|し%ほん% ひ%りつ}} |{{ja-r|直%間%比%率|ちょっ%かん% ひ%りつ}} |{{ja-r|負%債%比%率|ふ%さい% ひ%りつ}} |{{ja-r|要%素%比%率%理%論|よう%そ% ひ%りつ% り%ろん}} }} ===來源=== <references/> :* {{R:Kanjipedia Kotoba|0005793600}} ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hj|hangeul=비율}} # {{hanja form of|비율}} b8zn2948cgocwgksw3igmrro800koq9 大洋洲 0 598200 9759647 7811402 2026-05-14T23:45:05Z TongcyDai 53191 9759647 wikitext text/x-wiki ==漢語== {{zh-forms|type=21}} {{zh-wp|zh|lzh|yue|wuu|gan|hak:Thai-yòng-chû|cdo:Dâi-iòng-ciŭ|nan:Tāi-iûⁿ-chiu}} [[File:Oceania_(orthographic_projection).svg|thumb|大洋洲的位置]] ===發音=== {{zh-pron |m=Dàyángzhōu |c=daai6 joeng4 zau1 |h=pfs=Thai-yòng-chû |md=Dâi-iòng-ciŭ |mn=Tōa-iûⁿ-chiu/Tāi-iûⁿ-chiu |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{senseid|zh|Q538}}{{place|zh|[[太平洋]]中部和南部的[[島嶼]]組成的<<大陸地區>>,主要分為[[美拉尼西亞]]、[[密克羅尼西亞]]和[[波利尼西亞]]/[[玻里尼西亞]],在某些定義中還包括[[澳大利亞]]和[[馬來群島]]。|tcl=由[[澳大利亞]]、[[紐西蘭]]/[[新西蘭]]、[[美拉尼西亞]]、[[密克羅尼西亞]]和[[波利尼西亞]]/[[玻里尼西亞]]組成的<<大洲>>或<<大陸地區>>}}. # [[地球]]七大[[洲]]之一,位於[[亞洲]]、[[南極洲]]和[[美洲]]之間,橫跨[[東半球|東]][[西半球]] ====近義詞==== * {{zh-l|海洋洲}} * {{qualifier|罕用}} {{zh-l|奧削尼亞}} ====局部詞==== * {{zh-l|澳大拉西亞}} * {{zh-l|美拉尼西亞}} * {{zh-l|密克羅尼西亞}} * {{zh-l|玻里尼西亞}} ====參見==== {{table:continents/zh}} ====翻譯==== {{trans-top|id=Q538|地理區域}} * 南非語:{{t|af|Oseanië}} * 阿爾巴尼亞語:{{t|sq|Oqeani}} * 阿姆哈拉語:{{t|am|ኦሺያኒያ}} * 阿拉伯語:{{t|ar|أُوقِيَانُوسِيَا|f|tr=ʔuqiyānusiyā}} *: 漢志阿拉伯語:{{t|acw|أوقْيانوسْيا|f|tr=ʔōgyānūsya, ʔūgyānūsya}} * 亞美尼亞語:{{t|hy|Օվկիանիա|sc=Armn}} * 阿薩姆語:{{t|as|ওচেনিয়া}} * 阿塞拜疆語:{{t|az|Okeaniya}} * 巴斯克語:{{t+|eu|Ozeania}} * 白俄羅斯語:{{t|be|Акія́нія|f}} * 孟加拉語:{{t+|bn|ওশেনিয়া}} * 保加利亞語:{{t|bg|Океа́ния|f}} * 緬甸語:{{t|my|အိုရှန်းနီးယား}} * 加泰羅尼亞語:{{t+|ca|Oceania|f}} * 捷克語:{{t+|cs|Oceánie|f}} * 丹麥語:{{t+|da|Oceanien}} * 荷蘭語:{{t+|nl|Oceanië|n}} * 英語:{{t+|en|Oceania}} * 世界語:{{t|eo|Oceanio}} * 愛沙尼亞語:{{t|et|Okeaania}} * 法羅語:{{t|fo|Osiania}} * 斐濟印地語:{{t|hif|Oceania}} * 芬蘭語:{{t+|fi|Oseania}} * 法語:{{t+|fr|Océanie|f}} * 弗留利語:{{t|fur|Oceanie|f}} * 加利西亞語:{{t+|gl|Oceanía|f}} * 格魯吉亞語:{{t|ka|ოკეანეთი}} * 德語:{{t+|de|Ozeanien|n}} * 希臘語:{{t+|el|Ωκεανία|f}} * 希伯來語:{{t|he|אוקיאניה|f|tr=okiánia}} * 印地語:{{t+|hi|ओशिआनिया|m}} * 匈牙利語:{{t+|hu|Óceánia}} * 冰島語:{{t+|is|Eyjaálfa}} * 印尼語:{{t+|id|Oseania}} * 愛爾蘭語:{{t|ga|Aigéine|f|alt=an Aigéine}} * 意大利語:{{t+|it|Oceania|f}} * 日語:{{t+|ja|オセアニア|tr=Oseania}}、{{t+|ja|大洋州|tr=たいようしゅう, Taiyōshū}} * 哈薩克語:{{t+|kk|Океания}} * 高棉語:{{t|km|អូសេអានី}} * 朝鮮語:{{t+|ko|^오세아니아}}、{{t|ko|대양주(大洋洲)}}、{{t|ko|^오세안주(오세안洲)}} {{qualifier|朝鮮}} * 吉爾吉斯語:{{t|ky|Океания}} * 拉蒂諾語:{{t|lad|Oseania}} * 老撾語:{{t+|lo|ໂອເຊອານີ}} * 拉丁語:{{t|la|Oceania|f}} * 拉脫維亞語:{{t|lv|Okeānija|f}} * 立陶宛語:{{t+|lt|Okeanija|f}} * 馬其頓語:{{t|mk|Океанија|f}} * 馬來語:{{t|ms|Oseania}} * 馬爾他語:{{t|mt|[[il|L-]][[Oċeanja]]|f}} * 馬拉地語:{{t|mr|ओशनिया}} * 諾曼語:{{t|nrf|Ochéannie|f}} * 北薩米語:{{t|se|Oseania}} * 挪威語: *: 書面挪威語:{{t+|nb|Oseania}} *: 新挪威語:{{t|nn|Oseania}} * 奧克語:{{t+|oc|Oceania|f}} * 奧利亞語:{{t|or|ଓସେନିଆ}} * 普什圖語:{{t|ps|اوقيانوسيه|f|tr=oqeyānosyá}} * 波斯語:{{t+|fa|اقیانوسیه|tr=oqyânusiye}} * 波蘭語:{{t+|pl|Oceania|f}} * 葡萄牙語:{{t+|pt|Oceania|f}}、{{t+|pt|Oceânia|f}} * 羅馬尼亞語:{{t|ro|Oceania|f}} * 俄語:{{t+|ru|Океа́ния|f}} * 盧森尼亞語:{{t|rue|Океа́нія|f}} * 低地蘇格蘭語:{{t|sco|Oceanie}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Океанија|f}}、{{t|sh|Оцеанија|f}} {{qualifier|克羅地亞/克羅埃西亞}} *: 拉丁字母:{{t|sh|Okeanija|f}}、{{t+|sh|Oceanija|f}} {{qualifier|克羅地亞/克羅埃西亞}} * 西里西亞語:{{t|szl|Uoceańijo|f}} * 僧加羅語:{{t|si|ඕසියානාව}} * 斯洛伐克語:{{t|sk|Oceánia|f}} * 斯洛文尼亞語:{{t|sl|Oceanija|f}} * 索布語: *: 下索布語:{{t|dsb|Oceanija|f}} * 西班牙語:{{t+|es|Oceanía|f}} * 瑞典語:{{t+|sv|Oceanien}} * 他加祿語:{{t|tl|Karagatanan}} * 塔吉克語:{{t+|tg|Уқёнусия}} * 泰米爾語:{{t|ta|ஓசியானியா}} * 泰盧固語:{{t+|te|ఓషియానియా}} * 德頓語:{{t|tet|Oseánia}} * 泰語:{{t|th|โอเชียเนีย}} * 藏語:{{t|bo|རྒྱ་མཚོ་ཆེན་པོའི་གླིང་ཆེན}} * 土耳其語:{{t+|tr|Okyanusya}} * 土庫曼語:{{t|tk|Okeaniýa}} * 烏克蘭語:{{t|uk|Океа́нія|f}} * 維吾爾語:{{t|ug|ئوكيانىيە}} * 烏茲別克語:{{t+|uz|Okeaniya}} * 維普斯語:{{t|vep|Valdmerimad}} * 越南語:{{t|vi|Châu Đại Dương}} ({{t|vi|洲大洋}}), {{t|vi|Châu Úc}} ({{t|vi|洲澳}}), {{t|vi|Úc Châu}} ({{t|vi|澳洲}}) * 佛羅語:{{t|vro|Okõaania}} * 沃洛夫語:{{t|wo|Oseyaani}} * 意第緒語:{{t|yi|אָקעאַניע}} {{trans-bottom}} {{zh-cat|大洲|大洋洲}} 38ig2b64rc88zjqncmedb4b82y4iu97 9759648 9759647 2026-05-14T23:45:32Z TongcyDai 53191 9759648 wikitext text/x-wiki ==漢語== {{zh-forms|type=21}} {{zh-wp|zh|lzh|yue|wuu|gan|hak:Thai-yòng-chû|cdo:Dâi-iòng-ciŭ|nan:Tāi-iûⁿ-chiu}} [[File:Oceania_(orthographic_projection).svg|thumb|大洋洲的位置]] ===發音=== {{zh-pron |m=Dàyángzhōu |c=daai6 joeng4 zau1 |h=pfs=Thai-yòng-chû |md=Dâi-iòng-ciŭ |mn=Tōa-iûⁿ-chiu/Tāi-iûⁿ-chiu |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{senseid|zh|Q538}}{{place|zh|[[太平洋]]中部和南部的[[島嶼]]組成的<<大陸地區>>,主要分為[[美拉尼西亞]]、[[密克羅尼西亞]]和[[波利尼西亞]]/[[玻里尼西亞]],在某些定義中還包括[[澳大利亞]]和[[馬來群島]];為[[地球]]七大[[洲]]之一|tcl=由[[澳大利亞]]、[[紐西蘭]]/[[新西蘭]]、[[美拉尼西亞]]、[[密克羅尼西亞]]和[[波利尼西亞]]/[[玻里尼西亞]]組成的<<大洲>>或<<大陸地區>>}}. # [[地球]]七大[[洲]]之一,位於[[亞洲]]、[[南極洲]]和[[美洲]]之間,橫跨[[東半球|東]][[西半球]] ====近義詞==== * {{zh-l|海洋洲}} * {{qualifier|罕用}} {{zh-l|奧削尼亞}} ====局部詞==== * {{zh-l|澳大拉西亞}} * {{zh-l|美拉尼西亞}} * {{zh-l|密克羅尼西亞}} * {{zh-l|玻里尼西亞}} ====參見==== {{table:continents/zh}} ====翻譯==== {{trans-top|id=Q538|地理區域}} * 南非語:{{t|af|Oseanië}} * 阿爾巴尼亞語:{{t|sq|Oqeani}} * 阿姆哈拉語:{{t|am|ኦሺያኒያ}} * 阿拉伯語:{{t|ar|أُوقِيَانُوسِيَا|f|tr=ʔuqiyānusiyā}} *: 漢志阿拉伯語:{{t|acw|أوقْيانوسْيا|f|tr=ʔōgyānūsya, ʔūgyānūsya}} * 亞美尼亞語:{{t|hy|Օվկիանիա|sc=Armn}} * 阿薩姆語:{{t|as|ওচেনিয়া}} * 阿塞拜疆語:{{t|az|Okeaniya}} * 巴斯克語:{{t+|eu|Ozeania}} * 白俄羅斯語:{{t|be|Акія́нія|f}} * 孟加拉語:{{t+|bn|ওশেনিয়া}} * 保加利亞語:{{t|bg|Океа́ния|f}} * 緬甸語:{{t|my|အိုရှန်းနီးယား}} * 加泰羅尼亞語:{{t+|ca|Oceania|f}} * 捷克語:{{t+|cs|Oceánie|f}} * 丹麥語:{{t+|da|Oceanien}} * 荷蘭語:{{t+|nl|Oceanië|n}} * 英語:{{t+|en|Oceania}} * 世界語:{{t|eo|Oceanio}} * 愛沙尼亞語:{{t|et|Okeaania}} * 法羅語:{{t|fo|Osiania}} * 斐濟印地語:{{t|hif|Oceania}} * 芬蘭語:{{t+|fi|Oseania}} * 法語:{{t+|fr|Océanie|f}} * 弗留利語:{{t|fur|Oceanie|f}} * 加利西亞語:{{t+|gl|Oceanía|f}} * 格魯吉亞語:{{t|ka|ოკეანეთი}} * 德語:{{t+|de|Ozeanien|n}} * 希臘語:{{t+|el|Ωκεανία|f}} * 希伯來語:{{t|he|אוקיאניה|f|tr=okiánia}} * 印地語:{{t+|hi|ओशिआनिया|m}} * 匈牙利語:{{t+|hu|Óceánia}} * 冰島語:{{t+|is|Eyjaálfa}} * 印尼語:{{t+|id|Oseania}} * 愛爾蘭語:{{t|ga|Aigéine|f|alt=an Aigéine}} * 意大利語:{{t+|it|Oceania|f}} * 日語:{{t+|ja|オセアニア|tr=Oseania}}、{{t+|ja|大洋州|tr=たいようしゅう, Taiyōshū}} * 哈薩克語:{{t+|kk|Океания}} * 高棉語:{{t|km|អូសេអានី}} * 朝鮮語:{{t+|ko|^오세아니아}}、{{t|ko|대양주(大洋洲)}}、{{t|ko|^오세안주(오세안洲)}} {{qualifier|朝鮮}} * 吉爾吉斯語:{{t|ky|Океания}} * 拉蒂諾語:{{t|lad|Oseania}} * 老撾語:{{t+|lo|ໂອເຊອານີ}} * 拉丁語:{{t|la|Oceania|f}} * 拉脫維亞語:{{t|lv|Okeānija|f}} * 立陶宛語:{{t+|lt|Okeanija|f}} * 馬其頓語:{{t|mk|Океанија|f}} * 馬來語:{{t|ms|Oseania}} * 馬爾他語:{{t|mt|[[il|L-]][[Oċeanja]]|f}} * 馬拉地語:{{t|mr|ओशनिया}} * 諾曼語:{{t|nrf|Ochéannie|f}} * 北薩米語:{{t|se|Oseania}} * 挪威語: *: 書面挪威語:{{t+|nb|Oseania}} *: 新挪威語:{{t|nn|Oseania}} * 奧克語:{{t+|oc|Oceania|f}} * 奧利亞語:{{t|or|ଓସେନିଆ}} * 普什圖語:{{t|ps|اوقيانوسيه|f|tr=oqeyānosyá}} * 波斯語:{{t+|fa|اقیانوسیه|tr=oqyânusiye}} * 波蘭語:{{t+|pl|Oceania|f}} * 葡萄牙語:{{t+|pt|Oceania|f}}、{{t+|pt|Oceânia|f}} * 羅馬尼亞語:{{t|ro|Oceania|f}} * 俄語:{{t+|ru|Океа́ния|f}} * 盧森尼亞語:{{t|rue|Океа́нія|f}} * 低地蘇格蘭語:{{t|sco|Oceanie}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Океанија|f}}、{{t|sh|Оцеанија|f}} {{qualifier|克羅地亞/克羅埃西亞}} *: 拉丁字母:{{t|sh|Okeanija|f}}、{{t+|sh|Oceanija|f}} {{qualifier|克羅地亞/克羅埃西亞}} * 西里西亞語:{{t|szl|Uoceańijo|f}} * 僧加羅語:{{t|si|ඕසියානාව}} * 斯洛伐克語:{{t|sk|Oceánia|f}} * 斯洛文尼亞語:{{t|sl|Oceanija|f}} * 索布語: *: 下索布語:{{t|dsb|Oceanija|f}} * 西班牙語:{{t+|es|Oceanía|f}} * 瑞典語:{{t+|sv|Oceanien}} * 他加祿語:{{t|tl|Karagatanan}} * 塔吉克語:{{t+|tg|Уқёнусия}} * 泰米爾語:{{t|ta|ஓசியானியா}} * 泰盧固語:{{t+|te|ఓషియానియా}} * 德頓語:{{t|tet|Oseánia}} * 泰語:{{t|th|โอเชียเนีย}} * 藏語:{{t|bo|རྒྱ་མཚོ་ཆེན་པོའི་གླིང་ཆེན}} * 土耳其語:{{t+|tr|Okyanusya}} * 土庫曼語:{{t|tk|Okeaniýa}} * 烏克蘭語:{{t|uk|Океа́нія|f}} * 維吾爾語:{{t|ug|ئوكيانىيە}} * 烏茲別克語:{{t+|uz|Okeaniya}} * 維普斯語:{{t|vep|Valdmerimad}} * 越南語:{{t|vi|Châu Đại Dương}} ({{t|vi|洲大洋}}), {{t|vi|Châu Úc}} ({{t|vi|洲澳}}), {{t|vi|Úc Châu}} ({{t|vi|澳洲}}) * 佛羅語:{{t|vro|Okõaania}} * 沃洛夫語:{{t|wo|Oseyaani}} * 意第緒語:{{t|yi|אָקעאַניע}} {{trans-bottom}} {{zh-cat|大洲|大洋洲}} pldv98fgwif0pue9jcejer0t98vumss 鼓舞 0 610360 9759723 8510066 2026-05-15T02:49:27Z Jiba1219 110530 /* 日語 */ 9759723 wikitext text/x-wiki ==漢語== {{zh-forms|ss=壴午}} ===發音=== {{zh-pron |m=gǔwǔ |c=gu2 mou5 |h=pfs=kú-vú |mn=kó͘-bú |mn-t=gou2 bhu2 |mc=y |oc=y |ma=Zh-guwu.ogg |cat=v,a }} ===動詞=== {{zh-verb}} # [[鼓勵]] # {{lb|zh|Classical|literally}} [[打鼓]]和[[跳舞]] ====同義詞==== {{syn-saurus|zh|鼓勵}} ===形容詞=== {{head|zh|形容詞}} # [[激勵]][[人心]] ====同義詞==== * {{zh-l|振奮}} ===衍生詞=== {{col3|zh|鼓舞人心|歡欣鼓舞}} ===派生詞=== {{CJKV||こぶ|고무|cổ vũ}} {{zh-cat|Elementary}} ==日語== {{ja-kanjitab|こ|ぶ|yomi=o,kanon}} ===發音=== {{ja-pron|こぶ|acc=1|acc_ref=DJR}} ===名詞=== {{ja-noun|こぶ}} # [[打鼓]][[跳舞]] # [[鼓勵]] ===動詞=== {{ja-verb-suru|tr=trans|こぶ}} # [[鼓勵]] ====活用==== {{ja-suru|こぶ}} ===來源=== <references/> ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=고무}} # {{hanja form of|고무|}} ==越南語== {{vi-hantutab}} ===動詞=== {{vi-verb|sc=Hani}} # {{han tu form of|cổ vũ|}} ia1fbj1h4o546cgc4v75m81v8719zw2 故国 0 610620 9760166 6684266 2026-05-15T08:05:59Z Fglffer 55252 9760166 wikitext text/x-wiki ==漢語== {{zh-see|故國}} ==日語== {{ja-kanjitab|こ|こく|yomi=o}} ===發音=== {{ja-pron|ここく|acc=1|acc_ref=DJR}} ===名詞=== {{ja-noun|ここく}} # [[祖國]] ===來源=== <references/> * {{R:Kanjipedia Kotoba|0002047100}} 4kioicihzvq1coo589gjculkjdmgu75 9760172 9760166 2026-05-15T08:18:56Z Sayonzei 40728 /* 日語 */ 9760172 wikitext text/x-wiki ==漢語== {{zh-see|故國}} ==日語== {{ja-kanjitab|こ|こく|yomi=o}} ===發音=== {{ja-pron|ここく|acc=1|acc_ref=DJR}} ===名詞=== {{ja-noun|ここく}} # [[祖國]] # [[故鄉]] ===來源=== <references/> * {{R:Kanjipedia Kotoba|0002047100}} 6c34whzd5fuf7j7exurxnuot44tow11 飞散 0 621033 9760147 6814911 2026-05-15T06:12:29Z Fglffer 55252 重定向页面至[[飛散]] 9760147 wikitext text/x-wiki #REDIRECT [[飛散]] gfzudrorj87hprd5p9mo965ox6o7ddl 荒誕 0 632185 9760156 8780266 2026-05-15T06:44:30Z Apisite 85347 9760156 wikitext text/x-wiki ==漢語== {{zh-forms|s=荒诞}} ===讀音=== {{zh-pron |m=huāngdàn |c=fong1 daan3 |mn=ml:hong-tān |cat=a }} ===釋義=== # {{rfdef|zh}} {{syn-saurus|zh|荒謬}} ====派生詞==== {{CJKV||こうたん|황탄}} ===翻譯=== {{翻译-顶}} * 俄語:[[невероятный]]; [[вымышленный]]; [[абсурдный]] {{翻译-底}} lunb10g1qft4l9gaa4zliv9shtkd75b 9760176 9760156 2026-05-15T08:26:24Z Fglffer 55252 9760176 wikitext text/x-wiki ==漢語== {{zh-forms|s=荒诞}} ===發音=== {{zh-pron |m=huāngdàn |c=fong1 daan3 |mn=ml:hong-tān/tw:hong-tàn |mn-t=huang1 dang3 |cat=a }} ===形容詞=== {{head|zh|形容詞}} # [[誇張]][[虛假]];[[荒唐]][[虛妄]] ====同義詞==== {{syn-saurus|zh|荒謬}} ====衍生詞==== {{col3|zh|荒誕不經|荒誕無稽}} ====派生詞==== {{CJKV||こうたん|황탄}} ====參見==== * {{zh-l|放誕}} ==日語== {{ja-kanjitab|こう|たん|yomi=kanon}} ===發音=== {{ja-pron|こうたん|acc=0|acc_ref=DJR}} ===名詞=== {{ja-noun|こうたん|hhira=くわうたん}} # [[誇張]][[虛假]];[[荒唐]][[虛妄]] ===來源=== <references /> ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=황탄}} # {{hanja form of|황탄}} qufekzufyqj35vgfbfhzl9aa73vvzmq 利比亞 0 661294 9759618 8288620 2026-05-14T23:05:02Z TongcyDai 53191 9759618 wikitext text/x-wiki ==漢語== {{zh-forms|s=利比亚|gloss=-}} {{zh-wp}} [[Image:Flag of Libya.svg|thumb|利比亚国旗]] [[Image:LocationLibya.png|thumb|利比亚]] ===詞源=== 源自{{der|zh|en|Libya}}。 ===發音=== {{zh-pron |m=Lìbǐ亞 |c=lei6 bei2 aa3 |h=pfs=Li-pí-â;gd=li4 bi3 a4 |mn=Lī-pí-a |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{senseid|zh|Q1016}}{{place|zh|國家|r/北非|capital=的黎波里}} ====翻譯==== {{trans-top|id=Q1016|北非國家}} * 南非語:{{t|af|Libië}} * 阿坎語:{{t|ak|Libia}} * 阿爾巴尼亞語:{{t|sq|Libi|f}}、{{t+|sq|Libia|f}} {{qualifier|definite}} * 阿姆哈拉語:{{t|am|ሊቢያ}} * 阿拉伯語:{{t+|ar|لِيبِيَا|f}}、{{t|ar|لُوبِيَا}} {{qualifier|古舊}} *: 利比亞阿拉伯語:{{t|ayl|ليبيا|tr=Lībya}} * 亞拉姆語:{{t|arc|ܠܘܒܐ}} *: 亞述新亞拉姆語:{{t|aii|ܠܹܘܒ݂ܹܐ|tr=liuwe}} * 亞美尼亞語:{{t+|hy|Լիբիա}} * 阿斯圖里亞斯語:{{t+|ast|Libia|f}} * 阿塞拜疆語:{{t+|az|Liviya}} * 白俄羅斯語:{{t|be|Лі́вія|f}} * 孟加拉語:{{t+|bn|লিবিয়া}} * 布列塔尼語:{{t+|br|Libia}} * 保加利亞語:{{t|bg|Ли́бия|f}} * 緬甸語:{{t|my|လစ်ဗျား}} * 加泰羅尼亞語:{{t+|ca|Líbia|f}} * 中阿特拉斯柏柏爾語:{{t|tzm|ⵍⵉⴱⵢⴰ}} * 車臣語:{{t|ce|Ливи}} * 科普特語:{{t|cop|ⲗⲩⲃⲏ|f}} * 克里米亞韃靼語:{{t|crh|Libiya}} * 捷克語:{{t+|cs|Libye|f}} * 丹麥語:{{t+|da|Libyen|n}} * 迪維希語:{{t|dv|ލީބިޔާ}} * 荷蘭語:{{t+|nl|Libië|n}} * 英語:{{t+|en|Libya}} * 世界語:{{t+|eo|Libio}} * 愛沙尼亞語:{{t+|et|Liibüa}} * 法拉法拉語:{{t|gur|Libia}} * 法羅語:{{t|fo|Libya}} * 芬蘭語:{{t+|fi|Libya}} * 法語:{{t+|fr|Libye|f}} *: 中古法語:{{t|frm|Lybie|f}} * 加利西亞語:{{t+|gl|Libia|f}} * 格魯吉亞語:{{t+|ka|ლიბია}} * 德語:{{t+|de|Libyen|n}} * 希臘語:{{t+|el|Λιβύη|f}} *: 古希臘語:{{t|grc|Λιβύη|f}} * 豪薩語:{{t|ha|Libya}} * 希伯來語:{{t|he|לוּב|m|tr=luv}} * 印地語:{{t+|hi|लीबिया|m}} * 匈牙利語:{{t+|hu|Líbia}} * 冰島語:{{t|is|Líbía|f}} * 印尼語:{{t+|id|Libya}} * 因特語:{{t|ia|Libya}} * 愛爾蘭語:{{t|ga|Libia|f|alt=an Libia}} * 意大利語:{{t+|it|Libia|f}} * 日語:{{t+|ja|リビア|tr=Ribia}} * 卡倫金語:{{t|kln|Libya}} * 卡姆巴語:{{t|kam|Libya}} * 卡納達語:{{t|kn|ಲಿಬಿಯಾ}} * 哈薩克語:{{t|kk|Либия}}、{{t+|kk|Ливия}} * 高棉語:{{t+|km|លីប៊ី}} * 基庫尤語:{{t|ki|Libia}} * 朝鮮語:{{t+|ko|^리비아}} * 庫爾德語: *: 北庫爾德語:{{t+|kmr|Lîbya}} * 吉爾吉斯語:{{t|ky|Ливия}} * 老撾語:{{t|lo|ລີບີ}}、{{t|lo|ລີເບຍ}} * 拉脫維亞語:{{t+|lv|Lībija|f}} * 立陶宛語:{{t+|lt|Libija|f}} * 盧歐語:{{t|luo|Libya}} * 馬其頓語:{{t+|mk|Ли́бија|f}} * 馬來語:{{t+|ms|Libya}} * 馬拉雅拉姆語:{{t|ml|ലിബിയ}} * 馬爾他語:{{t|mt|Libja|f|alt=Il-Libja}} * 毛利語:{{t|mi|Rīpia}} * 馬拉地語:{{t|mr|लिबिया}} * 梅魯語:{{t|mer|Libya}} * 蒙古語: *: 西里爾字母:{{t|mn|Ливи}} * 納瓦霍語:{{t|nv|Łíbya}} * 諾曼語:{{t|nrf|Libye|f}} * 挪威語: *: 書面挪威語:{{t+|nb|Libya|n}} * 奧克語:{{t+|oc|Libia|f}} * 古波斯語:{{t|peo|𐎱𐎢𐎫𐎠𐎹𐎠|ts=Putāya}} * 奧塞梯語:{{t|os|Ливи}} * 普什圖語:{{t|ps|ليبيا|f|tr=libyā}} * 波斯語: *: 達里波斯語:{{t|prs|لِیبِیَا}} *: 伊朗波斯語:{{t+|fa-ira|لیبی}} * 波蘭語:{{t+|pl|Libia|f}} * 葡萄牙語:{{t+|pt|Líbia|f}} * 羅馬尼亞語:{{t+|ro|Libia|f}} * 俄語:{{t+|ru|Ли́вия|f}} * 薩莫吉提亞語:{{t|sgs|Lėbėjė}}、{{t|sgs|Libėjė}} * 低地蘇格蘭語:{{t|sco|Libie}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Ли̑бија|f}} *: 拉丁字母:{{t+|sh|Lȋbija|f}} * 西里西亞語:{{t|szl|Libijo|f}} * 僧加羅語:{{t|si|ලිබියාව}} * 斯洛伐克語:{{t+|sk|Líbya|f}} * 斯洛文尼亞語:{{t+|sl|Líbija|f}} * 西班牙語:{{t+|es|Libia}} * 斯瓦希里語:{{t+|sw|Libya}} * 瑞典語:{{t+|sv|Libyen|n}} * 他加祿語:{{t|tl|Libya}} * 塔吉克語:{{t|tg|Либия}} * 泰米爾語:{{t|ta|லிபியா}} * 韃靼語:{{t|tt|Ливия}} * 泰盧固語:{{t+|te|లిబియా}} * 泰語:{{t+|th|ลิเบีย}} * 提格里尼亞語:{{t|ti|ሊቢያ}} * 土耳其語:{{t+|tr|Libya}} * 土庫曼語:{{t|tk|Liwiýa}} * 烏克蘭語:{{t+|uk|Лі́вія}} * 烏爾都語:{{t|ur|لِیبِیا|m}} * 維吾爾語:{{t|ug|لىۋىيە}} * 烏茲別克語:{{t|uz|Liviya}} * 越南語:{{t|vi|Li-bi}} * 沃拉普克語:{{t+|vo|Lübän}} * 雅庫特語:{{t|sah|Лиибийэ}} * 意第緒語:{{t|yi|ליביע|f}} * 約魯巴語:{{t|yo|Líbyà}} * 祖魯語:{{t|zu|ILibiya}} {{trans-bottom}} b1cyemd5r4ff4c49x7v399pv360jfy5 美洲 0 676393 9759691 7620417 2026-05-15T00:33:59Z TongcyDai 53191 9759691 wikitext text/x-wiki ==漢語== {{zh-forms}} ===發音=== {{zh-pron |m=Měizhōu |c=mei5 zau1 |h=pfs=Mî-chû;hrs=h:muiˋ zhiuˋ |mb=Mǐ-ciú |md=Mī-ciŭ |mn=Bí-chiu |mn-t=mui2 ziu1 |w=sh:1me tseu |x=mei3 zhou1 |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{senseid|zh|Q828}}{{place|zh|supercontinent|包含[[北美洲]]、[[中美洲]]和[[南美洲]]}} #* {{quote-book|zh|author=w:zh:丁韙良<t:{{w|William Alexander Parsons Martin}}>|title=zh:西學考略|year=1882|publisher=zh:同文館|volume=zh:卷上|page=7|pageurl=https://commons.wikimedia.org/w/index.php?title=File%3AHarvard_drs_430575723_%E8%A5%BF%E5%AD%B8%E8%80%83%E7%95%A5_v.1.pdf&page=41}} #*: {{zh-q|查 ^美洲 數 百 年 前 ^歐 人 未 至,其 地 已 有 開化 之 國,如 ^秘魯、^墨西哥 等,殆 自此 而 肇 其 端 也。||CL}} ====派生詞彙==== {{col3|zh|北美洲|拉丁美洲|美洲巨蟾蜍|美洲豹|美洲野牛|南美洲|中美洲|美洲小鴕|美洲旱獺|美洲獾}} ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=미주}} # {{hanja form of|미주}}: ## {{tcl|ko|美洲|id=Q828|indent=##}} ==越南語== {{vi-hantutab}} ===專有名詞=== {{vi-proper noun|Mĩ châu|sc=Hani}} # {{vi-Han form of|Mĩ châu}}: ## {{tcl|vi|美洲|id=Q828|indent=##|nocat=1}} m4z0swz16e0xflupxs8us2z47dewsq4 南極洲 0 681370 9759641 9612745 2026-05-14T23:33:34Z TongcyDai 53191 9759641 wikitext text/x-wiki {{also|南极洲}} ==漢語== {{zh-forms|s=南极洲|type=21}} ===發音=== {{zh-pron |m=Nánjízhōu |c=naam4 gik6 zau1 |h=pfs=Nàm-khi̍t-chû |mn=xm,zz,tw:Lâm-ke̍k-chiu/qz:Lâm-kia̍k-chiu |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{senseid|zh|Q51}}{{place|zh|位於[[南冰洋]]以南的最南端<<大洲>>,包含[[南極點]];為[[地球]]的七大[[洲]]之一}} ====相關詞彙==== {{table:continents/zh}} ====翻譯==== {{trans-top|id=Q51|最南端的大陸}} * 亞齊語:{{t|ace|Antartika}} * 南非語:{{t|af|Antarktika}} * 阿爾巴尼亞語:{{t|sq|Antarktidë|f}} * 阿姆哈拉語:{{t|am|አንታርክቲካ}} * 阿拉伯語:{{t+|ar|أَنْتَارْكِتِيكَا|f}} *: 埃及阿拉伯語:{{t|arz|القطب الجنوبي|m|tr=el-quṭb el-ganūbi}}、{{t|arz|أنتارتكا|f|tr=ʔantārteka}} * 阿拉貢語:{{t|an|Antarctida|f}} * 亞美尼亞語:{{t+|hy|Անտարկտիդա}} {{qualifier|大陸}}、{{t+|hy|Անտարկտիկա}} {{qualifier|區域}} * 亞述新亞拉姆語:{{t|aii|ܐܲܢܛܵܪܬܝܼܩܵܐ|f|tr=Ānṭartīqa}} * 阿斯圖里亞斯語:{{t|ast|Antártida|f}} * 阿塞拜疆語:{{t+|az|Antarktida}} * 巴什基爾語:{{t|ba|Антарктида}} * 巴斯克語:{{t+|eu|Antartika}} * 巴伐利亞語:{{t|bar|Antarktika}} * 白俄羅斯語:{{t|be|Антаркты́да|f}} {{qualifier|大陸}}、{{t|be|Анта́рктыка|f}} {{qualifier|區域}} * 孟加拉語:{{t|bn|আন্টার্কটিকা}} * 中比科爾語:{{t|bcl|Antartika}} * 比斯拉馬語:{{t|bi|Antarktik}} * 布列塔尼語:{{t|br|Antarktika}} * 保加利亞語:{{t+|bg|Антаркти́да|f}} {{qualifier|大陸}}、{{t|bg|Анта́рктика|f}} {{qualifier|區域}} * 緬甸語:{{t|my|အန္တာတိက}} * 布里亞特語:{{t|bua|Антарктида}} * 加泰羅尼亞語:{{t+|ca|Antàrtida|f}} * 宿霧語:{{t|ceb|Antartika}} * 中部法蘭克尼亞語:{{t|gmw-cfr|Süüdpool}} * 車臣語:{{t|ce|Антарктида}} * 切羅基語:{{t|chr|ᏧᏁᏍᏓᎸ}} * 楚瓦什語:{{t|cv|Антарктида|alt=Антаркти́да}} * 康沃爾語:{{t|kw|Antarktika}} * 科西嘉語:{{t|co|Antartide|m}} * 克里米亞韃靼語:{{t|crh|Antarktida}} * 捷克語:{{t+|cs|Antarktida|f}} * 丹麥語:{{t+|da|Antarktis}} * 荷蘭語:{{t+|nl|Antarctica|n}} * 宗喀語:{{t|dz|ཨེན་ཊཱག་ཊི་ཀ་}} * 東馬里語:{{t|mhr|Антарктиде}} * 英語;{{t+|en|Antarctica}} * 世界語:{{t+|eo|Antarkto}} * 愛沙尼亞語:{{t|et|Antarktis}}、{{t|et|Lõunamanner}} {{qualifier|比喻}} * 埃斯特雷馬杜拉語:{{t|ext|Antáltia|f}} * 法羅語:{{t|fo|Antarktis}} * 芬蘭語:{{t+|fi|Etelämanner}}、{{t+|fi|Antarktis}}、{{t+|fi|Etelänapamanner}} * 法蘭克-普羅旺斯語:{{t|frp|Antartica|f}} * 法語:{{t+|fr|Antarctique|m}} * 弗留利語:{{t|fur|Antartic|m}} * 加利西亞語:{{t+|gl|Antártida}} * 格魯吉亞語:{{t|ka|ანტარქტიდა}} * 德語:{{t+|de|Antarktika|f}} * 希臘語:{{t+|el|Ανταρκτική|f}} * 格陵蘭語:{{t|kl|Qalasersuaq Kujalleq}} * 巴拉圭瓜拉尼語:{{t|gug|Antártida}} * 古吉拉特語:{{t|gu|ઍન્ટાર્કટિકા}} * 海地克里奧爾語:{{t|ht|Antatik}} * 夏威夷語:{{t|haw|‘Aneʻālika}} * 希伯來語:{{t|he|אַנְטַרְקְטִיקָה|f|tr=antárqtíqa}} * 印地語:{{t|hi|अंटार्कटिका}} * 匈牙利語:{{t+|hu|Antarktisz}}、{{t+|hu|Antarktika}} * 冰島語:{{t+|is|Suðurskautslandið|n}}、{{t|is|Suðurheimskautslandið|n}}、{{t+|is|Antarktíka|f}}、{{t+|is|Suðurskautsálfa|f}} * 伊多語:{{t|io|Antarktika}} * 伊博語:{{t|ig|Antarctica}} * 伊洛卡諾語:{{t|ilo|Antartika}} * 印尼語:{{t+|id|Antartika}}、{{t|id|Antarktika}} * 印古什語:{{t|inh|Антарктида}} * 因特語:{{t|ia|Antarctica}} * 愛爾蘭語:{{t|ga|Antartaice|f}} * 意大利語:{{t+|it|Antartide}} * 牙買加克里奧爾語:{{t|jam|Antaatika}} * 日語:{{t+|ja|南極|tr=なんきょく, nankyoku}} {{qualifier|區域}}、{{t|ja|[[南極]][[大陸]]|tr=なんきょくたいりく, nankyoku tairiku}} {{qualifier|大陸}} * 爪哇語:{{t|jv|Antartika}} * Kabiyé: {{t|kbp|Antarɩtiki}} * 卡拜爾語:{{t|kab|Antraktika}} * 卡爾梅克衛拉特語:{{t|xal|Антарктик}} * 卡納達語:{{t|kn|ಅಂಟಾರ್ಕ್ಟಿಕ}} * 卡拉恰伊-巴爾卡爾語:{{t|krc|Антарктида}} * 卡拉卡爾帕克語:{{t|kaa|Antarktika}} * 卡舒比語:{{t|csb|Antarktida|f}} * 哈薩克語:{{t|kk|Антарктида}} * 高棉語:{{t|km|អង់តាទិក}} * 彼爾姆科米語:{{t|koi|Антарктида}} * 朝鮮語:{{t+|ko|남극(南極)}} {{qualifier|區域}}、{{t+|ko|남극대륙}} {{qualifier|大陸}} * 庫爾德語: *: 北庫爾德語:{{t+|kmr|Antarktîka}} * 吉爾吉斯語:{{t|ky|Антарктида}} * 拉登語:{{t-needed|lld}} * 拉蒂諾語:{{t|lad|Antartika}} * 老撾語:{{t+|lo|ອັນຕາກຕິກ}} * 拉丁語:{{t|la|Antarctica}} * 拉脫維亞語:{{t|lv|Antarktīda|f}}、{{t|lv|Antarktika|f}} * 列茲金語:{{t|lez|Антарктида}} * 利古里亞語:{{t|lij|Antartide|m}} * 林堡語:{{t|li|Antarctica|n}} * 立陶宛語:{{t+|lt|Antarktida}} * 利維卡累利阿語:{{t|olo|Antarktidu}} * 倫巴底語:{{t|lmo|Antartid|m}} * 低地德語: *: 德國低地德語:{{t|nds-de|Antarktika|f}} * 盧森堡語:{{t+|lb|Antarktis|f}} * 馬其頓語:{{t|mk|Анта́рктик|m}} * 馬拉加斯語:{{t|mg|Antartika}} * 馬來語:{{t|ms|Antartika}} * 馬拉雅拉姆語:{{t|ml|അന്റാർട്ടിക്ക}} * 馬爾他語:{{t-needed|mt}} * 曼島語:{{t|gv|Antarctagh|f}} * 毛利語:{{t|mi|Te Tiri o Te Moana}} * 馬拉地語:{{t|mr|अंटार्क्टिका}} * 米南佳保語:{{t|min|Antarktika}} * 明格列爾語:{{t|xmf|ანტარქტიდა}} * 米蘭德斯語:{{t|mwl|Antártica|f}}、{{t|mwl|Antártida|f}} * 蒙古語:{{t+|mn|Антарктид}} * 納瓦特爾語:{{t|nah|Antartida}} * 納瓦霍語:{{t|nv|Shádiʼááhjí Honeezkʼazii|sc=Latn}}、{{t|nv|Shádiʼááhjí kéyah yistinígíí|sc=Latn}} * 那不勒斯語:{{t|nap|Antartide|m}} * 諾曼語:{{t|nrf|Antarctique|m}} * 北弗里斯蘭語:{{t|frr|Antarktikaa}} * 北薩米語:{{t|se|Antárktis}} * 北塞索托語:{{t|nso|Antarctica}} * 挪威語: *: 書面挪威語:{{t|nb|Antarktika}} *: 新挪威語:{{t|nn|Antarktika}} * 奧克語:{{t+|oc|Antartida|f}} * 奧利亞語:{{t|or|ଆଣ୍ଟର୍କଟିକା}} * 奧塞梯語:{{t|os|Антарктидӕ|alt=Антарктидæ}} * 帕皮阿門托語:{{t|pap|Antartica|f}} * 波斯語:{{t+|fa|جنوبگان|tr=jonubegân}} * 皮卡第語:{{t|pcd|Intarctike}} * 皮埃蒙特語:{{t|pms|Antàrtide|m}} * 皮特凱恩語:{{t|pih|Antarktida}} * 波蘭語:{{t+|pl|Antarktyda|f}} * 旁狄希臘語:{{t|pnt|Ανταρκτικήν}} * 葡萄牙語:{{t+|pt|Antártica}} * 旁遮普語:{{t|pa|ਅੰਟਾਰਕਟਿਕਾ}} * 克丘亞語:{{t|qu|Antartika}} * 羅馬尼亞語:{{t|ro|Antarctica}}、{{t|ro|Antarctida|f}} * 俄語:{{t+|ru|Антаркти́да|f}} {{qualifier|大陸}}、{{t+|ru|Анта́рктика|f}} {{qualifier|區域}} * 盧森尼亞語:{{t|rue|Антарктіда|f}} * 盧旺達語:{{t|rw|Antarigitika}} * 薩摩亞語:{{t|sm|Anetatika}} * 薩莫吉提亞語:{{t|sgs|Antarktėda|f}} * 桑塔利語:{{t|sat|ᱟᱱᱴᱟᱨᱠᱚᱴᱤᱠᱟ}} * 撒丁語:{{t|sc|Antàrticu|m}} * 薩特弗里斯蘭語:{{t|stq|Antarktikoa}} * 低地蘇格蘭語:{{t|sco|Antarcticae}} * 蘇格蘭蓋爾語:{{t|gd|Antargtaga}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Антарктик|m}} *: 拉丁字母:{{t+|sh|Antarktik|m}} * 修納語:{{t|sn|Antarctica}} * 西西里語:{{t|scn|Antàrtidi|m}} * 西里西亞語:{{t|szl|Antarktyda|f}} * 僧加羅語:{{t|si|ඇන්ටාක්ටිකාව}} * 斯洛伐克語:{{t+|sk|Antarktída|f}} * 斯洛文尼亞語:{{t+|sl|Antárktika|f}} * 索馬里語:{{t|so|Antarktika}} * 索布語: *: 下索布語:{{t|dsb|Antarktika|f}} *: 上索布語:{{t+|hsb|Antarktika|f}} * 西班牙語:{{t+|es|Antártida}} * 巽他語:{{t|su|Antartika}} * 斯瓦希里語:{{t|sw|Antaktika}} * 瑞典語:{{t+|sv|Antarktis}} * 他加祿語:{{t|tl|Antarctica}} * 塔吉克語:{{t+|tg|Антарктида}} * 泰米爾語:{{t|ta|அந்தாட்டிக்கா}} * 塔倫蒂諾語:{{t|roa-tar|Antartide|m}} * 韃靼語:{{t|tt|Антарктида}} * 泰盧固語:{{t+|te|అంటార్కిటికా}} * 德頓語:{{t|tet|Antártida}} * 泰語:{{t|th|แอนตาร์กติกา}} * 藏語:{{t|bo|ལྷོ་མཐའི་གླིང}} * 提格里尼亞語:{{t|ti|ኣንታርቲካ}} * 湯加語:{{t|to|ʻAnetātika}} * 聰加語:{{t|ts|Antakthika}} * 圖陸語:{{t|tcy|ಅಂಟಾರ್ಕ್ಟಿಕ}} * 土耳其語:{{t+|tr|Antarktika}} * 土庫曼語:{{t|tk|Antarktika}}、{{t+|tk|Antarktida}} {{qualifier|大陸}} * 烏克蘭語:{{t+|uk|Антаркти́да|f}} {{qualifier|大陸}}、{{t+|uk|Анта́рктика|f}} {{qualifier|區域}} * 烏爾都語:{{t|ur|انٹارکٹکا|m|tr=aṇṭārkṭikā}} * 烏茲別克語:{{t+|uz|Antarktida}} * 威尼斯語:{{t|vec|Antartide|m}} * 維普斯語:{{t|vep|Antarktid}} * 越南語:{{t|vi|Châu Nam Cực}} ({{t|vi|洲南極}}) * 沃拉普克語:{{t-needed|vo}} * 佛羅語:{{t|vro|Antarktis}} * 沃特語:{{t-needed|vot}} * 瓦隆語:{{t+|wa|Antartike|m}} * 瓦瑞瓦瑞語:{{t|war|Antartika}} * 威爾士語:{{t|cy|Antarctig|f}} * 西佛蘭德語:{{t|vls|Antarctica|n}} * 西弗里斯蘭語:{{t|fy|Antarktika|n}} * 沃洛夫語:{{t+|wo|Dottub Bëj-saalum}} * 雅庫特語:{{t|sah|Антарктика}} * 意第緒語:{{t|yi|אַנטאַרקטיקאַ}} * 約魯巴語:{{t|yo|Antárktìkà}} * 扎扎其語:{{t|zza|Antarktika}} * 澤蘭語:{{t|zea|Antartica}} * 壯語:{{t|za|Namzgigcouh}} * 祖魯語:{{t|zu|i-Antaktika}} {{trans-bottom}} {{zh-cat|大洲}} d3f52hqdmnjz9tfgw66imqaq7eend00 南美洲 0 681404 9759637 9728332 2026-05-14T23:29:46Z TongcyDai 53191 9759637 wikitext text/x-wiki ==漢語== {{zh-forms|type=21}} ===發音=== {{zh-pron |m=nánměizhōu |c=naam4 mei5 zau1 |mn=Lâm-bí-chiu |mn-t=lam5 mui2 ziu1 |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{senseid|zh|Q18}}{{place|zh|構成[[美洲]]南部的<<大洲>>;位於[[太平洋]]以東,{[大西洋]}以西,[[北美洲]]以南,[[南極洲]]以北;為地球的七大洲之一|tcl=構成[[美洲]]南部的<<大洲>>}} ====近義詞==== * {{zh-l|南美}} ====相關詞彙==== {{table:continents/zh}} ====翻譯==== {{trans-top|id=Q18|美洲大陸南部的洲}} * 西切爾克斯語:{{t|ady|Къыблэ Америкэ}} * 南非語:{{t|af|Suid-Amerika}} * 阿坎語:{{t|ak|Amerika Apueɛ}} * 阿爾巴尼亞語:{{t|sq|Amerikë Jugore|f}}、{{t|sq|Amerika Jugore|f}} {{qualifier|定指}} * 阿姆哈拉語:{{t|am|ደቡብ አሜሪካ}} * 阿拉伯語:{{t+|ar|أَمْرِيكَا الْجَنُوبِيَّة|f}} * 亞美尼亞語:{{t|hy|Հարավային Ամերիկա}} * 阿薩姆語:{{t|as|দক্ষিণ আমেৰিকা}} * 亞述新亞拉姆語:{{t|aii|ܬܲܝܡܵܢ ܐܵܡܵܝܪܟܵܐ|f|tr=Tayman Amayrka}} * 阿塞拜疆語:{{t+|az|Cənubi Amerika}} * 巴什基爾語:{{t|ba|Көньяҡ Америка}} * 白俄羅斯語:{{t|be|Паўднёвая Аме́рыка|f}} * 孟加拉語:{{t|bn|দক্ষিণ মার্কিন}} * 保加利亞語:{{t|bg|Ю́жна Аме́рика|f}} * 緬甸語:{{t|my|တောင်အမေရိက}} * 加泰羅尼亞語:{{t+|ca|Amèrica del Sud|f}} * 捷克語:{{t+|cs|Jižní Amerika|f}} * 丹麥語:{{t+|da|Sydamerika|n}} * 荷蘭語:{{t+|nl|Zuid-Amerika|n}} * 英語:{{t+|en|South America}} * 世界語:{{t+|eo|Sudameriko}} * 愛沙尼亞語:{{t|et|Lõuna-Ameerika}} * 法羅語:{{t|fo|Suðuramerika|n}} * 芬蘭語:{{t+|fi|Etelä-Amerikka}} * 法語:{{t+|fr|Amérique du Sud|f}} * 加利西亞語:{{t+|gl|América do Sur}} * 格魯吉亞語:{{t|ka|სამხრეთი ამერიკა}} * 德語:{{t+|de|Südamerika|n}} * 希臘語:{{t+|el|Νότια Αμερική|f}} * 古吉拉特語:{{t|gu|દક્ષિણ અમેરિકા}} * 海地克里奧爾語:{{t|ht|Amerik disid}} * 哈爾彥維語:{{t|bgc|दखिण्यामरेख्या}} * 夏威夷語:{{t|haw|ʻAmelika Hema}} * 希伯來語:{{t+|he|אָמֶרִיקָה הַדְּרוֹמִית|f|tr=amérika ha-dromít}} * 印地語:{{t+|hi|दक्षिण अमेरिका|m}}、{{t|hi|दक्षिण अमरीका|m}} * 匈牙利語:{{t+|hu|Dél-Amerika}} * 冰島語:{{t+|is|Suður-Ameríka|f}} * 伊多語:{{t+|io|Sud-Amerika}} * 印尼語:{{t+|id|Amerika Selatan}} * 愛爾蘭語:{{t|ga|Meiriceá Theas|m}} * 意大利語:{{t|it|Sudamerica|f}}、{{t|it|America del sud|f}} * 日語:{{t+|ja|南アメリカ|tr=Minami Amerika}}、{{t+|ja|南米|tr=なんべい, Nanbei}} * 卡納達語:{{t+|kn|ದಕ್ಷಿಣ ಅಮೇರಿಕ}} * 哈薩克語:{{t+|kk|Оңтүстік Америка}} * 高棉語:{{t|km|អាមេរិកខាងត្បូង}} * 朝鮮語:{{t+|ko|^남미(南美)}}、{{t+|ko|^남아메리카}} * 庫爾德語: *: 北庫爾德語:{{t+|kmr|Amerîkaya Başûr}} * 吉爾吉斯語:{{t+|ky|Түштүк Америка}} * 老撾語:{{t+|lo|ອາເມລິກາໃຕ້}} * 拉丁語:{{t|la|America Austrālis|f}} * 拉脫維亞語:{{t|lv|Dienvidamerika|f}} * 立陶宛語:{{t+|lt|Pietų Amerika|f}} * 盧森堡語:{{t+|lb|Südamerika|n}} * 馬其頓語:{{t|mk|Јужна Америка|f}} * 馬來語:{{t+|ms|Amerika Selatan}} * 馬拉雅拉姆語:{{t|ml|തെക്കേ അമേരിക്ക}} * 蒙古語: *: 西里爾字母:{{t|mn|Өмнөд Америк}} * 納瓦霍語:{{t|nv|Shádiʼááhjí Kéyah dah siʼánígíí}} * 諾曼語:{{t|nrf|Améthique du Sud|f}} {{qualifier|澤西}} * 挪威語: *: 書面挪威語:{{t+|nb|Sør-Amerika|n}} *: 新挪威語:{{t+|nn|Sør-Amerika|n}} * 奧克語:{{t+|oc|America del Sud|f}} * 奧利亞語:{{t|or|ଦକ୍ଷିଣ ଆମେରିକା}} * 普什圖語:{{t|ps|سويلي امریکا|f|tr=soeli amrikā}} * 波斯語:{{t|fa|آمریکای جنوبی|tr=âmrikâ-ye jonubi}} * 波蘭語:{{t+|pl|Ameryka Południowa}} * 葡萄牙語:{{t+|pt|América do Sul|f}} * 羅馬尼亞語:{{t+|ro|America de Sud|f}} * 俄語:{{t+|ru|Ю́жная Аме́рика|f}} * 梵語:{{t|sa|दक्षिणीयामरेखिका}} * 蘇格蘭蓋爾語:{{t|gd|Aimeireaga-a-Deas|f}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Ју̏жна̄ Амѐрика|f}} *: 拉丁字母:{{t+|sh|Jȕžnā Amèrika|f}} * 僧加羅語:{{t+|si|දකුණු ඇමෙරිකාව}} * 斯洛伐克語:{{t+|sk|Južná Amerika|f}} * 斯洛文尼亞語:{{t|sl|Južna Amerika|f}} * 塞索托語:{{t|st|Amerika Borwa}} * 西班牙語:{{t+|es|América del Sur|f}}、{{t+|es|Sudamérica|f}}、{{t+|es|Suramérica|f}}、{{t|es|América Meridional|f}} * 斯瓦希里語:{{t|sw|Amerika ya Kusini}} * 瑞典語:{{t+|sv|Sydamerika|n}} * 他加祿語:{{t|tl|Timog Amerika}} * 塔吉克語:{{t+|tg|Амрикои Ҷанубӣ}} * 泰米爾語:{{t+|ta|தென் அமெரிக்கா}} * 韃靼語:{{t|tt|Көньяк Америка}} * 泰盧固語:{{t+|te|దక్షిణ అమెరికా}} * 泰語:{{t|th|อเมริกาใต้}} * 提格里尼亞語:{{t|ti|ደቡብ ኣመሪካ}} * 土耳其語:{{t+|tr|Güney Amerika}} * 土庫曼語:{{t|tk|Günorta Amerika}} * 烏克蘭語:{{t+|uk|Півде́нна Аме́рика|f}} * 烏爾都語:{{t|ur|جنوبی امریکہ|m|tr=junūbī amrīkā}} * 維吾爾語:{{t|ug|جەنۇبىي ئامېرىكا}} * 烏茲別克語:{{t+|uz|Janubiy Amerika}} * 越南語:{{t+|vi|Nam Mỹ}} ({{t|vi|南美}}) * 沃拉普克語:{{t+|vo|Sulüda-Merop}} * 威爾士語:{{t+|cy|De America|f}} * 意第緒語:{{t|yi|דרום אַמעריקע|n|tr=dorem amerike}} {{trans-bottom}} {{zh-cat|南美洲}} o3w2nl9pam85m1yz02rmwjki5fidlw7 南米 0 681406 9759638 7881142 2026-05-14T23:30:04Z TongcyDai 53191 9759638 wikitext text/x-wiki ==日語== {{ja-kanjitab|なん|べい|yomi=on}} ===發音=== {{ja-pron|なんべい|acc=0|acc_ref=NHK,SMK5}} ===專有名詞=== {{ja-pos|proper|なんべい}} # {{tcl|ja|南美洲|id=Q18}} ====反義詞==== * {{ja-r|北米|^ほくべい}} ===參考資料=== <references/> * {{R:Shogakukan}} 2t7p0dguvdstcur9xr4gabgyor5y2xq こぶ 0 716343 9760160 6196583 2026-05-15T06:56:44Z Fglffer 55252 9760160 wikitext text/x-wiki ==日語== ===詞源1=== {{ja-kanjitab|alt=瘤}} ====發音==== {{ja-pron|acc=2|acc_ref=DJR}} ====名詞==== {{ja-noun|hhira=こぶ}} # [[腫瘤]],[[腫塊]] # [[樹瘤]] # [[繩結]] # [[累贅]],[[拖油瓶]] {{qual|指孩子}} =====同義詞===== * {{sense|腫瘤}} {{qual|非正式}} {{ja-r|たん瘤|たんこぶ}} ===詞源2=== {{ja-kanjitab|alt=媚ぶ}} ====發音==== {{ja-pron}} ====動詞==== {{ja-verb|type=kami ni}} # [[諂媚]] ===詞源3=== {{ja-see-kango|戸部|鼓舞}} ===詞源4=== {{ja-see|昆布}} ===來源=== <references/> jnj90btgmcfg5g3dyq8lhu90azlsgjk せいち 0 725689 9760143 5447128 2026-05-15T06:03:42Z Fglffer 55252 9760143 wikitext text/x-wiki ==日語== {{ja-see|聖地|精緻|整地|生地|制治|整治|棲遅|生知|生致|聖知|静置}} l4ftsz816xhnjq2zf86x0q5rcgvypi2 リビア 0 754541 9759623 7818884 2026-05-14T23:14:32Z TongcyDai 53191 9759623 wikitext text/x-wiki ==日語== {{wp|ja:}} ===發音=== {{ja-pron|acc=1|acc_ref=NHK,SMK5}} ===專有名詞=== {{ja-pos|proper}} # {{tcl|ja|利比亞|id=Q1016}} ===參考資料=== <references /> 4sjvl8mteednwf2pb98c72zy2djyrz6 Kernkraftwerk 0 781730 9759449 9546513 2026-05-14T17:13:25Z Jeuwre 48455 /* 發音 */ 9759449 wikitext text/x-wiki ==德語== ===詞源=== 源自 {{compound|de|Kern|Kraftwerk|gloss1=核子|gloss2=發電廠}}。 ===發音=== * {{IPA|de|[ˈkɛʁnkʁaftˌvɛʁk]}} * {{audio|de|De-Kernkraftwerk.ogg}} * {{audio|de|De-Kernkraftwerk2.ogg|a=柏林}} * {{hyph|de|Kern|kraft|werk}} ===名詞=== {{de-noun|n,(e)s}} # [[核電站]],[[核電廠]] #: {{syn|de|Atomkraftwerk}} ====變格==== {{de-ndecl|n,(e)s}} ===延伸閱讀=== * {{R:de:Duden}} * {{R:de:DWDS}} {{C|de|核能|鈾}} 8mhd2a0cs7n1gt7yjbqmqepyybyb30p материк 0 848862 9759654 9538281 2026-05-14T23:50:43Z TongcyDai 53191 9759654 wikitext text/x-wiki ==俄語== {{slim-wikipedia|lang=ru}} ===詞源=== * 根據Erich Berneker和Max Vasmer的說法,其來自{{af|ru|ма́терь|-и́к}}。 * 根據Andrey Zaliznyak的說法,其來自{{af|ru|[[матёрый|матеро́й]]|-и́к}}帶有右重音替代主語後綴。同樣類似的例子有{{m|ru|временно́й}} → {{m|ru|временни́к}}、{{m|ru|мелочно́й}} → {{m|ru|мелочни́к}},但是{{m|ru|варёный}} → {{m|ru|варе́ник}}、{{m|ru|ры́жий}} → {{m|ru|ры́жик}}卻是例外。 ===發音=== * {{ru-IPA|матери́к}} * {{audio|ru|Ru-материк.ogg}} ===名詞=== {{ru-noun+|b|матери́к}} # [[大洲]] # [[大陸]] # [[原生]][[土壤]] # [[底土]] # {{lb|ru|geology}} [[基質]],[[母岩]],[[脈石]] # {{lb|ru|biology}} [[母體]][[組織]] ====變格==== {{ru-noun-table|b|матери́к}} ====近義詞==== * {{l|ru|контине́нт}} ===參考資料=== * {{R:ru:Vasmer}} ===延伸閱讀=== * {{R:ru:Dal}} ** 參見:{{R:ru:Dal|матерый}} {{C|ru|地形}} ==烏克蘭語== {{swp|uk:}} ===詞源=== 和{{cog|ru|матери́к}}同源。 ===發音=== * {{uk-IPA|матери́к}} * {{audio|uk|Uk-материк.ogg}} ===名詞=== {{uk-noun|матери́к<b>}} # {{lb|uk|地理學}} [[大洲]] #: {{syn|uk|контине́нт|g=m}} ====變格==== {{uk-ndecl|матери́к<b>}} ===延伸閱讀=== * {{R:uk:SUM-11}} * {{R:uk:Horokh}} * {{R:uk:Kyiv}} * {{R:uk:Slovnyk}} {{C|uk|地形}} hsj8onvdte2tfehio42a0350v0edfad América 0 887118 9759693 9531052 2026-05-15T00:35:06Z TongcyDai 53191 9759693 wikitext text/x-wiki {{also|America|Amèrica|americà}} ==阿斯圖里亞斯語== ===詞源=== 源自{{der|ast|la-new|America}}。 ===發音=== * {{ast-pr}} ===專有名詞=== {{head|ast|專有名詞|g=f}} # {{lb|ast|also|in the plural}} {{tcl|ast|美洲|id=Q828}} ====相關詞彙==== {{col3|ast|facer l'América|americanu|América nueva|facer Les Amériques|Les Amériques nueves}} ==加利西亞語== {{wp|gl:}} ===詞源=== 源自{{der|gl|la-new|America}}。 ===發音=== * {{audio|gl|Gl-América.ogg}} ===專有名詞=== {{head|gl|專有名詞|g=f}} # {{tcl|gl|美洲|id=Q828}} ====派生詞彙==== {{col3|gl|América Latina |Latinoamérica |América del Norte |Norteamérica |América del Sur |Suramérica |América meridional |América Central |Centroamérica |América Anglosajona }} ===參見=== {{list:continents/gl}} ==利古里亞語== ===其他形式=== * {{alter|lij|Mérica}} ===詞源=== 源自{{der|lij|la|America}}。 ===發音=== * {{IPA|lij|/aˈmerika/}} ===專有名詞=== {{lij-proper noun|f}} # {{tcl|lij|美國|id=Q30}} # {{tcl|lij|美洲|id=Q828}} ====派生詞彙==== * {{l|lij|América do Nòrd}} * {{l|lij|América do Sùd}} ====相關詞彙==== * {{l|lij|americàn}} ==葡萄牙語== ===發音=== {{pt-IPA}} * {{hyph|pt|A|mé|ri|ca}} ===詞源1=== {{bor+|pt|la-new|America}}。 ====專有名詞==== {{pt-proper noun|f|+}} # {{tcl|pt|美洲|id=Q828}} #: {{syn|pt|Américas}} #* {{quote-book|pt|year=2005|author=Gil Felippe|title=No Rastro de Afrodite – Plantas Afrodisíacas e Culinária|pageurl=http://books.google.com.br/books?id=bP-96-3CEi8C&pg=PA33#v=onepage&q&f=false|isbn=9788574802329|page=33|publisher=Ateliê Editorial|text=Havia formas já selecionadas de abacaxi ou ananás na época pré-colombiana. É considerado o fruto mais saboroso da '''América''' e os primeiros indícios de seu cultivo são do México. |translation=There were selected forms already of ''abacaxi'' or pineapple on pre-Columbian times. It is considered the tastiest fruit of '''America''', and the first signs of its cultivation are from Mexico}} # {{lb|pt|chiefly Portugal|非正式}} {{tcl|pt|America|id=Q30|place_full=Estados Unidos da América}} #: {{syn|pt|Estados Unidos|EUA}} ===詞源2=== ====專有名詞==== {{pt-proper noun|f|+|m=+}} # {{given name|pt|女性}} ==西班牙語== {{wp|es:}} ===詞源=== {{bor+|es|la-new|America}}。 ===發音=== {{es-pr}} ===專有名詞=== {{es-prop|f}} # {{tcl|es|美洲|id=Q828}} #: {{ux|es|Los Estados Unidos es el país más poblado de '''América'''.|The United States is the most populous country in '''America'''.}} # {{lb|es|proscribed|西班牙}} {{tcl|es|美國|id=Q30|place_full=Estados Unidos de América}} #* {{quote-journal|es|author=Jordan Valinsky|title=Google Maps cambiará el nombre del golfo de México por el de "golfo de Estados Unidos"|magazine=w:CNN en Español|url=https://cnnespanol.cnn.com/2025/01/28/eeuu/google-maps-golfo-de-mexico-por-el-golfo-de-america-trax|date=2025-01-28|passage=Y en un guiño a las contribuciones del golfo de México a la economía estadounidense, Trump está “ordenando que se le cambie oficialmente el nombre a golfo de '''América'''”. |translation=And at a twist from the Gulf of Mexico's contributions to the Usonian economy, Trump is “ordering to officially change its name to ''Gulf of'' '''''America'''''”.}} ====派生詞彙==== {{col|es|América Latina |Latinoamérica |América del Norte |avestruz de América |Norteamérica |América del Sur |Sudamérica |Suramérica|golfo de América|América Meridional |América Central |Centroamérica|Pulgarcito de América |América Anglosajona |hacerse la América |urraca de América }} ====相關詞彙==== {{col|es|americano}} ====派生語彙==== * {{desc|gug|Amérika|bor=1}} ===參見=== {{list:continents/es}} * {{l|es|Estados Unidos de América}} * {{l|es|Estados Unidos}} * {{l|es|Nuevo Mundo}} ===延伸閱讀=== * {{R:es:DRAE}} r85yf6cys57jpwn6ni6rcxb8udkr3tt 9759694 9759693 2026-05-15T00:36:08Z TongcyDai 53191 9759694 wikitext text/x-wiki {{also|America|Amèrica|americà}} ==阿斯圖里亞斯語== ===詞源=== 源自{{der|ast|la-new|America}}。 ===發音=== * {{ast-pr}} ===專有名詞=== {{head|ast|專有名詞|g=f}} # {{lb|ast|also|in the plural}} {{tcl|ast|美洲|id=Q828}} ====相關詞彙==== {{col3|ast|facer l'América|americanu|América nueva|facer Les Amériques|Les Amériques nueves}} ==加利西亞語== {{wp|gl:}} ===詞源=== 源自{{der|gl|la-new|America}}。 ===發音=== * {{audio|gl|Gl-América.ogg}} ===專有名詞=== {{head|gl|專有名詞|g=f}} # {{tcl|gl|美洲|id=Q828}} ====派生詞彙==== {{col3|gl|América Latina |Latinoamérica |América del Norte |Norteamérica |América del Sur |Suramérica |América meridional |América Central |Centroamérica |América Anglosajona }} ===參見=== {{list:continents/gl}} ==利古里亞語== ===其他形式=== * {{alter|lij|Mérica}} ===詞源=== 源自{{der|lij|la|America}}。 ===發音=== * {{IPA|lij|/aˈmerika/}} ===專有名詞=== {{lij-proper noun|f}} # {{tcl|lij|美國|id=Q30}} # {{tcl|lij|美洲|id=Q828}} ====派生詞彙==== * {{l|lij|América do Nòrd}} * {{l|lij|América do Sùd}} ====相關詞彙==== * {{l|lij|americàn}} ==葡萄牙語== ===發音=== {{pt-IPA}} * {{hyph|pt|A|mé|ri|ca}} ===詞源1=== {{bor+|pt|la-new|America}}。 ====專有名詞==== {{pt-proper noun|f|+}} # {{tcl|pt|美洲|id=Q828}} #: {{syn|pt|Américas}} #* {{quote-book|pt|year=2005|author=Gil Felippe|title=No Rastro de Afrodite – Plantas Afrodisíacas e Culinária|pageurl=http://books.google.com.br/books?id=bP-96-3CEi8C&pg=PA33#v=onepage&q&f=false|isbn=9788574802329|page=33|publisher=Ateliê Editorial|text=Havia formas já selecionadas de abacaxi ou ananás na época pré-colombiana. É considerado o fruto mais saboroso da '''América''' e os primeiros indícios de seu cultivo são do México. |translation=There were selected forms already of ''abacaxi'' or pineapple on pre-Columbian times. It is considered the tastiest fruit of '''America''', and the first signs of its cultivation are from Mexico}} # {{lb|pt|chiefly Portugal|非正式}} {{tcl|pt|America|id=Q30|place_full=Estados Unidos da América}} #: {{syn|pt|Estados Unidos|EUA}} ===詞源2=== ====專有名詞==== {{pt-proper noun|f|+|m=+}} # {{given name|pt|女性}} ==西班牙語== {{wp|es:}} ===詞源=== {{bor+|es|la-new|America}}。 ===發音=== {{es-pr}} ===專有名詞=== {{es-prop|f}} # {{tcl|es|美洲|id=Q828}} #: {{ux|es|Los Estados Unidos es el país más poblado de '''América'''.|美國是'''美洲'''人口最多的國家。}} # {{lb|es|proscribed|西班牙}} {{tcl|es|美國|id=Q30|place_full=Estados Unidos de América}} #* {{quote-journal|es|author=Jordan Valinsky|title=Google Maps cambiará el nombre del golfo de México por el de "golfo de Estados Unidos"|magazine=w:CNN en Español|url=https://cnnespanol.cnn.com/2025/01/28/eeuu/google-maps-golfo-de-mexico-por-el-golfo-de-america-trax|date=2025-01-28|passage=Y en un guiño a las contribuciones del golfo de México a la economía estadounidense, Trump está “ordenando que se le cambie oficialmente el nombre a golfo de '''América'''”. |translation=與墨西哥灣對美國經濟的貢獻截然相反,川普「下令正式將其更名為'''美國'''灣」。}} ====派生詞彙==== {{col|es|América Latina |Latinoamérica |América del Norte |avestruz de América |Norteamérica |América del Sur |Sudamérica |Suramérica|golfo de América|América Meridional |América Central |Centroamérica|Pulgarcito de América |América Anglosajona |hacerse la América |urraca de América }} ====相關詞彙==== {{col|es|americano}} ====派生語彙==== * {{desc|gug|Amérika|bor=1}} ===參見=== {{list:continents/es}} * {{l|es|Estados Unidos de América}} * {{l|es|Estados Unidos}} * {{l|es|Nuevo Mundo}} ===延伸閱讀=== * {{R:es:DRAE}} mh35dkzqpqff36jzc45v8cdpjllwk4m colonia 0 890145 9760150 7771053 2026-05-15T06:22:12Z Apisite 85347 9760150 wikitext text/x-wiki {{also|Colonia|colónia|colònia|colônia|Colónia|Colònia|Colônia}} ==英語== [[Category:英語]] [[Category:英語名詞]] 缺少地方政府的服務及照管、大多數為貧窮成員組成的「墨西哥及美人社區」 ==西班牙語== [[Category:西班牙語]] [[Category:西班牙語名詞]] f. 移民,殖民地,花露水 4ke4ex3x5a1nblri0nlo6ifw53opak1 Libia 0 897556 9759619 9010483 2026-05-14T23:06:42Z TongcyDai 53191 9759619 wikitext text/x-wiki {{also|libia|líbia|Líbia|Líbía}} ==阿斯圖里亞斯語== {{wp|ast:}} ===專有名詞=== {{ast-proper noun|f}} # {{tcl|ast|利比亞|id=Q1016}} ====相關詞彙==== * {{l|ast|libiu}} ==中瓦斯特卡納瓦特爾語== ===專有名詞=== {{head|nch|專有名詞}} # {{tcl|nch|利比亞|id=Q1016}} ==中納瓦特爾語== ===專有名詞=== {{head|nhn|專有名詞}} # {{tcl|nhn|利比亞|id=Q1016}} ==加利西亞語== ===其他形式=== * {{alt|gl|Líbia||重新融入主義}} ===專有名詞=== {{gl-proper noun}} # {{tcl|gl|利比亞|id=Q1016}} ====相關詞彙==== * {{l|gl|libio}} ==愛爾蘭語== ===專有名詞=== {{ga-proper noun|f|head=An Libia|Libia}} # {{tcl|ga|利比亞|id=Q1016}} ====派生詞彙==== * {{l|ga|Libiach|gloss=利比亞的}} ====相關詞彙==== * {{l|ga|Daon-Phoblacht Mhór Shóisialach Arabach na Libia}} * {{l|ga|Seamaithír Mhór Shóisialach Arabach na Libia}} * {{l|ga|Tripilí||Tripoli}} ==意大利語== {{wp|it:}} ===發音=== {{it-pr|Lìbia}} {{rfap|it}} ===專有名詞=== {{it-proper noun|f}} # {{tcl|it|利比亞|id=Q1016}} ====派生詞彙==== * {{l|it|libico}} ===異序詞=== * {{anagrams|it|a=abiil|abili|alibi|bilia}} ==古英語== ===詞源=== {{bor+|ang|la|Libya}},源自{{der|ang|grc|Λιβύη}}。 ===專有名詞=== {{ang-proper noun}} # [[利比亞]] #* '''9世紀晚期''', [https://archive.org/details/kingalfredsorosi79oros/page/12/mode/2up translation] of [[w:Orosius|Orosius’]] ''History Against the Pagans'' #*: {{quote|ang|Sēo Ægȳptus þe is nēar ūs, bē norþan hire is þæt land Palastine, ⁊ bē ēastan hiere Sarracene þæt land, ⁊ bē westan hire '''Libia''' þæt land, ⁊ bē sūþan hire sē beorg þe mon hǣt Climax.|我們附近的埃及(下埃及)北鄰巴勒斯坦,東接撒拉遜人之地,西連利比亞,南臨克萊馬克斯山。}} ==波蘭語== {{wp|pl:}} ===發音=== {{pl-pr|a=Pl-Libia.ogg}} ===專有名詞=== {{pl-proper noun|f|adj=libijski}} # {{tcl|pl|利比亞|id=Q1016}} ====變格==== {{pl-decl-noun-sing |Libia |Libii |Libii |Libię |Libią |Libii |Libio }} ====派生詞彙==== {{col|pl|Libijczyk|Libijka}} ===參見=== {{list:countries in Africa/pl}} ===延伸閱讀=== * {{R:pl:PWN}} ==西班牙語== {{wp|es:}} ===發音=== {{es-pr|+<audio:LL-Q1321 (spa)-Rodelar-Libia.wav<a:Spain>><audio:LL-Q1321 (spa)-Rodrigo5260-Libia.wav<a:Peru>>}} ===專有名詞=== {{es-proper noun|f}} # {{tcl|es|利比亞|id=Q1016}} ====相關詞彙==== {{col|es|libio}} ==威爾士語== {{wp|cy:}} ===專有名詞=== {{cy-proper noun|f}} # {{tcl|cy|利比亞|id=Q1016}} ====相關詞彙==== * {{l|cy|Libiad||Libyan|pos=n}} * {{l|cy|Libiaidd||Libyan|pos=a}} ===參見=== {{list:countries in Africa/cy}} ===延伸閱讀=== * {{R:cy:GyrA|2=Libya}} ==西瓦斯特卡納瓦特爾語== ===專有名詞=== {{head|nhw|專有名詞}} # {{tcl|nhw|利比亞|id=Q1016}} ==約魯巴語== {{swp|yo:[[Líbyà|Líbíà]]}} [[File:Libya in its region.svg|thumb|'''Líbíà''']] ===詞源=== {{bor+|yo|en|利比亞}}。 ===發音=== * {{yo-IPA|Líbíà}} ===專有名詞=== {{yo-prop|Líbíà}} # {{tcl|yo|利比亞|id=Q1016}} fvkve83fx0bvojsw8j8rmfwn1ybl712 sudamericano 0 903663 9759708 7675785 2026-05-15T00:42:12Z TongcyDai 53191 9759708 wikitext text/x-wiki ==意大利語== ===發音=== {{it-pr|sùdamericàno,sùddamericàno<r:Olivetti><r:DiPI:Sud>}} ===形容詞=== {{it-adj}} # [[南美洲]]的 ===名詞=== {{it-noun|m|f=+}} # [[南美洲]]居民 ===參考資料=== <references /> ==西班牙語== ===發音=== {{es-pr}} ===形容詞=== {{es-adj}} # [[南美洲]]的 ====派生詞彙==== {{col|es |gaviotín sudamericano }} ===名詞=== {{es-noun|m|f=+}} # [[南美洲]]居民 ===延伸閱讀=== * {{R:es:DRAE}} gf3bc2yr9ktzohsnlpi034w3wuye51c 儀式 0 930286 9759429 8296965 2026-05-14T15:27:19Z P1ayer 5118 /* 衍生詞 */ 9759429 wikitext text/x-wiki ==漢語== {{zh-forms|s=仪式}} {{zh-wp}} ===發音=== {{zh-pron |m=yíshì |ma=Zh-yíshì.ogg |c=ji4 sik1 |ca=LL-Q9186-Luilui6666-仪式.wav |h=pfs=ngì-sṳt |mn=qz:gî-siak/tw,xm:gî-sek/zz:gî-sit/tw:gī-sek |mn-t=ngi5 sêg4 |cat=n }} ===名詞=== {{head|zh|名詞}} # [[舉行]][[典禮]]的[[秩序]]、[[形式]] {{zh-mw|m:個|m:場}} #: {{zh-x|簽約 儀式|}} #: {{zh-x|剪彩 儀式|}} #: {{zh-x|升旗 儀式|}} ====同義詞==== {{syn-saurus|zh|儀式}} ====衍生詞==== {{col3|zh|茶儀式|儀式感}} ====相關詞==== * {{zh-l|儀軌}} {{zh-cat|Intermediate}} {{C|zh|宗教}} ==日語== {{ja-kanjitab|ぎ|しき|yomi=o}} ===發音=== {{ja-pron|ぎしき|acc=a|dev=2|acc_ref=NHK,DJR}} ===名詞=== {{ja-noun|ぎしき}} # [[舉行]][[典禮]]的[[秩序]]、[[形式]] ====參見==== * {{ja-r|式典|しきてん}} ===來源=== <references/> {{topics|ja|宗教|sort=ぎしき}} ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=의식|mr=ŭisik|y=ūysik}} # {{hanja form of|의식|}} ==越南語== {{vi-hantutab}} ===名詞=== {{vi-noun|sc=Hani}} # {{han tu form of|nghi thức|}} kgieh4um36mhzmfsbwqexrh357p4rv3 飛散 0 984441 9760141 7756105 2026-05-15T05:23:22Z Apisite 85347 9760141 wikitext text/x-wiki ==漢語== {{zh-forms|s=飞散}} ===發音=== {{zh-pron |m=fēisàn |cat=v }} ===釋義=== {{zh-verb}} # {{rfdef|zh}} ===翻譯=== {{翻译-顶}} * 俄语:1) [[разлетаться]], [[рассеиваться]] ([[в]] [[воздухе]]); 2) ''[[геол.]]'' [[выдувание]] {{翻译-底}} [[Category:漢語|飞00攴08]] ==日語== 飛散【ひさん】 # 名·自他サ 飛散。 [[Category:日語]] 9paul0qewq137280ig07x0xi8xvxe12 9760148 9760141 2026-05-15T06:15:38Z Fglffer 55252 9760148 wikitext text/x-wiki ==漢語== {{zh-forms|s=飞散}} ===發音=== {{zh-pron |m=fēisàn |cat=v }} ===動詞=== {{zh-verb}} # [[飛揚]][[四散]] ==日語== {{ja-kanjitab|ひ|さん|yomi=o}} ===發音=== {{ja-pron|ひさん|acc=0|acc_ref=DJR}} ===名詞=== {{ja-noun|ひさん}} # [[飛揚]][[四散]] ===動詞=== {{ja-verb-suru|ひさん}} # [[飛揚]][[四散]] ====活用==== {{ja-suru|ひさん}} ===來源=== <references/> * {{R:Kanjipedia Kotoba|0005820500}} ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=비산}} # {{hanja form of|비산}} 332en5go4vtwyiddg06hr2dq0133sbr 9760169 9760148 2026-05-15T08:17:59Z Sayonzei 40728 /* 日語 */ 9760169 wikitext text/x-wiki ==漢語== {{zh-forms|s=飞散}} ===發音=== {{zh-pron |m=fēisàn |cat=v }} ===動詞=== {{zh-verb}} # [[飛揚]][[四散]] ==日語== {{ja-kanjitab|ひ|さん|yomi=o}} ===發音=== {{ja-pron|ひさん|acc=0|acc_ref=DJR}} ===名詞=== {{ja-noun|ひさん}} # [[飛揚]][[四散]] ===動詞=== {{ja-verb-suru|tr=both|ひさん}} # [[飛揚]][[四散]] ====活用==== {{ja-suru|ひさん}} ====參見==== * {{ja-r|飛び散る|とびちる}} ===來源=== <references/> * {{R:Kanjipedia Kotoba|0005820500}} ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=비산}} # {{hanja form of|비산}} pgctmcqrl1t9oar1guhsn1soehflrfx 北米 0 989189 9759636 7872092 2026-05-14T23:27:54Z TongcyDai 53191 9759636 wikitext text/x-wiki ==日語== {{ja-kanjitab|ほく|べい|yomi=on}} ===發音=== {{ja-pron|ほくべい|acc=0|acc_ref=NHK,SMK5}} ===專有名詞=== {{ja-pos|proper|ほくべい}} # {{tcl|ja|北美洲|id=Q49}} ====反義詞==== * {{ja-r|南米|^なんべい}} ===參考資料=== * {{R:Shogakukan}} <references/> 3g7xtokx03l1r8rzjcx6j3d3vedqowv África 0 1014699 9759536 6223624 2026-05-14T22:08:31Z TongcyDai 53191 9759536 wikitext text/x-wiki {{also|africa|Africa|áfrica|africà|Àfrica}} ==阿斯圖里亞斯語== {{wp|ast:}} ===詞源=== {{rfe|ast}} ===專有名詞=== {{head|ast|專有名詞|g=f}} # {{tcl|ast|非洲|id=Q15}} ====相關詞彙==== * {{l|ast|africanu}} ==加利西亞語== {{wp|gl:}} ===詞源=== {{rfe|gl}} ===發音=== * {{audio|gl|Gl-África.ogg}} ===專有名詞=== {{gl-proper noun|f}} # {{tcl|gl|非洲|id=Q15}} # {{tcl|gl|阿非利加|id=Q181238}} ====同類詞彙==== {{list:continents/gl}} ====相關詞彙==== * {{l|gl|africano}} * {{l|gl|africana}} ==米蘭德斯語== {{wp|mwl:}} {{rfquote|mwl}} ===詞源=== {{rfe|mwl}} ===發音=== {{mwl-pr|hmp=áfrica}} ===專有名詞=== {{head|mwl|專有名詞|g=f}} # {{tcl|mwl|非洲|id=Q15}} ==葡萄牙語== {{wp|pt:}} ===詞源=== {{rfe|pt}} ===發音=== {{pt-IPA}} * {{audio|pt|LL-Q5146 (por)-MedK1-África.wav|a=Caipira}} * {{rhymes|pt|afɾikɐ|s=3}} * {{hyph|pt|Á|fri|ca}} ===專有名詞=== {{pt-proper noun|f}} # {{tcl|pt|非洲|id=Q15}} # {{tcl|pt|阿非利加|id=Q181238}} ====用法說明==== {{pt-placename-without-article}} ====同類詞彙==== {{list:continents/pt}} ====派生詞彙==== {{col|pt|Euráfrica|África do Sul}} ====相關詞彙==== {{col|pt|africano|africâner|afro|afro-|ábrego//ávrego|áfrico}} ==西班牙語== ===詞源=== {{rfe|es}} ===發音=== {{es-pr}} ===專有名詞=== {{es-proper noun|f}} # {{tcl|es|非洲|id=Q15}} #* {{quote-journal|es|author=John Malathronas|title=¿Cuáles son los idiomas más fáciles (y difíciles) de aprender para los hablantes nativos de inglés?|magazine=w:CNN en Español|url=https://cnnespanol.cnn.com/2021/04/26/idiomas-aprender-hablantes-nativos-de-ingles-trax|date=2021-04-26|passage=Del mismo modo, el suajili evolucionó como lengua comercial en '''África''' oriental y se describe como un vocabulario árabe sobre una gramática africana.}} # {{tcl|es|阿非利加|id=Q181238}} # {{given name|es|女性|from=拉丁語}},為 {{m|es|[[María]] (de) África}} 之縮寫,聖母瑪利亞的稱號之一 ====用法說明==== {{es-note-noun-f-starting-with-stressed-a}} ====派生詞彙==== * {{l|es|África del Sudoeste}}、{{l|es|África del Suroeste}} * {{l|es|Cuerno de África}} * {{l|es|Sudáfrica}} ====相關詞彙==== {{col|es|africano}} ===參見=== {{list:continents/es}} * {{pedia|lang=es}} bffe8pzzjggjys9cycuacxlbw7oiero Cidade do México 0 1016814 9759451 4827763 2026-05-14T17:13:59Z TongcyDai 53191 9759451 wikitext text/x-wiki ==葡萄牙語== {{wp|pt:}} ===詞源=== {{calque|pt|es-MX|Ciudad de México}}。 ===發音=== {{pt-IPA|[x:sh]}} ===專有名詞=== {{pt-proper noun|f|head=[[cidade|Cidade]] [[do]] [[México]]}} # {{tcl|pt|墨西哥城|id=Q1489}} {{cln|pt|外名}} atxnm67p2sik9h6q75dq9w7vacaltzr Líbia 0 1022618 9759620 8103081 2026-05-14T23:13:46Z TongcyDai 53191 9759620 wikitext text/x-wiki {{also|libia|Libia|líbia|Líbía}} ==加泰羅尼亞語== {{wp|ca:}} ===發音=== * {{ca-IPA}} * {{audio|ca|LL-Q7026 (cat)-Millars-Líbia.wav|a=Valencia}} * {{audio|ca|LL-Q7026 (cat)-Marvives-Líbia.wav|a=Barcelona}} ===專有名詞=== {{ca-proper noun|f}} # {{tcl|ca|利比亞|id=Q1016}} ====相關詞彙==== * {{l|ca|libi}} ==匈牙利語== {{swp|hu:}} [[Image:LocationLibya.png|thumb|'''Líbia''']] ===發音=== * {{hu-IPA}} * {{hyphenation|hu|Lí|bia}} * {{rhymes|hu|jɒ|s=3}} ===專有名詞=== {{head|hu|專有名詞}} # {{tcl|hu|利比亞|id=Q1016|place_official=hu:Líbia Állam}} ====變格==== {{hu-infl-nom|Líbiá|o|n=sg}}{{hu-pos-tok|Líbiá|n=sg}} ====變格==== * {{l|hu|líbiai}} ===參見=== {{list:countries in Africa/hu}} ==葡萄牙語== {{wp|pt:}} [[Image:Flag of Libya.svg|thumb|Líbia]] ===發音=== {{pt-IPA}} * {{rhyme|pt|ibiɐ<s:3>|ibjɐ<s:2>}} * {{hmp|pt|líbia}} * {{hyph|pt|Lí|bi|a}} ===專有名詞=== {{pt-proper noun|f}} # {{tcl|pt|利比亞|id=Q1016}} ====相關詞彙==== * {{l|pt|líbio}} 8dze97ifpu8z03pt9k47mzops3yju5m 砒酸 0 1040124 9760154 8469384 2026-05-15T06:35:41Z Fglffer 55252 9760154 wikitext text/x-wiki ==漢語== {{zh-see|砒霜}} ===參考資料=== * {{R:nan:tdj|110719|p=670}} * {{R:nan:tdj|46806|p=670}} ==日語== {{ja-kanjitab|ひ|さん|yomi=kan,o|alt=ヒ酸}} {{swp|ja:ヒ酸}} ===詞源=== {{blend|ja|砒素|酸|tr1=hiso|tr2=san|t1=[[砷]]}}。 ===發音=== {{ja-pron|acc=0|ひさん|devm=1|acc_ref=DJR}} ===名詞=== {{ja-noun|ひさん}} # [[砷酸]] ===來源=== <references/> * {{R:Kanjipedia Kotoba|0005816700|<sup>▲</sup>砒酸}} {{topics|ja|酸|無機化合物}} ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=비산}} # {{hanja form of|비산}} pj5r7z471shbkidkj4yj626duysapra 守宮 0 1062469 9759387 8298359 2026-05-14T12:02:20Z Tony85poon 62011 /* 漢語 */ wiki 9759387 wikitext text/x-wiki ==漢語== {{zh-forms|s=守宫}} {{wiki}} ===發音=== {{zh-pron |m=shǒugōng |c=sau2 gung1 |mn=tp:siú-kiong |cat=n }} ===名詞=== {{head|zh|名詞}} # [[壁虎]] ====同義詞==== {{zh-dial|壁虎}} ====派生詞==== {{CJKV||しゅ%きゅう|j=守%宮|수궁}} {{zh-cat|蜥蜴}} ==日語== ===詞源1=== {{ja-kanjitab|yomi=irr|sort=やもり}} {{wikipedia|lang=ja|ヤモリ科}} {{wikipedia|lang=ja|ヤモリ下目}} {{rfe|ja|是否為熟字訓?也許對應{{ja-r|家守|やもり}}“看家”;對比{{ja-r|不知火|しらぬい}}}} ====發音==== {{ja-pron|やもり|acc=1|acc_ref=DJR,NHK}} ====替代寫法==== * {{ja-l|家守}} ====名詞==== {{ja-noun|やもり|ヤモリ}} # [[壁虎]] =====衍生詞===== * {{ja-r|トッケイ守宮|トッケイ ヤモリ}} ===詞源2=== {{ja-kanjitab|しゅ|きゅう|yomi=o}} ====發音==== {{ja-pron|しゅきゅう|acc=0|acc_ref=DJR}} ====名詞==== {{ja-noun|しゅきゅう}} # [[壁虎]] ===來源=== <references/> [[Category:日語 蜥蜴|やもり]] 34wxc1i02lm2kvwoae0zctsdn2858i8 贊比亞 0 1088469 9759421 8195809 2026-05-14T15:14:34Z TongcyDai 53191 9759421 wikitext text/x-wiki {{also|赞比亚}} ==漢語== {{zh-forms|s=赞比亚|gloss=-}} ===發音=== {{zh-pron |m=Zànbǐ亞 |c=zaan3 bei2 aa3 |mn=ml:Chàn-pí-a |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{sid|zh|Q953}}{{lb|zh|中國大陸}} {{place|zh|國家|r/南非|capital=盧薩卡|official=尚比亞共和國}} ====近義詞==== * {{qualifier|臺灣}} {{zh-l|尚比亞}} ====翻譯==== {{trans-top|id=Q953|country in Southern Africa}} * 南非語:{{t+|af|Zambië}} * 阿姆哈拉語:{{t|am|ዛምቢያ}} * 阿拉伯語:{{t+|ar|زَامْبِيَا|f|tr=zambiyā}} * 亞美尼亞語:{{t+|hy|Զամբիա}} * 阿斯圖里亞斯語:{{t+|ast|Zambia}} * 巴厘語:{{t|ban|Zambia}} * 白俄羅斯語:{{t|be|За́мбія|f}} * 孟加拉語:{{t+|bn|জাম্বিয়া}} * 伯塔維語:{{t|bew|Sambia}} * 布列塔尼語:{{t+|br|Zambia}} * 保加利亞語:{{t|bg|За́мбия|f}} * 緬甸語:{{t|my|ဇမ်ဘီယာ}} * 切羅基語:{{t|chr|ᏌᎻᏈᏯ}} * 齊切瓦語:{{t|ny|Zambia}} * 捷克語:{{t+|cs|Zambie|f}} * 丹麥語:{{t|da|Zambia}} * 荷蘭語:{{t+|nl|Zambia}} * 英語:{{t+|en|Zambia}} * 世界語:{{t+|eo|Zambio}} * 法羅語:{{t|fo|Sambia|n}} * 芬蘭語:{{t+|fi|Sambia}} * 法語:{{t+|fr|Zambie|f}} * 格魯吉亞語:{{t+|ka|ზამბია}} * 德語:{{t+|de|Sambia|n}} * 希臘語:{{t+|el|Ζάμπια|f}} * 豪薩語:{{t|ha|Zambiya}} * 印地語:{{t+|hi|ज़ाम्बिया}} * 匈牙利語:{{t+|hu|贊比亞}} * 印尼語:{{t+|id|贊比亞}} * 愛爾蘭語:{{t|ga|Saimbia|alt=an tSaimbia|f}} * 意大利語:{{t+|it|贊比亞|m}} * 日語:{{t+|ja|ザンビア|tr=Zanbia}} * 爪哇語:{{t|jv|贊比亞}} * 卡倫金語:{{t|kln|贊比亞}} * 卡姆巴語:{{t|kam|贊比亞}} * 哈薩克語:{{t+|kk|Замбия}} * 高棉語:{{t+|km|ហ្សំប៊ី}} * 基庫尤語:{{t|ki|贊比亞}} * 朝鮮語:{{t+|ko|^잠비아}} * 吉爾吉斯語:{{t+|ky|Замбия}} * 老撾語:{{t|lo|ຊຳບີ}} * 拉脫維亞語:{{t+|lv|Zambija|f}} * 立陶宛語:{{t+|lt|Zambija|f}} * 盧希亞語:{{t|luy|贊比亞}} * 盧歐語:{{t|luo|贊比亞}} * 馬其頓語:{{t+|mk|За́мбија|f}} * 馬拉雅拉姆語:{{t|ml|സാംബിയ}}、{{t|ml|ജംബിയ}} * 馬爾他語:{{t|mt|Żambja|alt=iż-Żambja}} * 毛利語:{{t|mi|Tāmipia}} * 梅魯語:{{t|mer|贊比亞}} * 蒙古語:{{t|mn|Замби}} * 諾曼語:{{t|nrf|贊比亞}} {{qualifier|澤西}} * 挪威語: *: 書面挪威語:{{t+|nb|贊比亞}} *: 新挪威語:{{t+|nn|贊比亞}} * 波斯語:{{t|fa|زامبیا|tr=zâmbiyâ}} * 波蘭語:{{t+|pl|贊比亞|f}} * 葡萄牙語:{{t+|pt|Zâmbia|f}} * 羅馬尼亞語:{{t+|ro|贊比亞|f}} * 俄語:{{t+|ru|За́мбия|f}} * 低地蘇格蘭語:{{t|sco|Zambie}} * 塞爾維亞-克羅地亞語:*: 西里爾字母:{{t|sh|Замбија|f}} *: 拉丁語:{{t+|sh|Zambija|f}} * 僧加羅語:{{t|si|සැම්බියා}} * 斯洛伐克語:{{t|sk|贊比亞|f}} * 斯洛文尼亞語:{{t+|sl|Zámbija|f}} * 西班牙語:{{t+|es|贊比亞|f}} * 巽他語:{{t|su|贊比亞}} * 斯瓦希里語:{{t+|sw|贊比亞}} * 瑞典語:{{t+|sv|贊比亞}} * 他加祿語:{{t|tl|Sambiya}} * 塔吉克語:{{t|tg|Замбия}} * 泰米爾語:{{t+|ta|சாம்பியா}}、{{t|ta|ஜம்பியா}} * 泰盧固語:{{t+|te|జాంబియా}} * 泰語:{{t+|th|แซมเบีย}} * 藏語:{{t|bo|ཛམ་བི་ཡ}} * 提格里尼亞語:{{t|ti|ዛምቢያ}} * 土耳其語:{{t+|tr|Zambiya}} * 烏克蘭語:{{t+|uk|За́мбія|f}} * 烏爾都語:{{t|ur|زامبیا|tr=zāmbiyā}} * 維吾爾語:{{t|ug|زامبىيە}} * 烏茲別克語:{{t+|uz|Zambiya}} * 越南語:{{t|vi|Dăm-bi-a}} * 約魯巴語:{{t|yo|Sáńbíà}} * 壯語:{{t|za|Canbijya}} {{trans-bottom}} bnp5h89j1sf3d60ll9u8ui890ml7now 9759422 9759421 2026-05-14T15:14:52Z TongcyDai 53191 9759422 wikitext text/x-wiki ==漢語== {{zh-forms|s=赞比亚|gloss=-}} ===發音=== {{zh-pron |m=Zànbǐ亞 |c=zaan3 bei2 aa3 |mn=ml:Chàn-pí-a |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{sid|zh|Q953}}{{lb|zh|中國大陸}} {{place|zh|國家|r/南非|capital=盧薩卡|official=尚比亞共和國}} ====近義詞==== * {{qualifier|臺灣}} {{zh-l|尚比亞}} ====翻譯==== {{trans-top|id=Q953|南部非洲國家}} * 南非語:{{t+|af|Zambië}} * 阿姆哈拉語:{{t|am|ዛምቢያ}} * 阿拉伯語:{{t+|ar|زَامْبِيَا|f|tr=zambiyā}} * 亞美尼亞語:{{t+|hy|Զամբիա}} * 阿斯圖里亞斯語:{{t+|ast|Zambia}} * 巴厘語:{{t|ban|Zambia}} * 白俄羅斯語:{{t|be|За́мбія|f}} * 孟加拉語:{{t+|bn|জাম্বিয়া}} * 伯塔維語:{{t|bew|Sambia}} * 布列塔尼語:{{t+|br|Zambia}} * 保加利亞語:{{t|bg|За́мбия|f}} * 緬甸語:{{t|my|ဇမ်ဘီယာ}} * 切羅基語:{{t|chr|ᏌᎻᏈᏯ}} * 齊切瓦語:{{t|ny|Zambia}} * 捷克語:{{t+|cs|Zambie|f}} * 丹麥語:{{t|da|Zambia}} * 荷蘭語:{{t+|nl|Zambia}} * 英語:{{t+|en|Zambia}} * 世界語:{{t+|eo|Zambio}} * 法羅語:{{t|fo|Sambia|n}} * 芬蘭語:{{t+|fi|Sambia}} * 法語:{{t+|fr|Zambie|f}} * 格魯吉亞語:{{t+|ka|ზამბია}} * 德語:{{t+|de|Sambia|n}} * 希臘語:{{t+|el|Ζάμπια|f}} * 豪薩語:{{t|ha|Zambiya}} * 印地語:{{t+|hi|ज़ाम्बिया}} * 匈牙利語:{{t+|hu|贊比亞}} * 印尼語:{{t+|id|贊比亞}} * 愛爾蘭語:{{t|ga|Saimbia|alt=an tSaimbia|f}} * 意大利語:{{t+|it|贊比亞|m}} * 日語:{{t+|ja|ザンビア|tr=Zanbia}} * 爪哇語:{{t|jv|贊比亞}} * 卡倫金語:{{t|kln|贊比亞}} * 卡姆巴語:{{t|kam|贊比亞}} * 哈薩克語:{{t+|kk|Замбия}} * 高棉語:{{t+|km|ហ្សំប៊ី}} * 基庫尤語:{{t|ki|贊比亞}} * 朝鮮語:{{t+|ko|^잠비아}} * 吉爾吉斯語:{{t+|ky|Замбия}} * 老撾語:{{t|lo|ຊຳບີ}} * 拉脫維亞語:{{t+|lv|Zambija|f}} * 立陶宛語:{{t+|lt|Zambija|f}} * 盧希亞語:{{t|luy|贊比亞}} * 盧歐語:{{t|luo|贊比亞}} * 馬其頓語:{{t+|mk|За́мбија|f}} * 馬拉雅拉姆語:{{t|ml|സാംബിയ}}、{{t|ml|ജംബിയ}} * 馬爾他語:{{t|mt|Żambja|alt=iż-Żambja}} * 毛利語:{{t|mi|Tāmipia}} * 梅魯語:{{t|mer|贊比亞}} * 蒙古語:{{t|mn|Замби}} * 諾曼語:{{t|nrf|贊比亞}} {{qualifier|澤西}} * 挪威語: *: 書面挪威語:{{t+|nb|贊比亞}} *: 新挪威語:{{t+|nn|贊比亞}} * 波斯語:{{t|fa|زامبیا|tr=zâmbiyâ}} * 波蘭語:{{t+|pl|贊比亞|f}} * 葡萄牙語:{{t+|pt|Zâmbia|f}} * 羅馬尼亞語:{{t+|ro|贊比亞|f}} * 俄語:{{t+|ru|За́мбия|f}} * 低地蘇格蘭語:{{t|sco|Zambie}} * 塞爾維亞-克羅地亞語:*: 西里爾字母:{{t|sh|Замбија|f}} *: 拉丁語:{{t+|sh|Zambija|f}} * 僧加羅語:{{t|si|සැම්බියා}} * 斯洛伐克語:{{t|sk|贊比亞|f}} * 斯洛文尼亞語:{{t+|sl|Zámbija|f}} * 西班牙語:{{t+|es|贊比亞|f}} * 巽他語:{{t|su|贊比亞}} * 斯瓦希里語:{{t+|sw|贊比亞}} * 瑞典語:{{t+|sv|贊比亞}} * 他加祿語:{{t|tl|Sambiya}} * 塔吉克語:{{t|tg|Замбия}} * 泰米爾語:{{t+|ta|சாம்பியா}}、{{t|ta|ஜம்பியா}} * 泰盧固語:{{t+|te|జాంబియా}} * 泰語:{{t+|th|แซมเบีย}} * 藏語:{{t|bo|ཛམ་བི་ཡ}} * 提格里尼亞語:{{t|ti|ዛምቢያ}} * 土耳其語:{{t+|tr|Zambiya}} * 烏克蘭語:{{t+|uk|За́мбія|f}} * 烏爾都語:{{t|ur|زامبیا|tr=zāmbiyā}} * 維吾爾語:{{t|ug|زامبىيە}} * 烏茲別克語:{{t+|uz|Zambiya}} * 越南語:{{t|vi|Dăm-bi-a}} * 約魯巴語:{{t|yo|Sáńbíà}} * 壯語:{{t|za|Canbijya}} {{trans-bottom}} kh9zuc44ae0wae1fyguvegtix91mt9l 9759424 9759422 2026-05-14T15:15:49Z TongcyDai 53191 9759424 wikitext text/x-wiki ==漢語== {{zh-forms|s=赞比亚|gloss=-}} ===發音=== {{zh-pron |m=Zànbǐ亞 |c=zaan3 bei2 aa3 |mn=ml:Chàn-pí-a |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{sid|zh|Q953}}{{lb|zh|中國大陸}} {{place|zh|國家|r/南非|capital=盧薩卡|official=贊比亞共和國}} ====近義詞==== * {{qualifier|臺灣}} {{zh-l|尚比亞}} ====翻譯==== {{trans-top|id=Q953|南部非洲國家}} * 南非語:{{t+|af|Zambië}} * 阿姆哈拉語:{{t|am|ዛምቢያ}} * 阿拉伯語:{{t+|ar|زَامْبِيَا|f|tr=zambiyā}} * 亞美尼亞語:{{t+|hy|Զամբիա}} * 阿斯圖里亞斯語:{{t+|ast|Zambia}} * 巴厘語:{{t|ban|Zambia}} * 白俄羅斯語:{{t|be|За́мбія|f}} * 孟加拉語:{{t+|bn|জাম্বিয়া}} * 伯塔維語:{{t|bew|Sambia}} * 布列塔尼語:{{t+|br|Zambia}} * 保加利亞語:{{t|bg|За́мбия|f}} * 緬甸語:{{t|my|ဇမ်ဘီယာ}} * 切羅基語:{{t|chr|ᏌᎻᏈᏯ}} * 齊切瓦語:{{t|ny|Zambia}} * 捷克語:{{t+|cs|Zambie|f}} * 丹麥語:{{t|da|Zambia}} * 荷蘭語:{{t+|nl|Zambia}} * 英語:{{t+|en|Zambia}} * 世界語:{{t+|eo|Zambio}} * 法羅語:{{t|fo|Sambia|n}} * 芬蘭語:{{t+|fi|Sambia}} * 法語:{{t+|fr|Zambie|f}} * 格魯吉亞語:{{t+|ka|ზამბია}} * 德語:{{t+|de|Sambia|n}} * 希臘語:{{t+|el|Ζάμπια|f}} * 豪薩語:{{t|ha|Zambiya}} * 印地語:{{t+|hi|ज़ाम्बिया}} * 匈牙利語:{{t+|hu|贊比亞}} * 印尼語:{{t+|id|贊比亞}} * 愛爾蘭語:{{t|ga|Saimbia|alt=an tSaimbia|f}} * 意大利語:{{t+|it|贊比亞|m}} * 日語:{{t+|ja|ザンビア|tr=Zanbia}} * 爪哇語:{{t|jv|贊比亞}} * 卡倫金語:{{t|kln|贊比亞}} * 卡姆巴語:{{t|kam|贊比亞}} * 哈薩克語:{{t+|kk|Замбия}} * 高棉語:{{t+|km|ហ្សំប៊ី}} * 基庫尤語:{{t|ki|贊比亞}} * 朝鮮語:{{t+|ko|^잠비아}} * 吉爾吉斯語:{{t+|ky|Замбия}} * 老撾語:{{t|lo|ຊຳບີ}} * 拉脫維亞語:{{t+|lv|Zambija|f}} * 立陶宛語:{{t+|lt|Zambija|f}} * 盧希亞語:{{t|luy|贊比亞}} * 盧歐語:{{t|luo|贊比亞}} * 馬其頓語:{{t+|mk|За́мбија|f}} * 馬拉雅拉姆語:{{t|ml|സാംബിയ}}、{{t|ml|ജംബിയ}} * 馬爾他語:{{t|mt|Żambja|alt=iż-Żambja}} * 毛利語:{{t|mi|Tāmipia}} * 梅魯語:{{t|mer|贊比亞}} * 蒙古語:{{t|mn|Замби}} * 諾曼語:{{t|nrf|贊比亞}} {{qualifier|澤西}} * 挪威語: *: 書面挪威語:{{t+|nb|贊比亞}} *: 新挪威語:{{t+|nn|贊比亞}} * 波斯語:{{t|fa|زامبیا|tr=zâmbiyâ}} * 波蘭語:{{t+|pl|贊比亞|f}} * 葡萄牙語:{{t+|pt|Zâmbia|f}} * 羅馬尼亞語:{{t+|ro|贊比亞|f}} * 俄語:{{t+|ru|За́мбия|f}} * 低地蘇格蘭語:{{t|sco|Zambie}} * 塞爾維亞-克羅地亞語:*: 西里爾字母:{{t|sh|Замбија|f}} *: 拉丁語:{{t+|sh|Zambija|f}} * 僧加羅語:{{t|si|සැම්බියා}} * 斯洛伐克語:{{t|sk|贊比亞|f}} * 斯洛文尼亞語:{{t+|sl|Zámbija|f}} * 西班牙語:{{t+|es|贊比亞|f}} * 巽他語:{{t|su|贊比亞}} * 斯瓦希里語:{{t+|sw|贊比亞}} * 瑞典語:{{t+|sv|贊比亞}} * 他加祿語:{{t|tl|Sambiya}} * 塔吉克語:{{t|tg|Замбия}} * 泰米爾語:{{t+|ta|சாம்பியா}}、{{t|ta|ஜம்பியா}} * 泰盧固語:{{t+|te|జాంబియా}} * 泰語:{{t+|th|แซมเบีย}} * 藏語:{{t|bo|ཛམ་བི་ཡ}} * 提格里尼亞語:{{t|ti|ዛምቢያ}} * 土耳其語:{{t+|tr|Zambiya}} * 烏克蘭語:{{t+|uk|За́мбія|f}} * 烏爾都語:{{t|ur|زامبیا|tr=zāmbiyā}} * 維吾爾語:{{t|ug|زامبىيە}} * 烏茲別克語:{{t+|uz|Zambiya}} * 越南語:{{t|vi|Dăm-bi-a}} * 約魯巴語:{{t|yo|Sáńbíà}} * 壯語:{{t|za|Canbijya}} {{trans-bottom}} n9zsxwoffonm4gxy1jhcxoqm9jn1ytb 玄參 0 1089420 9759537 8173403 2026-05-14T22:19:16Z P1ayer 5118 內容擴充 9759537 wikitext text/x-wiki ==漢語== {{zh-forms|s=玄参|t2=玄蔘|alt=玄薓}} {{zh-wp}} ===發音=== {{zh-pron |m=xuánshēn |c=jyun4 sam1 |mn=goân-sim/hiân-som |cat=n }} ===名詞=== {{head|zh|名詞}} # 玄參科植物{{w|玄參}}({{taxlink|Scrophularia ningpoensis|species}}),多年生[[草本植物]] # {{lb|zh|TCM}} 上述植物的乾燥根,作為[[藥材]]有清熱涼血、瀉火解毒、滋陰之效 ====近義詞==== * {{zh-l|元參}} ====派生詞==== {{col3|zh|黑玄參}} agbpyqb14144l8fl53gpricic9nfcps 玄明粉 0 1089669 9759431 6920146 2026-05-14T15:49:10Z P1ayer 5118 內容擴充 9759431 wikitext text/x-wiki ==漢語== {{zh-forms}} ===發音=== {{zh-pron |m=xuánmíngfěn |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|TCM}} 硫酸鹽礦物{{w|芒硝}} (Na<sub>2</sub>SO<sub>4</sub>·10H<sub>2</sub>O) 風化脫水製成,主要成分為{{w|無水芒硝|無水硫酸鈉}}(Na<sub>2</sub>SO<sub>4</sub>),作為[[藥材]]有瀉熱通便、軟堅散結、清熱解毒、清肺解暑、消積和胃之效 02yey5eiql70twrlg9750r05foj1giy 9759717 9759431 2026-05-15T02:35:27Z Sayonzei 40728 /* 漢語 */ 9759717 wikitext text/x-wiki ==漢語== {{zh-forms}} ===發音=== {{zh-pron |m=xuánmíngfěn |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|TCM}} 硫酸鹽礦物[[芒硝]] (Na<sub>2</sub>SO<sub>4</sub>·10H<sub>2</sub>O) 風化脫水製成,主要成分為{{w|無水芒硝|無水硫酸鈉}}(Na<sub>2</sub>SO<sub>4</sub>),作為[[藥材]]有瀉熱通便、軟堅散結、清熱解毒、清肺解暑、消積和胃之效 0kjyx67yhq908evqfo6fnchagd3gw6n 異象 0 1116072 9760140 8780259 2026-05-15T05:21:06Z Apisite 85347 /* 漢語 */ + 莆仙語 9760140 wikitext text/x-wiki ==漢語== {{zh-forms|s=异象}} ===讀音=== {{zh-pron |m=yìxiàng |c=ji6 zoeng6 |h=pfs=yi-siong |mn=tw:ī-siōng/twv:īⁿ-siōng |px=pt:i5 *syorng5/xy:i5 *syoeng5 |cat=n }} ===釋義=== # {{lb|zh|religion}} {{rfdef|zh}} ===翻譯=== {{翻译-顶}} * 俄語:[[странный]] [[вид]], [[необычная]] [[внешность]]; [[странное]] [[явление]], [[чудо]] {{翻译-底}} 3zc9dabtcseoihtn5a0xdygpqo9fr09 9760155 9760140 2026-05-15T06:39:54Z Fglffer 55252 9760155 wikitext text/x-wiki ==漢語== {{zh-forms|s=异象}} {{wp|zh:}} ===發音=== {{zh-pron |m=yìxiàng |c=ji6 zoeng6 |h=pfs=yi-siong |mn=tw:ī-siōng/twv:īⁿ-siōng |px=pt:i5 *syorng5/xy:i5 *syoeng5 |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|religion}} [[傳達]][[啟示]]的[[超自然]][[現象]] ====派生詞==== {{CJKV|||이상}} ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=이상}} # {{hanja form of|이상}} m83rn0xc2p3v2omctw28iyi3n50fb32 9760175 9760155 2026-05-15T08:24:31Z Sayonzei 40728 /* 派生詞 */ 9760175 wikitext text/x-wiki ==漢語== {{zh-forms|s=异象}} {{wp|zh:}} ===發音=== {{zh-pron |m=yìxiàng |c=ji6 zoeng6 |h=pfs=yi-siong |mn=tw:ī-siōng/twv:īⁿ-siōng |px=pt:i5 *syorng5/xy:i5 *syoeng5 |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|religion}} [[傳達]][[啟示]]的[[超自然]][[現象]] ====派生詞==== {{CJKV||j=異%象|い%しょう|이상}} ==日語== {{ja-kanjitab|い|しょう|yomi=o}} ===發音=== {{ja-pron|いしょう|acc=0|acc_ref=NKD2}} ===名詞=== {{ja-noun|いしょう|hhira=いしやう}} # [[不可思議]]的[[現象]],[[奇妙]]的現象 ===參考資料=== <references/> ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=이상}} # {{hanja form of|이상}} kwhjnv4i1mz1cj49butlx60prp2cha6 南投 0 1150936 9759396 7764131 2026-05-14T12:54:30Z TongcyDai 53191 9759396 wikitext text/x-wiki ==漢語== {{zh-forms|gloss=-}} {{zh-wp|zh|yue|lzh|gan|hak:Nàm-thèu-yen|cdo:Nàng-dàu|nan:Lâm-tâu}} [[File:Taiwan ROC political division map Nantou County.svg|thumb|]] ===詞源=== 來自{{bor|zh|ppu|Ramtau}}。 ===發音=== {{zh-pron |m=Nántóu |c=naam4 tau4 |h=pfs=Nàm-thèu |md=Nàng-dàu |mn=tw:Lâm-tâu/xm,zz:Lâm-tô͘/qz:Lâm-tiô |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{zh-div|縣}} {{sid|zh|Q82357}}{{place|zh|縣|中部|c/臺灣}} # {{zh-div|市}} {{sid|zh|Q715171}}{{place|zh|市|county/南投|c/臺灣}} {{zh-cat|臺灣城市}} ==日語== {{ja-kanjitab|なん|とう|yomi=o}} ===專有名詞=== {{ja-pos|proper|なんとう}} # {{place|ja|縣/市|c/臺灣}} {{C|ja|城市|臺灣}} dhh2arccqv3hib5db4btdlh8cr67v77 9759397 9759396 2026-05-14T12:54:48Z TongcyDai 53191 9759397 wikitext text/x-wiki ==漢語== {{zh-forms|gloss=-}} {{zh-wp|zh|yue|lzh|gan|hak:Nàm-thèu-yen|cdo:Nàng-dàu|nan:Lâm-tâu}} [[File:Taiwan ROC political division map Nantou County.svg|thumb|]] ===詞源=== 來自{{bor|zh|ppu|Ramtau}}。 ===發音=== {{zh-pron |m=Nántóu |c=naam4 tau4 |h=pfs=Nàm-thèu |md=Nàng-dàu |mn=tw:Lâm-tâu/xm,zz:Lâm-tô͘/qz:Lâm-tiô |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q82357}}{{zh-div|縣}} {{place|zh|縣|中部|c/臺灣}} # {{sid|zh|Q715171}}{{zh-div|市}} {{place|zh|市|county/南投|c/臺灣}} {{zh-cat|臺灣城市}} ==日語== {{ja-kanjitab|なん|とう|yomi=o}} ===專有名詞=== {{ja-pos|proper|なんとう}} # {{place|ja|縣/市|c/臺灣}} {{C|ja|城市|臺灣}} gih5slv4nugwz7i37qkqn7urkbzvsas 9759398 9759397 2026-05-14T12:56:52Z TongcyDai 53191 9759398 wikitext text/x-wiki ==漢語== {{zh-forms|gloss=-}} {{zh-wp|zh|yue|lzh|gan|hak:Nàm-thèu-yen|cdo:Nàng-dàu|nan:Lâm-tâu}} [[File:Taiwan ROC political division map Nantou County.svg|thumb|]] ===詞源=== 來自{{bor|zh|ppu|Ramtau}}。 ===發音=== {{zh-pron |m=Nántóu |c=naam4 tau4 |h=pfs=Nàm-thèu |md=Nàng-dàu |mn=tw:Lâm-tâu/xm,zz:Lâm-tô͘/qz:Lâm-tiô |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q82357}}{{zh-div|縣}} {{place|zh|縣|中部|c/臺灣}} # {{sid|zh|Q715171}}{{zh-div|市}} {{place|zh|市/行政中心|county/南投|c/臺灣}} {{zh-cat|臺灣城市}} ==日語== {{ja-kanjitab|なん|とう|yomi=o}} ===專有名詞=== {{ja-pos|proper|なんとう}} # {{place|ja|縣/市|c/臺灣}} {{C|ja|城市|臺灣}} raay85k06v6refc8tiysjc6itypqdfd 9759399 9759398 2026-05-14T13:00:26Z TongcyDai 53191 9759399 wikitext text/x-wiki ==漢語== {{zh-forms|gloss=-}} {{zh-wp|zh|yue|lzh|gan|hak:Nàm-thèu-yen|cdo:Nàng-dàu|nan:Lâm-tâu}} [[File:Taiwan ROC political division map Nantou County.svg|thumb|]] ===詞源=== 來自{{bor|zh|ppu|Ramtau}}。 ===發音=== {{zh-pron |m=Nántóu |c=naam4 tau4 |h=pfs=Nàm-thèu;hrs=h:nam teu |md=Nàng-dàu |mn=tw:Lâm-tâu/xm,zz:Lâm-tô͘/qz:Lâm-tiô |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q82357}}{{zh-div|縣}} {{place|zh|縣|中部|c/臺灣}} # {{sid|zh|Q715171}}{{zh-div|市}} {{place|zh|市/行政中心|county/南投|c/臺灣}} ==日語== {{ja-kanjitab|なん|とう|yomi=o}} ===專有名詞=== {{ja-pos|proper|なんとう}} # {{tcl|ja|南投|id=Q82357,Q715171}} cioxb5eknk7itunfiafw76zrb288ste 墨西哥城 0 1168073 9759447 6969885 2026-05-14T17:11:57Z TongcyDai 53191 9759447 wikitext text/x-wiki ==漢語== {{zh-forms|type=31|Mexico}} ===發音=== {{zh-pron |m=Mòxīgēchéng |c=mak6 sai1 go1 sing4 |cat=propn }} ===專有名詞=== {{head|zh|專有名詞}} # {{senseid|zh|Q1489}}{{place|zh|caplc|c/墨西哥}} ====近義詞==== * {{zh-l|墨城}} * {{zh-l|墨京}} ====翻譯==== {{trans-top|墨西哥的首都}} * 南非語:{{t|af|Meksikostad}} * 阿爾巴尼亞語:{{t|sq|Meksiko}} * 阿穆茲戈語: *: 格雷羅阿穆茲戈語:{{t|amu|Sndá'}} * 阿拉伯語:{{t|ar|مَكْسِيكُو|m}}、{{t|ar|مَدِينَة مَكْسِيكُو|f}}、{{t|ar|مِكْسِيكُو سِيتِي|m}} * 亞美尼亞語:{{t|hy|Մեխիկո}} * 阿薩姆語:{{t|as|মেক্সিকো চহৰ}} * 阿斯圖里亞斯語:{{t+|ast|Ciudá de México}}、{{t+|ast|Ciudá de Méxicu}} * 阿塞拜疆語:{{t|az|Mexiko}} * 巴斯克語:{{t|eu|Mexiko Hiria}} * 白俄羅斯語:{{t|be|Ме́хіка|m}}、{{t|be|Мэ́хіка|m}} * 布列塔尼語:{{t+|br|Mec'hiko}} * 保加利亞語:{{t+|bg|Ме́ксико|m}} * 加泰羅尼亞語:{{t|ca|ciutat de Mèxic|f}}、{{t+|ca|Mèxic|m}} * 捷克語:{{t+|cs|Mexiko|n}} * 丹麥語:{{t|da|Mexico City}} * 荷蘭語:{{t+|nl|Mexico|n}}、{{t|nl|Mexico-Stad|n}} * 英語:{{t+|en|Mexico City}} * 世界語:{{t+|eo|Meksikurbo}} * 愛沙尼亞語:{{t+|et|México}} * 法拉法拉語:{{t|gur|Mehiko-gãn}} * 法羅語:{{t|fo|Meksikobýur|m}} * 芬蘭語:{{t+|fi|México}}、{{t+|fi|Mexico City}} * 法語:{{t+|fr|Mexico|f}} {{qualifier|cf. {{t|fr|Ville de Mexico|f}}}} * 加利西亞語:{{t+|gl|Cidade de México|f}} * 格魯吉亞語:{{t|ka|ქალაქი მექსიკა}}、{{t|ka|მეხიკო}} * 德語:{{t+|de|Mexiko-Stadt|n}}、{{t+|de|Mexiko|n}} {{qualifier|過時}} * 希臘語:{{t|el|Πόλη του Μεξικό|f}} * 希伯來語:{{t|he|מקסיקו סיטי|f|tr=meksiko siti}} * 印地語:{{t|hi|मेक्सिको नगर}} * 匈牙利語:{{t+|hu|Mexikóváros}} * 因特語:{{t+|ia|Mexico}}、{{t|ia|citate de Mexico}} * 愛爾蘭語:{{t|ga|Cathair Mheicsiceo|f}} * 意大利語:{{t+|it|Città del Messico|f}} * 日語:{{t|ja|メキシコ市|tr=Mekishiko-shi}}、{{t+|ja|メキシコシティ|tr=Mekishiko-shiti}} * 哈薩克語:{{t|kk|Мехико}} * 朝鮮語:{{t|ko|^멕시코시티}} * 吉爾吉斯語:{{t|ky|Мехико}} * 拉科塔語:{{t|lkt|Spaóla Otȟúŋwahe|lit=Mexican's city}} * 拉丁語:{{t|la|Mexicopolis}}、{{t|la|Mexicum}} * 拉脫維亞語:{{t|lv|Mehiko}} * 立陶宛語:{{t|lt|Meksikas|m}} * 馬其頓語:{{t|mk|Mexico|m|alt=Мексико}} * 馬來語:{{t|ms|Kota Mexico}} * 馬爾他語:{{t|mt|Belt tal-Messiku|alt=il-Belt tal-Messiku}} * 馬特拉爾辛卡語:{{t|mat|Imtojáti}} * 米斯特克語支: *: 阿爾科紹卡米斯特克語:{{t|xta|Kǒ'yo}} * 納瓦特爾語: *: 中瓦斯特卡納瓦特爾語:{{t|nch|Mexkoaltepetl}} *: 中納瓦特爾語:{{t|nhn|Altepetl Mexihco}} *: 古典納瓦特爾語:{{t|nci|Altepetl Mexihco}} *: 西瓦斯特卡納瓦特爾語:{{t|nhw|Mexkoaltepetl}} * 納瓦霍語:{{t|nv|Naakaii Bikin Haalʼá}} * 挪威語:*: 書面挪威語:{{t|nb|Mexico by}} *: 新挪威語:{{t|nn|Mexico by}} * 波斯語:{{t|fa|مکزیکوسیتی|tr=mekziko-siti}} * 波蘭語:{{t+|pl|Meksyk|m-in}}、{{t|pl|Miasto Meksyk|n}} * 葡萄牙語:{{t+|pt|México|m}}、{{t+|pt|Cidade do México|f}} * 羅馬尼亞語:{{t+|ro|Mexico}} * 俄語:{{t+|ru|Ме́хико|m-in}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Мексико}}、{{t|sh|Мексико Сити|m}} *: 拉丁字母:{{t+|sh|Meksiko}}、{{t|sh|Meksiko Siti|m}} * 西西里語:{{t|scn|Cità dû Mèssicu|f}} * 斯洛伐克語:{{t|sk|Mexiko|n}} * 斯洛文尼亞語:{{t|sl|Meksiko|m}} * 西班牙語:{{t+|es|México|m}}、{{t+|es|Ciudad de México|f}} * 斯瓦希里語:{{t|sw|mji wa Meksiko}} * 瑞典語:{{t+|sv|Mexico City|n}} * 他加祿語:{{t|tl|Lungsod ng Mehiko}} * 塔吉克語:{{t|tg|Мехико}} * 泰語:{{t|th|เม็กซิโกซิตี้|tr=mék-sí-goo-sí-dtii}} * 土耳其語:{{t|tr|Meksika Kenti}}、{{t+|tr|Meksika Şehri}}、{{t+|tr|Meksiko}} * 土庫曼語:{{t|tk|Mehiko}} * 烏克蘭語:{{t+|uk|Ме́хіко|m}} * 烏茲別克語:{{t+|uz|Mexiko}} {{trans-bottom}} ps7kzdqc6j2nu6lz3hihvu2bxymuzkw 對沖基金 0 1183034 9759442 6975751 2026-05-14T16:45:52Z P1ayer 5118 內容擴充 9759442 wikitext text/x-wiki ==漢語== {{zh-forms|s=对冲基金|type=22}} {{zh-wp}} ===讀音=== {{zh-pron |m=duìchōng jījīn |c=deoi3 cung1 gei1 gam1 |cat=n }} ===名詞=== {{head|zh|名詞}} # {{zh-alt-name|避險基金}} ===翻譯=== {{翻譯-頂}} * {{en}}:hedge fund; {{翻譯-底}} {{C|zh|金融|股票市場}} 4wnu3vzh9edkej5smi2k7uqlh8iu7fy 9759718 9759442 2026-05-15T02:36:38Z Sayonzei 40728 9759718 wikitext text/x-wiki ==漢語== {{zh-forms|s=对冲基金|type=22}} {{zh-wp}} ===發音=== {{zh-pron |m=duìchōng jījīn |c=deoi3 cung1 gei1 gam1 |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|金融}} 由金融[[期貨]]、金融[[選擇權]]等[[衍生]]性金融[[商品]]與金融[[組織]][[結合]]後,以[[盈利]]為目的的金融基金 #: {{syn|zh|避險基金}} ====翻譯==== {{trans-top|金融基金}} * 保加利亞語:{{t|bg|хедж фонд|m}} * 荷蘭語:{{t+|nl|hedgefonds|n}} * 英語:{{t+|en|hedge fund}} * 芬蘭語:{{t|fi|hedge-rahasto}}、{{t|fi|vipurahasto}}、{{t|fi|suojausrahasto}} * 法語:{{t+|fr|fonds spéculatif|m}} * 格魯吉亞語:{{t|ka|ჰეჯ-ფონდი}} * 德語:{{t+|de|Hedgefonds|m}} * 冰島語:{{t|is|vogunarsjóður|m}} * 日語:{{t|ja|ヘッジファンド|tr=hejji fando}} * 挪威語:{{t|no|hekkefond|n}} * 俄語:{{t+|ru|хедж-фонд|m}} * 西班牙語:{{t|es|fondo de cobertura|m}} * 瑞典語:{{t+|sv|hedgefond|c}} {{trans-bottom}} {{C|zh|股票市場}} bb0gokpla9vhc3q1m6rwti1e8487u78 新北 0 1227523 9759402 8814769 2026-05-14T13:56:21Z TongcyDai 53191 9759402 wikitext text/x-wiki ==漢語== {{zh-forms|2=short for {{zh-l|*臺北}}}} {{zh-wp|zh|yue|lzh:新北市|hak:Sîn-pet-sṳ|cdo:Sĭng-báe̤k|nan:Sin-pak|wuu:新北市}} [[File:Taiwan ROC political division map New Taipei City.svg|thumb|]] ===詞源=== {{l|zh|新}} + {{l|zh|臺北}}。 ===發音=== {{zh-pron |m=Xīnběi |c=san1 bak1 |h=pfs=Sîn-pet |md=Sĭng-báe̤k |mn=Sin-pak |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q244898}}{{zh-div|市}} {{place|zh|直轄市|北部|c/臺灣}} ====同義詞==== * {{qualifier|舊名}} {{zh-l|[[臺北]][[縣]]}} ====派生詞==== {{CJKV||j=新%北|^しん%ほく|^신북|Tân Bắc}} '''其他''': * {{desc|bor=y|en|New Taipei}} * {{desc|bor=y|ko|신베이}} ====翻譯==== {{trans-top|位於臺灣北部的直轄市}} * 南非語:{{t|af|Nieu-Taipei}} * 捷克語:{{t|cs|Nová Tchaj-pej|f}} * 英語:{{t+|en|New Taipei}} * 法語:{{t|fr|Nouveau Taipei|f}} * 德語:{{t|de|Neu-Taipeh|n}} * 印尼語:{{t|id|Taipei Baru}} * 日語:{{t|ja|新北|tr=しんほく, Shinhoku}} * 朝鮮語:{{t|ko|신베이시}} * 越南語:{{t|vi|Tân Bắc}} ({{t|vi|新北}}) {{trans-bottom}} ==日語== {{ja-kanjitab|しん|ほく|yomi=o}} ===專有名詞=== {{ja-pos|proper|しんほく}} # {{place|ja|直轄市|p/臺灣|c/中華民國}} ==朝鮮語== {{ko-hanjatab}} ===專有名詞=== {{ko-proper noun|hangeul=신북|rv=Sinbuk}} # {{hanja form of|신북|}} ==越南語== {{vi-hantutab}} ===專有名詞=== {{vi-proper noun|sc=Hani}} # {{han tu form of|Tân Bắc|}} bw26osmsyc4lwl8442xlllsn65ri5yb 9759403 9759402 2026-05-14T13:57:24Z TongcyDai 53191 9759403 wikitext text/x-wiki ==漢語== {{zh-forms|2=short for {{zh-l|*臺北}}}} {{zh-wp|zh|yue|lzh:新北市|hak:Sîn-pet-sṳ|cdo:Sĭng-báe̤k|nan:Sin-pak|wuu:新北市}} [[File:Taiwan ROC political division map New Taipei City.svg|thumb|]] ===詞源=== {{l|zh|新}} + {{l|zh|臺北}}。 ===發音=== {{zh-pron |m=Xīnběi |c=san1 bak1 |h=pfs=Sîn-pet |md=Sĭng-báe̤k |mn=Sin-pak |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q244898}}{{zh-div|市}} {{place|zh|special municipality|北部|c/臺灣}} ====同義詞==== * {{qualifier|舊名}} {{zh-l|[[臺北]][[縣]]}} ====派生詞==== {{CJKV||j=新%北|^しん%ほく|^신북|Tân Bắc}} '''其他''': * {{desc|bor=y|en|New Taipei}} * {{desc|bor=y|ko|신베이}} ====翻譯==== {{trans-top|位於臺灣北部的直轄市}} * 南非語:{{t|af|Nieu-Taipei}} * 捷克語:{{t|cs|Nová Tchaj-pej|f}} * 英語:{{t+|en|New Taipei}} * 法語:{{t|fr|Nouveau Taipei|f}} * 德語:{{t|de|Neu-Taipeh|n}} * 印尼語:{{t|id|Taipei Baru}} * 日語:{{t|ja|新北|tr=しんほく, Shinhoku}} * 朝鮮語:{{t|ko|신베이시}} * 越南語:{{t|vi|Tân Bắc}} ({{t|vi|新北}}) {{trans-bottom}} ==日語== {{ja-kanjitab|しん|ほく|yomi=o}} ===專有名詞=== {{ja-pos|proper|しんほく}} # {{place|ja|直轄市|p/臺灣|c/中華民國}} ==朝鮮語== {{ko-hanjatab}} ===專有名詞=== {{ko-proper noun|hangeul=신북|rv=Sinbuk}} # {{hanja form of|신북|}} ==越南語== {{vi-hantutab}} ===專有名詞=== {{vi-proper noun|sc=Hani}} # {{han tu form of|Tân Bắc|}} 2dlupqdtu42f8vnt4hkgi3kyu9o1hjf 新竹 0 1228618 9759405 7768623 2026-05-14T14:04:29Z TongcyDai 53191 9759405 wikitext text/x-wiki ==漢語== {{zh-forms}} {{zh-wp|zh|yue|lzh|cdo:Sĭng-dé̤ṳk|nan:Sin-tek}} [[File:Taiwan ROC political division map Hsinchu County.svg|thumb|]] ===詞源=== 來自{{l|zh|新}} + {{l|zh|竹塹}},源自1878年[[:w:臺灣清治時期|清治臺灣]]的新政改革。新竹[[轄區]]包括{{w|竹塹堡}}週遭[[腹地]]。 ===發音=== {{zh-pron |m=Xīnzhú |c=san1 zuk1 |h=pfs=Sîn-chuk |md=Sĭng-dé̤ṳk |mn=tw:Sin-tek/xm,qz,zz:Sin-tiok |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q249994}}{{zh-div|市}} {{place|en|city|西北部|c/臺灣}} # {{sid|zh|Q74054}}{{zh-div|縣}} {{place|en|county|西北部|c/臺灣}} ====同義詞==== * {{zh-l|風城}} ====派生詞==== * {{desc|bor=1|en|Hsinchu}}, {{l|en|Hsin-chu}}, {{l|en|Xinzhu}} {{zh-cat|臺灣城市}} ==日語== {{ja-kanjitab|しん|ちく|yomi=o}} ===專有名詞=== {{ja-pos|proper|しんちく}} # {{place|ja|市/和/縣|西北部|c/臺灣}} [[Category:日語 城市|しんちく]] oz3szq80i26znksqoz9ay2aplb7oymd 9759406 9759405 2026-05-14T14:07:35Z TongcyDai 53191 9759406 wikitext text/x-wiki ==漢語== {{zh-forms}} {{zh-wp|zh|yue|lzh|cdo:Sĭng-dé̤ṳk|nan:Sin-tek}} [[File:Taiwan ROC political division map Hsinchu County.svg|thumb|]] ===詞源=== 來自{{l|zh|新}} + {{l|zh|竹塹}},源自1878年[[:w:臺灣清治時期|清治臺灣]]的新政改革。新竹[[轄區]]包括{{w|竹塹堡}}週遭[[腹地]]。 ===發音=== {{zh-pron |m=Xīnzhú |c=san1 zuk1 |h=pfs=Sîn-chuk |md=Sĭng-dé̤ṳk |mn=tw:Sin-tek/xm,qz,zz:Sin-tiok |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q249994}}{{zh-div|市}} {{place|en|city|西北部|c/臺灣}} # {{sid|zh|Q74054}}{{zh-div|縣}} {{place|en|county|西北部|c/臺灣}} ====同義詞==== * {{zh-l|風城}} ====派生詞==== * {{desc|bor=1|en|Hsinchu}}, {{l|en|Hsin-chu}}, {{l|en|Xinzhu}} ==日語== {{ja-kanjitab|しん|ちく|yomi=o}} ===專有名詞=== {{ja-pos|proper|しんちく}} # {{tcl|ja|Hsinchu|id=Q249994,Q74054}} eylwq6kctn1z9lvw5hat3uraki0jg68 9759407 9759406 2026-05-14T14:07:46Z TongcyDai 53191 9759407 wikitext text/x-wiki ==漢語== {{zh-forms}} {{zh-wp|zh|yue|lzh|cdo:Sĭng-dé̤ṳk|nan:Sin-tek}} [[File:Taiwan ROC political division map Hsinchu County.svg|thumb|]] ===詞源=== 來自{{l|zh|新}} + {{l|zh|竹塹}},源自1878年[[:w:臺灣清治時期|清治臺灣]]的新政改革。新竹[[轄區]]包括{{w|竹塹堡}}週遭[[腹地]]。 ===發音=== {{zh-pron |m=Xīnzhú |c=san1 zuk1 |h=pfs=Sîn-chuk |md=Sĭng-dé̤ṳk |mn=tw:Sin-tek/xm,qz,zz:Sin-tiok |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q249994}}{{zh-div|市}} {{place|en|city|西北部|c/臺灣}} # {{sid|zh|Q74054}}{{zh-div|縣}} {{place|en|county|西北部|c/臺灣}} ====同義詞==== * {{zh-l|風城}} ====派生詞==== * {{desc|bor=1|en|Hsinchu}}, {{l|en|Hsin-chu}}, {{l|en|Xinzhu}} ==日語== {{ja-kanjitab|しん|ちく|yomi=o}} ===專有名詞=== {{ja-pos|proper|しんちく}} # {{tcl|ja|新竹|id=Q249994,Q74054}} haqgrt1kopzgbyjruusm3okmwser2l0 9759409 9759407 2026-05-14T14:10:39Z TongcyDai 53191 9759409 wikitext text/x-wiki ==漢語== {{zh-forms}} {{zh-wp|zh|yue|lzh|cdo:Sĭng-dé̤ṳk|nan:Sin-tek}} [[File:Taiwan ROC political division map Hsinchu County.svg|thumb|]] ===詞源=== 來自{{l|zh|新}} + {{l|zh|竹塹}},源自1878年[[:w:臺灣清治時期|清治臺灣]]的新政改革。新竹[[轄區]]包括{{w|竹塹堡}}週遭[[腹地]]。 ===發音=== {{zh-pron |m=Xīnzhú |c=san1 zuk1 |h=pfs=Sîn-chuk |md=Sĭng-dé̤ṳk |mn=tw:Sin-tek/xm,qz,zz:Sin-tiok |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q249994}}{{zh-div|市}} {{place|zh|city|西北部|c/臺灣}} # {{sid|zh|Q74054}}{{zh-div|縣}} {{place|zh|county|西北部|c/臺灣}} ====同義詞==== * {{zh-l|風城}} ====派生詞==== * {{desc|bor=1|en|Hsinchu}}, {{l|en|Hsin-chu}}, {{l|en|Xinzhu}} ==日語== {{ja-kanjitab|しん|ちく|yomi=o}} ===專有名詞=== {{ja-pos|proper|しんちく}} # {{tcl|ja|新竹|id=Q249994,Q74054}} m9rvlofyxptu5u0uzw8u6aigt4zevxr 歐亞大陸 0 1264983 9759681 7615100 2026-05-15T00:22:57Z TongcyDai 53191 9759681 wikitext text/x-wiki ==漢語== {{zh-forms|s=欧亚大陆|type=22}} {{zh-wp}} [[Image:Eurasia (orthographic projection).svg|250px|thumb]] ===發音=== {{zh-pron |m=Ōu-Yà dàlù,Ōu-Yǎ dàlù,1nb=中國大陸和臺灣標準,2nb=常見異讀 |c=au1 aa3 daai6 luk6 |cat=propn }} ===專有名詞=== {{zh-proper noun}} # {{senseid|zh|Q5401}}{{place|zh|由[[歐洲]]和[[亞洲]]組成的<<supercontinent>,是[[地球]]上面積最大、人口最多的[[陸地]];有時也包括鄰近的島嶼|tcl=包含[[歐洲]]和[[亞洲]]的<<supercontinent>>}} ====同義詞==== * {{zh-l|亞歐大陸}} ====翻譯==== {{trans-top|id=Q5401|亞洲和歐洲的合稱}} * 南非語:{{t|af|Eurasië}} * 阿爾巴尼亞語:{{t|sq|Eurazi|f}}、{{t|sq|Eurazia|f}} {{qualifier|定形}} * 阿拉伯語:{{t|ar|يُورَاسِيَا|f}} * 亞美尼亞語:{{t+|hy|Եվրասիա}} * 阿塞拜疆語:{{t+|az|Avrasiya}} * 白俄羅斯語:{{t|be|Еўра́зія|f}}、{{t|be|Эўра́зія|f}} * 孟加拉語:{{t|bn|ইউরেশিয়া}} * 保加利亞語:{{t|bg|Евра́зия|f}} * 緬甸語:{{t|my|ယူရေးရှား}} * 加泰羅尼亞語:{{t+|ca|Euràsia|f}} * 捷克語:{{t+|cs|Eurasie|f}} * 丹麥語:{{t|da|Eurasien|n}} * 荷蘭語:{{t+|nl|Eurazië|n}} * 英語:{{t+|en|Eurasia}} * 世界語:{{t|eo|Eŭrazio}} * 愛沙尼亞語:{{t|et|Euraasia}} * 法羅語:{{t|fo|Evrasia|n}} * 芬蘭語:{{t+|fi|Euraasia}} * 法語:{{t+|fr|Eurasie|f}} * 加利西亞語:{{t+|gl|Eurasia|f}} * 格魯吉亞語:{{t|ka|ევრაზია}} * 德語:{{t+|de|Eurasien|n}} * 希臘語:{{t+|el|Ευρασία|f}} * 希伯來語:{{t+|he|אֵירוֹאַסְיָה|f|tr=eiroásia}} * 印地語:{{t|hi|यूरेशिया|m}} * 匈牙利語:{{t+|hu|Eurázsia}} * 冰島語:{{t+|is|Evrasía|f}} * 印尼語:{{t|id|Eurasia}} * 愛爾蘭語:{{t|ga|Eoráise|f|alt=an Eoráise}} * 意大利語:{{t+|it|Eurasia|f}} * 日語:{{t+|ja|ユーラシア|tr=Yūrasia}}、{{t+|ja|亜欧|tr=あおう, Aō}}、{{t+|ja|欧亜|tr=おうあ, Ōa}} * 哈薩克語:{{t|kk|Еуразия}} * 高棉語:{{t|km|អឺរ៉ាស៊ី}} * 朝鮮語:{{t+|ko|^유라시아}}、{{t+|ko|^아구(亞歐)}} * 吉爾吉斯語:{{t|ky|Евразия}} * 老撾語:{{t|lo|ຢູເຣເຊຍ}} * 拉丁語:{{t|la|Eurasia|f}} * 拉脫維亞語:{{t|lv|Eirāzija|f}} * 立陶宛語:{{t+|lt|Eurazija|f}} * 馬其頓語:{{t|mk|Евроа́зија|f}} * 馬來語:{{t|ms|Eurasia}} * 馬爾他語:{{t|mt|Ewrasja}} * 馬拉地語:{{t|mr|युरेशिया|m}} * 蒙古語: *: 西里爾字母:{{t|mn|Еврази}} * 挪威語: *: 書面挪威語:{{t+|nb|Eurasia|n}} * 普什圖語:{{t|ps|اوراسيا|f|tr=orāsyā}} * 波斯語:{{t|fa|اُوراسیا|tr=orâsiyâ}} * 波蘭語:{{t+|pl|Eurazja|f}} * 葡萄牙語:{{t+|pt|Eurásia|f}} * 羅馬尼亞語:{{t|ro|Eurasia|f}} * 俄語:{{t+|ru|Евра́зия|f}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Евроазија}}、{{t|sh|Евразија|f}} *: 拉丁字母:{{t|sh|Euroazija|f}}、{{t+|sh|Eurazija|f}} * 斯洛伐克語:{{t|sk|Eurázia|f}} * 斯洛文尼亞語:{{t+|sl|Evrazija|f}} * 西班牙語:{{t+|es|Eurasia|f}} * 斯瓦希里語:{{t|sw|Urasia}} * 瑞典語:{{t+|sv|Eurasien|n}} * 塔吉克語:{{t|tg|Евросиё}}、{{t|tg|Авросиё}} * 韃靼語:{{t|tt|Ауразия}} * 泰語:{{t|th|ยูเรเชีย}} * 土耳其語:{{t+|tr|Avrasya}} * 土庫曼語:{{t|tk|Ýewraziýa}} * 烏克蘭語:{{t+|uk|Євра́зія|f}} * 烏茲別克語:{{t+|uz|Yevrosiyo}} * 越南語:{{t|vi|[[lục địa]] [[Á-Âu]]}} ({{t|vi|[[陸地]][[亞歐]]}}), {{t|vi|[[lục địa]] [[Âu-Á]]}} ({{t|vi|[[陸地]][[歐亞]]}}), {{t|vi|[[đại lục]] [[Á Âu]]}} ({{t|vi|[[大陸]][[亞歐]]}}), {{t|vi|[[đại lục]] [[Âu Á]]}} ({{t|vi|[[大陸]][[歐亞]]}}) * 西弗里斯蘭語:{{t|fy|Jeraazje}} {{trans-bottom}} {{zh-cat|亞洲|歐亞大陸|歐洲|大洲}} fo2u47gt9bo09ml607wq82wa54ms2wo 9759682 9759681 2026-05-15T00:23:16Z TongcyDai 53191 9759682 wikitext text/x-wiki ==漢語== {{zh-forms|s=欧亚大陆|type=22}} {{zh-wp}} [[Image:Eurasia (orthographic projection).svg|250px|thumb]] ===發音=== {{zh-pron |m=Ōu-Yà dàlù,Ōu-Yǎ dàlù,1nb=中國大陸和臺灣標準,2nb=常見異讀 |c=au1 aa3 daai6 luk6 |cat=propn }} ===專有名詞=== {{zh-proper noun}} # {{senseid|zh|Q5401}}{{place|zh|由[[歐洲]]和[[亞洲]]組成的<<supercontinent>>,是[[地球]]上面積最大、人口最多的[[陸地]];有時也包括鄰近的島嶼|tcl=包含[[歐洲]]和[[亞洲]]的<<supercontinent>>}} ====同義詞==== * {{zh-l|亞歐大陸}} ====翻譯==== {{trans-top|id=Q5401|亞洲和歐洲的合稱}} * 南非語:{{t|af|Eurasië}} * 阿爾巴尼亞語:{{t|sq|Eurazi|f}}、{{t|sq|Eurazia|f}} {{qualifier|定形}} * 阿拉伯語:{{t|ar|يُورَاسِيَا|f}} * 亞美尼亞語:{{t+|hy|Եվրասիա}} * 阿塞拜疆語:{{t+|az|Avrasiya}} * 白俄羅斯語:{{t|be|Еўра́зія|f}}、{{t|be|Эўра́зія|f}} * 孟加拉語:{{t|bn|ইউরেশিয়া}} * 保加利亞語:{{t|bg|Евра́зия|f}} * 緬甸語:{{t|my|ယူရေးရှား}} * 加泰羅尼亞語:{{t+|ca|Euràsia|f}} * 捷克語:{{t+|cs|Eurasie|f}} * 丹麥語:{{t|da|Eurasien|n}} * 荷蘭語:{{t+|nl|Eurazië|n}} * 英語:{{t+|en|Eurasia}} * 世界語:{{t|eo|Eŭrazio}} * 愛沙尼亞語:{{t|et|Euraasia}} * 法羅語:{{t|fo|Evrasia|n}} * 芬蘭語:{{t+|fi|Euraasia}} * 法語:{{t+|fr|Eurasie|f}} * 加利西亞語:{{t+|gl|Eurasia|f}} * 格魯吉亞語:{{t|ka|ევრაზია}} * 德語:{{t+|de|Eurasien|n}} * 希臘語:{{t+|el|Ευρασία|f}} * 希伯來語:{{t+|he|אֵירוֹאַסְיָה|f|tr=eiroásia}} * 印地語:{{t|hi|यूरेशिया|m}} * 匈牙利語:{{t+|hu|Eurázsia}} * 冰島語:{{t+|is|Evrasía|f}} * 印尼語:{{t|id|Eurasia}} * 愛爾蘭語:{{t|ga|Eoráise|f|alt=an Eoráise}} * 意大利語:{{t+|it|Eurasia|f}} * 日語:{{t+|ja|ユーラシア|tr=Yūrasia}}、{{t+|ja|亜欧|tr=あおう, Aō}}、{{t+|ja|欧亜|tr=おうあ, Ōa}} * 哈薩克語:{{t|kk|Еуразия}} * 高棉語:{{t|km|អឺរ៉ាស៊ី}} * 朝鮮語:{{t+|ko|^유라시아}}、{{t+|ko|^아구(亞歐)}} * 吉爾吉斯語:{{t|ky|Евразия}} * 老撾語:{{t|lo|ຢູເຣເຊຍ}} * 拉丁語:{{t|la|Eurasia|f}} * 拉脫維亞語:{{t|lv|Eirāzija|f}} * 立陶宛語:{{t+|lt|Eurazija|f}} * 馬其頓語:{{t|mk|Евроа́зија|f}} * 馬來語:{{t|ms|Eurasia}} * 馬爾他語:{{t|mt|Ewrasja}} * 馬拉地語:{{t|mr|युरेशिया|m}} * 蒙古語: *: 西里爾字母:{{t|mn|Еврази}} * 挪威語: *: 書面挪威語:{{t+|nb|Eurasia|n}} * 普什圖語:{{t|ps|اوراسيا|f|tr=orāsyā}} * 波斯語:{{t|fa|اُوراسیا|tr=orâsiyâ}} * 波蘭語:{{t+|pl|Eurazja|f}} * 葡萄牙語:{{t+|pt|Eurásia|f}} * 羅馬尼亞語:{{t|ro|Eurasia|f}} * 俄語:{{t+|ru|Евра́зия|f}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Евроазија}}、{{t|sh|Евразија|f}} *: 拉丁字母:{{t|sh|Euroazija|f}}、{{t+|sh|Eurazija|f}} * 斯洛伐克語:{{t|sk|Eurázia|f}} * 斯洛文尼亞語:{{t+|sl|Evrazija|f}} * 西班牙語:{{t+|es|Eurasia|f}} * 斯瓦希里語:{{t|sw|Urasia}} * 瑞典語:{{t+|sv|Eurasien|n}} * 塔吉克語:{{t|tg|Евросиё}}、{{t|tg|Авросиё}} * 韃靼語:{{t|tt|Ауразия}} * 泰語:{{t|th|ยูเรเชีย}} * 土耳其語:{{t+|tr|Avrasya}} * 土庫曼語:{{t|tk|Ýewraziýa}} * 烏克蘭語:{{t+|uk|Євра́зія|f}} * 烏茲別克語:{{t+|uz|Yevrosiyo}} * 越南語:{{t|vi|[[lục địa]] [[Á-Âu]]}} ({{t|vi|[[陸地]][[亞歐]]}}), {{t|vi|[[lục địa]] [[Âu-Á]]}} ({{t|vi|[[陸地]][[歐亞]]}}), {{t|vi|[[đại lục]] [[Á Âu]]}} ({{t|vi|[[大陸]][[亞歐]]}}), {{t|vi|[[đại lục]] [[Âu Á]]}} ({{t|vi|[[大陸]][[歐亞]]}}) * 西弗里斯蘭語:{{t|fy|Jeraazje}} {{trans-bottom}} {{zh-cat|亞洲|歐亞大陸|歐洲|大洲}} k6jpeksds8znvxf5amxbtig3520vue9 津巴布韋 0 1274596 9759489 6998966 2026-05-14T20:51:59Z TongcyDai 53191 9759489 wikitext text/x-wiki {{also|津巴布韦}} ==漢語== {{zh-forms|s=津巴布韦|gloss=-}} ===發音=== {{zh-pron |m=Jīnbābùwéi |c=zeon1 baa1 bou3 wai4,zeon1 baa1 bou3 wai5 |mn=xm:Chin-pa-pò͘-ûi/qz:Tin-pa-pò͘-ûi/zz:Chin-pa-pò͘-úi |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{senseid|zh|Q954}}{{lb|zh|中國大陸|香港}} {{place|zh|國家|r/南非|official=津巴布韋共和國|capital=哈拉雷}} ====近義詞==== * {{qualifier|臺灣}} {{zh-l|辛巴威}} ====參見==== * {{qualifier|歷史}} {{zh-l|羅德西亞}} ====翻譯==== {{trans-top|id=Q954|南部非洲國家}} * 南非語:{{t+|af|Zimbabwe}} * 阿爾巴尼亞語:{{t+|sq|Zimbabveja|f}} * 阿姆哈拉語:{{t|am|ዚምባብዌ}} * 阿拉伯語:{{t|ar|زِيمْبَابْوِي|m}} * 亞拉姆語: *: 亞述新亞拉姆語:{{t|aii|ܙܝܼܡܒܵܒܘܹܐ|f}} * 亞美尼亞語:{{t+|hy|Զիմբաբվե}} * 阿斯圖里亞斯語:{{t+|ast|Zimbabue}} * 阿塞拜疆語:{{t+|az|Zimbabve}} * 巴厘語:{{t|ban|Zimbabwe}}、{{t|ban|Zimbabwé}} * 白俄羅斯語:{{t|be|Зімба́бвэ|n}} * 孟加拉語:{{t+|bn|জিম্বাবুয়ে}} * 伯塔維語:{{t|bew|Jimbabwé}} * 布列塔尼語:{{t+|br|Zimbabwe|?}} * 保加利亞語:{{t|bg|Зимба́бве|n}} * 緬甸語:{{t|my|ဇင်ဘာဘွေ}} * 加泰羅尼亞語:{{t+|ca|Zimbàbue}} * 切羅基語:{{t|chr|ᏏᎻᏆᏇ}} * 齊切瓦語:{{t|ny|Zimbabwe}} * 科西嘉語:{{t|co|Zimbabue|m}} * 捷克語:{{t+|cs|Zimbabwe|n}} * 丹麥語:{{t+|da|Zimbabwe}} * 迪維希語:{{t|dv|ޒިމްބާބުވޭ}} * 荷蘭語:{{t+|nl|Zimbabwe|n}} * 宗喀語:{{t|dz|ཛིམ་བབ་ཝེ་}} * 世界語:{{t+|eo|Zimbabvo}} * 愛沙尼亞語:{{t+|et|Zimbabwe}} * 法羅語:{{t|fo|Simbabvi|n}} * 芬蘭語:{{t+|fi|Zimbabwe}} * 法語:{{t+|fr|Zimbabwe|m}}、{{t+|fr|Zimbabwé|m}} * 弗里斯蘭語組: *: 西弗里斯蘭語:{{t+|fy|Simbabwe|n}} * 格魯吉亞語:{{t+|ka|ზიმბაბვე}} * 德語:{{t+|de|Simbabwe|n}} * 希臘語:{{t+|el|Ζιμπάμπουε|f}} * 豪薩語:{{t|ha|Zimbabuwe}} * 希伯來語:{{t|he|זימבבואה|tr=zimbabve}} * 印地語:{{t+|hi|ज़िम्बाब्वे}} * 匈牙利語:{{t+|hu|Zimbabwe}} * 冰島語:{{t+|is|Simbabve|n}} * 伊多語:{{t+|io|Zimbabwe}} * 印尼語:{{t+|id|Zimbabwe}} * 因特語:{{t|ia|Zimbabwe}} * 愛爾蘭語:{{t|ga|Siombáib|f|alt=An tSiombáib}}、{{t|ga|Poblacht na Siombáibe|f}} * 意大利語:{{t+|it|Zimbabwe|m}} * 日語:{{t+|ja|ジンバブエ|tr=Jinbabue}} * 爪哇語:{{t|jv|Zimbabwé}} * 卡倫金語:{{t|kln|Zimbabwe}} * 卡姆巴語:{{t|kam|Zimbabwe}} * 哈薩克語:{{t+|kk|Зимбабве}} * 高棉語:{{t+|km|ស៊ីមបាវ៉េ}} * 基庫尤語:{{t|ki|Zimbabwe}} * 朝鮮語:{{t+|ko|^짐바브웨}} * 吉爾吉斯語:{{t|ky|Зимбабве}} * 老撾語:{{t|lo|ຊິມບັບເວ}} * 拉脫維亞語:{{t+|lv|Zimbabve}} * 立陶宛語:{{t+|lt|Zimbabvė}} * 盧希亞語:{{t|luy|Zimbabwe}} * 盧歐語:{{t|luo|Zimbabwe}} * 馬其頓語:{{t+|mk|Зимба́бве|n}} * 馬來語:{{t+|ms|Zimbabwe}} * 馬拉雅拉姆語:{{t|ml|സിംബാബ്‌വെ}} * 馬爾他語:{{t|mt|iż-[[Żimbabwe]]}} * 毛利語:{{t|mi|Timuwawe}} * 梅魯語:{{t|mer|Zimbabwe}} * 蒙古語:{{t|mn|Зимбабве}} * 納瓦霍語:{{t|nv|Tsé Bee Bighan Naakaii Łizhiní Bikéyah}} * 諾曼語:{{t|nrf|Zimbabwe|m}} * 挪威語: *: 書面挪威語:{{t+|nb|Zimbabwe}} *: 新挪威語:{{t+|nn|Zimbabwe}} * 普什圖語:{{t|ps|زېمبابوې}} * 波斯語:{{t|fa|زیمبابوه|tr=zimbâbve}} * 波蘭語:{{t+|pl|Zimbabwe}} * 葡萄牙語:{{t+|pt|Zimbabwe|m}}、{{t+|pt|Zimbábue|m}}、{{t+|pt|Zimbabué|m}} * 羅馬尼亞語:{{t+|ro|Zimbabwe}} * 俄語:{{t+|ru|Зимба́бве|n|tr=Zimbábvɛ}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Зимбабве|m}} *: 拉丁字母:{{t+|sh|Zimbabve|m}} * 修納語:{{t|sn|Zimbabwe}} * 僧加羅語:{{t|si|සිම්බාබ්වේ}} * 斯洛伐克語:{{t|sk|Zimbabwe|n}} * 斯洛文尼亞語:{{t+|sl|Zimbabve|n}} * 西班牙語:{{t+|es|Zimbabue}} * 巽他語:{{t|su|Zimbabwé}} * 斯瓦希里語:{{t|sw|Zimbabwe}} * 瑞典語:{{t+|sv|Zimbabwe}} * 他加祿語:{{t|tl|Simbabwe}} * 塔吉克語:{{t|tg|Зимбабве}} * 泰米爾語:{{t|ta|ஜிம்பாப்வே}}、{{t|ta|சிம்பாப்வே}} * 韃靼語:{{t|tt|Зимбабве}} * 泰盧固語:{{t+|te|జింబాబ్వే}} * 泰語:{{t+|th|ซิมบับเว}} * 藏語:{{t|bo|ཛིམ་བབ་ཝི།}} * 提格里尼亞語:{{t|ti|ዚምባብዌ}} * 土耳其語:{{t+|tr|Zimbabve}} * 土庫曼語:{{t|tk|Zimbabwe}} * 烏克蘭語:{{t+|uk|Зімба́бве|n}} * 烏爾都語:{{t|ur|زمبابوے}} * 維吾爾語:{{t|ug|زىمبابۋې}} * 烏茲別克語:{{t+|uz|Zimbabve}} * 越南語:{{t|vi|Dim-ba-bu-ê}} * 意第緒語:{{t|yi|זימבאַבווע}} * 約魯巴語:{{t|yo|Sìǹbábúwè}} {{trans-bottom}} lhb5t7hm8m04wj0g6txkxh61pk0ys2s 9759491 9759489 2026-05-14T20:52:27Z TongcyDai 53191 // Edit via Wikiplus 9759491 wikitext text/x-wiki ==漢語== {{zh-forms|s=津巴布韦|gloss=-}} ===發音=== {{zh-pron |m=Jīnbābùwéi |c=zeon1 baa1 bou3 wai4,zeon1 baa1 bou3 wai5 |mn=xm:Chin-pa-pò͘-ûi/qz:Tin-pa-pò͘-ûi/zz:Chin-pa-pò͘-úi |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{senseid|zh|Q954}}{{lb|zh|中國大陸|香港}} {{place|zh|國家|r/南非|official=津巴布韋共和國|capital=哈拉雷}} ====近義詞==== * {{qualifier|臺灣}} {{zh-l|辛巴威}} ====參見==== * {{qualifier|歷史}} {{zh-l|羅德西亞}} ====翻譯==== {{trans-top|id=Q954|南部非洲國家}} * 南非語:{{t+|af|Zimbabwe}} * 阿爾巴尼亞語:{{t+|sq|Zimbabveja|f}} * 阿姆哈拉語:{{t|am|ዚምባብዌ}} * 阿拉伯語:{{t|ar|زِيمْبَابْوِي|m}} * 亞拉姆語: *: 亞述新亞拉姆語:{{t|aii|ܙܝܼܡܒܵܒܘܹܐ|f}} * 亞美尼亞語:{{t+|hy|Զիմբաբվե}} * 阿斯圖里亞斯語:{{t+|ast|Zimbabue}} * 阿塞拜疆語:{{t+|az|Zimbabve}} * 巴厘語:{{t|ban|Zimbabwe}}、{{t|ban|Zimbabwé}} * 白俄羅斯語:{{t|be|Зімба́бвэ|n}} * 孟加拉語:{{t+|bn|জিম্বাবুয়ে}} * 伯塔維語:{{t|bew|Jimbabwé}} * 布列塔尼語:{{t+|br|Zimbabwe|?}} * 保加利亞語:{{t|bg|Зимба́бве|n}} * 緬甸語:{{t|my|ဇင်ဘာဘွေ}} * 加泰羅尼亞語:{{t+|ca|Zimbàbue}} * 切羅基語:{{t|chr|ᏏᎻᏆᏇ}} * 齊切瓦語:{{t|ny|Zimbabwe}} * 科西嘉語:{{t|co|Zimbabue|m}} * 捷克語:{{t+|cs|Zimbabwe|n}} * 丹麥語:{{t+|da|Zimbabwe}} * 迪維希語:{{t|dv|ޒިމްބާބުވޭ}} * 荷蘭語:{{t+|nl|Zimbabwe|n}} * 宗喀語:{{t|dz|ཛིམ་བབ་ཝེ་}} * 世界語:{{t+|eo|Zimbabvo}} * 愛沙尼亞語:{{t+|et|Zimbabwe}} * 法羅語:{{t|fo|Simbabvi|n}} * 芬蘭語:{{t+|fi|Zimbabwe}} * 法語:{{t+|fr|Zimbabwe|m}}、{{t+|fr|Zimbabwé|m}} * 弗里斯蘭語組: *: 西弗里斯蘭語:{{t+|fy|Simbabwe|n}} * 格魯吉亞語:{{t+|ka|ზიმბაბვე}} * 德語:{{t+|de|Simbabwe|n}} * 希臘語:{{t+|el|Ζιμπάμπουε|f}} * 豪薩語:{{t|ha|Zimbabuwe}} * 希伯來語:{{t|he|זימבבואה|tr=zimbabve}} * 印地語:{{t+|hi|ज़िम्बाब्वे}} * 匈牙利語:{{t+|hu|Zimbabwe}} * 冰島語:{{t+|is|Simbabve|n}} * 伊多語:{{t+|io|Zimbabwe}} * 印尼語:{{t+|id|Zimbabwe}} * 因特語:{{t|ia|Zimbabwe}} * 愛爾蘭語:{{t|ga|Siombáib|f|alt=An tSiombáib}}、{{t|ga|Poblacht na Siombáibe|f}} * 意大利語:{{t+|it|Zimbabwe|m}} * 日語:{{t+|ja|ジンバブエ|tr=Jinbabue}} * 爪哇語:{{t|jv|Zimbabwé}} * 卡倫金語:{{t|kln|Zimbabwe}} * 卡姆巴語:{{t|kam|Zimbabwe}} * 哈薩克語:{{t+|kk|Зимбабве}} * 高棉語:{{t+|km|ស៊ីមបាវ៉េ}} * 基庫尤語:{{t|ki|Zimbabwe}} * 朝鮮語:{{t+|ko|^짐바브웨}} * 吉爾吉斯語:{{t|ky|Зимбабве}} * 老撾語:{{t|lo|ຊິມບັບເວ}} * 拉脫維亞語:{{t+|lv|Zimbabve}} * 立陶宛語:{{t+|lt|Zimbabvė}} * 盧希亞語:{{t|luy|Zimbabwe}} * 盧歐語:{{t|luo|Zimbabwe}} * 馬其頓語:{{t+|mk|Зимба́бве|n}} * 馬來語:{{t+|ms|Zimbabwe}} * 馬拉雅拉姆語:{{t|ml|സിംബാബ്‌വെ}} * 馬爾他語:{{t|mt|iż-[[Żimbabwe]]}} * 毛利語:{{t|mi|Timuwawe}} * 梅魯語:{{t|mer|Zimbabwe}} * 蒙古語:{{t|mn|Зимбабве}} * 納瓦霍語:{{t|nv|Tsé Bee Bighan Naakaii Łizhiní Bikéyah}} * 諾曼語:{{t|nrf|Zimbabwe|m}} * 挪威語: *: 書面挪威語:{{t+|nb|Zimbabwe}} *: 新挪威語:{{t+|nn|Zimbabwe}} * 普什圖語:{{t|ps|زېمبابوې}} * 波斯語:{{t|fa|زیمبابوه|tr=zimbâbve}} * 波蘭語:{{t+|pl|Zimbabwe}} * 葡萄牙語:{{t+|pt|Zimbabwe|m}}、{{t+|pt|Zimbábue|m}}、{{t+|pt|Zimbabué|m}} * 羅馬尼亞語:{{t+|ro|Zimbabwe}} * 俄語:{{t+|ru|Зимба́бве|n|tr=Zimbábvɛ}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Зимбабве|m}} *: 拉丁字母:{{t+|sh|Zimbabve|m}} * 修納語:{{t|sn|Zimbabwe}} * 僧加羅語:{{t|si|සිම්බාබ්වේ}} * 斯洛伐克語:{{t|sk|Zimbabwe|n}} * 斯洛文尼亞語:{{t+|sl|Zimbabve|n}} * 西班牙語:{{t+|es|Zimbabue}} * 巽他語:{{t|su|Zimbabwé}} * 斯瓦希里語:{{t|sw|Zimbabwe}} * 瑞典語:{{t+|sv|Zimbabwe}} * 他加祿語:{{t|tl|Simbabwe}} * 塔吉克語:{{t|tg|Зимбабве}} * 泰米爾語:{{t|ta|ஜிம்பாப்வே}}、{{t|ta|சிம்பாப்வே}} * 韃靼語:{{t|tt|Зимбабве}} * 泰盧固語:{{t+|te|జింబాబ్వే}} * 泰語:{{t+|th|ซิมบับเว}} * 藏語:{{t|bo|ཛིམ་བབ་ཝི།}} * 提格里尼亞語:{{t|ti|ዚምባብዌ}} * 土耳其語:{{t+|tr|Zimbabve}} * 土庫曼語:{{t|tk|Zimbabwe}} * 烏克蘭語:{{t+|uk|Зімба́бве|n}} * 烏爾都語:{{t|ur|زمبابوے}} * 維吾爾語:{{t|ug|زىمبابۋې}} * 烏茲別克語:{{t+|uz|Zimbabve}} * 越南語:{{t|vi|Dim-ba-bu-ê}} * 意第緒語:{{t|yi|זימבאַבווע}} * 約魯巴語:{{t|yo|Sìǹbábúwè}} {{trans-bottom}} 2tsqjdnbj4bd5avxb9lz7f315kpmo76 精緻 0 1307213 9760142 7005734 2026-05-15T06:03:09Z Fglffer 55252 9760142 wikitext text/x-wiki ==漢語== {{zh-forms|s=精致|t2=精致}} ===發音=== {{zh-pron |m=jīngzhì |ma=Zh-jingzhì.ogg |c=zing1 zi3 |h=pfs=chîn-chṳ;hrs=h:zinˋ zhiˇ |mn=cheng-tì |mn-t=zêng1 di3 |cat=a }} ===形容詞=== {{head|zh|形容詞}} # [[優美]][[細緻]] #: {{zh-x|精緻 的 工藝品}} # [[精深]][[細密]] #: {{zh-x|精緻 糖類 製品}} ====同義詞==== * {{s|優美}} {{syn-saurus|zh|精美}} ====反義詞==== * {{as|優美}} {{ant-saurus|zh|精美}} ==日語== {{ja-kanjitab|せい|ち|yomi=o}} ===發音=== {{ja-pron|せいち|acc=1|acc_ref=DJR}} ===形容詞=== {{ja-adj|infl=na|せいち}} # [[優美]][[細緻]] # [[精深]][[細密]] ====活用==== {{ja-na|せいち}} ===名詞=== {{ja-noun|せいち}} # [[優美]][[細緻]] # [[精深]][[細密]] ===來源=== <references/> * {{R:Kanjipedia Kotoba|0003919300}} ==朝鮮語== {{ko-hanjatab}} ===詞根=== {{ko-pos|root|hangeul=정치}} # {{hanja form of|정치}} 3hnfnh2w7p8asucxhtn8pfib25696n4 Aljeria 0 1366769 9759439 9531071 2026-05-14T16:00:42Z TongcyDai 53191 9759439 wikitext text/x-wiki ==巴斯克語== {{wikipedia|lang=eu}} ===詞源=== {{bor+|eu|fr|Algérie}}。 ===發音=== {{eu-pr|Alʒeria|hyph=+}} ===專有名詞=== {{eu-proper noun|in}} # {{tcl|eu|阿爾及利亞|id=Q262}} ====變格==== {{eu-ndecl|in.pr}} ====相关词汇==== * {{l|eu|aljeriar||阿爾及利亞人}} ===擴展閱讀=== * {{R:eu:Arau|38}} ==斯瓦希里語== ===發音=== * {{audio|sw|Sw-ke-Aljeria.flac|a=肯尼亞}} ===專有名詞=== {{head|sw|專有名詞}} # {{alt form|sw|Algeria}}:{{tcl|sw|阿爾及利亞|id=Q262}} ===參見=== {{list:countries in Africa/sw}} 2q4xibayz9m6peqoogxz7cyy3kl2goo Líbía 0 1368031 9759621 8103121 2026-05-14T23:13:58Z TongcyDai 53191 9759621 wikitext text/x-wiki {{also|libia|Libia|líbia|Líbia}} ==冰島語== {{wp|is:Líbýa}} ===專有名詞=== {{is-proper noun|@@}} # {{tcl|is|利比亞|id=Q1016}} ====變格==== {{is-ndecl|f}} ====其他形式==== * {{alt|is|Líbýa}} 5vm1j7ku2xfa9zikipuq54tgphbjs9v Либия 0 1368036 9759673 7153489 2026-05-15T00:10:22Z TongcyDai 53191 9759673 wikitext text/x-wiki ==保加利亞語== {{wp|bg:}} ===專有名詞=== {{bg-proper noun|Либия|f}} # {{tcl|bg|利比亞|id=Q1016}} ==哈薩克語== {{kk-regional}} ===詞源=== 源自{{der|kk|ar|لِيبِيَا}}。 ===專有名詞=== {{head|kk|專有名詞}} # {{tcl|kk|利比亞|id=Q1016}} dnxqg8mk6sjhhvg1zosa97asghza3sq लीबिया 0 1368037 9759622 9507259 2026-05-14T23:14:24Z TongcyDai 53191 9759622 wikitext text/x-wiki ==印地語== {{wp|hi:}} ===詞源=== {{bor+|hi|ar|لِيبِيَا}},源自{{der|hi|grc|Λιβύη}}。 ===發音=== * {{hi-IPA}} ===專有名詞=== {{hi-proper noun|m|ur=لیبیا}} # {{tcl|hi|利比亞|id=Q1016}} ====變格==== {{hi-ndecl|<M.unmarked.sg>}} h91q0m1n75w7cflvm8ps75p3y2mb4qy Լիբիա 0 1368701 9759670 9607228 2026-05-15T00:10:00Z TongcyDai 53191 9759670 wikitext text/x-wiki ==亞美尼亞語== {{wp|hy:}} ===詞源=== 源自{{uder|hy|xcl|Լիբիա}}。 ===發音=== {{hy-IPA|Լի՛բիա}} * {{hyphenation|hy|Լի|բի|ա}} ===專有名詞=== {{hy-h|propn}} # {{tcl|hy|利比亞|id=Q1016}} ====變格==== {{hy-noun-ի-ներ|unc=on}} ===參考資料=== * {{R:hy:TUT|section=II.A.3|page=51}} e7a6mftwm8x6rtio1mnq36b4z1oqnns লিবিয়া 0 1368703 9759669 7847083 2026-05-15T00:09:37Z TongcyDai 53191 9759669 wikitext text/x-wiki ==孟加拉語== {{wp|bn:|sc=Beng}} ===專有名詞=== {{head|bn|專有名詞|sc=Beng}} # {{tcl|bn|利比亞|id=Q1016}} tlmtff1sqdkfzal9x6eidjm86jhpjby လစ်ဗျား 0 1368705 9759677 7054250 2026-05-15T00:10:54Z TongcyDai 53191 9759677 wikitext text/x-wiki ==緬甸語== ===發音=== * {{my-IPA}} ===專有名詞=== {{my-proper noun}} # {{tcl|my|利比亞|id=Q1016}} #: {{ux|my|လစ်ဗျား[[နိုင်ငံ]]|利比亞 (國)|inline=y}} riujey4cta1315466bohuhf2vwsp1no 豪州 0 1369317 9759650 7276139 2026-05-14T23:48:17Z TongcyDai 53191 9759650 wikitext text/x-wiki ==日語== {{ja-kanjitab|ごう|しゅう|yomi=o|alt=濠洲:rare,濠州}} ===詞源=== {{ja-daiyouji|州|洲|sort=ごうしゅう}}。 ===發音=== {{ja-pron|acc=1|ごうしゅう}} ===專有名詞=== {{ja-pos|proper|ごうしゅう}} # {{tcl|ja|澳大利亞|id=Q408}} ====近義詞==== * {{ja-r|^オーストラリア}} {{qualifier|最常用}} * {{ja-r|濠太剌利|^オーストラリア}} {{qualifier|最罕用}} ===參見=== * {{ja-r|豪|ごう}} * {{ja-r|濠|ごう}} 179qp4e3k2jj3il6prflsshfns9qte0 Alĝerio 0 1389093 9759414 7815492 2026-05-14T14:37:44Z TongcyDai 53191 9759414 wikitext text/x-wiki {{also|Algerio}} ==世界語== {{wikipedia|lang=eo}} [[Image:Algeria in its region.svg|thumb|250px|'''Alĝerio''']] ===詞源=== 源自{{bor|eo|fr|Algérie}} ← {{der|eo|ar|اَلْجَزَائِر|gloss=群島}},{{l|ar|جَزِيرَة||島}}的複數形式,指的是曾經存在於阿爾及爾灣的一些小島。 ===發音=== {{eo-IPA|a=Eo-Alĝerio.ogg}} ===專有名詞=== {{eo-proper noun}} # {{tcl|eo|阿爾及利亞|id=Q262}} ====派生詞==== * {{l|eo|alĝeria|t=阿爾及利亞的|pos=a}} * {{l|eo|alĝeriano|t=阿爾及利亞人|pos=n}} fs1z3r3g6fiynzo41hl64fsprjx59l6 Module:Pi-Latn-translit 828 1390651 9759441 8029822 2026-05-14T16:16:56Z 咽頭べさ 92223 9759441 Scribunto text/plain -- For Lao script, see https://www.unicode.org/charts/PDF/U0E80.pdf (Unicode 12.0+) local export = {} local gsub = mw.ustring.gsub local match = mw.ustring.match local sub = mw.ustring.sub local u = mw.ustring.char local c = { ["Deva"] = { ["k"] = "क", ["kh"] = "ख", ["g"] = "ग", ["gh"] = "घ", ["ṅ"] = "ङ", ["c"] = "च", ["ch"] = "छ", ["j"] = "ज", ["jh"] = "झ", ["ñ"] = "ञ", ["ṭ"] = "ट", ["ṭh"] = "ठ", ["ḍ"] = "ड", ["ḍh"] = "ढ", ["ṇ"] = "ण", ["t"] = "त", ["th"] = "थ", ["d"] = "द", ["dh"] = "ध", ["n"] = "न", ["p"] = "प", ["ph"] = "फ", ["b"] = "ब", ["bh"] = "भ", ["m"] = "म", ["y"] = "य", ["r"] = "र", ["l"] = "ल", ["v"] = "व", ["s"] = "स", ["h"] = "ह", ["ḷ"] = "ळ", ["a"] = "अ", ["ā"] = "आ", ["i"] = "इ", ["ī"] = "ई", ["u"] = "उ", ["ū"] = "ऊ", ["e"] = "ए", ["o"] = "ओ", ["ṃ"] = "ं", [""] = "", }, ["Beng"] = { ["k"] = "ক", ["kh"] = "খ", ["g"] = "গ", ["gh"] = "ঘ", ["ṅ"] = "ঙ", ["c"] = "চ", ["ch"] = "ছ", ["j"] = "জ", ["jh"] = "ঝ", ["ñ"] = "ঞ", ["ṭ"] = "ট", ["ṭh"] = "ঠ", ["ḍ"] = "ড", ["ḍh"] = "ঢ", ["ṇ"] = "ণ", ["t"] = "ত", ["th"] = "থ", ["d"] = "দ", ["dh"] = "ধ", ["n"] = "ন", ["p"] = "প", ["ph"] = "ফ", ["b"] = "ব", ["bh"] = "ভ", ["m"] = "ম", ["y"] = "য", ["r"] = "র", ["l"] = "ল", ["v"] = "ৰ", ["s"] = "স", ["h"] = "হ", ["ḷ"] = "ল়", ["a"] = "অ", ["ā"] = "আ", ["i"] = "ই", ["ī"] = "ঈ", ["u"] = "উ", ["ū"] = "ঊ", ["e"] = "এ", ["o"] = "ও", ["ṃ"] = "ং", [""] = "", }, ["Brah"] = { ["k"] = "𑀓", ["kh"] = "𑀔", ["g"] = "𑀕", ["gh"] = "𑀖", ["ṅ"] = "𑀗", ["c"] = "𑀘", ["ch"] = "𑀙", ["j"] = "𑀚", ["jh"] = "𑀛", ["ñ"] = "𑀜", ["ṭ"] = "𑀝", ["ṭh"] = "𑀞", ["ḍ"] = "𑀟", ["ḍh"] = "𑀠", ["ṇ"] = "𑀡", ["t"] = "𑀢", ["th"] = "𑀣", ["d"] = "𑀤", ["dh"] = "𑀥", ["n"] = "𑀦", ["p"] = "𑀧", ["ph"] = "𑀨", ["b"] = "𑀩", ["bh"] = "𑀪", ["m"] = "𑀫", ["y"] = "𑀬", ["r"] = "𑀭", ["l"] = "𑀮", ["v"] = "𑀯", ["s"] = "𑀲", ["h"] = "𑀳", ["ḷ"] = "𑀴", ["a"] = "𑀅", ["ā"] = "𑀆", ["i"] = "𑀇", ["ī"] = "𑀈", ["u"] = "𑀉", ["ū"] = "𑀊", ["e"] = "𑀏", ["o"] = "𑀑", ["ṃ"] = "𑀁", [""] = "", }, ["Khmr"] = { ["k"] = "ក", ["kh"] = "ខ", ["g"] = "គ", ["gh"] = "ឃ", ["ṅ"] = "ង", ["c"] = "ច", ["ch"] = "ឆ", ["j"] = "ជ", ["jh"] = "ឈ", ["ñ"] = "ញ", ["ṭ"] = "ដ", ["ṭh"] = "ឋ", ["ḍ"] = "ឌ", ["ḍh"] = "ឍ", ["ṇ"] = "ណ", ["t"] = "ត", ["th"] = "ថ", ["d"] = "ទ", ["dh"] = "ធ", ["n"] = "ន", ["p"] = "ប", ["ph"] = "ផ", ["b"] = "ព", ["bh"] = "ភ", ["m"] = "ម", ["y"] = "យ", ["r"] = "រ", ["l"] = "ល", ["v"] = "វ", ["s"] = "ស", ["h"] = "ហ", ["ḷ"] = "ឡ", ["a"] = "អ", ["ā"] = "អា", ["i"] = "ឥ", ["ī"] = "ឦ", ["u"] = "ឧ", ["ū"] = "ឨ", ["e"] = "ឯ", ["o"] = "ឲ", ["ṃ"] = "ំ", [""] = "", }, ["Mymr"] = { ["k"] = "က", ["kh"] = "ခ", ["g"] = "ဂ", ["gh"] = "ဃ", ["ṅ"] = "င", ["c"] = "စ", ["ch"] = "ဆ", ["j"] = "ဇ", ["jh"] = "ဈ", ["ñ"] = "ဉ", ["ṭ"] = "ဋ", ["ṭh"] = "ဌ", ["ḍ"] = "ဍ", ["ḍh"] = "ဎ", ["ṇ"] = "ဏ", ["t"] = "တ", ["th"] = "ထ", ["d"] = "ဒ", ["dh"] = "ဓ", ["n"] = "န", ["p"] = "ပ", ["ph"] = "ဖ", ["b"] = "ဗ", ["bh"] = "ဘ", ["m"] = "မ", ["y"] = "ယ", ["r"] = "ရ", ["l"] = "လ", ["v"] = "ဝ", ["s"] = "သ", ["h"] = "ဟ", ["ḷ"] = "ဠ", ["a"] = "အ", ["ā"] = "အာ", ["i"] = "ဣ", ["ī"] = "ဤ", ["u"] = "ဥ", ["ū"] = "ဦ", ["e"] = "ဧ", ["o"] = "ဩ", ["ṃ"] = "ံ", [""] = "", }, ["Sinh"] = { ["k"] = "ක", ["kh"] = "ඛ", ["g"] = "ග", ["gh"] = "ඝ", ["ṅ"] = "ඞ", ["c"] = "ච", ["ch"] = "ඡ", ["j"] = "ජ", ["jh"] = "ඣ", ["ñ"] = "ඤ", ["ṭ"] = "ට", ["ṭh"] = "ඨ", ["ḍ"] = "ඩ", ["ḍh"] = "ඪ", ["ṇ"] = "ණ", ["t"] = "ත", ["th"] = "ථ", ["d"] = "ද", ["dh"] = "ධ", ["n"] = "න", ["p"] = "ප", ["ph"] = "ඵ", ["b"] = "බ", ["bh"] = "භ", ["m"] = "ම", ["y"] = "ය", ["r"] = "ර", ["l"] = "ල", ["v"] = "ව", ["s"] = "ස", ["h"] = "හ", ["ḷ"] = "ළ", ["a"] = "අ", ["ā"] = "ආ", ["i"] = "ඉ", ["ī"] = "ඊ", ["u"] = "උ", ["ū"] = "ඌ", ["e"] = "එ", ["o"] = "ඔ", ["ṃ"] = "ං", [""] = "", }, ["Thai"] = { ["k"] = "ก", ["kh"] = "ข", ["g"] = "ค", ["gh"] = "ฆ", ["ṅ"] = "ง", ["c"] = "จ", ["ch"] = "ฉ", ["j"] = "ช", ["jh"] = "ฌ", ["ñ"] = "ญ", ["ṭ"] = "ฏ", ["ṭh"] = "ฐ", ["ḍ"] = "ฑ", ["ḍh"] = "ฒ", ["ṇ"] = "ณ", ["t"] = "ต", ["th"] = "ถ", ["d"] = "ท", ["dh"] = "ธ", ["n"] = "น", ["p"] = "ป", ["ph"] = "ผ", ["b"] = "พ", ["bh"] = "ภ", ["m"] = "ม", ["y"] = "ย", ["r"] = "ร", ["l"] = "ล", ["v"] = "ว", ["s"] = "ส", ["h"] = "ห", ["ḷ"] = "ฬ", ["a"] = "อ", ["ā"] = "อา", ["i"] = "อิ", ["ī"] = "อี", ["u"] = "อุ", ["ū"] = "อู", ["e"] = "อเ", --to be swapped later ["o"] = "อโ", --to be swapped later ["ṃ"] = "ํ", [""] = "", }, ["Lana"] = { ["k"] = "ᨠ", ["kh"] = "ᨡ", ["g"] = "ᨣ", ["gh"] = "ᨥ", ["ṅ"] = "ᨦ", ["c"] = "ᨧ", ["ch"] = "ᨨ", ["j"] = "ᨩ", ["jh"] = "ᨫ", ["ñ"] = "ᨬ", ["ṭ"] = "ᨭ", ["ṭh"] = "ᨮ", ["ḍ"] = "ᨯ", ["ḍh"] = "ᨰ", ["ṇ"] = "ᨱ", ["t"] = "ᨲ", ["th"] = "ᨳ", ["d"] = "ᨴ", ["dh"] = "ᨵ", ["n"] = "ᨶ", ["p"] = "ᨷ", ["ph"] = "ᨹ", ["b"] = "ᨻ", ["bh"] = "ᨽ", ["m"] = "ᨾ", ["y"] = "ᨿ", ["r"] = "ᩁ", ["l"] = "ᩃ", ["v"] = "ᩅ", ["s"] = "ᩈ", ["h"] = "ᩉ", ["ḷ"] = "ᩊ", ["a"] = "ᩋ", ["ā"] = "ᩋᩣ", ["i"] = "ᩍ", ["ī"] = "ᩎ", ["u"] = "ᩏ", ["ū"] = "ᩐ", ["e"] = "ᩑ", ["o"] = "ᩋᩰ", ["ṃ"] = "ᩴ", [""] = "", }, ["Laoo"] = { ["k"] = "ກ", ["kh"] = "ຂ", ["g"] = "ຄ", ["gh"] = "ຆ", ["ṅ"] = "ງ", ["c"] = "ຈ", ["ch"] = "ຉ", ["j"] = "ຊ", ["jh"] = "ຌ", ["ñ"] = "ຎ", ["ṭ"] = "ຏ", ["ṭh"] = "ຐ", ["ḍ"] = "ຑ", ["ḍh"] = "ຒ", ["ṇ"] = "ຓ", ["t"] = "ຕ", ["th"] = "ຖ", ["d"] = "ທ", ["dh"] = "ຘ", ["n"] = "ນ", ["p"] = "ປ", ["ph"] = "ຜ", ["b"] = "ພ", ["bh"] = "ຠ", ["m"] = "ມ", ["y"] = "ຍ", ["r"] = "ຣ", ["l"] = "ລ", ["v"] = "ວ", ["s"] = "ສ", ["h"] = "ຫ", ["ḷ"] = "ຬ", ["a"] = "ອ", ["ā"] = "ອາ", ["i"] = "ອິ", ["ī"] = "ອີ", ["u"] = "ອຸ", ["ū"] = "ອູ", ["e"] = "ອເ", --to be swapped later ["o"] = "ອໂ", --to be swapped later ["ṃ"] = "ໍ", [""] = "", }, ["Cakm"] = { ["k"] = "𑄇", ["kh"] = "𑄈", ["g"] = "𑄉", ["gh"] = "𑄊", ["ṅ"] = "𑄋", ["c"] = "𑄌", ["ch"] = "𑄍", ["j"] = "𑄎", ["jh"] = "𑄏", ["ñ"] = "𑄐", ["ṭ"] = "𑄑", ["ṭh"] = "𑄒", ["ḍ"] = "𑄓", ["ḍh"] = "𑄔", ["ṇ"] = "𑄕", ["t"] = "𑄖", ["th"] = "𑄗", ["d"] = "𑄘", ["dh"] = "𑄙", ["n"] = "𑄚", ["p"] = "𑄛", ["ph"] = "𑄜", ["b"] = "𑄝", ["bh"] = "𑄞", ["m"] = "𑄟", ["y"] = "𑄠", ["r"] = "𑄢", ["l"] = "𑄣", ["v"] = "𑅇", ["s"] = "𑄥", ["h"] = "𑄦", ["ḷ"] = "𑅄", ["a"] = "𑄃", ["ā"] = "𑄃𑄂", ["i"] = "𑄃𑄨", ["ī"] = "𑄃𑄩", ["u"] = "𑄃𑄪", ["ū"] = "𑄃𑄫", ["e"] = "𑄃𑄬", ["o"] = "𑄃𑄮", ["ṃ"] = "𑄁", [""] = "", }, } local v = { ["Deva"] = { ["a"] = "", ["ā"] = "ा", ["i"] = "ि", ["ī"] = "ी", ["u"] = "ु", ["ū"] = "ू", ["e"] = "े", ["o"] = "ो", [""] = "", }, ["Beng"] = { ["a"] = "", ["ā"] = "া", ["i"] = "ি", ["ī"] = "ী", ["u"] = "ু", ["ū"] = "ূ", ["e"] = "ে", ["o"] = "ো", [""] = "", }, ["Brah"] = { ["a"] = "", ["ā"] = "𑀸", ["i"] = "𑀺", ["ī"] = "𑀻", ["u"] = "𑀼", ["ū"] = "𑀽", ["e"] = "𑁂", ["o"] = "𑁄", [""] = "", }, ["Khmr"] = { ["a"] = "", ["ā"] = "ា", ["i"] = "ិ", ["ī"] = "ី", ["u"] = "ុ", ["ū"] = "ូ", ["e"] = "េ", ["o"] = "ោ", [""] = "", }, ["Mymr"] = { ["a"] = "", ["ā"] = "ာ", ["i"] = "ိ", ["ī"] = "ီ", ["u"] = "ု", ["ū"] = "ူ", ["e"] = "ေ", ["o"] = "ော", [""] = "", }, ["Sinh"] = { ["a"] = "", ["ā"] = "ා", ["i"] = "ි", ["ī"] = "ී", ["u"] = "ු", ["ū"] = "ූ", ["e"] = "ෙ", ["o"] = "ො", [""] = "", }, ["Thai"] = { ["a"] = "", ["ā"] = "า", ["i"] = "ิ", ["ī"] = "ี", ["u"] = "ุ", ["ū"] = "ู", ["e"] = "เ", ["o"] = "โ", [""] = "", }, ["Lana"] = { ["a"] = "", ["ā"] = "ᩣ", ["i"] = "ᩥ", ["ī"] = "ᩦ", ["u"] = "ᩩ", ["ū"] = "ᩪ", ["e"] = "ᩮ", ["o"] = "ᩮᩣ", [""] = "", }, ["Laoo"] = { ["a"] = "", ["ā"] = "າ", ["i"] = "ິ", ["ī"] = "ີ", ["u"] = "ຸ", ["ū"] = "ູ", ["e"] = "ເ", ["o"] = "ໂ", [""] = "", }, ["Cakm"] = { ["a"] = "", ["ā"] = "𑄂", ["i"] = "𑄨", ["ī"] = "𑄩", ["u"] = "𑄪", ["ū"] = "𑄫", ["e"] = "𑄬", ["o"] = "𑄮", [""] = "", }, } local s = { ["Deva"] = { ["0"] = "०", ["1"] = "१", ["2"] = "२", ["3"] = "३", ["4"] = "४", ["5"] = "५", ["6"] = "६", ["7"] = "७", ["8"] = "८", ["9"] = "९", ["."] = "॥", [","] = "।", ["-"] = "-", }, ["Beng"] = { ["0"] = "০", ["1"] = "১", ["2"] = "২", ["3"] = "৩", ["4"] = "৪", ["5"] = "৫", ["6"] = "৬", ["7"] = "৭", ["8"] = "৮", ["9"] = "৯", ["."] = ".", [","] = ",", ["-"] = "-", }, ["Brah"] = { ["0"] = "𑁦", ["1"] = "𑁧", ["2"] = "𑁨", ["3"] = "𑁩", ["4"] = "𑁪", ["5"] = "𑁫", ["6"] = "𑁬", ["7"] = "𑁭", ["8"] = "𑁮", ["9"] = "𑁯", ["."] = "𑁈", [","] = "𑁇", ["-"] = "-", }, ["Khmr"] = { ["0"] = "០", ["1"] = "១", ["2"] = "២", ["3"] = "៣", ["4"] = "៤", ["5"] = "៥", ["6"] = "៦", ["7"] = "៧", ["8"] = "៨", ["9"] = "៩", ["."] = "៕", [","] = "។", ["-"] = "-", }, ["Mymr"] = { ["0"] = "၀", ["1"] = "၁", ["2"] = "၂", ["3"] = "၃", ["4"] = "၄", ["5"] = "၅", ["6"] = "၆", ["7"] = "၇", ["8"] = "၈", ["9"] = "၉", ["."] = "။", [","] = "၊", ["-"] = "-", }, ["Sinh"] = { ["0"] = "0", ["1"] = "1", ["2"] = "2", ["3"] = "3", ["4"] = "4", ["5"] = "5", ["6"] = "6", ["7"] = "7", ["8"] = "8", ["9"] = "9", ["."] = ".", [","] = ",", ["-"] = "-", }, ["Thai"] = { ["0"] = "๐", ["1"] = "๑", ["2"] = "๒", ["3"] = "๓", ["4"] = "๔", ["5"] = "๕", ["6"] = "๖", ["7"] = "๗", ["8"] = "๘", ["9"] = "๙", ["."] = "๚", [","] = "ฯ", ["-"] = "-", }, ["Lana"] = { ["0"] = "᪐", ["1"] = "᪑", ["2"] = "᪒", ["3"] = "᪓", ["4"] = "᪔", ["5"] = "᪕", ["6"] = "᪖", ["7"] = "᪗", ["8"] = "᪘", ["9"] = "᪙", ["."] = "᪩", [","] = "᪨", ["-"] = "-", }, ["Laoo"] = { ["0"] = "໐", ["1"] = "໑", ["2"] = "໒", ["3"] = "໓", ["4"] = "໔", ["5"] = "໕", ["6"] = "໖", ["7"] = "໗", ["8"] = "໘", ["9"] = "໙", ["."] = "ຯຯ", [","] = "ຯ", ["-"] = "-", }, ["Cakm"] = { ["0"] = "𑄶", ["1"] = "𑄷", ["2"] = "𑄸", ["3"] = "𑄹", ["4"] = "𑄺", ["5"] = "𑄻", ["6"] = "𑄼", ["7"] = "𑄽", ["8"] = "𑄾", ["𑄿"] = "๙", ["."] = "𑅁", [","] = ",", ["-"] = "-", }, } local join = { ["Deva"] = "्", ["Beng"] = "্", ["Brah"] = "𑁆", ["Khmr"] = "្", ["Mymr"] = "္", ["Sinh"] = u(0x200d, 0x0dca), ["Thai"] = "ฺ", ["Lana"] = "᩠", ["Laoo"] = "຺", ["Cakm"] = "𑄴", } local kill = { ["Deva"] = "्", ["Beng"] = "্", ["Brah"] = "𑁆", ["Khmr"] = "៑", ["Mymr"] = "်", ["Sinh"] = "්", ["Thai"] = "ฺ", ["Lana"] = "᩺", ["Laoo"] = "຺", ["Cakm"] = "𑄴", } local sinh_cjct = { ["ක‍්ව"] = "ක්‍ව", ["ත‍්ථ"] = "ත්‍ථ", ["ත‍්ව"] = "ත්‍ව", ["න‍්ථ"] = "න්‍ථ", ["න‍්ද"] = "න්‍ද", ["න‍්ධ"] = "න්‍ධ", ["න‍්ව"] = "න්‍ව" } local nukta = u(0x09bc) -- Just list all those used here. local variations = { ["Mon"] = { ["ဈ"] = "ၛ", ["ဤ"] = "ဣဳ", ["ဦ"] = "ဥု", ["ဧ"] = "ဨ", ["ီ"] = "ဳ", ["င"] = "ၚ", -- for IM fix below --Unicode doesn't have "great nya" so just leave ည္ည as is. (It looks like ည with one extra curve.) }, ["OldShan"] = { ["က"] = "ၵ", ["ခ"] = "ၶ", ["ဂ"] = "ၷ", ["ဃ"] = "ꧠ", ["စ"] = "ၸ", ["ဆ"] = "ꧡ", ["ဇ"] = "ၹ", ["ဈ"] = "ꧢ", ["ဉ"] = "ၺ", ["ည"] = "ၺ္ၺ", ["ဋ"] = "ꩦ", ["ဌ"] = "ꩧ", ["ဍ"] = "ꩨ", ["ဎ"] = "ꩩ", ["ဏ"] = "ꧣ", ["ဒ"] = "ၻ", ["ဓ"] = "ꩪ", ["န"] = "ၼ", ["ဖ"] = "ၽ", ["ဗ"] = "ၿ", ["ဘ"] = "ꧤ", ["ဟ"] = "ႁ", ["ဠ"] = "ꩮ", ["အ"] = "ဢ", ["ဣ"] = "ဢိ", ["ဤ"] = "ဢီ", ["ဥ"] = "ဢု", ["ဦ"] = "ဢူ", ["ဧ"] = "ဢေ", ["ဩ"] = "ဢေႃ", ["ါ"] = "ႃ", ["ာ"] = "ႃ", --Unicode doesn't have "Shan great sa" so just leave ဿ as is. }, ["NewShan"] = { --includes all Old Shan and the followings ["ဿ"] = "သ်သ", ["္"] = "်", }, } -- Unnatural sequences of combining marks are frequently unreadable. Therefore, they are displayed on -- bearers so that the code can be understood and, if necessary, corrected. local dc = function(text) return gsub(text, "[อອ]", "") end -- Discard bearer local transform function export.mono_form(text, script) local result = text if script == "Thai" then result = gsub(result, "ํ", "งฺ") result = gsub(result, "([ก-ฮ])ฺ", "ั%1ฺ") result = gsub(result, "([ก-ฮ])([^ะัาิีฺุู])", "%1ะ%2") result = gsub(result, "([ก-ฮ])([^ะัาิีฺุู])", "%1ะ%2") --twice result = gsub(result, "([ก-ฮ])$", "%1ะ") -- result = gsub(result, "([ก-ฮ])([าิีุู])ั", "%1%2") result = gsub(result, dc("([ก-ฮ])([าอิอีอฺอุอู])อั"), "%1%2") result = gsub(result, "([เโ])([ก-ฮ])([ะั])", "%1%2") result = gsub(result, "^ั", "") result = gsub(result, "([%s%p])ั", "%1") result = gsub(result, "ฺ", "") elseif script == "Laoo" then -- Calculating transform in argument list of gsub() fails! if not transform then transform = { {dc("ອໍ"), dc("ງອ຺")}, {dc("([ກ-ຮ])ອ຺"), dc("ອັ%1ອ຺")}, {dc("([ກ-ຮ])([^ະອັາອິອີອ຺ອຸອູ])"), "%1ະ%2"}, {dc("([ກ-ຮ])([^ະອັາອິອີອ຺ອຸອູ])"), "%1ະ%2"}, -- twice! {"([ກ-ຮ])$", "%1ະ"}, {dc("([ກ-ຮ])([າອິອີອ຺ອຸອູ])ອັ"), "%1%2"}, {dc("([ເໂ])([ກ-ຮ])([ະອັ])"), "%1%2"}, {dc("^ອັ"), ""}, {dc("([%s%p])ອັ"), "%1"}, {dc("ອ຺"), ""} } end for _, v in ipairs(transform) do result = gsub(result, v[1], v[2]) end end return result end local function return_error(text) return error(("Unrecognised part: \"%s\""):format(text)) end function export.tr(text, script, options) if type(text) == "table" then options = {} options.impl = text.args["impl"] options.variation = text.args["variation"] --ID of variation: [Mymr: 1=Mon, 2=Old Shan, 3=New Shan] text, script = text.args[1], text.args[2] end if script == "Latn" then return text end if not s[script] then return nil end local easy_syllable_pattern = "^([khgṅcjñṭḍṇtdnpbmyrlḷvs]*)([aāiīuūeo])(ṃ?)("..kill[script].."?)$" text = mw.ustring.lower(text) text = gsub(text, "[0-9%.,%-]", s[script]) -- Compose patterns for processing onsets. local letter = "[^"..join[script]..nukta.."]["..nukta.."]?" local letter_pair = "("..letter..")("..letter..")" for word in mw.ustring.gmatch(text, "[aāiīuūeoṃkhgṅcjñṭḍṇtdnpbmyrlḷvs]+") do local word_conv, orig_word = {}, word word = gsub(word, "([aāiīuūeo]ṃ?)", "%1 ") word = gsub(word, " $", "") for syllable in mw.text.gsplit(word, " ") do if not match(syllable, "[aāiīuūeoṃ]$") then syllable = syllable .. "a" .. kill[script] end syllable = gsub(syllable, easy_syllable_pattern, function(onset, vowel, coda, optJoin) if onset == "" then onset = vowel vowel = "" end if not c[script][onset] then onset = gsub(onset, ".h", c[script]) onset = gsub(onset, ".", c[script]) -- Join pairs of consonants onset = gsub(onset, letter_pair, "%1"..join[script].."%2") -- Join adjacent consonants that were in different pairs. onset = gsub(onset, letter_pair, "%1"..join[script].."%2") else onset = c[script][onset] end return onset .. (v[script][vowel] or return_error(vowel)) .. c[script][coda] .. optJoin end) table.insert(word_conv, syllable) end word = table.concat(word_conv, "") if script == "Thai" then word = gsub(word, "(.)([เโ])", "%2%1") elseif script == "Mymr" then word = gsub(word, "င္", "င်္") -- Pali doesn't have -Vr mid-word like Sanskrit, so no need to include repha. word = gsub(word, "(င်္)([ခဂငဒပဝ])(ေ?)ာ", "%1%2%3ါ") word = gsub(word, "္[ယရ]", { ["္ယ"] = "ျ", ["္ရ"] = "ြ" }) --these not need tall aa word = gsub(word, "^([ခဂငဒပဝ])(ေ?)ာ", "%1%2ါ") word = gsub(word, "([^္])([ခဂငဒပဝ])(ေ?)ာ", "%1%2%3ါ") word = gsub(word, "([ခဂငဒပဝ])(္[က-အဿ])(ေ?)ာ", "%1%2%3ါ") word = gsub(word, "္[ဝဟ]", { ["္ဝ"] = "ွ", ["္ဟ"] = "ှ" }) word = gsub(word, "ဉ္ဉ", "ည") word = gsub(word, "သ္သ", "ဿ") if not (options and options.variation) then -- Arg options should be optional, so nothing to do. elseif options.variation == "1" then word = gsub(word, ".", variations.Mon) word = gsub(word, "ိံ", "ီ") --fix IM elseif options.variation == "2" then if match(word, "ဿ") then -- Character is missing. Do nothing. else word = gsub(word, ".", variations.OldShan) end elseif options.variation == "3" then word = gsub(word, ".", variations.OldShan) word = gsub(word, ".", variations.NewShan) word = gsub(word, "်".."်", "်") --fix nga end elseif script == "Lana" then word = gsub(word, "ᨦ᩠", "ᩘ") word = gsub(word, "^([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2ᩤ") word = gsub(word, "([^᩠])([ᨣᨴᨵᨷᩅ])(ᩮ?)ᩣ", "%1%2%3ᩤ") word = gsub(word, "([ᨣᨴᨵᨷᩅ])(᩠[ᨠ-ᩌᩔ])(ᩮ?)ᩣ", "%1%2%3ᩤ") word = gsub(word, "᩠[ᩁᩃ]", { ["᩠ᩁ"] = "ᩕ", ["᩠ᩃ"] = "ᩖ" }) word = gsub(word, "([ᨭ-ᨱ])᩠ᨮ", "%1ᩛ") word = gsub(word, "([ᨷ-ᨾ])᩠ᨻ", "%1ᩛ") word = gsub(word, "ᩈ᩠ᩈ", "ᩔ") elseif script == "Beng" then word = gsub(word, "ৰ্", "ৰ"..u(0x200d).."্") -- ৰ্(v-) needs ZWJ to display correctly elseif script == "Sinh" then local js = join["Sinh"] word = gsub(word, "("..js..")([යර])", u(0xdca, 0x200d).."%2") word = gsub(word,"[කතන]"..js.."[ථදධව]", sinh_cjct) elseif script == "Laoo" then word = gsub(word, "(.)([ເໂ])", "%2%1") elseif script == "Cakm" then word = gsub(word, "𑄴[𑄠𑄢𑄣𑅇]", -- 𑄠𑄣 are TBC: 𑄢𑅇 confirmed. 𑄚𑄴𑄚 seen. { ["𑄴𑄠"]="𑄳𑄠", ["𑄴𑄢"]="𑄳𑄢", ["𑄴𑄣"]="𑄳𑄣", ["𑄴𑅇"]="𑄳𑄤", }) end text = gsub(text, orig_word, word, 1) end local impl = options and options.impl or 'yes' if impl == 'no' then text = export.mono_form(text, script) end return text end return export 29df52e9trauvtdzykz32nha20s5x2w Module:Category tree/topic/Places 828 1391042 9759530 9759344 2026-05-14T21:50:28Z TongcyDai 53191 9759530 Scribunto text/plain -- Chinese Wiktionary port of enwikt [[Module:category tree/topic/Places]]. -- Generates descriptions and parent-category specs for place-related category pages. -- -- Deployment name: TBD — likely [[Module:place/catetree]] or an equivalent path -- under zhwikt's category-tree infrastructure. -- -- Architecture mirrors enwikt: two tables exported as LABELS and HANDLERS. -- LABELS — static label → spec mappings (top-level grouping categories) -- HANDLERS — ordered list of functions; first non-nil return wins -- -- Chinese-specific adaptations vs. enwikt: -- * Pattern matching on 的 instead of English "in"/"of" -- * Handler 3 bare-location parent: CONTAINER的TYPE (order reversed vs. enwikt) -- Special case: TYPE=="地名" → CONTAINERTYPE (no 的) -- * Handler 6 uses forward zh_name lookup (div.type → zh_name) instead of -- a reverse map, because many English placetypes share the same Chinese name -- (e.g. state/oblast/canton all → "州"; province/department/voivodeship → "省") -- * Handler 7 (new): compound capital label + location ("美國的州首府") -- Compound = zh_name(holonym_type) .. zh_cap_label(holonym_type) -- Built at load time; skips country/constituent country (no 國首都 category) -- * No article handling (Chinese has no definite article) -- * Serial enumeration: 、(non-final) 和(final) -- * Description format: {{{langname}}}中LOCATION_DESC[[PLACETYPE]]的名稱。 local labels = {} local handlers = {} local m_table = require("Module:table") local m_locations = require("Module:place/locations") local m_placetypes = require("Module:place/placetypes") local m_zh_data = require("Module:place/data") local internal_error = m_locations.internal_error local zh_strings = m_placetypes.zh_strings local zh_cap_by_holonym = m_placetypes.zh_capital_label_by_holonym_type local format_zh_name = m_placetypes.format_zh_name local insert = table.insert local concat = table.concat local function is_callable(val) return type(val) == "function" end -- Literal-string gsub (no regex metacharacters interpreted in `from` or `to`). local function gsub_literally(str, from, to) return (str:gsub(from:gsub("[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1"), to:gsub("%%", "%%%%"))) end -- Get the first (primary) placetype from spec. local function fetch_primary_placetype(key, spec) local placetype = spec.placetype if type(placetype) == "table" then placetype = placetype[1] end return placetype end -- True for continent/supercontinent/planet specs (used to omit 的 in 非洲國家). local function spec_is_broad(spec) local pt = spec and spec.placetype if not pt then return false end local pts = type(pt) == "table" and pt or {pt} for _, p in ipairs(pts) do if p == "continent" or p == "supercontinent" or p == "planet" then return true end end return false end -- --------------------------------------------------------------------------- -- Chinese serial joiner: {"A","B","C"} → "A、B和C" -- --------------------------------------------------------------------------- local function zh_join(items) local n = #items if n == 0 then return "" end if n == 1 then return items[1] end local parts = {} for i = 1, n - 1 do insert(parts, items[i]) if i < n - 1 then insert(parts, zh_strings.enum_sep) end end insert(parts, zh_strings.and_conj) insert(parts, items[n]) return concat(parts) end -- --------------------------------------------------------------------------- -- Placetype class → Chinese bare parent category label -- --------------------------------------------------------------------------- local class_to_bare_category_parent = { ["polity"] = "政治實體", ["subpolity"] = "行政區劃", ["settlement"] = "聚落", ["non-admin settlement"] = "聚落", ["capital"] = "首都", ["natural feature"] = "自然地物", ["man-made structure"] = "人工建物", ["geographic region"] = "地理文化區域", } local class_is_political_division = { ["polity"] = true, ["subpolity"] = true, ["settlement"] = true, ["non-admin settlement"] = false, ["capital"] = true, ["natural feature"] = false, ["man-made structure"] = false, ["geographic region"] = false, ["generic place"] = false, } -- --------------------------------------------------------------------------- -- Load-time reverse maps -- --------------------------------------------------------------------------- -- Chinese capital label → holonym type (e.g. "首都" → "country") local zh_cap_label_to_holonym = {} for holonym_type, zh_label in pairs(zh_cap_by_holonym) do if not zh_cap_label_to_holonym[zh_label] then zh_cap_label_to_holonym[zh_label] = holonym_type end end -- Chinese placetype name → list of English placetype keys (one-to-many). -- Used by handler 2 (bare placetype) and handler 4 (generic X的Y). local zh_name_to_pt_keys = {} do local function add(name, en_key) zh_name_to_pt_keys[name] = zh_name_to_pt_keys[name] or {} insert(zh_name_to_pt_keys[name], en_key) end for en_key, entry in pairs(m_zh_data.zh_placetype_data) do if entry.zh_name then local names = type(entry.zh_name) == "table" and entry.zh_name or {entry.zh_name} for _, name in ipairs(names) do add(name, en_key) end end if entry.zh_name_by_holonym_type then for _, zh_name_val in pairs(entry.zh_name_by_holonym_type) do local names = type(zh_name_val) == "table" and zh_name_val or {zh_name_val} for _, name in ipairs(names) do add(name, en_key) end end end end end -- Compound capital label → list of holonym placetype keys. -- Compound = zh_name(holonym_type) .. zh_cap_label(holonym_type). -- E.g. "州首府" → {"state"}, "地區首府" → {"territory", "region"}. -- Skip country/constituent country (no 國首都 category per design). -- Skip entries where compound == cap_label (e.g. "省省會"/"縣縣治" excluded to -- avoid ambiguous matches — these bare labels are already handled by handler 5). local zh_compound_cap_to_placetypes = {} do local function add_compound(compound, pt) zh_compound_cap_to_placetypes[compound] = zh_compound_cap_to_placetypes[compound] or {} insert(zh_compound_cap_to_placetypes[compound], pt) end for holonym_type, cap_label in pairs(zh_cap_by_holonym) do if holonym_type ~= "country" and holonym_type ~= "constituent country" then local zh_name_raw = m_placetypes.get_zh_placetype_name(holonym_type, nil) if zh_name_raw then local zh_name_str = format_zh_name(zh_name_raw) local compound = zh_name_str .. cap_label if compound ~= cap_label then add_compound(compound, holonym_type) end end end end end -- --------------------------------------------------------------------------- -- Location-linking helpers -- --------------------------------------------------------------------------- local function construct_linked_location(group, key, spec) local full_placename = m_locations.key_to_placename(group, key) return m_locations.construct_linked_placename(spec, full_placename) end -- Returns a location description string for embedding in category descriptions. -- Shows one level of container for sub-national entries: -- country → [[法國]] -- state → [[加州]]([[美國]]的[[州]]) -- city → [[舊金山]]([[加州]]的[[城市]]) local function construct_location_desc(group, key, spec) local linked = construct_linked_location(group, key, spec) if spec.no_include_container_in_desc then return linked end local container_iterator = m_locations.iterate_containers(group, key, spec) local containers = container_iterator() if not containers then return linked end local location_type = spec.placetype if type(location_type) == "table" then location_type = location_type[1] end local zh_name_raw = location_type and m_placetypes.get_zh_placetype_name(location_type, nil) local zh_type = zh_name_raw and format_zh_name(zh_name_raw) local cont_links = {} for _, c in ipairs(containers) do insert(cont_links, construct_linked_location(c.group, c.key, c.spec)) end local cont_str = zh_join(cont_links) if zh_type then return linked .. "(" .. cont_str .. "的" .. zh_type .. ")" else return linked .. "(位於" .. cont_str .. ")" end end -- Fetch or construct the location description, substituting "+++" with the -- auto-constructed description if present in spec.keydesc. local function fetch_or_construct_location_desc(group, key, spec) local val = spec.keydesc if is_callable(val) then val = val(group, key, spec) spec.keydesc = val end if val then if val:find("%+%+%+", 1, true) then local base = construct_location_desc(group, key, spec) val = gsub_literally(val, "+++", base) end return val end return construct_location_desc(group, key, spec) end -- --------------------------------------------------------------------------- -- Split label at every occurrence of 的 -- Returns list of {place, placetype} tables (all possible splits left→right). -- --------------------------------------------------------------------------- local function split_at_de(label) local results = {} local de = "的" local start = 1 while true do local s, e = label:find(de, start, true) if not s then break end local place_part = label:sub(1, s - 1) local type_part = label:sub(e + 1) if #place_part > 0 and #type_part > 0 then insert(results, {place = place_part, placetype = type_part}) end start = e + 1 end return results end -- Locate group + key + spec for a Chinese location string. local function find_place(place_str) local group, spec = m_locations.find_canonical_key(place_str) if group then return group, place_str, spec end return nil end -- No articles in Chinese; just return the key. local function get_prefixed_key(key, spec) if m_placetypes.get_prefixed_key then return m_placetypes.get_prefixed_key(key, spec) end return key end -- Check whether zh_name_val (string or array) contains type_zh. local function zh_name_has(zh_name_val, type_zh) if type(zh_name_val) == "table" then for _, n in ipairs(zh_name_val) do if n == type_zh then return true end end return false end return zh_name_val == type_zh end -- Search divs list for a div whose Chinese name matches type_zh. -- Singularizes div.type before zh_name lookup (divs use plural English keys -- like "states", while zh_placetype_data uses singular keys like "state"). -- Uses forward lookup (English key → zh_name) to handle many-to-one collisions. -- Returns: div_parent (English key or false), prep, matched_en_type. -- div_parent == nil means no match; div_parent == false means match but no parent cat. local function find_div_by_zh_name(divs, type_zh) if not divs then return nil, nil, nil end if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) == "string" then div = {type = div} end local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" or cat_as.type then cat_as = {cat_as} end for _, pt_cat_as in ipairs(cat_as) do if type(pt_cat_as) == "string" then pt_cat_as = {type = pt_cat_as} end -- Singularize plural div type before zh_name lookup. local lookup_type = m_placetypes.maybe_singularize_placetype(pt_cat_as.type) or pt_cat_as.type local div_zh_raw = m_placetypes.get_zh_placetype_name(lookup_type, nil) if div_zh_raw and zh_name_has(div_zh_raw, type_zh) then local div_parent = pt_cat_as.container_parent_type if div_parent == nil then div_parent = div.container_parent_type end if div_parent == nil then div_parent = pt_cat_as.type end return div_parent, pt_cat_as.prep or div.prep or "of", lookup_type end end end return nil, nil, nil end -- =========================================================================== -- Handler 1 — Bare capital category labels -- e.g. "首都", "省會", "首府", "縣治" -- =========================================================================== insert(handlers, function(label) local holonym_type = zh_cap_label_to_holonym[label] if not holonym_type then return nil end local zh_raw = m_placetypes.get_zh_placetype_name(holonym_type, nil) local zh_holonym = zh_raw and format_zh_name(zh_raw) or holonym_type return { type = "name", topic = label, description = "{{{langname}}}中" .. zh_holonym .. "[[" .. label .. "]]的名稱。", parents = {"首都"}, } end) -- =========================================================================== -- Handler 2 — Bare placetype categories -- e.g. "城市", "河流", "山脈", "國家" -- =========================================================================== insert(handlers, function(label) local en_keys = zh_name_to_pt_keys[label] if not en_keys then return nil end for _, en_key in ipairs(en_keys) do local canon_pt, ptdata = m_placetypes.get_placetype_data(en_key, "from category") if canon_pt then local from_cat = {from_category = true, no_split_qualifiers = true} local bare_parent = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) local bcp = m_placetypes.get_placetype_prop(pt, "bare_category_parent") if bcp then return bcp end local cls = m_placetypes.get_placetype_prop(pt, "class") if cls then return class_to_bare_category_parent[cls] end end, from_cat) or "地名" local addl_parents = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) return m_placetypes.get_placetype_prop(pt, "addl_bare_category_parents") end, from_cat) local breadcrumb = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) return m_placetypes.get_placetype_prop(pt, "bare_category_breadcrumb") end, from_cat) if type(bare_parent) == "string" and breadcrumb then bare_parent = {name = bare_parent, sort = breadcrumb} end local parents = {bare_parent} if addl_parents then m_table.extend(parents, addl_parents) end return { type = "name", topic = label, description = "{{{langname}}}中[[" .. label .. "]]的名稱。", breadcrumb = breadcrumb, parents = parents, } end end end) -- =========================================================================== -- Handler 3 — Bare placename categories (known locations) -- e.g. "美國", "法國", "北京", "加利福尼亞州" -- Supports: overriding_bare_label_parents, bare_category_parent_type, -- "+++" expansion, addl_parents, wp/wpcat/commonscat, fulldesc. -- "+++" expands to: CONTAINER的TYPE (Chinese order) or CONTAINERTYPE for "地名". -- =========================================================================== insert(handlers, function(label) local group, spec = m_locations.find_canonical_key(label) if not group then return nil end local wp = spec.wp if wp == nil then wp = true end local wpcat = spec.wpcat if wpcat == nil then wpcat = wp end local commonscat = spec.commonscat if commonscat == nil then commonscat = wpcat end local full_placename = m_locations.key_to_placename(group, label) local full_container_placename local container_iterator = m_locations.iterate_containers(group, label, spec) local containers = container_iterator() if containers then full_container_placename = m_locations.key_to_placename( containers[1].group, containers[1].key) end -- Substitute %l (full placename), %e (same, no elliptical form in Chinese), -- %c (container placename) in wp/wpcat/commonscat values. local function format_boxval(val) if val == true then val = "%l" end if type(val) == "string" then val = gsub_literally(val, "%l", full_placename) val = gsub_literally(val, "%e", full_placename) if val:find("%%c", 1, true) and full_container_placename then val = gsub_literally(val, "%c", full_container_placename) end end return val end -- Determine Chinese type label for parent category construction. -- bare_category_parent_type overrides the location's own placetype. local parent_zh_type do local override = spec.bare_category_parent_type if override then local t = type(override) == "table" and (override.type or override[1]) or override local raw = type(t) == "string" and m_placetypes.get_zh_placetype_name(t, nil) parent_zh_type = raw and format_zh_name(raw) end if not parent_zh_type then local loc_type = fetch_primary_placetype(label, spec) local raw = loc_type and m_placetypes.get_zh_placetype_name(loc_type, nil) parent_zh_type = raw and format_zh_name(raw) end end local parents = {} local bare_label_parents = spec.overriding_bare_label_parents if not bare_label_parents then bare_label_parents = {"+++"} end local inserted_containers = false for _, parent in ipairs(bare_label_parents) do if parent == "+++" then -- Expand to Chinese parent: CONTAINER的TYPE or CONTAINERTYPE for "地名"; -- omit 的 when TYPE=="國家" and container is a continent (非洲國家 not 非洲的國家) if containers then for _, container in ipairs(containers) do local ck = get_prefixed_key(container.key, container.spec) local parent_cat if parent_zh_type == "地名" then parent_cat = ck .. "地名" elseif parent_zh_type == "國家" and spec_is_broad(container.spec) then parent_cat = ck .. "國家" elseif parent_zh_type then parent_cat = ck .. "的" .. parent_zh_type else parent_cat = ck end m_table.insertIfNot(parents, parent_cat) end inserted_containers = true end else m_table.insertIfNot(parents, parent) end end -- If "+++" wasn't present in bare_label_parents and containers exist, insert -- bare container keys as fallback (mirrors enwikt behaviour). if not inserted_containers and containers then for _, container in ipairs(containers) do m_table.insertIfNot(parents, container.key) end end if spec.addl_parents then for _, p in ipairs(spec.addl_parents) do m_table.insertIfNot(parents, p) end end if #parents == 0 then insert(parents, "地名") end local description = spec.fulldesc or ( "{{{langname}}}中與" .. fetch_or_construct_location_desc(group, label, spec) .. "相關的詞語。") return { type = "topic", description = description, breadcrumb = full_placename, parents = parents, wp = format_boxval(wp), wpcat = format_boxval(wpcat), commonscat = format_boxval(commonscat), } end) -- =========================================================================== -- Handler 4 — Generic placetype + location -- e.g. "法國的城市", "德國的河流", "亞洲的國家" -- Matches placetypes that carry generic_before_non_cities or generic_before_cities. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local en_keys = zh_name_to_pt_keys[type_zh] if en_keys then for _, en_key in ipairs(en_keys) do local canon_pt, ptdata = m_placetypes.get_placetype_data(en_key, "from category") if canon_pt and ptdata and (ptdata.generic_before_non_cities or ptdata.generic_before_cities) then local group, key, spec = find_place(place_str) if group then local allow = true if spec.is_former_place and en_key ~= "place" then allow = false end if allow then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end end end end) -- =========================================================================== -- Handler 5 — Capital + location (bare capital label) -- e.g. "美國的首都", "四川省的省會", "德克薩斯州的首府" -- Handles bare capital labels from zh_cap_label_to_holonym. -- Must precede handler 6 (compound capital) and handler 7 (division) to avoid -- mis-matching capital labels that also appear in a location's divs via cat_as. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype if zh_cap_label_to_holonym[type_zh] then local group, key, spec = find_place(place_str) if group then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end) -- =========================================================================== -- Handler 6 — Compound capital label + location -- e.g. "美國的州首府", "法國的行政區首府", "澳大利亞的地區首府" -- Compound label = zh_name(holonym_type) .. zh_cap_label(holonym_type). -- Built at load time in zh_compound_cap_to_placetypes. -- Must precede handler 7 (division) to avoid mis-matching. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local target_pts = zh_compound_cap_to_placetypes[type_zh] if target_pts then local group, key, spec = find_place(place_str) if group then -- Check if any target placetype appears in this location's divs. -- Div types are plural English strings ("states"); singularize before comparing. local found = false for _, divlist in ipairs({spec.divs, spec.addl_divs, spec.addl_divs_for_categorization}) do if divlist and not found then if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local function check_div_type(pt_type) local sg = m_placetypes.maybe_singularize_placetype(pt_type) or pt_type for _, target_pt in ipairs(target_pts) do if sg == target_pt or pt_type == target_pt then found = true break end end end check_div_type(div.type) if not found and div.cat_as then local ca = div.cat_as if type(ca) ~= "table" or ca.type then ca = {ca} end for _, pt_ca in ipairs(ca) do if type(pt_ca) == "string" then pt_ca = {type = pt_ca} end check_div_type(pt_ca.type) if found then break end end end if found then break end end end if found then break end end if found then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end end) -- =========================================================================== -- Handler 7 — Administrative division + location -- e.g. "美國的州", "法國的省", "英國的構成國", "日本的縣" -- Uses forward zh_name lookup (English div type → zh_name) to avoid collision -- between English types that share the same Chinese name (state/oblast/canton → "州"). -- Singularizes plural div types ("states" → "state") before zh_name lookup. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local group, key, spec = find_place(place_str) if group then local div_parent, div_prep, matched_type = find_div_by_zh_name(spec.divs, type_zh) if div_parent == nil then div_parent, div_prep, matched_type = find_div_by_zh_name(spec.addl_divs, type_zh) end if div_parent == nil then div_parent, div_prep, matched_type = find_div_by_zh_name(spec.addl_divs_for_categorization, type_zh) end if div_parent ~= nil then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if div_parent then -- div_parent == false means suppress parent cat if spec.no_container_parent then insert(parents, {name = type_zh, sort = " " .. key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do -- Map English div_parent key back to Chinese for parent category name. local dp_zh if type(div_parent) == "string" then local sg_dp = m_placetypes.maybe_singularize_placetype(div_parent) or div_parent local dp_raw = m_placetypes.get_zh_placetype_name(sg_dp, nil) dp_zh = dp_raw and format_zh_name(dp_raw) or type_zh else dp_zh = type_zh end insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. dp_zh, sort = key }) end else insert(parents, {name = type_zh, sort = " " .. key}) end end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end) -- =========================================================================== -- Static labels — top-level grouping categories -- =========================================================================== labels["地名"] = { type = "grouping", description = "{{{langname}}}中地名的分類。", parents = {"名稱"}, } labels["政治實體"] = { type = "grouping", description = "{{{langname}}}中政治實體的名稱。", parents = {"地名"}, } labels["行政區劃"] = { type = "grouping", description = "{{{langname}}}中行政區劃的名稱。", parents = {"地名"}, } labels["聚落"] = { type = "grouping", description = "{{{langname}}}中聚落地名。", parents = {"地名"}, } labels["首都"] = { type = "grouping", description = "{{{langname}}}中首都及各類首府的名稱。", parents = {"聚落"}, } labels["自然地物"] = { type = "grouping", description = "{{{langname}}}中自然地物的名稱。", parents = {"地名"}, } labels["人工建物"] = { type = "grouping", description = "{{{langname}}}中人工建物的名稱。", parents = {"地名"}, } labels["地理文化區域"] = { type = "grouping", description = "{{{langname}}}中地理及文化區域的名稱。", parents = {"地名"}, } labels["特定國家的行政區劃"] = { type = "grouping", description = "{{{langname}}}中特定國家行政區劃的分類。", parents = {"地名"}, } -- --------------------------------------------------------------------------- -- Misc. place-related labels -- --------------------------------------------------------------------------- labels["外名"] = { type = "name", description = "{{{langname}}}[[外名]]。", parents = {"地名"}, } labels["古埃及行政區"] = { type = "name", description = "{{{langname}}}中[[古埃及]][[行政區]]的名稱。", breadcrumb = "行政區", parents = {"古埃及"}, } -- --------------------------------------------------------------------------- -- Sui generis place categories (cross-jurisdictional / transcontinental regions) -- --------------------------------------------------------------------------- labels["大西洋"] = { type = "related-to", description = "{{{langname}}}中與[[大西洋]]相關的詞語。", parents = {"地球"}, } labels["不列顛群島"] = { type = "related-to", description = "{{{langname}}}中與[[大不列顛島]]、[[愛爾蘭島]]及鄰近島嶼相關的詞語。", parents = {"歐洲", "島嶼"}, } labels["歐盟"] = { type = "related-to", description = "{{{langname}}}中與[[歐盟]]相關的詞語。", parents = {"歐洲"}, } labels["加斯科涅"] = { type = "related-to", description = "{{{langname}}}中與[[加斯科涅]]相關的詞語。", parents = {"法國"}, } labels["印度次大陸"] = { type = "related-to", description = "{{{langname}}}中與[[印度次大陸]]相關的詞語。", parents = {"南亞"}, } labels["孟加拉"] = { type = "related-to", description = "{{{langname}}}中與[[孟加拉]]地區相關的詞語。", parents = {"印度次大陸"}, } labels["克什米爾"] = { type = "related-to", description = "{{{langname}}}中與[[克什米爾]]相關的詞語。", parents = {"印度次大陸"}, } labels["克什米爾(印度)"] = { type = "related-to", description = "{{{langname}}}中[[印度]]管轄的[[克什米爾]]地名。", parents = {"印度", "克什米爾"}, } labels["朝鮮半島"] = { type = "related-to", description = "{{{langname}}}中與[[朝鮮半島]]相關的詞語。", parents = {"亞洲"}, } labels["朗格多克"] = { type = "related-to", description = "{{{langname}}}中與[[朗格多克]]相關的詞語。", parents = {"法國"}, } labels["拉普蘭"] = { type = "related-to", description = "{{{langname}}}中與[[拉普蘭]]相關的詞語。", parents = {"歐洲", "芬蘭", "挪威", "俄羅斯", "瑞典"}, } labels["中東"] = { type = "related-to", description = "{{{langname}}}中與[[中東]]相關的詞語。", parents = {"非洲", "亞洲"}, } labels["荷屬安的列斯"] = { type = "related-to", description = "{{{langname}}}中與[[荷屬安的列斯]]相關的詞語。", parents = {"荷蘭", "北美洲"}, } labels["海外法國"] = { type = "related-to", description = "{{{langname}}}中與[[海外法國]]相關的詞語。", parents = {"法國"}, } labels["普羅旺斯"] = { type = "related-to", description = "{{{langname}}}中與[[普羅旺斯]]相關的詞語。", parents = {"法國"}, } labels["波蘭人民共和國"] = { type = "related-to", description = "{{{langname}}}中與[[波蘭人民共和國]]相關的詞語。", parents = {"波蘭"}, } labels["南亞"] = { type = "related-to", description = "{{{langname}}}中與[[南亞]]相關的詞語。", parents = {"歐亞大陸", "亞洲"}, } return {LABELS = labels, HANDLERS = handlers} qd3k2n3vi5e3n3cdxgzvh79yls2ecyx 9759531 9759530 2026-05-14T21:56:22Z TongcyDai 53191 9759531 Scribunto text/plain -- Chinese Wiktionary port of enwikt [[Module:category tree/topic/Places]]. -- Generates descriptions and parent-category specs for place-related category pages. -- -- Deployment name: TBD — likely [[Module:place/catetree]] or an equivalent path -- under zhwikt's category-tree infrastructure. -- -- Architecture mirrors enwikt: two tables exported as LABELS and HANDLERS. -- LABELS — static label → spec mappings (top-level grouping categories) -- HANDLERS — ordered list of functions; first non-nil return wins -- -- Chinese-specific adaptations vs. enwikt: -- * Pattern matching on 的 instead of English "in"/"of" -- * Handler 3 bare-location parent: CONTAINER的TYPE (order reversed vs. enwikt) -- Special case: TYPE=="地名" → CONTAINERTYPE (no 的) -- * Handler 6 uses forward zh_name lookup (div.type → zh_name) instead of -- a reverse map, because many English placetypes share the same Chinese name -- (e.g. state/oblast/canton all → "州"; province/department/voivodeship → "省") -- * Handler 7 (new): compound capital label + location ("美國的州首府") -- Compound = zh_name(holonym_type) .. zh_cap_label(holonym_type) -- Built at load time; skips country/constituent country (no 國首都 category) -- * No article handling (Chinese has no definite article) -- * Serial enumeration: 、(non-final) 和(final) -- * Description format: {{{langname}}}中LOCATION_DESC[[PLACETYPE]]的名稱。 local labels = {} local handlers = {} local m_table = require("Module:table") local m_locations = require("Module:place/locations") local m_placetypes = require("Module:place/placetypes") local m_zh_data = require("Module:place/data") local internal_error = m_locations.internal_error local zh_strings = m_placetypes.zh_strings local zh_cap_by_holonym = m_placetypes.zh_capital_label_by_holonym_type local format_zh_name = m_placetypes.format_zh_name local insert = table.insert local concat = table.concat local function is_callable(val) return type(val) == "function" end -- Literal-string gsub (no regex metacharacters interpreted in `from` or `to`). local function gsub_literally(str, from, to) return (str:gsub(from:gsub("[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1"), to:gsub("%%", "%%%%"))) end -- Get the first (primary) placetype from spec. local function fetch_primary_placetype(key, spec) local placetype = spec.placetype if type(placetype) == "table" then placetype = placetype[1] end return placetype end -- True for continent/supercontinent/planet specs (used to omit 的 in 非洲國家). local function spec_is_broad(spec) local pt = spec and spec.placetype if not pt then return false end local pts = type(pt) == "table" and pt or {pt} for _, p in ipairs(pts) do if p == "continent" or p == "supercontinent" or p == "planet" then return true end end return false end -- --------------------------------------------------------------------------- -- Chinese serial joiner: {"A","B","C"} → "A、B和C" -- --------------------------------------------------------------------------- local function zh_join(items) local n = #items if n == 0 then return "" end if n == 1 then return items[1] end local parts = {} for i = 1, n - 1 do insert(parts, items[i]) if i < n - 1 then insert(parts, zh_strings.enum_sep) end end insert(parts, zh_strings.and_conj) insert(parts, items[n]) return concat(parts) end -- --------------------------------------------------------------------------- -- Placetype class → Chinese bare parent category label -- --------------------------------------------------------------------------- local class_to_bare_category_parent = { ["polity"] = "政治實體", ["subpolity"] = "行政區劃", ["settlement"] = "聚落", ["non-admin settlement"] = "聚落", ["capital"] = "首都", ["natural feature"] = "自然地物", ["man-made structure"] = "人工建物", ["geographic region"] = "地理文化區域", } local class_is_political_division = { ["polity"] = true, ["subpolity"] = true, ["settlement"] = true, ["non-admin settlement"] = false, ["capital"] = true, ["natural feature"] = false, ["man-made structure"] = false, ["geographic region"] = false, ["generic place"] = false, } -- --------------------------------------------------------------------------- -- Load-time reverse maps -- --------------------------------------------------------------------------- -- Chinese capital label → holonym type (e.g. "首都" → "country") local zh_cap_label_to_holonym = {} for holonym_type, zh_label in pairs(zh_cap_by_holonym) do if not zh_cap_label_to_holonym[zh_label] then zh_cap_label_to_holonym[zh_label] = holonym_type end end -- Chinese placetype name → list of English placetype keys (one-to-many). -- Used by handler 2 (bare placetype) and handler 4 (generic X的Y). local zh_name_to_pt_keys = {} do local function add(name, en_key) zh_name_to_pt_keys[name] = zh_name_to_pt_keys[name] or {} insert(zh_name_to_pt_keys[name], en_key) end for en_key, entry in pairs(m_zh_data.zh_placetype_data) do if entry.zh_name then local names = type(entry.zh_name) == "table" and entry.zh_name or {entry.zh_name} for _, name in ipairs(names) do add(name, en_key) end end if entry.zh_name_by_holonym_type then for _, zh_name_val in pairs(entry.zh_name_by_holonym_type) do local names = type(zh_name_val) == "table" and zh_name_val or {zh_name_val} for _, name in ipairs(names) do add(name, en_key) end end end end end -- Compound capital label → list of holonym placetype keys. -- Compound = zh_name(holonym_type) .. zh_cap_label(holonym_type). -- E.g. "州首府" → {"state"}, "地區首府" → {"territory", "region"}. -- Skip country/constituent country (no 國首都 category per design). -- Skip entries where compound == cap_label (e.g. "省省會"/"縣縣治" excluded to -- avoid ambiguous matches — these bare labels are already handled by handler 5). local zh_compound_cap_to_placetypes = {} do local function add_compound(compound, pt) zh_compound_cap_to_placetypes[compound] = zh_compound_cap_to_placetypes[compound] or {} insert(zh_compound_cap_to_placetypes[compound], pt) end for holonym_type, cap_label in pairs(zh_cap_by_holonym) do if holonym_type ~= "country" and holonym_type ~= "constituent country" then local zh_name_raw = m_placetypes.get_zh_placetype_name(holonym_type, nil) if zh_name_raw then local zh_name_str = format_zh_name(zh_name_raw) local compound = zh_name_str .. cap_label if compound ~= cap_label then add_compound(compound, holonym_type) end end end end end -- --------------------------------------------------------------------------- -- Location-linking helpers -- --------------------------------------------------------------------------- local function construct_linked_location(group, key, spec) local full_placename = m_locations.key_to_placename(group, key) return m_locations.construct_linked_placename(spec, full_placename) end -- Returns a location description string for embedding in category descriptions. -- Shows one level of container for sub-national entries: -- country → [[法國]] -- state → [[加州]]([[美國]]的[[州]]) -- city → [[舊金山]]([[加州]]的[[城市]]) local function construct_location_desc(group, key, spec) local linked = construct_linked_location(group, key, spec) if spec.no_include_container_in_desc then return linked end local container_iterator = m_locations.iterate_containers(group, key, spec) local containers = container_iterator() if not containers then return linked end local location_type = spec.placetype if type(location_type) == "table" then location_type = location_type[1] end local zh_name_raw = location_type and m_placetypes.get_zh_placetype_name(location_type, nil) local zh_type = zh_name_raw and format_zh_name(zh_name_raw) local cont_links = {} for _, c in ipairs(containers) do insert(cont_links, construct_linked_location(c.group, c.key, c.spec)) end local cont_str = zh_join(cont_links) if zh_type then return linked .. "(" .. cont_str .. "的" .. zh_type .. ")" else return linked .. "(位於" .. cont_str .. ")" end end -- Fetch or construct the location description, substituting "+++" with the -- auto-constructed description if present in spec.keydesc. local function fetch_or_construct_location_desc(group, key, spec) local val = spec.keydesc if is_callable(val) then val = val(group, key, spec) spec.keydesc = val end if val then if val:find("%+%+%+", 1, true) then local base = construct_location_desc(group, key, spec) val = gsub_literally(val, "+++", base) end return val end return construct_location_desc(group, key, spec) end -- --------------------------------------------------------------------------- -- Split label at every occurrence of 的 -- Returns list of {place, placetype} tables (all possible splits left→right). -- --------------------------------------------------------------------------- local function split_at_de(label) local results = {} local de = "的" local start = 1 while true do local s, e = label:find(de, start, true) if not s then break end local place_part = label:sub(1, s - 1) local type_part = label:sub(e + 1) if #place_part > 0 and #type_part > 0 then insert(results, {place = place_part, placetype = type_part}) end start = e + 1 end return results end -- Locate group + key + spec for a Chinese location string. local function find_place(place_str) local group, spec = m_locations.find_canonical_key(place_str) if group then return group, place_str, spec end return nil end -- No articles in Chinese; just return the key. local function get_prefixed_key(key, spec) if m_placetypes.get_prefixed_key then return m_placetypes.get_prefixed_key(key, spec) end return key end -- Check whether zh_name_val (string or array) contains type_zh. local function zh_name_has(zh_name_val, type_zh) if type(zh_name_val) == "table" then for _, n in ipairs(zh_name_val) do if n == type_zh then return true end end return false end return zh_name_val == type_zh end -- Search divs list for a div whose Chinese name matches type_zh. -- Singularizes div.type before zh_name lookup (divs use plural English keys -- like "states", while zh_placetype_data uses singular keys like "state"). -- Uses forward lookup (English key → zh_name) to handle many-to-one collisions. -- Returns: div_parent (English key or false), prep, matched_en_type. -- div_parent == nil means no match; div_parent == false means match but no parent cat. local function find_div_by_zh_name(divs, type_zh) if not divs then return nil, nil, nil end if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) == "string" then div = {type = div} end local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" or cat_as.type then cat_as = {cat_as} end for _, pt_cat_as in ipairs(cat_as) do if type(pt_cat_as) == "string" then pt_cat_as = {type = pt_cat_as} end -- Singularize plural div type before zh_name lookup. local lookup_type = m_placetypes.maybe_singularize_placetype(pt_cat_as.type) or pt_cat_as.type local div_zh_raw = m_placetypes.get_zh_placetype_name(lookup_type, nil) if div_zh_raw and zh_name_has(div_zh_raw, type_zh) then local div_parent = pt_cat_as.container_parent_type if div_parent == nil then div_parent = div.container_parent_type end if div_parent == nil then div_parent = pt_cat_as.type end return div_parent, pt_cat_as.prep or div.prep or "of", lookup_type end end end return nil, nil, nil end -- =========================================================================== -- Handler 1 — Bare capital category labels -- e.g. "首都", "省會", "首府", "縣治" -- =========================================================================== insert(handlers, function(label) local holonym_type = zh_cap_label_to_holonym[label] if not holonym_type then return nil end local zh_raw = m_placetypes.get_zh_placetype_name(holonym_type, nil) local zh_holonym = zh_raw and format_zh_name(zh_raw) or holonym_type return { type = "name", topic = label, description = "{{{langname}}}中" .. zh_holonym .. "[[" .. label .. "]]的名稱。", parents = {"首都"}, } end) -- =========================================================================== -- Handler 2 — Bare placetype categories -- e.g. "城市", "河流", "山脈", "國家" -- =========================================================================== insert(handlers, function(label) local en_keys = zh_name_to_pt_keys[label] if not en_keys then return nil end for _, en_key in ipairs(en_keys) do local canon_pt, ptdata = m_placetypes.get_placetype_data(en_key, "from category") if canon_pt then local from_cat = {from_category = true, no_split_qualifiers = true} local bare_parent = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) local bcp = m_placetypes.get_placetype_prop(pt, "bare_category_parent") if bcp then return bcp end local cls = m_placetypes.get_placetype_prop(pt, "class") if cls then return class_to_bare_category_parent[cls] end end, from_cat) or "地名" local addl_parents = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) return m_placetypes.get_placetype_prop(pt, "addl_bare_category_parents") end, from_cat) local breadcrumb = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) return m_placetypes.get_placetype_prop(pt, "bare_category_breadcrumb") end, from_cat) if type(bare_parent) == "string" and breadcrumb then bare_parent = {name = bare_parent, sort = breadcrumb} end local parents = {bare_parent} if addl_parents then m_table.extend(parents, addl_parents) end return { type = "name", topic = label, description = "{{{langname}}}中[[" .. label .. "]]的名稱。", breadcrumb = breadcrumb, parents = parents, } end end end) -- =========================================================================== -- Handler 3 — Bare placename categories (known locations) -- e.g. "美國", "法國", "北京", "加利福尼亞州" -- Supports: overriding_bare_label_parents, bare_category_parent_type, -- "+++" expansion, addl_parents, wp/wpcat/commonscat, fulldesc. -- "+++" expands to: CONTAINER的TYPE (Chinese order) or CONTAINERTYPE for "地名". -- =========================================================================== insert(handlers, function(label) local group, spec = m_locations.find_canonical_key(label) if not group then return nil end local wp = spec.wp if wp == nil then wp = true end local wpcat = spec.wpcat if wpcat == nil then wpcat = wp end local commonscat = spec.commonscat if commonscat == nil then commonscat = wpcat end local full_placename = m_locations.key_to_placename(group, label) local full_container_placename local container_iterator = m_locations.iterate_containers(group, label, spec) local containers = container_iterator() if containers then full_container_placename = m_locations.key_to_placename( containers[1].group, containers[1].key) end -- Substitute %l (full placename), %e (same, no elliptical form in Chinese), -- %c (container placename) in wp/wpcat/commonscat values. local function format_boxval(val) if val == true then val = "%l" end if type(val) == "string" then val = gsub_literally(val, "%l", full_placename) val = gsub_literally(val, "%e", full_placename) if val:find("%%c", 1, true) and full_container_placename then val = gsub_literally(val, "%c", full_container_placename) end end return val end -- Determine Chinese type label for parent category construction. -- bare_category_parent_type overrides the location's own placetype. local parent_zh_type do local override = spec.bare_category_parent_type if override then local t = type(override) == "table" and (override.type or override[1]) or override local raw = type(t) == "string" and m_placetypes.get_zh_placetype_name(t, nil) parent_zh_type = raw and format_zh_name(raw) end if not parent_zh_type then local loc_type = fetch_primary_placetype(label, spec) local raw = loc_type and m_placetypes.get_zh_placetype_name(loc_type, nil) parent_zh_type = raw and format_zh_name(raw) end end local parents = {} local bare_label_parents = spec.overriding_bare_label_parents if not bare_label_parents then bare_label_parents = {"+++"} end local inserted_containers = false for _, parent in ipairs(bare_label_parents) do if parent == "+++" then -- Expand to Chinese parent: CONTAINER的TYPE or CONTAINERTYPE for "地名"; -- omit 的 when TYPE=="國家" and container is a continent (非洲國家 not 非洲的國家) if containers then for _, container in ipairs(containers) do local ck = get_prefixed_key(container.key, container.spec) local parent_cat if parent_zh_type == "地名" then parent_cat = ck .. "地名" elseif parent_zh_type == "國家" and spec_is_broad(container.spec) then parent_cat = ck .. "國家" elseif parent_zh_type then parent_cat = ck .. "的" .. parent_zh_type else parent_cat = ck end m_table.insertIfNot(parents, parent_cat) end inserted_containers = true end else m_table.insertIfNot(parents, parent) end end -- If "+++" wasn't present in bare_label_parents and containers exist, insert -- bare container keys as fallback (mirrors enwikt behaviour). if not inserted_containers and containers then for _, container in ipairs(containers) do m_table.insertIfNot(parents, container.key) end end if spec.addl_parents then for _, p in ipairs(spec.addl_parents) do m_table.insertIfNot(parents, p) end end if #parents == 0 then insert(parents, "地名") end local description = spec.fulldesc or ( "{{{langname}}}中與" .. fetch_or_construct_location_desc(group, label, spec) .. "相關的詞語。") return { type = "topic", description = description, breadcrumb = full_placename, parents = parents, wp = format_boxval(wp), wpcat = format_boxval(wpcat), commonscat = format_boxval(commonscat), } end) -- =========================================================================== -- Handler 4 — Generic placetype + location -- e.g. "法國的城市", "德國的河流", "亞洲的國家" -- Matches placetypes that carry generic_before_non_cities or generic_before_cities. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local en_keys = zh_name_to_pt_keys[type_zh] if en_keys then for _, en_key in ipairs(en_keys) do local canon_pt, ptdata = m_placetypes.get_placetype_data(en_key, "from category") if canon_pt and ptdata and (ptdata.generic_before_non_cities or ptdata.generic_before_cities) then local group, key, spec = find_place(place_str) if group then local allow = true if spec.is_former_place and en_key ~= "place" then allow = false end if allow then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end end end end) -- =========================================================================== -- Handler 4b — Continent/broad location + 國家 (no 的) -- e.g. "非洲國家", "亞洲國家" -- Handles the no-的 form generated for country categories under continents. -- =========================================================================== insert(handlers, function(label) local zh_type = "國家" local zh_type_len = #zh_type -- byte length (6 for 2 Chinese chars in UTF-8) if #label <= zh_type_len or label:sub(-zh_type_len) ~= zh_type then return nil end local place_str = label:sub(1, #label - zh_type_len) local group, key, spec = find_place(place_str) if not group or not spec_is_broad(spec) then return nil end local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. zh_type .. "]]的名稱。" local parents = {key, {name = zh_type, sort = " " .. key}} return { type = "name", topic = label, description = desc, breadcrumb = zh_type, parents = parents, } end) -- =========================================================================== -- Handler 5 — Capital + location (bare capital label) -- e.g. "美國的首都", "四川省的省會", "德克薩斯州的首府" -- Handles bare capital labels from zh_cap_label_to_holonym. -- Must precede handler 6 (compound capital) and handler 7 (division) to avoid -- mis-matching capital labels that also appear in a location's divs via cat_as. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype if zh_cap_label_to_holonym[type_zh] then local group, key, spec = find_place(place_str) if group then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end) -- =========================================================================== -- Handler 6 — Compound capital label + location -- e.g. "美國的州首府", "法國的行政區首府", "澳大利亞的地區首府" -- Compound label = zh_name(holonym_type) .. zh_cap_label(holonym_type). -- Built at load time in zh_compound_cap_to_placetypes. -- Must precede handler 7 (division) to avoid mis-matching. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local target_pts = zh_compound_cap_to_placetypes[type_zh] if target_pts then local group, key, spec = find_place(place_str) if group then -- Check if any target placetype appears in this location's divs. -- Div types are plural English strings ("states"); singularize before comparing. local found = false for _, divlist in ipairs({spec.divs, spec.addl_divs, spec.addl_divs_for_categorization}) do if divlist and not found then if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local function check_div_type(pt_type) local sg = m_placetypes.maybe_singularize_placetype(pt_type) or pt_type for _, target_pt in ipairs(target_pts) do if sg == target_pt or pt_type == target_pt then found = true break end end end check_div_type(div.type) if not found and div.cat_as then local ca = div.cat_as if type(ca) ~= "table" or ca.type then ca = {ca} end for _, pt_ca in ipairs(ca) do if type(pt_ca) == "string" then pt_ca = {type = pt_ca} end check_div_type(pt_ca.type) if found then break end end end if found then break end end end if found then break end end if found then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end end) -- =========================================================================== -- Handler 7 — Administrative division + location -- e.g. "美國的州", "法國的省", "英國的構成國", "日本的縣" -- Uses forward zh_name lookup (English div type → zh_name) to avoid collision -- between English types that share the same Chinese name (state/oblast/canton → "州"). -- Singularizes plural div types ("states" → "state") before zh_name lookup. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local group, key, spec = find_place(place_str) if group then local div_parent, div_prep, matched_type = find_div_by_zh_name(spec.divs, type_zh) if div_parent == nil then div_parent, div_prep, matched_type = find_div_by_zh_name(spec.addl_divs, type_zh) end if div_parent == nil then div_parent, div_prep, matched_type = find_div_by_zh_name(spec.addl_divs_for_categorization, type_zh) end if div_parent ~= nil then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if div_parent then -- div_parent == false means suppress parent cat if spec.no_container_parent then insert(parents, {name = type_zh, sort = " " .. key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do -- Map English div_parent key back to Chinese for parent category name. local dp_zh if type(div_parent) == "string" then local sg_dp = m_placetypes.maybe_singularize_placetype(div_parent) or div_parent local dp_raw = m_placetypes.get_zh_placetype_name(sg_dp, nil) dp_zh = dp_raw and format_zh_name(dp_raw) or type_zh else dp_zh = type_zh end insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. dp_zh, sort = key }) end else insert(parents, {name = type_zh, sort = " " .. key}) end end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end) -- =========================================================================== -- Static labels — top-level grouping categories -- =========================================================================== labels["地名"] = { type = "grouping", description = "{{{langname}}}中地名的分類。", parents = {"名稱"}, } labels["政治實體"] = { type = "grouping", description = "{{{langname}}}中政治實體的名稱。", parents = {"地名"}, } labels["行政區劃"] = { type = "grouping", description = "{{{langname}}}中行政區劃的名稱。", parents = {"地名"}, } labels["聚落"] = { type = "grouping", description = "{{{langname}}}中聚落地名。", parents = {"地名"}, } labels["首都"] = { type = "grouping", description = "{{{langname}}}中首都及各類首府的名稱。", parents = {"聚落"}, } labels["自然地物"] = { type = "grouping", description = "{{{langname}}}中自然地物的名稱。", parents = {"地名"}, } labels["人工建物"] = { type = "grouping", description = "{{{langname}}}中人工建物的名稱。", parents = {"地名"}, } labels["地理文化區域"] = { type = "grouping", description = "{{{langname}}}中地理及文化區域的名稱。", parents = {"地名"}, } labels["特定國家的行政區劃"] = { type = "grouping", description = "{{{langname}}}中特定國家行政區劃的分類。", parents = {"地名"}, } -- --------------------------------------------------------------------------- -- Misc. place-related labels -- --------------------------------------------------------------------------- labels["外名"] = { type = "name", description = "{{{langname}}}[[外名]]。", parents = {"地名"}, } labels["古埃及行政區"] = { type = "name", description = "{{{langname}}}中[[古埃及]][[行政區]]的名稱。", breadcrumb = "行政區", parents = {"古埃及"}, } -- --------------------------------------------------------------------------- -- Sui generis place categories (cross-jurisdictional / transcontinental regions) -- --------------------------------------------------------------------------- labels["大西洋"] = { type = "related-to", description = "{{{langname}}}中與[[大西洋]]相關的詞語。", parents = {"地球"}, } labels["不列顛群島"] = { type = "related-to", description = "{{{langname}}}中與[[大不列顛島]]、[[愛爾蘭島]]及鄰近島嶼相關的詞語。", parents = {"歐洲", "島嶼"}, } labels["歐盟"] = { type = "related-to", description = "{{{langname}}}中與[[歐盟]]相關的詞語。", parents = {"歐洲"}, } labels["加斯科涅"] = { type = "related-to", description = "{{{langname}}}中與[[加斯科涅]]相關的詞語。", parents = {"法國"}, } labels["印度次大陸"] = { type = "related-to", description = "{{{langname}}}中與[[印度次大陸]]相關的詞語。", parents = {"南亞"}, } labels["孟加拉"] = { type = "related-to", description = "{{{langname}}}中與[[孟加拉]]地區相關的詞語。", parents = {"印度次大陸"}, } labels["克什米爾"] = { type = "related-to", description = "{{{langname}}}中與[[克什米爾]]相關的詞語。", parents = {"印度次大陸"}, } labels["克什米爾(印度)"] = { type = "related-to", description = "{{{langname}}}中[[印度]]管轄的[[克什米爾]]地名。", parents = {"印度", "克什米爾"}, } labels["朝鮮半島"] = { type = "related-to", description = "{{{langname}}}中與[[朝鮮半島]]相關的詞語。", parents = {"亞洲"}, } labels["朗格多克"] = { type = "related-to", description = "{{{langname}}}中與[[朗格多克]]相關的詞語。", parents = {"法國"}, } labels["拉普蘭"] = { type = "related-to", description = "{{{langname}}}中與[[拉普蘭]]相關的詞語。", parents = {"歐洲", "芬蘭", "挪威", "俄羅斯", "瑞典"}, } labels["中東"] = { type = "related-to", description = "{{{langname}}}中與[[中東]]相關的詞語。", parents = {"非洲", "亞洲"}, } labels["荷屬安的列斯"] = { type = "related-to", description = "{{{langname}}}中與[[荷屬安的列斯]]相關的詞語。", parents = {"荷蘭", "北美洲"}, } labels["海外法國"] = { type = "related-to", description = "{{{langname}}}中與[[海外法國]]相關的詞語。", parents = {"法國"}, } labels["普羅旺斯"] = { type = "related-to", description = "{{{langname}}}中與[[普羅旺斯]]相關的詞語。", parents = {"法國"}, } labels["波蘭人民共和國"] = { type = "related-to", description = "{{{langname}}}中與[[波蘭人民共和國]]相關的詞語。", parents = {"波蘭"}, } labels["南亞"] = { type = "related-to", description = "{{{langname}}}中與[[南亞]]相關的詞語。", parents = {"歐亞大陸", "亞洲"}, } return {LABELS = labels, HANDLERS = handlers} gb5thrtfacz5zstivhm9n6orvz29nbo 9759667 9759531 2026-05-14T23:55:58Z TongcyDai 53191 9759667 Scribunto text/plain -- Chinese Wiktionary port of enwikt [[Module:category tree/topic/Places]]. -- Generates descriptions and parent-category specs for place-related category pages. -- -- Deployment name: TBD — likely [[Module:place/catetree]] or an equivalent path -- under zhwikt's category-tree infrastructure. -- -- Architecture mirrors enwikt: two tables exported as LABELS and HANDLERS. -- LABELS — static label → spec mappings (top-level grouping categories) -- HANDLERS — ordered list of functions; first non-nil return wins -- -- Chinese-specific adaptations vs. enwikt: -- * Pattern matching on 的 instead of English "in"/"of" -- * Handler 3 bare-location parent: CONTAINER的TYPE (order reversed vs. enwikt) -- Special case: TYPE=="地點" → CONTAINERTYPE (no 的) -- * Handler 6 uses forward zh_name lookup (div.type → zh_name) instead of -- a reverse map, because many English placetypes share the same Chinese name -- (e.g. state/oblast/canton all → "州"; province/department/voivodeship → "省") -- * Handler 7 (new): compound capital label + location ("美國的州首府") -- Compound = zh_name(holonym_type) .. zh_cap_label(holonym_type) -- Built at load time; skips country/constituent country (no 國首都 category) -- * No article handling (Chinese has no definite article) -- * Serial enumeration: 、(non-final) 和(final) -- * Description format: {{{langname}}}中LOCATION_DESC[[PLACETYPE]]的名稱。 local labels = {} local handlers = {} local m_table = require("Module:table") local m_locations = require("Module:place/locations") local m_placetypes = require("Module:place/placetypes") local m_zh_data = require("Module:place/data") local internal_error = m_locations.internal_error local zh_strings = m_placetypes.zh_strings local zh_cap_by_holonym = m_placetypes.zh_capital_label_by_holonym_type local format_zh_name = m_placetypes.format_zh_name local insert = table.insert local concat = table.concat local function is_callable(val) return type(val) == "function" end -- Literal-string gsub (no regex metacharacters interpreted in `from` or `to`). local function gsub_literally(str, from, to) return (str:gsub(from:gsub("[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1"), to:gsub("%%", "%%%%"))) end -- Get the first (primary) placetype from spec. local function fetch_primary_placetype(key, spec) local placetype = spec.placetype if type(placetype) == "table" then placetype = placetype[1] end return placetype end -- True for continent/supercontinent/planet specs (used to omit 的 in 非洲國家). local function spec_is_broad(spec) local pt = spec and spec.placetype if not pt then return false end local pts = type(pt) == "table" and pt or {pt} for _, p in ipairs(pts) do if p == "continent" or p == "supercontinent" or p == "planet" then return true end end return false end -- --------------------------------------------------------------------------- -- Chinese serial joiner: {"A","B","C"} → "A、B和C" -- --------------------------------------------------------------------------- local function zh_join(items) local n = #items if n == 0 then return "" end if n == 1 then return items[1] end local parts = {} for i = 1, n - 1 do insert(parts, items[i]) if i < n - 1 then insert(parts, zh_strings.enum_sep) end end insert(parts, zh_strings.and_conj) insert(parts, items[n]) return concat(parts) end -- --------------------------------------------------------------------------- -- Placetype class → Chinese bare parent category label -- --------------------------------------------------------------------------- local class_to_bare_category_parent = { ["polity"] = "政治實體", ["subpolity"] = "行政區劃", ["settlement"] = "聚落", ["non-admin settlement"] = "聚落", ["capital"] = "首都", ["natural feature"] = "自然地物", ["man-made structure"] = "人造構築物", ["geographic region"] = "地理文化區域", } local class_is_political_division = { ["polity"] = true, ["subpolity"] = true, ["settlement"] = true, ["non-admin settlement"] = false, ["capital"] = true, ["natural feature"] = false, ["man-made structure"] = false, ["geographic region"] = false, ["generic place"] = false, } -- Enwikt bare_category_parent / addl_bare_category_parents → zhwikt label. -- false = no equivalent, skip. local en_category_to_zh = { ["islands"] = "島嶼", ["cities"] = "城市", ["political divisions"] = "行政區劃", ["places"] = "地點", ["former settlements"] = "歷史聚居地", ["country-like entities"]= "類國家實體", ["names"] = "名稱", ["man-made structures"] = "人造構築物", ["countries"] = "國家", ["bodies of water"] = "水體", ["water"] = "水", ["landforms"] = "地形", ["ecosystems"] = "生態系統", ["forestry"] = "林學", ["mountains"] = "山", ["seas"] = "海", ["bridges"] = "橋", ["buildings"] = "建築", ["roads"] = "道路", } -- Translate enwikt category parent string to zhwikt equivalent. -- Returns zh string, or nil if should be skipped. -- Non-English strings (assumed already Chinese) pass through unchanged. local function translate_cat_parent(val) if type(val) ~= "string" then return nil end local mapped = en_category_to_zh[val] if mapped == false then return nil end if mapped then return mapped end return val end -- --------------------------------------------------------------------------- -- Load-time reverse maps -- --------------------------------------------------------------------------- -- Chinese capital label → holonym type (e.g. "首都" → "country") local zh_cap_label_to_holonym = {} for holonym_type, zh_label in pairs(zh_cap_by_holonym) do if not zh_cap_label_to_holonym[zh_label] then zh_cap_label_to_holonym[zh_label] = holonym_type end end -- Chinese placetype name → list of English placetype keys (one-to-many). -- Used by handler 2 (bare placetype) and handler 4 (generic X的Y). local zh_name_to_pt_keys = {} do local function add(name, en_key) zh_name_to_pt_keys[name] = zh_name_to_pt_keys[name] or {} insert(zh_name_to_pt_keys[name], en_key) end for en_key, entry in pairs(m_zh_data.zh_placetype_data) do if entry.zh_name then local names = type(entry.zh_name) == "table" and entry.zh_name or {entry.zh_name} for _, name in ipairs(names) do add(name, en_key) end end if entry.zh_name_by_holonym_type then for _, zh_name_val in pairs(entry.zh_name_by_holonym_type) do local names = type(zh_name_val) == "table" and zh_name_val or {zh_name_val} for _, name in ipairs(names) do add(name, en_key) end end end end end -- Compound capital label → list of holonym placetype keys. -- Compound = zh_name(holonym_type) .. zh_cap_label(holonym_type). -- E.g. "州首府" → {"state"}, "地區首府" → {"territory", "region"}. -- Skip country/constituent country (no 國首都 category per design). -- Skip entries where compound == cap_label (e.g. "省省會"/"縣縣治" excluded to -- avoid ambiguous matches — these bare labels are already handled by handler 5). local zh_compound_cap_to_placetypes = {} do local function add_compound(compound, pt) zh_compound_cap_to_placetypes[compound] = zh_compound_cap_to_placetypes[compound] or {} insert(zh_compound_cap_to_placetypes[compound], pt) end for holonym_type, cap_label in pairs(zh_cap_by_holonym) do if holonym_type ~= "country" and holonym_type ~= "constituent country" then local zh_name_raw = m_placetypes.get_zh_placetype_name(holonym_type, nil) if zh_name_raw then local zh_name_str = format_zh_name(zh_name_raw) local compound = zh_name_str .. cap_label if compound ~= cap_label then add_compound(compound, holonym_type) end end end end end -- --------------------------------------------------------------------------- -- Location-linking helpers -- --------------------------------------------------------------------------- local function construct_linked_location(group, key, spec) local full_placename = m_locations.key_to_placename(group, key) return m_locations.construct_linked_placename(spec, full_placename) end -- Returns a location description string for embedding in category descriptions. -- Shows one level of container for sub-national entries: -- country → [[法國]] -- state → [[加州]]([[美國]]的[[州]]) -- city → [[舊金山]]([[加州]]的[[城市]]) local function construct_location_desc(group, key, spec) local linked = construct_linked_location(group, key, spec) if spec.no_include_container_in_desc then return linked end local container_iterator = m_locations.iterate_containers(group, key, spec) local containers = container_iterator() if not containers then return linked end local location_type = spec.placetype if type(location_type) == "table" then location_type = location_type[1] end local zh_name_raw = location_type and m_placetypes.get_zh_placetype_name(location_type, nil) local zh_type = zh_name_raw and format_zh_name(zh_name_raw) local cont_links = {} for _, c in ipairs(containers) do insert(cont_links, construct_linked_location(c.group, c.key, c.spec)) end local cont_str = zh_join(cont_links) if zh_type then return linked .. "(" .. cont_str .. "的" .. zh_type .. ")" else return linked .. "(位於" .. cont_str .. ")" end end -- Fetch or construct the location description, substituting "+++" with the -- auto-constructed description if present in spec.keydesc. local function fetch_or_construct_location_desc(group, key, spec) local val = spec.keydesc if is_callable(val) then val = val(group, key, spec) spec.keydesc = val end if val then if val:find("%+%+%+", 1, true) then local base = construct_location_desc(group, key, spec) val = gsub_literally(val, "+++", base) end return val end return construct_location_desc(group, key, spec) end -- --------------------------------------------------------------------------- -- Split label at every occurrence of 的 -- Returns list of {place, placetype} tables (all possible splits left→right). -- --------------------------------------------------------------------------- local function split_at_de(label) local results = {} local de = "的" local start = 1 while true do local s, e = label:find(de, start, true) if not s then break end local place_part = label:sub(1, s - 1) local type_part = label:sub(e + 1) if #place_part > 0 and #type_part > 0 then insert(results, {place = place_part, placetype = type_part}) end start = e + 1 end return results end -- Locate group + key + spec for a Chinese location string. local function find_place(place_str) local group, spec = m_locations.find_canonical_key(place_str) if group then return group, place_str, spec end return nil end -- No articles in Chinese; just return the key. local function get_prefixed_key(key, spec) if m_placetypes.get_prefixed_key then return m_placetypes.get_prefixed_key(key, spec) end return key end -- Check whether zh_name_val (string or array) contains type_zh. local function zh_name_has(zh_name_val, type_zh) if type(zh_name_val) == "table" then for _, n in ipairs(zh_name_val) do if n == type_zh then return true end end return false end return zh_name_val == type_zh end -- Search divs list for a div whose Chinese name matches type_zh. -- Singularizes div.type before zh_name lookup (divs use plural English keys -- like "states", while zh_placetype_data uses singular keys like "state"). -- Uses forward lookup (English key → zh_name) to handle many-to-one collisions. -- Returns: div_parent (English key or false), prep, matched_en_type. -- div_parent == nil means no match; div_parent == false means match but no parent cat. local function find_div_by_zh_name(divs, type_zh) if not divs then return nil, nil, nil end if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) == "string" then div = {type = div} end local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" or cat_as.type then cat_as = {cat_as} end for _, pt_cat_as in ipairs(cat_as) do if type(pt_cat_as) == "string" then pt_cat_as = {type = pt_cat_as} end -- Singularize plural div type before zh_name lookup. local lookup_type = m_placetypes.maybe_singularize_placetype(pt_cat_as.type) or pt_cat_as.type local div_zh_raw = m_placetypes.get_zh_placetype_name(lookup_type, nil) if div_zh_raw and zh_name_has(div_zh_raw, type_zh) then local div_parent = pt_cat_as.container_parent_type if div_parent == nil then div_parent = div.container_parent_type end if div_parent == nil then div_parent = pt_cat_as.type end return div_parent, pt_cat_as.prep or div.prep or "of", lookup_type end end end return nil, nil, nil end -- =========================================================================== -- Handler 1 — Bare capital category labels -- e.g. "首都", "省會", "首府", "縣治" -- =========================================================================== insert(handlers, function(label) local holonym_type = zh_cap_label_to_holonym[label] if not holonym_type then return nil end local zh_raw = m_placetypes.get_zh_placetype_name(holonym_type, nil) local zh_holonym = zh_raw and format_zh_name(zh_raw) or holonym_type return { type = "name", topic = label, description = "{{{langname}}}中" .. zh_holonym .. "[[" .. label .. "]]的名稱。", parents = {"首都"}, } end) -- =========================================================================== -- Handler 2 — Bare placetype categories -- e.g. "城市", "河流", "山脈", "國家" -- =========================================================================== insert(handlers, function(label) local en_keys = zh_name_to_pt_keys[label] if not en_keys then return nil end for _, en_key in ipairs(en_keys) do local canon_pt, ptdata = m_placetypes.get_placetype_data(en_key, "from category") if canon_pt then local from_cat = {from_category = true, no_split_qualifiers = true} local bare_parent = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) local bcp = m_placetypes.get_placetype_prop(pt, "bare_category_parent") if bcp then local zh = translate_cat_parent(bcp) if zh then return zh end end local cls = m_placetypes.get_placetype_prop(pt, "class") if cls then return class_to_bare_category_parent[cls] end end, from_cat) or "地點" local addl_parents_raw = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) return m_placetypes.get_placetype_prop(pt, "addl_bare_category_parents") end, from_cat) local addl_parents if addl_parents_raw then addl_parents = {} for _, v in ipairs(addl_parents_raw) do local zh = translate_cat_parent(v) if zh then m_table.insertIfNot(addl_parents, zh) end end if #addl_parents == 0 then addl_parents = nil end end local breadcrumb = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) return m_placetypes.get_placetype_prop(pt, "bare_category_breadcrumb") end, from_cat) if type(bare_parent) == "string" and breadcrumb then bare_parent = {name = bare_parent, sort = breadcrumb} end local parents = {bare_parent} if addl_parents then m_table.extend(parents, addl_parents) end return { type = "name", topic = label, description = "{{{langname}}}中[[" .. label .. "]]的名稱。", breadcrumb = breadcrumb, parents = parents, } end end end) -- =========================================================================== -- Handler 3 — Bare placename categories (known locations) -- e.g. "美國", "法國", "北京", "加利福尼亞州" -- Supports: overriding_bare_label_parents, bare_category_parent_type, -- "+++" expansion, addl_parents, wp/wpcat/commonscat, fulldesc. -- "+++" expands to: CONTAINER的TYPE (Chinese order) or CONTAINERTYPE for "地點". -- =========================================================================== insert(handlers, function(label) local group, spec = m_locations.find_canonical_key(label) if not group then return nil end local wp = spec.wp if wp == nil then wp = true end local wpcat = spec.wpcat if wpcat == nil then wpcat = wp end local commonscat = spec.commonscat if commonscat == nil then commonscat = wpcat end local full_placename = m_locations.key_to_placename(group, label) local full_container_placename local container_iterator = m_locations.iterate_containers(group, label, spec) local containers = container_iterator() if containers then full_container_placename = m_locations.key_to_placename( containers[1].group, containers[1].key) end -- Substitute %l (full placename), %e (same, no elliptical form in Chinese), -- %c (container placename) in wp/wpcat/commonscat values. local function format_boxval(val) if val == true then val = "%l" end if type(val) == "string" then val = gsub_literally(val, "%l", full_placename) val = gsub_literally(val, "%e", full_placename) if val:find("%%c", 1, true) and full_container_placename then val = gsub_literally(val, "%c", full_container_placename) end end return val end -- Determine Chinese type label for parent category construction. -- bare_category_parent_type overrides the location's own placetype. local parent_zh_type do local override = spec.bare_category_parent_type if override then local t = type(override) == "table" and (override.type or override[1]) or override local raw = type(t) == "string" and m_placetypes.get_zh_placetype_name(t, nil) parent_zh_type = raw and format_zh_name(raw) end if not parent_zh_type then local loc_type = fetch_primary_placetype(label, spec) local raw = loc_type and m_placetypes.get_zh_placetype_name(loc_type, nil) parent_zh_type = raw and format_zh_name(raw) end end local parents = {} local bare_label_parents = spec.overriding_bare_label_parents if not bare_label_parents then bare_label_parents = {"+++"} end local inserted_containers = false for _, parent in ipairs(bare_label_parents) do if parent == "+++" then -- Expand to Chinese parent: CONTAINER的TYPE or CONTAINERTYPE for "地點"; -- omit 的 when TYPE=="國家" and container is a continent (非洲國家 not 非洲的國家) if containers then for _, container in ipairs(containers) do local ck = get_prefixed_key(container.key, container.spec) local parent_cat if parent_zh_type == "地點" then parent_cat = ck .. "地點" elseif parent_zh_type == "國家" and spec_is_broad(container.spec) then parent_cat = ck .. "國家" elseif parent_zh_type then parent_cat = ck .. "的" .. parent_zh_type else parent_cat = ck end m_table.insertIfNot(parents, parent_cat) end inserted_containers = true end else m_table.insertIfNot(parents, parent) end end -- If "+++" wasn't present in bare_label_parents and containers exist, insert -- bare container keys as fallback (mirrors enwikt behaviour). if not inserted_containers and containers then for _, container in ipairs(containers) do m_table.insertIfNot(parents, container.key) end end if spec.addl_parents then for _, p in ipairs(spec.addl_parents) do m_table.insertIfNot(parents, p) end end if #parents == 0 then insert(parents, "地點") end local description = spec.fulldesc or ( "{{{langname}}}中與" .. fetch_or_construct_location_desc(group, label, spec) .. "相關的詞語。") return { type = "topic", description = description, breadcrumb = full_placename, parents = parents, wp = format_boxval(wp), wpcat = format_boxval(wpcat), commonscat = format_boxval(commonscat), } end) -- =========================================================================== -- Handler 4 — Generic placetype + location -- e.g. "法國的城市", "德國的河流", "亞洲的國家" -- Matches placetypes that carry generic_before_non_cities or generic_before_cities. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local en_keys = zh_name_to_pt_keys[type_zh] if en_keys then for _, en_key in ipairs(en_keys) do local canon_pt, ptdata = m_placetypes.get_placetype_data(en_key, "from category") if canon_pt and ptdata and (ptdata.generic_before_non_cities or ptdata.generic_before_cities) then local group, key, spec = find_place(place_str) if group then local allow = true if spec.is_former_place and en_key ~= "place" then allow = false end if allow then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end end end end) -- =========================================================================== -- Handler 4b — Continent/broad location + 國家 (no 的) -- e.g. "非洲國家", "亞洲國家" -- Handles the no-的 form generated for country categories under continents. -- =========================================================================== insert(handlers, function(label) local zh_type = "國家" local zh_type_len = #zh_type -- byte length (6 for 2 Chinese chars in UTF-8) if #label <= zh_type_len or label:sub(-zh_type_len) ~= zh_type then return nil end local place_str = label:sub(1, #label - zh_type_len) local group, key, spec = find_place(place_str) if not group or not spec_is_broad(spec) then return nil end local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. zh_type .. "]]的名稱。" local parents = {key, {name = zh_type, sort = " " .. key}} return { type = "name", topic = label, description = desc, breadcrumb = zh_type, parents = parents, } end) -- =========================================================================== -- Handler 5 — Capital + location (bare capital label) -- e.g. "美國的首都", "四川省的省會", "德克薩斯州的首府" -- Handles bare capital labels from zh_cap_label_to_holonym. -- Must precede handler 6 (compound capital) and handler 7 (division) to avoid -- mis-matching capital labels that also appear in a location's divs via cat_as. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype if zh_cap_label_to_holonym[type_zh] then local group, key, spec = find_place(place_str) if group then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end) -- =========================================================================== -- Handler 6 — Compound capital label + location -- e.g. "美國的州首府", "法國的行政區首府", "澳大利亞的地區首府" -- Compound label = zh_name(holonym_type) .. zh_cap_label(holonym_type). -- Built at load time in zh_compound_cap_to_placetypes. -- Must precede handler 7 (division) to avoid mis-matching. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local target_pts = zh_compound_cap_to_placetypes[type_zh] if target_pts then local group, key, spec = find_place(place_str) if group then -- Check if any target placetype appears in this location's divs. -- Div types are plural English strings ("states"); singularize before comparing. local found = false for _, divlist in ipairs({spec.divs, spec.addl_divs, spec.addl_divs_for_categorization}) do if divlist and not found then if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local function check_div_type(pt_type) local sg = m_placetypes.maybe_singularize_placetype(pt_type) or pt_type for _, target_pt in ipairs(target_pts) do if sg == target_pt or pt_type == target_pt then found = true break end end end check_div_type(div.type) if not found and div.cat_as then local ca = div.cat_as if type(ca) ~= "table" or ca.type then ca = {ca} end for _, pt_ca in ipairs(ca) do if type(pt_ca) == "string" then pt_ca = {type = pt_ca} end check_div_type(pt_ca.type) if found then break end end end if found then break end end end if found then break end end if found then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end end) -- =========================================================================== -- Handler 7 — Administrative division + location -- e.g. "美國的州", "法國的省", "英國的構成國", "日本的縣" -- Uses forward zh_name lookup (English div type → zh_name) to avoid collision -- between English types that share the same Chinese name (state/oblast/canton → "州"). -- Singularizes plural div types ("states" → "state") before zh_name lookup. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local group, key, spec = find_place(place_str) if group then local div_parent, div_prep, matched_type = find_div_by_zh_name(spec.divs, type_zh) if div_parent == nil then div_parent, div_prep, matched_type = find_div_by_zh_name(spec.addl_divs, type_zh) end if div_parent == nil then div_parent, div_prep, matched_type = find_div_by_zh_name(spec.addl_divs_for_categorization, type_zh) end if div_parent ~= nil then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if div_parent then -- div_parent == false means suppress parent cat if spec.no_container_parent then insert(parents, {name = type_zh, sort = " " .. key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do -- Map English div_parent key back to Chinese for parent category name. local dp_zh if type(div_parent) == "string" then local sg_dp = m_placetypes.maybe_singularize_placetype(div_parent) or div_parent local dp_raw = m_placetypes.get_zh_placetype_name(sg_dp, nil) dp_zh = dp_raw and format_zh_name(dp_raw) or type_zh else dp_zh = type_zh end insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. dp_zh, sort = key }) end else insert(parents, {name = type_zh, sort = " " .. key}) end end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end) -- =========================================================================== -- Static labels — top-level grouping categories -- =========================================================================== labels["地點"] = { type = "grouping", description = "{{{langname}}}中地點的分類。", parents = {"名稱"}, } labels["政治實體"] = { type = "grouping", description = "{{{langname}}}中政治實體的名稱。", parents = {"地點"}, } labels["行政區劃"] = { type = "grouping", description = "{{{langname}}}中行政區劃的名稱。", parents = {"地點"}, } labels["聚落"] = { type = "grouping", description = "{{{langname}}}中聚落地名。", parents = {"地點"}, } labels["首都"] = { type = "grouping", description = "{{{langname}}}中首都及各類首府的名稱。", parents = {"聚落"}, } labels["自然地物"] = { type = "grouping", description = "{{{langname}}}中自然地物的名稱。", parents = {"地點"}, } labels["人造構築物"] = { type = "grouping", description = "{{{langname}}}中人造構築物的名稱。", parents = {"地點"}, } labels["地理文化區域"] = { type = "grouping", description = "{{{langname}}}中地理及文化區域的名稱。", parents = {"地點"}, } labels["特定國家的行政區劃"] = { type = "grouping", description = "{{{langname}}}中特定國家行政區劃的分類。", parents = {"地點"}, } -- --------------------------------------------------------------------------- -- Misc. place-related labels -- --------------------------------------------------------------------------- labels["外名"] = { type = "name", description = "{{{langname}}}[[外名]]。", parents = {"地點"}, } labels["古埃及行政區"] = { type = "name", description = "{{{langname}}}中[[古埃及]][[行政區]]的名稱。", breadcrumb = "行政區", parents = {"古埃及"}, } -- --------------------------------------------------------------------------- -- Sui generis place categories (cross-jurisdictional / transcontinental regions) -- --------------------------------------------------------------------------- labels["大西洋"] = { type = "related-to", description = "{{{langname}}}中與[[大西洋]]相關的詞語。", parents = {"地球"}, } labels["不列顛群島"] = { type = "related-to", description = "{{{langname}}}中與[[大不列顛島]]、[[愛爾蘭島]]及鄰近島嶼相關的詞語。", parents = {"歐洲", "島嶼"}, } labels["歐盟"] = { type = "related-to", description = "{{{langname}}}中與[[歐盟]]相關的詞語。", parents = {"歐洲"}, } labels["加斯科涅"] = { type = "related-to", description = "{{{langname}}}中與[[加斯科涅]]相關的詞語。", parents = {"法國"}, } labels["印度次大陸"] = { type = "related-to", description = "{{{langname}}}中與[[印度次大陸]]相關的詞語。", parents = {"南亞"}, } labels["孟加拉"] = { type = "related-to", description = "{{{langname}}}中與[[孟加拉]]地區相關的詞語。", parents = {"印度次大陸"}, } labels["克什米爾"] = { type = "related-to", description = "{{{langname}}}中與[[克什米爾]]相關的詞語。", parents = {"印度次大陸"}, } labels["克什米爾(印度)"] = { type = "related-to", description = "{{{langname}}}中[[印度]]管轄的[[克什米爾]]地名。", parents = {"印度", "克什米爾"}, } labels["朝鮮半島"] = { type = "related-to", description = "{{{langname}}}中與[[朝鮮半島]]相關的詞語。", parents = {"亞洲"}, } labels["朗格多克"] = { type = "related-to", description = "{{{langname}}}中與[[朗格多克]]相關的詞語。", parents = {"法國"}, } labels["拉普蘭"] = { type = "related-to", description = "{{{langname}}}中與[[拉普蘭]]相關的詞語。", parents = {"歐洲", "芬蘭", "挪威", "俄羅斯", "瑞典"}, } labels["中東"] = { type = "related-to", description = "{{{langname}}}中與[[中東]]相關的詞語。", parents = {"非洲", "亞洲"}, } labels["荷屬安的列斯"] = { type = "related-to", description = "{{{langname}}}中與[[荷屬安的列斯]]相關的詞語。", parents = {"荷蘭", "北美洲"}, } labels["海外法國"] = { type = "related-to", description = "{{{langname}}}中與[[海外法國]]相關的詞語。", parents = {"法國"}, } labels["普羅旺斯"] = { type = "related-to", description = "{{{langname}}}中與[[普羅旺斯]]相關的詞語。", parents = {"法國"}, } labels["波蘭人民共和國"] = { type = "related-to", description = "{{{langname}}}中與[[波蘭人民共和國]]相關的詞語。", parents = {"波蘭"}, } labels["南亞"] = { type = "related-to", description = "{{{langname}}}中與[[南亞]]相關的詞語。", parents = {"歐亞大陸", "亞洲"}, } return {LABELS = labels, HANDLERS = handlers} 98ri1bjtr7dnenpwh8q5lqftxxw6g8d 9759679 9759667 2026-05-15T00:12:45Z TongcyDai 53191 9759679 Scribunto text/plain -- Chinese Wiktionary port of enwikt [[Module:category tree/topic/Places]]. -- Generates descriptions and parent-category specs for place-related category pages. -- -- Deployment name: TBD — likely [[Module:place/catetree]] or an equivalent path -- under zhwikt's category-tree infrastructure. -- -- Architecture mirrors enwikt: two tables exported as LABELS and HANDLERS. -- LABELS — static label → spec mappings (top-level grouping categories) -- HANDLERS — ordered list of functions; first non-nil return wins -- -- Chinese-specific adaptations vs. enwikt: -- * Pattern matching on 的 instead of English "in"/"of" -- * Handler 3 bare-location parent: CONTAINER的TYPE (order reversed vs. enwikt) -- Special case: TYPE=="地點" → CONTAINERTYPE (no 的) -- * Handler 6 uses forward zh_name lookup (div.type → zh_name) instead of -- a reverse map, because many English placetypes share the same Chinese name -- (e.g. state/oblast/canton all → "州"; province/department/voivodeship → "省") -- * Handler 7 (new): compound capital label + location ("美國的州首府") -- Compound = zh_name(holonym_type) .. zh_cap_label(holonym_type) -- Built at load time; skips country/constituent country (no 國首都 category) -- * No article handling (Chinese has no definite article) -- * Serial enumeration: 、(non-final) 和(final) -- * Description format: {{{langname}}}中LOCATION_DESC[[PLACETYPE]]的名稱。 local labels = {} local handlers = {} local m_table = require("Module:table") local m_locations = require("Module:place/locations") local m_placetypes = require("Module:place/placetypes") local m_zh_data = require("Module:place/data") local internal_error = m_locations.internal_error local zh_strings = m_placetypes.zh_strings local zh_cap_by_holonym = m_placetypes.zh_capital_label_by_holonym_type local format_zh_name = m_placetypes.format_zh_name local insert = table.insert local concat = table.concat local function is_callable(val) return type(val) == "function" end -- Literal-string gsub (no regex metacharacters interpreted in `from` or `to`). local function gsub_literally(str, from, to) return (str:gsub(from:gsub("[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1"), to:gsub("%%", "%%%%"))) end -- Get the first (primary) placetype from spec. local function fetch_primary_placetype(key, spec) local placetype = spec.placetype if type(placetype) == "table" then placetype = placetype[1] end return placetype end -- True for continent/supercontinent/planet specs (used to omit 的 in 非洲國家). local function spec_is_broad(spec) local pt = spec and spec.placetype if not pt then return false end local pts = type(pt) == "table" and pt or {pt} for _, p in ipairs(pts) do if p == "continent" or p == "supercontinent" or p == "planet" then return true end end return false end -- --------------------------------------------------------------------------- -- Chinese serial joiner: {"A","B","C"} → "A、B和C" -- --------------------------------------------------------------------------- local function zh_join(items) local n = #items if n == 0 then return "" end if n == 1 then return items[1] end local parts = {} for i = 1, n - 1 do insert(parts, items[i]) if i < n - 1 then insert(parts, zh_strings.enum_sep) end end insert(parts, zh_strings.and_conj) insert(parts, items[n]) return concat(parts) end -- --------------------------------------------------------------------------- -- Placetype class → Chinese bare parent category label -- --------------------------------------------------------------------------- local class_to_bare_category_parent = { ["polity"] = "政治實體", ["subpolity"] = "行政區劃", ["settlement"] = "聚居地", ["non-admin settlement"] = "聚居地", ["capital"] = "首都", ["natural feature"] = "自然", ["man-made structure"] = "人造構築物", ["geographic region"] = "地理文化區域", } local class_is_political_division = { ["polity"] = true, ["subpolity"] = true, ["settlement"] = true, ["non-admin settlement"] = false, ["capital"] = true, ["natural feature"] = false, ["man-made structure"] = false, ["geographic region"] = false, ["generic place"] = false, } -- Enwikt bare_category_parent / addl_bare_category_parents → zhwikt label. -- false = no equivalent, skip. local en_category_to_zh = { ["islands"] = "島嶼", ["cities"] = "城市", ["political divisions"] = "行政區劃", ["places"] = "地點", ["former settlements"] = "歷史聚居地", ["country-like entities"]= "類國家實體", ["names"] = "名稱", ["man-made structures"] = "人造構築物", ["countries"] = "國家", ["bodies of water"] = "水體", ["water"] = "水", ["landforms"] = "地形", ["ecosystems"] = "生態系統", ["forestry"] = "林學", ["mountains"] = "山", ["seas"] = "海", ["bridges"] = "橋", ["buildings"] = "建築", ["roads"] = "道路", } -- Translate enwikt category parent string to zhwikt equivalent. -- Returns zh string, or nil if should be skipped. -- Non-English strings (assumed already Chinese) pass through unchanged. local function translate_cat_parent(val) if type(val) ~= "string" then return nil end local mapped = en_category_to_zh[val] if mapped == false then return nil end if mapped then return mapped end return val end -- --------------------------------------------------------------------------- -- Load-time reverse maps -- --------------------------------------------------------------------------- -- Chinese capital label → holonym type (e.g. "首都" → "country") local zh_cap_label_to_holonym = {} for holonym_type, zh_label in pairs(zh_cap_by_holonym) do if not zh_cap_label_to_holonym[zh_label] then zh_cap_label_to_holonym[zh_label] = holonym_type end end -- Chinese placetype name → list of English placetype keys (one-to-many). -- Used by handler 2 (bare placetype) and handler 4 (generic X的Y). local zh_name_to_pt_keys = {} do local function add(name, en_key) zh_name_to_pt_keys[name] = zh_name_to_pt_keys[name] or {} insert(zh_name_to_pt_keys[name], en_key) end for en_key, entry in pairs(m_zh_data.zh_placetype_data) do if entry.zh_name then local names = type(entry.zh_name) == "table" and entry.zh_name or {entry.zh_name} for _, name in ipairs(names) do add(name, en_key) end end if entry.zh_name_by_holonym_type then for _, zh_name_val in pairs(entry.zh_name_by_holonym_type) do local names = type(zh_name_val) == "table" and zh_name_val or {zh_name_val} for _, name in ipairs(names) do add(name, en_key) end end end end end -- Compound capital label → list of holonym placetype keys. -- Compound = zh_name(holonym_type) .. zh_cap_label(holonym_type). -- E.g. "州首府" → {"state"}, "地區首府" → {"territory", "region"}. -- Skip country/constituent country (no 國首都 category per design). -- Skip entries where compound == cap_label (e.g. "省省會"/"縣縣治" excluded to -- avoid ambiguous matches — these bare labels are already handled by handler 5). local zh_compound_cap_to_placetypes = {} do local function add_compound(compound, pt) zh_compound_cap_to_placetypes[compound] = zh_compound_cap_to_placetypes[compound] or {} insert(zh_compound_cap_to_placetypes[compound], pt) end for holonym_type, cap_label in pairs(zh_cap_by_holonym) do if holonym_type ~= "country" and holonym_type ~= "constituent country" then local zh_name_raw = m_placetypes.get_zh_placetype_name(holonym_type, nil) if zh_name_raw then local zh_name_str = format_zh_name(zh_name_raw) local compound = zh_name_str .. cap_label if compound ~= cap_label then add_compound(compound, holonym_type) end end end end end -- --------------------------------------------------------------------------- -- Location-linking helpers -- --------------------------------------------------------------------------- local function construct_linked_location(group, key, spec) local full_placename = m_locations.key_to_placename(group, key) return m_locations.construct_linked_placename(spec, full_placename) end -- Returns a location description string for embedding in category descriptions. -- Shows one level of container for sub-national entries: -- country → [[法國]] -- state → [[加州]]([[美國]]的[[州]]) -- city → [[舊金山]]([[加州]]的[[城市]]) local function construct_location_desc(group, key, spec) local linked = construct_linked_location(group, key, spec) if spec.no_include_container_in_desc then return linked end local container_iterator = m_locations.iterate_containers(group, key, spec) local containers = container_iterator() if not containers then return linked end local location_type = spec.placetype if type(location_type) == "table" then location_type = location_type[1] end local zh_name_raw = location_type and m_placetypes.get_zh_placetype_name(location_type, nil) local zh_type = zh_name_raw and format_zh_name(zh_name_raw) local cont_links = {} for _, c in ipairs(containers) do insert(cont_links, construct_linked_location(c.group, c.key, c.spec)) end local cont_str = zh_join(cont_links) if zh_type then return linked .. "(" .. cont_str .. "的" .. zh_type .. ")" else return linked .. "(位於" .. cont_str .. ")" end end -- Fetch or construct the location description, substituting "+++" with the -- auto-constructed description if present in spec.keydesc. local function fetch_or_construct_location_desc(group, key, spec) local val = spec.keydesc if is_callable(val) then val = val(group, key, spec) spec.keydesc = val end if val then if val:find("%+%+%+", 1, true) then local base = construct_location_desc(group, key, spec) val = gsub_literally(val, "+++", base) end return val end return construct_location_desc(group, key, spec) end -- --------------------------------------------------------------------------- -- Split label at every occurrence of 的 -- Returns list of {place, placetype} tables (all possible splits left→right). -- --------------------------------------------------------------------------- local function split_at_de(label) local results = {} local de = "的" local start = 1 while true do local s, e = label:find(de, start, true) if not s then break end local place_part = label:sub(1, s - 1) local type_part = label:sub(e + 1) if #place_part > 0 and #type_part > 0 then insert(results, {place = place_part, placetype = type_part}) end start = e + 1 end return results end -- Locate group + key + spec for a Chinese location string. local function find_place(place_str) local group, spec = m_locations.find_canonical_key(place_str) if group then return group, place_str, spec end return nil end -- No articles in Chinese; just return the key. local function get_prefixed_key(key, spec) if m_placetypes.get_prefixed_key then return m_placetypes.get_prefixed_key(key, spec) end return key end -- Check whether zh_name_val (string or array) contains type_zh. local function zh_name_has(zh_name_val, type_zh) if type(zh_name_val) == "table" then for _, n in ipairs(zh_name_val) do if n == type_zh then return true end end return false end return zh_name_val == type_zh end -- Search divs list for a div whose Chinese name matches type_zh. -- Singularizes div.type before zh_name lookup (divs use plural English keys -- like "states", while zh_placetype_data uses singular keys like "state"). -- Uses forward lookup (English key → zh_name) to handle many-to-one collisions. -- Returns: div_parent (English key or false), prep, matched_en_type. -- div_parent == nil means no match; div_parent == false means match but no parent cat. local function find_div_by_zh_name(divs, type_zh) if not divs then return nil, nil, nil end if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) == "string" then div = {type = div} end local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" or cat_as.type then cat_as = {cat_as} end for _, pt_cat_as in ipairs(cat_as) do if type(pt_cat_as) == "string" then pt_cat_as = {type = pt_cat_as} end -- Singularize plural div type before zh_name lookup. local lookup_type = m_placetypes.maybe_singularize_placetype(pt_cat_as.type) or pt_cat_as.type local div_zh_raw = m_placetypes.get_zh_placetype_name(lookup_type, nil) if div_zh_raw and zh_name_has(div_zh_raw, type_zh) then local div_parent = pt_cat_as.container_parent_type if div_parent == nil then div_parent = div.container_parent_type end if div_parent == nil then div_parent = pt_cat_as.type end return div_parent, pt_cat_as.prep or div.prep or "of", lookup_type end end end return nil, nil, nil end -- =========================================================================== -- Handler 1 — Bare capital category labels -- e.g. "首都", "省會", "首府", "縣治" -- =========================================================================== insert(handlers, function(label) local holonym_type = zh_cap_label_to_holonym[label] if not holonym_type then return nil end local zh_raw = m_placetypes.get_zh_placetype_name(holonym_type, nil) local zh_holonym = zh_raw and format_zh_name(zh_raw) or holonym_type return { type = "name", topic = label, description = "{{{langname}}}中" .. zh_holonym .. "[[" .. label .. "]]的名稱。", parents = {"首都"}, } end) -- =========================================================================== -- Handler 2 — Bare placetype categories -- e.g. "城市", "河流", "山脈", "國家" -- =========================================================================== insert(handlers, function(label) local en_keys = zh_name_to_pt_keys[label] if not en_keys then return nil end for _, en_key in ipairs(en_keys) do local canon_pt, ptdata = m_placetypes.get_placetype_data(en_key, "from category") if canon_pt then local from_cat = {from_category = true, no_split_qualifiers = true} local bare_parent = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) local bcp = m_placetypes.get_placetype_prop(pt, "bare_category_parent") if bcp then local zh = translate_cat_parent(bcp) if zh then return zh end end local cls = m_placetypes.get_placetype_prop(pt, "class") if cls then return class_to_bare_category_parent[cls] end end, from_cat) or "地點" local addl_parents_raw = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) return m_placetypes.get_placetype_prop(pt, "addl_bare_category_parents") end, from_cat) local addl_parents if addl_parents_raw then addl_parents = {} for _, v in ipairs(addl_parents_raw) do local zh = translate_cat_parent(v) if zh then m_table.insertIfNot(addl_parents, zh) end end if #addl_parents == 0 then addl_parents = nil end end local breadcrumb = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) return m_placetypes.get_placetype_prop(pt, "bare_category_breadcrumb") end, from_cat) if type(bare_parent) == "string" and breadcrumb then bare_parent = {name = bare_parent, sort = breadcrumb} end local parents = {bare_parent} if addl_parents then m_table.extend(parents, addl_parents) end return { type = "name", topic = label, description = "{{{langname}}}中[[" .. label .. "]]的名稱。", breadcrumb = breadcrumb, parents = parents, } end end end) -- =========================================================================== -- Handler 3 — Bare placename categories (known locations) -- e.g. "美國", "法國", "北京", "加利福尼亞州" -- Supports: overriding_bare_label_parents, bare_category_parent_type, -- "+++" expansion, addl_parents, wp/wpcat/commonscat, fulldesc. -- "+++" expands to: CONTAINER的TYPE (Chinese order) or CONTAINERTYPE for "地點". -- =========================================================================== insert(handlers, function(label) local group, spec = m_locations.find_canonical_key(label) if not group then return nil end local wp = spec.wp if wp == nil then wp = true end local wpcat = spec.wpcat if wpcat == nil then wpcat = wp end local commonscat = spec.commonscat if commonscat == nil then commonscat = wpcat end local full_placename = m_locations.key_to_placename(group, label) local full_container_placename local container_iterator = m_locations.iterate_containers(group, label, spec) local containers = container_iterator() if containers then full_container_placename = m_locations.key_to_placename( containers[1].group, containers[1].key) end -- Substitute %l (full placename), %e (same, no elliptical form in Chinese), -- %c (container placename) in wp/wpcat/commonscat values. local function format_boxval(val) if val == true then val = "%l" end if type(val) == "string" then val = gsub_literally(val, "%l", full_placename) val = gsub_literally(val, "%e", full_placename) if val:find("%%c", 1, true) and full_container_placename then val = gsub_literally(val, "%c", full_container_placename) end end return val end -- Determine Chinese type label for parent category construction. -- bare_category_parent_type overrides the location's own placetype. local parent_zh_type do local override = spec.bare_category_parent_type if override then local t = type(override) == "table" and (override.type or override[1]) or override local raw = type(t) == "string" and m_placetypes.get_zh_placetype_name(t, nil) parent_zh_type = raw and format_zh_name(raw) end if not parent_zh_type then local loc_type = fetch_primary_placetype(label, spec) local raw = loc_type and m_placetypes.get_zh_placetype_name(loc_type, nil) parent_zh_type = raw and format_zh_name(raw) end end local parents = {} local bare_label_parents = spec.overriding_bare_label_parents if not bare_label_parents then bare_label_parents = {"+++"} end local inserted_containers = false for _, parent in ipairs(bare_label_parents) do if parent == "+++" then -- Expand to Chinese parent: CONTAINER的TYPE or CONTAINERTYPE for "地點"; -- omit 的 when TYPE=="國家" and container is a continent (非洲國家 not 非洲的國家) if containers then for _, container in ipairs(containers) do local ck = get_prefixed_key(container.key, container.spec) local parent_cat if parent_zh_type == "地點" then parent_cat = ck .. "地點" elseif parent_zh_type == "國家" and spec_is_broad(container.spec) then parent_cat = ck .. "國家" elseif parent_zh_type then parent_cat = ck .. "的" .. parent_zh_type else parent_cat = ck end m_table.insertIfNot(parents, parent_cat) end inserted_containers = true end else m_table.insertIfNot(parents, parent) end end -- If "+++" wasn't present in bare_label_parents and containers exist, insert -- bare container keys as fallback (mirrors enwikt behaviour). if not inserted_containers and containers then for _, container in ipairs(containers) do m_table.insertIfNot(parents, container.key) end end if spec.addl_parents then for _, p in ipairs(spec.addl_parents) do m_table.insertIfNot(parents, p) end end if #parents == 0 then insert(parents, "地點") end local description = spec.fulldesc or ( "{{{langname}}}中與" .. fetch_or_construct_location_desc(group, label, spec) .. "相關的詞語。") return { type = "topic", description = description, breadcrumb = full_placename, parents = parents, wp = format_boxval(wp), wpcat = format_boxval(wpcat), commonscat = format_boxval(commonscat), } end) -- =========================================================================== -- Handler 4 — Generic placetype + location -- e.g. "法國的城市", "德國的河流", "亞洲的國家" -- Matches placetypes that carry generic_before_non_cities or generic_before_cities. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local en_keys = zh_name_to_pt_keys[type_zh] if en_keys then for _, en_key in ipairs(en_keys) do local canon_pt, ptdata = m_placetypes.get_placetype_data(en_key, "from category") if canon_pt and ptdata and (ptdata.generic_before_non_cities or ptdata.generic_before_cities) then local group, key, spec = find_place(place_str) if group then local allow = true if spec.is_former_place and en_key ~= "place" then allow = false end if allow then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end end end end) -- =========================================================================== -- Handler 4b — Continent/broad location + 國家 (no 的) -- e.g. "非洲國家", "亞洲國家" -- Handles the no-的 form generated for country categories under continents. -- =========================================================================== insert(handlers, function(label) local zh_type = "國家" local zh_type_len = #zh_type -- byte length (6 for 2 Chinese chars in UTF-8) if #label <= zh_type_len or label:sub(-zh_type_len) ~= zh_type then return nil end local place_str = label:sub(1, #label - zh_type_len) local group, key, spec = find_place(place_str) if not group or not spec_is_broad(spec) then return nil end local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. zh_type .. "]]的名稱。" local parents = {key, {name = zh_type, sort = " " .. key}} return { type = "name", topic = label, description = desc, breadcrumb = zh_type, parents = parents, } end) -- =========================================================================== -- Handler 5 — Capital + location (bare capital label) -- e.g. "美國的首都", "四川省的省會", "德克薩斯州的首府" -- Handles bare capital labels from zh_cap_label_to_holonym. -- Must precede handler 6 (compound capital) and handler 7 (division) to avoid -- mis-matching capital labels that also appear in a location's divs via cat_as. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype if zh_cap_label_to_holonym[type_zh] then local group, key, spec = find_place(place_str) if group then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end) -- =========================================================================== -- Handler 6 — Compound capital label + location -- e.g. "美國的州首府", "法國的行政區首府", "澳大利亞的地區首府" -- Compound label = zh_name(holonym_type) .. zh_cap_label(holonym_type). -- Built at load time in zh_compound_cap_to_placetypes. -- Must precede handler 7 (division) to avoid mis-matching. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local target_pts = zh_compound_cap_to_placetypes[type_zh] if target_pts then local group, key, spec = find_place(place_str) if group then -- Check if any target placetype appears in this location's divs. -- Div types are plural English strings ("states"); singularize before comparing. local found = false for _, divlist in ipairs({spec.divs, spec.addl_divs, spec.addl_divs_for_categorization}) do if divlist and not found then if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local function check_div_type(pt_type) local sg = m_placetypes.maybe_singularize_placetype(pt_type) or pt_type for _, target_pt in ipairs(target_pts) do if sg == target_pt or pt_type == target_pt then found = true break end end end check_div_type(div.type) if not found and div.cat_as then local ca = div.cat_as if type(ca) ~= "table" or ca.type then ca = {ca} end for _, pt_ca in ipairs(ca) do if type(pt_ca) == "string" then pt_ca = {type = pt_ca} end check_div_type(pt_ca.type) if found then break end end end if found then break end end end if found then break end end if found then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end end) -- =========================================================================== -- Handler 7 — Administrative division + location -- e.g. "美國的州", "法國的省", "英國的構成國", "日本的縣" -- Uses forward zh_name lookup (English div type → zh_name) to avoid collision -- between English types that share the same Chinese name (state/oblast/canton → "州"). -- Singularizes plural div types ("states" → "state") before zh_name lookup. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local group, key, spec = find_place(place_str) if group then local div_parent, div_prep, matched_type = find_div_by_zh_name(spec.divs, type_zh) if div_parent == nil then div_parent, div_prep, matched_type = find_div_by_zh_name(spec.addl_divs, type_zh) end if div_parent == nil then div_parent, div_prep, matched_type = find_div_by_zh_name(spec.addl_divs_for_categorization, type_zh) end if div_parent ~= nil then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if div_parent then -- div_parent == false means suppress parent cat if spec.no_container_parent then insert(parents, {name = type_zh, sort = " " .. key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do -- Map English div_parent key back to Chinese for parent category name. local dp_zh if type(div_parent) == "string" then local sg_dp = m_placetypes.maybe_singularize_placetype(div_parent) or div_parent local dp_raw = m_placetypes.get_zh_placetype_name(sg_dp, nil) dp_zh = dp_raw and format_zh_name(dp_raw) or type_zh else dp_zh = type_zh end insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. dp_zh, sort = key }) end else insert(parents, {name = type_zh, sort = " " .. key}) end end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end) -- =========================================================================== -- Static labels — top-level grouping categories -- =========================================================================== labels["地點"] = { type = "grouping", description = "{{{langname}}}中地點的分類。", parents = {"名稱"}, } labels["政治實體"] = { type = "grouping", description = "{{{langname}}}中政治實體的名稱。", parents = {"地點"}, } labels["行政區劃"] = { type = "grouping", description = "{{{langname}}}中行政區劃的名稱。", parents = {"地點"}, } labels["聚居地"] = { type = "grouping", description = "{{{langname}}}中聚落地名。", parents = {"地點"}, } labels["首都"] = { type = "grouping", description = "{{{langname}}}中首都及各類首府的名稱。", parents = {"聚居地"}, } labels["自然"] = { type = "grouping", description = "{{{langname}}}中自然地物的名稱。", parents = {"地點"}, } labels["水體"] = { type = "grouping", description = "{{{langname}}}中水體的名稱。", parents = {"自然地物"}, } labels["地形"] = { type = "grouping", description = "{{{langname}}}中地形的名稱。", parents = {"自然"}, } labels["山"] = { type = "grouping", description = "{{{langname}}}中山的名稱。", parents = {"自然"}, } labels["河"] = { type = "grouping", description = "{{{langname}}}中河的名稱。", parents = {"自然"}, } labels["海"] = { type = "grouping", description = "{{{langname}}}中海的名稱。", parents = {"自然"}, } labels["湖"] = { type = "grouping", description = "{{{langname}}}中湖的名稱。", parents = {"自然"}, } labels["火山"] = { type = "grouping", description = "{{{langname}}}中火山的名稱。", parents = {"自然"}, } labels["人造構築物"] = { type = "grouping", description = "{{{langname}}}中人造構築物的名稱。", parents = {"地點"}, } labels["地理文化區域"] = { type = "grouping", description = "{{{langname}}}中地理及文化區域的名稱。", parents = {"地點"}, } labels["特定國家的行政區劃"] = { type = "grouping", description = "{{{langname}}}中特定國家行政區劃的分類。", parents = {"地點"}, } -- --------------------------------------------------------------------------- -- Misc. place-related labels -- --------------------------------------------------------------------------- labels["外名"] = { type = "name", description = "{{{langname}}}[[外名]]。", parents = {"地點"}, } labels["古埃及行政區"] = { type = "name", description = "{{{langname}}}中[[古埃及]][[行政區]]的名稱。", breadcrumb = "行政區", parents = {"古埃及"}, } -- --------------------------------------------------------------------------- -- Sui generis place categories (cross-jurisdictional / transcontinental regions) -- --------------------------------------------------------------------------- labels["大西洋"] = { type = "related-to", description = "{{{langname}}}中與[[大西洋]]相關的詞語。", parents = {"地球"}, } labels["不列顛群島"] = { type = "related-to", description = "{{{langname}}}中與[[大不列顛島]]、[[愛爾蘭島]]及鄰近島嶼相關的詞語。", parents = {"歐洲", "島嶼"}, } labels["歐盟"] = { type = "related-to", description = "{{{langname}}}中與[[歐盟]]相關的詞語。", parents = {"歐洲"}, } labels["加斯科涅"] = { type = "related-to", description = "{{{langname}}}中與[[加斯科涅]]相關的詞語。", parents = {"法國"}, } labels["印度次大陸"] = { type = "related-to", description = "{{{langname}}}中與[[印度次大陸]]相關的詞語。", parents = {"南亞"}, } labels["孟加拉"] = { type = "related-to", description = "{{{langname}}}中與[[孟加拉]]地區相關的詞語。", parents = {"印度次大陸"}, } labels["克什米爾"] = { type = "related-to", description = "{{{langname}}}中與[[克什米爾]]相關的詞語。", parents = {"印度次大陸"}, } labels["克什米爾(印度)"] = { type = "related-to", description = "{{{langname}}}中[[印度]]管轄的[[克什米爾]]地名。", parents = {"印度", "克什米爾"}, } labels["朝鮮半島"] = { type = "related-to", description = "{{{langname}}}中與[[朝鮮半島]]相關的詞語。", parents = {"亞洲"}, } labels["朗格多克"] = { type = "related-to", description = "{{{langname}}}中與[[朗格多克]]相關的詞語。", parents = {"法國"}, } labels["拉普蘭"] = { type = "related-to", description = "{{{langname}}}中與[[拉普蘭]]相關的詞語。", parents = {"歐洲", "芬蘭", "挪威", "俄羅斯", "瑞典"}, } labels["中東"] = { type = "related-to", description = "{{{langname}}}中與[[中東]]相關的詞語。", parents = {"非洲", "亞洲"}, } labels["荷屬安的列斯"] = { type = "related-to", description = "{{{langname}}}中與[[荷屬安的列斯]]相關的詞語。", parents = {"荷蘭", "北美洲"}, } labels["海外法國"] = { type = "related-to", description = "{{{langname}}}中與[[海外法國]]相關的詞語。", parents = {"法國"}, } labels["普羅旺斯"] = { type = "related-to", description = "{{{langname}}}中與[[普羅旺斯]]相關的詞語。", parents = {"法國"}, } labels["波蘭人民共和國"] = { type = "related-to", description = "{{{langname}}}中與[[波蘭人民共和國]]相關的詞語。", parents = {"波蘭"}, } labels["南亞"] = { type = "related-to", description = "{{{langname}}}中與[[南亞]]相關的詞語。", parents = {"歐亞大陸", "亞洲"}, } return {LABELS = labels, HANDLERS = handlers} etv87t9gq51v1cjvn5dwadu2epa5wcu 9759702 9759679 2026-05-15T00:39:03Z TongcyDai 53191 9759702 Scribunto text/plain -- Chinese Wiktionary port of enwikt [[Module:category tree/topic/Places]]. -- Generates descriptions and parent-category specs for place-related category pages. -- -- Deployment name: TBD — likely [[Module:place/catetree]] or an equivalent path -- under zhwikt's category-tree infrastructure. -- -- Architecture mirrors enwikt: two tables exported as LABELS and HANDLERS. -- LABELS — static label → spec mappings (top-level grouping categories) -- HANDLERS — ordered list of functions; first non-nil return wins -- -- Chinese-specific adaptations vs. enwikt: -- * Pattern matching on 的 instead of English "in"/"of" -- * Handler 3 bare-location parent: CONTAINER的TYPE (order reversed vs. enwikt) -- Special case: TYPE=="地點" → CONTAINERTYPE (no 的) -- * Handler 6 uses forward zh_name lookup (div.type → zh_name) instead of -- a reverse map, because many English placetypes share the same Chinese name -- (e.g. state/oblast/canton all → "州"; province/department/voivodeship → "省") -- * Handler 7 (new): compound capital label + location ("美國的州首府") -- Compound = zh_name(holonym_type) .. zh_cap_label(holonym_type) -- Built at load time; skips country/constituent country (no 國首都 category) -- * No article handling (Chinese has no definite article) -- * Serial enumeration: 、(non-final) 和(final) -- * Description format: {{{langname}}}中LOCATION_DESC[[PLACETYPE]]的名稱。 local labels = {} local handlers = {} local m_table = require("Module:table") local m_locations = require("Module:place/locations") local m_placetypes = require("Module:place/placetypes") local m_zh_data = require("Module:place/data") local internal_error = m_locations.internal_error local zh_strings = m_placetypes.zh_strings local zh_cap_by_holonym = m_placetypes.zh_capital_label_by_holonym_type local format_zh_name = m_placetypes.format_zh_name local insert = table.insert local concat = table.concat local function is_callable(val) return type(val) == "function" end -- Literal-string gsub (no regex metacharacters interpreted in `from` or `to`). local function gsub_literally(str, from, to) return (str:gsub(from:gsub("[%(%)%.%%%+%-%*%?%[%^%$]", "%%%1"), to:gsub("%%", "%%%%"))) end -- Get the first (primary) placetype from spec. local function fetch_primary_placetype(key, spec) local placetype = spec.placetype if type(placetype) == "table" then placetype = placetype[1] end return placetype end -- True for continent/supercontinent/planet specs (used to omit 的 in 非洲國家). local function spec_is_broad(spec) local pt = spec and spec.placetype if not pt then return false end local pts = type(pt) == "table" and pt or {pt} for _, p in ipairs(pts) do if p == "continent" or p == "supercontinent" or p == "planet" then return true end end return false end -- --------------------------------------------------------------------------- -- Chinese serial joiner: {"A","B","C"} → "A、B和C" -- --------------------------------------------------------------------------- local function zh_join(items) local n = #items if n == 0 then return "" end if n == 1 then return items[1] end local parts = {} for i = 1, n - 1 do insert(parts, items[i]) if i < n - 1 then insert(parts, zh_strings.enum_sep) end end insert(parts, zh_strings.and_conj) insert(parts, items[n]) return concat(parts) end -- --------------------------------------------------------------------------- -- Placetype class → Chinese bare parent category label -- --------------------------------------------------------------------------- local class_to_bare_category_parent = { ["polity"] = "政治實體", ["subpolity"] = "行政區劃", ["settlement"] = "聚居地", ["non-admin settlement"] = "聚居地", ["capital"] = "首都", ["natural feature"] = "自然", ["man-made structure"] = "人造構築物", ["geographic region"] = "地理文化區域", } local class_is_political_division = { ["polity"] = true, ["subpolity"] = true, ["settlement"] = true, ["non-admin settlement"] = false, ["capital"] = true, ["natural feature"] = false, ["man-made structure"] = false, ["geographic region"] = false, ["generic place"] = false, } -- Enwikt bare_category_parent / addl_bare_category_parents → zhwikt label. -- false = no equivalent, skip. local en_category_to_zh = { ["islands"] = "島嶼", ["cities"] = "城市", ["political divisions"] = "行政區劃", ["places"] = "地點", ["former settlements"] = "歷史聚居地", ["country-like entities"]= "類國家實體", ["names"] = "名稱", ["man-made structures"] = "人造構築物", ["countries"] = "國家", ["bodies of water"] = "水體", ["water"] = "水", ["landforms"] = "地形", ["ecosystems"] = "生態系統", ["forestry"] = "林學", ["mountains"] = "山", ["seas"] = "海", ["bridges"] = "橋", ["buildings"] = "建築", ["roads"] = "道路", } -- Translate enwikt category parent string to zhwikt equivalent. -- Returns zh string, or nil if should be skipped. -- Non-English strings (assumed already Chinese) pass through unchanged. local function translate_cat_parent(val) if type(val) ~= "string" then return nil end local mapped = en_category_to_zh[val] if mapped == false then return nil end if mapped then return mapped end return val end -- --------------------------------------------------------------------------- -- Load-time reverse maps -- --------------------------------------------------------------------------- -- Chinese capital label → holonym type (e.g. "首都" → "country") local zh_cap_label_to_holonym = {} for holonym_type, zh_label in pairs(zh_cap_by_holonym) do if not zh_cap_label_to_holonym[zh_label] then zh_cap_label_to_holonym[zh_label] = holonym_type end end -- Chinese placetype name → list of English placetype keys (one-to-many). -- Used by handler 2 (bare placetype) and handler 4 (generic X的Y). local zh_name_to_pt_keys = {} do local function add(name, en_key) zh_name_to_pt_keys[name] = zh_name_to_pt_keys[name] or {} insert(zh_name_to_pt_keys[name], en_key) end for en_key, entry in pairs(m_zh_data.zh_placetype_data) do if entry.zh_name then local names = type(entry.zh_name) == "table" and entry.zh_name or {entry.zh_name} for _, name in ipairs(names) do add(name, en_key) end end if entry.zh_name_by_holonym_type then for _, zh_name_val in pairs(entry.zh_name_by_holonym_type) do local names = type(zh_name_val) == "table" and zh_name_val or {zh_name_val} for _, name in ipairs(names) do add(name, en_key) end end end end end -- Compound capital label → list of holonym placetype keys. -- Compound = zh_name(holonym_type) .. zh_cap_label(holonym_type). -- E.g. "州首府" → {"state"}, "地區首府" → {"territory", "region"}. -- Skip country/constituent country (no 國首都 category per design). -- Skip entries where compound == cap_label (e.g. "省省會"/"縣縣治" excluded to -- avoid ambiguous matches — these bare labels are already handled by handler 5). local zh_compound_cap_to_placetypes = {} do local function add_compound(compound, pt) zh_compound_cap_to_placetypes[compound] = zh_compound_cap_to_placetypes[compound] or {} insert(zh_compound_cap_to_placetypes[compound], pt) end for holonym_type, cap_label in pairs(zh_cap_by_holonym) do if holonym_type ~= "country" and holonym_type ~= "constituent country" then local zh_name_raw = m_placetypes.get_zh_placetype_name(holonym_type, nil) if zh_name_raw then local zh_name_str = format_zh_name(zh_name_raw) local compound = zh_name_str .. cap_label if compound ~= cap_label then add_compound(compound, holonym_type) end end end end end -- --------------------------------------------------------------------------- -- Location-linking helpers -- --------------------------------------------------------------------------- local function construct_linked_location(group, key, spec) local full_placename = m_locations.key_to_placename(group, key) return m_locations.construct_linked_placename(spec, full_placename) end -- Returns a location description string for embedding in category descriptions. -- Shows one level of container for sub-national entries: -- country → [[法國]] -- state → [[加州]]([[美國]]的[[州]]) -- city → [[舊金山]]([[加州]]的[[城市]]) local function construct_location_desc(group, key, spec) local linked = construct_linked_location(group, key, spec) if spec.no_include_container_in_desc then return linked end local container_iterator = m_locations.iterate_containers(group, key, spec) local containers = container_iterator() if not containers then return linked end local location_type = spec.placetype if type(location_type) == "table" then location_type = location_type[1] end local zh_name_raw = location_type and m_placetypes.get_zh_placetype_name(location_type, nil) local zh_type = zh_name_raw and format_zh_name(zh_name_raw) local cont_links = {} for _, c in ipairs(containers) do insert(cont_links, construct_linked_location(c.group, c.key, c.spec)) end local cont_str = zh_join(cont_links) if zh_type then return linked .. "(" .. cont_str .. "的" .. zh_type .. ")" else return linked .. "(位於" .. cont_str .. ")" end end -- Fetch or construct the location description, substituting "+++" with the -- auto-constructed description if present in spec.keydesc. local function fetch_or_construct_location_desc(group, key, spec) local val = spec.keydesc if is_callable(val) then val = val(group, key, spec) spec.keydesc = val end if val then if val:find("%+%+%+", 1, true) then local base = construct_location_desc(group, key, spec) val = gsub_literally(val, "+++", base) end return val end return construct_location_desc(group, key, spec) end -- --------------------------------------------------------------------------- -- Split label at every occurrence of 的 -- Returns list of {place, placetype} tables (all possible splits left→right). -- --------------------------------------------------------------------------- local function split_at_de(label) local results = {} local de = "的" local start = 1 while true do local s, e = label:find(de, start, true) if not s then break end local place_part = label:sub(1, s - 1) local type_part = label:sub(e + 1) if #place_part > 0 and #type_part > 0 then insert(results, {place = place_part, placetype = type_part}) end start = e + 1 end return results end -- Locate group + key + spec for a Chinese location string. local function find_place(place_str) local group, spec = m_locations.find_canonical_key(place_str) if group then return group, place_str, spec end return nil end -- No articles in Chinese; just return the key. local function get_prefixed_key(key, spec) if m_placetypes.get_prefixed_key then return m_placetypes.get_prefixed_key(key, spec) end return key end -- Check whether zh_name_val (string or array) contains type_zh. local function zh_name_has(zh_name_val, type_zh) if type(zh_name_val) == "table" then for _, n in ipairs(zh_name_val) do if n == type_zh then return true end end return false end return zh_name_val == type_zh end -- Search divs list for a div whose Chinese name matches type_zh. -- Singularizes div.type before zh_name lookup (divs use plural English keys -- like "states", while zh_placetype_data uses singular keys like "state"). -- Uses forward lookup (English key → zh_name) to handle many-to-one collisions. -- Returns: div_parent (English key or false), prep, matched_en_type. -- div_parent == nil means no match; div_parent == false means match but no parent cat. local function find_div_by_zh_name(divs, type_zh) if not divs then return nil, nil, nil end if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) == "string" then div = {type = div} end local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" or cat_as.type then cat_as = {cat_as} end for _, pt_cat_as in ipairs(cat_as) do if type(pt_cat_as) == "string" then pt_cat_as = {type = pt_cat_as} end -- Singularize plural div type before zh_name lookup. local lookup_type = m_placetypes.maybe_singularize_placetype(pt_cat_as.type) or pt_cat_as.type local div_zh_raw = m_placetypes.get_zh_placetype_name(lookup_type, nil) if div_zh_raw and zh_name_has(div_zh_raw, type_zh) then local div_parent = pt_cat_as.container_parent_type if div_parent == nil then div_parent = div.container_parent_type end if div_parent == nil then div_parent = pt_cat_as.type end return div_parent, pt_cat_as.prep or div.prep or "of", lookup_type end end end return nil, nil, nil end -- =========================================================================== -- Handler 1 — Bare capital category labels -- e.g. "首都", "省會", "首府", "縣治" -- =========================================================================== insert(handlers, function(label) local holonym_type = zh_cap_label_to_holonym[label] if not holonym_type then return nil end local zh_raw = m_placetypes.get_zh_placetype_name(holonym_type, nil) local zh_holonym = zh_raw and format_zh_name(zh_raw) or holonym_type return { type = "name", topic = label, description = "{{{langname}}}中" .. zh_holonym .. "[[" .. label .. "]]的名稱。", parents = {"首都"}, } end) -- =========================================================================== -- Handler 2 — Bare placetype categories -- e.g. "城市", "河流", "山脈", "國家" -- =========================================================================== insert(handlers, function(label) local en_keys = zh_name_to_pt_keys[label] if not en_keys then return nil end for _, en_key in ipairs(en_keys) do local canon_pt, ptdata = m_placetypes.get_placetype_data(en_key, "from category") if canon_pt then local from_cat = {from_category = true, no_split_qualifiers = true} local bare_parent = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) local bcp = m_placetypes.get_placetype_prop(pt, "bare_category_parent") if bcp then local zh = translate_cat_parent(bcp) if zh then return zh end end local cls = m_placetypes.get_placetype_prop(pt, "class") if cls then return class_to_bare_category_parent[cls] end end, from_cat) or "地點" local addl_parents_raw = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) return m_placetypes.get_placetype_prop(pt, "addl_bare_category_parents") end, from_cat) local addl_parents if addl_parents_raw then addl_parents = {} for _, v in ipairs(addl_parents_raw) do local zh = translate_cat_parent(v) if zh then m_table.insertIfNot(addl_parents, zh) end end if #addl_parents == 0 then addl_parents = nil end end local breadcrumb = m_placetypes.get_equiv_placetype_prop(canon_pt, function(pt) return m_placetypes.get_placetype_prop(pt, "bare_category_breadcrumb") end, from_cat) if type(bare_parent) == "string" and breadcrumb then bare_parent = {name = bare_parent, sort = breadcrumb} end local parents = {bare_parent} if addl_parents then m_table.extend(parents, addl_parents) end return { type = "name", topic = label, description = "{{{langname}}}中[[" .. label .. "]]的名稱。", breadcrumb = breadcrumb, parents = parents, } end end end) -- =========================================================================== -- Handler 3 — Bare placename categories (known locations) -- e.g. "美國", "法國", "北京", "加利福尼亞州" -- Supports: overriding_bare_label_parents, bare_category_parent_type, -- "+++" expansion, addl_parents, wp/wpcat/commonscat, fulldesc. -- "+++" expands to: CONTAINER的TYPE (Chinese order) or CONTAINERTYPE for "地點". -- =========================================================================== insert(handlers, function(label) local group, spec = m_locations.find_canonical_key(label) if not group then return nil end local wp = spec.wp if wp == nil then wp = true end local wpcat = spec.wpcat if wpcat == nil then wpcat = wp end local commonscat = spec.commonscat if commonscat == nil then commonscat = wpcat end local full_placename = m_locations.key_to_placename(group, label) local full_container_placename local container_iterator = m_locations.iterate_containers(group, label, spec) local containers = container_iterator() if containers then full_container_placename = m_locations.key_to_placename( containers[1].group, containers[1].key) end -- Substitute %l (full placename), %e (same, no elliptical form in Chinese), -- %c (container placename) in wp/wpcat/commonscat values. local function format_boxval(val) if val == true then val = "%l" end if type(val) == "string" then val = gsub_literally(val, "%l", full_placename) val = gsub_literally(val, "%e", full_placename) if val:find("%%c", 1, true) and full_container_placename then val = gsub_literally(val, "%c", full_container_placename) end end return val end -- Determine Chinese type label for parent category construction. -- bare_category_parent_type overrides the location's own placetype. local parent_zh_type do local override = spec.bare_category_parent_type if override then local t = type(override) == "table" and (override.type or override[1]) or override local raw = type(t) == "string" and m_placetypes.get_zh_placetype_name(t, nil) parent_zh_type = raw and format_zh_name(raw) end if not parent_zh_type then local loc_type = fetch_primary_placetype(label, spec) local raw = loc_type and m_placetypes.get_zh_placetype_name(loc_type, nil) parent_zh_type = raw and format_zh_name(raw) end end local parents = {} local bare_label_parents = spec.overriding_bare_label_parents if not bare_label_parents then bare_label_parents = {"+++"} end local inserted_containers = false for _, parent in ipairs(bare_label_parents) do if parent == "+++" then -- Expand to Chinese parent: CONTAINER的TYPE or CONTAINERTYPE for "地點"; -- omit 的 when TYPE=="國家" and container is a continent (非洲國家 not 非洲的國家) if containers then for _, container in ipairs(containers) do local ck = get_prefixed_key(container.key, container.spec) local parent_cat if parent_zh_type == "地點" then parent_cat = ck .. "地點" elseif parent_zh_type == "國家" and spec_is_broad(container.spec) then parent_cat = ck .. "國家" elseif parent_zh_type then parent_cat = ck .. "的" .. parent_zh_type else parent_cat = ck end m_table.insertIfNot(parents, parent_cat) end inserted_containers = true end else m_table.insertIfNot(parents, parent) end end -- If "+++" wasn't present in bare_label_parents and containers exist, insert -- bare container keys as fallback (mirrors enwikt behaviour). if not inserted_containers and containers then for _, container in ipairs(containers) do m_table.insertIfNot(parents, container.key) end end if spec.addl_parents then for _, p in ipairs(spec.addl_parents) do m_table.insertIfNot(parents, p) end end if #parents == 0 then insert(parents, "地點") end local description = spec.fulldesc or ( "{{{langname}}}中與" .. fetch_or_construct_location_desc(group, label, spec) .. "相關的詞語。") return { type = "topic", description = description, breadcrumb = full_placename, parents = parents, wp = format_boxval(wp), wpcat = format_boxval(wpcat), commonscat = format_boxval(commonscat), } end) -- =========================================================================== -- Handler 4 — Generic placetype + location -- e.g. "法國的城市", "德國的河流", "亞洲的國家" -- Matches placetypes that carry generic_before_non_cities or generic_before_cities. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local en_keys = zh_name_to_pt_keys[type_zh] if en_keys then for _, en_key in ipairs(en_keys) do local canon_pt, ptdata = m_placetypes.get_placetype_data(en_key, "from category") if canon_pt and ptdata and (ptdata.generic_before_non_cities or ptdata.generic_before_cities) then local group, key, spec = find_place(place_str) if group then local allow = true if spec.is_former_place and en_key ~= "place" then allow = false end if allow then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end end end end) -- =========================================================================== -- Handler 4b — Continent/broad location + 國家 (no 的) -- e.g. "非洲國家", "亞洲國家" -- Handles the no-的 form generated for country categories under continents. -- =========================================================================== insert(handlers, function(label) local zh_type = "國家" local zh_type_len = #zh_type -- byte length (6 for 2 Chinese chars in UTF-8) if #label <= zh_type_len or label:sub(-zh_type_len) ~= zh_type then return nil end local place_str = label:sub(1, #label - zh_type_len) local group, key, spec = find_place(place_str) if not group or not spec_is_broad(spec) then return nil end local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. zh_type .. "]]的名稱。" local parents = {key, {name = zh_type, sort = " " .. key}} return { type = "name", topic = label, description = desc, breadcrumb = zh_type, parents = parents, } end) -- =========================================================================== -- Handler 5 — Capital + location (bare capital label) -- e.g. "美國的首都", "四川省的省會", "德克薩斯州的首府" -- Handles bare capital labels from zh_cap_label_to_holonym. -- Must precede handler 6 (compound capital) and handler 7 (division) to avoid -- mis-matching capital labels that also appear in a location's divs via cat_as. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype if zh_cap_label_to_holonym[type_zh] then local group, key, spec = find_place(place_str) if group then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end) -- =========================================================================== -- Handler 6 — Compound capital label + location -- e.g. "美國的州首府", "法國的行政區首府", "澳大利亞的地區首府" -- Compound label = zh_name(holonym_type) .. zh_cap_label(holonym_type). -- Built at load time in zh_compound_cap_to_placetypes. -- Must precede handler 7 (division) to avoid mis-matching. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local target_pts = zh_compound_cap_to_placetypes[type_zh] if target_pts then local group, key, spec = find_place(place_str) if group then -- Check if any target placetype appears in this location's divs. -- Div types are plural English strings ("states"); singularize before comparing. local found = false for _, divlist in ipairs({spec.divs, spec.addl_divs, spec.addl_divs_for_categorization}) do if divlist and not found then if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local function check_div_type(pt_type) local sg = m_placetypes.maybe_singularize_placetype(pt_type) or pt_type for _, target_pt in ipairs(target_pts) do if sg == target_pt or pt_type == target_pt then found = true break end end end check_div_type(div.type) if not found and div.cat_as then local ca = div.cat_as if type(ca) ~= "table" or ca.type then ca = {ca} end for _, pt_ca in ipairs(ca) do if type(pt_ca) == "string" then pt_ca = {type = pt_ca} end check_div_type(pt_ca.type) if found then break end end end if found then break end end end if found then break end end if found then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if spec.no_container_parent then insert(parents, {name = type_zh, sort = key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. type_zh, sort = key }) end else insert(parents, {name = type_zh, sort = key}) end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end end) -- =========================================================================== -- Handler 7 — Administrative division + location -- e.g. "美國的州", "法國的省", "英國的構成國", "日本的縣" -- Uses forward zh_name lookup (English div type → zh_name) to avoid collision -- between English types that share the same Chinese name (state/oblast/canton → "州"). -- Singularizes plural div types ("states" → "state") before zh_name lookup. -- =========================================================================== insert(handlers, function(label) local splits = split_at_de(label) for _, split in ipairs(splits) do local place_str = split.place local type_zh = split.placetype local group, key, spec = find_place(place_str) if group then local div_parent, div_prep, matched_type = find_div_by_zh_name(spec.divs, type_zh) if div_parent == nil then div_parent, div_prep, matched_type = find_div_by_zh_name(spec.addl_divs, type_zh) end if div_parent == nil then div_parent, div_prep, matched_type = find_div_by_zh_name(spec.addl_divs_for_categorization, type_zh) end if div_parent ~= nil then local loc_desc = fetch_or_construct_location_desc(group, key, spec) local desc = "{{{langname}}}中" .. loc_desc .. "[[" .. type_zh .. "]]的名稱。" local parents = {key} if div_parent then -- div_parent == false means suppress parent cat if spec.no_container_parent then insert(parents, {name = type_zh, sort = " " .. key}) local spt = spec.placetype if spt == "country" or (type(spt) == "table" and m_table.contains(spt, "country")) then insert(parents, "特定國家的行政區劃") end else local cont_iter = m_locations.iterate_containers(group, key, spec) local next_conts = cont_iter() if next_conts then for _, c in ipairs(next_conts) do -- Map English div_parent key back to Chinese for parent category name. local dp_zh if type(div_parent) == "string" then local sg_dp = m_placetypes.maybe_singularize_placetype(div_parent) or div_parent local dp_raw = m_placetypes.get_zh_placetype_name(sg_dp, nil) dp_zh = dp_raw and format_zh_name(dp_raw) or type_zh else dp_zh = type_zh end insert(parents, { name = get_prefixed_key(c.key, c.spec) .. "的" .. dp_zh, sort = key }) end else insert(parents, {name = type_zh, sort = " " .. key}) end end end return { type = "name", topic = label, description = desc, breadcrumb = type_zh, parents = parents, } end end end end) -- =========================================================================== -- Static labels — top-level grouping categories -- =========================================================================== labels["地點"] = { type = "grouping", description = "{{{langname}}}中地點的分類。", parents = {"名稱"}, } labels["政治實體"] = { type = "grouping", description = "{{{langname}}}中政治實體的名稱。", parents = {"地點"}, } labels["行政區劃"] = { type = "grouping", description = "{{{langname}}}中行政區劃的名稱。", parents = {"地點"}, } labels["聚居地"] = { type = "grouping", description = "{{{langname}}}中聚落地名。", parents = {"地點"}, } labels["首都"] = { type = "grouping", description = "{{{langname}}}中首都及各類首府的名稱。", parents = {"聚居地"}, } labels["自然"] = { type = "grouping", description = "{{{langname}}}中自然地物的名稱。", parents = {"地點"}, } labels["水體"] = { type = "grouping", description = "{{{langname}}}中水體的名稱。", parents = {"自然地物"}, } labels["地形"] = { type = "grouping", description = "{{{langname}}}中地形的名稱。", parents = {"自然"}, } labels["人造構築物"] = { type = "grouping", description = "{{{langname}}}中人造構築物的名稱。", parents = {"地點"}, } labels["地理文化區域"] = { type = "grouping", description = "{{{langname}}}中地理及文化區域的名稱。", parents = {"地點"}, } labels["特定國家的行政區劃"] = { type = "grouping", description = "{{{langname}}}中特定國家行政區劃的分類。", parents = {"地點"}, } -- --------------------------------------------------------------------------- -- Misc. place-related labels -- --------------------------------------------------------------------------- labels["外名"] = { type = "name", description = "{{{langname}}}[[外名]]。", parents = {"地點"}, } labels["古埃及行政區"] = { type = "name", description = "{{{langname}}}中[[古埃及]][[行政區]]的名稱。", breadcrumb = "行政區", parents = {"古埃及"}, } -- --------------------------------------------------------------------------- -- Sui generis place categories (cross-jurisdictional / transcontinental regions) -- --------------------------------------------------------------------------- labels["大西洋"] = { type = "related-to", description = "{{{langname}}}中與[[大西洋]]相關的詞語。", parents = {"地球"}, } labels["不列顛群島"] = { type = "related-to", description = "{{{langname}}}中與[[大不列顛島]]、[[愛爾蘭島]]及鄰近島嶼相關的詞語。", parents = {"歐洲", "島嶼"}, } labels["歐盟"] = { type = "related-to", description = "{{{langname}}}中與[[歐盟]]相關的詞語。", parents = {"歐洲"}, } labels["加斯科涅"] = { type = "related-to", description = "{{{langname}}}中與[[加斯科涅]]相關的詞語。", parents = {"法國"}, } labels["印度次大陸"] = { type = "related-to", description = "{{{langname}}}中與[[印度次大陸]]相關的詞語。", parents = {"南亞"}, } labels["孟加拉"] = { type = "related-to", description = "{{{langname}}}中與[[孟加拉]]地區相關的詞語。", parents = {"印度次大陸"}, } labels["克什米爾"] = { type = "related-to", description = "{{{langname}}}中與[[克什米爾]]相關的詞語。", parents = {"印度次大陸"}, } labels["克什米爾(印度)"] = { type = "related-to", description = "{{{langname}}}中[[印度]]管轄的[[克什米爾]]地名。", parents = {"印度", "克什米爾"}, } labels["朝鮮半島"] = { type = "related-to", description = "{{{langname}}}中與[[朝鮮半島]]相關的詞語。", parents = {"亞洲"}, } labels["朗格多克"] = { type = "related-to", description = "{{{langname}}}中與[[朗格多克]]相關的詞語。", parents = {"法國"}, } labels["拉普蘭"] = { type = "related-to", description = "{{{langname}}}中與[[拉普蘭]]相關的詞語。", parents = {"歐洲", "芬蘭", "挪威", "俄羅斯", "瑞典"}, } labels["中東"] = { type = "related-to", description = "{{{langname}}}中與[[中東]]相關的詞語。", parents = {"非洲", "亞洲"}, } labels["荷屬安的列斯"] = { type = "related-to", description = "{{{langname}}}中與[[荷屬安的列斯]]相關的詞語。", parents = {"荷蘭", "北美洲"}, } labels["海外法國"] = { type = "related-to", description = "{{{langname}}}中與[[海外法國]]相關的詞語。", parents = {"法國"}, } labels["普羅旺斯"] = { type = "related-to", description = "{{{langname}}}中與[[普羅旺斯]]相關的詞語。", parents = {"法國"}, } labels["波蘭人民共和國"] = { type = "related-to", description = "{{{langname}}}中與[[波蘭人民共和國]]相關的詞語。", parents = {"波蘭"}, } labels["南亞"] = { type = "related-to", description = "{{{langname}}}中與[[南亞]]相關的詞語。", parents = {"歐亞大陸", "亞洲"}, } return {LABELS = labels, HANDLERS = handlers} hh8cfaqrzba3vjtcn2ssoaqpiyvocla Avrupa 0 1393739 9759653 9601660 2026-05-14T23:49:42Z TongcyDai 53191 9759653 wikitext text/x-wiki ==土耳其語== {{Wiktionary:圖片詞典/tr:map/Europe}} ===詞源=== {{inh+|tr|ota|آوروپا|tr=Avrupa}},源自{{der|tr|grc|Εὐρώπη}}。 ===發音=== * {{IPA|tr|[äv.ɾú.pä]|[äu̯.ɾú.pä]|qq=penultimate accent}} * {{hyph|tr|Av|ru|pa}} ===專有名詞=== {{tr-proper noun}} # {{tcl|tr|歐洲|id=Q46}} ====變格==== {{tr-prop-v-aı}} ====派生詞彙==== {{col3|tr|Avrupalı<t:歐洲人><pos:n> |Avrupa Birliği<t:歐盟> |Batı Avrupa<t:西歐> |Kuzey Avrupa<t:北歐> |Güney Avrupa<t:南歐> |Doğu Avrupa<t:東歐> }} 6bwuovd8hk7y0shrpcsje2anphhwwzi Alžeeria 0 1397777 9759413 5704564 2026-05-14T14:37:37Z TongcyDai 53191 9759413 wikitext text/x-wiki {{also|Alžeeriä}} ==愛沙尼亞語== {{wikipedia|Alžeeria|lang=et}} ===專有名詞=== {{head|et|專有名詞}} # {{tcl|et|阿爾及利亞|id=Q262}} mzxoo67onid00h3upklslmtnf0llw10 尚比亞 0 1399893 9759423 8358249 2026-05-14T15:15:14Z TongcyDai 53191 9759423 wikitext text/x-wiki ==漢語== {{zh-forms|s=尚比亚|gloss=-}} ===發音=== {{zh-pron |m=Shàngbǐ亞 |c=soeng6 bei2 aa3 |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q953}}{{lb|zh|Taiwan}} {{place|zh|國家|r/南非|capital=盧薩卡|official=尚比亞共和國}} ====同義詞==== * {{qualifier|中國大陸}} {{zh-l|贊比亞}} 3fsoiezvi9fwnitmi6qskyrpdm51nbe 9759425 9759423 2026-05-14T15:16:01Z TongcyDai 53191 9759425 wikitext text/x-wiki ==漢語== {{zh-forms|s=尚比亚|gloss=-}} ===發音=== {{zh-pron |m=Shàngbǐ亞 |c=soeng6 bei2 aa3 |cat=pn }} ===專有名詞=== {{zh-proper noun}} # {{sid|zh|Q953}}{{lb|zh|Taiwan}} {{place|zh|國家|r/南非|capital=路沙卡|official=尚比亞共和國}} ====同義詞==== * {{qualifier|中國大陸}} {{zh-l|贊比亞}} fm6q320xxp73vckwh9b7edav3lcjr4y 澳大利亞 0 1406598 9759649 9612538 2026-05-14T23:47:48Z TongcyDai 53191 9759649 wikitext text/x-wiki ==漢語== {{zh-forms|s=澳大利亚|gloss=-}} {{zh-wp|zh|lzh|gan|hak:Au-thai-li-â|wuu}} ===詞源=== 源自{{der|zh|en|Australia}}或{{der|zh|nl|Australië}}。 ===發音=== {{zh-pron |m=Àodàlì亞 |c=ou3 daai6 lei6 aa3 |h=pfs=O-thai-li-â/O-thai-li-á |md=Ó̤-dâi-lé-ā |mn=ml:Ò-tāi-lī-a/tw:Ò-tōa-lī-a |w=sh:5au da li ia |cat=pn }} ===專有名詞=== {{head|zh|專有名詞}} # {{senseid|zh|Q408}}{{place|zh|國家|r/大洋洲|official=澳大利亞聯邦|capital=堪培拉}} #* {{quote-book|zh|year=1848|title=w:瀛寰志略|editor=w:徐繼畬|volume=1|page=6–7|pageurl=https://commons.wikimedia.org/w/index.php?title=File%3ANLC403-312001064879-162125_%E7%80%9B%E7%92%B0%E5%BF%97%E7%95%A5_%E6%B8%85%E9%81%93%E5%85%8928-29%E5%B9%B4(1848%E2%80%941849)_%E5%8D%B7%E4%B8%80.pdf&page=21}} #*: {{zh-x|四 大 土 之外,島嶼 甚 多,最 大 者 ^澳大利亞,餘 則 ^亞細亞 之 ^南洋 諸島、^亞墨利加 之 海灣 群島,皆 商艘 數{shuò} 至 之 地 也。|除了四大洲以外,還有許多島嶼,其中最大的是澳大利亞,其餘還有東南亞各群島、美洲的加勒比海群島,都是商船經常往來的地方。|CL}} # {{senseid|zh|Q3960}} {{lb|zh|geology}} {{place|zh|澳大利亞洲,<<大洲>>名}}。 ====近義詞==== * {{zh-l|澳洲}} * {{qual|台山话|過時}} {{zh-l|*新金山}} * {{qual|棄用}} {{zh-l|澳大利}} ====衍生詞==== {{col3|zh|澳大利亞堅果|澳大利亞聯邦|澳大利亞人|澳大利亞手語|澳大利亞勛章|澳大利亞首都領地|澳大利亞首都特別行政區|澳抗}} ====翻譯==== {{trans-top|id=Q408|國家}} * 阿布哈茲語:{{t|ab|Австралиа}} * 亞齊語:{{t|ace|Australia}} * 南非語:{{t+|af|Australië}} * 阿爾巴尼亞語:{{t|sq|Australi|f}} * 阿姆哈拉語:{{t|am|አውስትራልያ}} * 阿拉伯語:{{t+|ar|أُسْتُرَالِيَا|f}}、{{t|ar|أُوسْتُرَالِيَا|f}} *: 漢志阿拉伯語:{{t|acw|أستراليا|f|tr=ʔusturālya}} * 阿拉貢語:{{t|an|Australia|f}} * 亞美尼亞語:{{t+|hy|Ավստրալիա}} * 阿薩姆語:{{t|as|অষ্ট্ৰেলিয়া}} * 亞述新亞拉姆語:{{t|aii|ܐܘܼܣܛܪܵܠܝܼܵܐ|f|tr=usṭraliya}} * 阿斯圖里亞斯語:{{t+|ast|Australia|f}} * 阿塞拜疆語:{{t+|az|Avstraliya}} * 巴厘語:{{t|ban|Ostrali}} * 巴什基爾語:{{t|ba|Австралия}} * 巴斯克語:{{t+|eu|Australia}} * 巴伐利亞語:{{t|bar|Australien}} * 白俄羅斯語:{{t+|be|Аўстра́лія|f}} * 孟加拉語:{{t+|bn|অস্ট্রেলিয়া}} * 比斯拉馬語:{{t|bi|Ostrelia}} * 布列塔尼語:{{t|br|Aostralia}} * 保加利亞語:{{t|bg|Австра́лия|f}} * 緬甸語:{{t+|my|ဩစတြေးလျ}} * 盧森尼亞語:{{t|rue|Австра́лія|f}} * 加泰羅尼亞語:{{t+|ca|Austràlia|f}} * 查莫羅語:{{t|ch|Ostereilia}} * 車臣語:{{t|ce|Австрали}} * 切羅基語:{{t|chr|ᎡᎳᏗᏝ}}、{{t|chr|ᎡᎳᏗᏜ}} * 楚瓦什語:{{t|cv|Австрали}} * 康沃爾語:{{t|kw|Ostrali}} * 克里米亞韃靼語:{{t|crh|Avstraliya}} * 捷克語:{{t+|cs|Austrálie|f}} * 丹麥語:{{t+|da|Australien|n}} * 迪維希語:{{t|dv|އޮސްޓަރުލިޔާ}} * 丁卡語:{{t|din|Authërelia}}、{{t|din|Australia}} * 荷蘭語:{{t+|nl|Australië|n}} * 宗喀語:{{t|dz|ཨས་ཊེཡེ་ལི་ཡ}} * 英語:{{t+|en|Australia}} * 世界語:{{t+|eo|Aŭstralio}} * 愛沙尼亞語:{{t+|et|Austraalia}} * 法羅語:{{t|fo|Avstralia|n}} * 斐濟印地語:{{t|hif|Australia}} * 斐濟語:{{t|fj|Ositerelia}} * 芬蘭語:{{t+|fi|Australia}} * 法語:{{t+|fr|Australie|f}} * 加利西亞語:{{t+|gl|Australia|f}} * 卡米拉瑞語:{{t|kld|Yarraanbaa}} * 格魯吉亞語:{{t+|ka|ავსტრალია}} * 德語:{{t+|de|Australien|n}} *: 阿勒曼尼語:{{t|gsw|Australien}} * 希臘語:{{t+|el|Αυστραλία|f}} * 巴拉圭瓜拉尼語:{{t|gug|Autarália}} * 古吉拉特語:{{t|gu|ઓસ્ટ્રેલિયા}} * 豪薩語:{{t|ha|Ostareliya}} * 夏威夷語:{{t|haw|ʻAukekulelia}}、{{t|haw|Nuhōlani}} {{qualifier|可能已過時}} * 希伯來語:{{t+|he|אוֹסְטְרַלְיָה|f|tr=ostrálya}} * 印地語:{{t+|hi|ऑस्ट्रेलिया|m}}、{{t|hi|आस्ट्रेलिया|m}}、{{t|hi|ओस्ट्रेलिया|m}} * 匈牙利語:{{t+|hu|Ausztrália}} * 漢斯立克語:{{t|hrx|Australje|n}} * 冰島語:{{t+|is|Ástralía|f}} * 印尼語:{{t+|id|Australia}} * 英格里亞語:{{t|izh|Australia}} * 因特語:{{t|ia|Australia}} * 因紐特語:{{t|iu|ᐊᔅᑦᕌᓕᐊ}} * 愛爾蘭語:{{t|ga|Astráil|f|alt=An Astráil}}、{{t|ga|Comhlathas na hAstráile|m}} * 意大利語:{{t+|it|Australia|f}} * 日語:{{t+|ja|オーストラリア|tr=Ōsutoraria}}(借字寫法:{{t+|ja|濠太剌利|tr=Ōsutoraria}})、{{qualifier|罕用}} {{t+|ja|濠洲|tr=ごうしゅう, Gōshū}}、{{t+|ja|豪州|tr=ごうしゅう, Gōshū}}、{{qualifier|簡稱}} {{t+|ja|濠|tr=ごう, Gō}}、{{t+|ja|豪|tr=ごう, Gō}} * 卡拉拉高雅語:{{t|mwp|Koey Daudai}} * 卡倫金語:{{t|kln|Australia}} * 卡姆巴語:{{t|kam|Australia}} * 卡納達語:{{t|kn|ಆಸ್ಟ್ರೆಲಿಯ}}、{{t+|kn|ಆಸ್ಟ್ರೇಲಿಯ}} * 卡拉恰伊-巴爾卡爾語:{{t|krc|Австралия}} * 哈薩克語:{{t+|kk|Аустралия}} * 高棉語:{{t+|km|អូស្ត្រាលី}} * 基庫尤語:{{t|ki|Australia}} * 朝鮮語:{{t+|ko|^오스트레일리아}}、{{t+|ko|^호주(濠洲)}}、{{t+|ko|^오스트랄리아}} {{qualifier|朝鮮}} * 庫爾德語: *: 中庫爾德語:{{t+|ckb|ئوسترالیا}} *: 北庫爾德語:{{t+|kmr|Awistralya}}、{{t+|kmr|Australya}}、{{t+|kmr|Awustralya}}、{{t+|kmr|Ewistralya}}、{{t+|kmr|Ewustralya}}、{{t+|kmr|Ostralya}}、{{t+|kmr|Ustralya}} * 吉爾吉斯語:{{t+|ky|Австралия}} * 老撾語:{{t|lo|ອົດສະຕາລີ}}、{{t|lo|ອົສຕາລີ}}、{{t|lo|ອົດສະຕຣາລີ}} * 拉丁語:{{t+|la|Australia|f}} * 拉脫維亞語:{{t+|lv|Austrālija|f}} * 立陶宛語:{{t+|lt|Australija|f}} * 盧希亞語:{{t|luy|Australia}} * 盧歐語:{{t|luo|Australia}} * 馬其頓語:{{t+|mk|Австралија|f}} * 馬拉加斯語:{{t|mg|Aostralia}} * 馬來語:{{t+|ms|Australia}} * 馬拉雅拉姆語:{{t|ml|ആസ്ട്രേലിയ}}、{{t|ml|ഓസ്ട്രേലിയ}} * 馬爾他語:{{t|mt|Awstralja|f}} * 曼島語:{{t|gv|Austrail|f|alt=Yn Austrail}} * 毛利語:{{t|mi|Ahitereiria}}、{{t|mi|Te Pāpaka-a-Māui}}、{{t|mi|Te Whenua Moemoeā}} * 馬拉地語:{{t|mr|ऑस्ट्रेलिया}}、{{t|mr|ओस्ट्रेलिया}} * 梅里阿姆語:{{t|ulk|Keo Daudai}} * 莫克沙語:{{t|mdf|Австралие}} * 蒙古語: *: 西里爾字母:{{t|mn|Австрали}}、{{t|mn|[[Австрали]] [[улс]]}}, *: 蒙古字母:{{t|mn|ᠠᠦ᠋ᠰᠲ᠋ᠷᠠᠯᠢ}} * 納瓦特爾語:{{t|nah|Australia}} * 瑙魯語:{{t+|na|Otereiriya}} * 納瓦霍語:{{t|nv|Nahatʼeʼiitsoh bikéyah}} * 尼泊爾語:{{t|ne|अस्ट्रेलिया}} * 紐埃語:{{t|niu|Ausetalia}} * 諾福克語:{{t|pih|Ostrielya}} * 諾曼語:{{t|nrf|Australie|f}} * 挪威語: *: 書面挪威語:{{t+|nb|Australia|n}} *: 新挪威語:{{t+|nn|Australia|n}} * 奧克語:{{t+|oc|Austràlia|f}} * 奧利亞語:{{t|or|ଅଷ୍ଟ୍ରେଲିଆ}} * 沖繩語:{{t|ryu|オーストラリア}} * 教會斯拉夫語: *: 西里爾字母:{{t|cu|Аѵстралїꙗ|f}} {{qualifier|現代}} * 奧塞梯語:{{t|os|Австрали}} * 普什圖語:{{t|ps|اسټراليا|f|tr=asṭrālyā}}、{{t|ps|آستراليا|f|tr=āstrālyā}}、{{t|ps|استراليا|f|tr=astrālyā}} * 波斯語: *: 達利波斯語:{{t|prs|آسْتْرَالِیَا}}、{{t|prs|آسْتْرَلِیَا}}、{{t|prs|آسْتْریلِیَا}} *: 伊朗波斯語:{{t|fa-ira|اُسْتُرالِیا}}、{{t|fa-ira|اُسْتْرالِیا}} * 門諾低地德語:{{t|pdt|Australien|n}} * 波蘭語:{{t+|pl|Australia|f}} * 葡萄牙語:{{t+|pt|Austrália|f}} * 普卡普卡語:{{t|pkp|Oteleilia}} * 旁遮普語: *: 古木基文:{{t|pa|ਅਸਟ੍ਰੇਲੀਆ|m}}、{{t|pa|ਆਸਟ੍ਰੇਲੀਆ|m}} * 拉羅湯加語:{{t|rar|‘Autirēria}} * 萊茵法蘭克尼亞語:{{t|gmw-rfr|Auschdralie}} * 羅馬尼亞語:{{t+|ro|Australia|f}} * 俄語:{{t+|ru|Австра́лия|f}} * 薩摩亞語:{{t+|sm|Ausetalia}} * 梵語:{{t|sa|महालंका}} * 低地蘇格蘭語:{{t|sco|Australie}}、{{t|sco|Austrailie}} * 蘇格蘭蓋爾語:{{t|gd|Astràilia}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Ау̀стра̄лија|f}} *: 拉丁字母:{{t+|sh|Aùstrālija|f}} * 撣語:{{t|shn|ဢေႃႇၸတြေးလီးယိူဝ်း}} * 信德語:{{t|sd|آسٽريليا}} * 僧加羅語:{{t+|si|ඕස්ට්‍රේලියාව}} * 斯拉夫莫利塞語:{{t|svm|Lauštralija|f}} * 斯洛伐克語:{{t+|sk|Austrália|f}} * 斯洛文尼亞語:{{t+|sl|Avstrálija|f}} * 索馬里語:{{t|so|Ustraleeya}} * 索布語: *: 下索布語:{{t|dsb|Awstralska|f}} *: 上索布語:{{t|hsb|Awstralska|f}} * 西班牙語:{{t+|es|Australia|f}} * 斯瓦希里語:{{t+|sw|Australia}} * 瑞典語:{{t+|sv|Australien|n}} * 他加祿語:{{t|tl|Australia}} * 大溪地語:{{t|ty|Autereraria}}、{{t|ty|Auterāria}} * 塔吉克語:{{t+|tg|Австралия}} * 泰米爾語:{{t+|ta|அவுஸ்திரேலியா}}、{{t+|ta|ஆஸ்திரேலியா}} * 韃靼語:{{t|tt|Австралия}} * 泰盧固語:{{t+|te|ఆస్ట్రేలియా}} * 泰語:{{t+|th|ออสเตรเลีย}} * 藏語:{{t|bo|ཨོ་སེ་ཐེ་ལི་ཡ}} * 提格里尼亞語:{{t|ti|ኣውስትራሊያ}} * 托克皮辛語:{{t|tpi|Ostrelia}} * 湯加語:{{t|to|ʻAositelēlia}} * 托雷斯海峽克里奧爾語:{{t|tcs|Ostrelia}} * 土耳其語:{{t+|tr|Avustralya}} * 土庫曼語:{{t|tk|Awstraliýa}} * 烏克蘭語:{{t+|uk|Австра́лія|f}} * 烏爾都語:{{t|ur|آسْٹْریلِیا|m}} * 維吾爾語:{{t|ug|ئاۋسترالىيە}} * 烏茲別克語:{{t+|uz|Avstraliya}} * 維普斯語:{{t|vep|Avstralii}} * 越南語:{{t+|vi|Úc}} ({{t|vi|澳}})、{{t|vi|Úc Đại Lợi}} ({{t|vi|澳大利}})、{{t|vi|Châu Úc}} ({{t|vi|洲澳}})、{{t|vi|Úc Châu}} ({{t|vi|澳洲}})、{{t+|vi|Ô-xtrây-li-a}}、{{t|vi|[[nước]] [[Úc]]}}、{{t+|vi|Australia}} * 沃拉普克語:{{t+|vo|Laustralän}} * 瓦隆語:{{t+|wa|Ostraleye}} * 威爾士語:{{t+|cy|Awstralia}} * 西旁遮普語:{{t|pnb|آسٹریلیا|tr=āsṫreliya}} * 沃洛夫語:{{t+|wo|Óstraali}} * 雅庫特語:{{t|sah|Аустралия}} * 意第緒語:{{t|yi|אויסטראַליע|f}}、{{t|yi|אַווסטראַליע|f}} * 約魯巴語:{{t|yo|Ọsirélíà}} * 扎扎其語:{{qualifier|南扎扎其語}} {{t|zza|Awıstralya}} * 壯語:{{t|za|Audaliya}}、{{t|za|Aucouh}} * 祖魯語:{{t|zu|i-Ostreliya}} {{trans-bottom}} {{trans-top|id=Q3960|大洲}} * 南非語:{{t+|af|Australië}} * 阿拉伯語:{{t+|ar|أُسْتُرَالِيَا|f}}、{{t|ar|أُوسْتُرَالِيَا|f}} * 亞美尼亞語:{{t+|hy|Ավստրալիա}} * 阿薩姆語:{{t|as|অষ্ট্ৰেলিয়া}} * 亞述新亞拉姆語:{{t|aii|ܐܘܼܣܛܪܵܠܝܼܵܐ|f|tr=usṭraliya}} * 白俄羅斯語:{{t+|be|Аўстра́лія|f}} * 孟加拉語:{{t+|bn|অস্ট্রেলিয়া}} * 緬甸語:{{t+|my|ဩစတြေးလျ}} * 加泰羅尼亞語:{{t+|ca|Austràlia|f}} * 捷克語:{{t+|cs|Austrálie|f}} * 丹麥語:{{t+|da|Australien}} * 荷蘭語:{{t+|nl|Australië}} * 英語:{{t+|en|Australia}} * 愛沙尼亞語:{{t+|et|Austraalia}} * 芬蘭語:{{t+|fi|Australia}}、{{t|fi|[[Australia]]n [[manner]]}} * 法語:{{t+|fr|Australie|f}} * 加利西亞語:{{t+|gl|Australia|f}} * 卡米拉瑞語:{{t|kld|Yarraanbaa}} * 格魯吉亞語:{{t+|ka|ავსტრალია}} * 德語:{{t+|de|Australien}} * 夏威夷語:{{t|haw|ʻAukekulelia}} * 希伯來語:{{t+|he|אוֹסְטְרַלְיָה|f|tr=ostrálya}} * 印地語:{{t+|hi|ऑस्ट्रेलिया|m}}、{{t|hi|आस्ट्रेलिया|m}}、{{t|hi|ओस्ट्रेलिया|m}} * 匈牙利語:{{t+|hu|Ausztrália}} * 冰島語:{{t+|is|Ástralía|f}} * 英格里亞語:{{t|izh|Australia}} * 愛爾蘭語:{{t|ga|Astráil|f|alt=An Astráil}} * 日語:{{t+|ja|オーストラリア|tr=Ōsutoraria}}(借字寫法:{{t+|ja|濠太剌利|tr=Ōsutoraria}})、{{qualifier|罕用}} {{t+|ja|濠洲|tr=ごうしゅう, Gōshū}}、{{t+|ja|豪州|tr=ごうしゅう, Gōshū}}、{{qualifier|簡稱}} {{t+|ja|濠|tr=ごう, Gō}}、{{t+|ja|豪|tr=ごう, Gō}}、{{t|ja|[[オーストラリア]][[大陸]]|tr=オーストラリアたいりく, Ōsutoraria tairiku}} * 高棉語:{{t+|km|អូស្ត្រាលី}} * 朝鮮語:{{t+|ko|^오스트레일리아}}、{{t+|ko|^호주(濠洲)}}、{{t+|ko|^오스트랄리아}} {{qualifier|朝鮮}} * 拉脫維亞語:{{t+|lv|Austrālija|f}} * 立陶宛語:{{t+|lt|Australija|f}} * 馬其頓語:{{t+|mk|Австралија|f}} * 馬來語:{{t+|ms|Australia}} * 曼島語:{{t|gv|Austrail|f|alt=Yn Austrail}} * 莫西語:{{t|mos|wostrali}} * 諾曼語:{{t|nrf|Australie|f}} * 挪威語: *: 書面挪威語:{{t+|nb|Australia|n}} *: 新挪威語:{{t+|nn|Australia|n}} * 奧克語:{{t+|oc|Austràlia|f}} * 普什圖語:{{t|ps|اسټراليا|f|tr=asṭrālyā}}、{{t|ps|آستراليا|f|tr=āstrālyā}}、{{t|ps|استراليا|f|tr=astrālyā}} * 波斯語: *: 達利波斯語:{{t|prs|آسْتْرَالِیَا}}、{{t|prs|آسْتْرَلِیَا}}、{{t|prs|آسْتْریلِیَا}} *: 伊朗波斯語:{{t|fa-ira|اُسْتُرالِیا}}、{{t|fa-ira|اُسْتْرالِیا}} * 門諾低地德語:{{t|pdt|Australien|n}} * 波蘭語:{{t+|pl|Australia|f}} * 葡萄牙語:{{t+|pt|Austrália|f}} * 羅馬尼亞語:{{t+|ro|Australia|f}} * 俄語:{{t+|ru|Австра́лия|f}} * 塞爾維亞-克羅地亞語: *: 西里爾字母:{{t|sh|Ау̀стра̄лија|f}} *: 拉丁字母:{{t+|sh|Aùstrālija|f}} * 斯洛伐克語:{{t+|sk|Austrália|f}} * 斯洛文尼亞語:{{t+|sl|Avstrálija|f}} * 索布語: *: 上索布語:{{t|hsb|Awstralija|f}} * 西班牙語:{{t+|es|Australia|f}} * 瑞典語:{{t+|sv|Australien|n}} * 泰盧固語:{{t+|te|ఆస్ట్రేలియా}} * 泰語:{{t+|th|ออสเตรเลีย}} * 土耳其語:{{t+|tr|Avustralya}} * 烏爾都語:{{t|ur|آسْٹْریلِیا|m}} * 維吾爾語:{{t|ug|ئاۋسترالىيە}} * 越南語:{{t|vi|Châu Úc}} ({{t|vi|洲澳}})、{{t|vi|Úc Châu}} ({{t|vi|澳洲}})、{{t+|vi|Úc}} ({{t|vi|澳}}) * 沃拉普克語:{{t+|vo|Stralop}} * 意第緒語:{{t|yi|אַווסטראַליע|n}} {{trans-bottom}} ertyeh4iggtuxmneqy88r2x5ff02s4n Module:Place 828 1629826 9759526 9758852 2026-05-14T21:37:38Z TongcyDai 53191 9759526 Scribunto text/plain local export = {} local force_cat = false -- set to true for testing local m_placetypes = require("Module:place/placetypes") local m_links = require("Module:links") local memoize = require("Module:memoize") local m_strutils = require("Module:string utilities") local m_table = require("Module:table") -- Chinese localization data (zh_name, zh_suffix, qualifiers, extra-info labels, etc.) local m_zh_data = require("Module:place/data") local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" local form_of_module = "Module:form of" local languages_module = "Module:languages" local parse_interface_module = "Module:parse interface" local parse_utilities_module = "Module:parse utilities" local parameter_utilities_module = "Module:parameter utilities" local utilities_module = "Module:utilities" local zhlang = require(languages_module).getByCode("zh") local rmatch = m_strutils.match local rfind = m_strutils.find local ulen = m_strutils.len local split = m_strutils.split local dump = mw.dumpObject local insert = table.insert local concat = table.concat local pluralize = require(en_utilities_module).pluralize local extend = m_table.extend local unpack = unpack or table.unpack -- Lua 5.2 compatibility local internal_error = m_placetypes.internal_error local process_error = m_placetypes.process_error local placetype_data = m_placetypes.placetype_data -- Shorthand for the ZH localization string table. local zh_strings = m_zh_data.zh_strings --[==[ ZH fork of [[Module:place]] (enwikt). Architecture and data structures are identical to the English version; only the display-formatting functions are changed to produce Chinese-language definitions. Key structural differences from enwikt: * Old-style holonyms are reversed (big→small containment order) and joined with 、/和 rather than "in X, Y". * Sentence pattern: 位於[holonyms]的[placetype] (or [holonyms]的[placetype] for "of"-type placetypes). * No articles (a/an/the) in generated text. * Pref/suf holonym affixes append the Chinese zh_suffix instead of English "placetype of X". * Translations are joined with "," (full-width comma); parenthetical glosses use (). * Extra-info labels (capital, largest city, etc.) come from Module:place/data zh_extra_info_labels. * sentence_style is always true for ZH (extra info uses "。" separator, not ";"). ]==] --[==[ var: List specifying the allowed form-of directives, used for former names, official names, abbreviations, etc. of places. The key is the form-of directive and the value is an object with the following properties: * `text`: The actual text displayed before the terms. If the value is `+`, the key is used as the text. If the value is a function, it is passed a single argument, the overall place spec (see comment at top of file) and should return the text to be displayed. * `type_prefix`: The prefix used to generate the placetype for looking up the appropriate category or categories in the placetype data structure. Can be omitted if there are no categories associated with the directive. * `conjunction`: The conjunction used to join multiple terms, defaulting to `and`. * `cat`: Additional category or categories to add the term to, whenever this particular directive is used. * `default_foreign`: If specified, the default language of terms given along with this directive is the language in {{para|1}}; otherwise it is English. ]==] export.all_form_of_directives = { ["former name of"] = {text = "+", type_prefix = "FORMER_NAME_OF"}, ["fmr of"] = {alias_of = "former name of"}, ["ancient name of"] = {text = "+", type_prefix = "FORMER_NAME_OF"}, ["official name of"] = {text = "+", type_prefix = "OFFICIAL_NAME_OF"}, ["former official name of"] = {text = "+", type_prefix = "FORMER_OFFICIAL_NAME_OF"}, ["long form of"] = {text = "+", type_prefix = "LONG_FORM_OF"}, ["former long form of"] = {text = "+", type_prefix = "FORMER_LONG_FORM_OF"}, ["nickname for"] = {text = "+", type_prefix = "NICKNAME_FOR"}, ["official nickname for"] = {text = "+", type_prefix = "OFFICIAL_NICKNAME_FOR"}, ["former nickname for"] = {text = "+", type_prefix = "FORMER_NICKNAME_FOR"}, ["derogatory name for"] = {text = "[[Appendix:Glossary#derogatory|derogatory]] name for", type_prefix = "DEROGATORY_NAME_FOR"}, ["synonym of"] = {text = "+"}, ["syn of"] = {alias_of = "synonym of"}, ["abbreviation of"] = {text = "[[Appendix:Glossary#abbreviation|abbreviation]] of", type_prefix = "ABBREVIATION_OF", cat = "cln:abbreviations", default_foreign = true}, ["abbr of"] = {alias_of = "abbreviation of"}, ["abbrev of"] = {alias_of = "abbreviation of"}, ["initialism of"] = {text = "[[Appendix:Glossary#initialism|initialism]] of", type_prefix = "ABBREVIATION_OF", cat = "cln:initialisms", default_foreign = true}, ["init of"] = {alias_of = "initialism of"}, ["acronym of"] = {text = "[[Appendix:Glossary#acronym|acronym]] of", type_prefix = "ABBREVIATION_OF", cat = "cln:acronyms", default_foreign = true}, ["syllabic abbreviation of"] = {text = "[[Appendix:Glossary#syllabic abbreviation|syllabic abbreviation]] of", type_prefix = "ABBREVIATION_OF", cat = "cln:syllabic abbreviations", default_foreign = true}, ["sylabbr of"] = {alias_of = "syllabic abbreviation of"}, ["sylabbrev of"] = {alias_of = "syllabic abbreviation of"}, ["ellipsis of"] = {text = "[[Appendix:Glossary#ellipsis|ellipsis]] of", type_prefix = "ELLIPSIS_OF", cat = "cln:ellipses", default_foreign = true}, ["ellip of"] = {alias_of = "ellipsis of"}, ["clipping of"] = {text = "[[Appendix:Glossary#clipping|clipping]] of", type_prefix = "CLIPPING_OF", cat = "cln:clippings", default_foreign = true}, ["clip of"] = {alias_of = "clipping of"}, ["alternative form of"] = {text = "+", default_foreign = true}, ["alt form"] = {alias_of = "alternative form of"}, ["alternative spelling of"] = {text = "+", default_foreign = true}, ["alt spell"] = {alias_of = "alternative spelling of"}, ["alt sp"] = {alias_of = "alternative spelling of"}, ["dated form of"] = {text = "[[Appendix:Glossary#dated|dated]] form of", type_prefix = "DATED_FORM_OF", cat = "cln:dated forms", default_foreign = true}, ["dated form"] = {alias_of = "dated form of"}, ["dated spelling of"] = {text = "[[Appendix:Glossary#dated|dated]] spelling of", type_prefix = "DATED_FORM_OF", cat = "cln:dated forms", default_foreign = true}, ["dated spell"] = {alias_of = "dated spelling of"}, ["dated sp"] = {alias_of = "dated spelling of"}, ["archaic form of"] = {text = "[[Appendix:Glossary#archaic|archaic]] form of", type_prefix = "ARCHAIC_FORM_OF", cat = "cln:archaic forms", default_foreign = true}, ["arch form"] = {alias_of = "archaic form of"}, ["archaic spelling of"] = {text = "[[Appendix:Glossary#archaic|archaic]] spelling of", type_prefix = "ARCHAIC_FORM_OF", cat = "cln:archaic forms", default_foreign = true}, ["arch spell"] = {alias_of = "archaic spelling of"}, ["arch sp"] = {alias_of = "archaic spelling of"}, ["obsolete form of"] = {text = "[[Appendix:Glossary#obsolete|obsolete]] form of", type_prefix = "OBSOLETE_FORM_OF", cat = "cln:obsolete forms", default_foreign = true}, ["obs form"] = {alias_of = "obsolete form of"}, ["obsolete spelling of"] = {text = "[[Appendix:Glossary#obsolete|obsolete]] spelling of", type_prefix = "OBSOLETE_FORM_OF", cat = "cln:obsolete forms", default_foreign = true}, ["obs spell"] = {alias_of = "obsolete spelling of"}, ["obs sp"] = {alias_of = "obsolete spelling of"}, } local function get_seat_text(overall_place_spec) local placetype = overall_place_spec.descs[1].placetypes[1] if placetype == "county" or placetype == "counties" then return "county seat" elseif placetype == "parish" or placetype == "parishes" then return "parish seat" elseif placetype == "borough" or placetype == "boroughs" then return "borough seat" else return "seat" end end --[==[ var: List specifying the allowed arguments containing extra information that is sometimes added to a definition, such as the capital, largest city, modern name, official name, etc., along with associated properties; displayed in the order given. See enwikt [[Module:place]] for full documentation of each field. ]==] export.extra_info_args = { {arg = "modern", text = "+", conjunction = "or", display_even_when_dropped = true}, {arg = "now", text = "now,", conjunction = "or", display_even_when_dropped = true}, {arg = "full", text = "in full,", conjunction = "or", display_even_when_dropped = true}, {arg = "short", text = "short form", conjunction = "or"}, {arg = "abbr", text = "abbreviation", conjunction = "or"}, {arg = "former", text = "formerly,"}, {arg = "official", text = "official name", match_sentence_style = true, auto_plural = true, with_colon = true}, {arg = "capital", text = "+", match_sentence_style = true, auto_plural = true, with_colon = true}, {arg = "largest city", text = "+", match_sentence_style = true, auto_plural = true, with_colon = true}, {arg = "caplc", text = "capital and largest city", match_sentence_style = true, auto_plural = false, with_colon = true}, {arg = "seat", text = get_seat_text, match_sentence_style = true, auto_plural = true, with_colon = true}, {arg = "shire town", text = "+", match_sentence_style = true, auto_plural = true, with_colon = true}, {arg = "headquarters", text = "+", match_sentence_style = true, auto_plural = false, with_colon = true}, {arg = "center", text = "administrative center", match_sentence_style = true, auto_plural = false, with_colon = true}, {arg = "centre", text = "administrative centre", match_sentence_style = true, auto_plural = false, with_colon = true}, } export.extra_info_arg_map = {} for _, spec in ipairs(export.extra_info_args) do export.extra_info_arg_map[spec.arg] = spec end ----------- Wikicode utility functions -- Return a wikilink link {{l|language|text}} local function link(text, langcode, id) if not langcode then return text end return m_links.language_link( -- l10n, avoid simp/trad or applying special fonts { term = text, alt = text, lang = require(languages_module).getByCode(langcode, true, "allow etym"), id = id } ) end ---------- Basic utility functions -- Add the page to a tracking "category". To see the pages in the "category", -- go to [[Wiktionary:Tracking/place/PAGE]] and click on "What links here". local function track(page) require(debug_track_module)("place/" .. page) return true end local function ucfirst_all(text) if text:find(" ") then local parts = split(text, " ", true) for i, part in ipairs(parts) do parts[i] = m_strutils.ucfirst(part) end return concat(parts, " ") else return m_strutils.ucfirst(text) end end local function lc(text) return mw.getContentLanguage():lc(text) end ---------- Argument parsing functions and utilities -- Split an argument on comma, but not comma followed by whitespace. local function split_on_comma(val) if val:find(",") then return require(parse_interface_module).split_on_comma(val) else return {val} end end -- Split an argument on slash, but not slash occurring inside of HTML tags like </span> or <br />. local function split_on_slash(arg) if arg:find("<") then local m_parse_utilities = require(parse_utilities_module) -- We implement this by parsing balanced segment runs involving <...>, and splitting on slash in the remainder. -- The result is a list of lists, so we have to rejoin the inner lists by concatenating. local segments = m_parse_utilities.parse_balanced_segment_run(arg, "<", ">") local slash_separated_groups = m_parse_utilities.split_alternating_runs(segments, "/") for i, group in ipairs(slash_separated_groups) do slash_separated_groups[i] = concat(group) end return slash_separated_groups else return split(arg, "/", true) end end -- Implement "implications", i.e. where the presence of a given holonym causes additional holonym(s) to be added. -- Implications apply only to categorization. local function handle_category_implications(place_descriptions, implication_data) for i, desc in ipairs(place_descriptions) do if desc.holonyms then local new_holonyms = {} for _, holonym in ipairs(desc.holonyms) do insert(new_holonyms, holonym) local imp_data = m_placetypes.get_equiv_placetype_prop(holonym.placetype, function(pt) local implication = implication_data[pt] and implication_data[pt][holonym.unlinked_placename] if implication then return implication end end) if imp_data then for _, holonym_to_add in ipairs(imp_data) do local split_holonym = split_on_slash(holonym_to_add) if #split_holonym ~= 2 then internal_error("Invalid holonym in implications: %s", holonym_to_add) end local holonym_placetype, holonym_placename = unpack(split_holonym, 1, 2) local new_holonym = { placetype = holonym_placetype, unlinked_placename = holonym_placename } insert(new_holonyms, new_holonym) m_placetypes.key_holonym_into_place_desc(desc, new_holonym) end end end desc.holonyms = new_holonyms end end end -- Split a holonym (e.g. "continent/Europe" or "country/en:Italy" or "in southern" or "r:suf/O'Higgins" or -- "c/Austria,Germany,Czech Republic") into its components. Return a list of holonym objects (see top of file). Note -- that if there isn't a slash in the holonym (e.g. "in southern"), the `placetype` field of the holonym will be nil. -- Placetype aliases (e.g. "r" for "region") and placename aliases (e.g. "US" or "USA" for "United States") will be -- expanded. local function split_holonym(raw) local no_display, combined_holonym = raw:match("^(!)(.*)$") no_display = not not no_display combined_holonym = combined_holonym or raw local suppress_comma, combined_holonym_without_comma = combined_holonym:match("^(%*)(.*)$") suppress_comma = not not suppress_comma combined_holonym = combined_holonym_without_comma or combined_holonym local holonym_parts = split_on_slash(combined_holonym) if #holonym_parts == 1 then -- `unlinked_placename` should not be used. return {{display_placename = combined_holonym, no_display = no_display, suppress_comma = suppress_comma}} end -- Rejoin further slashes in case of slash in holonym placename, e.g. Admaston/Bromley. local placetype = holonym_parts[1] local placename = concat(holonym_parts, "/", 2) -- Check for modifiers after the holonym placetype. local split_holonym_placetype = split(placetype, ":", true) placetype = split_holonym_placetype[1] local affix_type local saw_also local saw_the for i = 2, #split_holonym_placetype do local modifier = split_holonym_placetype[i] if modifier == "also" then if saw_also then error(("Modifier ':also' occurs twice in holonym '%s'"):format(combined_holonym)) end saw_also = true elseif modifier == "the" then if saw_the then error(("Modifier ':the' occurs twice in holonym '%s'"):format(combined_holonym)) end saw_the = true elseif modifier == "pref" or modifier == "Pref" or modifier == "suf" or modifier == "Suf" or modifier == "noaff" then if affix_type then error(("Affix-type modifier ':%s' occurs twice in holonym '%s'"):format(modifier, combined_holonym)) end affix_type = modifier else error(("Unrecognized holonym placetype modifier '%s', should be one of " .. "'pref', 'Pref', 'suf', 'Suf', 'noaff', 'also' or 'the'"):format(modifier)) end end placetype = m_placetypes.resolve_placetype_aliases(placetype) local holonyms = split_on_comma(placename) local pluralize_affix = #holonyms > 1 local affix_holonym_index = (affix_type == "pref" or affix_type == "Pref") and 1 or affix_type == "noaff" and 0 or #holonyms for i, placename in ipairs(holonyms) do -- Check for langcode before the holonym placename, but don't get tripped up by Wikipedia links, which begin -- "[[w:...]]" or "[[wikipedia:]]". local langcode, placename_without_langcode = rmatch(placename, "^([^%[%]]-):(.*)$") if langcode then placename = placename_without_langcode end placename = m_placetypes.resolve_placename_display_aliases(placetype, placename) holonyms[i] = { placetype = placetype, display_placename = placename, unlinked_placename = m_placetypes.remove_links_and_html(placename), langcode = langcode, affix_type = i == affix_holonym_index and affix_type or nil, pluralize_affix = i == affix_holonym_index and pluralize_affix, suppress_affix = i ~= affix_holonym_index, no_display = no_display, suppress_comma = suppress_comma, continue_cat_loop = saw_also, force_the = i == 1 and saw_the, } end return holonyms end local get_param_mods = memoize(function() local m_param_utils = require(parameter_utilities_module) return m_param_utils.construct_param_mods { {group = {"link", "q", "l", "ref"}}, {param = "eq"}, {param = "conj", set = {["and"] = true, ["or"] = true, ["and/or"] = true}, overall = true}, } end) local function parse_term_with_inline_modifiers(term, paramname, default_lang) local function generate_obj(raw_term, parse_err) local obj = require(parameter_utilities_module).generate_obj_maybe_parsing_lang_prefix { term = raw_term, parse_err = parse_err, parse_lang_prefix = true, } obj.lang = obj.lang or default_lang return obj end return require(parse_interface_module).parse_inline_modifiers(term, { paramname = paramname, param_mods = get_param_mods(), generate_obj = generate_obj, splitchar = ",", outer_container = {}, }) end local function parse_form_of_directive(arg, lang, form_of_overridden_args) local form_of_directive, raw_terms = arg:match("^@([a-z -]+):(.*)$") if not form_of_directive then error("Misformatted @-directive: " .. dump(arg)) end if not export.all_form_of_directives[form_of_directive] then local known_directives = {} for k, _ in pairs(export.all_form_of_directives) do insert(known_directives, '"' .. k .. '"') end table.sort(known_directives) error(("Unrecognized form-of directive %s in @-directive %s; recognized directives are %s"):format( dump(form_of_directive), dump(arg), concat(known_directives, ", "))) end local spec = export.all_form_of_directives[form_of_directive] local canonical_directive = form_of_directive if spec.alias_of then canonical_directive = spec.alias_of spec = export.all_form_of_directives[canonical_directive] if not spec then internal_error("Form-of directive alias %s points to %s, which is not a directive", "@" .. form_of_directive, canonical_directive) elseif spec.alias_of then internal_error("Form-of directive alias %s points to %s, which is also an alias", "@" .. form_of_directive, canonical_directive) end end local default_foreign = spec.default_foreign local directive_param = "@" .. form_of_directive if form_of_overridden_args and form_of_overridden_args[canonical_directive] then raw_terms = form_of_overridden_args[canonical_directive].new_value local new_directive = form_of_overridden_args[canonical_directive].new_directive local new_spec = export.all_form_of_directives[new_directive] if not new_spec then error(("Internal error: [[Module:transclude]] passed in unrecognized replacement directive '@%s'"): format(new_directive)) end if new_spec.alias_of then error(("Internal error: [[Module:transclude]] passed in replacement directive alias '@%s', " .. "should be canonical"):format(new_directive)) end if new_directive ~= canonical_directive then directive_param = directive_param .. (" (replaced with @%s)"):format(new_directive) canonical_directive = new_directive spec = new_spec end default_foreign = true end local terms = parse_term_with_inline_modifiers(raw_terms, directive_param, default_foreign and lang or zhlang) return { directive = canonical_directive, terms = terms.terms, conj = terms.conj, spec = spec, } end -- Parse an argument containing extra information that is sometimes added to a definition, such as the capital, largest -- city, modern name, official name, etc. `args` is the value from the parsed argument structure and can be either nil, -- a string or a list. `spec` is the extra info spec corresponding to the type of extra info. Each value in `args` can -- be a comma-separated list of terms with inline modifiers attached. local function parse_extra_info_arg(args, spec, default_lang) if not args then return nil end if type(args) ~= "table" then args = {args} end if not args[1] then return nil end local terms = nil local conj for i, arg in ipairs(args) do local this_terms = parse_term_with_inline_modifiers(arg, spec.arg .. (i == 1 and "" or i), default_lang) local thisconj = this_terms.conj if not conj then conj = thisconj elseif thisconj and conj ~= thisconj then error(("Two different conjunctions '%s' and '%s' specified for |%s=; you only need to specify the " .. "conjunction once"):format(conj, thisconj)) end if not terms then terms = this_terms.terms else m_table.extend(terms, this_terms.terms) end end return { spec = spec, terms = terms, conj = conj, } end --[==[ Parse a "new-style" place description, with placetypes and holonyms surrounded by `<<...>>` amid otherwise raw text. Return value is a place description object as documented at the top of the file. Exported for use by [[Module:demonyms]]. ]==] function export.parse_new_style_place_desc(text, lang, form_of_directives, form_of_overridden_args) local placetypes = {} local segments = split(text, "<<(.-)>>") local retval = {holonyms = {}, order = {}} local form_of_directives_already_present = form_of_directives and not not form_of_directives[1] for i, segment in ipairs(segments) do if i % 2 == 1 then insert(retval.order, {type = "raw", value = segment}) elseif segment:find("@") then if not form_of_directives then error(("Form-of directive '%s' not allowed in this context"):format(segment)) elseif form_of_directives_already_present then error(("Saw form-of directive '%s' in new-style place desc followed by direct (separate-parameter) form-of directives; not allowed"):format( segment)) elseif placetypes[1] or retval.holonyms[1] then error(("Form-of directive '%s' must come first, before placetypes and holonyms"):format(segment)) else local form_of_directive = parse_form_of_directive(segment, lang, form_of_overridden_args) if not retval.order[1] or retval.order[1].type ~= "raw" or retval.order[2] then internal_error("`retval.order` should have a single raw element: %s", retval.order) end form_of_directive.pretext = retval.order[1].value retval.order[1] = nil insert(form_of_directives, form_of_directive) end elseif segment:find("/") then local holonyms = split_holonym(segment) for j, holonym in ipairs(holonyms) do if j > 1 then if not holonym.no_display then if j == #holonyms then insert(retval.order, {type = "raw", value = zh_strings.and_conj}) else insert(retval.order, {type = "raw", value = zh_strings.enum_sep}) end end holonym.needs_article = true end insert(retval.holonyms, holonym) if not holonym.no_display then insert(retval.order, {type = "holonym", value = #retval.holonyms}) end m_placetypes.key_holonym_into_place_desc(retval, holonym) end else local treat_as, display = segment:match("^(..-):(.+)$") if treat_as then segment = treat_as else display = segment end -- see if the placetype segment is just qualifiers local only_qualifiers = true local split_segments = split(segment, " ", true) for _, split_segment in ipairs(split_segments) do if m_placetypes.placetype_qualifiers[split_segment] == nil then only_qualifiers = false break end end insert(placetypes, {placetype = segment, only_qualifiers = only_qualifiers}) if only_qualifiers then insert(retval.order, {type = "qualifier", value = display}) else insert(retval.order, {type = "placetype", value = display}) end end end if not form_of_directives_already_present and form_of_directives and form_of_directives[1] then form_of_directives[#form_of_directives].posttext = "" end local final_placetypes = {} for i, placetype in ipairs(placetypes) do if i > 1 and placetypes[i - 1].only_qualifiers then final_placetypes[#final_placetypes] = final_placetypes[#final_placetypes] .. " " .. placetypes[i].placetype else insert(final_placetypes, placetypes[i].placetype) end end retval.placetypes = final_placetypes return retval end --[==[ Parse one or more "new-style" place descriptions, with placetypes and holonyms surrounded by `<<...>>` amid otherwise raw text. Multiple descriptions are separated by two semicolons in a row. Return value is a list of place description objects as documented at the top of the file. ]==] local function parse_conjoined_new_style_place_desc(text, lang, form_of_directives, form_of_overridden_args) local separate_specs = split(text, ";(;[^ ]*)") local descs = {} for i = 1, #separate_specs do if i % 2 == 1 then insert(descs, export.parse_new_style_place_desc(separate_specs[i], lang, form_of_directives, form_of_overridden_args)) form_of_directives = nil else descs[#descs].separator = separate_specs[i] end end return descs end --[=[ Process numeric and "extra info" arguments into an overall place spec, as described at the top of the file. ]=] local function parse_overall_place_spec(data) local args, from_tcl, extra_info_overridden_set, form_of_overridden_args = data.args, data.from_tcl, data.extra_info_overridden_set, data.form_of_overridden_args local descs = {} local this_desc -- Index of separate (semicolon-separated) place descriptions within `descs`. local desc_index = 1 -- Index of separate holonyms within a place description. 0 means we've seen no holonyms and have yet to process -- the placetypes that precede the holonyms. 1 means we've seen no holonyms but have already processed the -- placetypes. local holonym_index = 0 local in_place_desc = false local form_of_directives = {} -- ZH: use Chinese semicolon and space characters for multi-description joiners. local function set_desc_joiner(desc, separator) if separator == ";" then this_desc.joiner = zh_strings.semicolon -- ";" instead of "; " this_desc.include_following_article = true elseif separator == ";;" then this_desc.joiner = " " else local joiner = separator:sub(2) if rfind(joiner, "^%a") then this_desc.joiner = " " .. joiner .. " " elseif joiner == "," then -- ZH: ASCII comma → full-width ,(無空格) this_desc.joiner = zh_strings.trans_sep else this_desc.joiner = joiner .. " " end end end for _, arg in ipairs(args[2]) do if arg:find("^@") then if not (desc_index == 1 and holonym_index == 0) then error("@-directives cannot follow place descriptions") end local form_of_directive = parse_form_of_directive(arg, args[1], form_of_overridden_args) if form_of_directives[1] then form_of_directive.pretext = ", " else form_of_directive.pretext = "" end insert(form_of_directives, form_of_directive) elseif arg == ";" or arg:find("^;[^ ]") then if not this_desc then error("Saw semicolon joiner without preceding place description") end set_desc_joiner(this_desc, arg) desc_index = desc_index + 1 holonym_index = 0 in_place_desc = false else if arg:find("<<") then if in_place_desc then error("New-style place description must come first or following a separator (semicolon or similar), not directly following another description") end in_place_desc = true local this_descs = parse_conjoined_new_style_place_desc(arg, args[1], form_of_directives, form_of_overridden_args) for j, desc in ipairs(this_descs) do this_desc = desc if holonym_index > 0 then desc_index = desc_index + 1 holonym_index = 0 end if j < #this_descs then set_desc_joiner(this_desc, this_desc.separator) end descs[desc_index] = this_desc last_was_new_style = true holonym_index = #this_desc.holonyms + 1 end else -- Old-style arguments can directly follow a new-style argument; they become additional holonyms -- tacked onto the end of the holonym list, and are displayed old-style except that there is no -- prefix before the first one following the new-style argument. in_place_desc = true if holonym_index == 0 then local entry_placetypes = split_on_slash(arg) this_desc = {placetypes = entry_placetypes, holonyms = {}} descs[desc_index] = this_desc holonym_index = holonym_index + 1 else local holonyms = split_holonym(arg) for j, holonym in ipairs(holonyms) do if j > 1 then -- All but the first in a multi-holonym need an article. Not for the first one because e.g. -- {{place|en|city|s/Arizona|c/United States}} should not display as "a city in Arizona, the -- United States". The overall first holonym in the place description gets an article if -- needed regardless of our setting here. holonym.needs_article = true -- Insert "and" before the last holonym. if j == #holonyms then this_desc.holonyms[holonym_index] = { -- Use the no_display value from the first holonym; it should be the same for all -- holonyms. `unlinked_placename` should not be used. display_placename = "and", no_display = holonyms[1].no_display } holonym_index = holonym_index + 1 end end this_desc.holonyms[holonym_index] = holonym m_placetypes.key_holonym_into_place_desc(this_desc, this_desc.holonyms[holonym_index]) holonym_index = holonym_index + 1 end end end end end if form_of_directives[1] and not form_of_directives[#form_of_directives].posttext then form_of_directives[#form_of_directives].posttext = (args.def and args.def ~= "-" or not args.def and descs[1]) and ": " or "" end -- Tracking code (unchanged from enwikt). for _, desc in ipairs(descs) do for _, entry_placetype in ipairs(desc.placetypes) do local splits = m_placetypes.split_qualifiers_from_placetype(entry_placetype, "no canon qualifiers") for _, split in ipairs(splits) do local prev_qualifier, this_qualifier, bare_placetype = unpack(split, 1, 3) track("entry-placetype/" .. bare_placetype) if this_qualifier then track("entry-qualifier/" .. this_qualifier) end end end for _, holonym in ipairs(desc.holonyms) do if holonym.placetype then track("holonym-placetype/" .. holonym.placetype) end end end local extra_info = {} for _, extra_info_spec in ipairs(export.extra_info_args) do local extra_info_terms = parse_extra_info_arg(args[extra_info_spec.arg], extra_info_spec, from_tcl and extra_info_overridden_set and extra_info_overridden_set[extra_info_spec.arg] and args[1] or zhlang) if extra_info_terms then insert(extra_info, extra_info_terms) end end return { lang = args[1], args = args, directives = form_of_directives, descs = descs, extra_info = extra_info, } end -------- Definition-generating functions -- Return a string with the wikilinks to the ZH translations of the word. -- ZH: joins multiple translations with "," (full-width comma) instead of ", ". local function get_translations(transl, ids) local ret = {} for i, t in ipairs(transl) do local arg_transls = split_on_comma(t) local arg_ids = ids[i] if arg_ids then arg_ids = split_on_comma(arg_ids) if #arg_transls ~= #arg_ids then error(("Saw %s translation%s in t%s=%s but %s ID%s in tid%s=%s"):format( #arg_transls, #arg_transls > 1 and "s" or "", i == 1 and "" or i, t, #arg_ids, #arg_ids > 1 and "'s" or "", i == 1 and "" or i, ids[i])) end end for j, arg_transl in ipairs(arg_transls) do insert(ret, link(arg_transl, "zh", arg_ids and arg_ids[j] or nil)) end end return concat(ret, zh_strings.trans_sep) -- "," instead of ", " end -- Chinese has no articles; these stubs keep the call-sites intact. local function get_placename_article(decorated_placename, placetypes, placename, suppress_holonym_use_the_check) return nil end local function get_holonym_article(decorated_placename, place_desc, holonym_index) return nil end -- Convert a holonym into display format. For ZH: -- * No article prepended (Chinese has no articles). -- * Both prefix and suffix affix types append the zh_suffix (e.g. "州", "省") directly to the linked name, -- instead of the English "placetype of placename" / "placename placetype" construction. -- * Display handlers are applied unchanged (they may add text based on the holonym's surrounding context). local function format_holonym(place_desc, holonym_index, needs_article) local holonym = place_desc.holonyms[holonym_index] if holonym.no_display then return "" end -- needs_article and force_the are not used in Chinese. local output = holonym.display_placename local placetype = holonym.placetype local affix_type_pt_data, affix_type, affix_is_prefix, affix, prefix, suffix, no_affix_strings local pt_equiv_for_affix_type, already_seen_affix, need_affix local affix_pt_data, pt_equiv_for_affix -- Implement display handlers (unchanged from enwikt). local display_handler = m_placetypes.get_equiv_placetype_prop(placetype, function(pt) return placetype_data[pt] and placetype_data[pt].display_handler end) if display_handler then output = display_handler(placetype, output) end if not holonym.suppress_affix then -- Affix detection logic is unchanged from enwikt; only the rendering differs below. affix_type_pt_data, pt_equiv_for_affix_type = m_placetypes.get_equiv_placetype_prop(placetype, function(pt) local cdpt = placetype_data[pt] return cdpt and cdpt.affix_type and cdpt or nil end ) affix_pt_data, pt_equiv_for_affix = m_placetypes.get_equiv_placetype_prop(placetype, function(pt) local cdpt = placetype_data[pt] return cdpt and (cdpt.affix_type or cdpt.affix or cdpt.prefix or cdpt.suffix) and cdpt or nil end ) if affix_type_pt_data then affix_type = affix_type_pt_data.affix_type need_affix = true end if affix_pt_data then prefix = affix_pt_data.prefix or affix_pt_data.affix suffix = affix_pt_data.suffix or affix_pt_data.affix need_affix = true end no_affix_strings = affix_pt_data and affix_pt_data.no_affix_strings or affix_type_pt_data and affix_type_pt_data.no_affix_strings if holonym.affix_type and placetype then affix_type = holonym.affix_type prefix = prefix or placetype suffix = suffix or placetype need_affix = true end if need_affix then affix_is_prefix = affix_type == "pref" or affix_type == "Pref" if affix_is_prefix then affix = prefix else affix = suffix end if not affix then if not pt_equiv_for_affix_type then internal_error("Something wrong, `pt_equiv_for_affix_type` not set processing holonym: %s", holonym) end affix = pt_equiv_for_affix_type.placetype if not affix then internal_error("Something wrong, no affix could be located in `pt_equiv_for_affix_type` for " .. "holonym %s: %s", holonym, pt_equiv_for_affix_type) end end no_affix_strings = no_affix_strings or lc(affix) -- ZH: skip pluralize_affix (Chinese doesn't pluralize) end end -- ZH: resolve zh_suffix for the affix placetype before linking. local zh_sfx_to_append = nil if need_affix then local _, zh_sfx = m_zh_data.get_zh_placetype_props(affix, m_placetypes) if zh_sfx then local zh_sfx_str = m_zh_data.format_zh_name(zh_sfx) -- Check if zh_suffix already present in the unlinked output. local unlinked = m_placetypes.remove_links_and_html(output) if not unlinked:find(zh_sfx_str, 1, true) then zh_sfx_to_append = zh_sfx_str end end end output = link(output, holonym.langcode or placetype and "zh" or nil) -- ZH: for both pref and suf, append zh_suffix directly after the linked name. -- (EN prefix construction "placetype of placename" is not used in Chinese.) if zh_sfx_to_append then output = output .. zh_sfx_to_append end -- No article for Chinese. return output end -- Format holonyms for a ZH old-style place description. -- Collects all holonyms, filters "and"/"or" connectors, reverses for big→small containment order, -- groups consecutive same-type holonyms (peer locations), then joins with ZH enumeration (、/和). -- Returns the concatenated holonym string, e.g. "美國賓夕法尼亞州", "波蘭、白俄羅斯和烏克蘭". local function format_holonyms_zh(place_desc) local holonyms = place_desc.holonyms if not holonyms or #holonyms == 0 then return "" end -- Collect non-"and"/"or"/"的" holonym items with their original indices. -- A raw "的" holonym (from |的| in the template, like enwikt's |of|) signals possessive preposition; -- filter it from display since format_old_style_place_desc_for_display already appends de_particle. local items = {} local has_de_joiner = false for i, h in ipairs(holonyms) do if not h.no_display then local dname = h.display_placename if dname ~= "and" and dname ~= "or" then if not h.placetype and dname == zh_strings.de_particle then has_de_joiner = true else insert(items, {holonym_index = i, placetype = h.placetype}) end end end end -- Separate trailing raw text (items after the last structural holonym) from non-trailing. -- Trailing raw text should NOT be reversed; it is appended after the full description with ,. local last_structural_idx = 0 for i = #items, 1, -1 do if items[i].placetype then last_structural_idx = i break end end local non_trailing = {} local trailing_texts = {} for i = 1, #items do if i <= last_structural_idx then insert(non_trailing, items[i]) else insert(trailing_texts, holonyms[items[i].holonym_index].display_placename) end end -- Reverse non-trailing for big→small order. local reversed = {} for i = #non_trailing, 1, -1 do insert(reversed, non_trailing[i]) end -- Group consecutive items with the same placetype (peers like multiple countries). -- Raw-text holonyms (no placetype) break any current structural group. local groups = {} local i = 1 while i <= #reversed do local item = reversed[i] if not item.placetype then -- Raw text (e.g. "南部", "東北部") forms its own singleton group. local h = holonyms[item.holonym_index] insert(groups, {type = "raw", text = h.display_placename}) i = i + 1 else -- Structural holonym: collect consecutive ones of the same placetype. local group = {type = "structural", items = {item}} local pt = item.placetype i = i + 1 while i <= #reversed do local next_item = reversed[i] if next_item.placetype == pt then insert(group.items, next_item) i = i + 1 else break end end insert(groups, group) end end -- Format each group and assemble. local parts = {} for _, group in ipairs(groups) do if group.type == "raw" then insert(parts, group.text) else local formatted = {} for _, item in ipairs(group.items) do insert(formatted, format_holonym(place_desc, item.holonym_index, false)) end if #formatted == 1 then insert(parts, formatted[1]) elseif #formatted == 2 then insert(parts, formatted[1] .. zh_strings.and_conj .. formatted[2]) else local last = table.remove(formatted) insert(parts, concat(formatted, zh_strings.enum_sep) .. zh_strings.and_conj .. last) end end end return concat(parts), has_de_joiner, trailing_texts end -- Get the Chinese display name for a single (possibly qualified) placetype. -- Strips qualifiers, looks up zh_name via m_zh_data, and prepends translated qualifier text. -- `first_holonym_placetype` enables context-sensitive names (e.g. capital city → 首都/省會/首府). local function get_zh_placetype_name(placetype, first_holonym_placetype) local resolved_pt = m_placetypes.resolve_placetype_aliases(placetype) local zh_name, _, zh_by_holonym = m_zh_data.get_zh_placetype_props(resolved_pt, m_placetypes) if zh_name then local resolved = m_zh_data.resolve_zh_name(zh_name, zh_by_holonym, first_holonym_placetype) return m_zh_data.format_zh_name(resolved) end -- Fallback to English name; add tracking for missing zh_data entries. track("missing-zh-placetype/" .. tostring(placetype)) return placetype end -- Format a single entry placetype (possibly with qualifiers) for ZH display. -- Strips qualifiers from the placetype, translates each qualifier via zh_qualifiers, -- and prepends them to the Chinese placetype name. local function format_one_zh_placetype(pt, first_holonym_placetype) -- Try progressive qualifier splits; use the first that has a zh_name entry. local splits = m_placetypes.split_qualifiers_from_placetype(pt) local qualifier_prefix = "" for _, sp in ipairs(splits) do local prev_qualifier, this_qualifier, bare_pt = unpack(sp, 1, 3) -- Accumulate qualifier strings. local q_str = "" if prev_qualifier then q_str = (m_zh_data.zh_qualifiers[prev_qualifier] or prev_qualifier) .. (m_zh_data.zh_qualifiers[this_qualifier] or (this_qualifier or "")) elseif this_qualifier then q_str = m_zh_data.zh_qualifiers[this_qualifier] or this_qualifier end local zh_n = get_zh_placetype_name(bare_pt, first_holonym_placetype) if zh_n ~= bare_pt then -- Found a known ZH entry; use it. return q_str .. zh_n end qualifier_prefix = q_str end -- Fallback: just translate the full (possibly unrecognized) placetype. return qualifier_prefix .. get_zh_placetype_name(pt, first_holonym_placetype) end -- Build the ZH entry placetype description from the `placetypes` list. -- Handles "and"/"or" splitting (e.g. "城市/and/市鎮" → "城市和市鎮"), -- multiple placetypes without and/or (joined with "、...和"), -- and context-sensitive names via first_holonym_placetype. local function get_zh_entry_placetype_desc(placetypes, first_holonym_placetype) local is_ignorable = m_placetypes.placetype_is_ignorable -- Find last and/or position. local and_or_pos for i, pt in ipairs(placetypes) do if pt == "and" or pt == "or" then and_or_pos = i end end if and_or_pos then -- Split into group before and group after the conjunction. local group1, group2 = {}, {} for i = 1, and_or_pos - 1 do if not is_ignorable(placetypes[i]) then insert(group1, format_one_zh_placetype(placetypes[i], first_holonym_placetype)) end end for i = and_or_pos + 1, #placetypes do if not is_ignorable(placetypes[i]) then insert(group2, format_one_zh_placetype(placetypes[i], first_holonym_placetype)) end end local conj_str = placetypes[and_or_pos] == "or" and "或" or zh_strings.and_conj local all = {} for _, v in ipairs(group1) do insert(all, v) end for _, v in ipairs(group2) do insert(all, v) end if #all == 0 then return "" end if #all == 1 then return all[1] end local last = table.remove(all) return concat(all, zh_strings.enum_sep) .. conj_str .. last else -- No explicit and/or: collect all non-ignorable placetypes. local formatted = {} for _, pt in ipairs(placetypes) do if not is_ignorable(pt) then insert(formatted, format_one_zh_placetype(pt, first_holonym_placetype)) end end if #formatted == 0 then return "" end if #formatted == 1 then return formatted[1] end local last = table.remove(formatted) return concat(formatted, zh_strings.enum_sep) .. zh_strings.and_conj .. last end end -- Return the ZH description of a placetype for use in new-style <<placetype>> segments. local function get_placetype_description(placetype) return format_one_zh_placetype(placetype, nil) end -- Return the ZH description of a qualifier for use in new-style <<qualifier>> segments. local function get_qualifier_description(qualifier) -- Trim to just the qualifier word (split_qualifiers_from_placetype requires a trailing non-qualifier word). local splits = m_placetypes.split_qualifiers_from_placetype(qualifier .. " foo") local sp = splits[#splits] local prev_qualifier, this_qualifier = unpack(sp, 1, 2) if this_qualifier then local q = m_zh_data.zh_qualifiers[this_qualifier] or this_qualifier if prev_qualifier then return (m_zh_data.zh_qualifiers[prev_qualifier] or prev_qualifier) .. q end return q end return qualifier end -- Format a set of form-of directive terms (unchanged from enwikt, only conjunction uses zh_strings). local function format_form_of_directive(overall_place_spec, directive_terms, ucfirst, from_tcl) local formatted_terms = {} local placetypes if not overall_place_spec.descs[2] then placetypes = overall_place_spec.descs[1].placetypes else placetypes = {} for _, desc in ipairs(overall_place_spec.descs) do m_table.extend(placetypes, desc.placetypes) end end for _, termobj in ipairs(directive_terms.terms) do local placename_article if not termobj.alt and termobj.term and not termobj.term:find("%[%[") then placename_article = get_placename_article(termobj.term, placetypes) end local linked_term = m_links.full_link(termobj, "term", nil, "show qualifiers") linked_term = "<span class='form-of-definition-link'>" .. linked_term .. "</span>" if termobj.eq then linked_term = linked_term .. " (= " .. m_links.full_link {term = termobj.eq, lang = zhlang} .. ")" end if placename_article then linked_term = placename_article .. " " .. linked_term end insert(formatted_terms, linked_term) end local spec = directive_terms.spec local text = spec.text if type(text) == "function" then text = text(overall_place_spec) end if text == "+" then text = directive_terms.directive end if ucfirst then text = m_strutils.ucfirst(text) end if not from_tcl then local tracking_prefix = "form-of/" .. directive_terms.directive track(tracking_prefix) local langcode = overall_place_spec.lang:getCode() local full_langcode = overall_place_spec.lang:getFullCode() track(tracking_prefix .. "/" .. langcode) if full_langcode ~= langcode then track(tracking_prefix .. "/" .. full_langcode) end if full_langcode ~= "zh" then track(tracking_prefix .. "/non-chinese") end end return (require(form_of_module).format_form_of { text = text, lemmas = m_table.serialCommaJoin(formatted_terms, {conj = directive_terms.conj or spec.conjunction or zh_strings.and_conj}), lemma_classes = false, }) end -- Format extra-info terms (capital, largest city, modern name, etc.) for ZH. -- * Labels come from m_zh_data.zh_extra_info_labels (or zh_capital_label_by_holonym_type for capital). -- * Separator: "。" + label in sentence style; ";" + label otherwise. -- * Multiple terms joined with 、/和 instead of serial comma. -- * auto_plural is skipped (Chinese doesn't pluralize). local function format_extra_info(overall_place_spec, extra_info_terms, sentence_style) local formatted_terms = {} for _, termobj in ipairs(extra_info_terms.terms) do insert(formatted_terms, m_links.full_link(termobj, nil, nil, "show qualifiers")) end local spec = extra_info_terms.spec -- Resolve ZH label: look up by spec.arg, then spec.text as fallback. local zh_label = m_zh_data.zh_extra_info_labels[spec.arg] if not zh_label then -- Try spec.text as the lookup key (e.g. "capital and largest city"). local spec_text = spec.text if type(spec_text) == "function" then spec_text = spec_text(overall_place_spec) end zh_label = m_zh_data.zh_extra_info_labels[spec_text] or spec_text or spec.arg end -- Context-sensitive "capital" label based on first holonym type (首都/省會/首府/縣治…). if spec.arg == "capital" then if overall_place_spec.descs and overall_place_spec.descs[1] and overall_place_spec.descs[1].holonyms then for _, h in ipairs(overall_place_spec.descs[1].holonyms) do if h.placetype then local ctx_label = m_zh_data.zh_capital_label_by_holonym_type[h.placetype] if ctx_label then zh_label = ctx_label end break end end end end local text = zh_label if spec.with_colon then text = text .. ":" -- full-width colon end if sentence_style and spec.match_sentence_style then text = "。" .. text else text = zh_strings.semicolon .. text end -- Join terms with ZH enumeration. local conj = extra_info_terms.conj or zh_strings.and_conj local joined if #formatted_terms == 0 then joined = "" elseif #formatted_terms == 1 then joined = formatted_terms[1] elseif #formatted_terms == 2 then joined = formatted_terms[1] .. conj .. formatted_terms[2] else local last = table.remove(formatted_terms) joined = concat(formatted_terms, zh_strings.enum_sep) .. conj .. last end return text .. joined end -- Format an old-style place description for ZH display. -- Chinese pattern: [位於|""][holonym_string][的][zh_placetype_name] -- * Holonyms are reversed (big→small), grouped, and joined with 、/和. -- * "位於" is prepended for "in"-type placetypes; omitted for "of"-type (e.g. capitals). -- * args.a (article override) is used as a prefix to the placetype name. local function format_old_style_place_desc_for_display(args, place_desc, desc_index, with_article, ucfirst_flag) local placetypes = place_desc.placetypes -- Determine the entry placetype (last non-ignorable, non-conjunction item) for preposition lookup. local entry_placetype_for_prep = nil for i = #placetypes, 1, -1 do local pt = placetypes[i] if not m_placetypes.placetype_is_ignorable(pt) and pt ~= "and" and pt ~= "or" then entry_placetype_for_prep = pt break end end -- Determine first structured holonym placetype for context-sensitive zh_name lookups. local first_holonym_placetype = nil if place_desc.holonyms then for _, h in ipairs(place_desc.holonyms) do if h.placetype then first_holonym_placetype = h.placetype break end end end -- Build the Chinese placetype description (possibly with qualifiers and multiple types). local zh_pt_name = get_zh_entry_placetype_desc(placetypes, first_holonym_placetype) -- Handle args.a (article override): used as a direct prefix in Chinese, e.g. a=盎格魯撒克遜 → "盎格魯撒克遜王國". if with_article and desc_index == 1 and args.a then zh_pt_name = args.a .. zh_pt_name end -- Build holonym string (reversed, grouped, ZH-joined). -- has_de_joiner is true when a bare |的| token was in the holonym list (like enwikt's |of|). local holonym_str, has_de_joiner, trailing_texts = "", false, {} if place_desc.holonyms and #place_desc.holonyms > 0 then holonym_str, has_de_joiner, trailing_texts = format_holonyms_zh(place_desc) end -- Determine preposition style ("in" → 位於…的; "of" → …的 with no 位於). -- An explicit |的| joiner in the template overrides to possessive (no 位於). local use_wei_yu = true if has_de_joiner then use_wei_yu = false elseif entry_placetype_for_prep then local prep = m_placetypes.get_placetype_entry_preposition(entry_placetype_for_prep) if prep == "of" then use_wei_yu = false end end -- Assemble final string. local result if holonym_str ~= "" then if use_wei_yu then result = zh_strings.in_preposition .. holonym_str .. zh_strings.de_particle .. zh_pt_name else result = holonym_str .. zh_strings.de_particle .. zh_pt_name end else result = zh_pt_name end if #trailing_texts > 0 then result = result .. zh_strings.trans_sep .. concat(trailing_texts, zh_strings.trans_sep) end return result end --[==[ Get the full gloss (Chinese description) of a new-style place description. New-style place descriptions are specified with a single string containing raw text interspersed with placetypes and holonyms surrounded by `<<...>>`. Exported for use by [[Module:demonyms]]. ]==] function export.format_new_style_place_desc_for_display(args, place_desc, with_article) local parts = {} local function ins(txt) insert(parts, txt) end -- args.a not used in Chinese (no article system). local max_holonym = 0 for _, order in ipairs(place_desc.order) do local segment_type, segment = order.type, order.value if segment_type == "raw" then ins(segment) elseif segment_type == "placetype" then ins(get_placetype_description(segment)) elseif segment_type == "qualifier" then ins(get_qualifier_description(segment)) elseif segment_type == "holonym" then ins(format_holonym(place_desc, segment, false)) if segment > max_holonym then max_holonym = segment end else internal_error("Unrecognized segment type %s", segment_type) end end if place_desc.holonyms and max_holonym < #place_desc.holonyms then local holonym_no_prefix = true for holonym_index = max_holonym + 1, #place_desc.holonyms do -- Append remaining holonyms with a space prefix (no "in"/"of" for new-style). ins(" " .. format_holonym(place_desc, holonym_index, false)) holonym_no_prefix = false end end return concat(parts) end -- Return a string with the gloss (the description of the place itself, as opposed to translations). -- `sentence_style` controls whether extra-info uses "。" (sentence) or ";" (semicolon) separation. local function get_display_form(data) local overall_place_spec, ucfirst, sentence_style, drop_extra_info, extra_info_overridden_set, from_tcl = data.overall_place_spec, data.ucfirst, data.sentence_style, data.drop_extra_info, data.extra_info_overridden_set, data.from_tcl local args = overall_place_spec.args local parts = {} local function ins(txt) table.insert(parts, txt) end if overall_place_spec.directives and overall_place_spec.directives[1] then for i, directive_terms in ipairs(overall_place_spec.directives) do ins(directive_terms.pretext) if directive_terms.pretext ~= "" then ucfirst = false end if not args.def or args.def == "-" then ins(format_form_of_directive(overall_place_spec, directive_terms, ucfirst, from_tcl)) ucfirst = false if i == #overall_place_spec.directives and directive_terms.posttext then ins(directive_terms.posttext) end end end end if args.def == "-" then return concat(parts) end if args.def then if args.def:find("<<") then local def_desc = export.parse_new_style_place_desc(args.def, args[1]) ins(export.format_new_style_place_desc_for_display({}, def_desc, false)) else ins(args.def) end else local include_article = true for n, desc in ipairs(overall_place_spec.descs) do if desc.order then ins(export.format_new_style_place_desc_for_display(args, desc, n == 1)) else ins(format_old_style_place_desc_for_display(args, desc, n, include_article, ucfirst)) end if desc.joiner then ins(desc.joiner) end include_article = desc.include_following_article ucfirst = false end end local addl = args.addl if addl then if addl:find("^[;:]") then ins(addl) elseif addl:find("^_") then ins(" " .. addl:sub(2)) else ins("," .. addl) end end for _, extra_info_terms in ipairs(overall_place_spec.extra_info) do if not drop_extra_info or extra_info_terms.spec.display_even_when_dropped or extra_info_overridden_set and extra_info_overridden_set[extra_info_terms.spec.arg] then ins(format_extra_info(overall_place_spec, extra_info_terms, sentence_style)) end end return concat(parts) end -- Return the definition line. -- ZH: sentence_style is always true; ucfirst is always false (no case in Chinese); -- parentheses around glosses are full-width (). local function get_def(data) local overall_place_spec, from_tcl, drop_extra_info, extra_info_overridden_set, translation_follows = data.overall_place_spec, data.from_tcl, data.drop_extra_info, data.extra_info_overridden_set, data.translation_follows local args = overall_place_spec.args local sentence_style = true -- always sentence style in Chinese local ucfirst = false -- Chinese has no case if #args.t > 0 then local gloss = get_display_form { overall_place_spec = overall_place_spec, ucfirst = false, sentence_style = false, drop_extra_info = drop_extra_info, extra_info_overridden_set = extra_info_overridden_set, from_tcl = from_tcl, } if from_tcl and not args.tcl_nolc then gloss = m_strutils.lcfirst(gloss) end if translation_follows then return (gloss == "" and "" or gloss .. ":") .. get_translations(args.t, args.tid) else return get_translations(args.t, args.tid) .. (gloss == "" and "" or zh_strings.paren_open .. gloss .. zh_strings.paren_close) end else return get_display_form { overall_place_spec = overall_place_spec, ucfirst = ucfirst, sentence_style = sentence_style, drop_extra_info = drop_extra_info, extra_info_overridden_set = extra_info_overridden_set, from_tcl = from_tcl, } end end ---------- Functions for the category wikicode -- The code in this section finds the categories to which a given place belongs. See enwikt [[Module:place]] -- for detailed documentation of the algorithm. --[=[ Find the appropriate category specs for a given place description and placetype. See enwikt [[Module:place]] for detailed documentation. ]=] local function find_placetype_cat_specs(data) local entry_placetype, place_desc, first_holonym_index, overriding_holonym, from_demonym = data.entry_placetype, data.place_desc, data.first_holonym_index, data.overriding_holonym, data.from_demonym local form_of_directive = data.form_of_directive local function fetch_cat_specs(holonym_to_match, index, no_fallback) local holonym_placetype = holonym_to_match.placetype if not holonym_placetype then return nil end local holonym_placename = holonym_to_match.unlinked_placename if not holonym_placename then internal_error("Missing unlinked_placename in holonym (index %s): %s", index, holonym_to_match) end local cat_specs, equiv_entry_placetype_and_qualifier = m_placetypes.get_equiv_placetype_prop(entry_placetype, function(equiv_entry_pt) return m_placetypes.get_equiv_placetype_prop(holonym_placetype, function(equiv_holonym_pt) return m_placetypes.political_division_cat_handler { entry_placetype = equiv_entry_pt, holonym_placetype = equiv_holonym_pt, holonym_placename = holonym_placename, holonym_index = index, place_desc = place_desc, from_demonym = from_demonym, } end) end, {no_fallback = no_fallback, form_of_directive = form_of_directive} ) if cat_specs and cat_specs[1] then return cat_specs, equiv_entry_placetype_and_qualifier.placetype end local cat_handler, equiv_entry_placetype_and_qualifier = m_placetypes.get_equiv_placetype_prop(entry_placetype, function(equiv_entry_pt) local entry_placetype_data = m_placetypes.placetype_data[equiv_entry_pt] if entry_placetype_data and entry_placetype_data.cat_handler then return entry_placetype_data.cat_handler end end, {no_fallback = no_fallback, form_of_directive = form_of_directive} ) if cat_handler then local cat_specs = m_placetypes.get_equiv_placetype_prop(holonym_placetype, function(equiv_holonym_pt) return cat_handler { entry_placetype = equiv_entry_placetype_and_qualifier.placetype, holonym_placetype = equiv_holonym_pt, holonym_placename = holonym_placename, holonym_index = index, place_desc = place_desc, from_demonym = from_demonym, } end) if cat_specs and cat_specs[1] then return cat_specs, equiv_entry_placetype_and_qualifier.placetype end end if not no_fallback then local cat_specs, equiv_entry_placetype_and_qualifier = m_placetypes.get_equiv_placetype_prop(entry_placetype, function(equiv_entry_pt) local entry_placetype_data = m_placetypes.placetype_data[equiv_entry_pt] if entry_placetype_data then return m_placetypes.get_equiv_placetype_prop(holonym_placetype, function(equiv_holonym_pt) return entry_placetype_data[equiv_holonym_pt .. "/*"] end) end end, {form_of_directive = form_of_directive} ) if cat_specs and cat_specs[1] then return cat_specs, equiv_entry_placetype_and_qualifier.placetype end end return nil end if overriding_holonym then local cat_specs, fetched_entry_placetype = fetch_cat_specs(overriding_holonym, nil) if cat_specs and cat_specs[1] then return { entry_placetype = fetched_entry_placetype, cat_specs = cat_specs, triggering_holonym = overriding_holonym, } end else -- First pass: no fallback (exact entry placetype match only). for i, holonym in ipairs(place_desc.holonyms) do if first_holonym_index and i < first_holonym_index then -- continue else local cat_specs, fetched_entry_placetype = fetch_cat_specs(holonym, i, "no_fallback") if cat_specs and cat_specs[1] then return { entry_placetype = fetched_entry_placetype, cat_specs = cat_specs, triggering_holonym = holonym, triggering_holonym_index = i, } end end end -- Second pass: with fallback. for i, holonym in ipairs(place_desc.holonyms) do if first_holonym_index and i < first_holonym_index then -- continue else local cat_specs, fetched_entry_placetype = fetch_cat_specs(holonym, i) if cat_specs and cat_specs[1] then return { entry_placetype = fetched_entry_placetype, cat_specs = cat_specs, triggering_holonym = holonym, triggering_holonym_index = i, } end end end end return nil end -- Turn a list of category specs (see comment at section top) into the corresponding categories -- (minus the language code prefix). local function cat_specs_to_categories(place_desc, cat_data) local all_cats = {} local cat_specs, entry_placetype, triggering_holonym, triggering_holonym_index = cat_data.cat_specs, cat_data.entry_placetype, cat_data.triggering_holonym, cat_data.triggering_holonym_index if triggering_holonym then for _, cat_spec in ipairs(cat_specs) do local cat if cat_spec == true then -- ZH: "法國的城市" / "非洲國家" (continent/region omit 的); +++ replaced below local de = triggering_holonym and ( triggering_holonym.placetype == "continent" or triggering_holonym.placetype == "region" or triggering_holonym.placetype == "continental region" or triggering_holonym.placetype == "supercontinent" or triggering_holonym.placetype == "planet" ) and "" or zh_strings.de_particle cat = "+++" .. de .. get_zh_placetype_name(entry_placetype) else cat = cat_spec end if cat:find("%+%+%+") then local group, key, spec, container_trail = m_placetypes.find_matching_holonym_location { holonym_placetype = triggering_holonym.placetype, holonym_placename = triggering_holonym.unlinked_placename, holonym_index = triggering_holonym_index, place_desc = place_desc, } if group then cat = cat:gsub("%+%+%+", m_strutils.replacement_escape(m_placetypes.get_prefixed_key(key, spec))) insert(all_cats, cat) else mw.log(("Unable to insert category for cat spec '%s' because holonym '%s/%s' did not match a " .. "known location"):format(cat, triggering_holonym.placetype, triggering_holonym.unlinked_placename)) track("cant-match-holonym-for-category-spec") end else insert(all_cats, cat) end end else for _, cat_spec in ipairs(cat_specs) do local cat if cat_spec == true then -- ZH: bare placetype category (e.g. "城市") cat = get_zh_placetype_name(entry_placetype) else cat = cat_spec if cat:find("%+%+%+") then internal_error("Category %s contains +++ but there is no holonym to substitute", cat) end end insert(all_cats, cat) end end return all_cats end -- Return the categories (without initial lang code) that should be added to the entry, given the place description -- and a particular entry placetype. local function get_placetype_cats(place_desc, entry_placetype, from_demonym, form_of_directive) local cats = {} local first_holonym_index = 1 while first_holonym_index <= #place_desc.holonyms do local cat_data = find_placetype_cat_specs { entry_placetype = entry_placetype, place_desc = place_desc, first_holonym_index = first_holonym_index, from_demonym = from_demonym, form_of_directive = form_of_directive, } if not cat_data then break end local triggering_holonym = cat_data.triggering_holonym if not triggering_holonym then internal_error("find_placetype_cat_specs should have returned a triggering holonym: %s", cat_data) end extend(cats, cat_specs_to_categories(place_desc, cat_data)) first_holonym_index = cat_data.triggering_holonym_index local equiv_triggering_placetypes = m_placetypes.get_placetype_equivs(triggering_holonym.placetype, {no_fallback = true}) for _, equiv in ipairs(equiv_triggering_placetypes) do local other_holonyms_of_same_type = place_desc.holonyms_by_placetype[equiv.placetype] if other_holonyms_of_same_type then for _, other_placename_of_same_type in ipairs(other_holonyms_of_same_type) do if other_placename_of_same_type ~= triggering_holonym.unlinked_placename then local overriding_holonym = { placetype = triggering_holonym.placetype, unlinked_placename = other_placename_of_same_type, } local other_cat_data = find_placetype_cat_specs { entry_placetype = entry_placetype, place_desc = place_desc, overriding_holonym = overriding_holonym, from_demonym = from_demonym, form_of_directive = form_of_directive, } if other_cat_data then extend(cats, cat_specs_to_categories(place_desc, other_cat_data)) end end end end end first_holonym_index = first_holonym_index + 1 while first_holonym_index <= #place_desc.holonyms do if place_desc.holonyms[first_holonym_index].continue_cat_loop then break end first_holonym_index = first_holonym_index + 1 end end if cats[1] then return cats end local entry_pt_default, equiv_entry_placetype_and_qualifier = m_placetypes.get_equiv_placetype_prop(entry_placetype, function(pt) return m_placetypes.placetype_data[pt] and m_placetypes.placetype_data[pt].default end, {form_of_directive = form_of_directive}) if entry_pt_default then return cat_specs_to_categories(place_desc, { cat_specs = entry_pt_default, entry_placetype = equiv_entry_placetype_and_qualifier.placetype, }) end return {} end --[==[ Iterate through each type of place and return a list of the categories that need to be added to the entry. See enwikt [[Module:place]] for detailed documentation. ]==] function export.get_cats(args, overall_place_spec, from_demonym) local cats = {} local place_descriptions = overall_place_spec.descs handle_category_implications(place_descriptions, m_placetypes.cat_implications) m_placetypes.augment_holonyms_with_container(place_descriptions) if overall_place_spec.directives then for _, directive_terms in ipairs(overall_place_spec.directives) do local spec_cats = directive_terms.spec.cat if spec_cats then if type(spec_cats) == "string" then spec_cats = {spec_cats} end for _, spec_cat in ipairs(spec_cats) do insert(cats, spec_cat) end end if directive_terms.spec.type_prefix then for _, place_desc in ipairs(place_descriptions) do for _, placetype in ipairs(place_desc.placetypes) do if not m_placetypes.placetype_is_ignorable(placetype) then extend(cats, get_placetype_cats(place_desc, placetype, from_demonym, directive_terms.spec.type_prefix)) end end end end end end if not from_demonym then local bare_categories = m_placetypes.get_bare_categories(args, overall_place_spec) extend(cats, bare_categories) end for _, place_desc in ipairs(place_descriptions) do if not from_demonym then for _, placetype in ipairs(place_desc.placetypes) do if not m_placetypes.placetype_is_ignorable(placetype) then extend(cats, get_placetype_cats(place_desc, placetype)) end end end extend(cats, get_placetype_cats(place_desc, "*", from_demonym)) end if args.cat then for _, cat in ipairs(args.cat) do local split_cats = split_on_comma(cat) extend(cats, split_cats) end end return cats end -- Return the category wikicode for a list of categories. -- ZH: uses `lang:getFullName() .. " " .. cat` format for regular categories (same as cln: format in enwikt), -- matching zhwikt's convention of "漢語 XX" category names instead of "zh:XX". local function format_cats(lang, cats, sort_key) local full_cats = {} local langname = lang:getFullName() for _, cat in ipairs(cats) do local cln_cat = cat:match("^cln:(.*)$") if cln_cat then insert(full_cats, langname .. " " .. cln_cat) else -- ZH: use langname prefix instead of langcode:cat insert(full_cats, langname .. " " .. cat) end end return require(utilities_module).format_categories(full_cats, lang, sort_key, nil, force_cat or m_placetypes.get_force_cat()) end ----------- Main entry point --[==[ Implementation of {{tl|place}}. Meant to be callable from another module. See enwikt [[Module:place]] for full documentation of the `data` argument fields. ]==] function export.format(data) local template_args = data.template_args local list_param = {list = true} local boolean_param = {type = "boolean"} local params = { [1] = {required = true, type = "language", default = "und"}, [2] = {required = true, list = true}, ["t"] = list_param, ["tid"] = {list = true, allow_holes = true}, ["cat"] = list_param, ["nocat"] = boolean_param, ["nocap"] = boolean_param, ["sort"] = true, ["pagename"] = true, -- for testing or documentation purposes ["a"] = true, ["addl"] = true, ["def"] = true, -- params that are only used when transcluding using {{tcl}}/{{transclude}}, to transmit information to {{tcl}}. ["tcl"] = true, ["tcl_t"] = list_param, ["tcl_tid"] = list_param, ["tcl_nolb"] = true, ["tcl_nolc"] = boolean_param, ["tcl_noextratext"] = boolean_param, } -- add "extra info" parameters for _, extra_arg_spec in ipairs(export.extra_info_args) do params[extra_arg_spec.arg] = list_param end if template_args.def == "" then error("Cannot currently pass def= as an empty parameter; use def=- if you want to suppress the definition display") end local args = require("Module:parameters").process(template_args, params) if args.a then track("a") end data.args = args local overall_place_spec = parse_overall_place_spec(data) data.overall_place_spec = overall_place_spec return get_def(data) .. ( args.nocat and "" or format_cats(args[1], export.get_cats(args, overall_place_spec), args.sort)) end --[==[ Actual entry point of {{tl|place}}. ]==] function export.show(frame) return export.format { template_args = frame:getParent().args, } end return export trg8n2x5hp77k47m8nrc16k7mioo6kv 9759529 9759526 2026-05-14T21:46:23Z TongcyDai 53191 9759529 Scribunto text/plain local export = {} local force_cat = false -- set to true for testing local m_placetypes = require("Module:place/placetypes") local m_links = require("Module:links") local memoize = require("Module:memoize") local m_strutils = require("Module:string utilities") local m_table = require("Module:table") -- Chinese localization data (zh_name, zh_suffix, qualifiers, extra-info labels, etc.) local m_zh_data = require("Module:place/data") local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" local form_of_module = "Module:form of" local languages_module = "Module:languages" local parse_interface_module = "Module:parse interface" local parse_utilities_module = "Module:parse utilities" local parameter_utilities_module = "Module:parameter utilities" local utilities_module = "Module:utilities" local zhlang = require(languages_module).getByCode("zh") local rmatch = m_strutils.match local rfind = m_strutils.find local ulen = m_strutils.len local split = m_strutils.split local dump = mw.dumpObject local insert = table.insert local concat = table.concat local pluralize = require(en_utilities_module).pluralize local extend = m_table.extend local unpack = unpack or table.unpack -- Lua 5.2 compatibility local internal_error = m_placetypes.internal_error local process_error = m_placetypes.process_error local placetype_data = m_placetypes.placetype_data -- Shorthand for the ZH localization string table. local zh_strings = m_zh_data.zh_strings --[==[ ZH fork of [[Module:place]] (enwikt). Architecture and data structures are identical to the English version; only the display-formatting functions are changed to produce Chinese-language definitions. Key structural differences from enwikt: * Old-style holonyms are reversed (big→small containment order) and joined with 、/和 rather than "in X, Y". * Sentence pattern: 位於[holonyms]的[placetype] (or [holonyms]的[placetype] for "of"-type placetypes). * No articles (a/an/the) in generated text. * Pref/suf holonym affixes append the Chinese zh_suffix instead of English "placetype of X". * Translations are joined with "," (full-width comma); parenthetical glosses use (). * Extra-info labels (capital, largest city, etc.) come from Module:place/data zh_extra_info_labels. * sentence_style is always true for ZH (extra info uses "。" separator, not ";"). ]==] --[==[ var: List specifying the allowed form-of directives, used for former names, official names, abbreviations, etc. of places. The key is the form-of directive and the value is an object with the following properties: * `text`: The actual text displayed before the terms. If the value is `+`, the key is used as the text. If the value is a function, it is passed a single argument, the overall place spec (see comment at top of file) and should return the text to be displayed. * `type_prefix`: The prefix used to generate the placetype for looking up the appropriate category or categories in the placetype data structure. Can be omitted if there are no categories associated with the directive. * `conjunction`: The conjunction used to join multiple terms, defaulting to `and`. * `cat`: Additional category or categories to add the term to, whenever this particular directive is used. * `default_foreign`: If specified, the default language of terms given along with this directive is the language in {{para|1}}; otherwise it is English. ]==] export.all_form_of_directives = { ["former name of"] = {text = "+", type_prefix = "FORMER_NAME_OF"}, ["fmr of"] = {alias_of = "former name of"}, ["ancient name of"] = {text = "+", type_prefix = "FORMER_NAME_OF"}, ["official name of"] = {text = "+", type_prefix = "OFFICIAL_NAME_OF"}, ["former official name of"] = {text = "+", type_prefix = "FORMER_OFFICIAL_NAME_OF"}, ["long form of"] = {text = "+", type_prefix = "LONG_FORM_OF"}, ["former long form of"] = {text = "+", type_prefix = "FORMER_LONG_FORM_OF"}, ["nickname for"] = {text = "+", type_prefix = "NICKNAME_FOR"}, ["official nickname for"] = {text = "+", type_prefix = "OFFICIAL_NICKNAME_FOR"}, ["former nickname for"] = {text = "+", type_prefix = "FORMER_NICKNAME_FOR"}, ["derogatory name for"] = {text = "[[Appendix:Glossary#derogatory|derogatory]] name for", type_prefix = "DEROGATORY_NAME_FOR"}, ["synonym of"] = {text = "+"}, ["syn of"] = {alias_of = "synonym of"}, ["abbreviation of"] = {text = "[[Appendix:Glossary#abbreviation|abbreviation]] of", type_prefix = "ABBREVIATION_OF", cat = "cln:abbreviations", default_foreign = true}, ["abbr of"] = {alias_of = "abbreviation of"}, ["abbrev of"] = {alias_of = "abbreviation of"}, ["initialism of"] = {text = "[[Appendix:Glossary#initialism|initialism]] of", type_prefix = "ABBREVIATION_OF", cat = "cln:initialisms", default_foreign = true}, ["init of"] = {alias_of = "initialism of"}, ["acronym of"] = {text = "[[Appendix:Glossary#acronym|acronym]] of", type_prefix = "ABBREVIATION_OF", cat = "cln:acronyms", default_foreign = true}, ["syllabic abbreviation of"] = {text = "[[Appendix:Glossary#syllabic abbreviation|syllabic abbreviation]] of", type_prefix = "ABBREVIATION_OF", cat = "cln:syllabic abbreviations", default_foreign = true}, ["sylabbr of"] = {alias_of = "syllabic abbreviation of"}, ["sylabbrev of"] = {alias_of = "syllabic abbreviation of"}, ["ellipsis of"] = {text = "[[Appendix:Glossary#ellipsis|ellipsis]] of", type_prefix = "ELLIPSIS_OF", cat = "cln:ellipses", default_foreign = true}, ["ellip of"] = {alias_of = "ellipsis of"}, ["clipping of"] = {text = "[[Appendix:Glossary#clipping|clipping]] of", type_prefix = "CLIPPING_OF", cat = "cln:clippings", default_foreign = true}, ["clip of"] = {alias_of = "clipping of"}, ["alternative form of"] = {text = "+", default_foreign = true}, ["alt form"] = {alias_of = "alternative form of"}, ["alternative spelling of"] = {text = "+", default_foreign = true}, ["alt spell"] = {alias_of = "alternative spelling of"}, ["alt sp"] = {alias_of = "alternative spelling of"}, ["dated form of"] = {text = "[[Appendix:Glossary#dated|dated]] form of", type_prefix = "DATED_FORM_OF", cat = "cln:dated forms", default_foreign = true}, ["dated form"] = {alias_of = "dated form of"}, ["dated spelling of"] = {text = "[[Appendix:Glossary#dated|dated]] spelling of", type_prefix = "DATED_FORM_OF", cat = "cln:dated forms", default_foreign = true}, ["dated spell"] = {alias_of = "dated spelling of"}, ["dated sp"] = {alias_of = "dated spelling of"}, ["archaic form of"] = {text = "[[Appendix:Glossary#archaic|archaic]] form of", type_prefix = "ARCHAIC_FORM_OF", cat = "cln:archaic forms", default_foreign = true}, ["arch form"] = {alias_of = "archaic form of"}, ["archaic spelling of"] = {text = "[[Appendix:Glossary#archaic|archaic]] spelling of", type_prefix = "ARCHAIC_FORM_OF", cat = "cln:archaic forms", default_foreign = true}, ["arch spell"] = {alias_of = "archaic spelling of"}, ["arch sp"] = {alias_of = "archaic spelling of"}, ["obsolete form of"] = {text = "[[Appendix:Glossary#obsolete|obsolete]] form of", type_prefix = "OBSOLETE_FORM_OF", cat = "cln:obsolete forms", default_foreign = true}, ["obs form"] = {alias_of = "obsolete form of"}, ["obsolete spelling of"] = {text = "[[Appendix:Glossary#obsolete|obsolete]] spelling of", type_prefix = "OBSOLETE_FORM_OF", cat = "cln:obsolete forms", default_foreign = true}, ["obs spell"] = {alias_of = "obsolete spelling of"}, ["obs sp"] = {alias_of = "obsolete spelling of"}, } local function get_seat_text(overall_place_spec) local placetype = overall_place_spec.descs[1].placetypes[1] if placetype == "county" or placetype == "counties" then return "county seat" elseif placetype == "parish" or placetype == "parishes" then return "parish seat" elseif placetype == "borough" or placetype == "boroughs" then return "borough seat" else return "seat" end end --[==[ var: List specifying the allowed arguments containing extra information that is sometimes added to a definition, such as the capital, largest city, modern name, official name, etc., along with associated properties; displayed in the order given. See enwikt [[Module:place]] for full documentation of each field. ]==] export.extra_info_args = { {arg = "modern", text = "+", conjunction = "or", display_even_when_dropped = true}, {arg = "now", text = "now,", conjunction = "or", display_even_when_dropped = true}, {arg = "full", text = "in full,", conjunction = "or", display_even_when_dropped = true}, {arg = "short", text = "short form", conjunction = "or"}, {arg = "abbr", text = "abbreviation", conjunction = "or"}, {arg = "former", text = "formerly,"}, {arg = "official", text = "official name", match_sentence_style = true, auto_plural = true, with_colon = true}, {arg = "capital", text = "+", match_sentence_style = true, auto_plural = true, with_colon = true}, {arg = "largest city", text = "+", match_sentence_style = true, auto_plural = true, with_colon = true}, {arg = "caplc", text = "capital and largest city", match_sentence_style = true, auto_plural = false, with_colon = true}, {arg = "seat", text = get_seat_text, match_sentence_style = true, auto_plural = true, with_colon = true}, {arg = "shire town", text = "+", match_sentence_style = true, auto_plural = true, with_colon = true}, {arg = "headquarters", text = "+", match_sentence_style = true, auto_plural = false, with_colon = true}, {arg = "center", text = "administrative center", match_sentence_style = true, auto_plural = false, with_colon = true}, {arg = "centre", text = "administrative centre", match_sentence_style = true, auto_plural = false, with_colon = true}, } export.extra_info_arg_map = {} for _, spec in ipairs(export.extra_info_args) do export.extra_info_arg_map[spec.arg] = spec end ----------- Wikicode utility functions -- Return a wikilink link {{l|language|text}} local function link(text, langcode, id) if not langcode then return text end return m_links.language_link( -- l10n, avoid simp/trad or applying special fonts { term = text, alt = text, lang = require(languages_module).getByCode(langcode, true, "allow etym"), id = id } ) end ---------- Basic utility functions -- Add the page to a tracking "category". To see the pages in the "category", -- go to [[Wiktionary:Tracking/place/PAGE]] and click on "What links here". local function track(page) require(debug_track_module)("place/" .. page) return true end local function ucfirst_all(text) if text:find(" ") then local parts = split(text, " ", true) for i, part in ipairs(parts) do parts[i] = m_strutils.ucfirst(part) end return concat(parts, " ") else return m_strutils.ucfirst(text) end end local function lc(text) return mw.getContentLanguage():lc(text) end ---------- Argument parsing functions and utilities -- Split an argument on comma, but not comma followed by whitespace. local function split_on_comma(val) if val:find(",") then return require(parse_interface_module).split_on_comma(val) else return {val} end end -- Split an argument on slash, but not slash occurring inside of HTML tags like </span> or <br />. local function split_on_slash(arg) if arg:find("<") then local m_parse_utilities = require(parse_utilities_module) -- We implement this by parsing balanced segment runs involving <...>, and splitting on slash in the remainder. -- The result is a list of lists, so we have to rejoin the inner lists by concatenating. local segments = m_parse_utilities.parse_balanced_segment_run(arg, "<", ">") local slash_separated_groups = m_parse_utilities.split_alternating_runs(segments, "/") for i, group in ipairs(slash_separated_groups) do slash_separated_groups[i] = concat(group) end return slash_separated_groups else return split(arg, "/", true) end end -- Implement "implications", i.e. where the presence of a given holonym causes additional holonym(s) to be added. -- Implications apply only to categorization. local function handle_category_implications(place_descriptions, implication_data) for i, desc in ipairs(place_descriptions) do if desc.holonyms then local new_holonyms = {} for _, holonym in ipairs(desc.holonyms) do insert(new_holonyms, holonym) local imp_data = m_placetypes.get_equiv_placetype_prop(holonym.placetype, function(pt) local implication = implication_data[pt] and implication_data[pt][holonym.unlinked_placename] if implication then return implication end end) if imp_data then for _, holonym_to_add in ipairs(imp_data) do local split_holonym = split_on_slash(holonym_to_add) if #split_holonym ~= 2 then internal_error("Invalid holonym in implications: %s", holonym_to_add) end local holonym_placetype, holonym_placename = unpack(split_holonym, 1, 2) local new_holonym = { placetype = holonym_placetype, unlinked_placename = holonym_placename } insert(new_holonyms, new_holonym) m_placetypes.key_holonym_into_place_desc(desc, new_holonym) end end end desc.holonyms = new_holonyms end end end -- Split a holonym (e.g. "continent/Europe" or "country/en:Italy" or "in southern" or "r:suf/O'Higgins" or -- "c/Austria,Germany,Czech Republic") into its components. Return a list of holonym objects (see top of file). Note -- that if there isn't a slash in the holonym (e.g. "in southern"), the `placetype` field of the holonym will be nil. -- Placetype aliases (e.g. "r" for "region") and placename aliases (e.g. "US" or "USA" for "United States") will be -- expanded. local function split_holonym(raw) local no_display, combined_holonym = raw:match("^(!)(.*)$") no_display = not not no_display combined_holonym = combined_holonym or raw local suppress_comma, combined_holonym_without_comma = combined_holonym:match("^(%*)(.*)$") suppress_comma = not not suppress_comma combined_holonym = combined_holonym_without_comma or combined_holonym local holonym_parts = split_on_slash(combined_holonym) if #holonym_parts == 1 then -- `unlinked_placename` should not be used. return {{display_placename = combined_holonym, no_display = no_display, suppress_comma = suppress_comma}} end -- Rejoin further slashes in case of slash in holonym placename, e.g. Admaston/Bromley. local placetype = holonym_parts[1] local placename = concat(holonym_parts, "/", 2) -- Check for modifiers after the holonym placetype. local split_holonym_placetype = split(placetype, ":", true) placetype = split_holonym_placetype[1] local affix_type local saw_also local saw_the for i = 2, #split_holonym_placetype do local modifier = split_holonym_placetype[i] if modifier == "also" then if saw_also then error(("Modifier ':also' occurs twice in holonym '%s'"):format(combined_holonym)) end saw_also = true elseif modifier == "the" then if saw_the then error(("Modifier ':the' occurs twice in holonym '%s'"):format(combined_holonym)) end saw_the = true elseif modifier == "pref" or modifier == "Pref" or modifier == "suf" or modifier == "Suf" or modifier == "noaff" then if affix_type then error(("Affix-type modifier ':%s' occurs twice in holonym '%s'"):format(modifier, combined_holonym)) end affix_type = modifier else error(("Unrecognized holonym placetype modifier '%s', should be one of " .. "'pref', 'Pref', 'suf', 'Suf', 'noaff', 'also' or 'the'"):format(modifier)) end end placetype = m_placetypes.resolve_placetype_aliases(placetype) local holonyms = split_on_comma(placename) local pluralize_affix = #holonyms > 1 local affix_holonym_index = (affix_type == "pref" or affix_type == "Pref") and 1 or affix_type == "noaff" and 0 or #holonyms for i, placename in ipairs(holonyms) do -- Check for langcode before the holonym placename, but don't get tripped up by Wikipedia links, which begin -- "[[w:...]]" or "[[wikipedia:]]". local langcode, placename_without_langcode = rmatch(placename, "^([^%[%]]-):(.*)$") if langcode then placename = placename_without_langcode end placename = m_placetypes.resolve_placename_display_aliases(placetype, placename) holonyms[i] = { placetype = placetype, display_placename = placename, unlinked_placename = m_placetypes.remove_links_and_html(placename), langcode = langcode, affix_type = i == affix_holonym_index and affix_type or nil, pluralize_affix = i == affix_holonym_index and pluralize_affix, suppress_affix = i ~= affix_holonym_index, no_display = no_display, suppress_comma = suppress_comma, continue_cat_loop = saw_also, force_the = i == 1 and saw_the, } end return holonyms end local get_param_mods = memoize(function() local m_param_utils = require(parameter_utilities_module) return m_param_utils.construct_param_mods { {group = {"link", "q", "l", "ref"}}, {param = "eq"}, {param = "conj", set = {["and"] = true, ["or"] = true, ["and/or"] = true}, overall = true}, } end) local function parse_term_with_inline_modifiers(term, paramname, default_lang) local function generate_obj(raw_term, parse_err) local obj = require(parameter_utilities_module).generate_obj_maybe_parsing_lang_prefix { term = raw_term, parse_err = parse_err, parse_lang_prefix = true, } obj.lang = obj.lang or default_lang return obj end return require(parse_interface_module).parse_inline_modifiers(term, { paramname = paramname, param_mods = get_param_mods(), generate_obj = generate_obj, splitchar = ",", outer_container = {}, }) end local function parse_form_of_directive(arg, lang, form_of_overridden_args) local form_of_directive, raw_terms = arg:match("^@([a-z -]+):(.*)$") if not form_of_directive then error("Misformatted @-directive: " .. dump(arg)) end if not export.all_form_of_directives[form_of_directive] then local known_directives = {} for k, _ in pairs(export.all_form_of_directives) do insert(known_directives, '"' .. k .. '"') end table.sort(known_directives) error(("Unrecognized form-of directive %s in @-directive %s; recognized directives are %s"):format( dump(form_of_directive), dump(arg), concat(known_directives, ", "))) end local spec = export.all_form_of_directives[form_of_directive] local canonical_directive = form_of_directive if spec.alias_of then canonical_directive = spec.alias_of spec = export.all_form_of_directives[canonical_directive] if not spec then internal_error("Form-of directive alias %s points to %s, which is not a directive", "@" .. form_of_directive, canonical_directive) elseif spec.alias_of then internal_error("Form-of directive alias %s points to %s, which is also an alias", "@" .. form_of_directive, canonical_directive) end end local default_foreign = spec.default_foreign local directive_param = "@" .. form_of_directive if form_of_overridden_args and form_of_overridden_args[canonical_directive] then raw_terms = form_of_overridden_args[canonical_directive].new_value local new_directive = form_of_overridden_args[canonical_directive].new_directive local new_spec = export.all_form_of_directives[new_directive] if not new_spec then error(("Internal error: [[Module:transclude]] passed in unrecognized replacement directive '@%s'"): format(new_directive)) end if new_spec.alias_of then error(("Internal error: [[Module:transclude]] passed in replacement directive alias '@%s', " .. "should be canonical"):format(new_directive)) end if new_directive ~= canonical_directive then directive_param = directive_param .. (" (replaced with @%s)"):format(new_directive) canonical_directive = new_directive spec = new_spec end default_foreign = true end local terms = parse_term_with_inline_modifiers(raw_terms, directive_param, default_foreign and lang or zhlang) return { directive = canonical_directive, terms = terms.terms, conj = terms.conj, spec = spec, } end -- Parse an argument containing extra information that is sometimes added to a definition, such as the capital, largest -- city, modern name, official name, etc. `args` is the value from the parsed argument structure and can be either nil, -- a string or a list. `spec` is the extra info spec corresponding to the type of extra info. Each value in `args` can -- be a comma-separated list of terms with inline modifiers attached. local function parse_extra_info_arg(args, spec, default_lang) if not args then return nil end if type(args) ~= "table" then args = {args} end if not args[1] then return nil end local terms = nil local conj for i, arg in ipairs(args) do local this_terms = parse_term_with_inline_modifiers(arg, spec.arg .. (i == 1 and "" or i), default_lang) local thisconj = this_terms.conj if not conj then conj = thisconj elseif thisconj and conj ~= thisconj then error(("Two different conjunctions '%s' and '%s' specified for |%s=; you only need to specify the " .. "conjunction once"):format(conj, thisconj)) end if not terms then terms = this_terms.terms else m_table.extend(terms, this_terms.terms) end end return { spec = spec, terms = terms, conj = conj, } end --[==[ Parse a "new-style" place description, with placetypes and holonyms surrounded by `<<...>>` amid otherwise raw text. Return value is a place description object as documented at the top of the file. Exported for use by [[Module:demonyms]]. ]==] function export.parse_new_style_place_desc(text, lang, form_of_directives, form_of_overridden_args) local placetypes = {} local segments = split(text, "<<(.-)>>") local retval = {holonyms = {}, order = {}} local form_of_directives_already_present = form_of_directives and not not form_of_directives[1] for i, segment in ipairs(segments) do if i % 2 == 1 then insert(retval.order, {type = "raw", value = segment}) elseif segment:find("@") then if not form_of_directives then error(("Form-of directive '%s' not allowed in this context"):format(segment)) elseif form_of_directives_already_present then error(("Saw form-of directive '%s' in new-style place desc followed by direct (separate-parameter) form-of directives; not allowed"):format( segment)) elseif placetypes[1] or retval.holonyms[1] then error(("Form-of directive '%s' must come first, before placetypes and holonyms"):format(segment)) else local form_of_directive = parse_form_of_directive(segment, lang, form_of_overridden_args) if not retval.order[1] or retval.order[1].type ~= "raw" or retval.order[2] then internal_error("`retval.order` should have a single raw element: %s", retval.order) end form_of_directive.pretext = retval.order[1].value retval.order[1] = nil insert(form_of_directives, form_of_directive) end elseif segment:find("/") then local holonyms = split_holonym(segment) for j, holonym in ipairs(holonyms) do if j > 1 then if not holonym.no_display then if j == #holonyms then insert(retval.order, {type = "raw", value = zh_strings.and_conj}) else insert(retval.order, {type = "raw", value = zh_strings.enum_sep}) end end holonym.needs_article = true end insert(retval.holonyms, holonym) if not holonym.no_display then insert(retval.order, {type = "holonym", value = #retval.holonyms}) end m_placetypes.key_holonym_into_place_desc(retval, holonym) end else local treat_as, display = segment:match("^(..-):(.+)$") if treat_as then segment = treat_as else display = segment end -- see if the placetype segment is just qualifiers local only_qualifiers = true local split_segments = split(segment, " ", true) for _, split_segment in ipairs(split_segments) do if m_placetypes.placetype_qualifiers[split_segment] == nil then only_qualifiers = false break end end insert(placetypes, {placetype = segment, only_qualifiers = only_qualifiers}) if only_qualifiers then insert(retval.order, {type = "qualifier", value = display}) else insert(retval.order, {type = "placetype", value = display}) end end end if not form_of_directives_already_present and form_of_directives and form_of_directives[1] then form_of_directives[#form_of_directives].posttext = "" end local final_placetypes = {} for i, placetype in ipairs(placetypes) do if i > 1 and placetypes[i - 1].only_qualifiers then final_placetypes[#final_placetypes] = final_placetypes[#final_placetypes] .. " " .. placetypes[i].placetype else insert(final_placetypes, placetypes[i].placetype) end end retval.placetypes = final_placetypes return retval end --[==[ Parse one or more "new-style" place descriptions, with placetypes and holonyms surrounded by `<<...>>` amid otherwise raw text. Multiple descriptions are separated by two semicolons in a row. Return value is a list of place description objects as documented at the top of the file. ]==] local function parse_conjoined_new_style_place_desc(text, lang, form_of_directives, form_of_overridden_args) local separate_specs = split(text, ";(;[^ ]*)") local descs = {} for i = 1, #separate_specs do if i % 2 == 1 then insert(descs, export.parse_new_style_place_desc(separate_specs[i], lang, form_of_directives, form_of_overridden_args)) form_of_directives = nil else descs[#descs].separator = separate_specs[i] end end return descs end --[=[ Process numeric and "extra info" arguments into an overall place spec, as described at the top of the file. ]=] local function parse_overall_place_spec(data) local args, from_tcl, extra_info_overridden_set, form_of_overridden_args = data.args, data.from_tcl, data.extra_info_overridden_set, data.form_of_overridden_args local descs = {} local this_desc -- Index of separate (semicolon-separated) place descriptions within `descs`. local desc_index = 1 -- Index of separate holonyms within a place description. 0 means we've seen no holonyms and have yet to process -- the placetypes that precede the holonyms. 1 means we've seen no holonyms but have already processed the -- placetypes. local holonym_index = 0 local in_place_desc = false local form_of_directives = {} -- ZH: use Chinese semicolon and space characters for multi-description joiners. local function set_desc_joiner(desc, separator) if separator == ";" then this_desc.joiner = zh_strings.semicolon -- ";" instead of "; " this_desc.include_following_article = true elseif separator == ";;" then this_desc.joiner = " " else local joiner = separator:sub(2) if rfind(joiner, "^%a") then this_desc.joiner = " " .. joiner .. " " elseif joiner == "," then -- ZH: ASCII comma → full-width ,(無空格) this_desc.joiner = zh_strings.trans_sep else this_desc.joiner = joiner .. " " end end end for _, arg in ipairs(args[2]) do if arg:find("^@") then if not (desc_index == 1 and holonym_index == 0) then error("@-directives cannot follow place descriptions") end local form_of_directive = parse_form_of_directive(arg, args[1], form_of_overridden_args) if form_of_directives[1] then form_of_directive.pretext = ", " else form_of_directive.pretext = "" end insert(form_of_directives, form_of_directive) elseif arg == ";" or arg:find("^;[^ ]") then if not this_desc then error("Saw semicolon joiner without preceding place description") end set_desc_joiner(this_desc, arg) desc_index = desc_index + 1 holonym_index = 0 in_place_desc = false else if arg:find("<<") then if in_place_desc then error("New-style place description must come first or following a separator (semicolon or similar), not directly following another description") end in_place_desc = true local this_descs = parse_conjoined_new_style_place_desc(arg, args[1], form_of_directives, form_of_overridden_args) for j, desc in ipairs(this_descs) do this_desc = desc if holonym_index > 0 then desc_index = desc_index + 1 holonym_index = 0 end if j < #this_descs then set_desc_joiner(this_desc, this_desc.separator) end descs[desc_index] = this_desc last_was_new_style = true holonym_index = #this_desc.holonyms + 1 end else -- Old-style arguments can directly follow a new-style argument; they become additional holonyms -- tacked onto the end of the holonym list, and are displayed old-style except that there is no -- prefix before the first one following the new-style argument. in_place_desc = true if holonym_index == 0 then local entry_placetypes = split_on_slash(arg) this_desc = {placetypes = entry_placetypes, holonyms = {}} descs[desc_index] = this_desc holonym_index = holonym_index + 1 else local holonyms = split_holonym(arg) for j, holonym in ipairs(holonyms) do if j > 1 then -- All but the first in a multi-holonym need an article. Not for the first one because e.g. -- {{place|en|city|s/Arizona|c/United States}} should not display as "a city in Arizona, the -- United States". The overall first holonym in the place description gets an article if -- needed regardless of our setting here. holonym.needs_article = true -- Insert "and" before the last holonym. if j == #holonyms then this_desc.holonyms[holonym_index] = { -- Use the no_display value from the first holonym; it should be the same for all -- holonyms. `unlinked_placename` should not be used. display_placename = "and", no_display = holonyms[1].no_display } holonym_index = holonym_index + 1 end end this_desc.holonyms[holonym_index] = holonym m_placetypes.key_holonym_into_place_desc(this_desc, this_desc.holonyms[holonym_index]) holonym_index = holonym_index + 1 end end end end end if form_of_directives[1] and not form_of_directives[#form_of_directives].posttext then form_of_directives[#form_of_directives].posttext = (args.def and args.def ~= "-" or not args.def and descs[1]) and ": " or "" end -- Tracking code (unchanged from enwikt). for _, desc in ipairs(descs) do for _, entry_placetype in ipairs(desc.placetypes) do local splits = m_placetypes.split_qualifiers_from_placetype(entry_placetype, "no canon qualifiers") for _, split in ipairs(splits) do local prev_qualifier, this_qualifier, bare_placetype = unpack(split, 1, 3) track("entry-placetype/" .. bare_placetype) if this_qualifier then track("entry-qualifier/" .. this_qualifier) end end end for _, holonym in ipairs(desc.holonyms) do if holonym.placetype then track("holonym-placetype/" .. holonym.placetype) end end end local extra_info = {} for _, extra_info_spec in ipairs(export.extra_info_args) do local extra_info_terms = parse_extra_info_arg(args[extra_info_spec.arg], extra_info_spec, from_tcl and extra_info_overridden_set and extra_info_overridden_set[extra_info_spec.arg] and args[1] or zhlang) if extra_info_terms then insert(extra_info, extra_info_terms) end end return { lang = args[1], args = args, directives = form_of_directives, descs = descs, extra_info = extra_info, } end -------- Definition-generating functions -- Return a string with the wikilinks to the ZH translations of the word. -- ZH: joins multiple translations with "," (full-width comma) instead of ", ". local function get_translations(transl, ids) local ret = {} for i, t in ipairs(transl) do local arg_transls = split_on_comma(t) local arg_ids = ids[i] if arg_ids then arg_ids = split_on_comma(arg_ids) if #arg_transls ~= #arg_ids then error(("Saw %s translation%s in t%s=%s but %s ID%s in tid%s=%s"):format( #arg_transls, #arg_transls > 1 and "s" or "", i == 1 and "" or i, t, #arg_ids, #arg_ids > 1 and "'s" or "", i == 1 and "" or i, ids[i])) end end for j, arg_transl in ipairs(arg_transls) do insert(ret, link(arg_transl, "zh", arg_ids and arg_ids[j] or nil)) end end return concat(ret, zh_strings.trans_sep) -- "," instead of ", " end -- Chinese has no articles; these stubs keep the call-sites intact. local function get_placename_article(decorated_placename, placetypes, placename, suppress_holonym_use_the_check) return nil end local function get_holonym_article(decorated_placename, place_desc, holonym_index) return nil end -- Convert a holonym into display format. For ZH: -- * No article prepended (Chinese has no articles). -- * Both prefix and suffix affix types append the zh_suffix (e.g. "州", "省") directly to the linked name, -- instead of the English "placetype of placename" / "placename placetype" construction. -- * Display handlers are applied unchanged (they may add text based on the holonym's surrounding context). local function format_holonym(place_desc, holonym_index, needs_article) local holonym = place_desc.holonyms[holonym_index] if holonym.no_display then return "" end -- needs_article and force_the are not used in Chinese. local output = holonym.display_placename local placetype = holonym.placetype local affix_type_pt_data, affix_type, affix_is_prefix, affix, prefix, suffix, no_affix_strings local pt_equiv_for_affix_type, already_seen_affix, need_affix local affix_pt_data, pt_equiv_for_affix -- Implement display handlers (unchanged from enwikt). local display_handler = m_placetypes.get_equiv_placetype_prop(placetype, function(pt) return placetype_data[pt] and placetype_data[pt].display_handler end) if display_handler then output = display_handler(placetype, output) end if not holonym.suppress_affix then -- Affix detection logic is unchanged from enwikt; only the rendering differs below. affix_type_pt_data, pt_equiv_for_affix_type = m_placetypes.get_equiv_placetype_prop(placetype, function(pt) local cdpt = placetype_data[pt] return cdpt and cdpt.affix_type and cdpt or nil end ) affix_pt_data, pt_equiv_for_affix = m_placetypes.get_equiv_placetype_prop(placetype, function(pt) local cdpt = placetype_data[pt] return cdpt and (cdpt.affix_type or cdpt.affix or cdpt.prefix or cdpt.suffix) and cdpt or nil end ) if affix_type_pt_data then affix_type = affix_type_pt_data.affix_type need_affix = true end if affix_pt_data then prefix = affix_pt_data.prefix or affix_pt_data.affix suffix = affix_pt_data.suffix or affix_pt_data.affix need_affix = true end no_affix_strings = affix_pt_data and affix_pt_data.no_affix_strings or affix_type_pt_data and affix_type_pt_data.no_affix_strings if holonym.affix_type and placetype then affix_type = holonym.affix_type prefix = prefix or placetype suffix = suffix or placetype need_affix = true end if need_affix then affix_is_prefix = affix_type == "pref" or affix_type == "Pref" if affix_is_prefix then affix = prefix else affix = suffix end if not affix then if not pt_equiv_for_affix_type then internal_error("Something wrong, `pt_equiv_for_affix_type` not set processing holonym: %s", holonym) end affix = pt_equiv_for_affix_type.placetype if not affix then internal_error("Something wrong, no affix could be located in `pt_equiv_for_affix_type` for " .. "holonym %s: %s", holonym, pt_equiv_for_affix_type) end end no_affix_strings = no_affix_strings or lc(affix) -- ZH: skip pluralize_affix (Chinese doesn't pluralize) end end -- ZH: resolve zh_suffix for the affix placetype before linking. local zh_sfx_to_append = nil if need_affix then local _, zh_sfx = m_zh_data.get_zh_placetype_props(affix, m_placetypes) if zh_sfx then local zh_sfx_str = m_zh_data.format_zh_name(zh_sfx) -- Check if zh_suffix already present in the unlinked output. local unlinked = m_placetypes.remove_links_and_html(output) if not unlinked:find(zh_sfx_str, 1, true) then zh_sfx_to_append = zh_sfx_str end end end output = link(output, holonym.langcode or placetype and "zh" or nil) -- ZH: for both pref and suf, append zh_suffix directly after the linked name. -- (EN prefix construction "placetype of placename" is not used in Chinese.) if zh_sfx_to_append then output = output .. zh_sfx_to_append end -- No article for Chinese. return output end -- Format holonyms for a ZH old-style place description. -- Collects all holonyms, filters "and"/"or" connectors, reverses for big→small containment order, -- groups consecutive same-type holonyms (peer locations), then joins with ZH enumeration (、/和). -- Returns the concatenated holonym string, e.g. "美國賓夕法尼亞州", "波蘭、白俄羅斯和烏克蘭". local function format_holonyms_zh(place_desc) local holonyms = place_desc.holonyms if not holonyms or #holonyms == 0 then return "" end -- Collect non-"and"/"or"/"的" holonym items with their original indices. -- A raw "的" holonym (from |的| in the template, like enwikt's |of|) signals possessive preposition; -- filter it from display since format_old_style_place_desc_for_display already appends de_particle. local items = {} local has_de_joiner = false for i, h in ipairs(holonyms) do if not h.no_display then local dname = h.display_placename if dname ~= "and" and dname ~= "or" then if not h.placetype and dname == zh_strings.de_particle then has_de_joiner = true else insert(items, {holonym_index = i, placetype = h.placetype}) end end end end -- Separate trailing raw text (items after the last structural holonym) from non-trailing. -- Trailing raw text should NOT be reversed; it is appended after the full description with ,. local last_structural_idx = 0 for i = #items, 1, -1 do if items[i].placetype then last_structural_idx = i break end end local non_trailing = {} local trailing_texts = {} for i = 1, #items do if i <= last_structural_idx then insert(non_trailing, items[i]) else insert(trailing_texts, holonyms[items[i].holonym_index].display_placename) end end -- Reverse non-trailing for big→small order. local reversed = {} for i = #non_trailing, 1, -1 do insert(reversed, non_trailing[i]) end -- Group consecutive items with the same placetype (peers like multiple countries). -- Raw-text holonyms (no placetype) break any current structural group. local groups = {} local i = 1 while i <= #reversed do local item = reversed[i] if not item.placetype then -- Raw text (e.g. "南部", "東北部") forms its own singleton group. local h = holonyms[item.holonym_index] insert(groups, {type = "raw", text = h.display_placename}) i = i + 1 else -- Structural holonym: collect consecutive ones of the same placetype. local group = {type = "structural", items = {item}} local pt = item.placetype i = i + 1 while i <= #reversed do local next_item = reversed[i] if next_item.placetype == pt then insert(group.items, next_item) i = i + 1 else break end end insert(groups, group) end end -- Format each group and assemble. local parts = {} for _, group in ipairs(groups) do if group.type == "raw" then insert(parts, group.text) else local formatted = {} for _, item in ipairs(group.items) do insert(formatted, format_holonym(place_desc, item.holonym_index, false)) end if #formatted == 1 then insert(parts, formatted[1]) elseif #formatted == 2 then insert(parts, formatted[1] .. zh_strings.and_conj .. formatted[2]) else local last = table.remove(formatted) insert(parts, concat(formatted, zh_strings.enum_sep) .. zh_strings.and_conj .. last) end end end return concat(parts), has_de_joiner, trailing_texts end -- Get the Chinese display name for a single (possibly qualified) placetype. -- Strips qualifiers, looks up zh_name via m_zh_data, and prepends translated qualifier text. -- `first_holonym_placetype` enables context-sensitive names (e.g. capital city → 首都/省會/首府). local function get_zh_placetype_name(placetype, first_holonym_placetype) local resolved_pt = m_placetypes.resolve_placetype_aliases(placetype) local zh_name, _, zh_by_holonym = m_zh_data.get_zh_placetype_props(resolved_pt, m_placetypes) if zh_name then local resolved = m_zh_data.resolve_zh_name(zh_name, zh_by_holonym, first_holonym_placetype) return m_zh_data.format_zh_name(resolved) end -- Fallback to English name; add tracking for missing zh_data entries. track("missing-zh-placetype/" .. tostring(placetype)) return placetype end -- Format a single entry placetype (possibly with qualifiers) for ZH display. -- Strips qualifiers from the placetype, translates each qualifier via zh_qualifiers, -- and prepends them to the Chinese placetype name. local function format_one_zh_placetype(pt, first_holonym_placetype) -- Try progressive qualifier splits; use the first that has a zh_name entry. local splits = m_placetypes.split_qualifiers_from_placetype(pt) local qualifier_prefix = "" for _, sp in ipairs(splits) do local prev_qualifier, this_qualifier, bare_pt = unpack(sp, 1, 3) -- Accumulate qualifier strings. local q_str = "" if prev_qualifier then q_str = (m_zh_data.zh_qualifiers[prev_qualifier] or prev_qualifier) .. (m_zh_data.zh_qualifiers[this_qualifier] or (this_qualifier or "")) elseif this_qualifier then q_str = m_zh_data.zh_qualifiers[this_qualifier] or this_qualifier end local zh_n = get_zh_placetype_name(bare_pt, first_holonym_placetype) if zh_n ~= bare_pt then -- Found a known ZH entry; use it. return q_str .. zh_n end qualifier_prefix = q_str end -- Fallback: just translate the full (possibly unrecognized) placetype. return qualifier_prefix .. get_zh_placetype_name(pt, first_holonym_placetype) end -- Build the ZH entry placetype description from the `placetypes` list. -- Handles "and"/"or" splitting (e.g. "城市/and/市鎮" → "城市和市鎮"), -- multiple placetypes without and/or (joined with "、...和"), -- and context-sensitive names via first_holonym_placetype. local function get_zh_entry_placetype_desc(placetypes, first_holonym_placetype) local is_ignorable = m_placetypes.placetype_is_ignorable -- Find last and/or position. local and_or_pos for i, pt in ipairs(placetypes) do if pt == "and" or pt == "or" then and_or_pos = i end end if and_or_pos then -- Split into group before and group after the conjunction. local group1, group2 = {}, {} for i = 1, and_or_pos - 1 do if not is_ignorable(placetypes[i]) then insert(group1, format_one_zh_placetype(placetypes[i], first_holonym_placetype)) end end for i = and_or_pos + 1, #placetypes do if not is_ignorable(placetypes[i]) then insert(group2, format_one_zh_placetype(placetypes[i], first_holonym_placetype)) end end local conj_str = placetypes[and_or_pos] == "or" and "或" or zh_strings.and_conj local all = {} for _, v in ipairs(group1) do insert(all, v) end for _, v in ipairs(group2) do insert(all, v) end if #all == 0 then return "" end if #all == 1 then return all[1] end local last = table.remove(all) return concat(all, zh_strings.enum_sep) .. conj_str .. last else -- No explicit and/or: collect all non-ignorable placetypes. local formatted = {} for _, pt in ipairs(placetypes) do if not is_ignorable(pt) then insert(formatted, format_one_zh_placetype(pt, first_holonym_placetype)) end end if #formatted == 0 then return "" end if #formatted == 1 then return formatted[1] end local last = table.remove(formatted) return concat(formatted, zh_strings.enum_sep) .. zh_strings.and_conj .. last end end -- Return the ZH description of a placetype for use in new-style <<placetype>> segments. local function get_placetype_description(placetype) return format_one_zh_placetype(placetype, nil) end -- Return the ZH description of a qualifier for use in new-style <<qualifier>> segments. local function get_qualifier_description(qualifier) -- Trim to just the qualifier word (split_qualifiers_from_placetype requires a trailing non-qualifier word). local splits = m_placetypes.split_qualifiers_from_placetype(qualifier .. " foo") local sp = splits[#splits] local prev_qualifier, this_qualifier = unpack(sp, 1, 2) if this_qualifier then local q = m_zh_data.zh_qualifiers[this_qualifier] or this_qualifier if prev_qualifier then return (m_zh_data.zh_qualifiers[prev_qualifier] or prev_qualifier) .. q end return q end return qualifier end -- Format a set of form-of directive terms (unchanged from enwikt, only conjunction uses zh_strings). local function format_form_of_directive(overall_place_spec, directive_terms, ucfirst, from_tcl) local formatted_terms = {} local placetypes if not overall_place_spec.descs[2] then placetypes = overall_place_spec.descs[1].placetypes else placetypes = {} for _, desc in ipairs(overall_place_spec.descs) do m_table.extend(placetypes, desc.placetypes) end end for _, termobj in ipairs(directive_terms.terms) do local placename_article if not termobj.alt and termobj.term and not termobj.term:find("%[%[") then placename_article = get_placename_article(termobj.term, placetypes) end local linked_term = m_links.full_link(termobj, "term", nil, "show qualifiers") linked_term = "<span class='form-of-definition-link'>" .. linked_term .. "</span>" if termobj.eq then linked_term = linked_term .. " (= " .. m_links.full_link {term = termobj.eq, lang = zhlang} .. ")" end if placename_article then linked_term = placename_article .. " " .. linked_term end insert(formatted_terms, linked_term) end local spec = directive_terms.spec local text = spec.text if type(text) == "function" then text = text(overall_place_spec) end if text == "+" then text = directive_terms.directive end if ucfirst then text = m_strutils.ucfirst(text) end if not from_tcl then local tracking_prefix = "form-of/" .. directive_terms.directive track(tracking_prefix) local langcode = overall_place_spec.lang:getCode() local full_langcode = overall_place_spec.lang:getFullCode() track(tracking_prefix .. "/" .. langcode) if full_langcode ~= langcode then track(tracking_prefix .. "/" .. full_langcode) end if full_langcode ~= "zh" then track(tracking_prefix .. "/non-chinese") end end return (require(form_of_module).format_form_of { text = text, lemmas = m_table.serialCommaJoin(formatted_terms, {conj = directive_terms.conj or spec.conjunction or zh_strings.and_conj}), lemma_classes = false, }) end -- Format extra-info terms (capital, largest city, modern name, etc.) for ZH. -- * Labels come from m_zh_data.zh_extra_info_labels (or zh_capital_label_by_holonym_type for capital). -- * Separator: "。" + label in sentence style; ";" + label otherwise. -- * Multiple terms joined with 、/和 instead of serial comma. -- * auto_plural is skipped (Chinese doesn't pluralize). local function format_extra_info(overall_place_spec, extra_info_terms, sentence_style) local formatted_terms = {} for _, termobj in ipairs(extra_info_terms.terms) do insert(formatted_terms, m_links.full_link(termobj, nil, nil, "show qualifiers")) end local spec = extra_info_terms.spec -- Resolve ZH label: look up by spec.arg, then spec.text as fallback. local zh_label = m_zh_data.zh_extra_info_labels[spec.arg] if not zh_label then -- Try spec.text as the lookup key (e.g. "capital and largest city"). local spec_text = spec.text if type(spec_text) == "function" then spec_text = spec_text(overall_place_spec) end zh_label = m_zh_data.zh_extra_info_labels[spec_text] or spec_text or spec.arg end -- Context-sensitive "capital" label based on first holonym type (首都/省會/首府/縣治…). if spec.arg == "capital" then if overall_place_spec.descs and overall_place_spec.descs[1] and overall_place_spec.descs[1].holonyms then for _, h in ipairs(overall_place_spec.descs[1].holonyms) do if h.placetype then local ctx_label = m_zh_data.zh_capital_label_by_holonym_type[h.placetype] if ctx_label then zh_label = ctx_label end break end end end end local text = zh_label if spec.with_colon then text = text .. ":" -- full-width colon end if sentence_style and spec.match_sentence_style then text = "。" .. text else text = zh_strings.semicolon .. text end -- Join terms with ZH enumeration. local conj = extra_info_terms.conj or zh_strings.and_conj local joined if #formatted_terms == 0 then joined = "" elseif #formatted_terms == 1 then joined = formatted_terms[1] elseif #formatted_terms == 2 then joined = formatted_terms[1] .. conj .. formatted_terms[2] else local last = table.remove(formatted_terms) joined = concat(formatted_terms, zh_strings.enum_sep) .. conj .. last end return text .. joined end -- Format an old-style place description for ZH display. -- Chinese pattern: [位於|""][holonym_string][的][zh_placetype_name] -- * Holonyms are reversed (big→small), grouped, and joined with 、/和. -- * "位於" is prepended for "in"-type placetypes; omitted for "of"-type (e.g. capitals). -- * args.a (article override) is used as a prefix to the placetype name. local function format_old_style_place_desc_for_display(args, place_desc, desc_index, with_article, ucfirst_flag) local placetypes = place_desc.placetypes -- Determine the entry placetype (last non-ignorable, non-conjunction item) for preposition lookup. local entry_placetype_for_prep = nil for i = #placetypes, 1, -1 do local pt = placetypes[i] if not m_placetypes.placetype_is_ignorable(pt) and pt ~= "and" and pt ~= "or" then entry_placetype_for_prep = pt break end end -- Determine first structured holonym placetype for context-sensitive zh_name lookups. local first_holonym_placetype = nil if place_desc.holonyms then for _, h in ipairs(place_desc.holonyms) do if h.placetype then first_holonym_placetype = h.placetype break end end end -- Build the Chinese placetype description (possibly with qualifiers and multiple types). local zh_pt_name = get_zh_entry_placetype_desc(placetypes, first_holonym_placetype) -- Handle args.a (article override): used as a direct prefix in Chinese, e.g. a=盎格魯撒克遜 → "盎格魯撒克遜王國". if with_article and desc_index == 1 and args.a then zh_pt_name = args.a .. zh_pt_name end -- Build holonym string (reversed, grouped, ZH-joined). -- has_de_joiner is true when a bare |的| token was in the holonym list (like enwikt's |of|). local holonym_str, has_de_joiner, trailing_texts = "", false, {} if place_desc.holonyms and #place_desc.holonyms > 0 then holonym_str, has_de_joiner, trailing_texts = format_holonyms_zh(place_desc) end -- Determine preposition style ("in" → 位於…的; "of" → …的 with no 位於). -- An explicit |的| joiner in the template overrides to possessive (no 位於). local use_wei_yu = true if has_de_joiner then use_wei_yu = false elseif entry_placetype_for_prep then local prep = m_placetypes.get_placetype_entry_preposition(entry_placetype_for_prep) if prep == "of" then use_wei_yu = false end end -- Assemble final string. local result if holonym_str ~= "" then if use_wei_yu then result = zh_strings.in_preposition .. holonym_str .. zh_strings.de_particle .. zh_pt_name else result = holonym_str .. zh_strings.de_particle .. zh_pt_name end else result = zh_pt_name end if #trailing_texts > 0 then result = result .. zh_strings.trans_sep .. concat(trailing_texts, zh_strings.trans_sep) end return result end --[==[ Get the full gloss (Chinese description) of a new-style place description. New-style place descriptions are specified with a single string containing raw text interspersed with placetypes and holonyms surrounded by `<<...>>`. Exported for use by [[Module:demonyms]]. ]==] function export.format_new_style_place_desc_for_display(args, place_desc, with_article) local parts = {} local function ins(txt) insert(parts, txt) end -- args.a not used in Chinese (no article system). local max_holonym = 0 for _, order in ipairs(place_desc.order) do local segment_type, segment = order.type, order.value if segment_type == "raw" then ins(segment) elseif segment_type == "placetype" then ins(get_placetype_description(segment)) elseif segment_type == "qualifier" then ins(get_qualifier_description(segment)) elseif segment_type == "holonym" then ins(format_holonym(place_desc, segment, false)) if segment > max_holonym then max_holonym = segment end else internal_error("Unrecognized segment type %s", segment_type) end end if place_desc.holonyms and max_holonym < #place_desc.holonyms then local holonym_no_prefix = true for holonym_index = max_holonym + 1, #place_desc.holonyms do -- Append remaining holonyms with a space prefix (no "in"/"of" for new-style). ins(" " .. format_holonym(place_desc, holonym_index, false)) holonym_no_prefix = false end end return concat(parts) end -- Return a string with the gloss (the description of the place itself, as opposed to translations). -- `sentence_style` controls whether extra-info uses "。" (sentence) or ";" (semicolon) separation. local function get_display_form(data) local overall_place_spec, ucfirst, sentence_style, drop_extra_info, extra_info_overridden_set, from_tcl = data.overall_place_spec, data.ucfirst, data.sentence_style, data.drop_extra_info, data.extra_info_overridden_set, data.from_tcl local args = overall_place_spec.args local parts = {} local function ins(txt) table.insert(parts, txt) end if overall_place_spec.directives and overall_place_spec.directives[1] then for i, directive_terms in ipairs(overall_place_spec.directives) do ins(directive_terms.pretext) if directive_terms.pretext ~= "" then ucfirst = false end if not args.def or args.def == "-" then ins(format_form_of_directive(overall_place_spec, directive_terms, ucfirst, from_tcl)) ucfirst = false if i == #overall_place_spec.directives and directive_terms.posttext then ins(directive_terms.posttext) end end end end if args.def == "-" then return concat(parts) end if args.def then if args.def:find("<<") then local def_desc = export.parse_new_style_place_desc(args.def, args[1]) ins(export.format_new_style_place_desc_for_display({}, def_desc, false)) else ins(args.def) end else local include_article = true for n, desc in ipairs(overall_place_spec.descs) do if desc.order then ins(export.format_new_style_place_desc_for_display(args, desc, n == 1)) else ins(format_old_style_place_desc_for_display(args, desc, n, include_article, ucfirst)) end if desc.joiner then ins(desc.joiner) end include_article = desc.include_following_article ucfirst = false end end local addl = args.addl if addl then if addl:find("^[;:]") then ins(addl) elseif addl:find("^_") then ins(" " .. addl:sub(2)) else ins("," .. addl) end end for _, extra_info_terms in ipairs(overall_place_spec.extra_info) do if not drop_extra_info or extra_info_terms.spec.display_even_when_dropped or extra_info_overridden_set and extra_info_overridden_set[extra_info_terms.spec.arg] then ins(format_extra_info(overall_place_spec, extra_info_terms, sentence_style)) end end return concat(parts) end -- Return the definition line. -- ZH: sentence_style is always true; ucfirst is always false (no case in Chinese); -- parentheses around glosses are full-width (). local function get_def(data) local overall_place_spec, from_tcl, drop_extra_info, extra_info_overridden_set, translation_follows = data.overall_place_spec, data.from_tcl, data.drop_extra_info, data.extra_info_overridden_set, data.translation_follows local args = overall_place_spec.args local sentence_style = true -- always sentence style in Chinese local ucfirst = false -- Chinese has no case if #args.t > 0 then local gloss = get_display_form { overall_place_spec = overall_place_spec, ucfirst = false, sentence_style = false, drop_extra_info = drop_extra_info, extra_info_overridden_set = extra_info_overridden_set, from_tcl = from_tcl, } if from_tcl and not args.tcl_nolc then gloss = m_strutils.lcfirst(gloss) end if translation_follows then return (gloss == "" and "" or gloss .. ":") .. get_translations(args.t, args.tid) else return get_translations(args.t, args.tid) .. (gloss == "" and "" or zh_strings.paren_open .. gloss .. zh_strings.paren_close) end else return get_display_form { overall_place_spec = overall_place_spec, ucfirst = ucfirst, sentence_style = sentence_style, drop_extra_info = drop_extra_info, extra_info_overridden_set = extra_info_overridden_set, from_tcl = from_tcl, } end end ---------- Functions for the category wikicode -- The code in this section finds the categories to which a given place belongs. See enwikt [[Module:place]] -- for detailed documentation of the algorithm. --[=[ Find the appropriate category specs for a given place description and placetype. See enwikt [[Module:place]] for detailed documentation. ]=] local function find_placetype_cat_specs(data) local entry_placetype, place_desc, first_holonym_index, overriding_holonym, from_demonym = data.entry_placetype, data.place_desc, data.first_holonym_index, data.overriding_holonym, data.from_demonym local form_of_directive = data.form_of_directive local function fetch_cat_specs(holonym_to_match, index, no_fallback) local holonym_placetype = holonym_to_match.placetype if not holonym_placetype then return nil end local holonym_placename = holonym_to_match.unlinked_placename if not holonym_placename then internal_error("Missing unlinked_placename in holonym (index %s): %s", index, holonym_to_match) end local cat_specs, equiv_entry_placetype_and_qualifier = m_placetypes.get_equiv_placetype_prop(entry_placetype, function(equiv_entry_pt) return m_placetypes.get_equiv_placetype_prop(holonym_placetype, function(equiv_holonym_pt) return m_placetypes.political_division_cat_handler { entry_placetype = equiv_entry_pt, holonym_placetype = equiv_holonym_pt, holonym_placename = holonym_placename, holonym_index = index, place_desc = place_desc, from_demonym = from_demonym, } end) end, {no_fallback = no_fallback, form_of_directive = form_of_directive} ) if cat_specs and cat_specs[1] then return cat_specs, equiv_entry_placetype_and_qualifier.placetype end local cat_handler, equiv_entry_placetype_and_qualifier = m_placetypes.get_equiv_placetype_prop(entry_placetype, function(equiv_entry_pt) local entry_placetype_data = m_placetypes.placetype_data[equiv_entry_pt] if entry_placetype_data and entry_placetype_data.cat_handler then return entry_placetype_data.cat_handler end end, {no_fallback = no_fallback, form_of_directive = form_of_directive} ) if cat_handler then local cat_specs = m_placetypes.get_equiv_placetype_prop(holonym_placetype, function(equiv_holonym_pt) return cat_handler { entry_placetype = equiv_entry_placetype_and_qualifier.placetype, holonym_placetype = equiv_holonym_pt, holonym_placename = holonym_placename, holonym_index = index, place_desc = place_desc, from_demonym = from_demonym, } end) if cat_specs and cat_specs[1] then return cat_specs, equiv_entry_placetype_and_qualifier.placetype end end if not no_fallback then local cat_specs, equiv_entry_placetype_and_qualifier = m_placetypes.get_equiv_placetype_prop(entry_placetype, function(equiv_entry_pt) local entry_placetype_data = m_placetypes.placetype_data[equiv_entry_pt] if entry_placetype_data then return m_placetypes.get_equiv_placetype_prop(holonym_placetype, function(equiv_holonym_pt) return entry_placetype_data[equiv_holonym_pt .. "/*"] end) end end, {form_of_directive = form_of_directive} ) if cat_specs and cat_specs[1] then return cat_specs, equiv_entry_placetype_and_qualifier.placetype end end return nil end if overriding_holonym then local cat_specs, fetched_entry_placetype = fetch_cat_specs(overriding_holonym, nil) if cat_specs and cat_specs[1] then return { entry_placetype = fetched_entry_placetype, cat_specs = cat_specs, triggering_holonym = overriding_holonym, } end else -- First pass: no fallback (exact entry placetype match only). for i, holonym in ipairs(place_desc.holonyms) do if first_holonym_index and i < first_holonym_index then -- continue else local cat_specs, fetched_entry_placetype = fetch_cat_specs(holonym, i, "no_fallback") if cat_specs and cat_specs[1] then return { entry_placetype = fetched_entry_placetype, cat_specs = cat_specs, triggering_holonym = holonym, triggering_holonym_index = i, } end end end -- Second pass: with fallback. for i, holonym in ipairs(place_desc.holonyms) do if first_holonym_index and i < first_holonym_index then -- continue else local cat_specs, fetched_entry_placetype = fetch_cat_specs(holonym, i) if cat_specs and cat_specs[1] then return { entry_placetype = fetched_entry_placetype, cat_specs = cat_specs, triggering_holonym = holonym, triggering_holonym_index = i, } end end end end return nil end -- Turn a list of category specs (see comment at section top) into the corresponding categories -- (minus the language code prefix). local function cat_specs_to_categories(place_desc, cat_data) local all_cats = {} local cat_specs, entry_placetype, triggering_holonym, triggering_holonym_index = cat_data.cat_specs, cat_data.entry_placetype, cat_data.triggering_holonym, cat_data.triggering_holonym_index if triggering_holonym then for _, cat_spec in ipairs(cat_specs) do local cat if cat_spec == true then -- ZH: "法國的城市" (location_key + 的 + zh_placetype_name); +++ replaced below cat = "+++" .. zh_strings.de_particle .. get_zh_placetype_name(entry_placetype) else cat = cat_spec end if cat:find("%+%+%+") then local group, key, spec, container_trail = m_placetypes.find_matching_holonym_location { holonym_placetype = triggering_holonym.placetype, holonym_placename = triggering_holonym.unlinked_placename, holonym_index = triggering_holonym_index, place_desc = place_desc, } if group then cat = cat:gsub("%+%+%+", m_strutils.replacement_escape(m_placetypes.get_prefixed_key(key, spec))) insert(all_cats, cat) else mw.log(("Unable to insert category for cat spec '%s' because holonym '%s/%s' did not match a " .. "known location"):format(cat, triggering_holonym.placetype, triggering_holonym.unlinked_placename)) track("cant-match-holonym-for-category-spec") end else insert(all_cats, cat) end end else for _, cat_spec in ipairs(cat_specs) do local cat if cat_spec == true then -- ZH: bare placetype category (e.g. "城市") cat = get_zh_placetype_name(entry_placetype) else cat = cat_spec if cat:find("%+%+%+") then internal_error("Category %s contains +++ but there is no holonym to substitute", cat) end end insert(all_cats, cat) end end return all_cats end -- Return the categories (without initial lang code) that should be added to the entry, given the place description -- and a particular entry placetype. local function get_placetype_cats(place_desc, entry_placetype, from_demonym, form_of_directive) local cats = {} local first_holonym_index = 1 while first_holonym_index <= #place_desc.holonyms do local cat_data = find_placetype_cat_specs { entry_placetype = entry_placetype, place_desc = place_desc, first_holonym_index = first_holonym_index, from_demonym = from_demonym, form_of_directive = form_of_directive, } if not cat_data then break end local triggering_holonym = cat_data.triggering_holonym if not triggering_holonym then internal_error("find_placetype_cat_specs should have returned a triggering holonym: %s", cat_data) end extend(cats, cat_specs_to_categories(place_desc, cat_data)) first_holonym_index = cat_data.triggering_holonym_index local equiv_triggering_placetypes = m_placetypes.get_placetype_equivs(triggering_holonym.placetype, {no_fallback = true}) for _, equiv in ipairs(equiv_triggering_placetypes) do local other_holonyms_of_same_type = place_desc.holonyms_by_placetype[equiv.placetype] if other_holonyms_of_same_type then for _, other_placename_of_same_type in ipairs(other_holonyms_of_same_type) do if other_placename_of_same_type ~= triggering_holonym.unlinked_placename then local overriding_holonym = { placetype = triggering_holonym.placetype, unlinked_placename = other_placename_of_same_type, } local other_cat_data = find_placetype_cat_specs { entry_placetype = entry_placetype, place_desc = place_desc, overriding_holonym = overriding_holonym, from_demonym = from_demonym, form_of_directive = form_of_directive, } if other_cat_data then extend(cats, cat_specs_to_categories(place_desc, other_cat_data)) end end end end end first_holonym_index = first_holonym_index + 1 while first_holonym_index <= #place_desc.holonyms do if place_desc.holonyms[first_holonym_index].continue_cat_loop then break end first_holonym_index = first_holonym_index + 1 end end if cats[1] then return cats end local entry_pt_default, equiv_entry_placetype_and_qualifier = m_placetypes.get_equiv_placetype_prop(entry_placetype, function(pt) return m_placetypes.placetype_data[pt] and m_placetypes.placetype_data[pt].default end, {form_of_directive = form_of_directive}) if entry_pt_default then return cat_specs_to_categories(place_desc, { cat_specs = entry_pt_default, entry_placetype = equiv_entry_placetype_and_qualifier.placetype, }) end return {} end --[==[ Iterate through each type of place and return a list of the categories that need to be added to the entry. See enwikt [[Module:place]] for detailed documentation. ]==] function export.get_cats(args, overall_place_spec, from_demonym) local cats = {} local place_descriptions = overall_place_spec.descs handle_category_implications(place_descriptions, m_placetypes.cat_implications) m_placetypes.augment_holonyms_with_container(place_descriptions) if overall_place_spec.directives then for _, directive_terms in ipairs(overall_place_spec.directives) do local spec_cats = directive_terms.spec.cat if spec_cats then if type(spec_cats) == "string" then spec_cats = {spec_cats} end for _, spec_cat in ipairs(spec_cats) do insert(cats, spec_cat) end end if directive_terms.spec.type_prefix then for _, place_desc in ipairs(place_descriptions) do for _, placetype in ipairs(place_desc.placetypes) do if not m_placetypes.placetype_is_ignorable(placetype) then extend(cats, get_placetype_cats(place_desc, placetype, from_demonym, directive_terms.spec.type_prefix)) end end end end end end if not from_demonym then local bare_categories = m_placetypes.get_bare_categories(args, overall_place_spec) extend(cats, bare_categories) end for _, place_desc in ipairs(place_descriptions) do if not from_demonym then for _, placetype in ipairs(place_desc.placetypes) do if not m_placetypes.placetype_is_ignorable(placetype) then extend(cats, get_placetype_cats(place_desc, placetype)) end end end extend(cats, get_placetype_cats(place_desc, "*", from_demonym)) end if args.cat then for _, cat in ipairs(args.cat) do local split_cats = split_on_comma(cat) extend(cats, split_cats) end end return cats end -- Return the category wikicode for a list of categories. -- ZH: uses `lang:getFullName() .. " " .. cat` format for regular categories (same as cln: format in enwikt), -- matching zhwikt's convention of "漢語 XX" category names instead of "zh:XX". local function format_cats(lang, cats, sort_key) local full_cats = {} local langname = lang:getFullName() for _, cat in ipairs(cats) do local cln_cat = cat:match("^cln:(.*)$") if cln_cat then insert(full_cats, langname .. " " .. cln_cat) else -- ZH: use langname prefix instead of langcode:cat insert(full_cats, langname .. " " .. cat) end end return require(utilities_module).format_categories(full_cats, lang, sort_key, nil, force_cat or m_placetypes.get_force_cat()) end ----------- Main entry point --[==[ Implementation of {{tl|place}}. Meant to be callable from another module. See enwikt [[Module:place]] for full documentation of the `data` argument fields. ]==] function export.format(data) local template_args = data.template_args local list_param = {list = true} local boolean_param = {type = "boolean"} local params = { [1] = {required = true, type = "language", default = "und"}, [2] = {required = true, list = true}, ["t"] = list_param, ["tid"] = {list = true, allow_holes = true}, ["cat"] = list_param, ["nocat"] = boolean_param, ["nocap"] = boolean_param, ["sort"] = true, ["pagename"] = true, -- for testing or documentation purposes ["a"] = true, ["addl"] = true, ["def"] = true, -- params that are only used when transcluding using {{tcl}}/{{transclude}}, to transmit information to {{tcl}}. ["tcl"] = true, ["tcl_t"] = list_param, ["tcl_tid"] = list_param, ["tcl_nolb"] = true, ["tcl_nolc"] = boolean_param, ["tcl_noextratext"] = boolean_param, } -- add "extra info" parameters for _, extra_arg_spec in ipairs(export.extra_info_args) do params[extra_arg_spec.arg] = list_param end if template_args.def == "" then error("Cannot currently pass def= as an empty parameter; use def=- if you want to suppress the definition display") end local args = require("Module:parameters").process(template_args, params) if args.a then track("a") end data.args = args local overall_place_spec = parse_overall_place_spec(data) data.overall_place_spec = overall_place_spec return get_def(data) .. ( args.nocat and "" or format_cats(args[1], export.get_cats(args, overall_place_spec), args.sort)) end --[==[ Actual entry point of {{tl|place}}. ]==] function export.show(frame) return export.format { template_args = frame:getParent().args, } end return export 67gb2kfxsd9zvqtgindvp0s2oyfkffx Module:Place/data 828 1629828 9759443 9758832 2026-05-14T16:50:00Z TongcyDai 53191 9759443 Scribunto text/plain local export = {} --[==[ Chinese localization data for [[Module:place]]. Fields per placetype entry: zh_name -- Chinese display name in definition sentences (string or {string,...}) zh_suffix -- Chinese suffix for :pref/:suf holonym modifiers; if nil, falls back to zh_name zh_name_by_holonym_type -- context-sensitive Chinese name keyed by the first holonym's placetype; -- used when the correct term depends on what the place is capital/seat of zh_preposition -- "in" (→ 位於…的) or "of" (→ …的); nil means inherit from enwikt `preposition` field -- Only needed when the Chinese preposition differs from the English one. Multiple-regional-variant names are stored as arrays {"primary", "alt1", "alt2",...}. - The first element is the canonical/primary form used in categories. - All elements are displayed, joined with "/" in holonym context. For zh_suffix with regional variants, use the same array convention. ]==] -- --------------------------------------------------------------------------- -- Placetype qualifier translations -- --------------------------------------------------------------------------- -- Maps English qualifier words (as canonicalized in placetype_qualifiers) to -- their Chinese equivalents. Used when displaying qualified placetypes such as -- "前城市"、"古代王國" etc. export.zh_qualifiers = { -- Historicity ["former"] = "前", ["ancient"] = "古代", ["medieval"] = "中世紀", ["historical"] = "歷史上的", ["extinct"] = "已消亡的", ["abandoned"] = "廢棄的", ["deserted"] = "廢棄的", ["ruined"] = "廢墟", -- Hypothetical ["fictional"] = "虛構的", ["mythological"]= "神話中的", -- Size ["small"] = "小", ["large"] = "大", ["major"] = "主要的", ["minor"] = "次要的", ["tiny"] = "微小的", ["huge"] = "龐大的", -- Coastal/water ["coastal"] = "沿海", ["inland"] = "內陸", ["maritime"] = "濱海", ["riverine"] = "沿河", -- Direction (adjectival use before holonym) ["northern"] = "北部", ["southern"] = "南部", ["eastern"] = "東部", ["western"] = "西部", ["central"] = "中部", ["northeastern"]= "東北部", ["northwestern"]= "西北部", ["southeastern"]= "東南部", ["southwestern"]= "西南部", -- Status ["autonomous"] = "自治", ["independent"] = "獨立的", ["unincorporated"] = "非建制", ["incorporated"] = "建制", ["rural"] = "農村", ["urban"] = "城市", ["suburban"] = "郊區", ["industrial"] = "工業", -- Terrain ["mountainous"] = "山地", ["volcanic"] = "火山", } -- --------------------------------------------------------------------------- -- Extra-info label translations -- --------------------------------------------------------------------------- -- Maps the enwikt extra-info parameter names to Chinese display labels. -- Used when appending "首都:X"、"最大城市:X" etc. to definitions. export.zh_extra_info_labels = { ["capital"] = "首都", -- overridden for non-country holonyms; see zh_capital_label_by_holonym ["largest city"] = "最大城市", ["capital and largest city"] = "首都和最大城市", ["official"] = "官方名稱", ["modern"] = "現代名稱", ["full"] = "全稱", ["seat"] = "治所", ["county seat"] = "縣治", ["borough seat"] = "區治", ["parish seat"] = "教區治所", ["shire town"] = "郡鎮", } -- Context-sensitive label for `capital=` parameter, keyed by entry placetype. -- When a capital-bearing placetype is identified, we look up the holonym type -- to determine the correct Chinese term for the capital. Falls back to "首都". export.zh_capital_label_by_holonym_type = { ["country"] = "首都", ["constituent country"]= "首都", ["state"] = "首府", ["province"] = "省會", ["territory"] = "首府", ["region"] = "首府", ["administrative region"] = "首府", ["autonomous region"] = "首府", ["county"] = "縣治", ["district"] = "區治", ["department"] = "省治", ["prefecture"] = "縣治", } -- --------------------------------------------------------------------------- -- Special-syntax string translations -- --------------------------------------------------------------------------- -- Miscellaneous fixed strings used in building definition sentences. export.zh_strings = { in_preposition = "位於", -- prepended for "in" placetypes -- "of" placetypes use no prepositional prefix; holonym directly precedes 的 de_particle = "的", -- possessive/locative particle and_conj = "和", -- final conjunction in enumerations enum_sep = "、", -- enumeration separator (replaces serial comma) multi_name_sep = "/", -- separator for regional name variants (e.g. 格魯吉亞/喬治亞) trans_sep = ",", -- separator for multiple t1/t2 translations paren_open = "(", paren_close = ")", semicolon = ";", -- multiple-description join (replaces "; ") former_name_of = "的舊稱", -- @former name of:X → "X的舊稱" } -- --------------------------------------------------------------------------- -- Placetype data (zh_ fields) -- --------------------------------------------------------------------------- -- Keys match the canonical English placetype keys in enwikt's placetype_data. -- Entries without zh_name will be looked up recursively through enwikt's -- `fallback` chain until a zh_name is found; if none found, the English name -- is displayed and a tracking category is added. export.zh_placetype_data = { -- ----------------------------------------------------------------------- -- Top-level polities -- ----------------------------------------------------------------------- ["country"] = { zh_name = "國家", zh_suffix = "國", }, ["city-state"] = { zh_name = "城邦", }, ["polity"] = { zh_name = "政體", }, ["empire"] = { zh_name = "帝國", zh_suffix = "帝國", }, ["kingdom"] = { zh_name = "王國", zh_suffix = "王國", }, ["republic"] = { zh_name = "共和國", zh_suffix = "共和國", }, ["federation"] = { zh_name = "聯邦", zh_suffix = "聯邦", }, ["confederation"] = { zh_name = "邦聯", zh_suffix = "邦聯", }, ["monarchy"] = { zh_name = "君主國", }, ["principality"] = { zh_name = "公國", zh_suffix = "公國", }, ["duchy"] = { zh_name = "公國", zh_suffix = "公國", }, ["caliphate"] = { zh_name = "哈里發國", }, ["khanate"] = { zh_name = "汗國", zh_suffix = "汗國", }, ["emirate"] = { zh_name = "酋長國", zh_suffix = "酋長國", }, ["bailiwick"] = { zh_name = "行政管轄區", }, ["captaincy"] = { zh_name = "都督區", }, ["microstate"] = { zh_name = "微型國家", }, ["unrecognized country"] = { zh_name = "未獲承認的國家", }, -- ----------------------------------------------------------------------- -- Constituent / pseudo-countries -- ----------------------------------------------------------------------- ["constituent country"] = { -- England, Scotland, Wales, Northern Ireland within the UK zh_name = "構成國", zh_suffix = "構成國", }, ["autonomous community"] = { -- Spain zh_name = "自治區", zh_suffix = "自治區", }, ["autonomous republic"] = { zh_name = "自治共和國", zh_suffix = "自治共和國", }, ["special administrative region"] = { -- China: Hong Kong, Macau zh_name = "特別行政區", zh_suffix = "特別行政區", }, ["dependent territory"] = { zh_name = "屬地", }, ["overseas territory"] = { zh_name = "海外屬地", }, ["Crown dependency"] = { zh_name = "王室屬地", }, ["crown dependency"] = { zh_name = "王室屬地", }, -- ----------------------------------------------------------------------- -- First-level administrative divisions -- ----------------------------------------------------------------------- ["state"] = { zh_name = "州", zh_suffix = "州", }, ["province"] = { zh_name = "省", zh_suffix = "省", }, ["territory"] = { zh_name = "地區", zh_suffix = "地區", }, ["region"] = { zh_name = "地區", -- fallback; specific regions use location data (e.g. 法國大區) zh_suffix = "地區", }, ["administrative region"] = { zh_name = "行政區", zh_suffix = "行政區", }, ["autonomous region"] = { zh_name = "自治區", zh_suffix = "自治區", }, ["autonomous oblast"] = { zh_name = "自治州", zh_suffix = "自治州", }, ["autonomous okrug"] = { zh_name = "自治區", zh_suffix = "自治區", }, ["autonomous province"] = { zh_name = "自治省", zh_suffix = "自治省", }, ["autonomous prefecture"] = { zh_name = "自治州", zh_suffix = "自治州", }, ["autonomous territory"] = { zh_name = "自治領地", }, ["autonomous territorial unit"] = { -- Moldova (Gagauzia, Transnistria) zh_name = "自治地域單位", }, ["federal subject"] = { -- Russia zh_name = "聯邦主體", }, ["voivodeship"] = { -- Poland zh_name = "省", zh_suffix = "省", }, ["oblast"] = { -- Russia/Ukraine zh_name = "州", zh_suffix = "州", }, ["okrug"] = { zh_name = "區", zh_suffix = "區", }, ["krai"] = { -- Russia zh_name = "邊疆區", zh_suffix = "邊疆區", }, ["raion"] = { -- Ukraine/Russia zh_name = "區", zh_suffix = "區", }, ["department"] = { -- France and other countries zh_name = "省", zh_suffix = "省", }, ["governorate"] = { zh_name = "省", zh_suffix = "省", }, ["canton"] = { -- Switzerland, Luxembourg etc. zh_name = "州", zh_suffix = "州", }, ["division"] = { zh_name = "省", zh_suffix = "省", }, ["periphery"] = { -- Greece zh_name = "大區", zh_suffix = "大區", }, ["collectivity"] = { -- France overseas zh_name = "集體", }, ["commonwealth"] = { -- Puerto Rico zh_name = "自由邦", }, ["constituent republic"] = { -- Yugoslavia/Russia zh_name = "加盟共和國", zh_suffix = "共和國", }, ["colony"] = { zh_name = "殖民地", }, ["viceroyalty"] = { zh_name = "副王轄地", }, ["regency"] = { zh_name = "縣", zh_suffix = "縣", }, -- ----------------------------------------------------------------------- -- Second-level and lower administrative divisions -- ----------------------------------------------------------------------- ["county"] = { zh_name = "縣", zh_suffix = "縣", }, ["district"] = { zh_name = "區", zh_suffix = "區", }, ["municipality"] = { zh_name = "市鎮", zh_suffix = "市鎮", }, ["commune"] = { zh_name = "市鎮", }, ["comune"] = { -- Italy/Switzerland zh_name = "市鎮", }, ["borough"] = { zh_name = "區", zh_suffix = "區", }, ["metropolitan borough"] = { zh_name = "都會區", zh_suffix = "都會區", }, ["London borough"] = { zh_name = "倫敦區", zh_suffix = "區", }, ["royal borough"] = { zh_name = "皇家自治市", }, ["county borough"] = { zh_name = "郡市", zh_suffix = "郡市", }, ["parish"] = { zh_name = "教區", zh_suffix = "教區", }, ["civil parish"] = { zh_name = "教區", zh_suffix = "教區", }, ["council area"] = { -- Scotland zh_name = "議會地區", zh_suffix = "議會地區", }, ["prefecture"] = { -- Japan: 縣(ken); France: 省治城市(handled by capital city logic) zh_name = "都道府縣", zh_suffix = "縣", }, ["prefecture-level city"] = { -- China zh_name = "地級市", zh_suffix = "市", }, ["county-level city"] = { -- China zh_name = "縣級市", zh_suffix = "市", }, ["subprovincial city"] = { -- China zh_name = "副省級市", zh_suffix = "市", }, ["direct-administered municipality"] = { -- China (Beijing, Shanghai, etc.) zh_name = "直轄市", zh_suffix = "市", }, ["special municipality"] = { -- Taiwan (Taipei, New Taipei etc.) zh_name = "直轄市", zh_suffix = "市", }, ["county-administered city"] = { -- Taiwan zh_name = "縣轄市", zh_suffix = "市", }, ["special ward"] = { -- Tokyo zh_name = "特別區", zh_suffix = "區", }, ["municipal district"] = { zh_name = "市轄區", zh_suffix = "區", }, ["subdistrict"] = { zh_name = "街道", zh_suffix = "街道", }, ["township"] = { zh_name = "鄉鎮", zh_suffix = "鄉鎮", }, ["rural township"] = { -- Taiwan zh_name = "鄉", zh_suffix = "鄉", }, ["urban township"] = { zh_name = "鎮", zh_suffix = "鎮", }, ["mountain indigenous township"] = { -- Taiwan zh_name = "山地原住民區", zh_suffix = "區", }, ["mountain indigenous district"] = { -- Taiwan zh_name = "山地原住民區", zh_suffix = "區", }, ["community development block"] = { -- India zh_name = "社區發展區", }, ["union territory"] = { -- India zh_name = "聯合地區", }, ["hromada"] = { -- Ukraine zh_name = "社區", zh_suffix = "社區", }, ["urban hromada"] = { zh_name = "城市社區", zh_suffix = "社區", }, ["rural hromada"] = { zh_name = "農村社區", zh_suffix = "社區", }, ["settlement hromada"] = { zh_name = "聚落社區", zh_suffix = "社區", }, ["regional unit"] = { -- Greece zh_name = "地區單位", zh_suffix = "地區", }, ["regional county municipality"] = { -- Quebec zh_name = "地區縣市", }, ["regional district"] = { -- Canada zh_name = "地區區", }, ["regional municipality"] = { zh_name = "地區市", }, ["local government area"] = { -- Australia zh_name = "地方政府區", }, ["local government district"] = { zh_name = "地方政府區", }, ["arrondissement"] = { zh_name = "區", zh_suffix = "區", }, ["cercle"] = { -- Mali zh_name = "縣", }, ["geopolitical zone"] = { -- Nigeria zh_name = "地緣政治區", }, ["enclave"] = { zh_name = "飛地", }, ["exclave"] = { zh_name = "外飛地", }, -- ----------------------------------------------------------------------- -- Capitals and seats -- ----------------------------------------------------------------------- ["capital city"] = { -- Default for most contexts; see zh_name_by_holonym_type for overrides zh_name = "首府", zh_name_by_holonym_type = { ["country"] = "首都", ["constituent country"] = "首都", ["microstate"] = "首都", ["city-state"] = "首都", ["state"] = "首府", ["territory"] = "首府", ["region"] = "首府", ["administrative region"] = "首府", ["autonomous region"] = "首府", ["province"] = "省會", ["autonomous province"] = "省會", ["county"] = "縣治", ["district"] = "區治", ["department"] = "省治", ["prefecture"] = "縣治", ["municipality"] = "市治", }, }, ["capital"] = { -- Alias for capital city; same logic zh_name = "首府", zh_name_by_holonym_type = { ["country"] = "首都", ["constituent country"] = "首都", ["state"] = "首府", ["territory"] = "首府", ["region"] = "首府", ["province"] = "省會", ["county"] = "縣治", ["district"] = "區治", ["department"] = "省治", }, }, ["state capital"] = { zh_name = "首府", }, ["provincial capital"] = { zh_name = "省會", }, ["regional capital"] = { zh_name = "首府", }, ["district capital"] = { zh_name = "區治", }, ["departmental capital"] = { zh_name = "省治", }, ["national capital"] = { zh_name = "首都", }, ["administrative capital"] = { zh_name = "行政首都", }, ["legislative capital"] = { zh_name = "立法首都", }, ["judicial capital"] = { zh_name = "司法首都", }, ["royal capital"] = { zh_name = "王都", }, ["co-capital"] = { zh_name = "共同首都", }, ["largest city"] = { zh_name = "最大城市", }, ["caplc"] = { zh_name = "首都和最大城市", }, ["non-city capital"] = { zh_name = "首府", }, ["county seat"] = { zh_name = "縣治", }, ["county town"] = { zh_name = "縣城", }, ["borough seat"] = { zh_name = "區治", }, ["parish seat"] = { zh_name = "教區治所", }, ["shire town"] = { zh_name = "郡鎮", }, ["administrative center"] = { zh_name = "行政中心", }, ["administrative centre"] = { zh_name = "行政中心", }, ["administrative headquarters"] = { zh_name = "行政總部", }, ["French prefecture"] = { -- A city that is the administrative capital of a French department zh_name = "省府", zh_name_by_holonym_type = { ["department"] = "省府", }, }, -- ----------------------------------------------------------------------- -- Cities and urban settlements -- ----------------------------------------------------------------------- ["city"] = { zh_name = "市", zh_suffix = "市", }, ["town"] = { zh_name = "鎮", zh_suffix = "鎮", }, ["village"] = { zh_name = "村", zh_suffix = "村", }, ["hamlet"] = { zh_name = "小村", }, ["locality"] = { zh_name = "村落", }, ["settlement"] = { zh_name = "聚落", }, ["populated place"] = { zh_name = "居民點", }, ["neighborhood"] = { zh_name = "街區", }, ["neighbourhood"] = { zh_name = "街區", }, ["suburb"] = { zh_name = "郊區", }, ["community"] = { zh_name = "社區", }, ["urban area"] = { zh_name = "城市地區", }, ["residential area"] = { zh_name = "住宅區", }, ["housing estate"] = { zh_name = "住宅區", }, ["planned community"] = { zh_name = "計劃社區", }, ["administrative village"] = { zh_name = "行政村", zh_suffix = "村", }, ["barangay"] = { -- Philippines zh_name = "里", }, ["barrio"] = { zh_name = "里", }, ["kibbutz"] = { zh_name = "集體農場", }, ["ghost town"] = { zh_name = "鬼城", }, ["unincorporated community"] = { zh_name = "非建制社區", }, ["census-designated place"] = { zh_name = "人口普查指定地區", }, ["military base"] = { zh_name = "軍事基地", }, ["research station"] = { zh_name = "研究站", }, ["home rule city"] = { zh_name = "自治市", }, ["federal district"] = { zh_name = "聯邦特區", zh_suffix = "特區", }, ["independent city"] = { zh_name = "獨立市", }, ["autonomous city"] = { zh_name = "自治市", }, ["port city"] = { zh_name = "港市", }, ["port town"] = { zh_name = "港鎮", }, ["market town"] = { zh_name = "市集鎮", }, ["resort town"] = { zh_name = "度假鎮", }, ["new town"] = { zh_name = "新市鎮", }, -- ----------------------------------------------------------------------- -- Geographic / natural features -- ----------------------------------------------------------------------- ["continent"] = { zh_name = "洲", zh_suffix = "洲", }, ["continental region"] = { zh_name = "大陸地區", }, ["ocean"] = { zh_name = "洋", zh_suffix = "洋", }, ["sea"] = { zh_name = "海", zh_suffix = "海", }, ["inland sea"] = { zh_name = "內陸海", }, ["marginal sea"] = { zh_name = "邊緣海", }, ["river"] = { zh_name = "河", zh_suffix = "河", }, ["lake"] = { zh_name = "湖", zh_suffix = "湖", }, ["reservoir"] = { zh_name = "水庫", zh_suffix = "水庫", }, ["stream"] = { zh_name = "溪", zh_suffix = "溪", }, ["creek"] = { zh_name = "溪", zh_suffix = "溪", }, ["bay"] = { zh_name = "灣", zh_suffix = "灣", }, ["gulf"] = { zh_name = "海灣", zh_suffix = "海灣", }, ["fjord"] = { zh_name = "峽灣", }, ["strait"] = { zh_name = "海峽", zh_suffix = "海峽", }, ["channel"] = { zh_name = "水道", zh_suffix = "水道", }, ["inlet"] = { zh_name = "海灣", zh_suffix = "灣", }, ["arm"] = { zh_name = "海灣", }, ["island"] = { zh_name = "島", zh_suffix = "島", }, ["islet"] = { zh_name = "小島", zh_suffix = "島", }, ["island group"] = { zh_name = "群島", }, ["archipelago"] = { zh_name = "群島", zh_suffix = "群島", }, ["atoll"] = { zh_name = "環礁", zh_suffix = "環礁", }, ["peninsula"] = { zh_name = "半島", zh_suffix = "半島", }, ["spit"] = { zh_name = "沙嘴", }, ["cape"] = { zh_name = "角", zh_suffix = "角", }, ["headland"] = { zh_name = "岬角", }, ["mountain"] = { zh_name = "山", zh_suffix = "山", }, ["hill"] = { zh_name = "丘", zh_suffix = "丘", }, ["mountain range"] = { zh_name = "山脈", zh_suffix = "山脈", }, ["mountain pass"] = { zh_name = "山口", }, ["plateau"] = { zh_name = "高原", zh_suffix = "高原", }, ["valley"] = { zh_name = "谷", zh_suffix = "谷", }, ["glen"] = { zh_name = "峽谷", }, ["volcano"] = { zh_name = "火山", zh_suffix = "火山", }, ["forest"] = { zh_name = "林地", zh_suffix = "林", }, ["moor"] = { zh_name = "荒原", }, ["desert"] = { zh_name = "沙漠", zh_suffix = "沙漠", }, ["beach"] = { zh_name = "海灘", zh_suffix = "海灘", }, ["spring"] = { zh_name = "泉", zh_suffix = "泉", }, ["hot spring"] = { zh_name = "溫泉", zh_suffix = "溫泉", }, ["tributary"] = { zh_name = "支流", }, ["distributary"] = { zh_name = "分流", }, -- ----------------------------------------------------------------------- -- Geographic / cultural regions (non-admin) -- ----------------------------------------------------------------------- ["geographic and cultural area"] = { zh_name = "地區", }, ["geographic region"] = { zh_name = "地理區域", }, ["historical region"] = { zh_name = "歷史地區", }, ["historic region"] = { zh_name = "歷史地區", }, ["cultural region"] = { zh_name = "文化地區", }, ["subregion"] = { zh_name = "次地區", }, ["macroregion"] = { zh_name = "大區域", }, -- ----------------------------------------------------------------------- -- Man-made structures -- ----------------------------------------------------------------------- ["airport"] = { zh_name = "機場", }, ["port"] = { zh_name = "港口", }, ["bridge"] = { zh_name = "橋", }, ["road"] = { zh_name = "道路", }, ["highway"] = { zh_name = "公路", }, ["motorway"] = { zh_name = "高速公路", }, ["street"] = { zh_name = "街道", }, ["building"] = { zh_name = "建築物", }, ["university"] = { zh_name = "大學", }, ["park"] = { zh_name = "公園", }, ["national park"] = { zh_name = "國家公園", }, ["metro station"] = { zh_name = "地鐵站", }, ["temple"] = { zh_name = "廟宇", }, ["castle"] = { zh_name = "城堡", }, -- ----------------------------------------------------------------------- -- Misc / hypothetical -- ----------------------------------------------------------------------- ["fictional location"] = { zh_name = "虛構地點", }, ["mythological location"] = { zh_name = "神話地點", }, ["star"] = { zh_name = "恆星", }, ["space station"] = { zh_name = "太空站", }, } -- --------------------------------------------------------------------------- -- Helper: look up zh_name for a placetype via fallback chain -- --------------------------------------------------------------------------- -- Looks up zh_name (and optionally zh_name_by_holonym_type) for a given -- placetype, recursively following the enwikt fallback chain if needed. -- Returns zh_name (string or table), zh_suffix (string or table or nil), -- zh_name_by_holonym_type (table or nil). -- `m_pt` should be the enwikt place-placetypes module (for fallback data). function export.get_zh_placetype_props(placetype, m_pt) local visited = {} local current = placetype while current and not visited[current] do visited[current] = true local zh = export.zh_placetype_data[current] if zh and zh.zh_name then return zh.zh_name, zh.zh_suffix, zh.zh_name_by_holonym_type end -- Follow enwikt fallback if m_pt then local ptdata = m_pt.placetype_data[current] if ptdata and ptdata.fallback then current = ptdata.fallback -- Strip FORMER/ANCIENT prefixes from synthetic fallbacks like "FORMER settlement" current = current:match("^FORMER (.+)$") or current:match("^ANCIENT (.+)$") or current else break end else break end end return nil, nil, nil end -- --------------------------------------------------------------------------- -- Helper: resolve zh_name given holonym context -- --------------------------------------------------------------------------- -- Given the zh_name (possibly a table of variants) and zh_name_by_holonym_type, -- and the holonym's placetype, return the appropriate Chinese name string. -- If multiple variants, returns the array (caller joins with zh_strings.multi_name_sep). function export.resolve_zh_name(zh_name, zh_name_by_holonym_type, holonym_placetype) if zh_name_by_holonym_type and holonym_placetype then local override = zh_name_by_holonym_type[holonym_placetype] if override then return override end end return zh_name end -- --------------------------------------------------------------------------- -- Helper: format zh_name for display (join variants with "/") -- --------------------------------------------------------------------------- function export.format_zh_name(zh_name_or_array) if type(zh_name_or_array) == "table" then return table.concat(zh_name_or_array, export.zh_strings.multi_name_sep) end return zh_name_or_array or "" end return export e4arwgp61uezwzrjdbcqd58wmcknt2b 9759562 9759443 2026-05-14T22:26:33Z TongcyDai 53191 9759562 Scribunto text/plain local export = {} --[==[ Chinese localization data for [[Module:place]]. Fields per placetype entry: zh_name -- Chinese display name in definition sentences (string or {string,...}) zh_suffix -- Chinese suffix for :pref/:suf holonym modifiers; if nil, falls back to zh_name zh_name_by_holonym_type -- context-sensitive Chinese name keyed by the first holonym's placetype; -- used when the correct term depends on what the place is capital/seat of zh_preposition -- "in" (→ 位於…的) or "of" (→ …的); nil means inherit from enwikt `preposition` field -- Only needed when the Chinese preposition differs from the English one. Multiple-regional-variant names are stored as arrays {"primary", "alt1", "alt2",...}. - The first element is the canonical/primary form used in categories. - All elements are displayed, joined with "/" in holonym context. For zh_suffix with regional variants, use the same array convention. ]==] -- --------------------------------------------------------------------------- -- Placetype qualifier translations -- --------------------------------------------------------------------------- -- Maps English qualifier words (as canonicalized in placetype_qualifiers) to -- their Chinese equivalents. Used when displaying qualified placetypes such as -- "前城市"、"古代王國" etc. export.zh_qualifiers = { -- Historicity ["former"] = "前", ["ancient"] = "古代", ["medieval"] = "中世紀", ["historical"] = "歷史上的", ["extinct"] = "已消亡的", ["abandoned"] = "廢棄的", ["deserted"] = "廢棄的", ["ruined"] = "廢墟", -- Hypothetical ["fictional"] = "虛構的", ["mythological"]= "神話中的", -- Size ["small"] = "小", ["large"] = "大", ["major"] = "主要的", ["minor"] = "次要的", ["tiny"] = "微小的", ["huge"] = "龐大的", -- Coastal/water ["coastal"] = "沿海", ["inland"] = "內陸", ["maritime"] = "濱海", ["riverine"] = "沿河", -- Direction (adjectival use before holonym) ["northern"] = "北部", ["southern"] = "南部", ["eastern"] = "東部", ["western"] = "西部", ["central"] = "中部", ["northeastern"]= "東北部", ["northwestern"]= "西北部", ["southeastern"]= "東南部", ["southwestern"]= "西南部", -- Status ["autonomous"] = "自治", ["independent"] = "獨立的", ["unincorporated"] = "非建制", ["incorporated"] = "建制", ["rural"] = "農村", ["urban"] = "城市", ["suburban"] = "郊區", ["industrial"] = "工業", -- Terrain ["mountainous"] = "山地", ["volcanic"] = "火山", } -- --------------------------------------------------------------------------- -- Extra-info label translations -- --------------------------------------------------------------------------- -- Maps the enwikt extra-info parameter names to Chinese display labels. -- Used when appending "首都:X"、"最大城市:X" etc. to definitions. export.zh_extra_info_labels = { ["capital"] = "首都", -- overridden for non-country holonyms; see zh_capital_label_by_holonym ["largest city"] = "最大城市", ["capital and largest city"] = "首都和最大城市", ["official"] = "官方名稱", ["modern"] = "現代名稱", ["full"] = "全稱", ["seat"] = "治所", ["county seat"] = "縣治", ["borough seat"] = "區治", ["parish seat"] = "教區治所", ["shire town"] = "郡鎮", } -- Context-sensitive label for `capital=` parameter, keyed by entry placetype. -- When a capital-bearing placetype is identified, we look up the holonym type -- to determine the correct Chinese term for the capital. Falls back to "首都". export.zh_capital_label_by_holonym_type = { ["country"] = "首都", ["constituent country"]= "首都", ["state"] = "首府", ["province"] = "省會", ["territory"] = "首府", ["region"] = "首府", ["administrative region"] = "首府", ["autonomous region"] = "首府", ["county"] = "縣治", ["district"] = "區治", ["department"] = "省治", ["prefecture"] = "縣治", } -- --------------------------------------------------------------------------- -- Special-syntax string translations -- --------------------------------------------------------------------------- -- Miscellaneous fixed strings used in building definition sentences. export.zh_strings = { in_preposition = "位於", -- prepended for "in" placetypes -- "of" placetypes use no prepositional prefix; holonym directly precedes 的 de_particle = "的", -- possessive/locative particle and_conj = "和", -- final conjunction in enumerations enum_sep = "、", -- enumeration separator (replaces serial comma) multi_name_sep = "/", -- separator for regional name variants (e.g. 格魯吉亞/喬治亞) trans_sep = ",", -- separator for multiple t1/t2 translations paren_open = "(", paren_close = ")", semicolon = ";", -- multiple-description join (replaces "; ") former_name_of = "的舊稱", -- @former name of:X → "X的舊稱" } -- --------------------------------------------------------------------------- -- Placetype data (zh_ fields) -- --------------------------------------------------------------------------- -- Keys match the canonical English placetype keys in enwikt's placetype_data. -- Entries without zh_name will be looked up recursively through enwikt's -- `fallback` chain until a zh_name is found; if none found, the English name -- is displayed and a tracking category is added. export.zh_placetype_data = { -- ----------------------------------------------------------------------- -- Top-level polities -- ----------------------------------------------------------------------- ["country"] = { zh_name = "國家", zh_suffix = "國", }, ["city-state"] = { zh_name = "城邦", }, ["polity"] = { zh_name = "政體", }, ["empire"] = { zh_name = "帝國", zh_suffix = "帝國", }, ["kingdom"] = { zh_name = "王國", zh_suffix = "王國", }, ["republic"] = { zh_name = "共和國", zh_suffix = "共和國", }, ["federation"] = { zh_name = "聯邦", zh_suffix = "聯邦", }, ["confederation"] = { zh_name = "邦聯", zh_suffix = "邦聯", }, ["monarchy"] = { zh_name = "君主國", }, ["principality"] = { zh_name = "公國", zh_suffix = "公國", }, ["duchy"] = { zh_name = "公國", zh_suffix = "公國", }, ["caliphate"] = { zh_name = "哈里發國", }, ["khanate"] = { zh_name = "汗國", zh_suffix = "汗國", }, ["emirate"] = { zh_name = "酋長國", zh_suffix = "酋長國", }, ["bailiwick"] = { zh_name = "行政管轄區", }, ["captaincy"] = { zh_name = "都督區", }, ["microstate"] = { zh_name = "微型國家", }, ["unrecognized country"] = { zh_name = "未獲承認的國家", }, -- ----------------------------------------------------------------------- -- Constituent / pseudo-countries -- ----------------------------------------------------------------------- ["constituent country"] = { -- England, Scotland, Wales, Northern Ireland within the UK zh_name = "構成國", zh_suffix = "構成國", }, ["autonomous community"] = { -- Spain zh_name = "自治區", zh_suffix = "自治區", }, ["autonomous republic"] = { zh_name = "自治共和國", zh_suffix = "自治共和國", }, ["special administrative region"] = { -- China: Hong Kong, Macau zh_name = "特別行政區", zh_suffix = "特別行政區", }, ["dependent territory"] = { zh_name = "屬地", }, ["overseas territory"] = { zh_name = "海外屬地", }, ["Crown dependency"] = { zh_name = "王室屬地", }, ["crown dependency"] = { zh_name = "王室屬地", }, -- ----------------------------------------------------------------------- -- First-level administrative divisions -- ----------------------------------------------------------------------- ["state"] = { zh_name = "州", zh_suffix = "州", }, ["province"] = { zh_name = "省", zh_suffix = "省", }, ["territory"] = { zh_name = "地區", zh_suffix = "地區", }, ["region"] = { zh_name = "地區", -- fallback; specific regions use location data (e.g. 法國大區) zh_suffix = "地區", }, ["administrative region"] = { zh_name = "行政區", zh_suffix = "行政區", }, ["autonomous region"] = { zh_name = "自治區", zh_suffix = "自治區", }, ["autonomous oblast"] = { zh_name = "自治州", zh_suffix = "自治州", }, ["autonomous okrug"] = { zh_name = "自治區", zh_suffix = "自治區", }, ["autonomous province"] = { zh_name = "自治省", zh_suffix = "自治省", }, ["autonomous prefecture"] = { zh_name = "自治州", zh_suffix = "自治州", }, ["autonomous territory"] = { zh_name = "自治領地", }, ["autonomous territorial unit"] = { -- Moldova (Gagauzia, Transnistria) zh_name = "自治地域單位", }, ["federal subject"] = { -- Russia zh_name = "聯邦主體", }, ["voivodeship"] = { -- Poland zh_name = "省", zh_suffix = "省", }, ["oblast"] = { -- Russia/Ukraine zh_name = "州", zh_suffix = "州", }, ["okrug"] = { zh_name = "區", zh_suffix = "區", }, ["krai"] = { -- Russia zh_name = "邊疆區", zh_suffix = "邊疆區", }, ["raion"] = { -- Ukraine/Russia zh_name = "區", zh_suffix = "區", }, ["department"] = { -- France and other countries zh_name = "省", zh_suffix = "省", }, ["governorate"] = { zh_name = "省", zh_suffix = "省", }, ["canton"] = { -- Switzerland, Luxembourg etc. zh_name = "州", zh_suffix = "州", }, ["division"] = { zh_name = "省", zh_suffix = "省", }, ["periphery"] = { -- Greece zh_name = "大區", zh_suffix = "大區", }, ["collectivity"] = { -- France overseas zh_name = "集體", }, ["commonwealth"] = { -- Puerto Rico zh_name = "自由邦", }, ["constituent republic"] = { -- Yugoslavia/Russia zh_name = "加盟共和國", zh_suffix = "共和國", }, ["colony"] = { zh_name = "殖民地", }, ["viceroyalty"] = { zh_name = "副王轄地", }, ["regency"] = { zh_name = "縣", zh_suffix = "縣", }, -- ----------------------------------------------------------------------- -- Second-level and lower administrative divisions -- ----------------------------------------------------------------------- ["county"] = { zh_name = "縣", zh_suffix = "縣", }, ["district"] = { zh_name = "區", zh_suffix = "區", }, ["municipality"] = { zh_name = "市鎮", zh_suffix = "市鎮", }, ["commune"] = { zh_name = "市鎮", }, ["comune"] = { -- Italy/Switzerland zh_name = "市鎮", }, ["borough"] = { zh_name = "區", zh_suffix = "區", }, ["metropolitan borough"] = { zh_name = "都會區", zh_suffix = "都會區", }, ["London borough"] = { zh_name = "倫敦區", zh_suffix = "區", }, ["royal borough"] = { zh_name = "皇家自治市", }, ["county borough"] = { zh_name = "郡市", zh_suffix = "郡市", }, ["parish"] = { zh_name = "教區", zh_suffix = "教區", }, ["civil parish"] = { zh_name = "教區", zh_suffix = "教區", }, ["council area"] = { -- Scotland zh_name = "議會地區", zh_suffix = "議會地區", }, ["prefecture"] = { -- Japan: 縣(ken); France: 省治城市(handled by capital city logic) zh_name = "都道府縣", zh_suffix = "縣", }, ["prefecture-level city"] = { -- China zh_name = "地級市", zh_suffix = "市", }, ["county-level city"] = { -- China zh_name = "縣級市", zh_suffix = "市", }, ["subprovincial city"] = { -- China zh_name = "副省級市", zh_suffix = "市", }, ["direct-administered municipality"] = { -- China (Beijing, Shanghai, etc.) zh_name = "直轄市", zh_suffix = "市", }, ["special municipality"] = { -- Taiwan (Taipei, New Taipei etc.) zh_name = "直轄市", zh_suffix = "市", }, ["county-administered city"] = { -- Taiwan zh_name = "縣轄市", zh_suffix = "市", }, ["special ward"] = { -- Tokyo zh_name = "特別區", zh_suffix = "區", }, ["municipal district"] = { zh_name = "市轄區", zh_suffix = "區", }, ["subdistrict"] = { zh_name = "街道", zh_suffix = "街道", }, ["township"] = { zh_name = "鄉鎮", zh_suffix = "鄉鎮", }, ["rural township"] = { -- Taiwan zh_name = "鄉", zh_suffix = "鄉", }, ["urban township"] = { zh_name = "鎮", zh_suffix = "鎮", }, ["mountain indigenous township"] = { -- Taiwan zh_name = "山地原住民區", zh_suffix = "區", }, ["mountain indigenous district"] = { -- Taiwan zh_name = "山地原住民區", zh_suffix = "區", }, ["community development block"] = { -- India zh_name = "社區發展區", }, ["union territory"] = { -- India zh_name = "聯合地區", }, ["hromada"] = { -- Ukraine zh_name = "社區", zh_suffix = "社區", }, ["urban hromada"] = { zh_name = "城市社區", zh_suffix = "社區", }, ["rural hromada"] = { zh_name = "農村社區", zh_suffix = "社區", }, ["settlement hromada"] = { zh_name = "聚落社區", zh_suffix = "社區", }, ["regional unit"] = { -- Greece zh_name = "地區單位", zh_suffix = "地區", }, ["regional county municipality"] = { -- Quebec zh_name = "地區縣市", }, ["regional district"] = { -- Canada zh_name = "地區區", }, ["regional municipality"] = { zh_name = "地區市", }, ["local government area"] = { -- Australia zh_name = "地方政府區", }, ["local government district"] = { zh_name = "地方政府區", }, ["arrondissement"] = { zh_name = "區", zh_suffix = "區", }, ["cercle"] = { -- Mali zh_name = "縣", }, ["geopolitical zone"] = { -- Nigeria zh_name = "地緣政治區", }, ["enclave"] = { zh_name = "飛地", }, ["exclave"] = { zh_name = "外飛地", }, -- ----------------------------------------------------------------------- -- Capitals and seats -- ----------------------------------------------------------------------- ["capital city"] = { -- Default for most contexts; see zh_name_by_holonym_type for overrides zh_name = "首府", zh_name_by_holonym_type = { ["country"] = "首都", ["constituent country"] = "首都", ["microstate"] = "首都", ["city-state"] = "首都", ["state"] = "首府", ["territory"] = "首府", ["region"] = "首府", ["administrative region"] = "首府", ["autonomous region"] = "首府", ["province"] = "省會", ["autonomous province"] = "省會", ["county"] = "縣治", ["district"] = "區治", ["department"] = "省治", ["prefecture"] = "縣治", ["municipality"] = "市治", }, }, ["capital"] = { -- Alias for capital city; same logic zh_name = "首府", zh_name_by_holonym_type = { ["country"] = "首都", ["constituent country"] = "首都", ["state"] = "首府", ["territory"] = "首府", ["region"] = "首府", ["province"] = "省會", ["county"] = "縣治", ["district"] = "區治", ["department"] = "省治", }, }, ["state capital"] = { zh_name = "首府", }, ["provincial capital"] = { zh_name = "省會", }, ["regional capital"] = { zh_name = "首府", }, ["district capital"] = { zh_name = "區治", }, ["departmental capital"] = { zh_name = "省治", }, ["national capital"] = { zh_name = "首都", }, ["administrative capital"] = { zh_name = "行政首都", }, ["legislative capital"] = { zh_name = "立法首都", }, ["judicial capital"] = { zh_name = "司法首都", }, ["royal capital"] = { zh_name = "王都", }, ["co-capital"] = { zh_name = "共同首都", }, ["largest city"] = { zh_name = "最大城市", }, ["caplc"] = { zh_name = "首都和最大城市", }, ["non-city capital"] = { zh_name = "首府", }, ["county seat"] = { zh_name = "縣治", }, ["county town"] = { zh_name = "縣城", }, ["borough seat"] = { zh_name = "區治", }, ["parish seat"] = { zh_name = "教區治所", }, ["shire town"] = { zh_name = "郡鎮", }, ["administrative center"] = { zh_name = "行政中心", }, ["administrative centre"] = { zh_name = "行政中心", }, ["administrative headquarters"] = { zh_name = "行政總部", }, ["French prefecture"] = { -- A city that is the administrative capital of a French department zh_name = "省府", zh_name_by_holonym_type = { ["department"] = "省府", }, }, -- ----------------------------------------------------------------------- -- Cities and urban settlements -- ----------------------------------------------------------------------- ["city"] = { zh_name = "市", zh_suffix = "市", }, ["town"] = { zh_name = "鎮", zh_suffix = "鎮", }, ["village"] = { zh_name = "村", zh_suffix = "村", }, ["hamlet"] = { zh_name = "小村", }, ["locality"] = { zh_name = "村落", }, ["settlement"] = { zh_name = "聚落", }, ["populated place"] = { zh_name = "居民點", }, ["neighborhood"] = { zh_name = "街區", }, ["neighbourhood"] = { zh_name = "街區", }, ["suburb"] = { zh_name = "郊區", }, ["community"] = { zh_name = "社區", }, ["urban area"] = { zh_name = "城市地區", }, ["residential area"] = { zh_name = "住宅區", }, ["housing estate"] = { zh_name = "住宅區", }, ["planned community"] = { zh_name = "計劃社區", }, ["administrative village"] = { zh_name = "行政村", zh_suffix = "村", }, ["barangay"] = { -- Philippines zh_name = "里", }, ["barrio"] = { zh_name = "里", }, ["kibbutz"] = { zh_name = "集體農場", }, ["ghost town"] = { zh_name = "鬼城", }, ["unincorporated community"] = { zh_name = "非建制社區", }, ["census-designated place"] = { zh_name = "人口普查指定地區", }, ["military base"] = { zh_name = "軍事基地", }, ["research station"] = { zh_name = "研究站", }, ["home rule city"] = { zh_name = "自治市", }, ["federal district"] = { zh_name = "聯邦特區", zh_suffix = "特區", }, ["independent city"] = { zh_name = "獨立市", }, ["autonomous city"] = { zh_name = "自治市", }, ["port city"] = { zh_name = "港市", }, ["port town"] = { zh_name = "港鎮", }, ["market town"] = { zh_name = "市集鎮", }, ["resort town"] = { zh_name = "度假鎮", }, ["new town"] = { zh_name = "新市鎮", }, -- ----------------------------------------------------------------------- -- Geographic / natural features -- ----------------------------------------------------------------------- ["continent"] = { zh_name = "洲", zh_suffix = "洲", }, ["continental region"] = { zh_name = "大陸地區", }, ["continents and continental regions!"] = { zh_name = "大洲及大陸地區", }, ["ocean"] = { zh_name = "洋", zh_suffix = "洋", }, ["sea"] = { zh_name = "海", zh_suffix = "海", }, ["inland sea"] = { zh_name = "內陸海", }, ["marginal sea"] = { zh_name = "邊緣海", }, ["river"] = { zh_name = "河", zh_suffix = "河", }, ["lake"] = { zh_name = "湖", zh_suffix = "湖", }, ["reservoir"] = { zh_name = "水庫", zh_suffix = "水庫", }, ["stream"] = { zh_name = "溪", zh_suffix = "溪", }, ["creek"] = { zh_name = "溪", zh_suffix = "溪", }, ["bay"] = { zh_name = "灣", zh_suffix = "灣", }, ["gulf"] = { zh_name = "海灣", zh_suffix = "海灣", }, ["fjord"] = { zh_name = "峽灣", }, ["strait"] = { zh_name = "海峽", zh_suffix = "海峽", }, ["channel"] = { zh_name = "水道", zh_suffix = "水道", }, ["inlet"] = { zh_name = "海灣", zh_suffix = "灣", }, ["arm"] = { zh_name = "海灣", }, ["island"] = { zh_name = "島", zh_suffix = "島", }, ["islet"] = { zh_name = "小島", zh_suffix = "島", }, ["island group"] = { zh_name = "群島", }, ["archipelago"] = { zh_name = "群島", zh_suffix = "群島", }, ["atoll"] = { zh_name = "環礁", zh_suffix = "環礁", }, ["peninsula"] = { zh_name = "半島", zh_suffix = "半島", }, ["spit"] = { zh_name = "沙嘴", }, ["cape"] = { zh_name = "角", zh_suffix = "角", }, ["headland"] = { zh_name = "岬角", }, ["mountain"] = { zh_name = "山", zh_suffix = "山", }, ["hill"] = { zh_name = "丘", zh_suffix = "丘", }, ["mountain range"] = { zh_name = "山脈", zh_suffix = "山脈", }, ["mountain pass"] = { zh_name = "山口", }, ["plateau"] = { zh_name = "高原", zh_suffix = "高原", }, ["valley"] = { zh_name = "谷", zh_suffix = "谷", }, ["glen"] = { zh_name = "峽谷", }, ["volcano"] = { zh_name = "火山", zh_suffix = "火山", }, ["forest"] = { zh_name = "林地", zh_suffix = "林", }, ["moor"] = { zh_name = "荒原", }, ["desert"] = { zh_name = "沙漠", zh_suffix = "沙漠", }, ["beach"] = { zh_name = "海灘", zh_suffix = "海灘", }, ["spring"] = { zh_name = "泉", zh_suffix = "泉", }, ["hot spring"] = { zh_name = "溫泉", zh_suffix = "溫泉", }, ["tributary"] = { zh_name = "支流", }, ["distributary"] = { zh_name = "分流", }, -- ----------------------------------------------------------------------- -- Geographic / cultural regions (non-admin) -- ----------------------------------------------------------------------- ["geographic and cultural area"] = { zh_name = "地區", }, ["geographic region"] = { zh_name = "地理區域", }, ["historical region"] = { zh_name = "歷史地區", }, ["historic region"] = { zh_name = "歷史地區", }, ["cultural region"] = { zh_name = "文化地區", }, ["subregion"] = { zh_name = "次地區", }, ["macroregion"] = { zh_name = "大區域", }, -- ----------------------------------------------------------------------- -- Man-made structures -- ----------------------------------------------------------------------- ["airport"] = { zh_name = "機場", }, ["port"] = { zh_name = "港口", }, ["bridge"] = { zh_name = "橋", }, ["road"] = { zh_name = "道路", }, ["highway"] = { zh_name = "公路", }, ["motorway"] = { zh_name = "高速公路", }, ["street"] = { zh_name = "街道", }, ["building"] = { zh_name = "建築物", }, ["university"] = { zh_name = "大學", }, ["park"] = { zh_name = "公園", }, ["national park"] = { zh_name = "國家公園", }, ["metro station"] = { zh_name = "地鐵站", }, ["temple"] = { zh_name = "廟宇", }, ["castle"] = { zh_name = "城堡", }, -- ----------------------------------------------------------------------- -- Misc / hypothetical -- ----------------------------------------------------------------------- ["fictional location"] = { zh_name = "虛構地點", }, ["mythological location"] = { zh_name = "神話地點", }, ["star"] = { zh_name = "恆星", }, ["space station"] = { zh_name = "太空站", }, } -- --------------------------------------------------------------------------- -- Helper: look up zh_name for a placetype via fallback chain -- --------------------------------------------------------------------------- -- Looks up zh_name (and optionally zh_name_by_holonym_type) for a given -- placetype, recursively following the enwikt fallback chain if needed. -- Returns zh_name (string or table), zh_suffix (string or table or nil), -- zh_name_by_holonym_type (table or nil). -- `m_pt` should be the enwikt place-placetypes module (for fallback data). function export.get_zh_placetype_props(placetype, m_pt) local visited = {} local current = placetype while current and not visited[current] do visited[current] = true local zh = export.zh_placetype_data[current] if zh and zh.zh_name then return zh.zh_name, zh.zh_suffix, zh.zh_name_by_holonym_type end -- Follow enwikt fallback if m_pt then local ptdata = m_pt.placetype_data[current] if ptdata and ptdata.fallback then current = ptdata.fallback -- Strip FORMER/ANCIENT prefixes from synthetic fallbacks like "FORMER settlement" current = current:match("^FORMER (.+)$") or current:match("^ANCIENT (.+)$") or current else break end else break end end return nil, nil, nil end -- --------------------------------------------------------------------------- -- Helper: resolve zh_name given holonym context -- --------------------------------------------------------------------------- -- Given the zh_name (possibly a table of variants) and zh_name_by_holonym_type, -- and the holonym's placetype, return the appropriate Chinese name string. -- If multiple variants, returns the array (caller joins with zh_strings.multi_name_sep). function export.resolve_zh_name(zh_name, zh_name_by_holonym_type, holonym_placetype) if zh_name_by_holonym_type and holonym_placetype then local override = zh_name_by_holonym_type[holonym_placetype] if override then return override end end return zh_name end -- --------------------------------------------------------------------------- -- Helper: format zh_name for display (join variants with "/") -- --------------------------------------------------------------------------- function export.format_zh_name(zh_name_or_array) if type(zh_name_or_array) == "table" then return table.concat(zh_name_or_array, export.zh_strings.multi_name_sep) end return zh_name_or_array or "" end return export 851lcq0yecmqeoe2nelsk0p3897nsdc 9759701 9759562 2026-05-15T00:38:25Z TongcyDai 53191 9759701 Scribunto text/plain local export = {} --[==[ Chinese localization data for [[Module:place]]. Fields per placetype entry: zh_name -- Chinese display name in definition sentences (string or {string,...}) zh_suffix -- Chinese suffix for :pref/:suf holonym modifiers; if nil, falls back to zh_name zh_name_by_holonym_type -- context-sensitive Chinese name keyed by the first holonym's placetype; -- used when the correct term depends on what the place is capital/seat of zh_preposition -- "in" (→ 位於…的) or "of" (→ …的); nil means inherit from enwikt `preposition` field -- Only needed when the Chinese preposition differs from the English one. Multiple-regional-variant names are stored as arrays {"primary", "alt1", "alt2",...}. - The first element is the canonical/primary form used in categories. - All elements are displayed, joined with "/" in holonym context. For zh_suffix with regional variants, use the same array convention. ]==] -- --------------------------------------------------------------------------- -- Placetype qualifier translations -- --------------------------------------------------------------------------- -- Maps English qualifier words (as canonicalized in placetype_qualifiers) to -- their Chinese equivalents. Used when displaying qualified placetypes such as -- "前城市"、"古代王國" etc. export.zh_qualifiers = { -- Historicity ["former"] = "前", ["ancient"] = "古代", ["medieval"] = "中世紀", ["historical"] = "歷史上的", ["extinct"] = "已消亡的", ["abandoned"] = "廢棄的", ["deserted"] = "廢棄的", ["ruined"] = "廢墟", -- Hypothetical ["fictional"] = "虛構的", ["mythological"]= "神話中的", -- Size ["small"] = "小", ["large"] = "大", ["major"] = "主要的", ["minor"] = "次要的", ["tiny"] = "微小的", ["huge"] = "龐大的", -- Coastal/water ["coastal"] = "沿海", ["inland"] = "內陸", ["maritime"] = "濱海", ["riverine"] = "沿河", -- Direction (adjectival use before holonym) ["northern"] = "北部", ["southern"] = "南部", ["eastern"] = "東部", ["western"] = "西部", ["central"] = "中部", ["northeastern"]= "東北部", ["northwestern"]= "西北部", ["southeastern"]= "東南部", ["southwestern"]= "西南部", -- Status ["autonomous"] = "自治", ["independent"] = "獨立的", ["unincorporated"] = "非建制", ["incorporated"] = "建制", ["rural"] = "農村", ["urban"] = "城市", ["suburban"] = "郊區", ["industrial"] = "工業", -- Terrain ["mountainous"] = "山地", ["volcanic"] = "火山", } -- --------------------------------------------------------------------------- -- Extra-info label translations -- --------------------------------------------------------------------------- -- Maps the enwikt extra-info parameter names to Chinese display labels. -- Used when appending "首都:X"、"最大城市:X" etc. to definitions. export.zh_extra_info_labels = { ["capital"] = "首都", -- overridden for non-country holonyms; see zh_capital_label_by_holonym ["largest city"] = "最大城市", ["capital and largest city"] = "首都和最大城市", ["official"] = "官方名稱", ["modern"] = "現代名稱", ["full"] = "全稱", ["seat"] = "治所", ["county seat"] = "縣治", ["borough seat"] = "區治", ["parish seat"] = "教區治所", ["shire town"] = "郡鎮", } -- Context-sensitive label for `capital=` parameter, keyed by entry placetype. -- When a capital-bearing placetype is identified, we look up the holonym type -- to determine the correct Chinese term for the capital. Falls back to "首都". export.zh_capital_label_by_holonym_type = { ["country"] = "首都", ["constituent country"]= "首都", ["state"] = "首府", ["province"] = "省會", ["territory"] = "首府", ["region"] = "首府", ["administrative region"] = "首府", ["autonomous region"] = "首府", ["county"] = "縣治", ["district"] = "區治", ["department"] = "省治", ["prefecture"] = "縣治", } -- --------------------------------------------------------------------------- -- Special-syntax string translations -- --------------------------------------------------------------------------- -- Miscellaneous fixed strings used in building definition sentences. export.zh_strings = { in_preposition = "位於", -- prepended for "in" placetypes -- "of" placetypes use no prepositional prefix; holonym directly precedes 的 de_particle = "的", -- possessive/locative particle and_conj = "和", -- final conjunction in enumerations enum_sep = "、", -- enumeration separator (replaces serial comma) multi_name_sep = "/", -- separator for regional name variants (e.g. 格魯吉亞/喬治亞) trans_sep = ",", -- separator for multiple t1/t2 translations paren_open = "(", paren_close = ")", semicolon = ";", -- multiple-description join (replaces "; ") former_name_of = "的舊稱", -- @former name of:X → "X的舊稱" } -- --------------------------------------------------------------------------- -- Placetype data (zh_ fields) -- --------------------------------------------------------------------------- -- Keys match the canonical English placetype keys in enwikt's placetype_data. -- Entries without zh_name will be looked up recursively through enwikt's -- `fallback` chain until a zh_name is found; if none found, the English name -- is displayed and a tracking category is added. export.zh_placetype_data = { -- ----------------------------------------------------------------------- -- Top-level polities -- ----------------------------------------------------------------------- ["country"] = { zh_name = "國家", zh_suffix = "國", }, ["city-state"] = { zh_name = "城邦", }, ["polity"] = { zh_name = "政體", }, ["empire"] = { zh_name = "帝國", zh_suffix = "帝國", }, ["kingdom"] = { zh_name = "王國", zh_suffix = "王國", }, ["republic"] = { zh_name = "共和國", zh_suffix = "共和國", }, ["federation"] = { zh_name = "聯邦", zh_suffix = "聯邦", }, ["confederation"] = { zh_name = "邦聯", zh_suffix = "邦聯", }, ["monarchy"] = { zh_name = "君主國", }, ["principality"] = { zh_name = "公國", zh_suffix = "公國", }, ["duchy"] = { zh_name = "公國", zh_suffix = "公國", }, ["caliphate"] = { zh_name = "哈里發國", }, ["khanate"] = { zh_name = "汗國", zh_suffix = "汗國", }, ["emirate"] = { zh_name = "酋長國", zh_suffix = "酋長國", }, ["bailiwick"] = { zh_name = "行政管轄區", }, ["captaincy"] = { zh_name = "都督區", }, ["microstate"] = { zh_name = "微型國家", }, ["unrecognized country"] = { zh_name = "未獲承認的國家", }, -- ----------------------------------------------------------------------- -- Constituent / pseudo-countries -- ----------------------------------------------------------------------- ["constituent country"] = { -- England, Scotland, Wales, Northern Ireland within the UK zh_name = "構成國", zh_suffix = "構成國", }, ["autonomous community"] = { -- Spain zh_name = "自治區", zh_suffix = "自治區", }, ["autonomous republic"] = { zh_name = "自治共和國", zh_suffix = "自治共和國", }, ["special administrative region"] = { -- China: Hong Kong, Macau zh_name = "特別行政區", zh_suffix = "特別行政區", }, ["dependent territory"] = { zh_name = "屬地", }, ["overseas territory"] = { zh_name = "海外屬地", }, ["Crown dependency"] = { zh_name = "王室屬地", }, ["crown dependency"] = { zh_name = "王室屬地", }, -- ----------------------------------------------------------------------- -- First-level administrative divisions -- ----------------------------------------------------------------------- ["state"] = { zh_name = "州", zh_suffix = "州", }, ["province"] = { zh_name = "省", zh_suffix = "省", }, ["territory"] = { zh_name = "地區", zh_suffix = "地區", }, ["region"] = { zh_name = "地區", -- fallback; specific regions use location data (e.g. 法國大區) zh_suffix = "地區", }, ["administrative region"] = { zh_name = "行政區", zh_suffix = "行政區", }, ["autonomous region"] = { zh_name = "自治區", zh_suffix = "自治區", }, ["autonomous oblast"] = { zh_name = "自治州", zh_suffix = "自治州", }, ["autonomous okrug"] = { zh_name = "自治區", zh_suffix = "自治區", }, ["autonomous province"] = { zh_name = "自治省", zh_suffix = "自治省", }, ["autonomous prefecture"] = { zh_name = "自治州", zh_suffix = "自治州", }, ["autonomous territory"] = { zh_name = "自治領地", }, ["autonomous territorial unit"] = { -- Moldova (Gagauzia, Transnistria) zh_name = "自治地域單位", }, ["federal subject"] = { -- Russia zh_name = "聯邦主體", }, ["voivodeship"] = { -- Poland zh_name = "省", zh_suffix = "省", }, ["oblast"] = { -- Russia/Ukraine zh_name = "州", zh_suffix = "州", }, ["okrug"] = { zh_name = "區", zh_suffix = "區", }, ["krai"] = { -- Russia zh_name = "邊疆區", zh_suffix = "邊疆區", }, ["raion"] = { -- Ukraine/Russia zh_name = "區", zh_suffix = "區", }, ["department"] = { -- France and other countries zh_name = "省", zh_suffix = "省", }, ["governorate"] = { zh_name = "省", zh_suffix = "省", }, ["canton"] = { -- Switzerland, Luxembourg etc. zh_name = "州", zh_suffix = "州", }, ["division"] = { zh_name = "省", zh_suffix = "省", }, ["periphery"] = { -- Greece zh_name = "大區", zh_suffix = "大區", }, ["collectivity"] = { -- France overseas zh_name = "集體", }, ["commonwealth"] = { -- Puerto Rico zh_name = "自由邦", }, ["constituent republic"] = { -- Yugoslavia/Russia zh_name = "加盟共和國", zh_suffix = "共和國", }, ["colony"] = { zh_name = "殖民地", }, ["viceroyalty"] = { zh_name = "副王轄地", }, ["regency"] = { zh_name = "縣", zh_suffix = "縣", }, -- ----------------------------------------------------------------------- -- Second-level and lower administrative divisions -- ----------------------------------------------------------------------- ["county"] = { zh_name = "縣", zh_suffix = "縣", }, ["district"] = { zh_name = "區", zh_suffix = "區", }, ["municipality"] = { zh_name = "市鎮", zh_suffix = "市鎮", }, ["commune"] = { zh_name = "市鎮", }, ["comune"] = { -- Italy/Switzerland zh_name = "市鎮", }, ["borough"] = { zh_name = "區", zh_suffix = "區", }, ["metropolitan borough"] = { zh_name = "都會區", zh_suffix = "都會區", }, ["London borough"] = { zh_name = "倫敦區", zh_suffix = "區", }, ["royal borough"] = { zh_name = "皇家自治市", }, ["county borough"] = { zh_name = "郡市", zh_suffix = "郡市", }, ["parish"] = { zh_name = "教區", zh_suffix = "教區", }, ["civil parish"] = { zh_name = "教區", zh_suffix = "教區", }, ["council area"] = { -- Scotland zh_name = "議會地區", zh_suffix = "議會地區", }, ["prefecture"] = { -- Japan: 縣(ken); France: 省治城市(handled by capital city logic) zh_name = "都道府縣", zh_suffix = "縣", }, ["prefecture-level city"] = { -- China zh_name = "地級市", zh_suffix = "市", }, ["county-level city"] = { -- China zh_name = "縣級市", zh_suffix = "市", }, ["subprovincial city"] = { -- China zh_name = "副省級市", zh_suffix = "市", }, ["direct-administered municipality"] = { -- China (Beijing, Shanghai, etc.) zh_name = "直轄市", zh_suffix = "市", }, ["special municipality"] = { -- Taiwan (Taipei, New Taipei etc.) zh_name = "直轄市", zh_suffix = "市", }, ["county-administered city"] = { -- Taiwan zh_name = "縣轄市", zh_suffix = "市", }, ["special ward"] = { -- Tokyo zh_name = "特別區", zh_suffix = "區", }, ["municipal district"] = { zh_name = "市轄區", zh_suffix = "區", }, ["subdistrict"] = { zh_name = "街道", zh_suffix = "街道", }, ["township"] = { zh_name = "鄉鎮", zh_suffix = "鄉鎮", }, ["rural township"] = { -- Taiwan zh_name = "鄉", zh_suffix = "鄉", }, ["urban township"] = { zh_name = "鎮", zh_suffix = "鎮", }, ["mountain indigenous township"] = { -- Taiwan zh_name = "山地原住民區", zh_suffix = "區", }, ["mountain indigenous district"] = { -- Taiwan zh_name = "山地原住民區", zh_suffix = "區", }, ["community development block"] = { -- India zh_name = "社區發展區", }, ["union territory"] = { -- India zh_name = "聯合地區", }, ["hromada"] = { -- Ukraine zh_name = "社區", zh_suffix = "社區", }, ["urban hromada"] = { zh_name = "城市社區", zh_suffix = "社區", }, ["rural hromada"] = { zh_name = "農村社區", zh_suffix = "社區", }, ["settlement hromada"] = { zh_name = "聚落社區", zh_suffix = "社區", }, ["regional unit"] = { -- Greece zh_name = "地區單位", zh_suffix = "地區", }, ["regional county municipality"] = { -- Quebec zh_name = "地區縣市", }, ["regional district"] = { -- Canada zh_name = "地區區", }, ["regional municipality"] = { zh_name = "地區市", }, ["local government area"] = { -- Australia zh_name = "地方政府區", }, ["local government district"] = { zh_name = "地方政府區", }, ["arrondissement"] = { zh_name = "區", zh_suffix = "區", }, ["cercle"] = { -- Mali zh_name = "縣", }, ["geopolitical zone"] = { -- Nigeria zh_name = "地緣政治區", }, ["enclave"] = { zh_name = "飛地", }, ["exclave"] = { zh_name = "外飛地", }, -- ----------------------------------------------------------------------- -- Capitals and seats -- ----------------------------------------------------------------------- ["capital city"] = { -- Default for most contexts; see zh_name_by_holonym_type for overrides zh_name = "首府", zh_name_by_holonym_type = { ["country"] = "首都", ["constituent country"] = "首都", ["microstate"] = "首都", ["city-state"] = "首都", ["state"] = "首府", ["territory"] = "首府", ["region"] = "首府", ["administrative region"] = "首府", ["autonomous region"] = "首府", ["province"] = "省會", ["autonomous province"] = "省會", ["county"] = "縣治", ["district"] = "區治", ["department"] = "省治", ["prefecture"] = "縣治", ["municipality"] = "市治", }, }, ["capital"] = { -- Alias for capital city; same logic zh_name = "首府", zh_name_by_holonym_type = { ["country"] = "首都", ["constituent country"] = "首都", ["state"] = "首府", ["territory"] = "首府", ["region"] = "首府", ["province"] = "省會", ["county"] = "縣治", ["district"] = "區治", ["department"] = "省治", }, }, ["state capital"] = { zh_name = "首府", }, ["provincial capital"] = { zh_name = "省會", }, ["regional capital"] = { zh_name = "首府", }, ["district capital"] = { zh_name = "區治", }, ["departmental capital"] = { zh_name = "省治", }, ["national capital"] = { zh_name = "首都", }, ["administrative capital"] = { zh_name = "行政首都", }, ["legislative capital"] = { zh_name = "立法首都", }, ["judicial capital"] = { zh_name = "司法首都", }, ["royal capital"] = { zh_name = "王都", }, ["co-capital"] = { zh_name = "共同首都", }, ["largest city"] = { zh_name = "最大城市", }, ["caplc"] = { zh_name = "首都和最大城市", }, ["non-city capital"] = { zh_name = "首府", }, ["county seat"] = { zh_name = "縣治", }, ["county town"] = { zh_name = "縣城", }, ["borough seat"] = { zh_name = "區治", }, ["parish seat"] = { zh_name = "教區治所", }, ["shire town"] = { zh_name = "郡鎮", }, ["administrative center"] = { zh_name = "行政中心", }, ["administrative centre"] = { zh_name = "行政中心", }, ["administrative headquarters"] = { zh_name = "行政總部", }, ["French prefecture"] = { -- A city that is the administrative capital of a French department zh_name = "省府", zh_name_by_holonym_type = { ["department"] = "省府", }, }, -- ----------------------------------------------------------------------- -- Cities and urban settlements -- ----------------------------------------------------------------------- ["city"] = { zh_name = "市", zh_suffix = "市", }, ["town"] = { zh_name = "鎮", zh_suffix = "鎮", }, ["village"] = { zh_name = "村", zh_suffix = "村", }, ["hamlet"] = { zh_name = "小村", }, ["locality"] = { zh_name = "村落", }, ["settlement"] = { zh_name = "聚落", }, ["populated place"] = { zh_name = "居民點", }, ["neighborhood"] = { zh_name = "街區", }, ["neighbourhood"] = { zh_name = "街區", }, ["suburb"] = { zh_name = "郊區", }, ["community"] = { zh_name = "社區", }, ["urban area"] = { zh_name = "城市地區", }, ["residential area"] = { zh_name = "住宅區", }, ["housing estate"] = { zh_name = "住宅區", }, ["planned community"] = { zh_name = "計劃社區", }, ["administrative village"] = { zh_name = "行政村", zh_suffix = "村", }, ["barangay"] = { -- Philippines zh_name = "里", }, ["barrio"] = { zh_name = "里", }, ["kibbutz"] = { zh_name = "集體農場", }, ["ghost town"] = { zh_name = "鬼城", }, ["unincorporated community"] = { zh_name = "非建制社區", }, ["census-designated place"] = { zh_name = "人口普查指定地區", }, ["military base"] = { zh_name = "軍事基地", }, ["research station"] = { zh_name = "研究站", }, ["home rule city"] = { zh_name = "自治市", }, ["federal district"] = { zh_name = "聯邦特區", zh_suffix = "特區", }, ["independent city"] = { zh_name = "獨立市", }, ["autonomous city"] = { zh_name = "自治市", }, ["port city"] = { zh_name = "港市", }, ["port town"] = { zh_name = "港鎮", }, ["market town"] = { zh_name = "市集鎮", }, ["resort town"] = { zh_name = "度假鎮", }, ["new town"] = { zh_name = "新市鎮", }, -- ----------------------------------------------------------------------- -- Geographic / natural features -- ----------------------------------------------------------------------- ["continent"] = { zh_name = "洲", zh_suffix = "洲", }, ["continental region"] = { zh_name = "大陸地區", }, ["continents and continental regions!"] = { zh_name = "大洲及大陸地區", }, ["ocean"] = { zh_name = "大洋", zh_suffix = "大洋", }, ["sea"] = { zh_name = "海", zh_suffix = "海", }, ["inland sea"] = { zh_name = "內陸海", }, ["marginal sea"] = { zh_name = "邊緣海", }, ["river"] = { zh_name = "河", zh_suffix = "河", }, ["lake"] = { zh_name = "湖", zh_suffix = "湖", }, ["reservoir"] = { zh_name = "水庫", zh_suffix = "水庫", }, ["stream"] = { zh_name = "溪", zh_suffix = "溪", }, ["creek"] = { zh_name = "溪", zh_suffix = "溪", }, ["bay"] = { zh_name = "灣", zh_suffix = "灣", }, ["gulf"] = { zh_name = "海灣", zh_suffix = "海灣", }, ["fjord"] = { zh_name = "峽灣", }, ["strait"] = { zh_name = "海峽", zh_suffix = "海峽", }, ["channel"] = { zh_name = "水道", zh_suffix = "水道", }, ["inlet"] = { zh_name = "海灣", zh_suffix = "灣", }, ["arm"] = { zh_name = "海灣", }, ["island"] = { zh_name = "島", zh_suffix = "島", }, ["islet"] = { zh_name = "小島", zh_suffix = "島", }, ["island group"] = { zh_name = "群島", }, ["archipelago"] = { zh_name = "群島", zh_suffix = "群島", }, ["atoll"] = { zh_name = "環礁", zh_suffix = "環礁", }, ["peninsula"] = { zh_name = "半島", zh_suffix = "半島", }, ["spit"] = { zh_name = "沙嘴", }, ["cape"] = { zh_name = "角", zh_suffix = "角", }, ["headland"] = { zh_name = "岬角", }, ["mountain"] = { zh_name = "山", zh_suffix = "山", }, ["hill"] = { zh_name = "丘", zh_suffix = "丘", }, ["mountain range"] = { zh_name = "山脈", zh_suffix = "山脈", }, ["mountain pass"] = { zh_name = "山口", }, ["plateau"] = { zh_name = "高原", zh_suffix = "高原", }, ["valley"] = { zh_name = "谷", zh_suffix = "谷", }, ["glen"] = { zh_name = "峽谷", }, ["volcano"] = { zh_name = "火山", zh_suffix = "火山", }, ["forest"] = { zh_name = "林地", zh_suffix = "林", }, ["moor"] = { zh_name = "荒原", }, ["desert"] = { zh_name = "沙漠", zh_suffix = "沙漠", }, ["beach"] = { zh_name = "海灘", zh_suffix = "海灘", }, ["spring"] = { zh_name = "泉", zh_suffix = "泉", }, ["hot spring"] = { zh_name = "溫泉", zh_suffix = "溫泉", }, ["tributary"] = { zh_name = "支流", }, ["distributary"] = { zh_name = "分流", }, -- ----------------------------------------------------------------------- -- Geographic / cultural regions (non-admin) -- ----------------------------------------------------------------------- ["geographic and cultural area"] = { zh_name = "地區", }, ["geographic region"] = { zh_name = "地理區域", }, ["historical region"] = { zh_name = "歷史地區", }, ["historic region"] = { zh_name = "歷史地區", }, ["cultural region"] = { zh_name = "文化地區", }, ["subregion"] = { zh_name = "次地區", }, ["macroregion"] = { zh_name = "大區域", }, -- ----------------------------------------------------------------------- -- Man-made structures -- ----------------------------------------------------------------------- ["airport"] = { zh_name = "機場", }, ["port"] = { zh_name = "港口", }, ["bridge"] = { zh_name = "橋", }, ["road"] = { zh_name = "道路", }, ["highway"] = { zh_name = "公路", }, ["motorway"] = { zh_name = "高速公路", }, ["street"] = { zh_name = "街道", }, ["building"] = { zh_name = "建築物", }, ["university"] = { zh_name = "大學", }, ["park"] = { zh_name = "公園", }, ["national park"] = { zh_name = "國家公園", }, ["metro station"] = { zh_name = "地鐵站", }, ["temple"] = { zh_name = "廟宇", }, ["castle"] = { zh_name = "城堡", }, -- ----------------------------------------------------------------------- -- Misc / hypothetical -- ----------------------------------------------------------------------- ["fictional location"] = { zh_name = "虛構地點", }, ["mythological location"] = { zh_name = "神話地點", }, ["star"] = { zh_name = "恆星", }, ["space station"] = { zh_name = "太空站", }, } -- --------------------------------------------------------------------------- -- Helper: look up zh_name for a placetype via fallback chain -- --------------------------------------------------------------------------- -- Looks up zh_name (and optionally zh_name_by_holonym_type) for a given -- placetype, recursively following the enwikt fallback chain if needed. -- Returns zh_name (string or table), zh_suffix (string or table or nil), -- zh_name_by_holonym_type (table or nil). -- `m_pt` should be the enwikt place-placetypes module (for fallback data). function export.get_zh_placetype_props(placetype, m_pt) local visited = {} local current = placetype while current and not visited[current] do visited[current] = true local zh = export.zh_placetype_data[current] if zh and zh.zh_name then return zh.zh_name, zh.zh_suffix, zh.zh_name_by_holonym_type end -- Follow enwikt fallback if m_pt then local ptdata = m_pt.placetype_data[current] if ptdata and ptdata.fallback then current = ptdata.fallback -- Strip FORMER/ANCIENT prefixes from synthetic fallbacks like "FORMER settlement" current = current:match("^FORMER (.+)$") or current:match("^ANCIENT (.+)$") or current else break end else break end end return nil, nil, nil end -- --------------------------------------------------------------------------- -- Helper: resolve zh_name given holonym context -- --------------------------------------------------------------------------- -- Given the zh_name (possibly a table of variants) and zh_name_by_holonym_type, -- and the holonym's placetype, return the appropriate Chinese name string. -- If multiple variants, returns the array (caller joins with zh_strings.multi_name_sep). function export.resolve_zh_name(zh_name, zh_name_by_holonym_type, holonym_placetype) if zh_name_by_holonym_type and holonym_placetype then local override = zh_name_by_holonym_type[holonym_placetype] if override then return override end end return zh_name end -- --------------------------------------------------------------------------- -- Helper: format zh_name for display (join variants with "/") -- --------------------------------------------------------------------------- function export.format_zh_name(zh_name_or_array) if type(zh_name_or_array) == "table" then return table.concat(zh_name_or_array, export.zh_strings.multi_name_sep) end return zh_name_or_array or "" end return export qkg2966h4g1njfj7o4gv9kf9warfdrl Wiktionary:啤酒馆/topic list 4 1705276 9759388 9759301 2026-05-14T12:20:19Z Cewbot 61744 [[User:Cewbot/log/20170915/configuration|生成議題列表:10個議題]] 9759388 wikitext text/x-wiki <!-- 本頁面由機器人自動更新。若要改進,請聯繫機器人操作者。 --> {| class="wikitable sortable mw-collapsible" style="float:left;" |- ! data-sort-type="number" style="font-weight: normal;" | <small>#</small> !! 💭 話題 !! <span title="發言數/發言人次 (實際上為計算簽名數)">💬</span> !! <span title="參與討論人數/發言人數">👥</span> !! 🙋 最新發言 !! data-sort-type="isoDate" | <span title="最後更新">🕒 <small>(UTC+8)</small></span> |- | style="text-align: right;" | 1 | style="max-width: 24em" | <small>[[:Wiktionary:啤酒馆#Subscribe_to_the_This_Month_in_Education_newsletter_-_learn_from_others_and_share_your_stories|Subscribe to the This Month in Education newsletter - learn from others and share your stories]]</small> | style="text-align: right;background-color: #fcc;" | 0 | style="text-align: right;background-color: #fcc;" | 0 | style="background-color: #ffd;" | | style="background-color: #ffd;" | |- | style="text-align: right;" | 2 | style="max-width: 24em" | <small>[[:Wiktionary:啤酒馆#Do_you_use_Wikidata_in_Wikimedia_sibling_projects?_Tell_us_about_your_experiences|Do you use Wikidata in Wikimedia sibling projects? Tell us about your experiences]]</small> | style="text-align: right;background-color: #fcc;" | 0 | style="text-align: right;background-color: #fcc;" | 0 | style="background-color: #ffd;" | | style="background-color: #ffd;" | |- | style="text-align: right;" | 3 | [[:Wiktionary:啤酒馆#重構:原始斯拉夫語/頁面|重構:原始斯拉夫語/頁面]] | style="text-align: right;" | 4 | style="text-align: right;" | 2 | style="background-color: #bbb;" | [[User:Chihunglu83|Chihunglu83]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-03-26T13:07:00.000Z" | 2026-03-26 <span style="color: blue;">21:07</span> |- | style="text-align: right;" | 4 | [[:Wiktionary:啤酒馆#缺失ISO693-3的語言|缺失ISO693-3的語言]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #bbb;" | [[User:Chihunglu83|Chihunglu83]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-03-27T03:12:00.000Z" | 2026-03-27 <span style="color: blue;">11:12</span> |- | style="text-align: right;" | 5 | [[:Wiktionary:啤酒馆#台灣分會2026年3月對話時間|台灣分會2026年3月對話時間]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #bbb;" | [[User:MediaWiki message delivery|<small style="word-wrap: break-word; word-break: break-all;">MediaWiki message delivery</small>]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-03-28T06:28:00.000Z" | 2026-03-28 <span style="color: blue;">14:28</span> |- | style="text-align: right;" | 6 | style="max-width: 24em" | <small>[[:Wiktionary:啤酒馆#Action_Required:_Update_templates/modules_for_electoral_maps_(Migrating_from_P1846_to_P14226)|Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226)]]</small> | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #bbb;" | [[User:MediaWiki message delivery|<small style="word-wrap: break-word; word-break: break-all;">MediaWiki message delivery</small>]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-04-03T17:11:00.000Z" | 2026-04-04 <span style="color: blue;">01:11</span> |- | style="text-align: right;" | 7 | [[:Wiktionary:啤酒馆#維基詞典:翻譯不充實|維基詞典:翻譯不充實]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #bbb;" | [[User:Intolerable situation|<small style="word-wrap: break-word; word-break: break-all;">Intolerable situation</small>]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-04-10T08:26:00.000Z" | 2026-04-10 <span style="color: blue;">16:26</span> |- | style="text-align: right;" | 8 | [[:Wiktionary:啤酒馆#Request_for_comment_(global_AI_policy)|Request for comment (global AI policy)]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #ddd;" | [[User:MediaWiki message delivery|<small style="word-wrap: break-word; word-break: break-all;">MediaWiki message delivery</small>]] | style="background-color: #ddd;" data-sort-type="isoDate" data-sort-value="2026-04-26T00:58:00.000Z" | 2026-04-26 <span style="color: blue;">08:58</span> |- | style="text-align: right;" | 9 | [[:Wiktionary:啤酒馆#台灣分會2026年4月對話時間|台灣分會2026年4月對話時間]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #ddd;" | [[User:MediaWiki message delivery|<small style="word-wrap: break-word; word-break: break-all;">MediaWiki message delivery</small>]] | style="background-color: #ddd;" data-sort-type="isoDate" data-sort-value="2026-04-27T22:52:00.000Z" | 2026-04-28 <span style="color: blue;">06:52</span> |- | style="text-align: right;" | 10 | [[:Wiktionary:啤酒馆#Template:place|Template:place]] | style="text-align: right;" | 3 | style="text-align: right;" | 2 | style="background-color: #eef;" | [[User:TongcyDai|TongcyDai]] | style="background-color: #eef;" data-sort-type="isoDate" data-sort-value="2026-05-14T06:20:00.000Z" | 2026-05-14 <span style="color: blue;">14:20</span> |} {| class="wikitable mw-collapsible mw-collapsed" style="float: left; margin-left: .5em;;{{#if:{{{no_time_legend|}}}|display:none;|}}" ! title="From the latest bot edit" | 發言更新圖例 |- | style="background-color: #efe;" | * 最近一小時內 |- | style="background-color: #eef;" | * 最近一日內 |- | | * 一週內 |- | style="background-color: #ddd;" | * 一個月內 |- | style="background-color: #bbb;" | * 逾一個月 |- ! 特殊狀態 |- | style="text-decoration: line-through" | 已移動至其他頁面<br />或完成討論之議題 |- ! 手動設定 |- | style="max-width: 12em;" | <small>當列表出現異常時,<br />請先檢查[[User:Cewbot/log/20170915/configuration|設定]]是否有誤</small> |- |} {{Clear}} qkx5zwdxc65l7rfk3yjvta72z6s2f1n 9760149 9759388 2026-05-15T06:21:02Z Cewbot 61744 [[User:Cewbot/log/20170915/configuration|生成議題列表:10個議題]] 9760149 wikitext text/x-wiki <!-- 本頁面由機器人自動更新。若要改進,請聯繫機器人操作者。 --> {| class="wikitable sortable mw-collapsible" style="float:left;" |- ! data-sort-type="number" style="font-weight: normal;" | <small>#</small> !! 💭 話題 !! <span title="發言數/發言人次 (實際上為計算簽名數)">💬</span> !! <span title="參與討論人數/發言人數">👥</span> !! 🙋 最新發言 !! data-sort-type="isoDate" | <span title="最後更新">🕒 <small>(UTC+8)</small></span> |- | style="text-align: right;" | 1 | style="max-width: 24em" | <small>[[:Wiktionary:啤酒馆#Subscribe_to_the_This_Month_in_Education_newsletter_-_learn_from_others_and_share_your_stories|Subscribe to the This Month in Education newsletter - learn from others and share your stories]]</small> | style="text-align: right;background-color: #fcc;" | 0 | style="text-align: right;background-color: #fcc;" | 0 | style="background-color: #ffd;" | | style="background-color: #ffd;" | |- | style="text-align: right;" | 2 | style="max-width: 24em" | <small>[[:Wiktionary:啤酒馆#Do_you_use_Wikidata_in_Wikimedia_sibling_projects?_Tell_us_about_your_experiences|Do you use Wikidata in Wikimedia sibling projects? Tell us about your experiences]]</small> | style="text-align: right;background-color: #fcc;" | 0 | style="text-align: right;background-color: #fcc;" | 0 | style="background-color: #ffd;" | | style="background-color: #ffd;" | |- | style="text-align: right;" | 3 | [[:Wiktionary:啤酒馆#重構:原始斯拉夫語/頁面|重構:原始斯拉夫語/頁面]] | style="text-align: right;" | 4 | style="text-align: right;" | 2 | style="background-color: #bbb;" | [[User:Chihunglu83|Chihunglu83]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-03-26T13:07:00.000Z" | 2026-03-26 <span style="color: blue;">21:07</span> |- | style="text-align: right;" | 4 | [[:Wiktionary:啤酒馆#缺失ISO693-3的語言|缺失ISO693-3的語言]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #bbb;" | [[User:Chihunglu83|Chihunglu83]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-03-27T03:12:00.000Z" | 2026-03-27 <span style="color: blue;">11:12</span> |- | style="text-align: right;" | 5 | [[:Wiktionary:啤酒馆#台灣分會2026年3月對話時間|台灣分會2026年3月對話時間]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #bbb;" | [[User:MediaWiki message delivery|<small style="word-wrap: break-word; word-break: break-all;">MediaWiki message delivery</small>]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-03-28T06:28:00.000Z" | 2026-03-28 <span style="color: blue;">14:28</span> |- | style="text-align: right;" | 6 | style="max-width: 24em" | <small>[[:Wiktionary:啤酒馆#Action_Required:_Update_templates/modules_for_electoral_maps_(Migrating_from_P1846_to_P14226)|Action Required: Update templates/modules for electoral maps (Migrating from P1846 to P14226)]]</small> | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #bbb;" | [[User:MediaWiki message delivery|<small style="word-wrap: break-word; word-break: break-all;">MediaWiki message delivery</small>]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-04-03T17:11:00.000Z" | 2026-04-04 <span style="color: blue;">01:11</span> |- | style="text-align: right;" | 7 | [[:Wiktionary:啤酒馆#維基詞典:翻譯不充實|維基詞典:翻譯不充實]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #bbb;" | [[User:Intolerable situation|<small style="word-wrap: break-word; word-break: break-all;">Intolerable situation</small>]] | style="background-color: #bbb;" data-sort-type="isoDate" data-sort-value="2026-04-10T08:26:00.000Z" | 2026-04-10 <span style="color: blue;">16:26</span> |- | style="text-align: right;" | 8 | [[:Wiktionary:啤酒馆#Request_for_comment_(global_AI_policy)|Request for comment (global AI policy)]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #ddd;" | [[User:MediaWiki message delivery|<small style="word-wrap: break-word; word-break: break-all;">MediaWiki message delivery</small>]] | style="background-color: #ddd;" data-sort-type="isoDate" data-sort-value="2026-04-26T00:58:00.000Z" | 2026-04-26 <span style="color: blue;">08:58</span> |- | style="text-align: right;" | 9 | [[:Wiktionary:啤酒馆#台灣分會2026年4月對話時間|台灣分會2026年4月對話時間]] | style="text-align: right;background-color: #fcc;" | 1 | style="text-align: right;background-color: #fcc;" | 1 | style="background-color: #ddd;" | [[User:MediaWiki message delivery|<small style="word-wrap: break-word; word-break: break-all;">MediaWiki message delivery</small>]] | style="background-color: #ddd;" data-sort-type="isoDate" data-sort-value="2026-04-27T22:52:00.000Z" | 2026-04-28 <span style="color: blue;">06:52</span> |- | style="text-align: right;" | 10 | [[:Wiktionary:啤酒馆#Template:place|Template:place]] | style="text-align: right;" | 3 | style="text-align: right;" | 2 | [[User:TongcyDai|TongcyDai]] | data-sort-type="isoDate" data-sort-value="2026-05-14T06:20:00.000Z" | 2026-05-14 <span style="color: blue;">14:20</span> |} {| class="wikitable mw-collapsible mw-collapsed" style="float: left; margin-left: .5em;;{{#if:{{{no_time_legend|}}}|display:none;|}}" ! title="From the latest bot edit" | 發言更新圖例 |- | style="background-color: #efe;" | * 最近一小時內 |- | style="background-color: #eef;" | * 最近一日內 |- | | * 一週內 |- | style="background-color: #ddd;" | * 一個月內 |- | style="background-color: #bbb;" | * 逾一個月 |- ! 特殊狀態 |- | style="text-decoration: line-through" | 已移動至其他頁面<br />或完成討論之議題 |- ! 手動設定 |- | style="max-width: 12em;" | <small>當列表出現異常時,<br />請先檢查[[User:Cewbot/log/20170915/configuration|設定]]是否有誤</small> |- |} {{Clear}} 2oy1ljtoc1pxosjdkvm3y2qafo6pkvi América do Norte 0 1763060 9759706 7656557 2026-05-15T00:41:39Z TongcyDai 53191 9759706 wikitext text/x-wiki ==加利西亞語== {{wp|gl:}} ===專有名詞=== {{gl-proper noun|f|head=[[América]] [[do]] [[norte|Norte]]}} # {{tcl|gl|北美洲|id=Q49}} ====相關詞彙==== * {{l|gl|América do Sur}} * {{l|gl|norteamericano}} ==葡萄牙語== {{wp|pt:}} [[Image:North America satellite globe.jpg|thumb|América do Norte]] ===專有名詞=== {{pt-proper noun|f|head=[[América]] [[do]] [[norte|Norte]]}} # {{tcl|pt|北美洲|id=Q49}} ====相關詞彙==== * {{l|pt|norte-americano}} ka04i5vtiypf2ggnmmyfqj3hjlxhg61 América do Sur 0 1763061 9759705 7069587 2026-05-15T00:41:18Z TongcyDai 53191 9759705 wikitext text/x-wiki ==加利西亞語== {{wp|gl:}} ===專有名詞=== {{gl-proper noun|f|head=[[América]] [[do]] [[sur|Sur]]}} # {{tcl|gl|南美洲|id=Q18}} ====相關詞彙==== * {{l|gl|América do Norte}} * {{l|gl|sudamericano}} 6y97l3yfam6did9m3nh3w4vb1hgxhnl Category:俄語 大洲和大洲地區 14 1776151 9759632 7085679 2026-05-14T23:24:31Z TongcyBot 83009 TongcyBot移动页面[[Category:俄語 大洲]]至[[Category:俄語 大洲及大陸地區]],不留重定向 7085679 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:日語 大洲和大洲地區 14 1839591 9759630 7161921 2026-05-14T23:22:51Z TongcyBot 83009 TongcyBot移动页面[[Category:日語 大洲]]至[[Category:日語 大洲及大陸地區]],不留重定向 7161921 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx 亜大陸 0 1839597 9759639 7880544 2026-05-14T23:30:44Z TongcyDai 53191 9759639 wikitext text/x-wiki ==日語== {{ja-kanjitab|あ|たい|りく|yomi=kanon}} ===詞源=== 源自{{com|ja|亜|大陸|tr1=a|tr2=tairiku|t1=次|t2=大陸|sort=たいりく}}。 ===發音=== {{ja-pron|あたいりく|acc=2|acc_ref=NHK}} ===名詞=== {{ja-noun|あたいりく}} # {{lb|ja|rare|地質學}} [[次大陸]] ===參考資料=== <references/> {{C|ja|地形}} 6slzajepzc1nl1vmlsadsqgkvckmt0f Asya 0 1868736 9759628 8658213 2026-05-14T23:20:52Z TongcyDai 53191 9759628 wikitext text/x-wiki ==英語== ===詞源=== {{bor+|en|ru|Ася}},{{m|ru|Анастасия|t=Ann}} 的非正式寵物形式。 ===專有名詞=== {{en-proper noun}} # {{given name|en|女性|from=俄羅斯|usage=現代}}。 ===異序詞=== * {{anagrams|en|a=aasy|Ayas|ayas|saya|yaas|AYAs|Asay}} ==宿霧語== ===詞源=== {{bor+|ceb|es|Asia}}。 ===發音=== * {{hyph|ceb|A|sya}} * {{ceb-IPA}} ===名詞=== {{ceb-noun}} # {{tcl|ceb|亞洲|id=Q48}} ==中比科爾語== ===詞源=== {{bor+|bcl|es|Asia}}。 ===發音=== * {{hyph|bcl|A|sya}} * {{bcl-IPA}} ===名詞=== {{head|bcl|名詞}} # {{tcl|bcl|亞洲|id=Q48}} ==北庫爾德語== [[Image:LocationAsia.svg|thumb|Asya]] ===詞源=== 最终源自{{der|kmr|grc|Ᾰ̓σῐ́ᾱ}}。 ===發音=== * {{kmr-IPA}} ===專有名詞=== {{kmr-proper noun|f|ar=ئاسیا}} # {{tcl|kmr|亞洲|id=Q48}} ====派生詞彙==== * {{l|kmr|asyayî}} ==他加祿語== ===其他形式=== * {{alt|tl|Asia}} ===詞源=== {{bor+|tl|es|Asia}}。 ===發音=== {{tl-pr}} ===專有名詞=== {{tl-proper noun|b=+}} # {{tcl|tl|亞洲|id=Q48}}<!-- Roman province is Asia --> ====同類詞彙==== {{list:continents/tl/Latn}} ====派生詞彙==== {{col3|tl|Gitnang Asya|Hilagang Asya|Kanlurang Asya|Silangang Asya|Timog Asya|Timog-Silangang Asya}} ====相關詞彙==== {{col3|tl|Asyano|Asyatiko|Asya-Pasipiko|Aproasyatiko}} ===異序詞=== * {{anagrams|tl|a=aasy|saya}} ==土耳其語== ===詞源=== {{inh+|tr|ota|آسیا|tr=asiya}},源自{{der|tr|fa-cls|آسیا|tr=āsiyā}},源自{{der|tr|ar|آسِيَا}},源自{{der|tr|grc|Ἀσῐ́ᾱ}},源自{{der|tr|gmy|𐀀𐀯𐀹𐀊|ts=aswijaː}},可能源自{{der|tr|hit|𒀸𒋗𒉿|tr=Aššuwa|t=安納托利亞西北部}},進一步的來源未明。 ===發音=== * {{IPA|tr|[ä́s̪.jä]}} * {{hyph|tr|As|ya}} ===專有名詞=== {{tr-proper noun}} # {{tcl|tr|亞洲|id=Q48}} # {{given name|tr|女性|地名}} ====變格==== {{tr-prop-v-aı}} ====派生詞彙==== {{col|tr|Avrasya<t:Eurasia>|Asyalı<t:Asian>|Asyalılık<t:Asianness>|Batı Asya<t:West Asia>|Doğu Asya<t:East Asia>|Güney Asya<t:South Asia>|Güneydoğu Asya<t:Southeast Asia>|İç Asya<t:Inner Asia>|Kuzey Asya<t:North Asia>|Kuzeydoğu Asya<t:Northeast Asia>|Küçük Asya<t:Asia Minor>|Orta Asya<t:Central Asia>}} j8t7ykbjika09awg00ykm2lh1nxhemh Àfrica 0 1965998 9759688 9532729 2026-05-15T00:30:21Z TongcyDai 53191 9759688 wikitext text/x-wiki {{also|africa|Africa|áfrica|africà|África}} ==加泰羅尼亞語== {{wp|ca:}} ===詞源=== {{rfe|ca}} ===發音=== * {{ca-IPA}} * {{audio|ca|LL-Q7026 (cat)-Unjoanqualsevol-Àfrica.wav|a=Catalonia}} ===專有名詞=== {{ca-prop|f}} # {{tcl|ca|非洲|id=Q15}} # {{tcl|ca|阿非利加|id=Q181238}} ====派生詞彙==== {{col3|ca|Àfrica Austral |Àfrica Central |Àfrica del Nord |Àfrica Occidental |Àfrica Oriental |Àfrica subsahariana |Sud-àfrica}} ====相關詞彙==== * {{l|ca|africà}} ====參見==== {{list:continents/ca}} ==利古里亞語== [[Image:550px-Africa_(orthographic_projection).png|thumb|right|''Poxiçión de l''''Àfrica''' into móndo'' — '''非洲'''在世界上的位置|200px]] ===詞源=== 源自{{der|lij|la|Āfrica}}。 ===發音=== * {{IPA|lij|/ˈafrika/}} ===專有名詞=== {{head|lij|專有名詞|g=f}} # {{tcl|lij|非洲|id=Q15}} ====相關詞彙==== * {{l|lij|africàn}} ==威尼斯語== ===詞源=== {{rfe|vec}} ===專有名詞=== {{wp|vec:}} {{head|vec|專有名詞|g=f}} # {{tcl|vec|非洲|id=Q15}} ====派生詞彙==== * {{l|vec|african}} 7tv7l8o6ux2st9vhqeniemae47gh6ma Sydamerika 0 1980147 9759640 7670073 2026-05-14T23:31:53Z TongcyDai 53191 9759640 wikitext text/x-wiki ==丹麥語== {{wp|da:}} ===詞源=== 源自 {{compound|da|syd|Amerika}}。 ===專有名詞=== {{head|da|專有名詞}} # {{tcl|da|南美洲|id=Q18}} ====相關詞彙==== * {{l|da|sydamerikaner|g=c|t=南美洲人}} * {{l|da|sydamerikansk|t=南美洲的}} ==瑞典語== {{wp|sv:}} ===詞源=== 源自 {{compound|sv|syd|Amerika}} ===發音=== * {{IPA|sv|/ˈsyːdaˌmeːrɪka/}} ===專有名詞=== {{head|sv|專有名詞|g=n}} # {{tcl|sv|南美洲|id=Q18}} ====相關詞彙==== * {{l|sv|sydamerikansk}} * {{l|sv|sydamerikanska}} ====參見==== * {{l|sv|Centralamerika}} * {{l|sv|Nordamerika}} {{list:continents/sv}} {{list:countries in South America/sv}} ===參考資料=== * {{R:svenska.se|saol}} * [https://web.archive.org/web/20241007090739/https://mesh.kib.ki.se/term/D013020/south-america Svensk MeSH] kwhkfhzk4on5oy2z3a4fr1k5ko1tm4z Category:泰米爾語 大洲和大洲地區 14 1986399 9759591 7352762 2026-05-14T22:29:07Z TongcyBot 83009 TongcyBot移动页面[[Category:泰米爾語 大洲]]至[[Category:泰米爾語 大洲及大陸地區]],不留重定向 7352762 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:皮特凱恩語 大洲和大洲地區 14 2052865 9759599 7439877 2026-05-14T22:29:52Z TongcyBot 83009 TongcyBot移动页面[[Category:皮特凱恩語 大洲]]至[[Category:皮特凱恩語 大洲及大陸地區]],不留重定向 7439877 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:希伯來語 大洲和大洲地區 14 2057429 9759569 7449629 2026-05-14T22:26:54Z TongcyBot 83009 TongcyBot移动页面[[Category:希伯來語 大洲]]至[[Category:希伯來語 大洲及大陸地區]],不留重定向 7449629 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:印地語 大洲和大洲地區 14 2105354 9759553 7522628 2026-05-14T22:25:39Z TongcyBot 83009 TongcyBot移动页面[[Category:印地語 大洲]]至[[Category:印地語 大洲及大陸地區]],不留重定向 7522628 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx User:Sayonzei/Kotori 2 2129326 9759748 9758906 2026-05-15T03:31:19Z Sayonzei 40728 9759748 wikitext text/x-wiki 精製鳥飼料:[[User:KotoriBot]] ==列表== ===法語=== *一個-er結尾的第一類法語動詞(連同本體)理論上可產出'''40'''個新詞條。<br> :{{col3|fr|}}<!--明日: ;需自行創建 :{{col3|fr|retransmigrer|redésentrelacer|retransfigurer|réobséder|désobséder|désamocher|réamocher|rebuissonner|débuissonner|recolmater|décolmater|désaffréter|redélester|réindividuer|recharrier|recémenter|décémenter|réabsolutiser|désabsolutiser|désacadémiser|désaccastiller|réaccompagner|désaccompagner|réagrémenter|désagrémenter|désalambiquer|désanalphabétiser|désanathématiser|réapostropher|réajourner|désajourner|redétremper|redogmatiser|dédogmatiser|réextirper|réintituler|resolutionner|resouscrire|resulfater|désulfater|réagenouiller|désagenouiller|débouillir|désaccomplir|réaccomplir|réaccoutrer}}--> ===加泰=== *一個-ar結尾的普通加泰羅尼亞語動詞(連同本體)理論上可產出'''44'''個新詞條。<br> :{{col3|ca|}} ===葡加利=== *一個-ar結尾的普通葡萄牙語動詞(連同本體)理論上可產出'''53'''個新詞條;但需注意,過去分詞可能不在accel範圍內。<br> :{{col3|pt|engatilhar|encarquilhar|enlanguescer|enlamear|encruzar|encruzilhar}}<!--明日:--> ===西=== *一個-ar結尾的普通西班牙語動詞(連同本體、不含合詞)理論上可產出'''58'''個新詞條。<br> :{{col3|es|engatillar}}<!--明日: ;需自行創建 :{{col3|es|bestializar|zollipar|zampuzar}}--> ===德語=== :{{col3|de|}} ===拉丁語=== :{{col3|la|}}<!--明日:--> :{{col3|la|}}<!--明日:--> ===意大利語=== :{{col3|it|}}<!--明日:--> ===俄語=== :{{col3|ru|}} :{{col3|ru|}} q556j9pzrrd3xuv2dulfooh9bqhucl7 Աֆրիկա 0 2140217 9759680 9607299 2026-05-15T00:21:04Z TongcyDai 53191 9759680 wikitext text/x-wiki ==亞美尼亞語== ===詞源=== {{rfe|hy}} ===發音=== {{hy-IPA|Ա՛ֆրիկա}} ===專有名詞=== {{wp|hy:}} {{hy-h|propn}} # {{tcl|hy|非洲|id=Q15}} ====變格==== {{hy-noun-ի-ներ|unc=on}} ====近義詞==== * {{l|hy|Ափրիկե}} {{qual|過時}} 7apkhhnf5sharmif5b5xbutbvuxcey2 Եվրասիա 0 2154115 9759683 9607251 2026-05-15T00:26:59Z TongcyDai 53191 9759683 wikitext text/x-wiki ==亞美尼亞語== ===詞源=== {{blend|hy|Եվրոպա|Ասիա}}。 ===發音=== {{hy-IPA|Եվրա՛սիա|Եվրասիա}} ===專有名詞=== {{hy-h|propn}} # {{tcl|hy|歐亞大陸|id=Q5401}} ====變格==== {{hy-noun-ի-ներ|unc=on}} ====派生詞彙==== * {{l|hy|եվրասիական}} eejcbci7f49wljb328cwfmnxrv43mu3 Ասիա 0 2154116 9759684 9607255 2026-05-15T00:28:17Z TongcyDai 53191 9759684 wikitext text/x-wiki {{also|Appendix:"asia"的變體}} ==亞美尼亞語== ===詞源=== 源自{{uder|hy|xcl|Ասիա}}。 ===發音=== {{hy-IPA|Ա՛սիա}} * {{audio|hy|Hy-Ասիա.ogg|a=Eastern Armenian}} ===專有名詞=== {{hy-h|propn}} # {{tcl|hy|亞洲|id=Q48}} # [[亞細亞]][[行省]] ====變格==== {{hy-noun-ի-ներ|unc=on}} ====相關詞彙==== {{col|hy|ասիական|ասիացի}} ===參考資料=== * {{R:hy:TUT|section=II.A.3|page=46}} ==古典亞美尼亞語== ===詞源=== {{bor+|xcl|grc|Ἀσία}}。 ===專有名詞=== {{xcl-proper noun}} # [[小亞細亞]] # {{tcl|xcl|Asia|id=Q48}} # {{tcl|xcl|Asia|id=Q210718|nolb=1}} ====變格==== {{xcl-noun-ա-unc||Ասի}} {{xcl-noun-ո-unc||Ասի}} ====派生詞彙==== {{col|xcl |ասիածին |ասիական |ասիապետ |ասիացի }} ====派生語彙==== * {{desc|hy|Ասիա}} ===參考資料=== * {{R:xcl:JB|vol=II|index=3|page=1504b}} * {{R:xcl:HHB|vol=II|part=II|page=27ab}} heqk3ya42008idk8k0tibthgh63ongw 9759685 9759684 2026-05-15T00:28:41Z TongcyDai 53191 /* 專有名詞 */ // Edit via Wikiplus 9759685 wikitext text/x-wiki {{also|Appendix:"asia"的變體}} ==亞美尼亞語== ===詞源=== 源自{{uder|hy|xcl|Ասիա}}。 ===發音=== {{hy-IPA|Ա՛սիա}} * {{audio|hy|Hy-Ասիա.ogg|a=Eastern Armenian}} ===專有名詞=== {{hy-h|propn}} # {{tcl|hy|亞洲|id=Q48}} # [[亞細亞]][[行省]] ====變格==== {{hy-noun-ի-ներ|unc=on}} ====相關詞彙==== {{col|hy|ասիական|ասիացի}} ===參考資料=== * {{R:hy:TUT|section=II.A.3|page=46}} ==古典亞美尼亞語== ===詞源=== {{bor+|xcl|grc|Ἀσία}}。 ===專有名詞=== {{xcl-proper noun}} # [[小亞細亞]] # {{tcl|xcl|亞洲|id=Q48}} # [[亞細亞]][[行省]] ====變格==== {{xcl-noun-ա-unc||Ասի}} {{xcl-noun-ո-unc||Ասի}} ====派生詞彙==== {{col|xcl |ասիածին |ասիական |ասիապետ |ասիացի }} ====派生語彙==== * {{desc|hy|Ասիա}} ===參考資料=== * {{R:xcl:JB|vol=II|index=3|page=1504b}} * {{R:xcl:HHB|vol=II|part=II|page=27ab}} ihe5l27awz7mhdvptbcc8eun96fgmp0 Category:烏克蘭語 大洲和大洲地區 14 2184868 9759594 7718030 2026-05-14T22:29:25Z TongcyBot 83009 TongcyBot移动页面[[Category:烏克蘭語 大洲]]至[[Category:烏克蘭語 大洲及大陸地區]],不留重定向 7718030 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:葡萄牙語 大洲和大洲地區 14 2197802 9759607 7811344 2026-05-14T22:30:26Z TongcyBot 83009 TongcyBot移动页面[[Category:葡萄牙語 大洲]]至[[Category:葡萄牙語 大洲及大陸地區]],不留重定向 7811344 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:西班牙語 大洲和大洲地區 14 2197809 9759609 7811353 2026-05-14T22:30:39Z TongcyBot 83009 TongcyBot移动页面[[Category:西班牙語 大洲]]至[[Category:西班牙語 大洲及大陸地區]],不留重定向 7811353 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:加泰羅尼亞語 大洲和大洲地區 14 2197815 9759546 7811361 2026-05-14T22:25:01Z TongcyBot 83009 TongcyBot移动页面[[Category:加泰羅尼亞語 大洲]]至[[Category:加泰羅尼亞語 大洲及大陸地區]],不留重定向 7811361 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:加利西亞語 大洲和大洲地區 14 2197822 9759545 7811371 2026-05-14T22:24:55Z TongcyBot 83009 TongcyBot移动页面[[Category:加利西亞語 大洲]]至[[Category:加利西亞語 大洲及大陸地區]],不留重定向 7811371 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:意大利語 大洲和大洲地區 14 2197830 9759574 7811379 2026-05-14T22:27:25Z TongcyBot 83009 TongcyBot移动页面[[Category:意大利語 大洲]]至[[Category:意大利語 大洲及大陸地區]],不留重定向 7811379 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:古愛爾蘭語 大洲和大洲地區 14 2197836 9759555 7811388 2026-05-14T22:25:52Z TongcyBot 83009 TongcyBot移动页面[[Category:古愛爾蘭語 大洲]]至[[Category:古愛爾蘭語 大洲及大陸地區]],不留重定向 7811388 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Oceanien 0 2197844 9759655 7811404 2026-05-14T23:51:32Z TongcyDai 53191 9759655 wikitext text/x-wiki {{also|océanien}} ==丹麥語== {{wp|da:}} ===詞源=== 經{{der|da|fr|Océanie}} 借入,源自{{der|da|grc|Ὠκεανός}}。 ===專有名詞=== {{head|da|專有名詞|g=n}} # {{tcl|da|大洋洲|id=Q538}} ==瑞典語== {{wp|sv:}} ===發音=== * {{IPA|sv|/ʊsɪˈɑːnɪɛn/}} ===專有名詞=== {{sv-proper noun|n}} # {{tcl|sv|大洋洲|id=Q538}} ====參見==== {{list:continents/sv}} {{list:countries in Oceania/sv}} ===參考資料=== * [https://mesh.kib.ki.se/term/D044349/oceania Svensk MeSH] lhvcx8c62oqefntucnj4upnal39kmuk 大洋州 0 2197848 9759651 7881662 2026-05-14T23:48:56Z TongcyDai 53191 9759651 wikitext text/x-wiki ==日語== {{ja-kanjitab|たい|よう|しゅう|yomi=o}} ===發音=== {{ja-pron|たいようしゅう|acc=3|acc_ref=DJR,DJS,NHK,SMK7}} ===專有名詞=== {{ja-pos|proper|たいようしゅう}} # {{tcl|ja|大洋洲|id=Q538}} ====近義詞==== * {{ja-r|^オセアニア}} {{c|ja|大洲|大洋洲}} 9satt5w7lmeddzf9vkr6voow6rhday8 9759652 9759651 2026-05-14T23:49:14Z TongcyDai 53191 9759652 wikitext text/x-wiki ==日語== {{ja-kanjitab|たい|よう|しゅう|yomi=o}} ===發音=== {{ja-pron|たいようしゅう|acc=3|acc_ref=DJR,DJS,NHK,SMK7}} ===專有名詞=== {{ja-pos|proper|たいようしゅう}} # {{tcl|ja|大洋洲|id=Q538}} ====近義詞==== * {{ja-r|^オセアニア}} ===參考資料=== <references/> 16ul944vjdw0g1jr4lxvo8bajpnlqxh Category:南非語 大洲和大洲地區 14 2197878 9759550 7811457 2026-05-14T22:25:27Z TongcyBot 83009 TongcyBot移动页面[[Category:南非語 大洲]]至[[Category:南非語 大洲及大陸地區]],不留重定向 7811457 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:愛沙尼亞語 大洲和大洲地區 14 2197886 9759576 7811465 2026-05-14T22:27:37Z TongcyBot 83009 TongcyBot移动页面[[Category:愛沙尼亞語 大洲]]至[[Category:愛沙尼亞語 大洲及大陸地區]],不留重定向 7811465 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:越南語 大洲和大洲地區 14 2197893 9759612 7811479 2026-05-14T22:30:54Z TongcyBot 83009 TongcyBot移动页面[[Category:越南語 大洲]]至[[Category:越南語 大洲及大陸地區]],不留重定向 7811479 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kernkraftwerke 0 2204859 9759454 9546506 2026-05-14T17:14:19Z Jeuwre 48455 發音 9759454 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈkɛʁnkʁaftˌvɛʁkə/}} * {{audio|de|De-Kernkraftwerke.ogg}} * {{audio|de|De-Kernkraftwerke2.ogg}} * {{hyph|de|Kern|kraft|wer|ke}} ===名詞=== {{head|de|名詞變格形}} # {{inflection of|de|Kernkraftwerk||nom//acc//gen|p}} 2zt40iomqbcwlpku6k1rvhrd5gttxo5 9759458 9759454 2026-05-14T17:15:11Z Jeuwre 48455 个小修改 9759458 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈkɛʁnkʁaftˌvɛʁkə/}} * {{audio|de|De-Kernkraftwerke.ogg}} * {{audio|de|De-Kernkraftwerke2.ogg|a=柏林}} * {{hyph|de|Kern|kraft|wer|ke}} ===名詞=== {{head|de|名詞變格形}} # {{inflection of|de|Kernkraftwerk||nom//acc//gen|p}} p93oel9ehkyldmpebb7v0n6syrdhsmu Kernkraftwerken 0 2204860 9759459 9546521 2026-05-14T17:16:59Z Jeuwre 48455 發音 9759459 wikitext text/x-wiki ==德語== ===發音=== * {{IPA|de|/ˈkɛʁnkʁaftˌvɛʁkn̩/|/ˈkɛʁnkʁaftˌvɛʁkŋ̩/}} * {{audio|de|De-Kernkraftwerken.ogg|a=柏林}} * {{audio|de|De-Kernkraftwerken2.ogg|a=柏林}} * {{hyph|de|Kern|kraft|wer|ken}} ===名詞=== {{head|de|名詞變格形|g=n}} # {{inflection of|de|Kernkraftwerk||dat|p}} 3bx113k19e7n0uozngr89myx7xw8luj Category:丹麥語 大洲和大洲地區 14 2207861 9759540 7831002 2026-05-14T22:24:17Z TongcyBot 83009 TongcyBot移动页面[[Category:丹麥語 大洲]]至[[Category:丹麥語 大洲及大陸地區]],不留重定向 7831002 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:北庫爾德語 大洲和大洲地區 14 2208257 9759548 7831406 2026-05-14T22:25:14Z TongcyBot 83009 TongcyBot移动页面[[Category:北庫爾德語 大洲]]至[[Category:北庫爾德語 大洲及大陸地區]],不留重定向 7831406 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:老撾語 大洲和大洲地區 14 2208270 9759603 7831419 2026-05-14T22:30:06Z TongcyBot 83009 TongcyBot移动页面[[Category:老撾語 大洲]]至[[Category:老撾語 大洲及大陸地區]],不留重定向 7831419 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:沃拉普克語 大洲和大洲地區 14 2208487 9759584 7831652 2026-05-14T22:28:30Z TongcyBot 83009 TongcyBot移动页面[[Category:沃拉普克語 大洲]]至[[Category:沃拉普克語 大洲及大陸地區]],不留重定向 7831652 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:烏茲別克語 大洲和大洲地區 14 2208547 9759596 7831713 2026-05-14T22:29:33Z TongcyBot 83009 TongcyBot移动页面[[Category:烏茲別克語 大洲]]至[[Category:烏茲別克語 大洲及大陸地區]],不留重定向 7831713 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:芬蘭語 大洲和大洲地區 14 2208554 9759604 7831720 2026-05-14T22:30:12Z TongcyBot 83009 TongcyBot移动页面[[Category:芬蘭語 大洲]]至[[Category:芬蘭語 大洲及大陸地區]],不留重定向 7831720 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:匈牙利語 大洲和大洲地區 14 2215188 9759547 7839483 2026-05-14T22:25:08Z TongcyBot 83009 TongcyBot移动页面[[Category:匈牙利語 大洲]]至[[Category:匈牙利語 大洲及大陸地區]],不留重定向 7839483 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:希臘語 大洲和大洲地區 14 2223298 9759571 7850848 2026-05-14T22:27:13Z TongcyBot 83009 TongcyBot移动页面[[Category:希臘語 大洲]]至[[Category:希臘語 大洲及大陸地區]],不留重定向 7850848 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx မီးယၢပ်ႈ 0 2248490 9760178 7892457 2026-05-15T09:44:22Z ~2026-29141-26 133384 9760178 wikitext text/x-wiki ==撣語== ===詞源=== {{bor+|shn|my|မီးယပ် နန၊}}。ါဋအဪဪ်ဖနခါ ါ ===發音=== {{shn-pron|မီး-ယၢပ်ႈ}} ===名詞=== {{shn-noun}} # [[月經]] ===參考資料=== * {{R:shn:Sao1995}} baxyn6cbn3mkgwlgdd6fd16q1wueehy Category:孟加拉語 大洲和大洲地區 14 2250548 9759563 7894776 2026-05-14T22:26:35Z TongcyBot 83009 TongcyBot移动页面[[Category:孟加拉語 大洲]]至[[Category:孟加拉語 大洲及大陸地區]],不留重定向 7894776 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx 亜州 0 2250800 9759631 8416361 2026-05-14T23:23:22Z TongcyDai 53191 9759631 wikitext text/x-wiki {{also|亞洲|亜洲}} ==日語== {{ja-kanjitab|あ|しゅう|yomi=o|kyu=亞洲|alt=亜洲:過時}} ===詞源=== {{ja-daiyouji|州|洲|sort=あしゅう}}。 ===發音=== {{ja-pron|あしゅう}} ===專有名詞=== {{ja-pos|proper|あしゅう|hhira=あしう}} # {{tcl|ja|亞洲|id=Q48}} #: {{syn|ja|アジア}} e9qden6qujwvbpe1l8mliuxjsiuf7dn Category:白俄羅斯語 大洲和大洲地區 14 2334296 9759598 7984466 2026-05-14T22:29:46Z TongcyBot 83009 TongcyBot移动页面[[Category:白俄羅斯語 大洲]]至[[Category:白俄羅斯語 大洲及大陸地區]],不留重定向 7984466 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:亞美尼亞語 大洲和大洲地區 14 2334302 9759541 7984473 2026-05-14T22:24:23Z TongcyBot 83009 TongcyBot移动页面[[Category:亞美尼亞語 大洲]]至[[Category:亞美尼亞語 大洲及大陸地區]],不留重定向 7984473 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:馬其頓語 大洲和大洲地區 14 2336939 9759624 7988040 2026-05-14T23:14:48Z TongcyBot 83009 TongcyBot移动页面[[Category:馬其頓語 大洲]]至[[Category:馬其頓語 大洲及大陸地區]],不留重定向 7988040 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:波蘭語 大洲和大洲地區 14 2337078 9759589 7988180 2026-05-14T22:28:55Z TongcyBot 83009 TongcyBot移动页面[[Category:波蘭語 大洲]]至[[Category:波蘭語 大洲及大陸地區]],不留重定向 7988180 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:泰盧固語 大洲和大洲地區 14 2338432 9759590 7989790 2026-05-14T22:29:01Z TongcyBot 83009 TongcyBot移动页面[[Category:泰盧固語 大洲]]至[[Category:泰盧固語 大洲及大陸地區]],不留重定向 7989790 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:利古里亞語 大洲和大洲地區 14 2479811 9759544 8312047 2026-05-14T22:24:41Z TongcyBot 83009 TongcyBot移动页面[[Category:利古里亞語 大洲]]至[[Category:利古里亞語 大洲及大陸地區]],不留重定向 8312047 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:阿斯圖里亞斯語 大洲和大洲地區 14 2479816 9759614 8312052 2026-05-14T22:31:06Z TongcyBot 83009 TongcyBot移动页面[[Category:阿斯圖里亞斯語 大洲]]至[[Category:阿斯圖里亞斯語 大洲及大陸地區]],不留重定向 8312052 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:書面挪威語 大洲和大洲地區 14 2524273 9759580 8377853 2026-05-14T22:28:04Z TongcyBot 83009 TongcyBot移动页面[[Category:書面挪威語 大洲]]至[[Category:書面挪威語 大洲及大陸地區]],不留重定向 8377853 wikitext text/x-wiki {{autocat}} slf0sbtwkqpj1yctqc9wbjjf1tuf7jr Category:瑞典語 大洲和大洲地區 14 2524548 9759597 8378319 2026-05-14T22:29:40Z TongcyBot 83009 TongcyBot移动页面[[Category:瑞典語 大洲]]至[[Category:瑞典語 大洲及大陸地區]],不留重定向 8378319 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:新挪威語 大洲和大洲地區 14 2524715 9759579 8378506 2026-05-14T22:27:58Z TongcyBot 83009 TongcyBot移动页面[[Category:新挪威語 大洲]]至[[Category:新挪威語 大洲及大陸地區]],不留重定向 8378506 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:格魯吉亞語 大洲和大洲地區 14 2532890 9759582 8388086 2026-05-14T22:28:18Z TongcyBot 83009 TongcyBot移动页面[[Category:格魯吉亞語 大洲]]至[[Category:格魯吉亞語 大洲及大陸地區]],不留重定向 8388086 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:土耳其語 大洲和大洲地區 14 2670551 9759558 8589058 2026-05-14T22:26:10Z TongcyBot 83009 TongcyBot移动页面[[Category:土耳其語 大洲]]至[[Category:土耳其語 大洲及大陸地區]],不留重定向 8589058 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:塔吉克語 大洲和大洲地區 14 2670651 9759559 8589165 2026-05-14T22:26:17Z TongcyBot 83009 TongcyBot移动页面[[Category:塔吉克語 大洲]]至[[Category:塔吉克語 大洲及大陸地區]],不留重定向 8589165 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:夏威夷語 大洲和大洲地區 14 2670802 9759560 8589342 2026-05-14T22:26:23Z TongcyBot 83009 TongcyBot移动页面[[Category:夏威夷語 大洲]]至[[Category:夏威夷語 大洲及大陸地區]],不留重定向 8589342 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:朝鮮語 大洲和大洲地區 14 2714663 9759581 8643103 2026-05-14T22:28:11Z TongcyBot 83009 TongcyBot移动页面[[Category:朝鮮語 大洲]]至[[Category:朝鮮語 大洲及大陸地區]],不留重定向 8643103 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:愛爾蘭語 大洲和大洲地區 14 2715148 9759577 8643671 2026-05-14T22:27:44Z TongcyBot 83009 TongcyBot移动页面[[Category:愛爾蘭語 大洲]]至[[Category:愛爾蘭語 大洲及大陸地區]],不留重定向 8643671 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:桑戈語 大洲和大洲地區 14 2719992 9759583 8649300 2026-05-14T22:28:24Z TongcyBot 83009 TongcyBot移动页面[[Category:桑戈語 大洲]]至[[Category:桑戈語 大洲及大陸地區]],不留重定向 8649300 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:烏爾都語 大洲和大洲地區 14 2725152 9759595 8656913 2026-05-14T22:29:27Z TongcyBot 83009 TongcyBot移动页面[[Category:烏爾都語 大洲]]至[[Category:烏爾都語 大洲及大陸地區]],不留重定向 8656913 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:中比科爾語 大洲和大洲地區 14 2728772 9759539 8661695 2026-05-14T22:24:11Z TongcyBot 83009 TongcyBot移动页面[[Category:中比科爾語 大洲]]至[[Category:中比科爾語 大洲及大陸地區]],不留重定向 8661695 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:他加祿語 大洲和大洲地區 14 2728905 9759542 8661830 2026-05-14T22:24:29Z TongcyBot 83009 TongcyBot移动页面[[Category:他加祿語 大洲]]至[[Category:他加祿語 大洲及大陸地區]],不留重定向 8661830 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx ᦵᦝᧀᧈᦵᦋᦲᧁᧈ 0 2751484 9759686 8690444 2026-05-15T00:28:58Z TongcyDai 53191 9759686 wikitext text/x-wiki ==傣仂語== ===發音=== {{khb-pron|ᦵᦝᧀᧈ-ᦵᦋᦲᧁᧈ}} ===專有名詞=== {{khb-proper noun}} # {{tcl|khb|非洲|id=Q15}} ===延伸閱讀=== * {{R:khb:Hanna}} 88arr2xa8jm0eu2mk1dmtr8nmaf1dit Category:傣仂語 大洲和大洲地區 14 2751485 9759543 8690445 2026-05-14T22:24:35Z TongcyBot 83009 TongcyBot移动页面[[Category:傣仂語 大洲]]至[[Category:傣仂語 大洲及大陸地區]],不留重定向 8690445 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx User:TongcyDai/沙盒/12 2 2755438 9759626 8713262 2026-05-14T23:18:01Z TongcyDai 53191 9759626 wikitext text/x-wiki [[Asya]] [[Oceanien]] [[Australien]] [[Sydamerika]] [[Աֆրիկա]] [[Եվրասիա]] [[Ասիա]] [[Asya]] [[ᦵᦝᧀᧈᦵᦋᦲᧁᧈ]] [[Àfrica]] [[América]] [[América do Sur]] [[América do Norte]] [[Oceanía]] [[América Central]] [[Euràsia]] [[Ausztrália]] [[Dél-Amerika]] [[Eurázsia]] [[Európa]] [[Óceánia]] [[Ázsia]] [[Antarktika]] [[Efrîqa]] [[Afrîka]] [[Asya]] [[Oseania]] [[Noord-Amerika]] [[Antarktika]] [[Eùropa]] [[ऑस्ट्रेलिया]] [[युरोप]] [[अंटार्कटिका]] [[अफ़्रीका]] [[यूरोप]] [[Ասիա]] [[Afraicc]] [[Түндүк Америка]] [[Ýewropa]] [[Avrupa]] [[Antarktika]] [[Asya]] [[Avustralya]] [[Аврупо]] [[Африқо]] [[ʻAukekulelia]] [[ʻĀkia]] [[America del Nòrd]] [[America del Sud]] [[Asya]] [[यूरोप]] [[אירופה]] [[אפריקה]] [[Βόρεια Αμερική]] [[Ευρώπη]] [[Ευρασία]] [[Ασία]] [[Ωκεανία]] [[Αφρική]] [[America del Nord]] [[America del sud]] [[Nordamerica]] [[אַפֿריקע]] [[Ameerika]] [[Aafrika]] [[Euraasia]] [[Euroopa]] [[Aasia]] [[Lõunamanner]] [[Antarktis]] [[Põhja-Ameerika]] [[Okeaania]] [[Antarktika]] [[Eoraip]] [[Afraic]] [[Avstralija]] [[Evropa]] [[Antarktika]] [[Azija]] [[Oseania]] [[Antarktika]] [[Sør-Amerika]] [[Oseania]] [[Sør-Amerika]] [[Antarktika]] [[유라시아]] [[아시아]] [[구라파]] [[유럽]] [[오세아니아]] [[აზია]] [[ევროპა]] [[აფრიკა]] [[Aêropa]] [[Afrîka]] [[Merop]] [[Frikop]] [[Seanop]] [[Siyop]] [[Evropa]] [[Amérique du Nord]] [[Amérique du Sud]] [[آمریکا]] [[امریکا]] [[آفریقا]] [[Eurazja]] [[Azja]] [[Ameryka Południowa]] [[అమెరికా]] [[ఆఫ్రికా]] [[அவுஸ்திரேலியா]] [[ஆப்பிரிக்கா]] [[ஐரோப்பா]] [[ออสเตรเลีย]] [[ยุโรป]] [[آسيا]] [[امریکا]] [[آسٹریلیا]] [[ایشیا]] [[Shimoliy Amerika]] [[Janubiy Amerika]] [[Okeaniya]] [[Yevrosiyo]] [[Antarktida]] [[Sydamerika]] [[Oceanien]] [[Antarktis]] [[Australien]] [[Аўстралія]] [[Афрыка]] [[Еўропа]] [[Australija]] [[Azija]] [[ອາຟຣິກກາ]] [[ເອີຣົບ]] [[ເອີລົບ]] [[ອາຊີ]] [[Etelä-Amerikka]] [[Aasia]] [[Pohjois-Amerikka]] [[Amerikka]] [[Oseania]] [[Afrikka]] [[Euraasia]] [[Antarktis]] [[Europpa]] [[Amerikka]] [[Afrikka]] [[Oceânia]] [[Eurásia]] [[América do Norte]] [[América Central]] [[América do Sul]] [[América]] [[Австрали]] [[Европ]] [[Африк]] [[Америк]] [[Ази]] [[América Meridional]] [[América Central]] [[Oceanía]] [[Antártida]] [[Turai]] [[Afirka]] [[Nam Mĩ]] [[Á châu]] [[Phi châu]] [[Bắc Mĩ]] [[Á Tế Á]] [[إفريقيا]] [[أوروبا]] [[أمريكا]] [[أستراليا]] [[آسيا]] [[América]] [[Evropa]] [[Северна Америка]] [[Азија]] [[Океанија]] [[Јужна Америка]] 8cspc0im1bmmafdig4ndmrnkqoalqog Category:宿霧語 大洲和大洲地區 14 2875797 9759565 8923638 2026-05-14T22:26:40Z TongcyBot 83009 TongcyBot移动页面[[Category:宿霧語 大洲]]至[[Category:宿霧語 大洲及大陸地區]],不留重定向 8923638 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:北薩米語 大洲和大洲地區 14 2893063 9759549 8947601 2026-05-14T22:25:21Z TongcyBot 83009 TongcyBot移动页面[[Category:北薩米語 大洲]]至[[Category:北薩米語 大洲及大陸地區]],不留重定向 8947601 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Antarktíka 0 2915457 9759642 8983373 2026-05-14T23:33:57Z TongcyDai 53191 9759642 wikitext text/x-wiki {{also|Antarktika|Antarktikā}} ==冰島語== {{wp|is:}} ===專有名詞=== {{is-proper noun|@@}} # {{tcl|is|南極洲|id=Q51}} #: {{syn|is|Suðurskautslandið}} ====變格==== {{is-ndecl|f}} rlzfv4g6z71n15ts4u3t3alyat6tmia Category:奧克語 大洲和大洲地區 14 2953459 9759561 9049197 2026-05-14T22:26:29Z TongcyBot 83009 TongcyBot移动页面[[Category:奧克語 大洲]]至[[Category:奧克語 大洲及大陸地區]],不留重定向 9049197 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:法語 大洲和大洲地區 14 2954327 9759586 9050370 2026-05-14T22:28:43Z TongcyBot 83009 TongcyBot移动页面[[Category:法語 大洲]]至[[Category:法語 大洲及大陸地區]],不留重定向 9050370 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:上索布語 大洲和大洲地區 14 3026744 9759629 9141428 2026-05-14T23:22:30Z TongcyBot 83009 TongcyBot移动页面[[Category:上索布語 大洲]]至[[Category:上索布語 大洲及大陸地區]],不留重定向 9141428 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:下索布語 大洲和大洲地區 14 3026746 9759538 9141430 2026-05-14T22:24:08Z TongcyBot 83009 TongcyBot移动页面[[Category:下索布語 大洲]]至[[Category:下索布語 大洲及大陸地區]],不留重定向 9141430 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:斯洛文尼亞語 大洲和大洲地區 14 3026747 9759578 9141432 2026-05-14T22:27:51Z TongcyBot 83009 TongcyBot移动页面[[Category:斯洛文尼亞語 大洲]]至[[Category:斯洛文尼亞語 大洲及大陸地區]],不留重定向 9141432 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:立陶宛語 大洲和大洲地區 14 3026748 9759601 9141433 2026-05-14T22:29:57Z TongcyBot 83009 TongcyBot移动页面[[Category:立陶宛語 大洲]]至[[Category:立陶宛語 大洲及大陸地區]],不留重定向 9141433 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Module:Place/data/sandbox 828 3034684 9759465 9758655 2026-05-14T20:13:25Z Xiplus 25402 已保护“[[Module:Place/data/sandbox]]”:​高風險模板:115640引用​([编辑权限=仅允许自动确认用户](无限期)​[移动权限=仅允许自动确认用户](无限期)) 9758655 Scribunto text/plain local export = {} --[==[ Chinese localization data for [[Module:place]]. Fields per placetype entry: zh_name -- Chinese display name in definition sentences (string or {string,...}) zh_suffix -- Chinese suffix for :pref/:suf holonym modifiers; if nil, falls back to zh_name zh_name_by_holonym_type -- context-sensitive Chinese name keyed by the first holonym's placetype; -- used when the correct term depends on what the place is capital/seat of zh_preposition -- "in" (→ 位於…的) or "of" (→ …的); nil means inherit from enwikt `preposition` field -- Only needed when the Chinese preposition differs from the English one. Multiple-regional-variant names are stored as arrays {"primary", "alt1", "alt2",...}. - The first element is the canonical/primary form used in categories. - All elements are displayed, joined with "/" in holonym context. For zh_suffix with regional variants, use the same array convention. ]==] -- --------------------------------------------------------------------------- -- Placetype qualifier translations -- --------------------------------------------------------------------------- -- Maps English qualifier words (as canonicalized in placetype_qualifiers) to -- their Chinese equivalents. Used when displaying qualified placetypes such as -- "前城市"、"古代王國" etc. export.zh_qualifiers = { -- Historicity ["former"] = "前", ["ancient"] = "古代", ["medieval"] = "中世紀", ["historical"] = "歷史上的", ["extinct"] = "已消亡的", ["abandoned"] = "廢棄的", ["deserted"] = "廢棄的", ["ruined"] = "廢墟", -- Hypothetical ["fictional"] = "虛構的", ["mythological"]= "神話中的", -- Size ["small"] = "小", ["large"] = "大", ["major"] = "主要的", ["minor"] = "次要的", ["tiny"] = "微小的", ["huge"] = "龐大的", -- Coastal/water ["coastal"] = "沿海", ["inland"] = "內陸", ["maritime"] = "濱海", ["riverine"] = "沿河", -- Direction (adjectival use before holonym) ["northern"] = "北部", ["southern"] = "南部", ["eastern"] = "東部", ["western"] = "西部", ["central"] = "中部", ["northeastern"]= "東北部", ["northwestern"]= "西北部", ["southeastern"]= "東南部", ["southwestern"]= "西南部", -- Status ["autonomous"] = "自治", ["independent"] = "獨立的", ["unincorporated"] = "非建制", ["incorporated"] = "建制", ["rural"] = "農村", ["urban"] = "城市", ["suburban"] = "郊區", ["industrial"] = "工業", -- Terrain ["mountainous"] = "山地", ["volcanic"] = "火山", } -- --------------------------------------------------------------------------- -- Extra-info label translations -- --------------------------------------------------------------------------- -- Maps the enwikt extra-info parameter names to Chinese display labels. -- Used when appending "首都:X"、"最大城市:X" etc. to definitions. export.zh_extra_info_labels = { ["capital"] = "首都", -- overridden for non-country holonyms; see zh_capital_label_by_holonym ["largest city"] = "最大城市", ["capital and largest city"] = "首都和最大城市", ["official"] = "官方名稱", ["modern"] = "現代名稱", ["full"] = "全稱", ["seat"] = "治所", ["county seat"] = "縣治", ["borough seat"] = "區治", ["parish seat"] = "教區治所", ["shire town"] = "郡鎮", } -- Context-sensitive label for `capital=` parameter, keyed by entry placetype. -- When a capital-bearing placetype is identified, we look up the holonym type -- to determine the correct Chinese term for the capital. Falls back to "首都". export.zh_capital_label_by_holonym_type = { ["country"] = "首都", ["constituent country"]= "首都", ["state"] = "首府", ["province"] = "省會", ["territory"] = "首府", ["region"] = "首府", ["administrative region"] = "首府", ["autonomous region"] = "首府", ["county"] = "縣治", ["district"] = "區治", ["department"] = "省治", ["prefecture"] = "縣治", } -- --------------------------------------------------------------------------- -- Special-syntax string translations -- --------------------------------------------------------------------------- -- Miscellaneous fixed strings used in building definition sentences. export.zh_strings = { in_preposition = "位於", -- prepended for "in" placetypes -- "of" placetypes use no prepositional prefix; holonym directly precedes 的 de_particle = "的", -- possessive/locative particle and_conj = "和", -- final conjunction in enumerations enum_sep = "、", -- enumeration separator (replaces serial comma) multi_name_sep = "/", -- separator for regional name variants (e.g. 格魯吉亞/喬治亞) trans_sep = ",", -- separator for multiple t1/t2 translations paren_open = "(", paren_close = ")", semicolon = ";", -- multiple-description join (replaces "; ") former_name_of = "的舊稱", -- @former name of:X → "X的舊稱" } -- --------------------------------------------------------------------------- -- Placetype data (zh_ fields) -- --------------------------------------------------------------------------- -- Keys match the canonical English placetype keys in enwikt's placetype_data. -- Entries without zh_name will be looked up recursively through enwikt's -- `fallback` chain until a zh_name is found; if none found, the English name -- is displayed and a tracking category is added. export.zh_placetype_data = { -- ----------------------------------------------------------------------- -- Top-level polities -- ----------------------------------------------------------------------- ["country"] = { zh_name = "國家", zh_suffix = "國", }, ["city-state"] = { zh_name = "城邦", }, ["polity"] = { zh_name = "政體", }, ["empire"] = { zh_name = "帝國", zh_suffix = "帝國", }, ["kingdom"] = { zh_name = "王國", zh_suffix = "王國", }, ["republic"] = { zh_name = "共和國", zh_suffix = "共和國", }, ["federation"] = { zh_name = "聯邦", zh_suffix = "聯邦", }, ["confederation"] = { zh_name = "邦聯", zh_suffix = "邦聯", }, ["monarchy"] = { zh_name = "君主國", }, ["principality"] = { zh_name = "公國", zh_suffix = "公國", }, ["duchy"] = { zh_name = "公國", zh_suffix = "公國", }, ["caliphate"] = { zh_name = "哈里發國", }, ["khanate"] = { zh_name = "汗國", zh_suffix = "汗國", }, ["emirate"] = { zh_name = "酋長國", zh_suffix = "酋長國", }, ["bailiwick"] = { zh_name = "行政管轄區", }, ["captaincy"] = { zh_name = "都督區", }, ["microstate"] = { zh_name = "微型國家", }, ["unrecognized country"] = { zh_name = "未獲承認的國家", }, -- ----------------------------------------------------------------------- -- Constituent / pseudo-countries -- ----------------------------------------------------------------------- ["constituent country"] = { -- England, Scotland, Wales, Northern Ireland within the UK zh_name = "構成國", zh_suffix = "構成國", }, ["autonomous community"] = { -- Spain zh_name = "自治區", zh_suffix = "自治區", }, ["autonomous republic"] = { zh_name = "自治共和國", zh_suffix = "自治共和國", }, ["special administrative region"] = { -- China: Hong Kong, Macau zh_name = "特別行政區", zh_suffix = "特別行政區", }, ["dependent territory"] = { zh_name = "屬地", }, ["overseas territory"] = { zh_name = "海外屬地", }, ["Crown dependency"] = { zh_name = "王室屬地", }, ["crown dependency"] = { zh_name = "王室屬地", }, -- ----------------------------------------------------------------------- -- First-level administrative divisions -- ----------------------------------------------------------------------- ["state"] = { zh_name = "州", zh_suffix = "州", }, ["province"] = { zh_name = "省", zh_suffix = "省", }, ["territory"] = { zh_name = "地區", zh_suffix = "地區", }, ["region"] = { zh_name = "地區", -- fallback; specific regions use location data (e.g. 法國大區) zh_suffix = "地區", }, ["administrative region"] = { zh_name = "行政區", zh_suffix = "行政區", }, ["autonomous region"] = { zh_name = "自治區", zh_suffix = "自治區", }, ["autonomous oblast"] = { zh_name = "自治州", zh_suffix = "自治州", }, ["autonomous okrug"] = { zh_name = "自治區", zh_suffix = "自治區", }, ["autonomous province"] = { zh_name = "自治省", zh_suffix = "自治省", }, ["autonomous prefecture"] = { zh_name = "自治州", zh_suffix = "自治州", }, ["autonomous territory"] = { zh_name = "自治領地", }, ["autonomous territorial unit"] = { -- Moldova (Gagauzia, Transnistria) zh_name = "自治地域單位", }, ["federal subject"] = { -- Russia zh_name = "聯邦主體", }, ["voivodeship"] = { -- Poland zh_name = "省", zh_suffix = "省", }, ["oblast"] = { -- Russia/Ukraine zh_name = "州", zh_suffix = "州", }, ["okrug"] = { zh_name = "區", zh_suffix = "區", }, ["krai"] = { -- Russia zh_name = "邊疆區", zh_suffix = "邊疆區", }, ["raion"] = { -- Ukraine/Russia zh_name = "區", zh_suffix = "區", }, ["department"] = { -- France and other countries zh_name = "省", zh_suffix = "省", }, ["governorate"] = { zh_name = "省", zh_suffix = "省", }, ["canton"] = { -- Switzerland, Luxembourg etc. zh_name = "州", zh_suffix = "州", }, ["division"] = { zh_name = "省", zh_suffix = "省", }, ["periphery"] = { -- Greece zh_name = "大區", zh_suffix = "大區", }, ["collectivity"] = { -- France overseas zh_name = "集體", }, ["commonwealth"] = { -- Puerto Rico zh_name = "自由邦", }, ["constituent republic"] = { -- Yugoslavia/Russia zh_name = "加盟共和國", zh_suffix = "共和國", }, ["colony"] = { zh_name = "殖民地", }, ["viceroyalty"] = { zh_name = "副王轄地", }, ["regency"] = { zh_name = "縣", zh_suffix = "縣", }, -- ----------------------------------------------------------------------- -- Second-level and lower administrative divisions -- ----------------------------------------------------------------------- ["county"] = { zh_name = "縣", zh_suffix = "縣", }, ["district"] = { zh_name = "區", zh_suffix = "區", }, ["municipality"] = { zh_name = "市鎮", zh_suffix = "市鎮", }, ["commune"] = { zh_name = "市鎮", }, ["comune"] = { -- Italy/Switzerland zh_name = "市鎮", }, ["borough"] = { zh_name = "區", zh_suffix = "區", }, ["metropolitan borough"] = { zh_name = "都會區", zh_suffix = "都會區", }, ["London borough"] = { zh_name = "倫敦區", zh_suffix = "區", }, ["royal borough"] = { zh_name = "皇家自治市", }, ["county borough"] = { zh_name = "郡市", zh_suffix = "郡市", }, ["parish"] = { zh_name = "教區", zh_suffix = "教區", }, ["civil parish"] = { zh_name = "教區", zh_suffix = "教區", }, ["council area"] = { -- Scotland zh_name = "議會地區", zh_suffix = "議會地區", }, ["prefecture"] = { -- Japan: 縣(ken); France: 省治城市(handled by capital city logic) zh_name = "縣", zh_suffix = "縣", }, ["prefecture-level city"] = { -- China zh_name = "地級市", zh_suffix = "市", }, ["county-level city"] = { -- China zh_name = "縣級市", zh_suffix = "市", }, ["subprovincial city"] = { -- China zh_name = "副省級市", zh_suffix = "市", }, ["direct-administered municipality"] = { -- China (Beijing, Shanghai, etc.) zh_name = "直轄市", zh_suffix = "市", }, ["special municipality"] = { -- Taiwan (Taipei, New Taipei etc.) zh_name = "直轄市", zh_suffix = "市", }, ["county-administered city"] = { -- Taiwan zh_name = "縣轄市", zh_suffix = "市", }, ["special ward"] = { -- Tokyo zh_name = "特別區", zh_suffix = "區", }, ["municipal district"] = { zh_name = "市轄區", zh_suffix = "區", }, ["subdistrict"] = { zh_name = "街道", zh_suffix = "街道", }, ["township"] = { zh_name = "鄉鎮", zh_suffix = "鄉鎮", }, ["rural township"] = { -- Taiwan zh_name = "鄉", zh_suffix = "鄉", }, ["urban township"] = { zh_name = "鎮", zh_suffix = "鎮", }, ["mountain indigenous township"] = { -- Taiwan zh_name = "山地原住民區", zh_suffix = "區", }, ["mountain indigenous district"] = { -- Taiwan zh_name = "山地原住民區", zh_suffix = "區", }, ["community development block"] = { -- India zh_name = "社區發展區", }, ["union territory"] = { -- India zh_name = "聯合地區", }, ["hromada"] = { -- Ukraine zh_name = "社區", zh_suffix = "社區", }, ["urban hromada"] = { zh_name = "城市社區", zh_suffix = "社區", }, ["rural hromada"] = { zh_name = "農村社區", zh_suffix = "社區", }, ["settlement hromada"] = { zh_name = "聚落社區", zh_suffix = "社區", }, ["regional unit"] = { -- Greece zh_name = "地區單位", zh_suffix = "地區", }, ["regional county municipality"] = { -- Quebec zh_name = "地區縣市", }, ["regional district"] = { -- Canada zh_name = "地區區", }, ["regional municipality"] = { zh_name = "地區市", }, ["local government area"] = { -- Australia zh_name = "地方政府區", }, ["local government district"] = { zh_name = "地方政府區", }, ["arrondissement"] = { zh_name = "區", zh_suffix = "區", }, ["cercle"] = { -- Mali zh_name = "縣", }, ["geopolitical zone"] = { -- Nigeria zh_name = "地緣政治區", }, ["enclave"] = { zh_name = "飛地", }, ["exclave"] = { zh_name = "外飛地", }, -- ----------------------------------------------------------------------- -- Capitals and seats -- ----------------------------------------------------------------------- ["capital city"] = { -- Default for most contexts; see zh_name_by_holonym_type for overrides zh_name = "首府", zh_name_by_holonym_type = { ["country"] = "首都", ["constituent country"] = "首都", ["microstate"] = "首都", ["city-state"] = "首都", ["state"] = "首府", ["territory"] = "首府", ["region"] = "首府", ["administrative region"] = "首府", ["autonomous region"] = "首府", ["province"] = "省會", ["autonomous province"] = "省會", ["county"] = "縣治", ["district"] = "區治", ["department"] = "省治", ["prefecture"] = "縣治", ["municipality"] = "市治", }, }, ["capital"] = { -- Alias for capital city; same logic zh_name = "首府", zh_name_by_holonym_type = { ["country"] = "首都", ["constituent country"] = "首都", ["state"] = "首府", ["territory"] = "首府", ["region"] = "首府", ["province"] = "省會", ["county"] = "縣治", ["district"] = "區治", ["department"] = "省治", }, }, ["state capital"] = { zh_name = "首府", }, ["provincial capital"] = { zh_name = "省會", }, ["regional capital"] = { zh_name = "首府", }, ["district capital"] = { zh_name = "區治", }, ["departmental capital"] = { zh_name = "省治", }, ["national capital"] = { zh_name = "首都", }, ["administrative capital"] = { zh_name = "行政首都", }, ["legislative capital"] = { zh_name = "立法首都", }, ["judicial capital"] = { zh_name = "司法首都", }, ["royal capital"] = { zh_name = "王都", }, ["co-capital"] = { zh_name = "共同首都", }, ["largest city"] = { zh_name = "最大城市", }, ["caplc"] = { zh_name = "首都和最大城市", }, ["non-city capital"] = { zh_name = "首府", }, ["county seat"] = { zh_name = "縣治", }, ["county town"] = { zh_name = "縣城", }, ["borough seat"] = { zh_name = "區治", }, ["parish seat"] = { zh_name = "教區治所", }, ["shire town"] = { zh_name = "郡鎮", }, ["administrative center"] = { zh_name = "行政中心", }, ["administrative centre"] = { zh_name = "行政中心", }, ["administrative headquarters"] = { zh_name = "行政總部", }, ["French prefecture"] = { -- A city that is the administrative capital of a French department zh_name = "省府", zh_name_by_holonym_type = { ["department"] = "省府", }, }, -- ----------------------------------------------------------------------- -- Cities and urban settlements -- ----------------------------------------------------------------------- ["city"] = { zh_name = "市", zh_suffix = "市", }, ["town"] = { zh_name = "鎮", zh_suffix = "鎮", }, ["village"] = { zh_name = "村", zh_suffix = "村", }, ["hamlet"] = { zh_name = "小村", }, ["locality"] = { zh_name = "村落", }, ["settlement"] = { zh_name = "聚落", }, ["populated place"] = { zh_name = "居民點", }, ["neighborhood"] = { zh_name = "街區", }, ["neighbourhood"] = { zh_name = "街區", }, ["suburb"] = { zh_name = "郊區", }, ["community"] = { zh_name = "社區", }, ["urban area"] = { zh_name = "城市地區", }, ["residential area"] = { zh_name = "住宅區", }, ["housing estate"] = { zh_name = "住宅區", }, ["planned community"] = { zh_name = "計劃社區", }, ["administrative village"] = { zh_name = "行政村", zh_suffix = "村", }, ["barangay"] = { -- Philippines zh_name = "里", }, ["barrio"] = { zh_name = "里", }, ["kibbutz"] = { zh_name = "集體農場", }, ["ghost town"] = { zh_name = "鬼城", }, ["unincorporated community"] = { zh_name = "非建制社區", }, ["census-designated place"] = { zh_name = "人口普查指定地區", }, ["military base"] = { zh_name = "軍事基地", }, ["research station"] = { zh_name = "研究站", }, ["home rule city"] = { zh_name = "自治市", }, ["federal district"] = { zh_name = "聯邦特區", zh_suffix = "特區", }, ["independent city"] = { zh_name = "獨立市", }, ["autonomous city"] = { zh_name = "自治市", }, ["port city"] = { zh_name = "港市", }, ["port town"] = { zh_name = "港鎮", }, ["market town"] = { zh_name = "市集鎮", }, ["resort town"] = { zh_name = "度假鎮", }, ["new town"] = { zh_name = "新市鎮", }, -- ----------------------------------------------------------------------- -- Geographic / natural features -- ----------------------------------------------------------------------- ["continent"] = { zh_name = "洲", zh_suffix = "洲", }, ["continental region"] = { zh_name = "大陸地區", }, ["ocean"] = { zh_name = "洋", zh_suffix = "洋", }, ["sea"] = { zh_name = "海", zh_suffix = "海", }, ["inland sea"] = { zh_name = "內陸海", }, ["marginal sea"] = { zh_name = "邊緣海", }, ["river"] = { zh_name = "河", zh_suffix = "河", }, ["lake"] = { zh_name = "湖", zh_suffix = "湖", }, ["reservoir"] = { zh_name = "水庫", zh_suffix = "水庫", }, ["stream"] = { zh_name = "溪", zh_suffix = "溪", }, ["creek"] = { zh_name = "溪", zh_suffix = "溪", }, ["bay"] = { zh_name = "灣", zh_suffix = "灣", }, ["gulf"] = { zh_name = "海灣", zh_suffix = "海灣", }, ["fjord"] = { zh_name = "峽灣", }, ["strait"] = { zh_name = "海峽", zh_suffix = "海峽", }, ["channel"] = { zh_name = "水道", zh_suffix = "水道", }, ["inlet"] = { zh_name = "海灣", zh_suffix = "灣", }, ["arm"] = { zh_name = "海灣", }, ["island"] = { zh_name = "島", zh_suffix = "島", }, ["islet"] = { zh_name = "小島", zh_suffix = "島", }, ["island group"] = { zh_name = "群島", }, ["archipelago"] = { zh_name = "群島", zh_suffix = "群島", }, ["atoll"] = { zh_name = "環礁", zh_suffix = "環礁", }, ["peninsula"] = { zh_name = "半島", zh_suffix = "半島", }, ["spit"] = { zh_name = "沙嘴", }, ["cape"] = { zh_name = "角", zh_suffix = "角", }, ["headland"] = { zh_name = "岬角", }, ["mountain"] = { zh_name = "山", zh_suffix = "山", }, ["hill"] = { zh_name = "丘", zh_suffix = "丘", }, ["mountain range"] = { zh_name = "山脈", zh_suffix = "山脈", }, ["mountain pass"] = { zh_name = "山口", }, ["plateau"] = { zh_name = "高原", zh_suffix = "高原", }, ["valley"] = { zh_name = "谷", zh_suffix = "谷", }, ["glen"] = { zh_name = "峽谷", }, ["volcano"] = { zh_name = "火山", zh_suffix = "火山", }, ["forest"] = { zh_name = "林地", zh_suffix = "林", }, ["moor"] = { zh_name = "荒原", }, ["desert"] = { zh_name = "沙漠", zh_suffix = "沙漠", }, ["beach"] = { zh_name = "海灘", zh_suffix = "海灘", }, ["spring"] = { zh_name = "泉", zh_suffix = "泉", }, ["hot spring"] = { zh_name = "溫泉", zh_suffix = "溫泉", }, ["tributary"] = { zh_name = "支流", }, ["distributary"] = { zh_name = "分流", }, -- ----------------------------------------------------------------------- -- Geographic / cultural regions (non-admin) -- ----------------------------------------------------------------------- ["geographic and cultural area"] = { zh_name = "地區", }, ["geographic region"] = { zh_name = "地理區域", }, ["historical region"] = { zh_name = "歷史地區", }, ["historic region"] = { zh_name = "歷史地區", }, ["cultural region"] = { zh_name = "文化地區", }, ["subregion"] = { zh_name = "次地區", }, ["macroregion"] = { zh_name = "大區域", }, -- ----------------------------------------------------------------------- -- Man-made structures -- ----------------------------------------------------------------------- ["airport"] = { zh_name = "機場", }, ["port"] = { zh_name = "港口", }, ["bridge"] = { zh_name = "橋", }, ["road"] = { zh_name = "道路", }, ["highway"] = { zh_name = "公路", }, ["motorway"] = { zh_name = "高速公路", }, ["street"] = { zh_name = "街道", }, ["building"] = { zh_name = "建築物", }, ["university"] = { zh_name = "大學", }, ["park"] = { zh_name = "公園", }, ["national park"] = { zh_name = "國家公園", }, ["metro station"] = { zh_name = "地鐵站", }, ["temple"] = { zh_name = "廟宇", }, ["castle"] = { zh_name = "城堡", }, -- ----------------------------------------------------------------------- -- Misc / hypothetical -- ----------------------------------------------------------------------- ["fictional location"] = { zh_name = "虛構地點", }, ["mythological location"] = { zh_name = "神話地點", }, ["star"] = { zh_name = "恆星", }, ["space station"] = { zh_name = "太空站", }, } -- --------------------------------------------------------------------------- -- Helper: look up zh_name for a placetype via fallback chain -- --------------------------------------------------------------------------- -- Looks up zh_name (and optionally zh_name_by_holonym_type) for a given -- placetype, recursively following the enwikt fallback chain if needed. -- Returns zh_name (string or table), zh_suffix (string or table or nil), -- zh_name_by_holonym_type (table or nil). -- `m_pt` should be the enwikt place-placetypes module (for fallback data). function export.get_zh_placetype_props(placetype, m_pt) local visited = {} local current = placetype while current and not visited[current] do visited[current] = true local zh = export.zh_placetype_data[current] if zh and zh.zh_name then return zh.zh_name, zh.zh_suffix, zh.zh_name_by_holonym_type end -- Follow enwikt fallback if m_pt then local ptdata = m_pt.placetype_data[current] if ptdata and ptdata.fallback then current = ptdata.fallback -- Strip FORMER/ANCIENT prefixes from synthetic fallbacks like "FORMER settlement" current = current:match("^FORMER (.+)$") or current:match("^ANCIENT (.+)$") or current else break end else break end end return nil, nil, nil end -- --------------------------------------------------------------------------- -- Helper: resolve zh_name given holonym context -- --------------------------------------------------------------------------- -- Given the zh_name (possibly a table of variants) and zh_name_by_holonym_type, -- and the holonym's placetype, return the appropriate Chinese name string. -- If multiple variants, returns the array (caller joins with zh_strings.multi_name_sep). function export.resolve_zh_name(zh_name, zh_name_by_holonym_type, holonym_placetype) if zh_name_by_holonym_type and holonym_placetype then local override = zh_name_by_holonym_type[holonym_placetype] if override then return override end end return zh_name end -- --------------------------------------------------------------------------- -- Helper: format zh_name for display (join variants with "/") -- --------------------------------------------------------------------------- function export.format_zh_name(zh_name_or_array) if type(zh_name_or_array) == "table" then return table.concat(zh_name_or_array, export.zh_strings.multi_name_sep) end return zh_name_or_array or "" end return export 99n9rtn0e9gepvxm97epdnb4iug5tik Category:馬來語 大洲和大洲地區 14 3067274 9759617 9197962 2026-05-14T22:31:21Z TongcyBot 83009 TongcyBot移动页面[[Category:馬來語 大洲]]至[[Category:馬來語 大洲及大陸地區]],不留重定向 9197962 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:阿拉伯語 大洲和大洲地區 14 3069593 9759613 9200313 2026-05-14T22:31:00Z TongcyBot 83009 TongcyBot移动页面[[Category:阿拉伯語 大洲]]至[[Category:阿拉伯語 大洲及大陸地區]],不留重定向 9200313 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:諾曼語 大洲和大洲地區 14 3070418 9759610 9201149 2026-05-14T22:30:46Z TongcyBot 83009 TongcyBot移动页面[[Category:諾曼語 大洲]]至[[Category:諾曼語 大洲及大陸地區]],不留重定向 9201149 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:豪薩語 大洲和大洲地區 14 3070576 9759611 9201310 2026-05-14T22:30:48Z TongcyBot 83009 TongcyBot移动页面[[Category:豪薩語 大洲]]至[[Category:豪薩語 大洲及大陸地區]],不留重定向 9201310 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:蒙古語 大洲和大洲地區 14 3073802 9759608 9204557 2026-05-14T22:30:33Z TongcyBot 83009 TongcyBot移动页面[[Category:蒙古語 大洲]]至[[Category:蒙古語 大洲及大陸地區]],不留重定向 9204557 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:科西嘉語 大洲和大洲地區 14 3074796 9759600 9205554 2026-05-14T22:29:54Z TongcyBot 83009 TongcyBot移动页面[[Category:科西嘉語 大洲]]至[[Category:科西嘉語 大洲及大陸地區]],不留重定向 9205554 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:漢志阿拉伯語 大洲和大洲地區 14 3077651 9759593 9208635 2026-05-14T22:29:19Z TongcyBot 83009 TongcyBot移动页面[[Category:漢志阿拉伯語 大洲]]至[[Category:漢志阿拉伯語 大洲及大陸地區]],不留重定向 9208635 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:尼泊爾語 大洲和大洲地區 14 3087013 9759566 9219527 2026-05-14T22:26:46Z TongcyBot 83009 TongcyBot移动页面[[Category:尼泊爾語 大洲]]至[[Category:尼泊爾語 大洲及大陸地區]],不留重定向 9219527 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:巴什基爾語 大洲和大洲地區 14 3087119 9759568 9219634 2026-05-14T22:26:52Z TongcyBot 83009 TongcyBot移动页面[[Category:巴什基爾語 大洲]]至[[Category:巴什基爾語 大洲及大陸地區]],不留重定向 9219634 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:羅曼什語 大洲和大洲地區 14 3087586 9759602 9220114 2026-05-14T22:30:03Z TongcyBot 83009 TongcyBot移动页面[[Category:羅曼什語 大洲]]至[[Category:羅曼什語 大洲及大陸地區]],不留重定向 9220114 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:韃靼語 大洲和大洲地區 14 3096053 9759616 9228957 2026-05-14T22:31:19Z TongcyBot 83009 TongcyBot移动页面[[Category:韃靼語 大洲]]至[[Category:韃靼語 大洲及大陸地區]],不留重定向 9228957 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:保加利亞語 大洲和大洲地區 14 3096281 9759633 9229186 2026-05-14T23:24:46Z TongcyBot 83009 TongcyBot移动页面[[Category:保加利亞語 大洲]]至[[Category:保加利亞語 大洲及大陸地區]],不留重定向 9229186 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:吉爾吉斯語 大洲和大洲地區 14 3097032 9759556 9229937 2026-05-14T22:25:58Z TongcyBot 83009 TongcyBot移动页面[[Category:吉爾吉斯語 大洲]]至[[Category:吉爾吉斯語 大洲及大陸地區]],不留重定向 9229937 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:冰島語 大洲和大洲地區 14 3097264 9759634 9230170 2026-05-14T23:25:01Z TongcyBot 83009 TongcyBot移动页面[[Category:冰島語 大洲]]至[[Category:冰島語 大洲及大陸地區]],不留重定向 9230170 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:古典亞美尼亞語 大洲和大洲地區 14 3106553 9759554 9240950 2026-05-14T22:25:46Z TongcyBot 83009 TongcyBot移动页面[[Category:古典亞美尼亞語 大洲]]至[[Category:古典亞美尼亞語 大洲及大陸地區]],不留重定向 9240950 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:英格里亞語 大洲和大洲地區 14 3155153 9759606 9306379 2026-05-14T22:30:19Z TongcyBot 83009 TongcyBot移动页面[[Category:英格里亞語 大洲]]至[[Category:英格里亞語 大洲及大陸地區]],不留重定向 9306379 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:法羅語 大洲和大洲地區 14 3155811 9759585 9307285 2026-05-14T22:28:36Z TongcyBot 83009 TongcyBot移动页面[[Category:法羅語 大洲]]至[[Category:法羅語 大洲及大陸地區]],不留重定向 9307285 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:阿羅馬尼亞語 大洲和大洲地區 14 3155813 9759615 9307288 2026-05-14T22:31:12Z TongcyBot 83009 TongcyBot移动页面[[Category:阿羅馬尼亞語 大洲]]至[[Category:阿羅馬尼亞語 大洲及大陸地區]],不留重定向 9307288 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:泰語 大洲和大洲地區 14 3156929 9759592 9308959 2026-05-14T22:29:13Z TongcyBot 83009 TongcyBot移动页面[[Category:泰語 大洲]]至[[Category:泰語 大洲及大陸地區]],不留重定向 9308959 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:波斯語 大洲和大洲地區 14 3159342 9759587 9311851 2026-05-14T22:28:49Z TongcyBot 83009 TongcyBot移动页面[[Category:波斯語 大洲]]至[[Category:波斯語 大洲及大陸地區]],不留重定向 9311851 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:卡舒比語 大洲和大洲地區 14 3308244 9759552 9516784 2026-05-14T22:25:33Z TongcyBot 83009 TongcyBot移动页面[[Category:卡舒比語 大洲]]至[[Category:卡舒比語 大洲及大陸地區]],不留重定向 9516784 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:宗喀語 大洲和大洲地區 14 3313375 9759564 9522694 2026-05-14T22:26:37Z TongcyBot 83009 TongcyBot移动页面[[Category:宗喀語 大洲]]至[[Category:宗喀語 大洲及大陸地區]],不留重定向 9522694 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:土庫曼語 大洲和大洲地區 14 3337675 9759557 9601258 2026-05-14T22:26:04Z TongcyBot 83009 TongcyBot移动页面[[Category:土庫曼語 大洲]]至[[Category:土庫曼語 大洲及大陸地區]],不留重定向 9601258 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:意第緒語 大洲和大洲地區 14 3346051 9759575 9617790 2026-05-14T22:27:31Z TongcyBot 83009 TongcyBot移动页面[[Category:意第緒語 大洲]]至[[Category:意第緒語 大洲及大陸地區]],不留重定向 9617790 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:弗留利語 大洲和大洲地區 14 3401078 9759572 9706086 2026-05-14T22:27:20Z TongcyBot 83009 TongcyBot移动页面[[Category:弗留利語 大洲]]至[[Category:弗留利語 大洲及大陸地區]],不留重定向 9706086 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:彭林語 大洲和大洲地區 14 3401084 9759573 9706092 2026-05-14T22:27:23Z TongcyBot 83009 TongcyBot移动页面[[Category:彭林語 大洲]]至[[Category:彭林語 大洲及大陸地區]],不留重定向 9706092 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Module:Place/locations 828 3437749 9759401 9759346 2026-05-14T13:53:01Z TongcyDai 53191 // Edit via Wikiplus 9759401 Scribunto text/plain local export = {} export.force_cat = false local m_table = require("Module:table") local insert = table.insert local concat = table.concat local dump = mw.dumpObject local unpack = unpack or table.unpack --[==[ Chinese Wiktionary localization of [[Module:place/locations]]. All canonical location keys are in Chinese, matching what editors write in holonym parameters (e.g. {{place|zh|城市|s/中央邦|c/印度}}). English Wikipedia article names are stored in the `wp` field for cross-reference. The `the`, `british_spelling` and English-suffix-detection fields from enwikt are omitted as they are not applicable in Chinese. The helper functions (process_error through construct_linked_placename) are kept intact from enwikt's Module:place/locations to maintain API compatibility with Module:place/placetypes. ]==] ----------------------------------------------------------------------------------- -- Helper functions -- ----------------------------------------------------------------------------------- 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 function export.internal_error(fmt, ...) export.process_error("Internal error: " .. fmt, ...) end local internal_error = export.internal_error 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 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 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 == "country" or defcon.placetype == "constituent country") then return placename .. ", " .. defcon.key else return placename end end end 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 = "country"} 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", "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 spec.is_city = value_with_default(spec.is_city, group.default_placetype == "city") spec.initialized = true end 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 local placetype = spec.placetype or resolved_spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s", key) 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 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 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 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 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 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 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 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) -- Chinese has no articles; `the` field is unused but kept for API compatibility. return linked_placename end ----------------------------------------------------------------------------------- -- Local data helper factories -- ----------------------------------------------------------------------------------- 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 _, pat in ipairs(container_patterns) do local nsubs full_placename, nsubs = full_placename:gsub(pat, "") if nsubs > 0 then break end end end local elliptical_placename = full_placename if divtype_patterns then for _, pat in ipairs(divtype_patterns) do local nsubs elliptical_placename, nsubs = elliptical_placename:gsub(pat, "") if nsubs > 0 then break end end end return full_placename, elliptical_placename end end 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 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 -- Canonicalize a continent container key (string) to canonical container form. 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_container`", key) end ----------------------------------------------------------------------------------- -- Top-level tables -- ----------------------------------------------------------------------------------- export.continents = { ["地球"] = {placetype = "planet", addl_parents = {"nature"}, fulldesc = "=the planet [[Earth]] and the features found on it", wp = "Earth"}, ["非洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Africa"}, ["美洲"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Americas"}, ["北美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "North America"}, ["加勒比地區"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Caribbean"}, ["中美洲"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Central America"}, ["南美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "South America"}, ["南極洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, fulldesc = "=the territory of [[Antarctica]]", wp = "Antarctica"}, ["歐亞大陸"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Eurasia"}, ["亞洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Asia"}, ["中東"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Middle East"}, ["東南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Southeast Asia"}, ["南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "South Asia"}, ["東亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "East Asia"}, ["中亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Central Asia"}, ["歐洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Europe"}, ["西歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Western Europe"}, ["東歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Eastern Europe"}, ["北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Northern Europe"}, ["南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Southern Europe"}, ["中歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Central Europe"}, ["大洋洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Oceania"}, ["美拉尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Melanesia"}, ["密克羅尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Micronesia"}, ["玻里尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Polynesia"}, } export.continents_group = { default_overriding_bare_label_parents = {}, default_divs = {{type = "countries", prep = "in"}}, 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, default_no_check_holonym_mismatch = true, data = export.continents, } ----------------------------------------------------------------------------------- -- Countries -- ----------------------------------------------------------------------------------- export.countries = { -- Africa ["阿爾及利亞"] = {container = "非洲", divs = {"provinces", "communes", "districts"}, wp = "阿爾及利亞"}, ["安哥拉"] = {container = "非洲", divs = {"provinces", "municipalities"}, wp = "安哥拉"}, ["貝寧"] = {container = "非洲", wp = "貝寧"}, ["貝南"] = {alias_of = "貝寧"}, ["博茨瓦納"] = {container = "非洲", wp = "博茨瓦納"}, ["波札那"] = {alias_of = "博茨瓦納"}, ["布基納法索"] = {container = "非洲", wp = "布基納法索"}, ["布吉納法索"] = {alias_of = "布基納法索"}, ["布隆迪"] = {container = "非洲", wp = "布隆迪"}, ["蒲隆地"] = {alias_of = "布隆迪"}, ["佛得角"] = {container = "非洲", wp = "佛得角"}, ["維德角"] = {alias_of = "佛得角"}, ["中非共和國"] = {container = "非洲", wp = "中非共和國"}, ["乍得"] = {container = "非洲", wp = "乍得"}, ["查德"] = {alias_of = "乍得"}, ["科摩羅"] = {container = "非洲", wp = "科摩羅"}, ["葛摩"] = {alias_of = "科摩羅"}, ["剛果共和國"] = {container = "非洲", wp = "剛果共和國"}, ["剛果(布)"] = {alias_of = "剛果共和國"}, ["剛果民主共和國"] = {container = "非洲", divs = {"provinces"}, wp = "剛果民主共和國"}, ["剛果(金)"] = {alias_of = "剛果民主共和國"}, ["吉布提"] = {container = "非洲", wp = "吉布提"}, ["吉布地"] = {alias_of = "吉布提"}, ["埃及"] = {container = "非洲", divs = {"governorates"}, wp = "埃及"}, ["赤道幾內亞"] = {container = "非洲", wp = "赤道幾內亞"}, ["厄立特里亞"] = {container = "非洲", wp = "厄立特里亞"}, ["厄利垂亞"] = {alias_of = "厄立特里亞"}, ["斯威士蘭"] = {container = "非洲", wp = "斯威士蘭"}, ["史瓦帝尼"] = {alias_of = "斯威士蘭"}, ["埃塞俄比亞"] = {container = "非洲", divs = {"regions"}, wp = "埃塞俄比亞"}, ["衣索比亞"] = {alias_of = "埃塞俄比亞"}, ["加蓬"] = {container = "非洲", wp = "加蓬"}, ["加彭"] = {alias_of = "加蓬"}, ["岡比亞"] = {container = "非洲", wp = "岡比亞"}, ["甘比亞"] = {alias_of = "岡比亞"}, ["加納"] = {container = "非洲", wp = "加納"}, ["迦納"] = {alias_of = "加納"}, ["幾內亞"] = {container = "非洲", wp = "幾內亞"}, ["幾內亞比紹"] = {container = "非洲", wp = "幾內亞比紹"}, ["幾內亞比索"] = {alias_of = "幾內亞比紹"}, ["科特迪瓦"] = {container = "非洲", wp = "科特迪瓦"}, ["象牙海岸"] = {alias_of = "科特迪瓦"}, ["肯尼亞"] = {container = "非洲", divs = {"counties"}, wp = "肯尼亞"}, ["肯亞"] = {alias_of = "肯尼亞"}, ["萊索托"] = {container = "非洲", wp = "萊索托"}, ["賴索托"] = {alias_of = "萊索托"}, ["利比里亞"] = {container = "非洲", wp = "利比里亞"}, ["賴比瑞亞"] = {alias_of = "利比里亞"}, ["利比亞"] = {container = "非洲", wp = "利比亞"}, ["馬達加斯加"] = {container = "非洲", wp = "馬達加斯加"}, ["馬拉維"] = {container = "非洲", wp = "馬拉維"}, ["馬拉威"] = {alias_of = "馬拉維"}, ["馬里"] = {container = "非洲", wp = "馬里"}, ["馬利"] = {alias_of = "馬里"}, ["毛里塔尼亞"] = {container = "非洲", wp = "毛里塔尼亞"}, ["茅利塔尼亞"] = {alias_of = "毛里塔尼亞"}, ["毛里求斯"] = {container = "非洲", wp = "毛里求斯"}, ["模里西斯"] = {alias_of = "毛里求斯"}, ["摩洛哥"] = {container = "非洲", wp = "摩洛哥"}, ["莫桑比克"] = {container = "非洲", wp = "莫桑比克"}, ["莫三比克"] = {alias_of = "莫桑比克"}, ["納米比亞"] = {container = "非洲", wp = "納米比亞"}, ["尼日爾"] = {container = "非洲", wp = "尼日爾"}, ["尼日"] = {alias_of = "尼日爾"}, ["尼日利亞"] = {container = "非洲", divs = { {type = "states", cat_as = "states and FCT"}, "local government areas", }, wp = "尼日利亞"}, ["奈及利亞"] = {alias_of = "尼日利亞"}, ["盧旺達"] = {container = "非洲", wp = "盧旺達"}, ["盧安達"] = {alias_of = "盧旺達"}, ["聖多美和普林西比"] = {container = "非洲", wp = "聖多美和普林西比"}, ["塞內加爾"] = {container = "非洲", wp = "塞內加爾"}, ["塞舌爾"] = {container = "非洲", wp = "塞舌爾"}, ["塞席爾"] = {alias_of = "塞舌爾"}, ["塞拉利昂"] = {container = "非洲", wp = "塞拉利昂"}, ["獅子山"] = {alias_of = "塞拉利昂"}, ["索馬里"] = {container = "非洲", wp = "索馬里"}, ["索馬利亞"] = {alias_of = "索馬里"}, ["南非"] = {container = "非洲", divs = {"provinces"}, wp = "南非"}, ["南蘇丹"] = {container = "非洲", wp = "南蘇丹"}, ["蘇丹"] = {container = "非洲", wp = "蘇丹"}, ["坦桑尼亞"] = {container = "非洲", wp = "坦桑尼亞"}, ["坦尚尼亞"] = {alias_of = "坦桑尼亞"}, ["多哥"] = {container = "非洲", wp = "多哥"}, ["突尼斯"] = {container = "非洲", wp = "突尼斯"}, ["突尼西亞"] = {alias_of = "突尼斯"}, ["烏干達"] = {container = "非洲", wp = "烏干達"}, ["贊比亞"] = {container = "非洲", wp = "贊比亞"}, ["尚比亞"] = {alias_of = "贊比亞"}, ["津巴布韋"] = {container = "非洲", wp = "津巴布韋"}, ["辛巴威"] = {alias_of = "津巴布韋"}, -- Asia ["阿富汗"] = {container = "亞洲", wp = "阿富汗"}, ["亞美尼亞"] = {container = {"歐洲", "亞洲"}, wp = "亞美尼亞"}, ["阿塞拜疆"] = {container = {"歐洲", "亞洲"}, wp = "阿塞拜疆"}, ["亞塞拜然"] = {alias_of = "阿塞拜疆"}, ["巴林"] = {container = "亞洲", wp = "巴林"}, ["孟加拉國"] = {container = "亞洲", divs = {"divisions", "districts"}, wp = "孟加拉國"}, ["孟加拉"] = {alias_of = "孟加拉國"}, ["不丹"] = {container = "亞洲", wp = "不丹"}, ["文萊"] = {container = "亞洲", wp = "文萊"}, ["汶萊"] = {alias_of = "文萊"}, ["柬埔寨"] = {container = "亞洲", wp = "柬埔寨"}, ["中國"] = {container = "亞洲", divs = { {type = "provinces", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "autonomous regions", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "direct-administered municipalities", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "special administrative regions", cat_as = "special administrative regions"}, }, wp = "中國"}, ["東帝汶"] = {container = "亞洲", wp = "東帝汶"}, ["帝汶島"] = {alias_of = "東帝汶"}, ["印度"] = {container = "亞洲", divs = { {type = "states", cat_as = "states and union territories"}, {type = "union territories", cat_as = "states and union territories"}, }, wp = "印度"}, ["印度尼西亞"] = {container = "亞洲", divs = {"provinces"}, wp = "印度尼西亞"}, ["印尼"] = {alias_of = "印度尼西亞"}, ["伊朗"] = {container = "亞洲", wp = "伊朗"}, ["伊拉克"] = {container = "亞洲", wp = "伊拉克"}, ["以色列"] = {container = "亞洲", wp = "以色列"}, ["日本"] = {container = "亞洲", divs = {"prefectures"}, wp = "日本"}, ["約旦"] = {container = "亞洲", wp = "約旦"}, ["哈薩克斯坦"] = {container = {"歐洲", "亞洲"}, wp = "哈薩克斯坦"}, ["哈薩克"] = {alias_of = "哈薩克斯坦"}, ["朝鮮"] = {container = "亞洲", wp = "朝鮮民主主義人民共和國"}, ["北韓"] = {alias_of = "朝鮮"}, ["韓國"] = {container = "亞洲", divs = {"provinces", "special cities", "metropolitan cities"}, wp = "韓國"}, ["南韓"] = {alias_of = "韓國"}, ["科威特"] = {container = "亞洲", wp = "科威特"}, ["吉爾吉斯斯坦"] = {container = "亞洲", wp = "吉爾吉斯斯坦"}, ["吉爾吉斯"] = {alias_of = "吉爾吉斯斯坦"}, ["老撾"] = {container = "亞洲", wp = "老撾"}, ["寮國"] = {alias_of = "老撾"}, ["黎巴嫩"] = {container = "亞洲", wp = "黎巴嫩"}, ["馬來西亞"] = {container = "亞洲", divs = {"states"}, wp = "馬來西亞"}, ["馬爾代夫"] = {container = "亞洲", wp = "馬爾代夫"}, ["馬爾地夫"] = {alias_of = "馬爾代夫"}, ["蒙古"] = {container = "亞洲", wp = "蒙古"}, ["緬甸"] = {container = "亞洲", wp = "緬甸"}, ["尼泊爾"] = {container = "亞洲", wp = "尼泊爾"}, ["阿曼"] = {container = "亞洲", wp = "阿曼"}, ["巴基斯坦"] = {container = "亞洲", divs = {"provinces"}, wp = "巴基斯坦"}, ["菲律賓"] = {container = "亞洲", divs = {"regions"}, wp = "菲律賓"}, ["卡塔爾"] = {container = "亞洲", wp = "卡塔爾"}, ["卡達"] = {alias_of = "卡塔爾"}, ["俄羅斯"] = {container = {"歐洲", "亞洲"}, divs = {"federal subjects"}, wp = "俄羅斯"}, ["俄國"] = {alias_of = "俄羅斯"}, ["沙特阿拉伯"] = {container = "亞洲", wp = "沙特阿拉伯"}, ["沙烏地阿拉伯"] = {alias_of = "沙特阿拉伯"}, ["新加坡"] = {container = "亞洲", is_city = true, wp = "新加坡"}, ["斯里蘭卡"] = {container = "亞洲", wp = "斯里蘭卡"}, ["敘利亞"] = {container = "亞洲", wp = "敘利亞"}, ["臺灣"] = {container = "亞洲", divs = { "special municipalities", "counties", }, wp = "臺灣"}, ["台灣"] = {alias_of = "臺灣"}, ["塔吉克斯坦"] = {container = "亞洲", wp = "塔吉克斯坦"}, ["塔吉克"] = {alias_of = "塔吉克斯坦"}, ["泰國"] = {container = "亞洲", divs = {"provinces"}, wp = "泰國"}, ["土耳其"] = {container = {"歐洲", "亞洲"}, wp = "土耳其"}, ["土庫曼斯坦"] = {container = "亞洲", wp = "土庫曼斯坦"}, ["土庫曼"] = {alias_of = "土庫曼斯坦"}, ["阿拉伯聯合酋長國"] = {container = "亞洲", wp = "阿拉伯聯合酋長國"}, ["阿拉伯聯合大公國"] = {alias_of = "阿拉伯聯合酋長國"}, ["阿聯酋"] = {alias_of = "阿拉伯聯合酋長國"}, ["烏茲別克斯坦"] = {container = "亞洲", wp = "烏茲別克斯坦"}, ["烏茲別克"] = {alias_of = "烏茲別克斯坦"}, ["越南"] = {container = "亞洲", divs = {"provinces", "municipalities"}, wp = "越南"}, ["也門"] = {container = "亞洲", wp = "也門"}, ["葉門"] = {alias_of = "也門"}, -- Europe ["阿爾巴尼亞"] = {container = "歐洲", wp = "阿爾巴尼亞"}, ["安道爾"] = {container = "歐洲", wp = "安道爾"}, ["奧地利"] = {container = "歐洲", divs = {"states"}, wp = "奧地利"}, ["白俄羅斯"] = {container = "歐洲", divs = {"regions"}, wp = "白俄羅斯"}, ["比利時"] = {container = "歐洲", divs = {"regions", "provinces"}, wp = "比利時"}, ["波斯尼亞和黑塞哥維那"] = {container = "歐洲", wp = "波斯尼亞和黑塞哥維那"}, ["波士尼亞與赫塞哥維納"] = {alias_of = "波斯尼亞和黑塞哥維那"}, ["保加利亞"] = {container = "歐洲", wp = "保加利亞"}, ["克羅地亞"] = {container = "歐洲", wp = "克羅地亞"}, ["克羅埃西亞"] = {alias_of = "克羅地亞"}, ["塞浦路斯"] = {container = "亞洲", addl_parents = {"歐洲"}, wp = "塞浦路斯"}, ["賽普勒斯"] = {alias_of = "塞浦路斯"}, ["捷克"] = {container = "歐洲", wp = "捷克"}, ["丹麥"] = {container = "歐洲", wp = "丹麥"}, ["愛沙尼亞"] = {container = "歐洲", wp = "愛沙尼亞"}, ["芬蘭"] = {container = "歐洲", divs = {"regions"}, wp = "芬蘭"}, ["法國"] = {container = "歐洲", divs = { {type = "regions", cat_as = "metropolitan regions"}, "departments", "communes", }, wp = "法國"}, ["格魯吉亞"] = {container = {"歐洲", "亞洲"}, wp = "格魯吉亞"}, ["喬治亞"] = {alias_of = "格魯吉亞"}, ["德國"] = {container = "歐洲", divs = {"states"}, wp = "德國"}, ["希臘"] = {container = "歐洲", divs = {"regions"}, wp = "希臘"}, ["匈牙利"] = {container = "歐洲", wp = "匈牙利"}, ["冰島"] = {container = "歐洲", wp = "冰島"}, ["愛爾蘭"] = {container = "歐洲", divs = {"provinces", "counties"}, wp = "愛爾蘭"}, ["意大利"] = {container = "歐洲", divs = {"regions"}, wp = "意大利"}, ["義大利"] = {alias_of = "意大利"}, ["科索沃"] = {container = "歐洲", wp = "科索沃"}, ["拉脫維亞"] = {container = "歐洲", wp = "拉脫維亞"}, ["拉托維亞"] = {alias_of = "拉脫維亞"}, ["列支敦士登"] = {container = "歐洲", wp = "列支敦士登"}, ["列支敦斯登"] = {alias_of = "列支敦士登"}, ["立陶宛"] = {container = "歐洲", wp = "立陶宛"}, ["盧森堡"] = {container = "歐洲", wp = "盧森堡"}, ["北馬其頓"] = {container = "歐洲", wp = "北馬其頓"}, ["馬耳他"] = {container = "歐洲", wp = "馬耳他"}, ["馬爾他"] = {alias_of = "馬耳他"}, ["摩爾多瓦"] = {container = "歐洲", wp = "摩爾多瓦"}, ["摩納哥"] = {container = "歐洲", is_city = true, wp = "摩納哥"}, ["黑山"] = {container = "歐洲", wp = "黑山"}, ["蒙特內哥羅"] = {alias_of = "黑山"}, ["荷蘭"] = {container = "歐洲", divs = {"provinces"}, wp = "荷蘭"}, ["尼德蘭"] = {alias_of = "荷蘭"}, ["挪威"] = {container = "歐洲", wp = "挪威"}, ["波蘭"] = {container = "歐洲", divs = {"voivodeships"}, wp = "波蘭"}, ["葡萄牙"] = {container = "歐洲", divs = {"districts"}, wp = "葡萄牙"}, ["羅馬尼亞"] = {container = "歐洲", wp = "羅馬尼亞"}, ["聖馬力諾"] = {container = "歐洲", wp = "聖馬力諾"}, ["聖馬利諾"] = {alias_of = "聖馬力諾"}, ["塞爾維亞"] = {container = "歐洲", wp = "塞爾維亞"}, ["斯洛伐克"] = {container = "歐洲", wp = "斯洛伐克"}, ["斯洛文尼亞"] = {container = "歐洲", wp = "斯洛文尼亞"}, ["斯洛維尼亞"] = {alias_of = "斯洛文尼亞"}, ["西班牙"] = {container = "歐洲", divs = {"autonomous communities"}, wp = "西班牙"}, ["瑞典"] = {container = "歐洲", wp = "瑞典"}, ["瑞士"] = {container = "歐洲", divs = {"cantons"}, wp = "瑞士"}, ["烏克蘭"] = {container = "歐洲", divs = {"oblasts"}, wp = "烏克蘭"}, ["英國"] = {container = "歐洲", divs = { {type = "constituent countries", cat_as = "constituent countries"}, }, wp = "英國"}, -- North America ["加拿大"] = {container = "北美洲", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, }, wp = "加拿大"}, ["墨西哥"] = {container = "北美洲", divs = {"states"}, wp = "墨西哥"}, ["美國"] = {container = "北美洲", divs = {"states"}, wp = "美國"}, -- Central America ["伯利茲"] = {container = "中美洲", wp = "伯利茲"}, ["貝里斯"] = {alias_of = "伯利茲"}, ["哥斯達黎加"] = {container = "中美洲", wp = "哥斯達黎加"}, ["哥斯大黎加"] = {alias_of = "哥斯達黎加"}, ["薩爾瓦多"] = {container = "中美洲", wp = "薩爾瓦多"}, ["危地馬拉"] = {container = "中美洲", wp = "危地馬拉"}, ["瓜地馬拉"] = {alias_of = "危地馬拉"}, ["洪都拉斯"] = {container = "中美洲", wp = "洪都拉斯"}, ["宏都拉斯"] = {alias_of = "洪都拉斯"}, ["尼加拉瓜"] = {container = "中美洲", wp = "尼加拉瓜"}, ["巴拿馬"] = {container = "中美洲", wp = "巴拿馬"}, -- Caribbean ["安提瓜和巴布達"] = {container = "加勒比地區", wp = "安提瓜和巴布達"}, ["安地卡及巴布達"] = {alias_of = "安提瓜和巴布達"}, ["巴哈馬"] = {container = "加勒比地區", wp = "巴哈馬"}, ["巴巴多斯"] = {container = "加勒比地區", wp = "巴巴多斯"}, ["巴貝多"] = {alias_of = "巴巴多斯"}, ["古巴"] = {container = "加勒比地區", wp = "古巴"}, ["多米尼克"] = {container = "加勒比地區", wp = "多米尼克"}, ["多米尼加共和國"] = {container = "加勒比地區", wp = "多米尼加"}, ["多明尼加共和國"] = {alias_of = "多米尼加共和國"}, ["格林納達"] = {container = "加勒比地區", wp = "格林納達"}, ["格瑞那達"] = {alias_of = "格林納達"}, ["海地"] = {container = "加勒比地區", wp = "海地"}, ["牙買加"] = {container = "加勒比地區", wp = "牙買加"}, ["聖基茨和尼維斯"] = {container = "加勒比地區", wp = "聖基茨和尼維斯"}, ["聖克里斯多福及尼維斯"] = {alias_of = "聖基茨和尼維斯"}, ["聖盧西亞"] = {container = "加勒比地區", wp = "聖盧西亞"}, ["聖露西亞"] = {alias_of = "聖盧西亞"}, ["聖文森特和格林納丁斯"] = {container = "加勒比地區", wp = "聖文森特和格林納丁斯"}, ["聖文森及格瑞那丁"] = {alias_of = "聖文森特和格林納丁斯"}, ["特立尼達和多巴哥"] = {container = "加勒比地區", wp = "特立尼達和多巴哥"}, ["千里達及托巴哥"] = {alias_of = "特立尼達和多巴哥"}, -- South America ["阿根廷"] = {container = "南美洲", divs = {"provinces"}, wp = "阿根廷"}, ["玻利維亞"] = {container = "南美洲", wp = "玻利維亞"}, ["巴西"] = {container = "南美洲", divs = {"states"}, wp = "巴西"}, ["智利"] = {container = "南美洲", wp = "智利"}, ["哥倫比亞"] = {container = "南美洲", wp = "哥倫比亞"}, ["厄瓜多爾"] = {container = "南美洲", wp = "厄瓜多爾"}, ["厄瓜多"] = {alias_of = "厄瓜多爾"}, ["圭亞那"] = {container = "南美洲", wp = "圭亞那"}, ["蓋亞那"] = {alias_of = "圭亞那"}, ["巴拉圭"] = {container = "南美洲", wp = "巴拉圭"}, ["秘魯"] = {container = "南美洲", wp = "秘魯"}, ["蘇里南"] = {container = "南美洲", wp = "蘇里南"}, ["蘇利南"] = {alias_of = "蘇里南"}, ["烏拉圭"] = {container = "南美洲", wp = "烏拉圭"}, ["委內瑞拉"] = {container = "南美洲", wp = "委內瑞拉"}, -- Oceania ["澳大利亞"] = {container = "大洋洲", divs = { {type = "states", cat_as = "states and territories"}, {type = "territories", cat_as = "states and territories"}, }, wp = "澳大利亞"}, ["澳洲"] = {alias_of = "澳大利亞"}, ["斐濟"] = {container = "大洋洲", wp = "斐濟"}, ["基里巴斯"] = {container = "大洋洲", wp = "基里巴斯"}, ["吉里巴斯"] = {alias_of = "基里巴斯"}, ["馬紹爾群島"] = {container = "大洋洲", wp = "馬紹爾群島"}, ["密克羅尼西亞聯邦"] = {container = "大洋洲", wp = "密克羅尼西亞聯邦"}, ["瑙魯"] = {container = "大洋洲", wp = "瑙魯"}, ["諾魯"] = {alias_of = "瑙魯"}, ["新西蘭"] = {container = "大洋洲", wp = "新西蘭"}, ["紐西蘭"] = {alias_of = "新西蘭"}, ["帕勞"] = {container = "大洋洲", wp = "帕勞"}, ["帛琉"] = {alias_of = "帕勞"}, ["巴布亞新幾內亞"] = {container = "大洋洲", wp = "巴布亞新幾內亞"}, ["巴布亞紐幾內亞"] = {alias_of = "巴布亞新幾內亞"}, ["薩摩亞"] = {container = "大洋洲", wp = "薩摩亞"}, ["所羅門群島"] = {container = "大洋洲", wp = "所羅門群島"}, ["湯加"] = {container = "大洋洲", wp = "湯加"}, ["東加"] = {alias_of = "湯加"}, ["圖瓦盧"] = {container = "大洋洲", wp = "圖瓦盧"}, ["吐瓦魯"] = {alias_of = "圖瓦盧"}, ["瓦努阿圖"] = {container = "大洋洲", wp = "瓦努阿圖"}, ["萬那杜"] = {alias_of = "瓦努阿圖"}, } export.countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"+++", "countries"}, default_placetype = "country", default_no_container_cat = true, default_no_container_parent = true, default_no_auto_augment_container = true, placename_to_key = false, data = export.countries, } ----------------------------------------------------------------------------------- -- Country-like entities -- ----------------------------------------------------------------------------------- export.country_like_entities = { -- Special administrative regions of China ["香港"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, divs = {"districts"}, wp = "Hong Kong", }, ["澳門"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, wp = "Macau", }, -- Western Sahara ["西撒哈拉"] = { placetype = {"territory", "country"}, container = "非洲", wp = "Western Sahara", }, -- Kosovo (disputed) ["科索沃(部分承認)"] = {alias_of = "科索沃"}, -- Palestinian territories ["巴勒斯坦"] = { placetype = {"country", "territory"}, container = "亞洲", wp = "State of Palestine", }, -- Key overseas territories ["波多黎各"] = { placetype = {"commonwealth", "territory"}, container = "美國", addl_parents = {"加勒比地區"}, wp = "Puerto Rico", }, ["關島"] = { placetype = {"territory"}, container = "美國", addl_parents = {"密克羅尼西亞"}, wp = "Guam", }, ["新喀里多尼亞"] = { placetype = {"territory"}, container = "法國", addl_parents = {"大洋洲"}, wp = "New Caledonia", }, ["法屬圭亞那"] = { placetype = {"territory"}, container = "法國", addl_parents = {"南美洲"}, wp = "French Guiana", }, ["留尼旺"] = { placetype = {"territory"}, container = "法國", addl_parents = {"非洲"}, wp = "Réunion", }, ["馬丁尼克"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Martinique", }, ["瓜德羅普"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Guadeloupe", }, ["格陵蘭"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"北美洲"}, wp = "Greenland", }, ["法羅群島"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"歐洲"}, wp = "Faroe Islands", }, } export.country_like_entities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "country"), default_placetype = "territory", placename_to_key = false, data = export.country_like_entities, } ----------------------------------------------------------------------------------- -- Former countries -- ----------------------------------------------------------------------------------- export.former_countries = { ["蘇聯"] = { placetype = {"country"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Soviet Union", }, ["南斯拉夫"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Yugoslavia", }, ["捷克斯洛伐克"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Czechoslovakia", }, ["東德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "East Germany", }, ["西德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "West Germany", }, ["奧匈帝國"] = { placetype = {"empire"}, container = "歐洲", is_former_place = true, wp = "Austria-Hungary", }, ["鄂圖曼帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Ottoman Empire", }, ["奧斯曼帝國"] = {alias_of = "鄂圖曼帝國"}, ["羅馬帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲", "非洲"}, is_former_place = true, wp = "Roman Empire", }, ["大英帝國"] = { placetype = {"empire"}, is_former_place = true, wp = "British Empire", }, ["普魯士"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Prussia", }, } export.former_countries_group = { canonicalize_key_container = canonicalize_continent_container, default_placetype = "country", default_is_former_place = true, placename_to_key = false, data = export.former_countries, } ----------------------------------------------------------------------------------- -- United States states -- ----------------------------------------------------------------------------------- export.united_states_states = { ["阿拉巴馬"] = {wp = "Alabama"}, ["阿拉斯加"] = {wp = "Alaska"}, ["亞利桑那"] = {wp = "Arizona"}, ["阿肯色"] = {wp = "Arkansas"}, ["加利福尼亞"] = {wp = "California"}, ["加州"] = {alias_of = "加利福尼亞"}, ["科羅拉多"] = {wp = "Colorado"}, ["康乃狄克"] = {wp = "Connecticut"}, ["康涅狄格"] = {alias_of = "康乃狄克"}, ["德拉瓦"] = {wp = "Delaware"}, ["佛羅里達"] = {wp = "Florida"}, ["佛罗里达"] = {alias_of = "佛羅里達"}, ["佐治亞"] = {wp = "Georgia (U.S. state)"}, ["夏威夷"] = {addl_parents = {"玻里尼西亞"}, wp = "Hawaii"}, ["愛達荷"] = {wp = "Idaho"}, ["伊利諾伊"] = {wp = "Illinois"}, ["伊利诺伊"] = {alias_of = "伊利諾伊"}, ["印地安那"] = {wp = "Indiana"}, ["印第安納"] = {alias_of = "印地安那"}, ["愛荷華"] = {wp = "Iowa"}, ["堪薩斯"] = {wp = "Kansas"}, ["肯塔基"] = {wp = "Kentucky"}, ["路易斯安那"] = {wp = "Louisiana"}, ["緬因"] = {wp = "Maine"}, ["馬里蘭"] = {wp = "Maryland"}, ["麻薩諸塞"] = {wp = "Massachusetts"}, ["麻薩诸塞"] = {alias_of = "麻薩諸塞"}, ["密西根"] = {wp = "Michigan"}, ["密歇根"] = {alias_of = "密西根"}, ["明尼蘇達"] = {wp = "Minnesota"}, ["明尼苏达"] = {alias_of = "明尼蘇達"}, ["密西西比"] = {wp = "Mississippi"}, ["密蘇里"] = {wp = "Missouri"}, ["蒙大拿"] = {wp = "Montana"}, ["內布拉斯加"] = {wp = "Nebraska"}, ["內華達"] = {wp = "Nevada"}, ["新罕布什爾"] = {wp = "New Hampshire"}, ["新澤西"] = {wp = "New Jersey"}, ["新泽西"] = {alias_of = "新澤西"}, ["新墨西哥"] = {wp = "New Mexico"}, ["紐約"] = {wp = "New York (state)"}, ["纽约"] = {alias_of = "紐約"}, ["北卡羅來納"] = {wp = "North Carolina"}, ["北达科他"] = {alias_of = "北達科他"}, ["北達科他"] = {wp = "North Dakota"}, ["俄亥俄"] = {wp = "Ohio"}, ["奧克拉荷馬"] = {wp = "Oklahoma"}, ["奧勒岡"] = {wp = "Oregon"}, ["俄勒冈"] = {alias_of = "奧勒岡"}, ["賓夕法尼亞"] = {wp = "Pennsylvania"}, ["宾夕法尼亚"] = {alias_of = "賓夕法尼亞"}, ["羅德島"] = {wp = "Rhode Island"}, ["南卡羅來納"] = {wp = "South Carolina"}, ["南達科他"] = {wp = "South Dakota"}, ["田納西"] = {wp = "Tennessee"}, ["田纳西"] = {alias_of = "田納西"}, ["德克薩斯"] = {wp = "Texas"}, ["德州"] = {alias_of = "德克薩斯"}, ["猶他"] = {wp = "Utah"}, ["佛蒙特"] = {wp = "Vermont"}, ["弗吉尼亞"] = {wp = "Virginia"}, ["弗吉尼亚"] = {alias_of = "弗吉尼亞"}, ["維吉尼亞"] = {alias_of = "弗吉尼亞"}, ["華盛頓州"] = {wp = "Washington (state)"}, ["华盛顿州"] = {alias_of = "華盛頓州"}, ["西維吉尼亞"] = {wp = "West Virginia"}, ["西弗吉尼亞"] = {alias_of = "西維吉尼亞"}, ["威斯康辛"] = {wp = "Wisconsin"}, ["懷俄明"] = {wp = "Wyoming"}, -- Washington D.C. (federal district, treated like a state in holonym context) ["華盛頓特區"] = {placetype = {"federal district", "district"}, wp = "Washington, D.C."}, } export.united_states_group = { placename_to_key = false, default_container = "美國", default_placetype = "state", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, }, data = export.united_states_states, } ----------------------------------------------------------------------------------- -- United Kingdom constituent countries -- ----------------------------------------------------------------------------------- export.united_kingdom_constituent_countries = { ["英格蘭"] = {divs = {"counties", "districts"}, wp = "England"}, ["北愛爾蘭"] = { placetype = {"constituent country", "province", "country"}, divs = {"counties", "districts"}, wp = "Northern Ireland", }, ["蘇格蘭"] = {divs = {{type = "council areas", container_parent_type = false}}, wp = "Scotland"}, ["威爾斯"] = {divs = {"counties"}, wp = "Wales"}, ["威爾士"] = {alias_of = "威爾斯"}, } export.united_kingdom_group = { placename_to_key = false, default_container = "英國", default_placetype = {"constituent country", "country"}, default_no_container_cat = true, data = export.united_kingdom_constituent_countries, } -- Scotland council areas export.scotland_council_areas = { ["Aberdeen市"] = {wp = "Aberdeen"}, ["Aberdeenshire"] = {wp = "Aberdeenshire"}, ["Angus"] = {wp = "Angus, Scotland"}, ["Argyll and Bute"] = {wp = "Argyll and Bute"}, ["Clackmannanshire"] = {wp = "Clackmannanshire"}, ["Dumfries and Galloway"] = {wp = "Dumfries and Galloway"}, ["Dundee市"] = {wp = "Dundee"}, ["East Ayrshire"] = {wp = "East Ayrshire"}, ["East Dunbartonshire"] = {wp = "East Dunbartonshire"}, ["East Lothian"] = {wp = "East Lothian"}, ["East Renfrewshire"] = {wp = "East Renfrewshire"}, ["Edinburgh市"] = {wp = "Edinburgh"}, ["Eilean Siar"] = {wp = "Outer Hebrides"}, ["Falkirk"] = {wp = "Falkirk"}, ["Fife"] = {wp = "Fife"}, ["Glasgow市"] = {wp = "Glasgow"}, ["高地"] = {wp = "Highland council area"}, ["Highland"] = {alias_of = "高地", display = true}, ["Inverclyde"] = {wp = "Inverclyde"}, ["Midlothian"] = {wp = "Midlothian"}, ["Moray"] = {wp = "Moray"}, ["North Ayrshire"] = {wp = "North Ayrshire"}, ["North Lanarkshire"] = {wp = "North Lanarkshire"}, ["Orkney群島"] = {wp = "Orkney"}, ["Perth and Kinross"] = {wp = "Perth and Kinross"}, ["Renfrewshire"] = {wp = "Renfrewshire"}, ["Scottish Borders"] = {wp = "Scottish Borders"}, ["Shetland群島"] = {wp = "Shetland"}, ["South Ayrshire"] = {wp = "South Ayrshire"}, ["South Lanarkshire"] = {wp = "South Lanarkshire"}, ["Stirling"] = {wp = "Stirling (council area)"}, ["West Dunbartonshire"] = {wp = "West Dunbartonshire"}, ["West Lothian"] = {wp = "West Lothian"}, } export.scotland_group = { placename_to_key = false, default_container = "蘇格蘭", default_placetype = "council area", data = export.scotland_council_areas, } -- England counties (ceremonial) export.england_counties = { -- Metropolitan counties ["大倫敦"] = {wp = "Greater London"}, ["大曼徹斯特"] = {wp = "Greater Manchester"}, ["默西賽德郡"] = {wp = "Merseyside"}, ["西密德蘭"] = {wp = "West Midlands (county)"}, ["南約克郡"] = {wp = "South Yorkshire"}, ["西約克郡"] = {wp = "West Yorkshire"}, ["泰恩-威爾郡"] = {wp = "Tyne and Wear"}, -- Non-metropolitan ceremonial counties ["貝德福德郡"] = {wp = "Bedfordshire"}, ["伯克郡"] = {wp = "Berkshire"}, ["白金漢郡"] = {wp = "Buckinghamshire"}, ["劍橋郡"] = {wp = "Cambridgeshire"}, ["柴郡"] = {wp = "Cheshire"}, ["康沃爾郡"] = {wp = "Cornwall"}, ["坎布里亞郡"] = {wp = "Cumbria"}, ["德比郡"] = {wp = "Derbyshire"}, ["德文郡"] = {wp = "Devon"}, ["多塞特郡"] = {wp = "Dorset"}, ["達勒姆郡"] = {wp = "County Durham"}, ["約克郡東區"] = {wp = "East Riding of Yorkshire"}, ["東薩塞克斯郡"] = {wp = "East Sussex"}, ["埃塞克斯郡"] = {wp = "Essex"}, ["格洛斯特郡"] = {wp = "Gloucestershire"}, ["漢普郡"] = {wp = "Hampshire"}, ["赫里福德郡"] = {wp = "Herefordshire"}, ["赫特福德郡"] = {wp = "Hertfordshire"}, ["懷特島"] = {wp = "Isle of Wight"}, ["肯特郡"] = {wp = "Kent"}, ["蘭開夏郡"] = {wp = "Lancashire"}, ["萊斯特郡"] = {wp = "Leicestershire"}, ["林肯郡"] = {wp = "Lincolnshire"}, ["諾福克郡"] = {wp = "Norfolk"}, ["北安普敦郡"] = {wp = "Northamptonshire"}, ["諾森伯蘭郡"] = {wp = "Northumberland"}, ["北約克郡"] = {wp = "North Yorkshire"}, ["諾丁漢郡"] = {wp = "Nottinghamshire"}, ["牛津郡"] = {wp = "Oxfordshire"}, ["拉特蘭郡"] = {wp = "Rutland"}, ["什羅普郡"] = {wp = "Shropshire"}, ["薩默塞特郡"] = {wp = "Somerset"}, ["南亨伯賽德郡"] = {wp = "South Humberside"}, ["斯塔福德郡"] = {wp = "Staffordshire"}, ["薩福克郡"] = {wp = "Suffolk"}, ["薩里郡"] = {wp = "Surrey"}, ["沃里克郡"] = {wp = "Warwickshire"}, ["西薩塞克斯郡"] = {wp = "West Sussex"}, ["威爾特郡"] = {wp = "Wiltshire"}, ["伍斯特郡"] = {wp = "Worcestershire"}, } export.england_group = { placename_to_key = false, default_container = {key = "英格蘭", placetype = "constituent country"}, default_placetype = "county", data = export.england_counties, } -- Counties of Northern Ireland export.northern_ireland_counties = { ["安特里姆郡"] = {wp = "County Antrim"}, ["阿爾馬郡"] = {wp = "County Armagh"}, ["貝爾法斯特市"] = {is_city = true, wp = "Belfast"}, ["唐郡"] = {wp = "County Down"}, ["弗馬納郡"] = {wp = "County Fermanagh"}, ["倫敦德里郡"] = {wp = "County Londonderry"}, ["德里市"] = {is_city = true, wp = "Derry"}, ["泰龍郡"] = {wp = "County Tyrone"}, } export.northern_ireland_group = { placename_to_key = false, default_container = {key = "北愛爾蘭", placetype = "constituent country"}, default_placetype = "county", data = export.northern_ireland_counties, } -- Counties of Ireland export.ireland_counties = { ["卡洛郡"] = {wp = "County Carlow"}, ["卡文郡"] = {wp = "County Cavan"}, ["克萊爾郡"] = {wp = "County Clare"}, ["科克郡"] = {wp = "County Cork"}, ["多尼戈爾郡"] = {wp = "County Donegal"}, ["都柏林郡"] = {wp = "County Dublin"}, ["戈爾韋郡"] = {wp = "County Galway"}, ["克里郡"] = {wp = "County Kerry"}, ["基爾代爾郡"] = {wp = "County Kildare"}, ["基爾肯尼郡"] = {wp = "County Kilkenny"}, ["萊什郡"] = {wp = "County Laois"}, ["利特里姆郡"] = {wp = "County Leitrim"}, ["利默里克郡"] = {wp = "County Limerick"}, ["朗福德郡"] = {wp = "County Longford"}, ["勞斯郡"] = {wp = "County Louth"}, ["梅奧郡"] = {wp = "County Mayo"}, ["米斯郡"] = {wp = "County Meath"}, ["莫納亨郡"] = {wp = "County Monaghan"}, ["奧法利郡"] = {wp = "County Offaly"}, ["羅斯康芒郡"] = {wp = "County Roscommon"}, ["斯萊戈郡"] = {wp = "County Sligo"}, ["蒂珀雷里郡"] = {wp = "County Tipperary"}, ["沃特福德郡"] = {wp = "County Waterford"}, ["西米斯郡"] = {wp = "County Westmeath"}, ["韋克斯福德郡"] = {wp = "County Wexford"}, ["威克洛郡"] = {wp = "County Wicklow"}, } export.ireland_group = { placename_to_key = false, default_container = "愛爾蘭", default_placetype = "county", data = export.ireland_counties, } ----------------------------------------------------------------------------------- -- China provinces -- ----------------------------------------------------------------------------------- export.china_provinces = { -- Provinces ["安徽"] = {wp = "安徽省"}, ["福建"] = {wp = "福建省"}, ["甘肅"] = {wp = "甘肅省"}, ["廣東"] = {wp = "廣東省"}, ["貴州"] = {wp = "貴州省"}, ["海南"] = {wp = "海南省"}, ["河北"] = {wp = "河北省"}, ["黑龍江"] = {wp = "黑龍江省"}, ["河南"] = {wp = "河南省"}, ["湖北"] = {wp = "湖北省"}, ["湖南"] = {wp = "湖南省"}, ["江蘇"] = {wp = "江蘇省"}, ["江西"] = {wp = "江西省"}, ["吉林"] = {wp = "吉林省"}, ["遼寧"] = {wp = "遼寧省"}, ["青海"] = {wp = "青海省"}, ["陝西"] = {wp = "陝西省"}, ["山東"] = {wp = "山東省"}, ["山西"] = {wp = "山西省"}, ["四川"] = {wp = "四川省"}, ["雲南"] = {wp = "雲南省"}, ["浙江"] = {wp = "浙江省"}, -- Autonomous regions ["廣西壯族自治區"] = {placetype = "autonomous region", wp = "廣西壯族自治區"}, ["廣西"] = {alias_of = "廣西壯族自治區"}, ["內蒙古自治區"] = {placetype = "autonomous region", wp = "內蒙古自治區"}, ["內蒙古"] = {alias_of = "內蒙古自治區"}, ["寧夏回族自治區"] = {placetype = "autonomous region", wp = "寧夏回族自治區"}, ["寧夏"] = {alias_of = "寧夏回族自治區"}, ["西藏自治區"] = {placetype = "autonomous region", wp = "西藏自治區"}, ["西藏"] = {alias_of = "西藏自治區"}, ["新疆維吾爾自治區"] = {placetype = "autonomous region", wp = "新疆維吾爾自治區"}, ["新疆"] = {alias_of = "新疆維吾爾自治區"}, -- Direct-administered municipalities (treated as province-level for holonym purposes) ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "北京市"}, ["北京市"] = {alias_of = "北京"}, ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "上海市"}, ["上海市"] = {alias_of = "上海"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "天津市"}, ["天津市"] = {alias_of = "天津"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "重慶市"}, ["重慶市"] = {alias_of = "重慶"}, } export.china_group = { placename_to_key = false, default_container = "中國", default_placetype = "province", default_divs = { "prefecture-level cities", "districts", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_provinces, } ----------------------------------------------------------------------------------- -- Taiwan counties -- ----------------------------------------------------------------------------------- -- Note: In zhwikt, Taiwan county keys use Chinese names directly. -- The enwikt-style lookup `taiwan_counties["Chiayi County, Taiwan"]` will return nil -- (correct: no English suffix auto-detection for Chinese holonym names). export.taiwan_counties = { ["彰化縣"] = {wp = "彰化縣"}, ["彰化"] = {alias_of = "彰化縣", display = true}, ["嘉義縣"] = {wp = "嘉義縣"}, ["新竹縣"] = {wp = "新竹縣"}, ["花蓮縣"] = {wp = "花蓮縣"}, ["花蓮"] = {alias_of = "花蓮縣", display = true}, ["金門縣"] = {wp = "金門縣"}, ["金門"] = {alias_of = "金門縣", display = true}, ["連江縣"] = {wp = "連江縣"}, ["連江"] = {alias_of = "連江縣", display = true}, ["苗栗縣"] = {wp = "苗栗縣"}, ["苗栗"] = {alias_of = "苗栗縣", display = true}, ["南投縣"] = {wp = "南投縣"}, ["南投"] = {alias_of = "南投縣", display = true}, ["澎湖縣"] = {wp = "澎湖縣"}, ["澎湖"] = {alias_of = "澎湖縣", display = true}, ["屏東縣"] = {wp = "屏東縣"}, ["澎湖"] = {alias_of = "澎湖縣", display = true}, ["澎湖縣"] = {wp = "澎湖縣"}, ["澎湖"] = {alias_of = "澎湖縣", display = true}, ["宜蘭縣"] = {wp = "宜蘭縣"}, ["宜蘭"] = {alias_of = "宜蘭縣", display = true}, ["雲林縣"] = {wp = "雲林縣"}, ["雲林"] = {alias_of = "雲林縣", display = true}, -- Special municipalities (province-level) ["臺北市"] = {placetype = "special municipality", wp = "臺北市"}, ["基隆"] = {alias_of = "基隆市", display = true}, ["新北市"] = {placetype = "special municipality", wp = "新北市"}, ["新北"] = {alias_of = "新北市", display = true}, ["桃園市"] = {placetype = "special municipality", wp = "桃園市"}, ["桃園"] = {alias_of = "桃園市", display = true}, ["臺中市"] = {placetype = "special municipality", wp = "臺中市"}, ["臺中"] = {alias_of = "臺中市", display = true}, ["臺南市"] = {placetype = "special municipality", wp = "臺南市"}, ["臺南"] = {alias_of = "臺南市", display = true}, ["高雄"] = {placetype = "special municipality", wp = "高雄市"}, ["高雄市"] = {alias_of = "高雄市", display = true}, ["嘉義"] = {placetype = "city", wp = "嘉義市"}, ["新竹"] = {placetype = "city", wp = "新竹市"}, ["基隆市"] = {placetype = "city", wp = "基隆市"}, ["基隆"] = {alias_of = "基隆市", display = true}, } export.taiwan_group = { placename_to_key = false, default_container = "臺灣", default_placetype = "county", default_divs = {"districts", "townships"}, data = export.taiwan_counties, } ----------------------------------------------------------------------------------- -- Canada provinces and territories -- ----------------------------------------------------------------------------------- export.canada_provinces_and_territories = { ["亞伯達"] = {wp = "Alberta"}, ["艾伯塔"] = {alias_of = "亞伯達"}, ["英屬哥倫比亞"] = {wp = "British Columbia"}, ["卑詩省"] = {alias_of = "英屬哥倫比亞"}, ["馬尼托巴"] = {wp = "Manitoba"}, ["新不倫瑞克"] = {wp = "New Brunswick"}, ["紐芬蘭與拉布拉多"] = {wp = "Newfoundland and Labrador"}, ["西北地區"] = {placetype = "territory", wp = "Northwest Territories"}, ["新斯科舍"] = {wp = "Nova Scotia"}, ["努納武特"] = {placetype = "territory", wp = "Nunavut"}, ["安大略"] = {divs = {"counties", "regional municipalities"}, wp = "Ontario"}, ["愛德華王子島"] = {wp = "Prince Edward Island"}, ["魁北克"] = {wp = "Quebec"}, ["薩斯喀徹溫"] = {wp = "Saskatchewan"}, ["育空"] = {placetype = "territory", wp = "Yukon"}, } export.canada_group = { placename_to_key = false, default_container = "加拿大", default_placetype = "province", data = export.canada_provinces_and_territories, } ----------------------------------------------------------------------------------- -- Australia states and territories -- ----------------------------------------------------------------------------------- export.australia_states_and_territories = { ["新南威爾斯"] = {wp = "New South Wales"}, ["維多利亞州"] = {wp = "Victoria (Australia)"}, ["昆士蘭"] = {wp = "Queensland"}, ["南澳大利亞"] = {wp = "South Australia"}, ["西澳大利亞"] = {wp = "Western Australia"}, ["塔斯馬尼亞"] = {wp = "Tasmania"}, ["澳大利亞首都領地"] = {placetype = "territory", wp = "Australian Capital Territory"}, ["北領地"] = {placetype = "territory", wp = "Northern Territory"}, } export.australia_group = { placename_to_key = false, default_container = "澳大利亞", default_placetype = "state", data = export.australia_states_and_territories, } ----------------------------------------------------------------------------------- -- India states and union territories -- ----------------------------------------------------------------------------------- export.india_states_and_union_territories = { ["安達曼-尼科巴群島"] = {placetype = "union territory", wp = "Andaman and Nicobar Islands"}, ["安得拉邦"] = {wp = "Andhra Pradesh"}, ["阿魯納恰爾邦"] = {wp = "Arunachal Pradesh"}, ["阿薩姆"] = {wp = "Assam"}, ["比哈爾邦"] = {wp = "Bihar"}, ["昌迪加爾"] = {placetype = "union territory", wp = "Chandigarh"}, ["恰蒂斯加爾邦"] = {wp = "Chhattisgarh"}, ["達德拉-納加爾哈維利和達曼-第烏"] = {placetype = "union territory", wp = "Dadra and Nagar Haveli and Daman and Diu"}, ["德里"] = {placetype = "union territory", wp = "Delhi"}, ["果阿"] = {wp = "Goa"}, ["古吉拉特邦"] = {wp = "Gujarat"}, ["哈里亞納邦"] = {wp = "Haryana"}, ["喜馬偕爾邦"] = {wp = "Himachal Pradesh"}, ["查謨和克什米爾"] = {placetype = "union territory", wp = "Jammu and Kashmir (union territory)"}, ["賈坎德邦"] = {wp = "Jharkhand"}, ["卡納塔克邦"] = {wp = "Karnataka"}, ["喀拉拉邦"] = {wp = "Kerala"}, ["拉達克"] = {placetype = "union territory", wp = "Ladakh"}, ["拉克沙群島"] = {placetype = "union territory", wp = "Lakshadweep"}, ["中央邦"] = {wp = "Madhya Pradesh"}, ["馬哈拉施特拉邦"] = {wp = "Maharashtra"}, ["曼尼普爾邦"] = {wp = "Manipur"}, ["梅加拉亞邦"] = {wp = "Meghalaya"}, ["米佐拉姆邦"] = {wp = "Mizoram"}, ["那加蘭邦"] = {wp = "Nagaland"}, ["奧里薩邦"] = {wp = "Odisha"}, ["本地治里"] = {placetype = "union territory", wp = "Puducherry"}, ["旁遮普邦"] = {wp = "Punjab, India"}, ["拉賈斯坦邦"] = {wp = "Rajasthan"}, ["錫金"] = {wp = "Sikkim"}, ["泰米爾納德邦"] = {wp = "Tamil Nadu"}, ["特倫甘納邦"] = {wp = "Telangana"}, ["特里普拉邦"] = {wp = "Tripura"}, ["北方邦"] = {wp = "Uttar Pradesh"}, ["北阿坎德邦"] = {wp = "Uttarakhand"}, ["西孟加拉邦"] = {wp = "West Bengal"}, } export.india_group = { placename_to_key = false, default_container = "印度", default_placetype = "state", default_divs = {"districts"}, data = export.india_states_and_union_territories, } ----------------------------------------------------------------------------------- -- Japan prefectures -- ----------------------------------------------------------------------------------- -- Note: export.japan_prefectures is accessed directly by place-placetypes.lua -- using English-style keys (e.g. "Tokyo Prefecture, Japan"). Those lookups return -- nil for Chinese keys, which is correct: no English "Prefecture" suffix is added. export.japan_prefectures = { ["北海道"] = {placetype = {"prefecture"}, wp = "Hokkaido"}, ["青森縣"] = {wp = "Aomori Prefecture"}, ["岩手縣"] = {wp = "Iwate Prefecture"}, ["宮城縣"] = {wp = "Miyagi Prefecture"}, ["秋田縣"] = {wp = "Akita Prefecture"}, ["山形縣"] = {wp = "Yamagata Prefecture"}, ["福島縣"] = {wp = "Fukushima Prefecture"}, ["茨城縣"] = {wp = "Ibaraki Prefecture"}, ["栃木縣"] = {wp = "Tochigi Prefecture"}, ["群馬縣"] = {wp = "Gunma Prefecture"}, ["埼玉縣"] = {wp = "Saitama Prefecture"}, ["千葉縣"] = {wp = "Chiba Prefecture"}, ["東京都"] = {placetype = {"prefecture"}, wp = "Tokyo"}, ["神奈川縣"] = {wp = "Kanagawa Prefecture"}, ["新潟縣"] = {wp = "Niigata Prefecture"}, ["富山縣"] = {wp = "Toyama Prefecture"}, ["石川縣"] = {wp = "Ishikawa Prefecture"}, ["福井縣"] = {wp = "Fukui Prefecture"}, ["山梨縣"] = {wp = "Yamanashi Prefecture"}, ["長野縣"] = {wp = "Nagano Prefecture"}, ["岐阜縣"] = {wp = "Gifu Prefecture"}, ["靜岡縣"] = {wp = "Shizuoka Prefecture"}, ["愛知縣"] = {wp = "Aichi Prefecture"}, ["三重縣"] = {wp = "Mie Prefecture"}, ["滋賀縣"] = {wp = "Shiga Prefecture"}, ["京都府"] = {placetype = {"prefecture"}, wp = "Kyoto Prefecture"}, ["大阪府"] = {placetype = {"prefecture"}, wp = "Osaka Prefecture"}, ["兵庫縣"] = {wp = "Hyogo Prefecture"}, ["奈良縣"] = {wp = "Nara Prefecture"}, ["和歌山縣"] = {wp = "Wakayama Prefecture"}, ["鳥取縣"] = {wp = "Tottori Prefecture"}, ["島根縣"] = {wp = "Shimane Prefecture"}, ["岡山縣"] = {wp = "Okayama Prefecture"}, ["廣島縣"] = {wp = "Hiroshima Prefecture"}, ["山口縣"] = {wp = "Yamaguchi Prefecture"}, ["德島縣"] = {wp = "Tokushima Prefecture"}, ["香川縣"] = {wp = "Kagawa Prefecture"}, ["愛媛縣"] = {wp = "Ehime Prefecture"}, ["高知縣"] = {wp = "Kochi Prefecture"}, ["福岡縣"] = {wp = "Fukuoka Prefecture"}, ["佐賀縣"] = {wp = "Saga Prefecture"}, ["長崎縣"] = {wp = "Nagasaki Prefecture"}, ["熊本縣"] = {wp = "Kumamoto Prefecture"}, ["大分縣"] = {wp = "Oita Prefecture"}, ["宮崎縣"] = {wp = "Miyazaki Prefecture"}, ["鹿兒島縣"] = {wp = "Kagoshima Prefecture"}, ["沖繩縣"] = {wp = "Okinawa Prefecture"}, } export.japan_group = { placename_to_key = false, default_container = "日本", default_placetype = "prefecture", default_divs = {"cities", "districts"}, data = export.japan_prefectures, } ----------------------------------------------------------------------------------- -- Germany states (Bundesländer) -- ----------------------------------------------------------------------------------- export.germany_states = { ["巴登-符騰堡"] = {wp = "Baden-Württemberg"}, ["巴伐利亞"] = {wp = "Bavaria"}, ["柏林"] = {wp = "Berlin"}, ["布蘭登堡"] = {wp = "Brandenburg"}, ["不來梅"] = {wp = "Bremen"}, ["漢堡"] = {wp = "Hamburg"}, ["黑森"] = {wp = "Hesse"}, ["梅克倫堡-前波美拉尼亞"] = {wp = "Mecklenburg-Vorpommern"}, ["下薩克森"] = {wp = "Lower Saxony"}, ["北萊茵-威斯特法倫"] = {wp = "North Rhine-Westphalia"}, ["萊茵蘭-普法爾茨"] = {wp = "Rhineland-Palatinate"}, ["薩爾"] = {wp = "Saarland"}, ["薩克森"] = {wp = "Saxony"}, ["薩克森-安哈爾特"] = {wp = "Saxony-Anhalt"}, ["石勒蘇益格-荷爾斯泰因"] = {wp = "Schleswig-Holstein"}, ["圖林根"] = {wp = "Thuringia"}, } export.germany_group = { placename_to_key = false, default_container = "德國", default_placetype = "state", data = export.germany_states, } ----------------------------------------------------------------------------------- -- Italy regions (Regioni) -- ----------------------------------------------------------------------------------- export.italy_regions = { ["阿布魯佐"] = {wp = "Abruzzo"}, ["巴西利卡塔"] = {wp = "Basilicata"}, ["卡拉布里亞"] = {wp = "Calabria"}, ["坎帕尼亞"] = {wp = "Campania"}, ["艾米利亞-羅馬涅"] = {wp = "Emilia-Romagna"}, ["弗留利-威尼斯朱利亞"] = {wp = "Friuli-Venezia Giulia"}, ["拉齊奧"] = {wp = "Lazio"}, ["利古里亞"] = {wp = "Liguria"}, ["倫巴第"] = {wp = "Lombardy"}, ["倫巴底"] = {alias_of = "倫巴第"}, ["馬爾凱"] = {wp = "Marche"}, ["莫利塞"] = {wp = "Molise"}, ["皮埃蒙特"] = {wp = "Piedmont"}, ["普利亞"] = {wp = "Apulia"}, ["阿普利亞"] = {alias_of = "普利亞"}, ["薩丁尼亞"] = {wp = "Sardinia"}, ["西西里"] = {wp = "Sicily"}, ["托斯卡納"] = {wp = "Tuscany"}, ["特倫蒂諾-上阿迪傑"] = {wp = "Trentino-Alto Adige/Südtirol"}, ["翁布里亞"] = {wp = "Umbria"}, ["奧斯塔谷"] = {wp = "Aosta Valley"}, ["威尼托"] = {wp = "Veneto"}, } export.italy_group = { placename_to_key = false, default_container = "意大利", default_placetype = "region", data = export.italy_regions, } ----------------------------------------------------------------------------------- -- Spain autonomous communities (Comunidades autónomas) -- ----------------------------------------------------------------------------------- export.spain_autonomous_communities = { ["安達盧西亞"] = {wp = "Andalusia"}, ["安達魯西亞"] = {alias_of = "安達盧西亞"}, ["阿拉貢"] = {wp = "Aragon"}, ["阿斯圖里亞斯"] = {wp = "Asturias"}, ["巴利阿里群島"] = {wp = "Balearic Islands"}, ["巴斯克"] = {wp = "Basque Country (autonomous community)"}, ["加那利群島"] = {wp = "Canary Islands"}, ["坎塔布里亞"] = {wp = "Cantabria"}, ["卡斯蒂利亞-拉曼恰"] = {wp = "Castilla-La Mancha"}, ["卡斯蒂利亞-萊昂"] = {wp = "Castilla y León"}, ["加泰羅尼亞"] = {wp = "Catalonia"}, ["加泰隆尼亞"] = {alias_of = "加泰羅尼亞"}, ["埃斯特雷馬杜拉"] = {wp = "Extremadura"}, ["加利西亞"] = {wp = "Galicia (Spain)"}, ["拉里奧哈"] = {wp = "La Rioja (autonomous community)"}, ["馬德里自治區"] = {wp = "Community of Madrid"}, ["穆爾西亞"] = {wp = "Region of Murcia"}, ["納瓦拉"] = {wp = "Navarre"}, ["巴倫西亞"] = {wp = "Valencian Community"}, ["巴倫西亞自治區"] = {alias_of = "巴倫西亞"}, } export.spain_group = { placename_to_key = false, default_container = "西班牙", default_placetype = "autonomous community", data = export.spain_autonomous_communities, } ----------------------------------------------------------------------------------- -- China prefecture-level cities -- -- Mirrors enwikt china_prefecture_level_cities (168 entries) and -- -- china_prefecture_level_cities_2 (4 entries, merged here since Chinese names -- -- are unambiguous: 台州/泰州, 蘇州/宿州 do not clash). -- ----------------------------------------------------------------------------------- export.china_prefecture_level_cities = { -- Guangdong ["廣州"] = {container = "廣東", wp = "Guangzhou"}, ["東莞"] = {container = "廣東", wp = "Dongguan"}, ["佛山"] = {container = "廣東", wp = "Foshan"}, ["惠州"] = {container = "廣東", wp = "Huizhou"}, ["江門"] = {container = "廣東", wp = "Jiangmen"}, ["深圳"] = {container = "廣東", wp = "Shenzhen"}, ["中山"] = {container = "廣東", wp = "Zhongshan"}, ["汕頭"] = {container = "廣東", wp = "Shantou"}, ["潮州"] = {container = "廣東", wp = "Chaozhou"}, ["揭陽"] = {container = "廣東", wp = "Jieyang"}, ["珠海"] = {container = "廣東", wp = "Zhuhai"}, ["湛江"] = {container = "廣東", wp = "Zhanjiang"}, ["茂名"] = {container = "廣東", wp = "Maoming"}, ["清遠"] = {container = "廣東", wp = "Qingyuan"}, ["肇慶"] = {container = "廣東", wp = "Zhaoqing"}, -- Direct-administered municipalities (also in china_provinces; duplicated here for division categorisation) ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Shanghai"}, ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Beijing"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Chongqing"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Tianjin"}, -- Jiangsu ["常熟"] = {container = "江蘇", wp = "Changshu"}, ["常州"] = {container = "江蘇", wp = "Changzhou"}, ["蘇州"] = {container = "江蘇", wp = "Suzhou"}, ["無錫"] = {container = "江蘇", wp = "Wuxi"}, ["南京"] = {container = "江蘇", wp = "Nanjing"}, ["南通"] = {container = "江蘇", wp = "Nantong"}, ["江陰"] = {container = "江蘇", wp = "Jiangyin"}, ["張家港"] = {container = "江蘇", wp = "Zhangjiagang"}, ["徐州"] = {container = "江蘇", wp = "Xuzhou"}, ["揚州"] = {container = "江蘇", wp = "Yangzhou"}, ["鹽城"] = {container = "江蘇", wp = "Yancheng"}, ["淮安"] = {container = "江蘇", wp = "Huai'an"}, ["連雲港"] = {container = "江蘇", wp = "Lianyungang"}, ["宿遷"] = {container = "江蘇", wp = "Suqian"}, ["鎮江"] = {container = "江蘇", wp = "Zhenjiang"}, ["崑山"] = {container = "江蘇", wp = "Kunshan"}, ["泰州"] = {container = "江蘇", wp = "Taizhou, Jiangsu"}, -- distinct from 台州 (Zhejiang) -- Zhejiang ["杭州"] = {container = "浙江", wp = "Hangzhou"}, ["紹興"] = {container = "浙江", wp = "Shaoxing"}, ["寧波"] = {container = "浙江", wp = "Ningbo"}, ["慈溪"] = {container = "浙江", wp = "Cixi"}, ["余姚"] = {container = "浙江", wp = "Yuyao"}, ["溫州"] = {container = "浙江", wp = "Wenzhou"}, ["瑞安"] = {placetype = "county-level city", container = {key = "溫州", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Rui'an"}, ["台州"] = {container = "浙江", wp = "Taizhou, Zhejiang"}, ["義烏"] = {container = "浙江", wp = "Yiwu"}, ["嘉興"] = {container = "浙江", wp = "Jiaxing"}, ["金華"] = {container = "浙江", wp = "Jinhua"}, ["湖州"] = {container = "浙江", wp = "Huzhou"}, ["永康"] = {placetype = "county-level city", container = {key = "金華", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Yongkang, Zhejiang"}, -- Fujian ["廈門"] = {container = "福建", wp = "Xiamen"}, ["晉江"] = {container = "福建", wp = "Jinjiang"}, ["泉州"] = {container = "福建", wp = "Quanzhou"}, ["莆田"] = {container = "福建", wp = "Putian"}, ["福州"] = {container = "福建", wp = "Fuzhou"}, -- Shandong ["青島"] = {container = "山東", wp = "Qingdao"}, ["臨沂"] = {container = "山東", wp = "Linyi"}, ["淄博"] = {container = "山東", wp = "Zibo"}, ["濟南"] = {container = "山東", wp = "Jinan"}, ["濰坊"] = {container = "山東", wp = "Weifang"}, ["煙台"] = {container = "山東", wp = "Yantai"}, ["濟寧"] = {container = "山東", wp = "Jining"}, ["泰安"] = {container = "山東", wp = "Tai'an"}, ["威海"] = {container = "山東", wp = "Weihai"}, ["菏澤"] = {container = "山東", wp = "Heze"}, ["德州"] = {container = "山東", wp = "Dezhou"}, ["日照"] = {container = "山東", wp = "Rizhao"}, ["聊城"] = {container = "山東", wp = "Liaocheng"}, ["棗莊"] = {container = "山東", wp = "Zaozhuang"}, ["滕州"] = {placetype = "county-level city", container = {key = "棗莊", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Tengzhou"}, ["東營"] = {container = "山東", wp = "Dongying"}, -- Henan ["鄭州"] = {container = "河南", wp = "Zhengzhou"}, ["洛陽"] = {container = "河南", wp = "Luoyang"}, ["新鄉"] = {container = "河南", wp = "Xinxiang"}, ["信陽"] = {container = "河南", wp = "Xinyang"}, ["安陽"] = {container = "河南", wp = "Anyang"}, ["開封"] = {container = "河南", wp = "Kaifeng"}, ["許昌"] = {container = "河南", wp = "Xuchang"}, ["濮陽"] = {container = "河南", wp = "Puyang"}, ["商丘"] = {container = "河南", wp = "Shangqiu"}, ["南陽"] = {container = "河南", wp = "Nanyang, Henan"}, ["焦作"] = {container = "河南", wp = "Jiaozuo"}, ["平頂山"] = {container = "河南", wp = "Pingdingshan"}, ["周口"] = {container = "河南", wp = "Zhoukou"}, ["駐馬店"] = {container = "河南", wp = "Zhumadian"}, -- Hubei ["武漢"] = {container = "湖北", wp = "Wuhan"}, ["襄陽"] = {container = "湖北", wp = "Xiangyang"}, ["宜昌"] = {container = "湖北", wp = "Yichang"}, ["鄂州"] = {container = "湖北", wp = "Ezhou"}, ["十堰"] = {container = "湖北", wp = "Shiyan"}, -- Hunan ["長沙"] = {container = "湖南", wp = "Changsha"}, ["株洲"] = {container = "湖南", wp = "Zhuzhou"}, ["衡陽"] = {container = "湖南", wp = "Hengyang"}, ["邵陽"] = {container = "湖南", wp = "Shaoyang"}, ["岳陽"] = {container = "湖南", wp = "Yueyang"}, ["常德"] = {container = "湖南", wp = "Changde"}, ["瀏陽"] = {placetype = "county-level city", container = {key = "長沙", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Liuyang"}, -- Sichuan ["成都"] = {container = "四川", wp = "Chengdu"}, ["綿陽"] = {container = "四川", wp = "Mianyang"}, ["南充"] = {container = "四川", wp = "Nanchong"}, ["達州"] = {container = "四川", wp = "Dazhou"}, ["瀘州"] = {container = "四川", wp = "Luzhou"}, ["宜賓"] = {container = "四川", wp = "Yibin"}, -- Yunnan ["昆明"] = {container = "雲南", wp = "Kunming"}, ["曲靖"] = {container = "雲南", wp = "Qujing"}, -- Guizhou ["貴陽"] = {container = "貴州", wp = "Guiyang"}, ["遵義"] = {container = "貴州", wp = "Zunyi"}, ["六盤水"] = {container = "貴州", wp = "Liupanshui"}, ["畢節"] = {container = "貴州", wp = "Bijie"}, -- Shaanxi ["西安"] = {container = "陝西", wp = "Xi'an"}, ["咸陽"] = {container = "陝西", wp = "Xianyang"}, ["寶雞"] = {container = "陝西", wp = "Baoji"}, -- Heilongjiang ["哈爾濱"] = {container = "黑龍江", wp = "Harbin"}, ["大慶"] = {container = "黑龍江", wp = "Daqing"}, ["齊齊哈爾"] = {container = "黑龍江", wp = "Qiqihar"}, -- Liaoning ["瀋陽"] = {container = "遼寧", wp = "Shenyang"}, ["撫順"] = {container = "遼寧", wp = "Fushun"}, ["大連"] = {container = "遼寧", wp = "Dalian"}, ["鞍山"] = {container = "遼寧", wp = "Anshan"}, ["錦州"] = {container = "遼寧", wp = "Jinzhou"}, ["葫蘆島"] = {container = "遼寧", wp = "Huludao"}, ["盤錦"] = {container = "遼寧", wp = "Panjin"}, -- Jilin ["長春"] = {container = "吉林", wp = "Changchun"}, ["吉林市"] = {container = "吉林", wp = "Jilin City"}, -- distinct from 吉林 (province) -- Anhui ["合肥"] = {container = "安徽", wp = "Hefei"}, ["蚌埠"] = {container = "安徽", wp = "Bengbu"}, ["淮南"] = {container = "安徽", wp = "Huainan"}, ["蕪湖"] = {container = "安徽", wp = "Wuhu"}, ["淮北"] = {container = "安徽", wp = "Huaibei"}, ["滁州"] = {container = "安徽", wp = "Chuzhou"}, ["六安"] = {container = "安徽", wp = "Lu'an"}, ["阜陽"] = {container = "安徽", wp = "Fuyang, Anhui"}, ["宿州"] = {container = "安徽", wp = "Suzhou, Anhui"}, -- distinct from 蘇州 (Jiangsu) -- Hebei ["石家莊"] = {container = "河北", wp = "Shijiazhuang"}, ["邯鄲"] = {container = "河北", wp = "Handan"}, ["唐山"] = {container = "河北", wp = "Tangshan"}, ["秦皇島"] = {container = "河北", wp = "Qinhuangdao"}, ["邢台"] = {container = "河北", wp = "Xingtai"}, ["保定"] = {container = "河北", wp = "Baoding"}, ["張家口"] = {container = "河北", wp = "Zhangjiakou"}, ["衡水"] = {container = "河北", wp = "Hengshui"}, ["滄州"] = {container = "河北", wp = "Cangzhou"}, -- Shanxi ["太原"] = {container = "山西", wp = "Taiyuan"}, ["大同"] = {container = "山西", wp = "Datong"}, ["長治"] = {container = "山西", wp = "Changzhi"}, ["臨汾"] = {container = "山西", wp = "Linfen"}, -- Jiangxi ["南昌"] = {container = "江西", wp = "Nanchang"}, ["贛州"] = {container = "江西", wp = "Ganzhou"}, ["上饒"] = {container = "江西", wp = "Shangrao"}, ["九江"] = {container = "江西", wp = "Jiujiang"}, -- Guangxi (autonomous region) ["南寧"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Nanning"}, ["柳州"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Liuzhou"}, ["桂林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guilin"}, ["玉林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Yulin, Guangxi"}, ["北海"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Beihai"}, ["貴港"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guigang"}, -- Inner Mongolia (autonomous region) ["呼和浩特"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Hohhot"}, ["包頭"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Baotou"}, ["赤峰"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Chifeng"}, -- Xinjiang (autonomous region) ["烏魯木齊"] = {container = {key = "新疆", placetype = "autonomous region"}, wp = "Ürümqi"}, -- Ningxia (autonomous region) ["銀川"] = {container = {key = "寧夏", placetype = "autonomous region"}, wp = "Yinchuan"}, -- Hainan ["海口"] = {container = "海南", wp = "Haikou"}, -- Qinghai ["西寧"] = {container = "青海", wp = "Xining"}, -- Gansu ["蘭州"] = {container = "甘肅", wp = "Lanzhou"}, -- Chongqing subdivision (district 142 miles from Chongqing proper) ["萬州"] = {placetype = "district", container = {key = "重慶", placetype = "direct-administered municipality"}, divs = {"subdistricts", "townships"}, wp = "Wanzhou"}, -- County within Suqian prefecture-level city ["沭陽"] = {placetype = "county", container = {key = "宿遷", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Shuyang County"}, } export.china_prefecture_level_cities_group = { placename_to_key = false, default_placetype = {"prefecture-level city", "city"}, default_divs = { "districts", "subdistricts", "townships", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_prefecture_level_cities, } ----------------------------------------------------------------------------------- -- New York City boroughs -- ----------------------------------------------------------------------------------- export.new_york_boroughs = { ["布朗克斯"] = {the = true, wp = "The Bronx"}, ["布魯克林"] = {wp = "Brooklyn"}, ["曼哈頓"] = {wp = "Manhattan"}, ["皇后區"] = {wp = "Queens"}, ["史泰登島"] = {wp = "Staten Island"}, } export.new_york_boroughs_group = { placename_to_key = false, default_container = {key = "紐約市", placetype = "city"}, default_placetype = "borough", default_is_city = true, data = export.new_york_boroughs, } ----------------------------------------------------------------------------------- -- Romania counties -- ----------------------------------------------------------------------------------- export.romania_counties = { ["阿爾巴縣"] = {wp = "Alba County"}, ["阿拉德縣"] = {wp = "Arad County"}, ["阿爾傑什縣"] = {wp = "Argeș County"}, ["巴考縣"] = {wp = "Bacău County"}, ["比霍爾縣"] = {wp = "Bihor County"}, ["比斯特里察-訥瑟烏德縣"] = {wp = "Bistrița-Năsăud County"}, ["博托沙尼縣"] = {wp = "Botoșani County"}, ["布拉索夫縣"] = {wp = "Brașov County"}, ["布勒伊拉縣"] = {wp = "Brăila County"}, ["布澤烏縣"] = {wp = "Buzău County"}, ["卡拉什-塞韋林縣"] = {wp = "Caraș-Severin County"}, ["克盧日縣"] = {wp = "Cluj County"}, ["康斯坦察縣"] = {wp = "Constanța County"}, ["科瓦斯納縣"] = {wp = "Covasna County"}, ["克勒拉希縣"] = {wp = "Călărași County"}, ["多爾日縣"] = {wp = "Dolj County"}, ["登博維察縣"] = {wp = "Dâmbovița County"}, ["加拉茨縣"] = {wp = "Galați County"}, ["久爾久縣"] = {wp = "Giurgiu County"}, ["戈爾日縣"] = {wp = "Gorj County"}, ["哈爾吉塔縣"] = {wp = "Harghita County"}, ["胡內多阿拉縣"] = {wp = "Hunedoara County"}, ["雅洛米察縣"] = {wp = "Ialomița County"}, ["雅西縣"] = {wp = "Iași County"}, ["伊爾福夫縣"] = {wp = "Ilfov County"}, ["馬拉穆列什縣"] = {wp = "Maramureș County"}, ["梅赫丁茨縣"] = {wp = "Mehedinți County"}, ["穆列什縣"] = {wp = "Mureș County"}, ["尼亞姆茨縣"] = {wp = "Neamț County"}, ["奧爾特縣"] = {wp = "Olt County"}, ["普拉霍瓦縣"] = {wp = "Prahova County"}, ["薩圖馬雷縣"] = {wp = "Satu Mare County"}, ["錫比烏縣"] = {wp = "Sibiu County"}, ["蘇恰瓦縣"] = {wp = "Suceava County"}, ["瑟拉日縣"] = {wp = "Sălaj County"}, ["特列奧爾曼縣"] = {wp = "Teleorman County"}, ["蒂米什縣"] = {wp = "Timiș County"}, ["圖爾恰縣"] = {wp = "Tulcea County"}, ["瓦斯盧伊縣"] = {wp = "Vaslui County"}, ["弗蘭恰縣"] = {wp = "Vrancea County"}, ["沃爾恰縣"] = {wp = "Vâlcea County"}, } export.romania_group = { placename_to_key = false, default_container = "羅馬尼亞", default_placetype = "county", data = export.romania_counties, } ----------------------------------------------------------------------------------- -- Bulgaria provinces -- ----------------------------------------------------------------------------------- export.bulgaria_provinces = { ["布拉戈耶夫格勒省"] = {wp = "Blagoevgrad Province"}, ["布爾加斯省"] = {wp = "Burgas Province"}, ["多布里奇省"] = {wp = "Dobrich Province"}, ["加布羅沃省"] = {wp = "Gabrovo Province"}, ["哈斯科沃省"] = {wp = "Haskovo Province"}, ["卡爾扎利省"] = {wp = "Kardzhali Province"}, ["屈斯滕迪爾省"] = {wp = "Kyustendil Province"}, ["洛維奇省"] = {wp = "Lovech Province"}, ["蒙塔納省"] = {wp = "Montana Province"}, ["帕扎爾吉克省"] = {wp = "Pazardzhik Province"}, ["佩爾尼克省"] = {wp = "Pernik Province"}, ["普萊文省"] = {wp = "Pleven Province"}, ["普羅夫迪夫省"] = {wp = "Plovdiv Province"}, ["拉茲格勒省"] = {wp = "Razgrad Province"}, ["魯塞省"] = {wp = "Ruse Province"}, ["舒門省"] = {wp = "Shumen Province"}, ["錫利斯特拉省"] = {wp = "Silistra Province"}, ["斯利文省"] = {wp = "Sliven Province"}, ["斯莫梁省"] = {wp = "Smolyan Province"}, ["索非亞市省"] = {wp = "Sofia City Province"}, ["索非亞省"] = {wp = "Sofia Province"}, ["斯塔拉扎戈拉省"] = {wp = "Stara Zagora Province"}, ["特爾戈維什泰省"] = {wp = "Targovishte Province"}, ["瓦爾納省"] = {wp = "Varna Province"}, ["大特爾諾沃省"] = {wp = "Veliko Tarnovo Province"}, ["維丁省"] = {wp = "Vidin Province"}, ["弗拉察省"] = {wp = "Vratsa Province"}, ["揚博爾省"] = {wp = "Yambol Province"}, } export.bulgaria_group = { placename_to_key = false, default_container = "保加利亞", default_placetype = "province", data = export.bulgaria_provinces, } ----------------------------------------------------------------------------------- -- Iran provinces -- ----------------------------------------------------------------------------------- export.iran_provinces = { ["阿爾博爾茲省"] = {wp = "Alborz Province"}, ["阿爾達比勒省"] = {wp = "Ardabil Province"}, ["布什爾省"] = {wp = "Bushehr Province"}, ["恰哈爾馬哈勒-巴赫蒂亞里省"] = {wp = "Chaharmahal and Bakhtiari Province"}, ["東阿塞拜疆省"] = {wp = "East Azerbaijan Province"}, ["法爾斯省"] = {wp = "Fars Province"}, ["帕爾斯省"] = {alias_of = "法爾斯省"}, ["吉蘭省"] = {wp = "Gilan Province"}, ["戈勒斯坦省"] = {wp = "Golestan Province"}, ["哈馬丹省"] = {wp = "Hamadan Province"}, ["霍爾木茲甘省"] = {wp = "Hormozgan Province"}, ["伊拉姆省"] = {wp = "Ilam Province"}, ["伊斯法罕省"] = {wp = "Isfahan Province"}, ["克爾曼省"] = {wp = "Kerman Province"}, ["克爾曼沙赫省"] = {wp = "Kermanshah Province"}, ["胡齊斯坦省"] = {wp = "Khuzestan Province"}, ["科吉盧耶-博亞赫邁德省"] = {wp = "Kohgiluyeh and Boyer-Ahmad Province"}, ["庫爾德斯坦省"] = {wp = "Kurdistan Province"}, ["洛雷斯坦省"] = {wp = "Lorestan Province"}, ["馬爾卡齊省"] = {wp = "Markazi Province"}, ["馬贊達蘭省"] = {wp = "Mazandaran Province"}, ["北呼羅珊省"] = {wp = "North Khorasan Province"}, ["加茲溫省"] = {wp = "Qazvin Province"}, ["庫姆省"] = {wp = "Qom Province"}, ["拉扎維呼羅珊省"] = {wp = "Razavi Khorasan Province"}, ["森南省"] = {wp = "Semnan Province"}, ["錫斯坦-俾路支斯坦省"] = {wp = "Sistan and Baluchestan Province"}, ["南呼羅珊省"] = {wp = "South Khorasan Province"}, ["德黑蘭省"] = {wp = "Tehran Province"}, ["西阿塞拜疆省"] = {wp = "West Azerbaijan Province"}, ["亞茲德省"] = {wp = "Yazd Province"}, ["贊詹省"] = {wp = "Zanjan Province"}, } export.iran_group = { placename_to_key = false, default_container = "伊朗", default_placetype = "province", data = export.iran_provinces, } ----------------------------------------------------------------------------------- -- Laos provinces -- ----------------------------------------------------------------------------------- export.laos_provinces = { ["阿塔坡省"] = {wp = "Attapeu Province"}, ["博膠省"] = {wp = "Bokeo Province"}, ["波里坎賽省"] = {wp = "Bolikhamxai Province"}, ["占巴塞省"] = {wp = "Champasak Province"}, ["華潘省"] = {wp = "Houaphanh Province"}, ["甘蒙省"] = {wp = "Khammouane Province"}, ["南塔省"] = {wp = "Luang Namtha Province"}, ["琅勃拉邦省"] = {wp = "Luang Prabang Province"}, ["烏多姆賽省"] = {wp = "Oudomxay Province"}, ["豐沙里省"] = {wp = "Phongsaly Province"}, ["沙拉灣省"] = {wp = "Salavan Province"}, ["沙灣拿吉省"] = {wp = "Savannakhet Province"}, ["萬象省"] = {wp = "Vientiane Province"}, ["萬象直轄市"] = {placetype = "prefecture", wp = "Vientiane Prefecture"}, ["賽亞武里省"] = {wp = "Sainyabuli Province"}, ["塞公省"] = {wp = "Sekong Province"}, ["賽頌本省"] = {wp = "Xaisomboun Province"}, ["川壙省"] = {wp = "Xiangkhouang Province"}, } export.laos_group = { placename_to_key = false, default_container = "老撾", default_placetype = "province", data = export.laos_provinces, } ----------------------------------------------------------------------------------- -- North Korea provinces -- ----------------------------------------------------------------------------------- export.north_korea_provinces = { ["慈江道"] = {wp = "慈江道"}, ["咸鏡北道"] = {wp = "咸鏡北道"}, ["咸鏡南道"] = {wp = "咸鏡南道"}, ["黃海北道"] = {wp = "黃海北道"}, ["黃海南道"] = {wp = "黃海南道"}, ["江原道(北韓)"] = {wp = "江原道 (朝鮮民主主義人民共和國)"}, ["平安北道"] = {wp = "平安北道"}, ["平安南道"] = {wp = "平安南道"}, ["兩江道"] = {wp = "兩江道"}, } export.north_korea_group = { placename_to_key = false, default_container = "朝鮮", default_placetype = "province", data = export.north_korea_provinces, } ----------------------------------------------------------------------------------- -- South Korea provinces -- ----------------------------------------------------------------------------------- export.south_korea_provinces = { ["忠清北道"] = {wp = "忠清北道"}, ["忠清南道"] = {wp = "忠清南道"}, ["江原道(南韓)"] = {wp = "江原特別自治道"}, ["京畿道"] = {wp = "京畿道"}, ["慶尚北道"] = {wp = "慶尚北道"}, ["慶尚南道"] = {wp = "慶尚南道"}, ["全羅北道"] = {wp = "全羅北道"}, ["全羅南道"] = {wp = "全羅南道"}, ["濟州道"] = {wp = "濟州道"}, } export.south_korea_group = { placename_to_key = false, default_container = "韓國", default_placetype = "province", data = export.south_korea_provinces, } ----------------------------------------------------------------------------------- -- Thailand provinces -- ----------------------------------------------------------------------------------- export.thailand_provinces = { ["阿姆納特坤府"] = {wp = "Amnat Charoen Province"}, ["紅統府"] = {wp = "Ang Thong Province"}, ["彭侃府"] = {wp = "Bueng Kan Province"}, ["武里南府"] = {wp = "Buriram Province"}, ["北柳府"] = {wp = "Chachoengsao Province"}, ["猜納府"] = {wp = "Chai Nat Province"}, ["猜耶奔府"] = {wp = "Chaiyaphum Province"}, ["尖竹汶府"] = {wp = "Chanthaburi Province"}, ["清邁府"] = {wp = "Chiang Mai Province"}, ["清萊府"] = {wp = "Chiang Rai Province"}, ["春武里府"] = {wp = "Chonburi Province"}, ["春蓬府"] = {wp = "Chumphon Province"}, ["加拉信府"] = {wp = "Kalasin Province"}, ["甘烹碧府"] = {wp = "Kamphaeng Phet Province"}, ["北碧府"] = {wp = "Kanchanaburi Province"}, ["孔敬府"] = {wp = "Khon Kaen Province"}, ["甲米府"] = {wp = "Krabi Province"}, ["南邦府"] = {wp = "Lampang Province"}, ["南奔府"] = {wp = "Lamphun Province"}, ["黎府"] = {wp = "Loei Province"}, ["華富里府"] = {wp = "Lopburi Province"}, ["夜豐頌府"] = {wp = "Mae Hong Son Province"}, ["瑪哈沙拉堪府"] = {wp = "Maha Sarakham Province"}, ["莫達罕府"] = {wp = "Mukdahan Province"}, ["那空那育府"] = {wp = "Nakhon Nayok Province"}, ["佛統府"] = {wp = "Nakhon Pathom Province"}, ["那空帕農府"] = {wp = "Nakhon Phanom Province"}, ["呵叻府"] = {wp = "Nakhon Ratchasima Province"}, ["那空沙旺府"] = {wp = "Nakhon Sawan Province"}, ["洛坤府"] = {wp = "Nakhon Si Thammarat Province"}, ["難府"] = {wp = "Nan Province"}, ["那拉提瓦府"] = {wp = "Narathiwat Province"}, ["農布瓦蘭普府"] = {wp = "Nong Bua Lamphu Province"}, ["廊開府"] = {wp = "Nong Khai Province"}, ["暖武里府"] = {wp = "Nonthaburi Province"}, ["巴吞他尼府"] = {wp = "Pathum Thani Province"}, ["北大年府"] = {wp = "Pattani Province"}, ["攀牙府"] = {wp = "Phang Nga Province"}, ["博他侖府"] = {wp = "Phatthalung Province"}, ["帕堯府"] = {wp = "Phayao Province"}, ["碧差汶府"] = {wp = "Phetchabun Province"}, ["碧武里府"] = {wp = "Phetchaburi Province"}, ["披集府"] = {wp = "Phichit Province"}, ["彭世洛府"] = {wp = "Phitsanulok Province"}, ["大城府"] = {wp = "Phra Nakhon Si Ayutthaya Province"}, ["帕府"] = {wp = "Phrae Province"}, ["普吉府"] = {wp = "Phuket Province"}, ["巴真府"] = {wp = "Prachinburi Province"}, ["巴蜀府"] = {wp = "Prachuap Khiri Khan Province"}, ["拉廊府"] = {wp = "Ranong Province"}, ["叻丕府"] = {wp = "Ratchaburi Province"}, ["羅勇府"] = {wp = "Rayong Province"}, ["黎逸府"] = {wp = "Roi Et Province"}, ["沙繳府"] = {wp = "Sa Kaeo Province"}, ["色軍府"] = {wp = "Sakon Nakhon Province"}, ["北欖府"] = {wp = "Samut Prakan Province"}, ["沙沒沙空府"] = {wp = "Samut Sakhon Province"}, ["沙沒頌堪府"] = {wp = "Samut Songkhram Province"}, ["沙拉武里府"] = {wp = "Saraburi Province"}, ["沙敦府"] = {wp = "Satun Province"}, ["信武里府"] = {wp = "Sing Buri Province"}, ["四色菊府"] = {wp = "Sisaket Province"}, ["宋卡府"] = {wp = "Songkhla Province"}, ["素可泰府"] = {wp = "Sukhothai Province"}, ["素攀武里府"] = {wp = "Suphan Buri Province"}, ["素叻他尼府"] = {wp = "Surat Thani Province"}, ["素林府"] = {wp = "Surin Province"}, ["達府"] = {wp = "Tak Province"}, ["董里府"] = {wp = "Trang Province"}, ["達叻府"] = {wp = "Trat Province"}, ["烏汶府"] = {wp = "Ubon Ratchathani Province"}, ["烏隆府"] = {wp = "Udon Thani Province"}, ["烏泰他尼府"] = {wp = "Uthai Thani Province"}, ["烏達拉勐府"] = {wp = "Uttaradit Province"}, ["惹拉府"] = {wp = "Yala Province"}, ["耶梭通府"] = {wp = "Yasothon Province"}, } export.thailand_group = { placename_to_key = false, default_container = "泰國", default_placetype = "province", data = export.thailand_provinces, } ----------------------------------------------------------------------------------- -- Turkey provinces -- ----------------------------------------------------------------------------------- export.turkey_provinces = { ["阿達納省"] = {wp = "Adana Province"}, ["阿德亞曼省"] = {wp = "Adıyaman Province"}, ["阿菲永卡拉希薩爾省"] = {wp = "Afyonkarahisar Province"}, ["阿里省"] = {wp = "Ağrı Province"}, ["阿馬西亞省"] = {wp = "Amasya Province"}, ["安卡拉省"] = {wp = "Ankara Province"}, ["安塔利亞省"] = {wp = "Antalya Province"}, ["阿爾特溫省"] = {wp = "Artvin Province"}, ["艾登省"] = {wp = "Aydın Province"}, ["巴勒克埃西爾省"] = {wp = "Balıkesir Province"}, ["比萊吉克省"] = {wp = "Bilecik Province"}, ["賓格爾省"] = {wp = "Bingöl Province"}, ["比特利斯省"] = {wp = "Bitlis Province"}, ["博盧省"] = {wp = "Bolu Province"}, ["布爾杜爾省"] = {wp = "Burdur Province"}, ["布爾薩省"] = {wp = "Bursa Province"}, ["恰納卡萊省"] = {wp = "Çanakkale Province"}, ["昌克勒省"] = {wp = "Çankırı Province"}, ["喬魯姆省"] = {wp = "Çorum Province"}, ["代尼茲利省"] = {wp = "Denizli Province"}, ["迪亞巴克爾省"] = {wp = "Diyarbakır Province"}, ["埃迪爾內省"] = {wp = "Edirne Province"}, ["埃拉澤省"] = {wp = "Elazığ Province"}, ["埃爾津詹省"] = {wp = "Erzincan Province"}, ["埃爾祖魯姆省"] = {wp = "Erzurum Province"}, ["埃斯基謝希爾省"] = {wp = "Eskişehir Province"}, ["加濟安泰普省"] = {wp = "Gaziantep Province"}, ["吉雷松省"] = {wp = "Giresun Province"}, ["居米什哈內省"] = {wp = "Gümüşhane Province"}, ["哈卡里省"] = {wp = "Hakkâri Province"}, ["哈塔伊省"] = {wp = "Hatay Province"}, ["伊斯帕爾塔省"] = {wp = "Isparta Province"}, ["梅爾辛省"] = {wp = "Mersin Province"}, ["伊茲密爾省"] = {wp = "İzmir Province"}, ["卡爾斯省"] = {wp = "Kars Province"}, ["卡斯塔莫努省"] = {wp = "Kastamonu Province"}, ["開塞利省"] = {wp = "Kayseri Province"}, ["柯克拉雷利省"] = {wp = "Kırklareli Province"}, ["克爾謝希爾省"] = {wp = "Kırşehir Province"}, ["科賈埃利省"] = {wp = "Kocaeli Province"}, ["科尼亞省"] = {wp = "Konya Province"}, ["屈塔希亞省"] = {wp = "Kütahya Province"}, ["馬拉蒂亞省"] = {wp = "Malatya Province"}, ["馬尼薩省"] = {wp = "Manisa Province"}, ["卡赫拉曼馬拉什省"] = {wp = "Kahramanmaraş Province"}, ["馬爾丁省"] = {wp = "Mardin Province"}, ["穆拉省"] = {wp = "Muğla Province"}, ["穆什省"] = {wp = "Muş Province"}, ["內夫謝希爾省"] = {wp = "Nevşehir Province"}, ["尼代省"] = {wp = "Niğde Province"}, ["奧爾杜省"] = {wp = "Ordu Province"}, ["里澤省"] = {wp = "Rize Province"}, ["薩卡里亞省"] = {wp = "Sakarya Province"}, ["薩姆松省"] = {wp = "Samsun Province"}, ["錫爾特省"] = {wp = "Siirt Province"}, ["錫諾普省"] = {wp = "Sinop Province"}, ["錫瓦斯省"] = {wp = "Sivas Province"}, ["泰基爾達省"] = {wp = "Tekirdağ Province"}, ["托卡特省"] = {wp = "Tokat Province"}, ["特拉布宗省"] = {wp = "Trabzon Province"}, ["通傑利省"] = {wp = "Tunceli Province"}, ["尚勒烏爾法省"] = {wp = "Şanlıurfa Province"}, ["烏沙克省"] = {wp = "Uşak Province"}, ["凡省"] = {wp = "Van Province"}, ["約茲加特省"] = {wp = "Yozgat Province"}, ["宗古爾達克省"] = {wp = "Zonguldak Province"}, ["阿克薩賴省"] = {wp = "Aksaray Province"}, ["拜布爾特省"] = {wp = "Bayburt Province"}, ["卡拉曼省"] = {wp = "Karaman Province"}, ["克勒克卡萊省"] = {wp = "Kırıkkale Province"}, ["巴特曼省"] = {wp = "Batman Province"}, ["蘇爾納克省"] = {wp = "Şırnak Province"}, ["巴爾騰省"] = {wp = "Bartın Province"}, ["阿爾達罕省"] = {wp = "Ardahan Province"}, ["伊迪爾省"] = {wp = "Iğdır Province"}, ["亞洛瓦省"] = {wp = "Yalova Province"}, ["卡拉比克省"] = {wp = "Karabük Province"}, ["基利斯省"] = {wp = "Kilis Province"}, ["奧斯曼尼耶省"] = {wp = "Osmaniye Province"}, ["迪茲傑省"] = {wp = "Düzce Province"}, } export.turkey_group = { placename_to_key = false, default_container = "土耳其", default_placetype = "province", data = export.turkey_provinces, } ----------------------------------------------------------------------------------- -- Vietnam provinces -- ----------------------------------------------------------------------------------- export.vietnam_provinces = { -- Northeast ["北江省"] = {wp = "Bắc Giang Province"}, ["北件省"] = {wp = "Bắc Kạn Province"}, ["高平省"] = {wp = "Cao Bằng Province"}, ["河江省"] = {wp = "Hà Giang Province"}, ["諒山省"] = {wp = "Lạng Sơn Province"}, ["富壽省"] = {wp = "Phú Thọ Province"}, ["廣寧省"] = {wp = "Quảng Ninh Province"}, ["太原省"] = {wp = "Thái Nguyên Province"}, ["宣光省"] = {wp = "Tuyên Quang Province"}, -- Northwest ["老街省"] = {wp = "Lào Cai Province"}, ["安沛省"] = {wp = "Yên Bái Province"}, ["奠邊省"] = {wp = "Điện Biên Province"}, ["和平省"] = {wp = "Hoà Bình Province"}, ["萊州省"] = {wp = "Lai Châu Province"}, ["山羅省"] = {wp = "Sơn La Province"}, -- Red River Delta ["北寧省"] = {wp = "Bắc Ninh Province"}, ["河南省"] = {wp = "Hà Nam Province"}, ["海陽省"] = {wp = "Hải Dương Province"}, ["興安省"] = {wp = "Hưng Yên Province"}, ["南定省"] = {wp = "Nam Định Province"}, ["寧平省"] = {wp = "Ninh Bình Province"}, ["太平省"] = {wp = "Thái Bình Province"}, ["永福省"] = {wp = "Vĩnh Phúc Province"}, -- North Central Coast ["河靜省"] = {wp = "Hà Tĩnh Province"}, ["乂安省"] = {wp = "Nghệ An Province"}, ["廣平省"] = {wp = "Quảng Bình Province"}, ["廣治省"] = {wp = "Quảng Trị Province"}, ["清化省"] = {wp = "Thanh Hoá Province"}, -- Central Highlands ["得樂省"] = {wp = "Đắk Lắk Province"}, ["得農省"] = {wp = "Đăk Nông Province"}, ["嘉萊省"] = {wp = "Gia Lai Province"}, ["崑嵩省"] = {wp = "Kon Tum Province"}, ["林同省"] = {wp = "Lâm Đồng Province"}, -- South Central Coast ["平定省"] = {wp = "Bình Định Province"}, ["平順省"] = {wp = "Bình Thuận Province"}, ["慶和省"] = {wp = "Khánh Hoà Province"}, ["寧順省"] = {wp = "Ninh Thuận Province"}, ["富安省"] = {wp = "Phú Yên Province"}, ["廣南省"] = {wp = "Quảng Nam Province"}, ["廣義省"] = {wp = "Quảng Ngãi Province"}, -- Southeast ["巴地-頭頓省"] = {wp = "Bà Rịa–Vũng Tàu Province"}, ["平陽省"] = {wp = "Bình Dương Province"}, ["平福省"] = {wp = "Bình Phước Province"}, ["同奈省"] = {wp = "Đồng Nai Province"}, ["西寧省"] = {wp = "Tây Ninh Province"}, -- Mekong Delta ["安江省"] = {wp = "An Giang Province"}, ["薄寮省"] = {wp = "Bạc Liêu Province"}, ["檳椥省"] = {wp = "Bến Tre Province"}, ["金甌省"] = {wp = "Cà Mau Province"}, ["同塔省"] = {wp = "Đồng Tháp Province"}, ["後江省"] = {wp = "Hậu Giang Province"}, ["堅江省"] = {wp = "Kiên Giang Province"}, ["龍安省"] = {wp = "Long An Province"}, ["朔莊省"] = {wp = "Sóc Trăng Province"}, ["前江省"] = {wp = "Tiền Giang Province"}, ["茶榮省"] = {wp = "Trà Vinh Province"}, ["永隆省"] = {wp = "Vĩnh Long Province"}, } export.vietnam_group = { placename_to_key = false, default_container = "越南", default_placetype = "province", data = export.vietnam_provinces, } ----------------------------------------------------------------------------------- -- Nigeria states -- ----------------------------------------------------------------------------------- export.nigeria_states = { ["阿比亞州"] = {wp = "Abia State"}, ["阿達馬瓦州"] = {wp = "Adamawa State"}, ["阿誇伊博姆州"] = {wp = "Akwa Ibom State"}, ["阿南布拉州"] = {wp = "Anambra State"}, ["包奇州"] = {wp = "Bauchi State"}, ["貝耶薩州"] = {wp = "Bayelsa State"}, ["貝努埃州"] = {wp = "Benue State"}, ["博爾諾州"] = {wp = "Borno State"}, ["跨河州"] = {wp = "Cross River State"}, ["三角洲州"] = {wp = "Delta State"}, ["埃博尼州"] = {wp = "Ebonyi State"}, ["埃多州"] = {wp = "Edo State"}, ["埃基蒂州"] = {wp = "Ekiti State"}, ["埃努古州"] = {wp = "Enugu State"}, ["阿布賈聯邦首都轄區"] = {placetype = {"federal territory", "territory", "state"}, the = true, wp = "Federal Capital Territory, Nigeria"}, ["貢貝州"] = {wp = "Gombe State"}, ["伊莫州"] = {wp = "Imo State"}, ["吉加瓦州"] = {wp = "Jigawa State"}, ["卡杜納州"] = {wp = "Kaduna State"}, ["卡諾州"] = {wp = "Kano State"}, ["卡齊納州"] = {wp = "Katsina State"}, ["克比州"] = {wp = "Kebbi State"}, ["科吉州"] = {wp = "Kogi State"}, ["誇拉州"] = {wp = "Kwara State"}, ["拉各斯州"] = {wp = "Lagos State"}, ["納薩拉瓦州"] = {wp = "Nasarawa State"}, ["尼日爾州"] = {wp = "Niger State"}, ["奧貢州"] = {wp = "Ogun State"}, ["翁多州"] = {wp = "Ondo State"}, ["奧順州"] = {wp = "Osun State"}, ["奧約州"] = {wp = "Oyo State"}, ["高原州"] = {wp = "Plateau State"}, ["河流州"] = {wp = "Rivers State"}, ["索科托州"] = {wp = "Sokoto State"}, ["塔拉巴州"] = {wp = "Taraba State"}, ["約貝州"] = {wp = "Yobe State"}, ["贊法拉州"] = {wp = "Zamfara State"}, } export.nigeria_group = { placename_to_key = false, default_container = "奈及利亞", default_placetype = "state", data = export.nigeria_states, } ----------------------------------------------------------------------------------- -- Selected city groups -- ----------------------------------------------------------------------------------- -- Key world cities frequently used as holonyms (entries covered by dedicated city groups removed) export.misc_cities = { -- Americas ["費爾法克斯"] = {container = "弗吉尼亞", placetype = "city", is_city = true, wp = "Fairfax, Virginia"}, ["斯克蘭頓"] = {container = "賓夕法尼亞", placetype = "city", is_city = true, wp = "Scranton, Pennsylvania"}, ["里約熱內盧市"] = {container = "巴西", placetype = "city", is_city = true, wp = "Rio de Janeiro"}, ["布宜諾斯艾利斯"] = {container = "阿根廷", placetype = "city", is_city = true, wp = "Buenos Aires"}, ["聖地牙哥"] = {container = "智利", placetype = "city", is_city = true, wp = "Santiago"}, ["波哥大"] = {container = "哥倫比亞", placetype = "city", is_city = true, wp = "Bogotá"}, ["利馬"] = {container = "秘魯", placetype = "city", is_city = true, wp = "Lima"}, -- Europe ["阿姆斯特丹"] = {container = "荷蘭", placetype = "city", is_city = true, wp = "Amsterdam"}, ["布魯塞爾"] = {container = "比利時", placetype = "city", is_city = true, wp = "Brussels"}, ["維也納"] = {container = "奧地利", placetype = "city", is_city = true, wp = "Vienna"}, ["伊斯坦布爾"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Istanbul"}, ["基輔"] = {container = "烏克蘭", placetype = "city", is_city = true, wp = "Kyiv"}, ["華沙"] = {container = "波蘭", placetype = "city", is_city = true, wp = "Warsaw"}, ["布拉格"] = {container = "捷克", placetype = "city", is_city = true, wp = "Prague"}, ["布達佩斯"] = {container = "匈牙利", placetype = "city", is_city = true, wp = "Budapest"}, ["斯德哥爾摩"] = {container = "瑞典", placetype = "city", is_city = true, wp = "Stockholm"}, ["赫爾辛基"] = {container = "芬蘭", placetype = "city", is_city = true, wp = "Helsinki"}, ["奧斯陸"] = {container = "挪威", placetype = "city", is_city = true, wp = "Oslo"}, ["哥本哈根"] = {container = "丹麥", placetype = "city", is_city = true, wp = "Copenhagen"}, ["里斯本"] = {container = "葡萄牙", placetype = "city", is_city = true, wp = "Lisbon"}, ["雅典"] = {container = "希臘", placetype = "city", is_city = true, wp = "Athens"}, ["蘇黎世"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Zurich"}, ["日內瓦"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Geneva"}, ["第比利斯"] = {container = "格魯吉亞", placetype = "city", is_city = true, wp = "Tbilisi"}, ["貝爾格勒"] = {container = "塞爾維亞", placetype = "city", is_city = true, wp = "Belgrade"}, ["薩格勒布"] = {container = "克羅埃西亞", placetype = "city", is_city = true, wp = "Zagreb"}, ["都柏林"] = {container = "愛爾蘭", placetype = "city", is_city = true, wp = "Dublin"}, -- Asia ["北京市"] = {container = "北京", placetype = "city", is_city = true, wp = "Beijing"}, ["上海市"] = {container = "上海", placetype = "city", is_city = true, wp = "Shanghai"}, ["德里市"] = {container = "德里", placetype = "city", is_city = true, wp = "Delhi"}, ["曼谷"] = {container = "泰國", placetype = "city", is_city = true, wp = "Bangkok"}, ["吉隆坡"] = {container = "馬來西亞", placetype = "city", is_city = true, wp = "Kuala Lumpur"}, ["開羅"] = {container = "埃及", placetype = "city", is_city = true, wp = "Cairo"}, ["德黑蘭"] = {container = "伊朗", placetype = "city", is_city = true, wp = "Tehran"}, ["安卡拉"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Ankara"}, -- Oceania ["奧克蘭"] = {container = "紐西蘭", placetype = "city", is_city = true, wp = "Auckland"}, -- Africa ["開普敦"] = {container = "南非", placetype = "city", is_city = true, wp = "Cape Town"}, ["約翰尼斯堡"] = {container = "南非", placetype = "city", is_city = true, wp = "Johannesburg"}, ["奈洛比"] = {container = "肯亞", placetype = "city", is_city = true, wp = "Nairobi"}, } export.misc_cities_group = { placename_to_key = false, default_placetype = "city", default_is_city = true, data = export.misc_cities, } ----------------------------------------------------------------------------------- -- Brazil states (for testcase coverage) -- ----------------------------------------------------------------------------------- export.brazil_states = { ["里約熱內盧州"] = {wp = "Rio de Janeiro (state)"}, ["里約熱內盧"] = {alias_of = "里約熱內盧州"}, ["聖保羅州"] = {wp = "São Paulo (state)"}, ["米納斯吉拉斯"] = {wp = "Minas Gerais"}, ["巴伊亞"] = {wp = "Bahia"}, ["亞馬遜州"] = {wp = "Amazonas (Brazilian state)"}, ["帕拉州"] = {wp = "Pará"}, ["伯南布哥州"] = {wp = "Pernambuco"}, ["南里奧格蘭德州"] = {wp = "Rio Grande do Sul"}, ["巴西聯邦區"] = {wp = "Federal District (Brazil)"}, ["塞阿拉州"] = {wp = "Ceará"}, ["巴拉那州"] = {wp = "Paraná (state)"}, ["戈亞斯州"] = {wp = "Goiás"}, ["聖埃斯皮里圖州"] = {wp = "Espírito Santo"}, ["馬拉尼昂州"] = {wp = "Maranhão"}, ["北里奧格蘭德州"] = {wp = "Rio Grande do Norte"}, ["聖卡塔琳娜州"] = {wp = "Santa Catarina (state)"}, ["阿拉戈亞斯州"] = {wp = "Alagoas"}, ["帕拉伊巴州"] = {wp = "Paraíba"}, ["皮奧伊州"] = {wp = "Piauí"}, ["阿克里州"] = {wp = "Acre (state)"}, ["阿馬帕州"] = {wp = "Amapá"}, ["馬托格羅索州"] = {wp = "Mato Grosso"}, ["南馬托格羅索州"] = {wp = "Mato Grosso do Sul"}, ["朗多尼亞州"] = {wp = "Rondônia"}, ["羅賴馬州"] = {wp = "Roraima"}, ["塞爾希培州"] = {wp = "Sergipe"}, ["托坎廷斯州"] = {wp = "Tocantins"}, } export.brazil_group = { placename_to_key = false, default_container = "巴西", default_placetype = "state", data = export.brazil_states, } ----------------------------------------------------------------------------------- -- France regions -- ----------------------------------------------------------------------------------- export.france_administrative_regions = { ["奧弗涅-隆河-阿爾卑斯大區"] = {wp = "Auvergne-Rhône-Alpes"}, ["勃艮第-弗朗什-孔泰大區"] = {wp = "Bourgogne-Franche-Comté"}, ["布列塔尼大區"] = {wp = "Brittany (administrative region)"}, ["中央-羅亞爾河谷大區"] = {wp = "Centre-Val de Loire"}, ["科西嘉大區"] = {wp = "Corsica"}, ["大東部大區"] = {wp = "Grand Est"}, ["上法蘭西大區"] = {wp = "Hauts-de-France"}, ["法蘭西島大區"] = {wp = "Île-de-France"}, ["諾曼底大區"] = {wp = "Normandy"}, ["新阿基坦大區"] = {wp = "Nouvelle-Aquitaine"}, ["奧克西塔尼大區"] = {wp = "Occitanie"}, ["盧瓦爾河地區大區"] = {wp = "Pays de la Loire"}, ["普羅旺斯-阿爾卑斯-蔚藍海岸大區"] = {wp = "Provence-Alpes-Côte d'Azur"}, -- Old region names (pre-2016) as aliases ["北部-加萊海峽大區"] = {wp = "Nord-Pas-de-Calais"}, ["加來海峽大區"] = {alias_of = "北部-加萊海峽大區"}, } export.france_group = { placename_to_key = false, default_container = "法國", default_placetype = "region", data = export.france_administrative_regions, } -- France departments (abbreviated list) export.france_departments = { ["北部省"] = {wp = "Nord (department)", container = "上法蘭西大區"}, ["加來海峽省"] = {wp = "Pas-de-Calais", container = "上法蘭西大區"}, ["巴黎市"] = {wp = "Paris", container = "法蘭西島大區"}, ["上塞納省"] = {wp = "Hauts-de-Seine", container = "法蘭西島大區"}, } export.france_departments_group = { placename_to_key = false, default_container = "法國", default_placetype = "department", data = export.france_departments, } ----------------------------------------------------------------------------------- -- Austria states -- ----------------------------------------------------------------------------------- export.austria_states = { ["維也納州"] = {wp = "Vienna (state)"}, ["下奧地利州"] = {wp = "Lower Austria"}, ["上奧地利州"] = {wp = "Upper Austria"}, ["施泰爾馬克州"] = {wp = "Styria"}, ["蒂羅爾州"] = {wp = "Tyrol (state)"}, ["克恩頓州"] = {wp = "Carinthia"}, ["薩爾茨堡州"] = {wp = "Salzburg (state)"}, ["福拉爾貝格州"] = {wp = "Vorarlberg"}, ["布根蘭州"] = {wp = "Burgenland"}, } export.austria_group = { placename_to_key = false, default_container = "奧地利", default_placetype = "state", data = export.austria_states, } ----------------------------------------------------------------------------------- -- Bangladesh divisions -- ----------------------------------------------------------------------------------- export.bangladesh_divisions = { ["巴里薩爾專區"] = {wp = "Barisal Division"}, ["吉大港專區"] = {wp = "Chittagong Division"}, ["達卡專區"] = {wp = "Dhaka Division"}, ["庫爾納專區"] = {wp = "Khulna Division"}, ["邁門辛專區"] = {wp = "Mymensingh Division"}, ["拉吉沙希專區"] = {wp = "Rajshahi Division"}, ["朗普爾專區"] = {wp = "Rangpur Division"}, ["錫爾赫特專區"] = {wp = "Sylhet Division"}, } export.bangladesh_group = { placename_to_key = false, default_container = "孟加拉國", default_placetype = "division", data = export.bangladesh_divisions, } ----------------------------------------------------------------------------------- -- Egypt governorates -- ----------------------------------------------------------------------------------- export.egypt_governorates = { ["開羅省"] = {wp = "Cairo Governorate"}, ["吉薩省"] = {wp = "Giza Governorate"}, ["夏爾基亞省"] = {wp = "Sharqia Governorate"}, ["達卡利亞省"] = {wp = "Dakahlia Governorate"}, ["貝海拉省"] = {wp = "Beheira Governorate"}, ["明亞省"] = {wp = "Minya Governorate"}, ["蓋柳比亞省"] = {wp = "Qalyubia Governorate"}, ["索哈傑省"] = {wp = "Sohag Governorate"}, ["亞歷山大省"] = {wp = "Alexandria Governorate"}, ["加爾比亞省"] = {wp = "Gharbia Governorate"}, ["艾斯尤特省"] = {wp = "Asyut Governorate"}, ["莫諾菲亞省"] = {wp = "Monufia Governorate"}, ["法尤姆省"] = {wp = "Faiyum Governorate"}, ["卡夫爾謝赫省"] = {wp = "Kafr El Sheikh Governorate"}, ["基納省"] = {wp = "Qena Governorate"}, ["本尼蘇威夫省"] = {wp = "Beni Suef Governorate"}, ["達米埃塔省"] = {wp = "Damietta Governorate"}, ["阿斯旺省"] = {wp = "Aswan Governorate"}, ["伊斯梅利亞省"] = {wp = "Ismailia Governorate"}, ["盧克索省"] = {wp = "Luxor Governorate"}, ["蘇伊士省"] = {wp = "Suez Governorate"}, ["塞德港省"] = {wp = "Port Said Governorate"}, ["馬特魯省"] = {wp = "Matrouh Governorate"}, ["北西奈省"] = {wp = "North Sinai Governorate"}, ["紅海省"] = {wp = "Red Sea Governorate"}, ["新河谷省"] = {wp = "New Valley Governorate"}, ["南西奈省"] = {wp = "South Sinai Governorate"}, } export.egypt_group = { placename_to_key = false, default_container = "埃及", default_placetype = "governorate", data = export.egypt_governorates, } ----------------------------------------------------------------------------------- -- Finland regions -- ----------------------------------------------------------------------------------- export.finland_regions = { ["拉普蘭省"] = {wp = "Lapland (Finland)"}, ["北奧斯特博滕省"] = {wp = "North Ostrobothnia"}, ["卡亞尼省"] = {wp = "Kainuu"}, ["北卡累利亞省"] = {wp = "North Karelia"}, ["北薩沃省"] = {wp = "Northern Savonia"}, ["南薩沃省"] = {wp = "Southern Savonia"}, ["南卡累利亞省"] = {wp = "South Karelia"}, ["中芬蘭省"] = {wp = "Central Finland"}, ["南奧斯特博滕省"] = {wp = "South Ostrobothnia"}, ["奧斯特博滕省"] = {wp = "Ostrobothnia (region)"}, ["中奧斯特博滕省"] = {wp = "Central Ostrobothnia"}, ["皮爾卡馬省"] = {wp = "Pirkanmaa"}, ["薩塔昆塔省"] = {wp = "Satakunta"}, ["派亞特哈米省"] = {wp = "Päijät-Häme"}, ["坎塔哈米省"] = {wp = "Tavastia Proper"}, ["屈米河谷省"] = {wp = "Kymenlaakso"}, ["烏西馬省"] = {wp = "Uusimaa"}, ["西南芬蘭省"] = {wp = "Southwest Finland"}, ["奧蘭群島"] = {wp = "Åland", placetype = {"autonomous region", "region"}}, } export.finland_group = { placename_to_key = false, default_container = "芬蘭", default_placetype = "region", data = export.finland_regions, } ----------------------------------------------------------------------------------- -- Greece regions -- ----------------------------------------------------------------------------------- export.greece_regions = { ["阿提卡大區"] = {wp = "Attica (region)"}, ["中希臘大區"] = {wp = "Central Greece (administrative region)"}, ["中馬其頓大區"] = {wp = "Central Macedonia"}, ["克里特大區"] = {wp = "Crete"}, ["東馬其頓和色雷斯大區"] = {wp = "Eastern Macedonia and Thrace"}, ["伊庇魯斯大區"] = {wp = "Epirus (region)"}, ["愛奧尼亞群島大區"] = {wp = "Ionian Islands (region)"}, ["北愛琴大區"] = {wp = "North Aegean"}, ["伯羅奔尼撒大區"] = {wp = "Peloponnese (region)"}, ["南愛琴大區"] = {wp = "South Aegean"}, ["塞薩利大區"] = {wp = "Thessaly"}, ["西希臘大區"] = {wp = "Western Greece"}, ["西馬其頓大區"] = {wp = "Western Macedonia"}, ["阿托斯山"] = {wp = "Monastic community of Mount Athos", placetype = {"autonomous region", "region"}}, } export.greece_group = { placename_to_key = false, default_container = "希臘", default_placetype = "region", data = export.greece_regions, } ----------------------------------------------------------------------------------- -- Indonesia provinces -- ----------------------------------------------------------------------------------- export.indonesia_provinces = { ["亞齊省"] = {wp = "Aceh"}, ["峇里省"] = {wp = "Bali"}, ["邦加勿里洞省"] = {wp = "Bangka Belitung Islands"}, ["萬丹省"] = {wp = "Banten"}, ["明古魯省"] = {wp = "Bengkulu"}, ["中爪哇省"] = {wp = "Central Java"}, ["中加里曼丹省"] = {wp = "Central Kalimantan"}, ["中巴布亞省"] = {wp = "Central Papua"}, ["中蘇拉威西省"] = {wp = "Central Sulawesi"}, ["東爪哇省"] = {wp = "East Java"}, ["東加里曼丹省"] = {wp = "East Kalimantan"}, ["東努沙登加拉省"] = {wp = "East Nusa Tenggara"}, ["哥倫打洛省"] = {wp = "Gorontalo"}, ["巴布亞高地省"] = {wp = "Highland Papua"}, ["雅加達首都特區"] = {wp = "Jakarta"}, ["占碑省"] = {wp = "Jambi"}, ["楠榜省"] = {wp = "Lampung"}, ["馬魯古省"] = {wp = "Maluku"}, ["北加里曼丹省"] = {wp = "North Kalimantan"}, ["北馬魯古省"] = {wp = "North Maluku"}, ["北蘇拉威西省"] = {wp = "North Sulawesi"}, ["北巴布亞省"] = {wp = "North Papua"}, ["北蘇門答臘省"] = {wp = "North Sumatra"}, ["巴布亞省"] = {wp = "Papua (province)"}, ["廖內省"] = {wp = "Riau"}, ["廖內群島省"] = {wp = "Riau Islands"}, ["東南蘇拉威西省"] = {wp = "Southeast Sulawesi"}, ["南加里曼丹省"] = {wp = "South Kalimantan"}, ["南巴布亞省"] = {wp = "South Papua"}, ["南蘇拉威西省"] = {wp = "South Sulawesi"}, ["南蘇門答臘省"] = {wp = "South Sumatra"}, ["西南巴布亞省"] = {wp = "Southwest Papua"}, ["西爪哇省"] = {wp = "West Java"}, ["西加里曼丹省"] = {wp = "West Kalimantan"}, ["西努沙登加拉省"] = {wp = "West Nusa Tenggara"}, ["西巴布亞省"] = {wp = "West Papua (province)"}, ["西蘇拉威西省"] = {wp = "West Sulawesi"}, ["西蘇門答臘省"] = {wp = "West Sumatra"}, ["日惹特區"] = {wp = "Special Region of Yogyakarta"}, } export.indonesia_group = { placename_to_key = false, default_container = "印度尼西亞", default_placetype = "province", data = export.indonesia_provinces, } ----------------------------------------------------------------------------------- -- Lebanon governorates -- ----------------------------------------------------------------------------------- export.lebanon_governorates = { ["阿卡爾省"] = {wp = "Akkar Governorate"}, ["巴勒貝克-赫爾梅勒省"] = {wp = "Baalbek-Hermel Governorate"}, ["貝魯特省"] = {wp = "Beirut Governorate"}, ["貝卡省"] = {wp = "Beqaa Governorate"}, ["克塞旺-裘拜勒省"] = {wp = "Keserwan-Jbeil Governorate"}, ["黎巴嫩山省"] = {wp = "Mount Lebanon Governorate"}, ["納巴蒂耶省"] = {wp = "Nabatieh Governorate"}, ["北部省(黎巴嫩)"] = {wp = "North Governorate (Lebanon)", no_auto_augment_container = true}, ["南部省(黎巴嫩)"] = {wp = "South Governorate (Lebanon)", no_auto_augment_container = true}, } export.lebanon_group = { placename_to_key = false, default_container = "黎巴嫩", default_placetype = "governorate", data = export.lebanon_governorates, } ----------------------------------------------------------------------------------- -- Malaysia states -- ----------------------------------------------------------------------------------- export.malaysia_states = { ["柔佛州"] = {wp = "Johor"}, ["吉打州"] = {wp = "Kedah"}, ["吉蘭丹州"] = {wp = "Kelantan"}, ["馬六甲州"] = {wp = "Malacca"}, ["森美蘭州"] = {wp = "Negeri Sembilan"}, ["彭亨州"] = {wp = "Pahang"}, ["檳城州"] = {wp = "Penang"}, ["霹靂州"] = {wp = "Perak"}, ["玻璃市州"] = {wp = "Perlis"}, ["沙巴州"] = {wp = "Sabah"}, ["砂拉越州"] = {wp = "Sarawak"}, ["雪蘭莪州"] = {wp = "Selangor"}, ["登嘉樓州"] = {wp = "Terengganu"}, } export.malaysia_group = { placename_to_key = false, default_container = "馬來西亞", default_placetype = "state", data = export.malaysia_states, } ----------------------------------------------------------------------------------- -- Malta regions -- ----------------------------------------------------------------------------------- export.malta_regions = { ["東部區(馬爾他)"] = {wp = "Eastern Region, Malta", no_auto_augment_container = true}, ["戈佐區"] = {wp = "Gozo Region"}, ["北部區(馬爾他)"] = {wp = "Northern Region, Malta", no_auto_augment_container = true}, ["港口區"] = {wp = "Port Region, Malta"}, ["南部區(馬爾他)"] = {wp = "Southern Region, Malta", no_auto_augment_container = true}, ["西部區(馬爾他)"] = {wp = "Western Region, Malta", no_auto_augment_container = true}, } export.malta_group = { placename_to_key = false, default_container = "馬爾他", default_placetype = "region", data = export.malta_regions, } ----------------------------------------------------------------------------------- -- Mexico states -- ----------------------------------------------------------------------------------- export.mexico_states = { ["阿瓜斯卡連特斯州"] = {wp = "Aguascalientes"}, ["下加利福尼亞州"] = {wp = "Baja California"}, ["南下加利福尼亞州"] = {wp = "Baja California Sur"}, ["坎佩切州"] = {wp = "Campeche"}, ["恰帕斯州"] = {wp = "Chiapas"}, ["奇瓦瓦州"] = {wp = "Chihuahua (state)"}, ["科阿韋拉州"] = {wp = "Coahuila"}, ["科利馬州"] = {wp = "Colima"}, ["杜蘭戈州"] = {wp = "Durango"}, ["瓜納華托州"] = {wp = "Guanajuato"}, ["格雷羅州"] = {wp = "Guerrero"}, ["伊達爾戈州"] = {wp = "Hidalgo (state)"}, ["哈利斯科州"] = {wp = "Jalisco"}, ["墨西哥州"] = {wp = "State of Mexico"}, ["米卻肯州"] = {wp = "Michoacán"}, ["莫雷洛斯州"] = {wp = "Morelos"}, ["納亞里特州"] = {wp = "Nayarit"}, ["新萊昂州"] = {wp = "Nuevo León"}, ["瓦哈卡州"] = {wp = "Oaxaca"}, ["普埃布拉州"] = {wp = "Puebla"}, ["克雷塔羅州"] = {wp = "Querétaro"}, ["金塔納羅奧州"] = {wp = "Quintana Roo"}, ["聖路易斯波托西州"] = {wp = "San Luis Potosí"}, ["錫那羅亞州"] = {wp = "Sinaloa"}, ["索諾拉州"] = {wp = "Sonora"}, ["塔巴斯科州"] = {wp = "Tabasco (state)"}, ["塔毛利帕斯州"] = {wp = "Tamaulipas"}, ["特拉斯卡拉州"] = {wp = "Tlaxcala"}, ["韋拉克魯斯州"] = {wp = "Veracruz"}, ["尤卡坦州"] = {wp = "Yucatán"}, ["薩卡特卡斯州"] = {wp = "Zacatecas"}, } export.mexico_group = { placename_to_key = false, default_container = "墨西哥", default_placetype = "state", data = export.mexico_states, } ----------------------------------------------------------------------------------- -- Moldova districts and ATUs -- ----------------------------------------------------------------------------------- export.moldova_districts = { ["阿內尼諾伊區"] = {wp = "Anenii Noi District"}, ["巴薩拉比亞斯卡區"] = {wp = "Basarabeasca District"}, ["布里切尼區"] = {wp = "Briceni District"}, ["卡胡爾區"] = {wp = "Cahul District"}, ["坎特米爾區"] = {wp = "Cantemir District"}, ["克勒拉希區"] = {wp = "Călărași District"}, ["考沙尼區"] = {wp = "Căușeni District"}, ["奇米什利亞區"] = {wp = "Cimișlia District"}, ["克里烏列尼區"] = {wp = "Criuleni District"}, ["東杜沙尼區"] = {wp = "Dondușeni District"}, ["德羅基亞區"] = {wp = "Drochia District"}, ["杜巴薩里區"] = {wp = "Dubăsari District"}, ["埃迪涅茨區"] = {wp = "Edineț District"}, ["法勒什蒂區"] = {wp = "Fălești District"}, ["弗洛雷什蒂區"] = {wp = "Florești District"}, ["格洛德尼區"] = {wp = "Glodeni District"}, ["欣切什蒂區"] = {wp = "Hîncești District"}, ["亞洛韋尼區"] = {wp = "Ialoveni District"}, ["萊奧瓦區"] = {wp = "Leova District"}, ["尼斯波雷尼區"] = {wp = "Nisporeni District"}, ["奧克尼察區"] = {wp = "Ocnița District"}, ["奧爾海伊區"] = {wp = "Orhei District"}, ["雷齊納區"] = {wp = "Rezina District"}, ["雷什卡尼區"] = {wp = "Rîșcani District"}, ["辛格雷伊區"] = {wp = "Sîngerei District"}, ["索羅卡區"] = {wp = "Soroca District"}, ["斯特拉沙尼區"] = {wp = "Strășeni District"}, ["紹爾達涅什蒂區"] = {wp = "Șoldănești District"}, ["斯蒂凡沃達區"] = {wp = "Ștefan Vodă District"}, ["塔拉克利亞區"] = {wp = "Taraclia District"}, ["泰萊涅什蒂區"] = {wp = "Telenești District"}, ["翁格尼區"] = {wp = "Ungheni District"}, ["基希訥烏市"] = {wp = "Chișinău", placetype = "municipality"}, ["巴爾茨市"] = {wp = "Bălți", placetype = "municipality"}, ["加告茲自治領土"] = {wp = "Gagauzia", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, ["本德爾市"] = {wp = "Bender, Moldova", placetype = "municipality"}, ["德涅斯特河沿岸"] = {wp = "Transnistria", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, } export.moldova_group = { placename_to_key = false, default_container = "摩爾多瓦", default_placetype = {"district", "raion"}, data = export.moldova_districts, } ----------------------------------------------------------------------------------- -- Morocco regions -- ----------------------------------------------------------------------------------- export.morocco_regions = { ["丹吉爾-得土安-霍賽馬大區"] = {wp = "Tangier-Tetouan-Al Hoceima"}, ["東方大區(摩洛哥)"] = {wp = "Oriental, Morocco"}, ["非斯-梅克內斯大區"] = {wp = "Fez-Meknes"}, ["拉巴特-薩累-肯尼特拉大區"] = {wp = "Rabat-Salé-Kénitra"}, ["貝尼梅拉勒-赫尼夫拉大區"] = {wp = "Béni Mellal-Khénifra"}, ["卡薩布蘭卡-塞塔特大區"] = {wp = "Casablanca-Settat"}, ["馬拉喀什-薩菲大區"] = {wp = "Marrakesh-Safi"}, ["德拉阿-塔菲拉勒特大區"] = {wp = "Drâa-Tafilalet"}, ["蘇斯-馬薩大區"] = {wp = "Souss-Massa"}, ["蓋勒明-烏德農大區"] = {wp = "Guelmim-Oued Noun"}, ["拉阿永-薩基亞-哈姆拉大區"] = {wp = "Laâyoune-Sakia El Hamra"}, ["達赫拉-奧以德達赫卜大區"] = {wp = "Dakhla-Oued Ed-Dahab"}, } export.morocco_group = { placename_to_key = false, default_container = "摩洛哥", default_placetype = "region", data = export.morocco_regions, } ----------------------------------------------------------------------------------- -- Netherlands provinces -- ----------------------------------------------------------------------------------- export.netherlands_provinces = { ["德倫特省"] = {wp = "Drenthe"}, ["弗萊福蘭省"] = {wp = "Flevoland"}, ["弗里斯蘭省"] = {wp = "Friesland"}, ["格爾德蘭省"] = {wp = "Gelderland"}, ["格羅寧根省"] = {wp = "Groningen (province)"}, ["林堡省(荷蘭)"] = {wp = "Limburg (Netherlands)"}, ["北布拉班特省"] = {wp = "North Brabant"}, ["北荷蘭省"] = {wp = "North Holland"}, ["上艾瑟爾省"] = {wp = "Overijssel"}, ["南荷蘭省"] = {wp = "South Holland"}, ["烏特勒支省"] = {wp = "Utrecht (province)"}, ["澤蘭省"] = {wp = "Zeeland"}, } export.netherlands_group = { placename_to_key = false, default_container = "荷蘭", default_placetype = "province", data = export.netherlands_provinces, } ----------------------------------------------------------------------------------- -- New Zealand regions -- ----------------------------------------------------------------------------------- export.new_zealand_regions = { ["北地大區"] = {wp = "Northland Region"}, ["奧克蘭大區"] = {wp = "Auckland Region"}, ["懷卡托大區"] = {wp = "Waikato Region"}, ["豐盛灣大區"] = {wp = "Bay of Plenty Region"}, ["吉斯伯恩大區"] = {wp = "Gisborne District", placetype = {"region", "district"}}, ["霍克斯灣大區"] = {wp = "Hawke's Bay Region"}, ["塔拉納基大區"] = {wp = "Taranaki Region"}, ["馬納瓦圖-旺阿努伊大區"] = {wp = "Manawatū-Whanganui Region"}, ["惠靈頓大區"] = {wp = "Wellington Region"}, ["塔斯曼大區"] = {wp = "Tasman District", placetype = {"region", "district"}}, ["納爾遜大區"] = {wp = "Nelson, New Zealand", placetype = {"region", "city"}, is_city = true}, ["馬爾堡大區"] = {wp = "Marlborough District", placetype = {"region", "district"}}, ["西海岸大區"] = {wp = "West Coast Region"}, ["坎特伯雷大區"] = {wp = "Canterbury Region"}, ["奧塔哥大區"] = {wp = "Otago Region"}, ["南地大區"] = {wp = "Southland Region"}, } export.new_zealand_group = { placename_to_key = false, default_container = "紐西蘭", default_placetype = "region", data = export.new_zealand_regions, } ----------------------------------------------------------------------------------- -- Norway counties -- ----------------------------------------------------------------------------------- export.norwegian_counties = { ["奧斯陸縣"] = {wp = "Oslo"}, ["羅加蘭縣"] = {wp = "Rogaland"}, ["莫雷-羅姆斯達爾縣"] = {wp = "Møre og Romsdal"}, ["諾爾蘭縣"] = {wp = "Nordland"}, ["東福爾縣"] = {wp = "Østfold"}, ["阿克斯胡斯縣"] = {wp = "Akershus"}, ["布斯克呂縣"] = {wp = "Buskerud"}, ["因蘭德縣"] = {wp = "Innlandet"}, ["西福爾縣"] = {wp = "Vestfold"}, ["泰勒馬克縣"] = {wp = "Telemark"}, ["阿格德爾縣"] = {wp = "Agder"}, ["西地縣"] = {wp = "Vestland"}, ["特倫德拉格縣"] = {wp = "Trøndelag"}, ["特羅姆斯縣"] = {wp = "Troms"}, ["芬馬克縣"] = {wp = "Finnmark"}, } export.norway_group = { placename_to_key = false, default_container = "挪威", default_placetype = "county", data = export.norwegian_counties, } ----------------------------------------------------------------------------------- -- Pakistan provinces and territories -- ----------------------------------------------------------------------------------- export.pakistan_provinces_and_territories = { ["自由克什米爾"] = {wp = "Azad Kashmir", placetype = {"administrative territory", "autonomous territory", "territory"}}, ["俾路支省"] = {wp = "Balochistan, Pakistan"}, ["吉爾吉特-巴爾蒂斯坦"] = {wp = "Gilgit-Baltistan", placetype = {"administrative territory", "territory"}}, ["伊斯蘭馬巴德首都直轄區"] = {wp = "Islamabad Capital Territory", placetype = {"federal territory", "administrative territory", "territory"}}, ["開伯爾-普赫圖赫瓦省"] = {wp = "Khyber Pakhtunkhwa"}, ["旁遮普省(巴基斯坦)"] = {wp = "Punjab, Pakistan"}, ["信德省"] = {wp = "Sindh"}, } export.pakistan_group = { placename_to_key = false, default_container = "巴基斯坦", default_placetype = "province", data = export.pakistan_provinces_and_territories, } ----------------------------------------------------------------------------------- -- Philippines provinces -- ----------------------------------------------------------------------------------- export.philippines_provinces = { ["阿布拉省"] = {wp = "Abra (province)"}, ["北阿古桑省"] = {wp = "Agusan del Norte"}, ["南阿古桑省"] = {wp = "Agusan del Sur"}, ["阿克蘭省"] = {wp = "Aklan"}, ["阿爾拜省"] = {wp = "Albay"}, ["安蒂克省"] = {wp = "Antique (province)"}, ["阿帕亞沃省"] = {wp = "Apayao"}, ["奧羅拉省"] = {wp = "Aurora (province)"}, ["巴西蘭省"] = {wp = "Basilan"}, ["巴丹省"] = {wp = "Bataan"}, ["巴達內斯省"] = {wp = "Batanes"}, ["八打雁省"] = {wp = "Batangas"}, ["本格特省"] = {wp = "Benguet"}, ["比利蘭省"] = {wp = "Biliran"}, ["保和省"] = {wp = "Bohol"}, ["布基農省"] = {wp = "Bukidnon"}, ["布拉干省"] = {wp = "Bulacan"}, ["卡加延省"] = {wp = "Cagayan"}, ["北甲馬仁省"] = {wp = "Camarines Norte"}, ["南甲馬仁省"] = {wp = "Camarines Sur"}, ["卡米金省"] = {wp = "Camiguin"}, ["卡皮斯省"] = {wp = "Capiz"}, ["卡坦端內斯省"] = {wp = "Catanduanes"}, ["甲米地省"] = {wp = "Cavite"}, ["宿霧省"] = {wp = "Cebu"}, ["哥打巴托省"] = {wp = "Cotabato"}, ["達沃德奧羅省"] = {wp = "Davao de Oro"}, ["北達沃省"] = {wp = "Davao del Norte"}, ["南達沃省"] = {wp = "Davao del Sur"}, ["西達沃省"] = {wp = "Davao Occidental"}, ["東達沃省"] = {wp = "Davao Oriental"}, ["迪納加特群島省"] = {wp = "Dinagat Islands"}, ["東薩馬省"] = {wp = "Eastern Samar"}, ["吉馬拉斯省"] = {wp = "Guimaras"}, ["伊富高省"] = {wp = "Ifugao"}, ["北伊羅科斯省"] = {wp = "Ilocos Norte"}, ["南伊羅科斯省"] = {wp = "Ilocos Sur"}, ["伊洛伊洛省"] = {wp = "Iloilo"}, ["伊莎貝拉省"] = {wp = "Isabela (province)"}, ["卡林加省"] = {wp = "Kalinga (province)"}, ["拉烏尼翁省"] = {wp = "La Union"}, ["拉古納省"] = {wp = "Laguna (province)"}, ["北拉瑙省"] = {wp = "Lanao del Norte"}, ["南拉瑙省"] = {wp = "Lanao del Sur"}, ["萊特省"] = {wp = "Leyte (province)"}, ["北馬京達瑙省"] = {wp = "Maguindanao del Norte"}, ["南馬京達瑙省"] = {wp = "Maguindanao del Sur"}, ["馬林杜克省"] = {wp = "Marinduque"}, ["馬斯巴特省"] = {wp = "Masbate"}, ["西米薩米斯省"] = {wp = "Misamis Occidental"}, ["東米薩米斯省"] = {wp = "Misamis Oriental"}, ["山岳省"] = {wp = "Mountain Province"}, ["西內格羅斯省"] = {wp = "Negros Occidental"}, ["東內格羅斯省"] = {wp = "Negros Oriental"}, ["北薩馬省"] = {wp = "Northern Samar"}, ["新怡詩夏省"] = {wp = "Nueva Ecija"}, ["新比斯開省"] = {wp = "Nueva Vizcaya"}, ["西民都洛省"] = {wp = "Occidental Mindoro"}, ["東民都洛省"] = {wp = "Oriental Mindoro"}, ["巴拉望省"] = {wp = "Palawan"}, ["邦板牙省"] = {wp = "Pampanga"}, ["邦阿西楠省"] = {wp = "Pangasinan"}, ["奎松省"] = {wp = "Quezon"}, ["基里諾省"] = {wp = "Quirino"}, ["黎剎省"] = {wp = "Rizal (province)"}, ["朗布隆省"] = {wp = "Romblon"}, ["薩馬省"] = {wp = "Samar (province)"}, ["薩蘭加尼省"] = {wp = "Sarangani"}, ["錫基霍爾省"] = {wp = "Siquijor"}, ["索索貢省"] = {wp = "Sorsogon"}, ["南哥打巴托省"] = {wp = "South Cotabato"}, ["南萊特省"] = {wp = "Southern Leyte"}, ["蘇丹庫達拉省"] = {wp = "Sultan Kudarat"}, ["蘇祿省"] = {wp = "Sulu"}, ["北蘇里高省"] = {wp = "Surigao del Norte"}, ["南蘇里高省"] = {wp = "Surigao del Sur"}, ["塔拉克省"] = {wp = "Tarlac"}, ["塔威塔威省"] = {wp = "Tawi-Tawi"}, ["三描禮士省"] = {wp = "Zambales"}, ["北三寶顏省"] = {wp = "Zamboanga del Norte"}, ["南三寶顏省"] = {wp = "Zamboanga del Sur"}, ["三寶顏錫布蓋省"] = {wp = "Zamboanga Sibugay"}, ["馬尼拉都會區"] = {wp = "Metro Manila", placetype = {"region", "province"}}, } export.philippines_group = { placename_to_key = false, default_container = "菲律賓", default_placetype = "province", data = export.philippines_provinces, } ----------------------------------------------------------------------------------- -- Poland voivodeships -- ----------------------------------------------------------------------------------- export.poland_voivodeships = { ["下西里西亞省"] = {wp = "Lower Silesian Voivodeship"}, ["庫亞維-波美拉尼亞省"] = {wp = "Kuyavian-Pomeranian Voivodeship"}, ["盧布林省"] = {wp = "Lublin Voivodeship"}, ["盧布斯省"] = {wp = "Lubusz Voivodeship"}, ["羅茲省"] = {wp = "Łódź Voivodeship"}, ["小波蘭省"] = {wp = "Lesser Poland Voivodeship"}, ["馬佐夫舍省"] = {wp = "Masovian Voivodeship"}, ["奧波萊省"] = {wp = "Opole Voivodeship"}, ["喀爾巴阡山省"] = {wp = "Subcarpathian Voivodeship"}, ["波德拉謝省"] = {wp = "Podlaskie Voivodeship"}, ["波美拉尼亞省"] = {wp = "Pomeranian Voivodeship"}, ["西里西亞省"] = {wp = "Silesian Voivodeship"}, ["神聖十字省"] = {wp = "Świętokrzyskie Voivodeship"}, ["瓦爾米亞-馬祖里省"] = {wp = "Warmian-Masurian Voivodeship"}, ["大波蘭省"] = {wp = "Greater Poland Voivodeship"}, ["西波美拉尼亞省"] = {wp = "West Pomeranian Voivodeship"}, } export.poland_group = { placename_to_key = false, default_container = "波蘭", default_placetype = "voivodeship", data = export.poland_voivodeships, } ----------------------------------------------------------------------------------- -- Portugal districts and autonomous regions -- ----------------------------------------------------------------------------------- export.portugal_districts_and_autonomous_regions = { ["亞速爾群島"] = {wp = "Azores", placetype = {"autonomous region", "region"}}, ["阿維羅區"] = {wp = "Aveiro District"}, ["貝雅區"] = {wp = "Beja District"}, ["布拉加區"] = {wp = "Braga District"}, ["布拉干薩區"] = {wp = "Bragança District"}, ["卡斯特洛布蘭科區"] = {wp = "Castelo Branco District"}, ["科英布拉區"] = {wp = "Coimbra District"}, ["埃武拉區"] = {wp = "Évora District"}, ["法魯區"] = {wp = "Faro District"}, ["瓜達區"] = {wp = "Guarda District"}, ["萊里亞區"] = {wp = "Leiria District"}, ["里斯本區"] = {wp = "Lisbon District"}, ["馬德拉島"] = {wp = "Madeira", placetype = {"autonomous region", "region"}}, ["波塔萊格里區"] = {wp = "Portalegre District"}, ["波爾圖區"] = {wp = "Porto District"}, ["聖塔倫區"] = {wp = "Santarém District"}, ["塞圖巴爾區"] = {wp = "Setúbal District"}, ["維亞納堡區"] = {wp = "Viana do Castelo District"}, ["維拉雷亞爾區"] = {wp = "Vila Real District"}, ["維塞烏區"] = {wp = "Viseu District"}, } export.portugal_group = { placename_to_key = false, default_container = "葡萄牙", default_placetype = "district", data = export.portugal_districts_and_autonomous_regions, } ----------------------------------------------------------------------------------- -- Russia federal subjects -- ----------------------------------------------------------------------------------- local russia_oblast = {placetype = "oblast"} local russia_krai = {placetype = "krai"} local russia_republic = {placetype = "republic"} local russia_autonomous_okrug = {placetype = {"autonomous okrug", "okrug"}} export.russia_federal_subjects = { -- autonomous oblast ["猶太自治州"] = {placetype = {"autonomous oblast", "oblast"}, wp = "Jewish Autonomous Oblast"}, -- autonomous okrugs ["楚科奇自治區"] = {wp = "Chukotka Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西自治區"] = {wp = "Khanty-Mansi Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西亞"] = {alias_of = "漢特-曼西自治區"}, ["涅涅茨自治區"] = {wp = "Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["亞馬洛-涅涅茨自治區"] = {wp = "Yamalo-Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, -- krais ["阿爾泰邊疆區"] = {wp = "Altai Krai", placetype = "krai"}, ["堪察加邊疆區"] = {wp = "Kamchatka Krai", placetype = "krai"}, ["哈巴羅夫斯克邊疆區"] = {wp = "Khabarovsk Krai", placetype = "krai"}, ["克拉斯諾達爾邊疆區"] = {wp = "Krasnodar Krai", placetype = "krai"}, ["克拉斯諾亞爾斯克邊疆區"] = {wp = "Krasnoyarsk Krai", placetype = "krai"}, ["彼爾姆邊疆區"] = {wp = "Perm Krai", placetype = "krai"}, ["濱海邊疆區"] = {wp = "Primorsky Krai", placetype = "krai"}, ["斯塔夫羅波爾邊疆區"] = {wp = "Stavropol Krai", placetype = "krai"}, ["外貝加爾邊疆區"] = {wp = "Zabaykalsky Krai", placetype = "krai"}, -- oblasts ["阿穆爾州"] = russia_oblast, ["阿爾漢格爾斯克州"] = russia_oblast, ["阿斯特拉罕州"] = russia_oblast, ["別爾哥羅德州"] = russia_oblast, ["布良斯克州"] = russia_oblast, ["車裡雅賓斯克州"] = russia_oblast, ["伊爾庫茨克州"] = russia_oblast, ["伊萬諾沃州"] = russia_oblast, ["加里寧格勒州"] = russia_oblast, ["卡盧加州"] = russia_oblast, ["克麥羅沃州"] = russia_oblast, ["基洛夫州"] = russia_oblast, ["科斯特羅馬州"] = russia_oblast, ["庫爾干州"] = russia_oblast, ["庫爾斯克州"] = russia_oblast, ["列寧格勒州"] = russia_oblast, ["利佩茨克州"] = russia_oblast, ["馬加丹州"] = russia_oblast, ["莫斯科州"] = russia_oblast, ["摩爾曼斯克州"] = russia_oblast, ["下諾夫哥羅德州"] = russia_oblast, ["諾夫哥羅德州"] = russia_oblast, ["新西伯利亞州"] = russia_oblast, ["鄂木斯克州"] = russia_oblast, ["奧倫堡州"] = russia_oblast, ["奧廖爾州"] = russia_oblast, ["奔薩州"] = russia_oblast, ["普斯科夫州"] = russia_oblast, ["羅斯托夫州"] = russia_oblast, ["梁贊州"] = russia_oblast, ["薩哈林州"] = {wp = "Sakhalin Oblast", placetype = "oblast"}, ["薩馬拉州"] = russia_oblast, ["薩拉托夫州"] = russia_oblast, ["斯摩棱斯克州"] = russia_oblast, ["斯維爾德洛夫斯克州"] = russia_oblast, ["坦波夫州"] = russia_oblast, ["托木斯克州"] = russia_oblast, ["圖拉州"] = russia_oblast, ["特維爾州"] = russia_oblast, ["秋明州"] = russia_oblast, ["烏里揚諾夫斯克州"] = russia_oblast, ["弗拉基米爾州"] = russia_oblast, ["伏爾加格勒州"] = russia_oblast, ["沃洛格達州"] = russia_oblast, ["沃羅涅日州"] = russia_oblast, ["雅羅斯拉夫爾州"] = russia_oblast, -- republics ["阿迪格共和國"] = russia_republic, ["巴什科爾托斯坦共和國"] = russia_republic, ["布里亞特共和國"] = russia_republic, ["達吉斯坦共和國"] = russia_republic, ["印古什共和國"] = russia_republic, ["卡爾梅克共和國"] = russia_republic, ["卡累利亞共和國"] = {wp = "Republic of Karelia", placetype = "republic"}, ["哈卡斯共和國"] = russia_republic, ["莫爾多瓦共和國"] = russia_republic, ["北奧塞梯-阿蘭尼亞共和國"] = {wp = "North Ossetia–Alania", placetype = "republic"}, ["北奧塞梯"] = {alias_of = "北奧塞梯-阿蘭尼亞共和國"}, ["韃靼斯坦共和國"] = russia_republic, ["阿爾泰共和國"] = {wp = "Altai Republic", placetype = "republic"}, ["車臣共和國"] = russia_republic, ["楚瓦什共和國"] = russia_republic, ["卡巴爾達-巴爾卡爾共和國"] = russia_republic, ["卡拉恰伊-切爾克斯共和國"] = russia_republic, ["科米共和國"] = {wp = "Komi Republic", placetype = "republic"}, ["馬里埃爾共和國"] = russia_republic, ["薩哈共和國"] = {wp = "Sakha Republic", placetype = "republic"}, ["雅庫特"] = {alias_of = "薩哈共和國"}, ["圖瓦共和國"] = russia_republic, ["烏德穆爾特共和國"] = russia_republic, } export.russia_group = { placename_to_key = false, default_container = "俄羅斯", default_placetype = "oblast", data = export.russia_federal_subjects, } ----------------------------------------------------------------------------------- -- Saudi Arabia provinces -- ----------------------------------------------------------------------------------- export.saudi_arabia_provinces = { ["利雅得省"] = {wp = "Riyadh Province"}, ["麥加省"] = {wp = "Mecca Province"}, ["東部省(沙特)"] = {wp = "Eastern Province, Saudi Arabia", no_auto_augment_container = true}, ["麥地那省"] = {wp = "Medina Province"}, ["阿西爾省"] = {wp = "Asir"}, ["吉贊省"] = {wp = "Jazan Province"}, ["卡西姆省"] = {wp = "Al-Qassim Province"}, ["塔布克省"] = {wp = "Tabuk Province"}, ["哈伊爾省"] = {wp = "Ha'il Province"}, ["焦夫省"] = {wp = "Al-Jawf Province"}, ["納季蘭省"] = {wp = "Najran Province"}, ["北部邊界省"] = {wp = "Northern Borders Province"}, ["巴哈省"] = {wp = "Al-Bahah Province"}, } export.saudi_arabia_group = { placename_to_key = false, default_container = "沙烏地阿拉伯", default_placetype = "province", data = export.saudi_arabia_provinces, } ----------------------------------------------------------------------------------- -- South Africa provinces -- ----------------------------------------------------------------------------------- export.south_africa_provinces = { ["東開普省"] = {wp = "Eastern Cape"}, ["自由邦省"] = {wp = "Free State (South African province)"}, ["豪登省"] = {wp = "Gauteng"}, ["夸祖魯-納塔爾省"] = {wp = "KwaZulu-Natal"}, ["林波波省"] = {wp = "Limpopo"}, ["姆普馬蘭加省"] = {wp = "Mpumalanga"}, ["西北省(南非)"] = {wp = "North West (South African province)"}, ["北開普省"] = {wp = "Northern Cape"}, ["西開普省"] = {wp = "Western Cape"}, } export.south_africa_group = { placename_to_key = false, default_container = "南非", default_placetype = "province", data = export.south_africa_provinces, } ----------------------------------------------------------------------------------- -- Ukraine oblasts -- ----------------------------------------------------------------------------------- export.ukraine_oblasts = { ["切爾卡瑟州"] = {wp = "Cherkasy Oblast"}, ["切爾尼戈夫州"] = {wp = "Chernihiv Oblast"}, ["切爾諾夫策州"] = {wp = "Chernivtsi Oblast"}, ["第聶伯羅彼得羅夫斯克州"] = {wp = "Dnipropetrovsk Oblast"}, ["頓涅茨克州"] = {wp = "Donetsk Oblast"}, ["伊萬諾-弗蘭科夫斯克州"] = {wp = "Ivano-Frankivsk Oblast"}, ["哈爾科夫州"] = {wp = "Kharkiv Oblast"}, ["赫爾松州"] = {wp = "Kherson Oblast"}, ["赫梅利尼茨基州"] = {wp = "Khmelnytskyi Oblast"}, ["基洛夫格勒州"] = {wp = "Kirovohrad Oblast"}, ["基輔州"] = {wp = "Kyiv Oblast"}, ["盧甘斯克州"] = {wp = "Luhansk Oblast"}, ["利沃夫州"] = {wp = "Lviv Oblast"}, ["尼古拉耶夫州"] = {wp = "Mykolaiv Oblast"}, ["敖德薩州"] = {wp = "Odesa Oblast"}, ["波爾塔瓦州"] = {wp = "Poltava Oblast"}, ["羅夫諾州"] = {wp = "Rivne Oblast"}, ["蘇梅州"] = {wp = "Sumy Oblast"}, ["捷爾諾波爾州"] = {wp = "Ternopil Oblast"}, ["文尼察州"] = {wp = "Vinnytsia Oblast"}, ["沃里尼亞州"] = {wp = "Volyn Oblast"}, ["外喀爾巴阡州"] = {wp = "Zakarpattia Oblast"}, ["扎波羅熱州"] = {wp = "Zaporizhzhia Oblast"}, ["日托米爾州"] = {wp = "Zhytomyr Oblast"}, } export.ukraine_group = { placename_to_key = false, default_container = "烏克蘭", default_placetype = "oblast", data = export.ukraine_oblasts, } ----------------------------------------------------------------------------------- -- Wales principal areas -- ----------------------------------------------------------------------------------- export.wales_principal_areas = { ["布拉艾諾格溫特"] = {wp = "Blaenau Gwent"}, ["布里真德"] = {wp = "Bridgend County Borough"}, ["卡菲利"] = {wp = "Caerphilly County Borough"}, ["卡馬森郡"] = {wp = "Carmarthenshire", placetype = "county"}, ["克雷地基昂"] = {wp = "Ceredigion", placetype = "county"}, ["科溫"] = {wp = "Conwy County Borough"}, ["登比郡"] = {wp = "Denbighshire", placetype = "county"}, ["弗林特郡"] = {wp = "Flintshire", placetype = "county"}, ["格溫內德"] = {wp = "Gwynedd", placetype = "county"}, ["安格爾西島"] = {wp = "Isle of Anglesey", placetype = "county"}, ["默瑟蒂德菲爾"] = {wp = "Merthyr Tydfil County Borough"}, ["蒙茅斯郡"] = {wp = "Monmouthshire", placetype = "county"}, ["尼斯-波特塔爾博特"] = {wp = "Neath Port Talbot"}, ["彭布羅克郡"] = {wp = "Pembrokeshire", placetype = "county"}, ["波伊斯"] = {wp = "Powys", placetype = "county"}, ["朗達坎農塔夫"] = {wp = "Rhondda Cynon Taf"}, ["托爾范"] = {wp = "Torfaen"}, ["格拉摩根谷"] = {wp = "Vale of Glamorgan"}, ["雷克瑟姆"] = {wp = "Wrexham County Borough"}, } export.wales_group = { placename_to_key = false, default_container = {key = "威爾斯", placetype = "constituent country"}, default_placetype = "county borough", data = export.wales_principal_areas, } ----------------------------------------------------------------------------------- -- City groups -- ----------------------------------------------------------------------------------- export.australia_cities = { ["阿德萊德"] = {container = "南澳大利亞", wp = "Adelaide"}, ["布里斯班"] = {container = "昆士蘭", wp = "Brisbane"}, ["坎培拉"] = {container = "澳大利亞首都領地", wp = "Canberra"}, ["墨爾本"] = {container = "維多利亞州", wp = "Melbourne"}, ["紐卡素"] = {container = "新南威爾斯", wp = "Newcastle, New South Wales"}, ["伯斯"] = {container = "西澳大利亞", wp = "Perth"}, ["悉尼"] = {container = "新南威爾斯", wp = "Sydney"}, } export.australia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "澳大利亞", default_placetype = "city", default_is_city = true, data = export.australia_cities, } export.brazil_cities = { ["聖保羅"] = {container = "聖保羅州", wp = "São Paulo"}, ["里約熱內盧"] = {container = "里約熱內盧州", wp = "Rio de Janeiro"}, ["貝洛奧里藏特"] = {container = "米納斯吉拉斯", wp = "Belo Horizonte"}, ["累西腓"] = {container = "伯南布哥州", wp = "Recife"}, ["阿雷格里港"] = {container = "南里奧格蘭德州", wp = "Porto Alegre"}, ["巴西利亞"] = {container = "巴西聯邦區", wp = "Brasília"}, ["福塔萊薩"] = {container = "塞阿拉州", wp = "Fortaleza"}, ["薩爾瓦多"] = {container = "巴伊亞", wp = "Salvador, Bahia"}, ["庫里蒂巴"] = {container = "巴拉那州", wp = "Curitiba"}, ["坎皮納斯"] = {container = "聖保羅州", wp = "Campinas"}, ["戈亞尼亞"] = {container = "戈亞斯州", wp = "Goiânia"}, ["瑪瑙斯"] = {container = "亞馬遜州", wp = "Manaus"}, ["伯利恆"] = {container = "帕拉州", wp = "Belém, Pará"}, ["維多利亞"] = {container = "聖埃斯皮里圖州", wp = "Vitória, Espírito Santo"}, ["聖路易斯"] = {container = "馬拉尼昂州", wp = "São Luís"}, ["納塔爾"] = {container = "北里奧格蘭德州", wp = "Natal, Rio Grande do Norte"}, ["弗洛里亞諾波利斯"] = {container = "聖卡塔琳娜州", wp = "Florianópolis"}, ["馬塞約"] = {container = "阿拉戈亞斯州", wp = "Maceió"}, ["若昂佩索阿"] = {container = "帕拉伊巴州", wp = "João Pessoa"}, ["特雷齊納"] = {container = "皮奧伊州", wp = "Teresina"}, ["隆德里納"] = {container = "巴拉那州", wp = "Londrina"}, } export.brazil_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "巴西", default_placetype = "city", default_is_city = true, data = export.brazil_cities, } export.canada_cities = { ["多倫多"] = {container = "安大略", wp = "Toronto"}, ["蒙特婁"] = {container = "魁北克", wp = "Montreal"}, ["溫哥華"] = {container = "英屬哥倫比亞", wp = "Vancouver"}, ["卡加里"] = {container = "亞伯達", wp = "Calgary"}, ["愛民頓"] = {container = "亞伯達", wp = "Edmonton"}, ["渥太華"] = {container = "安大略", wp = "Ottawa"}, ["魁北克城"] = {container = "魁北克", wp = "Quebec City"}, ["溫尼伯"] = {container = "馬尼托巴", wp = "Winnipeg"}, ["漢密爾頓"] = {container = "安大略", wp = "Hamilton, Ontario"}, } export.canada_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "加拿大", default_placetype = "city", default_is_city = true, data = export.canada_cities, } export.france_cities = { ["巴黎"] = {container = "法蘭西島大區", wp = "Paris"}, ["里昂"] = {container = "奧弗涅-隆河-阿爾卑斯大區", wp = "Lyon"}, ["馬賽"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Marseille"}, ["里爾"] = {container = "上法蘭西大區", wp = "Lille"}, ["波爾多"] = {container = "新阿基坦大區", wp = "Bordeaux"}, ["圖盧茲"] = {container = "奧克西塔尼大區", wp = "Toulouse"}, ["尼斯"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Nice"}, ["南特"] = {container = "盧瓦爾河地區大區", wp = "Nantes"}, ["史特拉斯堡"] = {container = "大東部大區", wp = "Strasbourg"}, ["雷恩"] = {container = "布列塔尼大區", wp = "Rennes"}, } export.france_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "法國", default_placetype = "city", default_is_city = true, data = export.france_cities, } export.germany_cities = { ["科隆"] = {container = "北萊茵-威斯特法倫", wp = "Cologne"}, ["杜塞爾多夫"] = {container = "北萊茵-威斯特法倫", wp = "Düsseldorf"}, ["多特蒙德"] = {container = "北萊茵-威斯特法倫", wp = "Dortmund"}, ["埃森"] = {container = "北萊茵-威斯特法倫", wp = "Essen"}, ["柏林"] = {wp = "Berlin"}, ["法蘭克福"] = {container = "黑森", wp = "Frankfurt"}, ["漢堡"] = {wp = "Hamburg"}, ["慕尼黑"] = {container = "巴伐利亞", wp = "Munich"}, ["斯圖加特"] = {container = "巴登-符騰堡", wp = "Stuttgart"}, ["曼海姆"] = {container = "巴登-符騰堡", wp = "Mannheim"}, ["紐倫堡"] = {container = "巴伐利亞", wp = "Nuremberg"}, ["漢諾威"] = {container = "下薩克森", wp = "Hanover"}, ["比勒費爾德"] = {container = "北萊茵-威斯特法倫", wp = "Bielefeld"}, ["萊比錫"] = {container = "薩克森", wp = "Leipzig"}, ["亞琛"] = {container = "北萊茵-威斯特法倫", wp = "Aachen"}, ["不來梅"] = {wp = "Bremen"}, } export.germany_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "德國", default_placetype = "city", default_is_city = true, data = export.germany_cities, } export.india_cities = { ["德里"] = {container = {key = "德里", placetype = "union territory"}, wp = "Delhi"}, ["孟買"] = {container = "馬哈拉施特拉邦", wp = "Mumbai"}, ["加爾各答"] = {container = "西孟加拉邦", wp = "Kolkata"}, ["班加羅爾"] = {container = "卡納塔克邦", wp = "Bengaluru"}, ["金奈"] = {container = "泰米爾納德邦", wp = "Chennai"}, ["海德拉巴"] = {container = "特倫甘納邦", wp = "Hyderabad"}, ["艾哈邁達巴德"] = {container = "古吉拉特邦", wp = "Ahmedabad"}, ["浦那"] = {container = "馬哈拉施特拉邦", wp = "Pune"}, ["蘇拉特"] = {container = "古吉拉特邦", wp = "Surat"}, ["勒克瑙"] = {container = "北方邦", wp = "Lucknow"}, ["齋浦爾"] = {container = "拉賈斯坦邦", wp = "Jaipur"}, ["坎普爾"] = {container = "北方邦", wp = "Kanpur"}, ["那格浦爾"] = {container = "馬哈拉施特拉邦", wp = "Nagpur"}, ["巴特那"] = {container = "比哈爾邦", wp = "Patna"}, ["瓦拉納西"] = {container = "北方邦", wp = "Varanasi"}, ["印多爾"] = {container = "中央邦", wp = "Indore"}, ["博帕爾"] = {container = "中央邦", wp = "Bhopal"}, ["阿格拉"] = {container = "北方邦", wp = "Agra"}, ["科欽"] = {container = "喀拉拉邦", wp = "Kochi"}, ["維沙卡帕特南"] = {container = "安得拉邦", wp = "Visakhapatnam"}, ["齋普爾"] = {alias_of = "齋浦爾"}, } export.india_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "印度", default_placetype = "city", default_is_city = true, data = export.india_cities, } export.indonesia_cities = { ["雅加達"] = {container = "雅加達首都特區", wp = "Jakarta"}, ["泗水"] = {container = "東爪哇省", wp = "Surabaya"}, ["勿加泗"] = {container = "西爪哇省", wp = "Bekasi"}, ["萬隆"] = {container = "西爪哇省", wp = "Bandung"}, ["棉蘭"] = {container = "北蘇門答臘省", wp = "Medan"}, ["德波"] = {container = "西爪哇省", wp = "Depok"}, ["萬丹市"] = {container = "萬丹省", wp = "Tangerang"}, ["巨港"] = {container = "南蘇門答臘省", wp = "Palembang"}, ["三寶壟"] = {container = "中爪哇省", wp = "Semarang"}, ["望加錫"] = {container = "南蘇拉威西省", wp = "Makassar"}, ["武端"] = {container = "廖內群島省", wp = "Batam"}, ["茂物"] = {container = "西爪哇省", wp = "Bogor"}, ["北干巴魯"] = {container = "廖內省", wp = "Pekanbaru"}, ["班達爾楠榜"] = {container = "楠榜省", wp = "Bandar Lampung"}, ["巴東"] = {container = "西蘇門答臘省", wp = "Padang"}, ["薩馬林達"] = {container = "東加里曼丹省", wp = "Samarinda"}, ["瑪琅"] = {container = "東爪哇省", wp = "Malang"}, ["日惹"] = {container = "日惹特區", wp = "Yogyakarta"}, ["登巴薩"] = {container = "峇里省", wp = "Denpasar"}, ["哲勒貢"] = {container = "西爪哇省", wp = "Cirebon"}, ["梭羅"] = {container = "中爪哇省", wp = "Surakarta"}, ["馬辰"] = {container = "南加里曼丹省", wp = "Banjarmasin"}, ["打橫"] = {container = "西爪哇省", wp = "Tasikmalaya"}, } export.indonesia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "印度尼西亞", default_placetype = "city", default_is_city = true, data = export.indonesia_cities, } export.italy_cities = { ["米蘭"] = {container = "倫巴第", wp = "Milan"}, ["那不勒斯"] = {container = "坎帕尼亞", wp = "Naples"}, ["羅馬"] = {container = "拉齊奧", wp = "Rome"}, ["都靈"] = {container = "皮埃蒙特", wp = "Turin"}, ["威尼斯"] = {container = "威尼托", wp = "Venice"}, ["佛羅倫斯"] = {container = "托斯卡納", wp = "Florence"}, ["巴里"] = {container = "普利亞", wp = "Bari"}, ["巴勒莫"] = {container = "西西里", wp = "Palermo"}, ["卡塔尼亞"] = {container = "西西里", wp = "Catania"}, ["布雷西亞"] = {container = "倫巴第", wp = "Brescia"}, ["熱那亞"] = {container = "利古里亞", wp = "Genoa"}, } export.italy_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "意大利", default_placetype = "city", default_is_city = true, data = export.italy_cities, } export.japan_cities = { ["東京"] = {container = "東京都", wp = "Tokyo", placetype = {"city", "prefecture"}}, ["橫濱"] = {container = "神奈川縣", wp = "Yokohama"}, ["大阪"] = {container = "大阪府", wp = "Osaka"}, ["名古屋"] = {container = "愛知縣", wp = "Nagoya"}, ["札幌"] = {container = "北海道", wp = "Sapporo"}, ["福岡"] = {container = "福岡縣", wp = "Fukuoka"}, ["神戶"] = {container = "兵庫縣", wp = "Kobe"}, ["京都"] = {container = "京都府", wp = "Kyoto"}, ["川崎"] = {container = "神奈川縣", wp = "Kawasaki, Kanagawa"}, ["廣島"] = {container = "廣島縣", wp = "Hiroshima"}, ["仙台"] = {container = "宮城縣", wp = "Sendai"}, ["北九州"] = {container = "福岡縣", wp = "Kitakyushu"}, ["新潟"] = {container = "新潟縣", wp = "Niigata (city)"}, ["靜岡"] = {container = "靜岡縣", wp = "Shizuoka (city)"}, ["岡山"] = {container = "岡山縣", wp = "Okayama"}, ["熊本"] = {container = "熊本縣", wp = "Kumamoto"}, ["鹿兒島"] = {container = "鹿兒島縣", wp = "Kagoshima"}, } export.japan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "prefecture"), default_container = "日本", default_placetype = "city", default_is_city = true, data = export.japan_cities, } export.mexico_cities = { ["墨西哥城"] = {wp = "Mexico City"}, ["蒙特雷"] = {container = "新萊昂州", wp = "Monterrey"}, ["瓜達拉哈拉"] = {container = "哈利斯科州", wp = "Guadalajara"}, ["普埃布拉市"] = {container = "普埃布拉州", wp = "Puebla (city)"}, ["托盧卡"] = {container = "墨西哥州", wp = "Toluca"}, ["蒂華納"] = {container = "下加利福尼亞州", wp = "Tijuana"}, ["萊昂"] = {container = "瓜納華托州", wp = "León, Guanajuato"}, ["克雷塔羅市"] = {container = "克雷塔羅州", wp = "Querétaro (city)"}, ["華雷斯城"] = {container = "奇瓦瓦州", wp = "Ciudad Juárez"}, ["托雷翁"] = {container = "科阿韋拉州", wp = "Torreón"}, ["梅里達"] = {container = "尤卡坦州", wp = "Mérida, Yucatán"}, ["聖路易斯波托西市"] = {container = "聖路易斯波托西州", wp = "San Luis Potosí (city)"}, ["阿瓜斯卡連特斯市"] = {container = "阿瓜斯卡連特斯州", wp = "Aguascalientes (city)"}, ["墨西卡利"] = {container = "下加利福尼亞州", wp = "Mexicali"}, } export.mexico_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "墨西哥", default_placetype = "city", default_is_city = true, data = export.mexico_cities, } export.nigeria_cities = { ["拉各斯"] = {container = "拉各斯州", wp = "Lagos"}, ["卡諾市"] = {container = "卡諾州", wp = "Kano (city)"}, ["伊巴丹"] = {container = "奧約州", wp = "Ibadan"}, ["阿布賈"] = {container = {key = "阿布賈聯邦首都轄區", placetype = "federal territory"}, wp = "Abuja"}, ["哈科特港"] = {container = "河流州", wp = "Port Harcourt"}, ["卡杜納市"] = {container = "卡杜納州", wp = "Kaduna (city)"}, ["貝寧城"] = {container = "埃多州", wp = "Benin City"}, ["阿巴"] = {container = "阿比亞州", wp = "Aba, Nigeria"}, ["奧尼查"] = {container = "阿南布拉州", wp = "Onitsha"}, ["邁杜古里"] = {container = "博爾諾州", wp = "Maiduguri"}, ["伊洛林"] = {container = "誇拉州", wp = "Ilorin"}, ["索科托市"] = {container = "索科托州", wp = "Sokoto (city)"}, ["喬斯"] = {container = "高原州", wp = "Jos"}, ["扎里亞"] = {container = "卡杜納州", wp = "Zaria"}, ["埃努古市"] = {container = "埃努古州", wp = "Enugu (city)"}, } export.nigeria_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "奈及利亞", default_placetype = "city", default_is_city = true, data = export.nigeria_cities, } export.pakistan_cities = { ["卡拉奇"] = {container = "信德省", wp = "Karachi"}, ["拉合爾"] = {container = "旁遮普省(巴基斯坦)", wp = "Lahore"}, ["拉瓦爾品第"] = {container = "旁遮普省(巴基斯坦)", wp = "Rawalpindi"}, ["伊斯蘭馬巴德"] = {container = {key = "伊斯蘭馬巴德首都直轄區", placetype = "federal territory"}, wp = "Islamabad"}, ["費薩拉巴德"] = {container = "旁遮普省(巴基斯坦)", wp = "Faisalabad"}, ["古傑蘭瓦拉"] = {container = "旁遮普省(巴基斯坦)", wp = "Gujranwala"}, ["海德拉巴(巴基斯坦)"] = {container = "信德省", wp = "Hyderabad, Pakistan"}, ["木爾坦"] = {container = "旁遮普省(巴基斯坦)", wp = "Multan"}, ["白沙瓦"] = {container = "開伯爾-普赫圖赫瓦省", wp = "Peshawar"}, ["奎達"] = {container = "俾路支省", wp = "Quetta"}, ["薩戈達"] = {container = "旁遮普省(巴基斯坦)", wp = "Sargodha"}, ["錫亞爾科特"] = {container = "旁遮普省(巴基斯坦)", wp = "Sialkot"}, } export.pakistan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "巴基斯坦", default_placetype = "city", default_is_city = true, data = export.pakistan_cities, } export.philippines_cities = { ["奎松市"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Quezon City"}, ["馬尼拉"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Manila"}, ["達沃市"] = {container = "南達沃省", wp = "Davao City"}, ["卡洛坎"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Caloocan"}, ["三寶顏市"] = {container = "南三寶顏省", wp = "Zamboanga City"}, ["宿霧市"] = {container = "宿霧省", wp = "Cebu City"}, ["安蒂波洛"] = {container = "黎剎省", wp = "Antipolo"}, ["卡加延德奧羅"] = {container = "東米薩米斯省", wp = "Cagayan de Oro"}, ["達斯馬里尼亞斯"] = {container = "甲米地省", wp = "Dasmariñas"}, ["棉蘭老將軍城"] = {container = "南哥打巴托省", wp = "General Santos"}, ["聖何塞德爾蒙特"] = {container = "布拉干省", wp = "San Jose del Monte"}, ["巴科洛德"] = {container = "西內格羅斯省", wp = "Bacolod"}, ["卡蘭巴"] = {container = "拉古納省", wp = "Calamba, Laguna"}, ["天使城"] = {container = "邦板牙省", wp = "Angeles City"}, ["伊洛伊洛市"] = {container = "伊洛伊洛省", wp = "Iloilo City"}, } export.philippines_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "菲律賓", default_placetype = "city", default_is_city = true, data = export.philippines_cities, } export.russia_cities = { ["莫斯科"] = {wp = "Moscow"}, ["聖彼得堡"] = {wp = "Saint Petersburg"}, ["新西伯利亞"] = {container = "新西伯利亞州", wp = "Novosibirsk"}, ["葉卡捷琳堡"] = {container = "斯維爾德洛夫斯克州", wp = "Yekaterinburg"}, ["下諾夫哥羅德"] = {container = "下諾夫哥羅德州", wp = "Nizhny Novgorod"}, ["喀山"] = {container = {key = "韃靼斯坦共和國", placetype = "republic"}, wp = "Kazan"}, ["車裡雅賓斯克市"] = {container = "車裡雅賓斯克州", wp = "Chelyabinsk"}, ["頓河畔羅斯托夫"] = {container = "羅斯托夫州", wp = "Rostov-on-Don"}, ["克拉斯諾達爾市"] = {container = {key = "克拉斯諾達爾邊疆區", placetype = "krai"}, wp = "Krasnodar"}, ["薩馬拉市"] = {container = "薩馬拉州", wp = "Samara"}, ["克拉斯諾亞爾斯克市"] = {container = {key = "克拉斯諾亞爾斯克邊疆區", placetype = "krai"}, wp = "Krasnoyarsk"}, ["烏法"] = {container = {key = "巴什科爾托斯坦共和國", placetype = "republic"}, wp = "Ufa"}, ["薩拉托夫市"] = {container = "薩拉托夫州", wp = "Saratov"}, ["鄂木斯克市"] = {container = "鄂木斯克州", wp = "Omsk"}, ["沃羅涅日市"] = {container = "沃羅涅日州", wp = "Voronezh"}, ["伏爾加格勒市"] = {container = "伏爾加格勒州", wp = "Volgograd"}, ["彼爾姆市"] = {container = {key = "彼爾姆邊疆區", placetype = "krai"}, wp = "Perm, Russia"}, } export.russia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "oblast"), default_container = "俄羅斯", default_placetype = "city", default_is_city = true, data = export.russia_cities, } export.saudi_arabia_cities = { ["利雅得"] = {container = "利雅得省", wp = "Riyadh"}, ["吉達"] = {container = "麥加省", wp = "Jeddah"}, ["達曼"] = {container = "東部省(沙特)", wp = "Dammam"}, ["麥加"] = {container = "麥加省", wp = "Mecca"}, ["麥地那"] = {container = "麥地那省", wp = "Medina"}, ["霍夫夫"] = {container = "東部省(沙特)", wp = "Hofuf"}, ["哈米斯穆沙伊特"] = {container = "阿西爾省", wp = "Khamis Mushait"}, } export.saudi_arabia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "沙烏地阿拉伯", default_placetype = "city", default_is_city = true, data = export.saudi_arabia_cities, } export.south_korea_cities = { ["首爾"] = {wp = "Seoul"}, ["釜山"] = {wp = "Busan"}, ["仁川"] = {wp = "Incheon"}, ["大邱"] = {wp = "Daegu"}, ["大田"] = {wp = "Daejeon"}, ["光州"] = {wp = "Gwangju"}, ["蔚山"] = {wp = "Ulsan"}, } export.south_korea_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "南韓", default_placetype = "city", default_is_city = true, data = export.south_korea_cities, } export.spain_cities = { ["馬德里"] = {container = "馬德里自治區", wp = "Madrid"}, ["巴塞羅那"] = {container = "加泰羅尼亞", wp = "Barcelona"}, ["瓦倫西亞"] = {container = "巴倫西亞", wp = "Valencia"}, ["塞維利亞"] = {container = "安達盧西亞", wp = "Seville"}, ["畢爾包"] = {container = "巴斯克", wp = "Bilbao"}, } export.spain_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "autonomous community"), default_container = "西班牙", default_placetype = "city", default_is_city = true, data = export.spain_cities, } export.united_kingdom_cities = { ["倫敦"] = {container = {key = "大倫敦", placetype = "county"}, wp = "London"}, ["曼徹斯特"] = {container = {key = "大曼徹斯特", placetype = "county"}, wp = "Manchester"}, ["伯明翰"] = {container = {key = "西密德蘭", placetype = "county"}, wp = "Birmingham"}, ["利物浦"] = {container = {key = "默西賽德郡", placetype = "county"}, wp = "Liverpool"}, ["格拉斯哥"] = {container = {key = "Glasgow市", placetype = "council area"}, wp = "Glasgow"}, ["利茲"] = {container = {key = "西約克郡", placetype = "county"}, wp = "Leeds"}, ["布里斯托"] = {container = {key = "英格蘭", placetype = "constituent country"}, wp = "Bristol"}, ["卡地夫"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Cardiff"}, ["愛丁堡"] = {container = {key = "Edinburgh市", placetype = "council area"}, wp = "Edinburgh"}, ["斯旺西"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Swansea"}, ["紐波特"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Newport, Wales"}, } export.united_kingdom_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "county"), default_container = "英國", default_placetype = "city", default_is_city = true, data = export.united_kingdom_cities, } export.united_states_cities = { ["紐約市"] = {container = "紐約", wp = "New York City"}, ["洛杉磯"] = {container = "加利福尼亞", wp = "Los Angeles"}, ["芝加哥"] = {container = "伊利諾伊", wp = "Chicago"}, ["華盛頓特區"] = {wp = "Washington, D.C."}, ["巴爾的摩"] = {container = "馬里蘭", wp = "Baltimore"}, ["聖荷西"] = {container = "加利福尼亞", wp = "San Jose, California"}, ["舊金山"] = {container = "加利福尼亞", wp = "San Francisco"}, ["波士頓"] = {container = "麻薩諸塞", wp = "Boston"}, ["達拉斯"] = {container = "德克薩斯", wp = "Dallas"}, ["費城"] = {container = "賓夕法尼亞", wp = "Philadelphia"}, ["休士頓"] = {container = "德克薩斯", wp = "Houston"}, ["邁阿密"] = {container = "佛羅里達", wp = "Miami"}, ["亞特蘭大"] = {container = "喬治亞", wp = "Atlanta"}, ["底特律"] = {container = "密西根", wp = "Detroit"}, ["鳳凰城"] = {container = "亞利桑那", wp = "Phoenix"}, ["西雅圖"] = {container = "華盛頓州", wp = "Seattle"}, ["明尼阿波利斯"] = {container = "明尼蘇達", wp = "Minneapolis"}, ["克里夫蘭"] = {container = "俄亥俄", wp = "Cleveland"}, ["丹佛"] = {container = "科羅拉多", wp = "Denver"}, ["聖地牙哥(美國)"] = {container = "加利福尼亞", wp = "San Diego"}, ["波特蘭(俄勒岡)"] = {container = "俄勒岡", wp = "Portland"}, ["聖路易斯"] = {container = "密蘇里", wp = "St. Louis"}, ["夏洛特"] = {container = "北卡羅來納", wp = "Charlotte"}, ["薩克拉門托"] = {container = "加利福尼亞", wp = "Sacramento"}, ["匹茲堡"] = {container = "賓夕法尼亞", wp = "Pittsburgh"}, ["鹽湖城"] = {container = "猶他", wp = "Salt Lake City"}, ["聖安東尼奧"] = {container = "德克薩斯", wp = "San Antonio"}, ["哥倫布"] = {container = "俄亥俄", wp = "Columbus"}, ["堪薩斯城"] = {container = "密蘇里", wp = "Kansas City metropolitan area"}, ["印第安納波利斯"] = {container = "印第安納", wp = "Indianapolis"}, ["拉斯維加斯"] = {container = "內華達", wp = "Las Vegas"}, ["辛辛那提"] = {container = "俄亥俄", wp = "Cincinnati"}, ["奧斯汀"] = {container = "德克薩斯", wp = "Austin"}, ["密爾沃基"] = {container = "威斯康辛", wp = "Milwaukee"}, ["羅利"] = {container = "北卡羅來納", wp = "Raleigh"}, ["納什維爾"] = {container = "田納西", wp = "Nashville"}, ["傑克遜維爾"] = {container = "佛羅里達", wp = "Jacksonville"}, ["新奧爾良"] = {container = "路易斯安那", wp = "New Orleans"}, ["路易斯維爾"] = {container = "肯塔基", wp = "Louisville"}, ["奧克拉荷馬城"] = {container = "奧克拉荷馬", wp = "Oklahoma City"}, ["孟菲斯"] = {container = "田納西", wp = "Memphis"}, ["伯明翰(美國)"] = {container = "阿拉巴馬", wp = "Birmingham, Alabama"}, ["弗雷斯諾"] = {container = "加利福尼亞", wp = "Fresno"}, ["里奇蒙"] = {container = "弗吉尼亞", wp = "Richmond"}, ["水牛城"] = {container = "紐約", wp = "Buffalo"}, ["艾爾帕索"] = {container = "德克薩斯", wp = "El Paso"}, ["阿爾伯克基"] = {container = "新墨西哥", wp = "Albuquerque"}, ["塔森"] = {container = "亞利桑那", wp = "Tucson"}, ["科羅拉多斯普林斯"] = {container = "科羅拉多", wp = "Colorado Springs"}, ["奧馬哈"] = {container = "內布拉斯加", wp = "Omaha"}, ["塔爾薩"] = {container = "奧克拉荷馬", wp = "Tulsa"}, } export.united_states_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "美國", default_placetype = "city", default_is_city = true, data = export.united_states_cities, } export.vietnam_cities = { ["胡志明市"] = {wp = "Ho Chi Minh City"}, ["西貢"] = {alias_of = "胡志明市"}, ["河內"] = {wp = "Hanoi"}, ["峴港"] = {wp = "Da Nang"}, ["海防"] = {wp = "Haiphong"}, ["邊和"] = {container = "同奈省", wp = "Biên Hòa", placetype = "city"}, ["芹苴"] = {wp = "Cần Thơ"}, ["順化"] = {wp = "Huế"}, } export.vietnam_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "越南", default_placetype = {"municipality", "city"}, default_is_city = true, data = export.vietnam_cities, } ----------------------------------------------------------------------------------- -- locations list -- ----------------------------------------------------------------------------------- export.locations = { export.continents_group, export.countries_group, export.country_like_entities_group, export.former_countries_group, export.united_states_group, export.united_kingdom_group, export.scotland_group, export.england_group, export.northern_ireland_group, export.ireland_group, export.wales_group, export.china_group, export.china_prefecture_level_cities_group, export.taiwan_group, export.canada_group, export.australia_group, export.india_group, export.japan_group, export.brazil_group, export.france_group, export.france_departments_group, export.germany_group, export.italy_group, export.spain_group, export.austria_group, export.bangladesh_group, export.egypt_group, export.finland_group, export.greece_group, export.indonesia_group, export.lebanon_group, export.malaysia_group, export.malta_group, export.mexico_group, export.moldova_group, export.morocco_group, export.netherlands_group, export.new_zealand_group, export.norway_group, export.pakistan_group, export.philippines_group, export.poland_group, export.portugal_group, export.romania_group, export.bulgaria_group, export.iran_group, export.russia_group, export.saudi_arabia_group, export.south_africa_group, export.laos_group, export.north_korea_group, export.south_korea_group, export.thailand_group, export.turkey_group, export.ukraine_group, export.vietnam_group, export.nigeria_group, export.new_york_boroughs_group, export.australia_cities_group, export.brazil_cities_group, export.canada_cities_group, export.france_cities_group, export.germany_cities_group, export.india_cities_group, export.indonesia_cities_group, export.italy_cities_group, export.japan_cities_group, export.mexico_cities_group, export.nigeria_cities_group, export.pakistan_cities_group, export.philippines_cities_group, export.russia_cities_group, export.saudi_arabia_cities_group, export.south_korea_cities_group, export.spain_cities_group, export.united_kingdom_cities_group, export.united_states_cities_group, export.vietnam_cities_group, export.misc_cities_group, } return export axf181qrkf2cb5kiakb18fp42htoedv 9759408 9759401 2026-05-14T14:09:09Z TongcyDai 53191 9759408 Scribunto text/plain local export = {} export.force_cat = false local m_table = require("Module:table") local insert = table.insert local concat = table.concat local dump = mw.dumpObject local unpack = unpack or table.unpack --[==[ Chinese Wiktionary localization of [[Module:place/locations]]. All canonical location keys are in Chinese, matching what editors write in holonym parameters (e.g. {{place|zh|城市|s/中央邦|c/印度}}). English Wikipedia article names are stored in the `wp` field for cross-reference. The `the`, `british_spelling` and English-suffix-detection fields from enwikt are omitted as they are not applicable in Chinese. The helper functions (process_error through construct_linked_placename) are kept intact from enwikt's Module:place/locations to maintain API compatibility with Module:place/placetypes. ]==] ----------------------------------------------------------------------------------- -- Helper functions -- ----------------------------------------------------------------------------------- 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 function export.internal_error(fmt, ...) export.process_error("Internal error: " .. fmt, ...) end local internal_error = export.internal_error 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 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 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 == "country" or defcon.placetype == "constituent country") then return placename .. ", " .. defcon.key else return placename end end end 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 = "country"} 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", "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 spec.is_city = value_with_default(spec.is_city, group.default_placetype == "city") spec.initialized = true end 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 local placetype = spec.placetype or resolved_spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s", key) 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 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 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 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 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 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 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 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) -- Chinese has no articles; `the` field is unused but kept for API compatibility. return linked_placename end ----------------------------------------------------------------------------------- -- Local data helper factories -- ----------------------------------------------------------------------------------- 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 _, pat in ipairs(container_patterns) do local nsubs full_placename, nsubs = full_placename:gsub(pat, "") if nsubs > 0 then break end end end local elliptical_placename = full_placename if divtype_patterns then for _, pat in ipairs(divtype_patterns) do local nsubs elliptical_placename, nsubs = elliptical_placename:gsub(pat, "") if nsubs > 0 then break end end end return full_placename, elliptical_placename end end 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 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 -- Canonicalize a continent container key (string) to canonical container form. 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_container`", key) end ----------------------------------------------------------------------------------- -- Top-level tables -- ----------------------------------------------------------------------------------- export.continents = { ["地球"] = {placetype = "planet", addl_parents = {"nature"}, fulldesc = "=the planet [[Earth]] and the features found on it", wp = "Earth"}, ["非洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Africa"}, ["美洲"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Americas"}, ["北美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "North America"}, ["加勒比地區"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Caribbean"}, ["中美洲"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Central America"}, ["南美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "South America"}, ["南極洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, fulldesc = "=the territory of [[Antarctica]]", wp = "Antarctica"}, ["歐亞大陸"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Eurasia"}, ["亞洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Asia"}, ["中東"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Middle East"}, ["東南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Southeast Asia"}, ["南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "South Asia"}, ["東亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "East Asia"}, ["中亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Central Asia"}, ["歐洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Europe"}, ["西歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Western Europe"}, ["東歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Eastern Europe"}, ["北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Northern Europe"}, ["南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Southern Europe"}, ["中歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Central Europe"}, ["大洋洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Oceania"}, ["美拉尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Melanesia"}, ["密克羅尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Micronesia"}, ["玻里尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Polynesia"}, } export.continents_group = { default_overriding_bare_label_parents = {}, default_divs = {{type = "countries", prep = "in"}}, 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, default_no_check_holonym_mismatch = true, data = export.continents, } ----------------------------------------------------------------------------------- -- Countries -- ----------------------------------------------------------------------------------- export.countries = { -- Africa ["阿爾及利亞"] = {container = "非洲", divs = {"provinces", "communes", "districts"}, wp = "阿爾及利亞"}, ["安哥拉"] = {container = "非洲", divs = {"provinces", "municipalities"}, wp = "安哥拉"}, ["貝寧"] = {container = "非洲", wp = "貝寧"}, ["貝南"] = {alias_of = "貝寧"}, ["博茨瓦納"] = {container = "非洲", wp = "博茨瓦納"}, ["波札那"] = {alias_of = "博茨瓦納"}, ["布基納法索"] = {container = "非洲", wp = "布基納法索"}, ["布吉納法索"] = {alias_of = "布基納法索"}, ["布隆迪"] = {container = "非洲", wp = "布隆迪"}, ["蒲隆地"] = {alias_of = "布隆迪"}, ["佛得角"] = {container = "非洲", wp = "佛得角"}, ["維德角"] = {alias_of = "佛得角"}, ["中非共和國"] = {container = "非洲", wp = "中非共和國"}, ["乍得"] = {container = "非洲", wp = "乍得"}, ["查德"] = {alias_of = "乍得"}, ["科摩羅"] = {container = "非洲", wp = "科摩羅"}, ["葛摩"] = {alias_of = "科摩羅"}, ["剛果共和國"] = {container = "非洲", wp = "剛果共和國"}, ["剛果(布)"] = {alias_of = "剛果共和國"}, ["剛果民主共和國"] = {container = "非洲", divs = {"provinces"}, wp = "剛果民主共和國"}, ["剛果(金)"] = {alias_of = "剛果民主共和國"}, ["吉布提"] = {container = "非洲", wp = "吉布提"}, ["吉布地"] = {alias_of = "吉布提"}, ["埃及"] = {container = "非洲", divs = {"governorates"}, wp = "埃及"}, ["赤道幾內亞"] = {container = "非洲", wp = "赤道幾內亞"}, ["厄立特里亞"] = {container = "非洲", wp = "厄立特里亞"}, ["厄利垂亞"] = {alias_of = "厄立特里亞"}, ["斯威士蘭"] = {container = "非洲", wp = "斯威士蘭"}, ["史瓦帝尼"] = {alias_of = "斯威士蘭"}, ["埃塞俄比亞"] = {container = "非洲", divs = {"regions"}, wp = "埃塞俄比亞"}, ["衣索比亞"] = {alias_of = "埃塞俄比亞"}, ["加蓬"] = {container = "非洲", wp = "加蓬"}, ["加彭"] = {alias_of = "加蓬"}, ["岡比亞"] = {container = "非洲", wp = "岡比亞"}, ["甘比亞"] = {alias_of = "岡比亞"}, ["加納"] = {container = "非洲", wp = "加納"}, ["迦納"] = {alias_of = "加納"}, ["幾內亞"] = {container = "非洲", wp = "幾內亞"}, ["幾內亞比紹"] = {container = "非洲", wp = "幾內亞比紹"}, ["幾內亞比索"] = {alias_of = "幾內亞比紹"}, ["科特迪瓦"] = {container = "非洲", wp = "科特迪瓦"}, ["象牙海岸"] = {alias_of = "科特迪瓦"}, ["肯尼亞"] = {container = "非洲", divs = {"counties"}, wp = "肯尼亞"}, ["肯亞"] = {alias_of = "肯尼亞"}, ["萊索托"] = {container = "非洲", wp = "萊索托"}, ["賴索托"] = {alias_of = "萊索托"}, ["利比里亞"] = {container = "非洲", wp = "利比里亞"}, ["賴比瑞亞"] = {alias_of = "利比里亞"}, ["利比亞"] = {container = "非洲", wp = "利比亞"}, ["馬達加斯加"] = {container = "非洲", wp = "馬達加斯加"}, ["馬拉維"] = {container = "非洲", wp = "馬拉維"}, ["馬拉威"] = {alias_of = "馬拉維"}, ["馬里"] = {container = "非洲", wp = "馬里"}, ["馬利"] = {alias_of = "馬里"}, ["毛里塔尼亞"] = {container = "非洲", wp = "毛里塔尼亞"}, ["茅利塔尼亞"] = {alias_of = "毛里塔尼亞"}, ["毛里求斯"] = {container = "非洲", wp = "毛里求斯"}, ["模里西斯"] = {alias_of = "毛里求斯"}, ["摩洛哥"] = {container = "非洲", wp = "摩洛哥"}, ["莫桑比克"] = {container = "非洲", wp = "莫桑比克"}, ["莫三比克"] = {alias_of = "莫桑比克"}, ["納米比亞"] = {container = "非洲", wp = "納米比亞"}, ["尼日爾"] = {container = "非洲", wp = "尼日爾"}, ["尼日"] = {alias_of = "尼日爾"}, ["尼日利亞"] = {container = "非洲", divs = { {type = "states", cat_as = "states and FCT"}, "local government areas", }, wp = "尼日利亞"}, ["奈及利亞"] = {alias_of = "尼日利亞"}, ["盧旺達"] = {container = "非洲", wp = "盧旺達"}, ["盧安達"] = {alias_of = "盧旺達"}, ["聖多美和普林西比"] = {container = "非洲", wp = "聖多美和普林西比"}, ["塞內加爾"] = {container = "非洲", wp = "塞內加爾"}, ["塞舌爾"] = {container = "非洲", wp = "塞舌爾"}, ["塞席爾"] = {alias_of = "塞舌爾"}, ["塞拉利昂"] = {container = "非洲", wp = "塞拉利昂"}, ["獅子山"] = {alias_of = "塞拉利昂"}, ["索馬里"] = {container = "非洲", wp = "索馬里"}, ["索馬利亞"] = {alias_of = "索馬里"}, ["南非"] = {container = "非洲", divs = {"provinces"}, wp = "南非"}, ["南蘇丹"] = {container = "非洲", wp = "南蘇丹"}, ["蘇丹"] = {container = "非洲", wp = "蘇丹"}, ["坦桑尼亞"] = {container = "非洲", wp = "坦桑尼亞"}, ["坦尚尼亞"] = {alias_of = "坦桑尼亞"}, ["多哥"] = {container = "非洲", wp = "多哥"}, ["突尼斯"] = {container = "非洲", wp = "突尼斯"}, ["突尼西亞"] = {alias_of = "突尼斯"}, ["烏干達"] = {container = "非洲", wp = "烏干達"}, ["贊比亞"] = {container = "非洲", wp = "贊比亞"}, ["尚比亞"] = {alias_of = "贊比亞"}, ["津巴布韋"] = {container = "非洲", wp = "津巴布韋"}, ["辛巴威"] = {alias_of = "津巴布韋"}, -- Asia ["阿富汗"] = {container = "亞洲", wp = "阿富汗"}, ["亞美尼亞"] = {container = {"歐洲", "亞洲"}, wp = "亞美尼亞"}, ["阿塞拜疆"] = {container = {"歐洲", "亞洲"}, wp = "阿塞拜疆"}, ["亞塞拜然"] = {alias_of = "阿塞拜疆"}, ["巴林"] = {container = "亞洲", wp = "巴林"}, ["孟加拉國"] = {container = "亞洲", divs = {"divisions", "districts"}, wp = "孟加拉國"}, ["孟加拉"] = {alias_of = "孟加拉國"}, ["不丹"] = {container = "亞洲", wp = "不丹"}, ["文萊"] = {container = "亞洲", wp = "文萊"}, ["汶萊"] = {alias_of = "文萊"}, ["柬埔寨"] = {container = "亞洲", wp = "柬埔寨"}, ["中國"] = {container = "亞洲", divs = { {type = "provinces", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "autonomous regions", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "direct-administered municipalities", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "special administrative regions", cat_as = "special administrative regions"}, }, wp = "中國"}, ["東帝汶"] = {container = "亞洲", wp = "東帝汶"}, ["帝汶島"] = {alias_of = "東帝汶"}, ["印度"] = {container = "亞洲", divs = { {type = "states", cat_as = "states and union territories"}, {type = "union territories", cat_as = "states and union territories"}, }, wp = "印度"}, ["印度尼西亞"] = {container = "亞洲", divs = {"provinces"}, wp = "印度尼西亞"}, ["印尼"] = {alias_of = "印度尼西亞"}, ["伊朗"] = {container = "亞洲", wp = "伊朗"}, ["伊拉克"] = {container = "亞洲", wp = "伊拉克"}, ["以色列"] = {container = "亞洲", wp = "以色列"}, ["日本"] = {container = "亞洲", divs = {"prefectures"}, wp = "日本"}, ["約旦"] = {container = "亞洲", wp = "約旦"}, ["哈薩克斯坦"] = {container = {"歐洲", "亞洲"}, wp = "哈薩克斯坦"}, ["哈薩克"] = {alias_of = "哈薩克斯坦"}, ["朝鮮"] = {container = "亞洲", wp = "朝鮮民主主義人民共和國"}, ["北韓"] = {alias_of = "朝鮮"}, ["韓國"] = {container = "亞洲", divs = {"provinces", "special cities", "metropolitan cities"}, wp = "韓國"}, ["南韓"] = {alias_of = "韓國"}, ["科威特"] = {container = "亞洲", wp = "科威特"}, ["吉爾吉斯斯坦"] = {container = "亞洲", wp = "吉爾吉斯斯坦"}, ["吉爾吉斯"] = {alias_of = "吉爾吉斯斯坦"}, ["老撾"] = {container = "亞洲", wp = "老撾"}, ["寮國"] = {alias_of = "老撾"}, ["黎巴嫩"] = {container = "亞洲", wp = "黎巴嫩"}, ["馬來西亞"] = {container = "亞洲", divs = {"states"}, wp = "馬來西亞"}, ["馬爾代夫"] = {container = "亞洲", wp = "馬爾代夫"}, ["馬爾地夫"] = {alias_of = "馬爾代夫"}, ["蒙古"] = {container = "亞洲", wp = "蒙古"}, ["緬甸"] = {container = "亞洲", wp = "緬甸"}, ["尼泊爾"] = {container = "亞洲", wp = "尼泊爾"}, ["阿曼"] = {container = "亞洲", wp = "阿曼"}, ["巴基斯坦"] = {container = "亞洲", divs = {"provinces"}, wp = "巴基斯坦"}, ["菲律賓"] = {container = "亞洲", divs = {"regions"}, wp = "菲律賓"}, ["卡塔爾"] = {container = "亞洲", wp = "卡塔爾"}, ["卡達"] = {alias_of = "卡塔爾"}, ["俄羅斯"] = {container = {"歐洲", "亞洲"}, divs = {"federal subjects"}, wp = "俄羅斯"}, ["俄國"] = {alias_of = "俄羅斯"}, ["沙特阿拉伯"] = {container = "亞洲", wp = "沙特阿拉伯"}, ["沙烏地阿拉伯"] = {alias_of = "沙特阿拉伯"}, ["新加坡"] = {container = "亞洲", is_city = true, wp = "新加坡"}, ["斯里蘭卡"] = {container = "亞洲", wp = "斯里蘭卡"}, ["敘利亞"] = {container = "亞洲", wp = "敘利亞"}, ["臺灣"] = {container = "亞洲", divs = { "special municipalities", "counties", }, wp = "臺灣"}, ["台灣"] = {alias_of = "臺灣"}, ["塔吉克斯坦"] = {container = "亞洲", wp = "塔吉克斯坦"}, ["塔吉克"] = {alias_of = "塔吉克斯坦"}, ["泰國"] = {container = "亞洲", divs = {"provinces"}, wp = "泰國"}, ["土耳其"] = {container = {"歐洲", "亞洲"}, wp = "土耳其"}, ["土庫曼斯坦"] = {container = "亞洲", wp = "土庫曼斯坦"}, ["土庫曼"] = {alias_of = "土庫曼斯坦"}, ["阿拉伯聯合酋長國"] = {container = "亞洲", wp = "阿拉伯聯合酋長國"}, ["阿拉伯聯合大公國"] = {alias_of = "阿拉伯聯合酋長國"}, ["阿聯酋"] = {alias_of = "阿拉伯聯合酋長國"}, ["烏茲別克斯坦"] = {container = "亞洲", wp = "烏茲別克斯坦"}, ["烏茲別克"] = {alias_of = "烏茲別克斯坦"}, ["越南"] = {container = "亞洲", divs = {"provinces", "municipalities"}, wp = "越南"}, ["也門"] = {container = "亞洲", wp = "也門"}, ["葉門"] = {alias_of = "也門"}, -- Europe ["阿爾巴尼亞"] = {container = "歐洲", wp = "阿爾巴尼亞"}, ["安道爾"] = {container = "歐洲", wp = "安道爾"}, ["奧地利"] = {container = "歐洲", divs = {"states"}, wp = "奧地利"}, ["白俄羅斯"] = {container = "歐洲", divs = {"regions"}, wp = "白俄羅斯"}, ["比利時"] = {container = "歐洲", divs = {"regions", "provinces"}, wp = "比利時"}, ["波斯尼亞和黑塞哥維那"] = {container = "歐洲", wp = "波斯尼亞和黑塞哥維那"}, ["波士尼亞與赫塞哥維納"] = {alias_of = "波斯尼亞和黑塞哥維那"}, ["保加利亞"] = {container = "歐洲", wp = "保加利亞"}, ["克羅地亞"] = {container = "歐洲", wp = "克羅地亞"}, ["克羅埃西亞"] = {alias_of = "克羅地亞"}, ["塞浦路斯"] = {container = "亞洲", addl_parents = {"歐洲"}, wp = "塞浦路斯"}, ["賽普勒斯"] = {alias_of = "塞浦路斯"}, ["捷克"] = {container = "歐洲", wp = "捷克"}, ["丹麥"] = {container = "歐洲", wp = "丹麥"}, ["愛沙尼亞"] = {container = "歐洲", wp = "愛沙尼亞"}, ["芬蘭"] = {container = "歐洲", divs = {"regions"}, wp = "芬蘭"}, ["法國"] = {container = "歐洲", divs = { {type = "regions", cat_as = "metropolitan regions"}, "departments", "communes", }, wp = "法國"}, ["格魯吉亞"] = {container = {"歐洲", "亞洲"}, wp = "格魯吉亞"}, ["喬治亞"] = {alias_of = "格魯吉亞"}, ["德國"] = {container = "歐洲", divs = {"states"}, wp = "德國"}, ["希臘"] = {container = "歐洲", divs = {"regions"}, wp = "希臘"}, ["匈牙利"] = {container = "歐洲", wp = "匈牙利"}, ["冰島"] = {container = "歐洲", wp = "冰島"}, ["愛爾蘭"] = {container = "歐洲", divs = {"provinces", "counties"}, wp = "愛爾蘭"}, ["意大利"] = {container = "歐洲", divs = {"regions"}, wp = "意大利"}, ["義大利"] = {alias_of = "意大利"}, ["科索沃"] = {container = "歐洲", wp = "科索沃"}, ["拉脫維亞"] = {container = "歐洲", wp = "拉脫維亞"}, ["拉托維亞"] = {alias_of = "拉脫維亞"}, ["列支敦士登"] = {container = "歐洲", wp = "列支敦士登"}, ["列支敦斯登"] = {alias_of = "列支敦士登"}, ["立陶宛"] = {container = "歐洲", wp = "立陶宛"}, ["盧森堡"] = {container = "歐洲", wp = "盧森堡"}, ["北馬其頓"] = {container = "歐洲", wp = "北馬其頓"}, ["馬耳他"] = {container = "歐洲", wp = "馬耳他"}, ["馬爾他"] = {alias_of = "馬耳他"}, ["摩爾多瓦"] = {container = "歐洲", wp = "摩爾多瓦"}, ["摩納哥"] = {container = "歐洲", is_city = true, wp = "摩納哥"}, ["黑山"] = {container = "歐洲", wp = "黑山"}, ["蒙特內哥羅"] = {alias_of = "黑山"}, ["荷蘭"] = {container = "歐洲", divs = {"provinces"}, wp = "荷蘭"}, ["尼德蘭"] = {alias_of = "荷蘭"}, ["挪威"] = {container = "歐洲", wp = "挪威"}, ["波蘭"] = {container = "歐洲", divs = {"voivodeships"}, wp = "波蘭"}, ["葡萄牙"] = {container = "歐洲", divs = {"districts"}, wp = "葡萄牙"}, ["羅馬尼亞"] = {container = "歐洲", wp = "羅馬尼亞"}, ["聖馬力諾"] = {container = "歐洲", wp = "聖馬力諾"}, ["聖馬利諾"] = {alias_of = "聖馬力諾"}, ["塞爾維亞"] = {container = "歐洲", wp = "塞爾維亞"}, ["斯洛伐克"] = {container = "歐洲", wp = "斯洛伐克"}, ["斯洛文尼亞"] = {container = "歐洲", wp = "斯洛文尼亞"}, ["斯洛維尼亞"] = {alias_of = "斯洛文尼亞"}, ["西班牙"] = {container = "歐洲", divs = {"autonomous communities"}, wp = "西班牙"}, ["瑞典"] = {container = "歐洲", wp = "瑞典"}, ["瑞士"] = {container = "歐洲", divs = {"cantons"}, wp = "瑞士"}, ["烏克蘭"] = {container = "歐洲", divs = {"oblasts"}, wp = "烏克蘭"}, ["英國"] = {container = "歐洲", divs = { {type = "constituent countries", cat_as = "constituent countries"}, }, wp = "英國"}, -- North America ["加拿大"] = {container = "北美洲", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, }, wp = "加拿大"}, ["墨西哥"] = {container = "北美洲", divs = {"states"}, wp = "墨西哥"}, ["美國"] = {container = "北美洲", divs = {"states"}, wp = "美國"}, -- Central America ["伯利茲"] = {container = "中美洲", wp = "伯利茲"}, ["貝里斯"] = {alias_of = "伯利茲"}, ["哥斯達黎加"] = {container = "中美洲", wp = "哥斯達黎加"}, ["哥斯大黎加"] = {alias_of = "哥斯達黎加"}, ["薩爾瓦多"] = {container = "中美洲", wp = "薩爾瓦多"}, ["危地馬拉"] = {container = "中美洲", wp = "危地馬拉"}, ["瓜地馬拉"] = {alias_of = "危地馬拉"}, ["洪都拉斯"] = {container = "中美洲", wp = "洪都拉斯"}, ["宏都拉斯"] = {alias_of = "洪都拉斯"}, ["尼加拉瓜"] = {container = "中美洲", wp = "尼加拉瓜"}, ["巴拿馬"] = {container = "中美洲", wp = "巴拿馬"}, -- Caribbean ["安提瓜和巴布達"] = {container = "加勒比地區", wp = "安提瓜和巴布達"}, ["安地卡及巴布達"] = {alias_of = "安提瓜和巴布達"}, ["巴哈馬"] = {container = "加勒比地區", wp = "巴哈馬"}, ["巴巴多斯"] = {container = "加勒比地區", wp = "巴巴多斯"}, ["巴貝多"] = {alias_of = "巴巴多斯"}, ["古巴"] = {container = "加勒比地區", wp = "古巴"}, ["多米尼克"] = {container = "加勒比地區", wp = "多米尼克"}, ["多米尼加共和國"] = {container = "加勒比地區", wp = "多米尼加"}, ["多明尼加共和國"] = {alias_of = "多米尼加共和國"}, ["格林納達"] = {container = "加勒比地區", wp = "格林納達"}, ["格瑞那達"] = {alias_of = "格林納達"}, ["海地"] = {container = "加勒比地區", wp = "海地"}, ["牙買加"] = {container = "加勒比地區", wp = "牙買加"}, ["聖基茨和尼維斯"] = {container = "加勒比地區", wp = "聖基茨和尼維斯"}, ["聖克里斯多福及尼維斯"] = {alias_of = "聖基茨和尼維斯"}, ["聖盧西亞"] = {container = "加勒比地區", wp = "聖盧西亞"}, ["聖露西亞"] = {alias_of = "聖盧西亞"}, ["聖文森特和格林納丁斯"] = {container = "加勒比地區", wp = "聖文森特和格林納丁斯"}, ["聖文森及格瑞那丁"] = {alias_of = "聖文森特和格林納丁斯"}, ["特立尼達和多巴哥"] = {container = "加勒比地區", wp = "特立尼達和多巴哥"}, ["千里達及托巴哥"] = {alias_of = "特立尼達和多巴哥"}, -- South America ["阿根廷"] = {container = "南美洲", divs = {"provinces"}, wp = "阿根廷"}, ["玻利維亞"] = {container = "南美洲", wp = "玻利維亞"}, ["巴西"] = {container = "南美洲", divs = {"states"}, wp = "巴西"}, ["智利"] = {container = "南美洲", wp = "智利"}, ["哥倫比亞"] = {container = "南美洲", wp = "哥倫比亞"}, ["厄瓜多爾"] = {container = "南美洲", wp = "厄瓜多爾"}, ["厄瓜多"] = {alias_of = "厄瓜多爾"}, ["圭亞那"] = {container = "南美洲", wp = "圭亞那"}, ["蓋亞那"] = {alias_of = "圭亞那"}, ["巴拉圭"] = {container = "南美洲", wp = "巴拉圭"}, ["秘魯"] = {container = "南美洲", wp = "秘魯"}, ["蘇里南"] = {container = "南美洲", wp = "蘇里南"}, ["蘇利南"] = {alias_of = "蘇里南"}, ["烏拉圭"] = {container = "南美洲", wp = "烏拉圭"}, ["委內瑞拉"] = {container = "南美洲", wp = "委內瑞拉"}, -- Oceania ["澳大利亞"] = {container = "大洋洲", divs = { {type = "states", cat_as = "states and territories"}, {type = "territories", cat_as = "states and territories"}, }, wp = "澳大利亞"}, ["澳洲"] = {alias_of = "澳大利亞"}, ["斐濟"] = {container = "大洋洲", wp = "斐濟"}, ["基里巴斯"] = {container = "大洋洲", wp = "基里巴斯"}, ["吉里巴斯"] = {alias_of = "基里巴斯"}, ["馬紹爾群島"] = {container = "大洋洲", wp = "馬紹爾群島"}, ["密克羅尼西亞聯邦"] = {container = "大洋洲", wp = "密克羅尼西亞聯邦"}, ["瑙魯"] = {container = "大洋洲", wp = "瑙魯"}, ["諾魯"] = {alias_of = "瑙魯"}, ["新西蘭"] = {container = "大洋洲", wp = "新西蘭"}, ["紐西蘭"] = {alias_of = "新西蘭"}, ["帕勞"] = {container = "大洋洲", wp = "帕勞"}, ["帛琉"] = {alias_of = "帕勞"}, ["巴布亞新幾內亞"] = {container = "大洋洲", wp = "巴布亞新幾內亞"}, ["巴布亞紐幾內亞"] = {alias_of = "巴布亞新幾內亞"}, ["薩摩亞"] = {container = "大洋洲", wp = "薩摩亞"}, ["所羅門群島"] = {container = "大洋洲", wp = "所羅門群島"}, ["湯加"] = {container = "大洋洲", wp = "湯加"}, ["東加"] = {alias_of = "湯加"}, ["圖瓦盧"] = {container = "大洋洲", wp = "圖瓦盧"}, ["吐瓦魯"] = {alias_of = "圖瓦盧"}, ["瓦努阿圖"] = {container = "大洋洲", wp = "瓦努阿圖"}, ["萬那杜"] = {alias_of = "瓦努阿圖"}, } export.countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"+++", "countries"}, default_placetype = "country", default_no_container_cat = true, default_no_container_parent = true, default_no_auto_augment_container = true, placename_to_key = false, data = export.countries, } ----------------------------------------------------------------------------------- -- Country-like entities -- ----------------------------------------------------------------------------------- export.country_like_entities = { -- Special administrative regions of China ["香港"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, divs = {"districts"}, wp = "Hong Kong", }, ["澳門"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, wp = "Macau", }, -- Western Sahara ["西撒哈拉"] = { placetype = {"territory", "country"}, container = "非洲", wp = "Western Sahara", }, -- Kosovo (disputed) ["科索沃(部分承認)"] = {alias_of = "科索沃"}, -- Palestinian territories ["巴勒斯坦"] = { placetype = {"country", "territory"}, container = "亞洲", wp = "State of Palestine", }, -- Key overseas territories ["波多黎各"] = { placetype = {"commonwealth", "territory"}, container = "美國", addl_parents = {"加勒比地區"}, wp = "Puerto Rico", }, ["關島"] = { placetype = {"territory"}, container = "美國", addl_parents = {"密克羅尼西亞"}, wp = "Guam", }, ["新喀里多尼亞"] = { placetype = {"territory"}, container = "法國", addl_parents = {"大洋洲"}, wp = "New Caledonia", }, ["法屬圭亞那"] = { placetype = {"territory"}, container = "法國", addl_parents = {"南美洲"}, wp = "French Guiana", }, ["留尼旺"] = { placetype = {"territory"}, container = "法國", addl_parents = {"非洲"}, wp = "Réunion", }, ["馬丁尼克"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Martinique", }, ["瓜德羅普"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Guadeloupe", }, ["格陵蘭"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"北美洲"}, wp = "Greenland", }, ["法羅群島"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"歐洲"}, wp = "Faroe Islands", }, } export.country_like_entities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "country"), default_placetype = "territory", placename_to_key = false, data = export.country_like_entities, } ----------------------------------------------------------------------------------- -- Former countries -- ----------------------------------------------------------------------------------- export.former_countries = { ["蘇聯"] = { placetype = {"country"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Soviet Union", }, ["南斯拉夫"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Yugoslavia", }, ["捷克斯洛伐克"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Czechoslovakia", }, ["東德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "East Germany", }, ["西德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "West Germany", }, ["奧匈帝國"] = { placetype = {"empire"}, container = "歐洲", is_former_place = true, wp = "Austria-Hungary", }, ["鄂圖曼帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Ottoman Empire", }, ["奧斯曼帝國"] = {alias_of = "鄂圖曼帝國"}, ["羅馬帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲", "非洲"}, is_former_place = true, wp = "Roman Empire", }, ["大英帝國"] = { placetype = {"empire"}, is_former_place = true, wp = "British Empire", }, ["普魯士"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Prussia", }, } export.former_countries_group = { canonicalize_key_container = canonicalize_continent_container, default_placetype = "country", default_is_former_place = true, placename_to_key = false, data = export.former_countries, } ----------------------------------------------------------------------------------- -- United States states -- ----------------------------------------------------------------------------------- export.united_states_states = { ["阿拉巴馬"] = {wp = "Alabama"}, ["阿拉斯加"] = {wp = "Alaska"}, ["亞利桑那"] = {wp = "Arizona"}, ["阿肯色"] = {wp = "Arkansas"}, ["加利福尼亞"] = {wp = "California"}, ["加州"] = {alias_of = "加利福尼亞"}, ["科羅拉多"] = {wp = "Colorado"}, ["康乃狄克"] = {wp = "Connecticut"}, ["康涅狄格"] = {alias_of = "康乃狄克"}, ["德拉瓦"] = {wp = "Delaware"}, ["佛羅里達"] = {wp = "Florida"}, ["佛罗里达"] = {alias_of = "佛羅里達"}, ["佐治亞"] = {wp = "Georgia (U.S. state)"}, ["夏威夷"] = {addl_parents = {"玻里尼西亞"}, wp = "Hawaii"}, ["愛達荷"] = {wp = "Idaho"}, ["伊利諾伊"] = {wp = "Illinois"}, ["伊利诺伊"] = {alias_of = "伊利諾伊"}, ["印地安那"] = {wp = "Indiana"}, ["印第安納"] = {alias_of = "印地安那"}, ["愛荷華"] = {wp = "Iowa"}, ["堪薩斯"] = {wp = "Kansas"}, ["肯塔基"] = {wp = "Kentucky"}, ["路易斯安那"] = {wp = "Louisiana"}, ["緬因"] = {wp = "Maine"}, ["馬里蘭"] = {wp = "Maryland"}, ["麻薩諸塞"] = {wp = "Massachusetts"}, ["麻薩诸塞"] = {alias_of = "麻薩諸塞"}, ["密西根"] = {wp = "Michigan"}, ["密歇根"] = {alias_of = "密西根"}, ["明尼蘇達"] = {wp = "Minnesota"}, ["明尼苏达"] = {alias_of = "明尼蘇達"}, ["密西西比"] = {wp = "Mississippi"}, ["密蘇里"] = {wp = "Missouri"}, ["蒙大拿"] = {wp = "Montana"}, ["內布拉斯加"] = {wp = "Nebraska"}, ["內華達"] = {wp = "Nevada"}, ["新罕布什爾"] = {wp = "New Hampshire"}, ["新澤西"] = {wp = "New Jersey"}, ["新泽西"] = {alias_of = "新澤西"}, ["新墨西哥"] = {wp = "New Mexico"}, ["紐約"] = {wp = "New York (state)"}, ["纽约"] = {alias_of = "紐約"}, ["北卡羅來納"] = {wp = "North Carolina"}, ["北达科他"] = {alias_of = "北達科他"}, ["北達科他"] = {wp = "North Dakota"}, ["俄亥俄"] = {wp = "Ohio"}, ["奧克拉荷馬"] = {wp = "Oklahoma"}, ["奧勒岡"] = {wp = "Oregon"}, ["俄勒冈"] = {alias_of = "奧勒岡"}, ["賓夕法尼亞"] = {wp = "Pennsylvania"}, ["宾夕法尼亚"] = {alias_of = "賓夕法尼亞"}, ["羅德島"] = {wp = "Rhode Island"}, ["南卡羅來納"] = {wp = "South Carolina"}, ["南達科他"] = {wp = "South Dakota"}, ["田納西"] = {wp = "Tennessee"}, ["田纳西"] = {alias_of = "田納西"}, ["德克薩斯"] = {wp = "Texas"}, ["德州"] = {alias_of = "德克薩斯"}, ["猶他"] = {wp = "Utah"}, ["佛蒙特"] = {wp = "Vermont"}, ["弗吉尼亞"] = {wp = "Virginia"}, ["弗吉尼亚"] = {alias_of = "弗吉尼亞"}, ["維吉尼亞"] = {alias_of = "弗吉尼亞"}, ["華盛頓州"] = {wp = "Washington (state)"}, ["华盛顿州"] = {alias_of = "華盛頓州"}, ["西維吉尼亞"] = {wp = "West Virginia"}, ["西弗吉尼亞"] = {alias_of = "西維吉尼亞"}, ["威斯康辛"] = {wp = "Wisconsin"}, ["懷俄明"] = {wp = "Wyoming"}, -- Washington D.C. (federal district, treated like a state in holonym context) ["華盛頓特區"] = {placetype = {"federal district", "district"}, wp = "Washington, D.C."}, } export.united_states_group = { placename_to_key = false, default_container = "美國", default_placetype = "state", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, }, data = export.united_states_states, } ----------------------------------------------------------------------------------- -- United Kingdom constituent countries -- ----------------------------------------------------------------------------------- export.united_kingdom_constituent_countries = { ["英格蘭"] = {divs = {"counties", "districts"}, wp = "England"}, ["北愛爾蘭"] = { placetype = {"constituent country", "province", "country"}, divs = {"counties", "districts"}, wp = "Northern Ireland", }, ["蘇格蘭"] = {divs = {{type = "council areas", container_parent_type = false}}, wp = "Scotland"}, ["威爾斯"] = {divs = {"counties"}, wp = "Wales"}, ["威爾士"] = {alias_of = "威爾斯"}, } export.united_kingdom_group = { placename_to_key = false, default_container = "英國", default_placetype = {"constituent country", "country"}, default_no_container_cat = true, data = export.united_kingdom_constituent_countries, } -- Scotland council areas export.scotland_council_areas = { ["Aberdeen市"] = {wp = "Aberdeen"}, ["Aberdeenshire"] = {wp = "Aberdeenshire"}, ["Angus"] = {wp = "Angus, Scotland"}, ["Argyll and Bute"] = {wp = "Argyll and Bute"}, ["Clackmannanshire"] = {wp = "Clackmannanshire"}, ["Dumfries and Galloway"] = {wp = "Dumfries and Galloway"}, ["Dundee市"] = {wp = "Dundee"}, ["East Ayrshire"] = {wp = "East Ayrshire"}, ["East Dunbartonshire"] = {wp = "East Dunbartonshire"}, ["East Lothian"] = {wp = "East Lothian"}, ["East Renfrewshire"] = {wp = "East Renfrewshire"}, ["Edinburgh市"] = {wp = "Edinburgh"}, ["Eilean Siar"] = {wp = "Outer Hebrides"}, ["Falkirk"] = {wp = "Falkirk"}, ["Fife"] = {wp = "Fife"}, ["Glasgow市"] = {wp = "Glasgow"}, ["高地"] = {wp = "Highland council area"}, ["Highland"] = {alias_of = "高地", display = true}, ["Inverclyde"] = {wp = "Inverclyde"}, ["Midlothian"] = {wp = "Midlothian"}, ["Moray"] = {wp = "Moray"}, ["North Ayrshire"] = {wp = "North Ayrshire"}, ["North Lanarkshire"] = {wp = "North Lanarkshire"}, ["Orkney群島"] = {wp = "Orkney"}, ["Perth and Kinross"] = {wp = "Perth and Kinross"}, ["Renfrewshire"] = {wp = "Renfrewshire"}, ["Scottish Borders"] = {wp = "Scottish Borders"}, ["Shetland群島"] = {wp = "Shetland"}, ["South Ayrshire"] = {wp = "South Ayrshire"}, ["South Lanarkshire"] = {wp = "South Lanarkshire"}, ["Stirling"] = {wp = "Stirling (council area)"}, ["West Dunbartonshire"] = {wp = "West Dunbartonshire"}, ["West Lothian"] = {wp = "West Lothian"}, } export.scotland_group = { placename_to_key = false, default_container = "蘇格蘭", default_placetype = "council area", data = export.scotland_council_areas, } -- England counties (ceremonial) export.england_counties = { -- Metropolitan counties ["大倫敦"] = {wp = "Greater London"}, ["大曼徹斯特"] = {wp = "Greater Manchester"}, ["默西賽德郡"] = {wp = "Merseyside"}, ["西密德蘭"] = {wp = "West Midlands (county)"}, ["南約克郡"] = {wp = "South Yorkshire"}, ["西約克郡"] = {wp = "West Yorkshire"}, ["泰恩-威爾郡"] = {wp = "Tyne and Wear"}, -- Non-metropolitan ceremonial counties ["貝德福德郡"] = {wp = "Bedfordshire"}, ["伯克郡"] = {wp = "Berkshire"}, ["白金漢郡"] = {wp = "Buckinghamshire"}, ["劍橋郡"] = {wp = "Cambridgeshire"}, ["柴郡"] = {wp = "Cheshire"}, ["康沃爾郡"] = {wp = "Cornwall"}, ["坎布里亞郡"] = {wp = "Cumbria"}, ["德比郡"] = {wp = "Derbyshire"}, ["德文郡"] = {wp = "Devon"}, ["多塞特郡"] = {wp = "Dorset"}, ["達勒姆郡"] = {wp = "County Durham"}, ["約克郡東區"] = {wp = "East Riding of Yorkshire"}, ["東薩塞克斯郡"] = {wp = "East Sussex"}, ["埃塞克斯郡"] = {wp = "Essex"}, ["格洛斯特郡"] = {wp = "Gloucestershire"}, ["漢普郡"] = {wp = "Hampshire"}, ["赫里福德郡"] = {wp = "Herefordshire"}, ["赫特福德郡"] = {wp = "Hertfordshire"}, ["懷特島"] = {wp = "Isle of Wight"}, ["肯特郡"] = {wp = "Kent"}, ["蘭開夏郡"] = {wp = "Lancashire"}, ["萊斯特郡"] = {wp = "Leicestershire"}, ["林肯郡"] = {wp = "Lincolnshire"}, ["諾福克郡"] = {wp = "Norfolk"}, ["北安普敦郡"] = {wp = "Northamptonshire"}, ["諾森伯蘭郡"] = {wp = "Northumberland"}, ["北約克郡"] = {wp = "North Yorkshire"}, ["諾丁漢郡"] = {wp = "Nottinghamshire"}, ["牛津郡"] = {wp = "Oxfordshire"}, ["拉特蘭郡"] = {wp = "Rutland"}, ["什羅普郡"] = {wp = "Shropshire"}, ["薩默塞特郡"] = {wp = "Somerset"}, ["南亨伯賽德郡"] = {wp = "South Humberside"}, ["斯塔福德郡"] = {wp = "Staffordshire"}, ["薩福克郡"] = {wp = "Suffolk"}, ["薩里郡"] = {wp = "Surrey"}, ["沃里克郡"] = {wp = "Warwickshire"}, ["西薩塞克斯郡"] = {wp = "West Sussex"}, ["威爾特郡"] = {wp = "Wiltshire"}, ["伍斯特郡"] = {wp = "Worcestershire"}, } export.england_group = { placename_to_key = false, default_container = {key = "英格蘭", placetype = "constituent country"}, default_placetype = "county", data = export.england_counties, } -- Counties of Northern Ireland export.northern_ireland_counties = { ["安特里姆郡"] = {wp = "County Antrim"}, ["阿爾馬郡"] = {wp = "County Armagh"}, ["貝爾法斯特市"] = {is_city = true, wp = "Belfast"}, ["唐郡"] = {wp = "County Down"}, ["弗馬納郡"] = {wp = "County Fermanagh"}, ["倫敦德里郡"] = {wp = "County Londonderry"}, ["德里市"] = {is_city = true, wp = "Derry"}, ["泰龍郡"] = {wp = "County Tyrone"}, } export.northern_ireland_group = { placename_to_key = false, default_container = {key = "北愛爾蘭", placetype = "constituent country"}, default_placetype = "county", data = export.northern_ireland_counties, } -- Counties of Ireland export.ireland_counties = { ["卡洛郡"] = {wp = "County Carlow"}, ["卡文郡"] = {wp = "County Cavan"}, ["克萊爾郡"] = {wp = "County Clare"}, ["科克郡"] = {wp = "County Cork"}, ["多尼戈爾郡"] = {wp = "County Donegal"}, ["都柏林郡"] = {wp = "County Dublin"}, ["戈爾韋郡"] = {wp = "County Galway"}, ["克里郡"] = {wp = "County Kerry"}, ["基爾代爾郡"] = {wp = "County Kildare"}, ["基爾肯尼郡"] = {wp = "County Kilkenny"}, ["萊什郡"] = {wp = "County Laois"}, ["利特里姆郡"] = {wp = "County Leitrim"}, ["利默里克郡"] = {wp = "County Limerick"}, ["朗福德郡"] = {wp = "County Longford"}, ["勞斯郡"] = {wp = "County Louth"}, ["梅奧郡"] = {wp = "County Mayo"}, ["米斯郡"] = {wp = "County Meath"}, ["莫納亨郡"] = {wp = "County Monaghan"}, ["奧法利郡"] = {wp = "County Offaly"}, ["羅斯康芒郡"] = {wp = "County Roscommon"}, ["斯萊戈郡"] = {wp = "County Sligo"}, ["蒂珀雷里郡"] = {wp = "County Tipperary"}, ["沃特福德郡"] = {wp = "County Waterford"}, ["西米斯郡"] = {wp = "County Westmeath"}, ["韋克斯福德郡"] = {wp = "County Wexford"}, ["威克洛郡"] = {wp = "County Wicklow"}, } export.ireland_group = { placename_to_key = false, default_container = "愛爾蘭", default_placetype = "county", data = export.ireland_counties, } ----------------------------------------------------------------------------------- -- China provinces -- ----------------------------------------------------------------------------------- export.china_provinces = { -- Provinces ["安徽"] = {wp = "安徽省"}, ["福建"] = {wp = "福建省"}, ["甘肅"] = {wp = "甘肅省"}, ["廣東"] = {wp = "廣東省"}, ["貴州"] = {wp = "貴州省"}, ["海南"] = {wp = "海南省"}, ["河北"] = {wp = "河北省"}, ["黑龍江"] = {wp = "黑龍江省"}, ["河南"] = {wp = "河南省"}, ["湖北"] = {wp = "湖北省"}, ["湖南"] = {wp = "湖南省"}, ["江蘇"] = {wp = "江蘇省"}, ["江西"] = {wp = "江西省"}, ["吉林"] = {wp = "吉林省"}, ["遼寧"] = {wp = "遼寧省"}, ["青海"] = {wp = "青海省"}, ["陝西"] = {wp = "陝西省"}, ["山東"] = {wp = "山東省"}, ["山西"] = {wp = "山西省"}, ["四川"] = {wp = "四川省"}, ["雲南"] = {wp = "雲南省"}, ["浙江"] = {wp = "浙江省"}, -- Autonomous regions ["廣西壯族自治區"] = {placetype = "autonomous region", wp = "廣西壯族自治區"}, ["廣西"] = {alias_of = "廣西壯族自治區"}, ["內蒙古自治區"] = {placetype = "autonomous region", wp = "內蒙古自治區"}, ["內蒙古"] = {alias_of = "內蒙古自治區"}, ["寧夏回族自治區"] = {placetype = "autonomous region", wp = "寧夏回族自治區"}, ["寧夏"] = {alias_of = "寧夏回族自治區"}, ["西藏自治區"] = {placetype = "autonomous region", wp = "西藏自治區"}, ["西藏"] = {alias_of = "西藏自治區"}, ["新疆維吾爾自治區"] = {placetype = "autonomous region", wp = "新疆維吾爾自治區"}, ["新疆"] = {alias_of = "新疆維吾爾自治區"}, -- Direct-administered municipalities (treated as province-level for holonym purposes) ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "北京市"}, ["北京市"] = {alias_of = "北京"}, ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "上海市"}, ["上海市"] = {alias_of = "上海"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "天津市"}, ["天津市"] = {alias_of = "天津"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "重慶市"}, ["重慶市"] = {alias_of = "重慶"}, } export.china_group = { placename_to_key = false, default_container = "中國", default_placetype = "province", default_divs = { "prefecture-level cities", "districts", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_provinces, } ----------------------------------------------------------------------------------- -- Taiwan counties -- ----------------------------------------------------------------------------------- -- Note: In zhwikt, Taiwan county keys use Chinese names directly. -- The enwikt-style lookup `taiwan_counties["Chiayi County, Taiwan"]` will return nil -- (correct: no English suffix auto-detection for Chinese holonym names). export.taiwan_counties = { ["彰化縣"] = {wp = "彰化縣"}, ["彰化"] = {alias_of = "彰化縣", display = true}, ["嘉義縣"] = {wp = "嘉義縣"}, ["新竹縣"] = {wp = "新竹縣"}, ["花蓮縣"] = {wp = "花蓮縣"}, ["花蓮"] = {alias_of = "花蓮縣", display = true}, ["金門縣"] = {wp = "金門縣"}, ["金門"] = {alias_of = "金門縣", display = true}, ["連江縣"] = {wp = "連江縣"}, ["連江"] = {alias_of = "連江縣", display = true}, ["苗栗縣"] = {wp = "苗栗縣"}, ["苗栗"] = {alias_of = "苗栗縣", display = true}, ["南投縣"] = {wp = "南投縣"}, ["南投"] = {alias_of = "南投縣", display = true}, ["澎湖縣"] = {wp = "澎湖縣"}, ["澎湖"] = {alias_of = "澎湖縣", display = true}, ["屏東縣"] = {wp = "屏東縣"}, ["澎湖"] = {alias_of = "澎湖縣", display = true}, ["澎湖縣"] = {wp = "澎湖縣"}, ["澎湖"] = {alias_of = "澎湖縣", display = true}, ["宜蘭縣"] = {wp = "宜蘭縣"}, ["宜蘭"] = {alias_of = "宜蘭縣", display = true}, ["雲林縣"] = {wp = "雲林縣"}, ["雲林"] = {alias_of = "雲林縣", display = true}, -- Special municipalities (province-level) ["臺北市"] = {placetype = "special municipality", wp = "臺北市"}, ["基隆"] = {alias_of = "基隆市", display = true}, ["新北市"] = {placetype = "special municipality", wp = "新北市"}, ["新北"] = {alias_of = "新北市", display = true}, ["桃園市"] = {placetype = "special municipality", wp = "桃園市"}, ["桃園"] = {alias_of = "桃園市", display = true}, ["臺中市"] = {placetype = "special municipality", wp = "臺中市"}, ["臺中"] = {alias_of = "臺中市", display = true}, ["臺南市"] = {placetype = "special municipality", wp = "臺南市"}, ["臺南"] = {alias_of = "臺南市", display = true}, ["高雄"] = {placetype = "special municipality", wp = "高雄市"}, ["高雄市"] = {alias_of = "高雄市", display = true}, ["嘉義市"] = {placetype = "city", wp = "嘉義市"}, ["新竹市"] = {placetype = "city", wp = "新竹市"}, ["基隆市"] = {placetype = "city", wp = "基隆市"}, ["基隆"] = {alias_of = "基隆市", display = true}, } export.taiwan_group = { placename_to_key = false, default_container = "臺灣", default_placetype = "county", default_divs = {"districts", "townships"}, data = export.taiwan_counties, } ----------------------------------------------------------------------------------- -- Canada provinces and territories -- ----------------------------------------------------------------------------------- export.canada_provinces_and_territories = { ["亞伯達"] = {wp = "Alberta"}, ["艾伯塔"] = {alias_of = "亞伯達"}, ["英屬哥倫比亞"] = {wp = "British Columbia"}, ["卑詩省"] = {alias_of = "英屬哥倫比亞"}, ["馬尼托巴"] = {wp = "Manitoba"}, ["新不倫瑞克"] = {wp = "New Brunswick"}, ["紐芬蘭與拉布拉多"] = {wp = "Newfoundland and Labrador"}, ["西北地區"] = {placetype = "territory", wp = "Northwest Territories"}, ["新斯科舍"] = {wp = "Nova Scotia"}, ["努納武特"] = {placetype = "territory", wp = "Nunavut"}, ["安大略"] = {divs = {"counties", "regional municipalities"}, wp = "Ontario"}, ["愛德華王子島"] = {wp = "Prince Edward Island"}, ["魁北克"] = {wp = "Quebec"}, ["薩斯喀徹溫"] = {wp = "Saskatchewan"}, ["育空"] = {placetype = "territory", wp = "Yukon"}, } export.canada_group = { placename_to_key = false, default_container = "加拿大", default_placetype = "province", data = export.canada_provinces_and_territories, } ----------------------------------------------------------------------------------- -- Australia states and territories -- ----------------------------------------------------------------------------------- export.australia_states_and_territories = { ["新南威爾斯"] = {wp = "New South Wales"}, ["維多利亞州"] = {wp = "Victoria (Australia)"}, ["昆士蘭"] = {wp = "Queensland"}, ["南澳大利亞"] = {wp = "South Australia"}, ["西澳大利亞"] = {wp = "Western Australia"}, ["塔斯馬尼亞"] = {wp = "Tasmania"}, ["澳大利亞首都領地"] = {placetype = "territory", wp = "Australian Capital Territory"}, ["北領地"] = {placetype = "territory", wp = "Northern Territory"}, } export.australia_group = { placename_to_key = false, default_container = "澳大利亞", default_placetype = "state", data = export.australia_states_and_territories, } ----------------------------------------------------------------------------------- -- India states and union territories -- ----------------------------------------------------------------------------------- export.india_states_and_union_territories = { ["安達曼-尼科巴群島"] = {placetype = "union territory", wp = "Andaman and Nicobar Islands"}, ["安得拉邦"] = {wp = "Andhra Pradesh"}, ["阿魯納恰爾邦"] = {wp = "Arunachal Pradesh"}, ["阿薩姆"] = {wp = "Assam"}, ["比哈爾邦"] = {wp = "Bihar"}, ["昌迪加爾"] = {placetype = "union territory", wp = "Chandigarh"}, ["恰蒂斯加爾邦"] = {wp = "Chhattisgarh"}, ["達德拉-納加爾哈維利和達曼-第烏"] = {placetype = "union territory", wp = "Dadra and Nagar Haveli and Daman and Diu"}, ["德里"] = {placetype = "union territory", wp = "Delhi"}, ["果阿"] = {wp = "Goa"}, ["古吉拉特邦"] = {wp = "Gujarat"}, ["哈里亞納邦"] = {wp = "Haryana"}, ["喜馬偕爾邦"] = {wp = "Himachal Pradesh"}, ["查謨和克什米爾"] = {placetype = "union territory", wp = "Jammu and Kashmir (union territory)"}, ["賈坎德邦"] = {wp = "Jharkhand"}, ["卡納塔克邦"] = {wp = "Karnataka"}, ["喀拉拉邦"] = {wp = "Kerala"}, ["拉達克"] = {placetype = "union territory", wp = "Ladakh"}, ["拉克沙群島"] = {placetype = "union territory", wp = "Lakshadweep"}, ["中央邦"] = {wp = "Madhya Pradesh"}, ["馬哈拉施特拉邦"] = {wp = "Maharashtra"}, ["曼尼普爾邦"] = {wp = "Manipur"}, ["梅加拉亞邦"] = {wp = "Meghalaya"}, ["米佐拉姆邦"] = {wp = "Mizoram"}, ["那加蘭邦"] = {wp = "Nagaland"}, ["奧里薩邦"] = {wp = "Odisha"}, ["本地治里"] = {placetype = "union territory", wp = "Puducherry"}, ["旁遮普邦"] = {wp = "Punjab, India"}, ["拉賈斯坦邦"] = {wp = "Rajasthan"}, ["錫金"] = {wp = "Sikkim"}, ["泰米爾納德邦"] = {wp = "Tamil Nadu"}, ["特倫甘納邦"] = {wp = "Telangana"}, ["特里普拉邦"] = {wp = "Tripura"}, ["北方邦"] = {wp = "Uttar Pradesh"}, ["北阿坎德邦"] = {wp = "Uttarakhand"}, ["西孟加拉邦"] = {wp = "West Bengal"}, } export.india_group = { placename_to_key = false, default_container = "印度", default_placetype = "state", default_divs = {"districts"}, data = export.india_states_and_union_territories, } ----------------------------------------------------------------------------------- -- Japan prefectures -- ----------------------------------------------------------------------------------- -- Note: export.japan_prefectures is accessed directly by place-placetypes.lua -- using English-style keys (e.g. "Tokyo Prefecture, Japan"). Those lookups return -- nil for Chinese keys, which is correct: no English "Prefecture" suffix is added. export.japan_prefectures = { ["北海道"] = {placetype = {"prefecture"}, wp = "Hokkaido"}, ["青森縣"] = {wp = "Aomori Prefecture"}, ["岩手縣"] = {wp = "Iwate Prefecture"}, ["宮城縣"] = {wp = "Miyagi Prefecture"}, ["秋田縣"] = {wp = "Akita Prefecture"}, ["山形縣"] = {wp = "Yamagata Prefecture"}, ["福島縣"] = {wp = "Fukushima Prefecture"}, ["茨城縣"] = {wp = "Ibaraki Prefecture"}, ["栃木縣"] = {wp = "Tochigi Prefecture"}, ["群馬縣"] = {wp = "Gunma Prefecture"}, ["埼玉縣"] = {wp = "Saitama Prefecture"}, ["千葉縣"] = {wp = "Chiba Prefecture"}, ["東京都"] = {placetype = {"prefecture"}, wp = "Tokyo"}, ["神奈川縣"] = {wp = "Kanagawa Prefecture"}, ["新潟縣"] = {wp = "Niigata Prefecture"}, ["富山縣"] = {wp = "Toyama Prefecture"}, ["石川縣"] = {wp = "Ishikawa Prefecture"}, ["福井縣"] = {wp = "Fukui Prefecture"}, ["山梨縣"] = {wp = "Yamanashi Prefecture"}, ["長野縣"] = {wp = "Nagano Prefecture"}, ["岐阜縣"] = {wp = "Gifu Prefecture"}, ["靜岡縣"] = {wp = "Shizuoka Prefecture"}, ["愛知縣"] = {wp = "Aichi Prefecture"}, ["三重縣"] = {wp = "Mie Prefecture"}, ["滋賀縣"] = {wp = "Shiga Prefecture"}, ["京都府"] = {placetype = {"prefecture"}, wp = "Kyoto Prefecture"}, ["大阪府"] = {placetype = {"prefecture"}, wp = "Osaka Prefecture"}, ["兵庫縣"] = {wp = "Hyogo Prefecture"}, ["奈良縣"] = {wp = "Nara Prefecture"}, ["和歌山縣"] = {wp = "Wakayama Prefecture"}, ["鳥取縣"] = {wp = "Tottori Prefecture"}, ["島根縣"] = {wp = "Shimane Prefecture"}, ["岡山縣"] = {wp = "Okayama Prefecture"}, ["廣島縣"] = {wp = "Hiroshima Prefecture"}, ["山口縣"] = {wp = "Yamaguchi Prefecture"}, ["德島縣"] = {wp = "Tokushima Prefecture"}, ["香川縣"] = {wp = "Kagawa Prefecture"}, ["愛媛縣"] = {wp = "Ehime Prefecture"}, ["高知縣"] = {wp = "Kochi Prefecture"}, ["福岡縣"] = {wp = "Fukuoka Prefecture"}, ["佐賀縣"] = {wp = "Saga Prefecture"}, ["長崎縣"] = {wp = "Nagasaki Prefecture"}, ["熊本縣"] = {wp = "Kumamoto Prefecture"}, ["大分縣"] = {wp = "Oita Prefecture"}, ["宮崎縣"] = {wp = "Miyazaki Prefecture"}, ["鹿兒島縣"] = {wp = "Kagoshima Prefecture"}, ["沖繩縣"] = {wp = "Okinawa Prefecture"}, } export.japan_group = { placename_to_key = false, default_container = "日本", default_placetype = "prefecture", default_divs = {"cities", "districts"}, data = export.japan_prefectures, } ----------------------------------------------------------------------------------- -- Germany states (Bundesländer) -- ----------------------------------------------------------------------------------- export.germany_states = { ["巴登-符騰堡"] = {wp = "Baden-Württemberg"}, ["巴伐利亞"] = {wp = "Bavaria"}, ["柏林"] = {wp = "Berlin"}, ["布蘭登堡"] = {wp = "Brandenburg"}, ["不來梅"] = {wp = "Bremen"}, ["漢堡"] = {wp = "Hamburg"}, ["黑森"] = {wp = "Hesse"}, ["梅克倫堡-前波美拉尼亞"] = {wp = "Mecklenburg-Vorpommern"}, ["下薩克森"] = {wp = "Lower Saxony"}, ["北萊茵-威斯特法倫"] = {wp = "North Rhine-Westphalia"}, ["萊茵蘭-普法爾茨"] = {wp = "Rhineland-Palatinate"}, ["薩爾"] = {wp = "Saarland"}, ["薩克森"] = {wp = "Saxony"}, ["薩克森-安哈爾特"] = {wp = "Saxony-Anhalt"}, ["石勒蘇益格-荷爾斯泰因"] = {wp = "Schleswig-Holstein"}, ["圖林根"] = {wp = "Thuringia"}, } export.germany_group = { placename_to_key = false, default_container = "德國", default_placetype = "state", data = export.germany_states, } ----------------------------------------------------------------------------------- -- Italy regions (Regioni) -- ----------------------------------------------------------------------------------- export.italy_regions = { ["阿布魯佐"] = {wp = "Abruzzo"}, ["巴西利卡塔"] = {wp = "Basilicata"}, ["卡拉布里亞"] = {wp = "Calabria"}, ["坎帕尼亞"] = {wp = "Campania"}, ["艾米利亞-羅馬涅"] = {wp = "Emilia-Romagna"}, ["弗留利-威尼斯朱利亞"] = {wp = "Friuli-Venezia Giulia"}, ["拉齊奧"] = {wp = "Lazio"}, ["利古里亞"] = {wp = "Liguria"}, ["倫巴第"] = {wp = "Lombardy"}, ["倫巴底"] = {alias_of = "倫巴第"}, ["馬爾凱"] = {wp = "Marche"}, ["莫利塞"] = {wp = "Molise"}, ["皮埃蒙特"] = {wp = "Piedmont"}, ["普利亞"] = {wp = "Apulia"}, ["阿普利亞"] = {alias_of = "普利亞"}, ["薩丁尼亞"] = {wp = "Sardinia"}, ["西西里"] = {wp = "Sicily"}, ["托斯卡納"] = {wp = "Tuscany"}, ["特倫蒂諾-上阿迪傑"] = {wp = "Trentino-Alto Adige/Südtirol"}, ["翁布里亞"] = {wp = "Umbria"}, ["奧斯塔谷"] = {wp = "Aosta Valley"}, ["威尼托"] = {wp = "Veneto"}, } export.italy_group = { placename_to_key = false, default_container = "意大利", default_placetype = "region", data = export.italy_regions, } ----------------------------------------------------------------------------------- -- Spain autonomous communities (Comunidades autónomas) -- ----------------------------------------------------------------------------------- export.spain_autonomous_communities = { ["安達盧西亞"] = {wp = "Andalusia"}, ["安達魯西亞"] = {alias_of = "安達盧西亞"}, ["阿拉貢"] = {wp = "Aragon"}, ["阿斯圖里亞斯"] = {wp = "Asturias"}, ["巴利阿里群島"] = {wp = "Balearic Islands"}, ["巴斯克"] = {wp = "Basque Country (autonomous community)"}, ["加那利群島"] = {wp = "Canary Islands"}, ["坎塔布里亞"] = {wp = "Cantabria"}, ["卡斯蒂利亞-拉曼恰"] = {wp = "Castilla-La Mancha"}, ["卡斯蒂利亞-萊昂"] = {wp = "Castilla y León"}, ["加泰羅尼亞"] = {wp = "Catalonia"}, ["加泰隆尼亞"] = {alias_of = "加泰羅尼亞"}, ["埃斯特雷馬杜拉"] = {wp = "Extremadura"}, ["加利西亞"] = {wp = "Galicia (Spain)"}, ["拉里奧哈"] = {wp = "La Rioja (autonomous community)"}, ["馬德里自治區"] = {wp = "Community of Madrid"}, ["穆爾西亞"] = {wp = "Region of Murcia"}, ["納瓦拉"] = {wp = "Navarre"}, ["巴倫西亞"] = {wp = "Valencian Community"}, ["巴倫西亞自治區"] = {alias_of = "巴倫西亞"}, } export.spain_group = { placename_to_key = false, default_container = "西班牙", default_placetype = "autonomous community", data = export.spain_autonomous_communities, } ----------------------------------------------------------------------------------- -- China prefecture-level cities -- -- Mirrors enwikt china_prefecture_level_cities (168 entries) and -- -- china_prefecture_level_cities_2 (4 entries, merged here since Chinese names -- -- are unambiguous: 台州/泰州, 蘇州/宿州 do not clash). -- ----------------------------------------------------------------------------------- export.china_prefecture_level_cities = { -- Guangdong ["廣州"] = {container = "廣東", wp = "Guangzhou"}, ["東莞"] = {container = "廣東", wp = "Dongguan"}, ["佛山"] = {container = "廣東", wp = "Foshan"}, ["惠州"] = {container = "廣東", wp = "Huizhou"}, ["江門"] = {container = "廣東", wp = "Jiangmen"}, ["深圳"] = {container = "廣東", wp = "Shenzhen"}, ["中山"] = {container = "廣東", wp = "Zhongshan"}, ["汕頭"] = {container = "廣東", wp = "Shantou"}, ["潮州"] = {container = "廣東", wp = "Chaozhou"}, ["揭陽"] = {container = "廣東", wp = "Jieyang"}, ["珠海"] = {container = "廣東", wp = "Zhuhai"}, ["湛江"] = {container = "廣東", wp = "Zhanjiang"}, ["茂名"] = {container = "廣東", wp = "Maoming"}, ["清遠"] = {container = "廣東", wp = "Qingyuan"}, ["肇慶"] = {container = "廣東", wp = "Zhaoqing"}, -- Direct-administered municipalities (also in china_provinces; duplicated here for division categorisation) ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Shanghai"}, ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Beijing"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Chongqing"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Tianjin"}, -- Jiangsu ["常熟"] = {container = "江蘇", wp = "Changshu"}, ["常州"] = {container = "江蘇", wp = "Changzhou"}, ["蘇州"] = {container = "江蘇", wp = "Suzhou"}, ["無錫"] = {container = "江蘇", wp = "Wuxi"}, ["南京"] = {container = "江蘇", wp = "Nanjing"}, ["南通"] = {container = "江蘇", wp = "Nantong"}, ["江陰"] = {container = "江蘇", wp = "Jiangyin"}, ["張家港"] = {container = "江蘇", wp = "Zhangjiagang"}, ["徐州"] = {container = "江蘇", wp = "Xuzhou"}, ["揚州"] = {container = "江蘇", wp = "Yangzhou"}, ["鹽城"] = {container = "江蘇", wp = "Yancheng"}, ["淮安"] = {container = "江蘇", wp = "Huai'an"}, ["連雲港"] = {container = "江蘇", wp = "Lianyungang"}, ["宿遷"] = {container = "江蘇", wp = "Suqian"}, ["鎮江"] = {container = "江蘇", wp = "Zhenjiang"}, ["崑山"] = {container = "江蘇", wp = "Kunshan"}, ["泰州"] = {container = "江蘇", wp = "Taizhou, Jiangsu"}, -- distinct from 台州 (Zhejiang) -- Zhejiang ["杭州"] = {container = "浙江", wp = "Hangzhou"}, ["紹興"] = {container = "浙江", wp = "Shaoxing"}, ["寧波"] = {container = "浙江", wp = "Ningbo"}, ["慈溪"] = {container = "浙江", wp = "Cixi"}, ["余姚"] = {container = "浙江", wp = "Yuyao"}, ["溫州"] = {container = "浙江", wp = "Wenzhou"}, ["瑞安"] = {placetype = "county-level city", container = {key = "溫州", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Rui'an"}, ["台州"] = {container = "浙江", wp = "Taizhou, Zhejiang"}, ["義烏"] = {container = "浙江", wp = "Yiwu"}, ["嘉興"] = {container = "浙江", wp = "Jiaxing"}, ["金華"] = {container = "浙江", wp = "Jinhua"}, ["湖州"] = {container = "浙江", wp = "Huzhou"}, ["永康"] = {placetype = "county-level city", container = {key = "金華", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Yongkang, Zhejiang"}, -- Fujian ["廈門"] = {container = "福建", wp = "Xiamen"}, ["晉江"] = {container = "福建", wp = "Jinjiang"}, ["泉州"] = {container = "福建", wp = "Quanzhou"}, ["莆田"] = {container = "福建", wp = "Putian"}, ["福州"] = {container = "福建", wp = "Fuzhou"}, -- Shandong ["青島"] = {container = "山東", wp = "Qingdao"}, ["臨沂"] = {container = "山東", wp = "Linyi"}, ["淄博"] = {container = "山東", wp = "Zibo"}, ["濟南"] = {container = "山東", wp = "Jinan"}, ["濰坊"] = {container = "山東", wp = "Weifang"}, ["煙台"] = {container = "山東", wp = "Yantai"}, ["濟寧"] = {container = "山東", wp = "Jining"}, ["泰安"] = {container = "山東", wp = "Tai'an"}, ["威海"] = {container = "山東", wp = "Weihai"}, ["菏澤"] = {container = "山東", wp = "Heze"}, ["德州"] = {container = "山東", wp = "Dezhou"}, ["日照"] = {container = "山東", wp = "Rizhao"}, ["聊城"] = {container = "山東", wp = "Liaocheng"}, ["棗莊"] = {container = "山東", wp = "Zaozhuang"}, ["滕州"] = {placetype = "county-level city", container = {key = "棗莊", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Tengzhou"}, ["東營"] = {container = "山東", wp = "Dongying"}, -- Henan ["鄭州"] = {container = "河南", wp = "Zhengzhou"}, ["洛陽"] = {container = "河南", wp = "Luoyang"}, ["新鄉"] = {container = "河南", wp = "Xinxiang"}, ["信陽"] = {container = "河南", wp = "Xinyang"}, ["安陽"] = {container = "河南", wp = "Anyang"}, ["開封"] = {container = "河南", wp = "Kaifeng"}, ["許昌"] = {container = "河南", wp = "Xuchang"}, ["濮陽"] = {container = "河南", wp = "Puyang"}, ["商丘"] = {container = "河南", wp = "Shangqiu"}, ["南陽"] = {container = "河南", wp = "Nanyang, Henan"}, ["焦作"] = {container = "河南", wp = "Jiaozuo"}, ["平頂山"] = {container = "河南", wp = "Pingdingshan"}, ["周口"] = {container = "河南", wp = "Zhoukou"}, ["駐馬店"] = {container = "河南", wp = "Zhumadian"}, -- Hubei ["武漢"] = {container = "湖北", wp = "Wuhan"}, ["襄陽"] = {container = "湖北", wp = "Xiangyang"}, ["宜昌"] = {container = "湖北", wp = "Yichang"}, ["鄂州"] = {container = "湖北", wp = "Ezhou"}, ["十堰"] = {container = "湖北", wp = "Shiyan"}, -- Hunan ["長沙"] = {container = "湖南", wp = "Changsha"}, ["株洲"] = {container = "湖南", wp = "Zhuzhou"}, ["衡陽"] = {container = "湖南", wp = "Hengyang"}, ["邵陽"] = {container = "湖南", wp = "Shaoyang"}, ["岳陽"] = {container = "湖南", wp = "Yueyang"}, ["常德"] = {container = "湖南", wp = "Changde"}, ["瀏陽"] = {placetype = "county-level city", container = {key = "長沙", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Liuyang"}, -- Sichuan ["成都"] = {container = "四川", wp = "Chengdu"}, ["綿陽"] = {container = "四川", wp = "Mianyang"}, ["南充"] = {container = "四川", wp = "Nanchong"}, ["達州"] = {container = "四川", wp = "Dazhou"}, ["瀘州"] = {container = "四川", wp = "Luzhou"}, ["宜賓"] = {container = "四川", wp = "Yibin"}, -- Yunnan ["昆明"] = {container = "雲南", wp = "Kunming"}, ["曲靖"] = {container = "雲南", wp = "Qujing"}, -- Guizhou ["貴陽"] = {container = "貴州", wp = "Guiyang"}, ["遵義"] = {container = "貴州", wp = "Zunyi"}, ["六盤水"] = {container = "貴州", wp = "Liupanshui"}, ["畢節"] = {container = "貴州", wp = "Bijie"}, -- Shaanxi ["西安"] = {container = "陝西", wp = "Xi'an"}, ["咸陽"] = {container = "陝西", wp = "Xianyang"}, ["寶雞"] = {container = "陝西", wp = "Baoji"}, -- Heilongjiang ["哈爾濱"] = {container = "黑龍江", wp = "Harbin"}, ["大慶"] = {container = "黑龍江", wp = "Daqing"}, ["齊齊哈爾"] = {container = "黑龍江", wp = "Qiqihar"}, -- Liaoning ["瀋陽"] = {container = "遼寧", wp = "Shenyang"}, ["撫順"] = {container = "遼寧", wp = "Fushun"}, ["大連"] = {container = "遼寧", wp = "Dalian"}, ["鞍山"] = {container = "遼寧", wp = "Anshan"}, ["錦州"] = {container = "遼寧", wp = "Jinzhou"}, ["葫蘆島"] = {container = "遼寧", wp = "Huludao"}, ["盤錦"] = {container = "遼寧", wp = "Panjin"}, -- Jilin ["長春"] = {container = "吉林", wp = "Changchun"}, ["吉林市"] = {container = "吉林", wp = "Jilin City"}, -- distinct from 吉林 (province) -- Anhui ["合肥"] = {container = "安徽", wp = "Hefei"}, ["蚌埠"] = {container = "安徽", wp = "Bengbu"}, ["淮南"] = {container = "安徽", wp = "Huainan"}, ["蕪湖"] = {container = "安徽", wp = "Wuhu"}, ["淮北"] = {container = "安徽", wp = "Huaibei"}, ["滁州"] = {container = "安徽", wp = "Chuzhou"}, ["六安"] = {container = "安徽", wp = "Lu'an"}, ["阜陽"] = {container = "安徽", wp = "Fuyang, Anhui"}, ["宿州"] = {container = "安徽", wp = "Suzhou, Anhui"}, -- distinct from 蘇州 (Jiangsu) -- Hebei ["石家莊"] = {container = "河北", wp = "Shijiazhuang"}, ["邯鄲"] = {container = "河北", wp = "Handan"}, ["唐山"] = {container = "河北", wp = "Tangshan"}, ["秦皇島"] = {container = "河北", wp = "Qinhuangdao"}, ["邢台"] = {container = "河北", wp = "Xingtai"}, ["保定"] = {container = "河北", wp = "Baoding"}, ["張家口"] = {container = "河北", wp = "Zhangjiakou"}, ["衡水"] = {container = "河北", wp = "Hengshui"}, ["滄州"] = {container = "河北", wp = "Cangzhou"}, -- Shanxi ["太原"] = {container = "山西", wp = "Taiyuan"}, ["大同"] = {container = "山西", wp = "Datong"}, ["長治"] = {container = "山西", wp = "Changzhi"}, ["臨汾"] = {container = "山西", wp = "Linfen"}, -- Jiangxi ["南昌"] = {container = "江西", wp = "Nanchang"}, ["贛州"] = {container = "江西", wp = "Ganzhou"}, ["上饒"] = {container = "江西", wp = "Shangrao"}, ["九江"] = {container = "江西", wp = "Jiujiang"}, -- Guangxi (autonomous region) ["南寧"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Nanning"}, ["柳州"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Liuzhou"}, ["桂林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guilin"}, ["玉林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Yulin, Guangxi"}, ["北海"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Beihai"}, ["貴港"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guigang"}, -- Inner Mongolia (autonomous region) ["呼和浩特"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Hohhot"}, ["包頭"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Baotou"}, ["赤峰"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Chifeng"}, -- Xinjiang (autonomous region) ["烏魯木齊"] = {container = {key = "新疆", placetype = "autonomous region"}, wp = "Ürümqi"}, -- Ningxia (autonomous region) ["銀川"] = {container = {key = "寧夏", placetype = "autonomous region"}, wp = "Yinchuan"}, -- Hainan ["海口"] = {container = "海南", wp = "Haikou"}, -- Qinghai ["西寧"] = {container = "青海", wp = "Xining"}, -- Gansu ["蘭州"] = {container = "甘肅", wp = "Lanzhou"}, -- Chongqing subdivision (district 142 miles from Chongqing proper) ["萬州"] = {placetype = "district", container = {key = "重慶", placetype = "direct-administered municipality"}, divs = {"subdistricts", "townships"}, wp = "Wanzhou"}, -- County within Suqian prefecture-level city ["沭陽"] = {placetype = "county", container = {key = "宿遷", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Shuyang County"}, } export.china_prefecture_level_cities_group = { placename_to_key = false, default_placetype = {"prefecture-level city", "city"}, default_divs = { "districts", "subdistricts", "townships", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_prefecture_level_cities, } ----------------------------------------------------------------------------------- -- New York City boroughs -- ----------------------------------------------------------------------------------- export.new_york_boroughs = { ["布朗克斯"] = {the = true, wp = "The Bronx"}, ["布魯克林"] = {wp = "Brooklyn"}, ["曼哈頓"] = {wp = "Manhattan"}, ["皇后區"] = {wp = "Queens"}, ["史泰登島"] = {wp = "Staten Island"}, } export.new_york_boroughs_group = { placename_to_key = false, default_container = {key = "紐約市", placetype = "city"}, default_placetype = "borough", default_is_city = true, data = export.new_york_boroughs, } ----------------------------------------------------------------------------------- -- Romania counties -- ----------------------------------------------------------------------------------- export.romania_counties = { ["阿爾巴縣"] = {wp = "Alba County"}, ["阿拉德縣"] = {wp = "Arad County"}, ["阿爾傑什縣"] = {wp = "Argeș County"}, ["巴考縣"] = {wp = "Bacău County"}, ["比霍爾縣"] = {wp = "Bihor County"}, ["比斯特里察-訥瑟烏德縣"] = {wp = "Bistrița-Năsăud County"}, ["博托沙尼縣"] = {wp = "Botoșani County"}, ["布拉索夫縣"] = {wp = "Brașov County"}, ["布勒伊拉縣"] = {wp = "Brăila County"}, ["布澤烏縣"] = {wp = "Buzău County"}, ["卡拉什-塞韋林縣"] = {wp = "Caraș-Severin County"}, ["克盧日縣"] = {wp = "Cluj County"}, ["康斯坦察縣"] = {wp = "Constanța County"}, ["科瓦斯納縣"] = {wp = "Covasna County"}, ["克勒拉希縣"] = {wp = "Călărași County"}, ["多爾日縣"] = {wp = "Dolj County"}, ["登博維察縣"] = {wp = "Dâmbovița County"}, ["加拉茨縣"] = {wp = "Galați County"}, ["久爾久縣"] = {wp = "Giurgiu County"}, ["戈爾日縣"] = {wp = "Gorj County"}, ["哈爾吉塔縣"] = {wp = "Harghita County"}, ["胡內多阿拉縣"] = {wp = "Hunedoara County"}, ["雅洛米察縣"] = {wp = "Ialomița County"}, ["雅西縣"] = {wp = "Iași County"}, ["伊爾福夫縣"] = {wp = "Ilfov County"}, ["馬拉穆列什縣"] = {wp = "Maramureș County"}, ["梅赫丁茨縣"] = {wp = "Mehedinți County"}, ["穆列什縣"] = {wp = "Mureș County"}, ["尼亞姆茨縣"] = {wp = "Neamț County"}, ["奧爾特縣"] = {wp = "Olt County"}, ["普拉霍瓦縣"] = {wp = "Prahova County"}, ["薩圖馬雷縣"] = {wp = "Satu Mare County"}, ["錫比烏縣"] = {wp = "Sibiu County"}, ["蘇恰瓦縣"] = {wp = "Suceava County"}, ["瑟拉日縣"] = {wp = "Sălaj County"}, ["特列奧爾曼縣"] = {wp = "Teleorman County"}, ["蒂米什縣"] = {wp = "Timiș County"}, ["圖爾恰縣"] = {wp = "Tulcea County"}, ["瓦斯盧伊縣"] = {wp = "Vaslui County"}, ["弗蘭恰縣"] = {wp = "Vrancea County"}, ["沃爾恰縣"] = {wp = "Vâlcea County"}, } export.romania_group = { placename_to_key = false, default_container = "羅馬尼亞", default_placetype = "county", data = export.romania_counties, } ----------------------------------------------------------------------------------- -- Bulgaria provinces -- ----------------------------------------------------------------------------------- export.bulgaria_provinces = { ["布拉戈耶夫格勒省"] = {wp = "Blagoevgrad Province"}, ["布爾加斯省"] = {wp = "Burgas Province"}, ["多布里奇省"] = {wp = "Dobrich Province"}, ["加布羅沃省"] = {wp = "Gabrovo Province"}, ["哈斯科沃省"] = {wp = "Haskovo Province"}, ["卡爾扎利省"] = {wp = "Kardzhali Province"}, ["屈斯滕迪爾省"] = {wp = "Kyustendil Province"}, ["洛維奇省"] = {wp = "Lovech Province"}, ["蒙塔納省"] = {wp = "Montana Province"}, ["帕扎爾吉克省"] = {wp = "Pazardzhik Province"}, ["佩爾尼克省"] = {wp = "Pernik Province"}, ["普萊文省"] = {wp = "Pleven Province"}, ["普羅夫迪夫省"] = {wp = "Plovdiv Province"}, ["拉茲格勒省"] = {wp = "Razgrad Province"}, ["魯塞省"] = {wp = "Ruse Province"}, ["舒門省"] = {wp = "Shumen Province"}, ["錫利斯特拉省"] = {wp = "Silistra Province"}, ["斯利文省"] = {wp = "Sliven Province"}, ["斯莫梁省"] = {wp = "Smolyan Province"}, ["索非亞市省"] = {wp = "Sofia City Province"}, ["索非亞省"] = {wp = "Sofia Province"}, ["斯塔拉扎戈拉省"] = {wp = "Stara Zagora Province"}, ["特爾戈維什泰省"] = {wp = "Targovishte Province"}, ["瓦爾納省"] = {wp = "Varna Province"}, ["大特爾諾沃省"] = {wp = "Veliko Tarnovo Province"}, ["維丁省"] = {wp = "Vidin Province"}, ["弗拉察省"] = {wp = "Vratsa Province"}, ["揚博爾省"] = {wp = "Yambol Province"}, } export.bulgaria_group = { placename_to_key = false, default_container = "保加利亞", default_placetype = "province", data = export.bulgaria_provinces, } ----------------------------------------------------------------------------------- -- Iran provinces -- ----------------------------------------------------------------------------------- export.iran_provinces = { ["阿爾博爾茲省"] = {wp = "Alborz Province"}, ["阿爾達比勒省"] = {wp = "Ardabil Province"}, ["布什爾省"] = {wp = "Bushehr Province"}, ["恰哈爾馬哈勒-巴赫蒂亞里省"] = {wp = "Chaharmahal and Bakhtiari Province"}, ["東阿塞拜疆省"] = {wp = "East Azerbaijan Province"}, ["法爾斯省"] = {wp = "Fars Province"}, ["帕爾斯省"] = {alias_of = "法爾斯省"}, ["吉蘭省"] = {wp = "Gilan Province"}, ["戈勒斯坦省"] = {wp = "Golestan Province"}, ["哈馬丹省"] = {wp = "Hamadan Province"}, ["霍爾木茲甘省"] = {wp = "Hormozgan Province"}, ["伊拉姆省"] = {wp = "Ilam Province"}, ["伊斯法罕省"] = {wp = "Isfahan Province"}, ["克爾曼省"] = {wp = "Kerman Province"}, ["克爾曼沙赫省"] = {wp = "Kermanshah Province"}, ["胡齊斯坦省"] = {wp = "Khuzestan Province"}, ["科吉盧耶-博亞赫邁德省"] = {wp = "Kohgiluyeh and Boyer-Ahmad Province"}, ["庫爾德斯坦省"] = {wp = "Kurdistan Province"}, ["洛雷斯坦省"] = {wp = "Lorestan Province"}, ["馬爾卡齊省"] = {wp = "Markazi Province"}, ["馬贊達蘭省"] = {wp = "Mazandaran Province"}, ["北呼羅珊省"] = {wp = "North Khorasan Province"}, ["加茲溫省"] = {wp = "Qazvin Province"}, ["庫姆省"] = {wp = "Qom Province"}, ["拉扎維呼羅珊省"] = {wp = "Razavi Khorasan Province"}, ["森南省"] = {wp = "Semnan Province"}, ["錫斯坦-俾路支斯坦省"] = {wp = "Sistan and Baluchestan Province"}, ["南呼羅珊省"] = {wp = "South Khorasan Province"}, ["德黑蘭省"] = {wp = "Tehran Province"}, ["西阿塞拜疆省"] = {wp = "West Azerbaijan Province"}, ["亞茲德省"] = {wp = "Yazd Province"}, ["贊詹省"] = {wp = "Zanjan Province"}, } export.iran_group = { placename_to_key = false, default_container = "伊朗", default_placetype = "province", data = export.iran_provinces, } ----------------------------------------------------------------------------------- -- Laos provinces -- ----------------------------------------------------------------------------------- export.laos_provinces = { ["阿塔坡省"] = {wp = "Attapeu Province"}, ["博膠省"] = {wp = "Bokeo Province"}, ["波里坎賽省"] = {wp = "Bolikhamxai Province"}, ["占巴塞省"] = {wp = "Champasak Province"}, ["華潘省"] = {wp = "Houaphanh Province"}, ["甘蒙省"] = {wp = "Khammouane Province"}, ["南塔省"] = {wp = "Luang Namtha Province"}, ["琅勃拉邦省"] = {wp = "Luang Prabang Province"}, ["烏多姆賽省"] = {wp = "Oudomxay Province"}, ["豐沙里省"] = {wp = "Phongsaly Province"}, ["沙拉灣省"] = {wp = "Salavan Province"}, ["沙灣拿吉省"] = {wp = "Savannakhet Province"}, ["萬象省"] = {wp = "Vientiane Province"}, ["萬象直轄市"] = {placetype = "prefecture", wp = "Vientiane Prefecture"}, ["賽亞武里省"] = {wp = "Sainyabuli Province"}, ["塞公省"] = {wp = "Sekong Province"}, ["賽頌本省"] = {wp = "Xaisomboun Province"}, ["川壙省"] = {wp = "Xiangkhouang Province"}, } export.laos_group = { placename_to_key = false, default_container = "老撾", default_placetype = "province", data = export.laos_provinces, } ----------------------------------------------------------------------------------- -- North Korea provinces -- ----------------------------------------------------------------------------------- export.north_korea_provinces = { ["慈江道"] = {wp = "慈江道"}, ["咸鏡北道"] = {wp = "咸鏡北道"}, ["咸鏡南道"] = {wp = "咸鏡南道"}, ["黃海北道"] = {wp = "黃海北道"}, ["黃海南道"] = {wp = "黃海南道"}, ["江原道(北韓)"] = {wp = "江原道 (朝鮮民主主義人民共和國)"}, ["平安北道"] = {wp = "平安北道"}, ["平安南道"] = {wp = "平安南道"}, ["兩江道"] = {wp = "兩江道"}, } export.north_korea_group = { placename_to_key = false, default_container = "朝鮮", default_placetype = "province", data = export.north_korea_provinces, } ----------------------------------------------------------------------------------- -- South Korea provinces -- ----------------------------------------------------------------------------------- export.south_korea_provinces = { ["忠清北道"] = {wp = "忠清北道"}, ["忠清南道"] = {wp = "忠清南道"}, ["江原道(南韓)"] = {wp = "江原特別自治道"}, ["京畿道"] = {wp = "京畿道"}, ["慶尚北道"] = {wp = "慶尚北道"}, ["慶尚南道"] = {wp = "慶尚南道"}, ["全羅北道"] = {wp = "全羅北道"}, ["全羅南道"] = {wp = "全羅南道"}, ["濟州道"] = {wp = "濟州道"}, } export.south_korea_group = { placename_to_key = false, default_container = "韓國", default_placetype = "province", data = export.south_korea_provinces, } ----------------------------------------------------------------------------------- -- Thailand provinces -- ----------------------------------------------------------------------------------- export.thailand_provinces = { ["阿姆納特坤府"] = {wp = "Amnat Charoen Province"}, ["紅統府"] = {wp = "Ang Thong Province"}, ["彭侃府"] = {wp = "Bueng Kan Province"}, ["武里南府"] = {wp = "Buriram Province"}, ["北柳府"] = {wp = "Chachoengsao Province"}, ["猜納府"] = {wp = "Chai Nat Province"}, ["猜耶奔府"] = {wp = "Chaiyaphum Province"}, ["尖竹汶府"] = {wp = "Chanthaburi Province"}, ["清邁府"] = {wp = "Chiang Mai Province"}, ["清萊府"] = {wp = "Chiang Rai Province"}, ["春武里府"] = {wp = "Chonburi Province"}, ["春蓬府"] = {wp = "Chumphon Province"}, ["加拉信府"] = {wp = "Kalasin Province"}, ["甘烹碧府"] = {wp = "Kamphaeng Phet Province"}, ["北碧府"] = {wp = "Kanchanaburi Province"}, ["孔敬府"] = {wp = "Khon Kaen Province"}, ["甲米府"] = {wp = "Krabi Province"}, ["南邦府"] = {wp = "Lampang Province"}, ["南奔府"] = {wp = "Lamphun Province"}, ["黎府"] = {wp = "Loei Province"}, ["華富里府"] = {wp = "Lopburi Province"}, ["夜豐頌府"] = {wp = "Mae Hong Son Province"}, ["瑪哈沙拉堪府"] = {wp = "Maha Sarakham Province"}, ["莫達罕府"] = {wp = "Mukdahan Province"}, ["那空那育府"] = {wp = "Nakhon Nayok Province"}, ["佛統府"] = {wp = "Nakhon Pathom Province"}, ["那空帕農府"] = {wp = "Nakhon Phanom Province"}, ["呵叻府"] = {wp = "Nakhon Ratchasima Province"}, ["那空沙旺府"] = {wp = "Nakhon Sawan Province"}, ["洛坤府"] = {wp = "Nakhon Si Thammarat Province"}, ["難府"] = {wp = "Nan Province"}, ["那拉提瓦府"] = {wp = "Narathiwat Province"}, ["農布瓦蘭普府"] = {wp = "Nong Bua Lamphu Province"}, ["廊開府"] = {wp = "Nong Khai Province"}, ["暖武里府"] = {wp = "Nonthaburi Province"}, ["巴吞他尼府"] = {wp = "Pathum Thani Province"}, ["北大年府"] = {wp = "Pattani Province"}, ["攀牙府"] = {wp = "Phang Nga Province"}, ["博他侖府"] = {wp = "Phatthalung Province"}, ["帕堯府"] = {wp = "Phayao Province"}, ["碧差汶府"] = {wp = "Phetchabun Province"}, ["碧武里府"] = {wp = "Phetchaburi Province"}, ["披集府"] = {wp = "Phichit Province"}, ["彭世洛府"] = {wp = "Phitsanulok Province"}, ["大城府"] = {wp = "Phra Nakhon Si Ayutthaya Province"}, ["帕府"] = {wp = "Phrae Province"}, ["普吉府"] = {wp = "Phuket Province"}, ["巴真府"] = {wp = "Prachinburi Province"}, ["巴蜀府"] = {wp = "Prachuap Khiri Khan Province"}, ["拉廊府"] = {wp = "Ranong Province"}, ["叻丕府"] = {wp = "Ratchaburi Province"}, ["羅勇府"] = {wp = "Rayong Province"}, ["黎逸府"] = {wp = "Roi Et Province"}, ["沙繳府"] = {wp = "Sa Kaeo Province"}, ["色軍府"] = {wp = "Sakon Nakhon Province"}, ["北欖府"] = {wp = "Samut Prakan Province"}, ["沙沒沙空府"] = {wp = "Samut Sakhon Province"}, ["沙沒頌堪府"] = {wp = "Samut Songkhram Province"}, ["沙拉武里府"] = {wp = "Saraburi Province"}, ["沙敦府"] = {wp = "Satun Province"}, ["信武里府"] = {wp = "Sing Buri Province"}, ["四色菊府"] = {wp = "Sisaket Province"}, ["宋卡府"] = {wp = "Songkhla Province"}, ["素可泰府"] = {wp = "Sukhothai Province"}, ["素攀武里府"] = {wp = "Suphan Buri Province"}, ["素叻他尼府"] = {wp = "Surat Thani Province"}, ["素林府"] = {wp = "Surin Province"}, ["達府"] = {wp = "Tak Province"}, ["董里府"] = {wp = "Trang Province"}, ["達叻府"] = {wp = "Trat Province"}, ["烏汶府"] = {wp = "Ubon Ratchathani Province"}, ["烏隆府"] = {wp = "Udon Thani Province"}, ["烏泰他尼府"] = {wp = "Uthai Thani Province"}, ["烏達拉勐府"] = {wp = "Uttaradit Province"}, ["惹拉府"] = {wp = "Yala Province"}, ["耶梭通府"] = {wp = "Yasothon Province"}, } export.thailand_group = { placename_to_key = false, default_container = "泰國", default_placetype = "province", data = export.thailand_provinces, } ----------------------------------------------------------------------------------- -- Turkey provinces -- ----------------------------------------------------------------------------------- export.turkey_provinces = { ["阿達納省"] = {wp = "Adana Province"}, ["阿德亞曼省"] = {wp = "Adıyaman Province"}, ["阿菲永卡拉希薩爾省"] = {wp = "Afyonkarahisar Province"}, ["阿里省"] = {wp = "Ağrı Province"}, ["阿馬西亞省"] = {wp = "Amasya Province"}, ["安卡拉省"] = {wp = "Ankara Province"}, ["安塔利亞省"] = {wp = "Antalya Province"}, ["阿爾特溫省"] = {wp = "Artvin Province"}, ["艾登省"] = {wp = "Aydın Province"}, ["巴勒克埃西爾省"] = {wp = "Balıkesir Province"}, ["比萊吉克省"] = {wp = "Bilecik Province"}, ["賓格爾省"] = {wp = "Bingöl Province"}, ["比特利斯省"] = {wp = "Bitlis Province"}, ["博盧省"] = {wp = "Bolu Province"}, ["布爾杜爾省"] = {wp = "Burdur Province"}, ["布爾薩省"] = {wp = "Bursa Province"}, ["恰納卡萊省"] = {wp = "Çanakkale Province"}, ["昌克勒省"] = {wp = "Çankırı Province"}, ["喬魯姆省"] = {wp = "Çorum Province"}, ["代尼茲利省"] = {wp = "Denizli Province"}, ["迪亞巴克爾省"] = {wp = "Diyarbakır Province"}, ["埃迪爾內省"] = {wp = "Edirne Province"}, ["埃拉澤省"] = {wp = "Elazığ Province"}, ["埃爾津詹省"] = {wp = "Erzincan Province"}, ["埃爾祖魯姆省"] = {wp = "Erzurum Province"}, ["埃斯基謝希爾省"] = {wp = "Eskişehir Province"}, ["加濟安泰普省"] = {wp = "Gaziantep Province"}, ["吉雷松省"] = {wp = "Giresun Province"}, ["居米什哈內省"] = {wp = "Gümüşhane Province"}, ["哈卡里省"] = {wp = "Hakkâri Province"}, ["哈塔伊省"] = {wp = "Hatay Province"}, ["伊斯帕爾塔省"] = {wp = "Isparta Province"}, ["梅爾辛省"] = {wp = "Mersin Province"}, ["伊茲密爾省"] = {wp = "İzmir Province"}, ["卡爾斯省"] = {wp = "Kars Province"}, ["卡斯塔莫努省"] = {wp = "Kastamonu Province"}, ["開塞利省"] = {wp = "Kayseri Province"}, ["柯克拉雷利省"] = {wp = "Kırklareli Province"}, ["克爾謝希爾省"] = {wp = "Kırşehir Province"}, ["科賈埃利省"] = {wp = "Kocaeli Province"}, ["科尼亞省"] = {wp = "Konya Province"}, ["屈塔希亞省"] = {wp = "Kütahya Province"}, ["馬拉蒂亞省"] = {wp = "Malatya Province"}, ["馬尼薩省"] = {wp = "Manisa Province"}, ["卡赫拉曼馬拉什省"] = {wp = "Kahramanmaraş Province"}, ["馬爾丁省"] = {wp = "Mardin Province"}, ["穆拉省"] = {wp = "Muğla Province"}, ["穆什省"] = {wp = "Muş Province"}, ["內夫謝希爾省"] = {wp = "Nevşehir Province"}, ["尼代省"] = {wp = "Niğde Province"}, ["奧爾杜省"] = {wp = "Ordu Province"}, ["里澤省"] = {wp = "Rize Province"}, ["薩卡里亞省"] = {wp = "Sakarya Province"}, ["薩姆松省"] = {wp = "Samsun Province"}, ["錫爾特省"] = {wp = "Siirt Province"}, ["錫諾普省"] = {wp = "Sinop Province"}, ["錫瓦斯省"] = {wp = "Sivas Province"}, ["泰基爾達省"] = {wp = "Tekirdağ Province"}, ["托卡特省"] = {wp = "Tokat Province"}, ["特拉布宗省"] = {wp = "Trabzon Province"}, ["通傑利省"] = {wp = "Tunceli Province"}, ["尚勒烏爾法省"] = {wp = "Şanlıurfa Province"}, ["烏沙克省"] = {wp = "Uşak Province"}, ["凡省"] = {wp = "Van Province"}, ["約茲加特省"] = {wp = "Yozgat Province"}, ["宗古爾達克省"] = {wp = "Zonguldak Province"}, ["阿克薩賴省"] = {wp = "Aksaray Province"}, ["拜布爾特省"] = {wp = "Bayburt Province"}, ["卡拉曼省"] = {wp = "Karaman Province"}, ["克勒克卡萊省"] = {wp = "Kırıkkale Province"}, ["巴特曼省"] = {wp = "Batman Province"}, ["蘇爾納克省"] = {wp = "Şırnak Province"}, ["巴爾騰省"] = {wp = "Bartın Province"}, ["阿爾達罕省"] = {wp = "Ardahan Province"}, ["伊迪爾省"] = {wp = "Iğdır Province"}, ["亞洛瓦省"] = {wp = "Yalova Province"}, ["卡拉比克省"] = {wp = "Karabük Province"}, ["基利斯省"] = {wp = "Kilis Province"}, ["奧斯曼尼耶省"] = {wp = "Osmaniye Province"}, ["迪茲傑省"] = {wp = "Düzce Province"}, } export.turkey_group = { placename_to_key = false, default_container = "土耳其", default_placetype = "province", data = export.turkey_provinces, } ----------------------------------------------------------------------------------- -- Vietnam provinces -- ----------------------------------------------------------------------------------- export.vietnam_provinces = { -- Northeast ["北江省"] = {wp = "Bắc Giang Province"}, ["北件省"] = {wp = "Bắc Kạn Province"}, ["高平省"] = {wp = "Cao Bằng Province"}, ["河江省"] = {wp = "Hà Giang Province"}, ["諒山省"] = {wp = "Lạng Sơn Province"}, ["富壽省"] = {wp = "Phú Thọ Province"}, ["廣寧省"] = {wp = "Quảng Ninh Province"}, ["太原省"] = {wp = "Thái Nguyên Province"}, ["宣光省"] = {wp = "Tuyên Quang Province"}, -- Northwest ["老街省"] = {wp = "Lào Cai Province"}, ["安沛省"] = {wp = "Yên Bái Province"}, ["奠邊省"] = {wp = "Điện Biên Province"}, ["和平省"] = {wp = "Hoà Bình Province"}, ["萊州省"] = {wp = "Lai Châu Province"}, ["山羅省"] = {wp = "Sơn La Province"}, -- Red River Delta ["北寧省"] = {wp = "Bắc Ninh Province"}, ["河南省"] = {wp = "Hà Nam Province"}, ["海陽省"] = {wp = "Hải Dương Province"}, ["興安省"] = {wp = "Hưng Yên Province"}, ["南定省"] = {wp = "Nam Định Province"}, ["寧平省"] = {wp = "Ninh Bình Province"}, ["太平省"] = {wp = "Thái Bình Province"}, ["永福省"] = {wp = "Vĩnh Phúc Province"}, -- North Central Coast ["河靜省"] = {wp = "Hà Tĩnh Province"}, ["乂安省"] = {wp = "Nghệ An Province"}, ["廣平省"] = {wp = "Quảng Bình Province"}, ["廣治省"] = {wp = "Quảng Trị Province"}, ["清化省"] = {wp = "Thanh Hoá Province"}, -- Central Highlands ["得樂省"] = {wp = "Đắk Lắk Province"}, ["得農省"] = {wp = "Đăk Nông Province"}, ["嘉萊省"] = {wp = "Gia Lai Province"}, ["崑嵩省"] = {wp = "Kon Tum Province"}, ["林同省"] = {wp = "Lâm Đồng Province"}, -- South Central Coast ["平定省"] = {wp = "Bình Định Province"}, ["平順省"] = {wp = "Bình Thuận Province"}, ["慶和省"] = {wp = "Khánh Hoà Province"}, ["寧順省"] = {wp = "Ninh Thuận Province"}, ["富安省"] = {wp = "Phú Yên Province"}, ["廣南省"] = {wp = "Quảng Nam Province"}, ["廣義省"] = {wp = "Quảng Ngãi Province"}, -- Southeast ["巴地-頭頓省"] = {wp = "Bà Rịa–Vũng Tàu Province"}, ["平陽省"] = {wp = "Bình Dương Province"}, ["平福省"] = {wp = "Bình Phước Province"}, ["同奈省"] = {wp = "Đồng Nai Province"}, ["西寧省"] = {wp = "Tây Ninh Province"}, -- Mekong Delta ["安江省"] = {wp = "An Giang Province"}, ["薄寮省"] = {wp = "Bạc Liêu Province"}, ["檳椥省"] = {wp = "Bến Tre Province"}, ["金甌省"] = {wp = "Cà Mau Province"}, ["同塔省"] = {wp = "Đồng Tháp Province"}, ["後江省"] = {wp = "Hậu Giang Province"}, ["堅江省"] = {wp = "Kiên Giang Province"}, ["龍安省"] = {wp = "Long An Province"}, ["朔莊省"] = {wp = "Sóc Trăng Province"}, ["前江省"] = {wp = "Tiền Giang Province"}, ["茶榮省"] = {wp = "Trà Vinh Province"}, ["永隆省"] = {wp = "Vĩnh Long Province"}, } export.vietnam_group = { placename_to_key = false, default_container = "越南", default_placetype = "province", data = export.vietnam_provinces, } ----------------------------------------------------------------------------------- -- Nigeria states -- ----------------------------------------------------------------------------------- export.nigeria_states = { ["阿比亞州"] = {wp = "Abia State"}, ["阿達馬瓦州"] = {wp = "Adamawa State"}, ["阿誇伊博姆州"] = {wp = "Akwa Ibom State"}, ["阿南布拉州"] = {wp = "Anambra State"}, ["包奇州"] = {wp = "Bauchi State"}, ["貝耶薩州"] = {wp = "Bayelsa State"}, ["貝努埃州"] = {wp = "Benue State"}, ["博爾諾州"] = {wp = "Borno State"}, ["跨河州"] = {wp = "Cross River State"}, ["三角洲州"] = {wp = "Delta State"}, ["埃博尼州"] = {wp = "Ebonyi State"}, ["埃多州"] = {wp = "Edo State"}, ["埃基蒂州"] = {wp = "Ekiti State"}, ["埃努古州"] = {wp = "Enugu State"}, ["阿布賈聯邦首都轄區"] = {placetype = {"federal territory", "territory", "state"}, the = true, wp = "Federal Capital Territory, Nigeria"}, ["貢貝州"] = {wp = "Gombe State"}, ["伊莫州"] = {wp = "Imo State"}, ["吉加瓦州"] = {wp = "Jigawa State"}, ["卡杜納州"] = {wp = "Kaduna State"}, ["卡諾州"] = {wp = "Kano State"}, ["卡齊納州"] = {wp = "Katsina State"}, ["克比州"] = {wp = "Kebbi State"}, ["科吉州"] = {wp = "Kogi State"}, ["誇拉州"] = {wp = "Kwara State"}, ["拉各斯州"] = {wp = "Lagos State"}, ["納薩拉瓦州"] = {wp = "Nasarawa State"}, ["尼日爾州"] = {wp = "Niger State"}, ["奧貢州"] = {wp = "Ogun State"}, ["翁多州"] = {wp = "Ondo State"}, ["奧順州"] = {wp = "Osun State"}, ["奧約州"] = {wp = "Oyo State"}, ["高原州"] = {wp = "Plateau State"}, ["河流州"] = {wp = "Rivers State"}, ["索科托州"] = {wp = "Sokoto State"}, ["塔拉巴州"] = {wp = "Taraba State"}, ["約貝州"] = {wp = "Yobe State"}, ["贊法拉州"] = {wp = "Zamfara State"}, } export.nigeria_group = { placename_to_key = false, default_container = "奈及利亞", default_placetype = "state", data = export.nigeria_states, } ----------------------------------------------------------------------------------- -- Selected city groups -- ----------------------------------------------------------------------------------- -- Key world cities frequently used as holonyms (entries covered by dedicated city groups removed) export.misc_cities = { -- Americas ["費爾法克斯"] = {container = "弗吉尼亞", placetype = "city", is_city = true, wp = "Fairfax, Virginia"}, ["斯克蘭頓"] = {container = "賓夕法尼亞", placetype = "city", is_city = true, wp = "Scranton, Pennsylvania"}, ["里約熱內盧市"] = {container = "巴西", placetype = "city", is_city = true, wp = "Rio de Janeiro"}, ["布宜諾斯艾利斯"] = {container = "阿根廷", placetype = "city", is_city = true, wp = "Buenos Aires"}, ["聖地牙哥"] = {container = "智利", placetype = "city", is_city = true, wp = "Santiago"}, ["波哥大"] = {container = "哥倫比亞", placetype = "city", is_city = true, wp = "Bogotá"}, ["利馬"] = {container = "秘魯", placetype = "city", is_city = true, wp = "Lima"}, -- Europe ["阿姆斯特丹"] = {container = "荷蘭", placetype = "city", is_city = true, wp = "Amsterdam"}, ["布魯塞爾"] = {container = "比利時", placetype = "city", is_city = true, wp = "Brussels"}, ["維也納"] = {container = "奧地利", placetype = "city", is_city = true, wp = "Vienna"}, ["伊斯坦布爾"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Istanbul"}, ["基輔"] = {container = "烏克蘭", placetype = "city", is_city = true, wp = "Kyiv"}, ["華沙"] = {container = "波蘭", placetype = "city", is_city = true, wp = "Warsaw"}, ["布拉格"] = {container = "捷克", placetype = "city", is_city = true, wp = "Prague"}, ["布達佩斯"] = {container = "匈牙利", placetype = "city", is_city = true, wp = "Budapest"}, ["斯德哥爾摩"] = {container = "瑞典", placetype = "city", is_city = true, wp = "Stockholm"}, ["赫爾辛基"] = {container = "芬蘭", placetype = "city", is_city = true, wp = "Helsinki"}, ["奧斯陸"] = {container = "挪威", placetype = "city", is_city = true, wp = "Oslo"}, ["哥本哈根"] = {container = "丹麥", placetype = "city", is_city = true, wp = "Copenhagen"}, ["里斯本"] = {container = "葡萄牙", placetype = "city", is_city = true, wp = "Lisbon"}, ["雅典"] = {container = "希臘", placetype = "city", is_city = true, wp = "Athens"}, ["蘇黎世"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Zurich"}, ["日內瓦"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Geneva"}, ["第比利斯"] = {container = "格魯吉亞", placetype = "city", is_city = true, wp = "Tbilisi"}, ["貝爾格勒"] = {container = "塞爾維亞", placetype = "city", is_city = true, wp = "Belgrade"}, ["薩格勒布"] = {container = "克羅埃西亞", placetype = "city", is_city = true, wp = "Zagreb"}, ["都柏林"] = {container = "愛爾蘭", placetype = "city", is_city = true, wp = "Dublin"}, -- Asia ["北京市"] = {container = "北京", placetype = "city", is_city = true, wp = "Beijing"}, ["上海市"] = {container = "上海", placetype = "city", is_city = true, wp = "Shanghai"}, ["德里市"] = {container = "德里", placetype = "city", is_city = true, wp = "Delhi"}, ["曼谷"] = {container = "泰國", placetype = "city", is_city = true, wp = "Bangkok"}, ["吉隆坡"] = {container = "馬來西亞", placetype = "city", is_city = true, wp = "Kuala Lumpur"}, ["開羅"] = {container = "埃及", placetype = "city", is_city = true, wp = "Cairo"}, ["德黑蘭"] = {container = "伊朗", placetype = "city", is_city = true, wp = "Tehran"}, ["安卡拉"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Ankara"}, -- Oceania ["奧克蘭"] = {container = "紐西蘭", placetype = "city", is_city = true, wp = "Auckland"}, -- Africa ["開普敦"] = {container = "南非", placetype = "city", is_city = true, wp = "Cape Town"}, ["約翰尼斯堡"] = {container = "南非", placetype = "city", is_city = true, wp = "Johannesburg"}, ["奈洛比"] = {container = "肯亞", placetype = "city", is_city = true, wp = "Nairobi"}, } export.misc_cities_group = { placename_to_key = false, default_placetype = "city", default_is_city = true, data = export.misc_cities, } ----------------------------------------------------------------------------------- -- Brazil states (for testcase coverage) -- ----------------------------------------------------------------------------------- export.brazil_states = { ["里約熱內盧州"] = {wp = "Rio de Janeiro (state)"}, ["里約熱內盧"] = {alias_of = "里約熱內盧州"}, ["聖保羅州"] = {wp = "São Paulo (state)"}, ["米納斯吉拉斯"] = {wp = "Minas Gerais"}, ["巴伊亞"] = {wp = "Bahia"}, ["亞馬遜州"] = {wp = "Amazonas (Brazilian state)"}, ["帕拉州"] = {wp = "Pará"}, ["伯南布哥州"] = {wp = "Pernambuco"}, ["南里奧格蘭德州"] = {wp = "Rio Grande do Sul"}, ["巴西聯邦區"] = {wp = "Federal District (Brazil)"}, ["塞阿拉州"] = {wp = "Ceará"}, ["巴拉那州"] = {wp = "Paraná (state)"}, ["戈亞斯州"] = {wp = "Goiás"}, ["聖埃斯皮里圖州"] = {wp = "Espírito Santo"}, ["馬拉尼昂州"] = {wp = "Maranhão"}, ["北里奧格蘭德州"] = {wp = "Rio Grande do Norte"}, ["聖卡塔琳娜州"] = {wp = "Santa Catarina (state)"}, ["阿拉戈亞斯州"] = {wp = "Alagoas"}, ["帕拉伊巴州"] = {wp = "Paraíba"}, ["皮奧伊州"] = {wp = "Piauí"}, ["阿克里州"] = {wp = "Acre (state)"}, ["阿馬帕州"] = {wp = "Amapá"}, ["馬托格羅索州"] = {wp = "Mato Grosso"}, ["南馬托格羅索州"] = {wp = "Mato Grosso do Sul"}, ["朗多尼亞州"] = {wp = "Rondônia"}, ["羅賴馬州"] = {wp = "Roraima"}, ["塞爾希培州"] = {wp = "Sergipe"}, ["托坎廷斯州"] = {wp = "Tocantins"}, } export.brazil_group = { placename_to_key = false, default_container = "巴西", default_placetype = "state", data = export.brazil_states, } ----------------------------------------------------------------------------------- -- France regions -- ----------------------------------------------------------------------------------- export.france_administrative_regions = { ["奧弗涅-隆河-阿爾卑斯大區"] = {wp = "Auvergne-Rhône-Alpes"}, ["勃艮第-弗朗什-孔泰大區"] = {wp = "Bourgogne-Franche-Comté"}, ["布列塔尼大區"] = {wp = "Brittany (administrative region)"}, ["中央-羅亞爾河谷大區"] = {wp = "Centre-Val de Loire"}, ["科西嘉大區"] = {wp = "Corsica"}, ["大東部大區"] = {wp = "Grand Est"}, ["上法蘭西大區"] = {wp = "Hauts-de-France"}, ["法蘭西島大區"] = {wp = "Île-de-France"}, ["諾曼底大區"] = {wp = "Normandy"}, ["新阿基坦大區"] = {wp = "Nouvelle-Aquitaine"}, ["奧克西塔尼大區"] = {wp = "Occitanie"}, ["盧瓦爾河地區大區"] = {wp = "Pays de la Loire"}, ["普羅旺斯-阿爾卑斯-蔚藍海岸大區"] = {wp = "Provence-Alpes-Côte d'Azur"}, -- Old region names (pre-2016) as aliases ["北部-加萊海峽大區"] = {wp = "Nord-Pas-de-Calais"}, ["加來海峽大區"] = {alias_of = "北部-加萊海峽大區"}, } export.france_group = { placename_to_key = false, default_container = "法國", default_placetype = "region", data = export.france_administrative_regions, } -- France departments (abbreviated list) export.france_departments = { ["北部省"] = {wp = "Nord (department)", container = "上法蘭西大區"}, ["加來海峽省"] = {wp = "Pas-de-Calais", container = "上法蘭西大區"}, ["巴黎市"] = {wp = "Paris", container = "法蘭西島大區"}, ["上塞納省"] = {wp = "Hauts-de-Seine", container = "法蘭西島大區"}, } export.france_departments_group = { placename_to_key = false, default_container = "法國", default_placetype = "department", data = export.france_departments, } ----------------------------------------------------------------------------------- -- Austria states -- ----------------------------------------------------------------------------------- export.austria_states = { ["維也納州"] = {wp = "Vienna (state)"}, ["下奧地利州"] = {wp = "Lower Austria"}, ["上奧地利州"] = {wp = "Upper Austria"}, ["施泰爾馬克州"] = {wp = "Styria"}, ["蒂羅爾州"] = {wp = "Tyrol (state)"}, ["克恩頓州"] = {wp = "Carinthia"}, ["薩爾茨堡州"] = {wp = "Salzburg (state)"}, ["福拉爾貝格州"] = {wp = "Vorarlberg"}, ["布根蘭州"] = {wp = "Burgenland"}, } export.austria_group = { placename_to_key = false, default_container = "奧地利", default_placetype = "state", data = export.austria_states, } ----------------------------------------------------------------------------------- -- Bangladesh divisions -- ----------------------------------------------------------------------------------- export.bangladesh_divisions = { ["巴里薩爾專區"] = {wp = "Barisal Division"}, ["吉大港專區"] = {wp = "Chittagong Division"}, ["達卡專區"] = {wp = "Dhaka Division"}, ["庫爾納專區"] = {wp = "Khulna Division"}, ["邁門辛專區"] = {wp = "Mymensingh Division"}, ["拉吉沙希專區"] = {wp = "Rajshahi Division"}, ["朗普爾專區"] = {wp = "Rangpur Division"}, ["錫爾赫特專區"] = {wp = "Sylhet Division"}, } export.bangladesh_group = { placename_to_key = false, default_container = "孟加拉國", default_placetype = "division", data = export.bangladesh_divisions, } ----------------------------------------------------------------------------------- -- Egypt governorates -- ----------------------------------------------------------------------------------- export.egypt_governorates = { ["開羅省"] = {wp = "Cairo Governorate"}, ["吉薩省"] = {wp = "Giza Governorate"}, ["夏爾基亞省"] = {wp = "Sharqia Governorate"}, ["達卡利亞省"] = {wp = "Dakahlia Governorate"}, ["貝海拉省"] = {wp = "Beheira Governorate"}, ["明亞省"] = {wp = "Minya Governorate"}, ["蓋柳比亞省"] = {wp = "Qalyubia Governorate"}, ["索哈傑省"] = {wp = "Sohag Governorate"}, ["亞歷山大省"] = {wp = "Alexandria Governorate"}, ["加爾比亞省"] = {wp = "Gharbia Governorate"}, ["艾斯尤特省"] = {wp = "Asyut Governorate"}, ["莫諾菲亞省"] = {wp = "Monufia Governorate"}, ["法尤姆省"] = {wp = "Faiyum Governorate"}, ["卡夫爾謝赫省"] = {wp = "Kafr El Sheikh Governorate"}, ["基納省"] = {wp = "Qena Governorate"}, ["本尼蘇威夫省"] = {wp = "Beni Suef Governorate"}, ["達米埃塔省"] = {wp = "Damietta Governorate"}, ["阿斯旺省"] = {wp = "Aswan Governorate"}, ["伊斯梅利亞省"] = {wp = "Ismailia Governorate"}, ["盧克索省"] = {wp = "Luxor Governorate"}, ["蘇伊士省"] = {wp = "Suez Governorate"}, ["塞德港省"] = {wp = "Port Said Governorate"}, ["馬特魯省"] = {wp = "Matrouh Governorate"}, ["北西奈省"] = {wp = "North Sinai Governorate"}, ["紅海省"] = {wp = "Red Sea Governorate"}, ["新河谷省"] = {wp = "New Valley Governorate"}, ["南西奈省"] = {wp = "South Sinai Governorate"}, } export.egypt_group = { placename_to_key = false, default_container = "埃及", default_placetype = "governorate", data = export.egypt_governorates, } ----------------------------------------------------------------------------------- -- Finland regions -- ----------------------------------------------------------------------------------- export.finland_regions = { ["拉普蘭省"] = {wp = "Lapland (Finland)"}, ["北奧斯特博滕省"] = {wp = "North Ostrobothnia"}, ["卡亞尼省"] = {wp = "Kainuu"}, ["北卡累利亞省"] = {wp = "North Karelia"}, ["北薩沃省"] = {wp = "Northern Savonia"}, ["南薩沃省"] = {wp = "Southern Savonia"}, ["南卡累利亞省"] = {wp = "South Karelia"}, ["中芬蘭省"] = {wp = "Central Finland"}, ["南奧斯特博滕省"] = {wp = "South Ostrobothnia"}, ["奧斯特博滕省"] = {wp = "Ostrobothnia (region)"}, ["中奧斯特博滕省"] = {wp = "Central Ostrobothnia"}, ["皮爾卡馬省"] = {wp = "Pirkanmaa"}, ["薩塔昆塔省"] = {wp = "Satakunta"}, ["派亞特哈米省"] = {wp = "Päijät-Häme"}, ["坎塔哈米省"] = {wp = "Tavastia Proper"}, ["屈米河谷省"] = {wp = "Kymenlaakso"}, ["烏西馬省"] = {wp = "Uusimaa"}, ["西南芬蘭省"] = {wp = "Southwest Finland"}, ["奧蘭群島"] = {wp = "Åland", placetype = {"autonomous region", "region"}}, } export.finland_group = { placename_to_key = false, default_container = "芬蘭", default_placetype = "region", data = export.finland_regions, } ----------------------------------------------------------------------------------- -- Greece regions -- ----------------------------------------------------------------------------------- export.greece_regions = { ["阿提卡大區"] = {wp = "Attica (region)"}, ["中希臘大區"] = {wp = "Central Greece (administrative region)"}, ["中馬其頓大區"] = {wp = "Central Macedonia"}, ["克里特大區"] = {wp = "Crete"}, ["東馬其頓和色雷斯大區"] = {wp = "Eastern Macedonia and Thrace"}, ["伊庇魯斯大區"] = {wp = "Epirus (region)"}, ["愛奧尼亞群島大區"] = {wp = "Ionian Islands (region)"}, ["北愛琴大區"] = {wp = "North Aegean"}, ["伯羅奔尼撒大區"] = {wp = "Peloponnese (region)"}, ["南愛琴大區"] = {wp = "South Aegean"}, ["塞薩利大區"] = {wp = "Thessaly"}, ["西希臘大區"] = {wp = "Western Greece"}, ["西馬其頓大區"] = {wp = "Western Macedonia"}, ["阿托斯山"] = {wp = "Monastic community of Mount Athos", placetype = {"autonomous region", "region"}}, } export.greece_group = { placename_to_key = false, default_container = "希臘", default_placetype = "region", data = export.greece_regions, } ----------------------------------------------------------------------------------- -- Indonesia provinces -- ----------------------------------------------------------------------------------- export.indonesia_provinces = { ["亞齊省"] = {wp = "Aceh"}, ["峇里省"] = {wp = "Bali"}, ["邦加勿里洞省"] = {wp = "Bangka Belitung Islands"}, ["萬丹省"] = {wp = "Banten"}, ["明古魯省"] = {wp = "Bengkulu"}, ["中爪哇省"] = {wp = "Central Java"}, ["中加里曼丹省"] = {wp = "Central Kalimantan"}, ["中巴布亞省"] = {wp = "Central Papua"}, ["中蘇拉威西省"] = {wp = "Central Sulawesi"}, ["東爪哇省"] = {wp = "East Java"}, ["東加里曼丹省"] = {wp = "East Kalimantan"}, ["東努沙登加拉省"] = {wp = "East Nusa Tenggara"}, ["哥倫打洛省"] = {wp = "Gorontalo"}, ["巴布亞高地省"] = {wp = "Highland Papua"}, ["雅加達首都特區"] = {wp = "Jakarta"}, ["占碑省"] = {wp = "Jambi"}, ["楠榜省"] = {wp = "Lampung"}, ["馬魯古省"] = {wp = "Maluku"}, ["北加里曼丹省"] = {wp = "North Kalimantan"}, ["北馬魯古省"] = {wp = "North Maluku"}, ["北蘇拉威西省"] = {wp = "North Sulawesi"}, ["北巴布亞省"] = {wp = "North Papua"}, ["北蘇門答臘省"] = {wp = "North Sumatra"}, ["巴布亞省"] = {wp = "Papua (province)"}, ["廖內省"] = {wp = "Riau"}, ["廖內群島省"] = {wp = "Riau Islands"}, ["東南蘇拉威西省"] = {wp = "Southeast Sulawesi"}, ["南加里曼丹省"] = {wp = "South Kalimantan"}, ["南巴布亞省"] = {wp = "South Papua"}, ["南蘇拉威西省"] = {wp = "South Sulawesi"}, ["南蘇門答臘省"] = {wp = "South Sumatra"}, ["西南巴布亞省"] = {wp = "Southwest Papua"}, ["西爪哇省"] = {wp = "West Java"}, ["西加里曼丹省"] = {wp = "West Kalimantan"}, ["西努沙登加拉省"] = {wp = "West Nusa Tenggara"}, ["西巴布亞省"] = {wp = "West Papua (province)"}, ["西蘇拉威西省"] = {wp = "West Sulawesi"}, ["西蘇門答臘省"] = {wp = "West Sumatra"}, ["日惹特區"] = {wp = "Special Region of Yogyakarta"}, } export.indonesia_group = { placename_to_key = false, default_container = "印度尼西亞", default_placetype = "province", data = export.indonesia_provinces, } ----------------------------------------------------------------------------------- -- Lebanon governorates -- ----------------------------------------------------------------------------------- export.lebanon_governorates = { ["阿卡爾省"] = {wp = "Akkar Governorate"}, ["巴勒貝克-赫爾梅勒省"] = {wp = "Baalbek-Hermel Governorate"}, ["貝魯特省"] = {wp = "Beirut Governorate"}, ["貝卡省"] = {wp = "Beqaa Governorate"}, ["克塞旺-裘拜勒省"] = {wp = "Keserwan-Jbeil Governorate"}, ["黎巴嫩山省"] = {wp = "Mount Lebanon Governorate"}, ["納巴蒂耶省"] = {wp = "Nabatieh Governorate"}, ["北部省(黎巴嫩)"] = {wp = "North Governorate (Lebanon)", no_auto_augment_container = true}, ["南部省(黎巴嫩)"] = {wp = "South Governorate (Lebanon)", no_auto_augment_container = true}, } export.lebanon_group = { placename_to_key = false, default_container = "黎巴嫩", default_placetype = "governorate", data = export.lebanon_governorates, } ----------------------------------------------------------------------------------- -- Malaysia states -- ----------------------------------------------------------------------------------- export.malaysia_states = { ["柔佛州"] = {wp = "Johor"}, ["吉打州"] = {wp = "Kedah"}, ["吉蘭丹州"] = {wp = "Kelantan"}, ["馬六甲州"] = {wp = "Malacca"}, ["森美蘭州"] = {wp = "Negeri Sembilan"}, ["彭亨州"] = {wp = "Pahang"}, ["檳城州"] = {wp = "Penang"}, ["霹靂州"] = {wp = "Perak"}, ["玻璃市州"] = {wp = "Perlis"}, ["沙巴州"] = {wp = "Sabah"}, ["砂拉越州"] = {wp = "Sarawak"}, ["雪蘭莪州"] = {wp = "Selangor"}, ["登嘉樓州"] = {wp = "Terengganu"}, } export.malaysia_group = { placename_to_key = false, default_container = "馬來西亞", default_placetype = "state", data = export.malaysia_states, } ----------------------------------------------------------------------------------- -- Malta regions -- ----------------------------------------------------------------------------------- export.malta_regions = { ["東部區(馬爾他)"] = {wp = "Eastern Region, Malta", no_auto_augment_container = true}, ["戈佐區"] = {wp = "Gozo Region"}, ["北部區(馬爾他)"] = {wp = "Northern Region, Malta", no_auto_augment_container = true}, ["港口區"] = {wp = "Port Region, Malta"}, ["南部區(馬爾他)"] = {wp = "Southern Region, Malta", no_auto_augment_container = true}, ["西部區(馬爾他)"] = {wp = "Western Region, Malta", no_auto_augment_container = true}, } export.malta_group = { placename_to_key = false, default_container = "馬爾他", default_placetype = "region", data = export.malta_regions, } ----------------------------------------------------------------------------------- -- Mexico states -- ----------------------------------------------------------------------------------- export.mexico_states = { ["阿瓜斯卡連特斯州"] = {wp = "Aguascalientes"}, ["下加利福尼亞州"] = {wp = "Baja California"}, ["南下加利福尼亞州"] = {wp = "Baja California Sur"}, ["坎佩切州"] = {wp = "Campeche"}, ["恰帕斯州"] = {wp = "Chiapas"}, ["奇瓦瓦州"] = {wp = "Chihuahua (state)"}, ["科阿韋拉州"] = {wp = "Coahuila"}, ["科利馬州"] = {wp = "Colima"}, ["杜蘭戈州"] = {wp = "Durango"}, ["瓜納華托州"] = {wp = "Guanajuato"}, ["格雷羅州"] = {wp = "Guerrero"}, ["伊達爾戈州"] = {wp = "Hidalgo (state)"}, ["哈利斯科州"] = {wp = "Jalisco"}, ["墨西哥州"] = {wp = "State of Mexico"}, ["米卻肯州"] = {wp = "Michoacán"}, ["莫雷洛斯州"] = {wp = "Morelos"}, ["納亞里特州"] = {wp = "Nayarit"}, ["新萊昂州"] = {wp = "Nuevo León"}, ["瓦哈卡州"] = {wp = "Oaxaca"}, ["普埃布拉州"] = {wp = "Puebla"}, ["克雷塔羅州"] = {wp = "Querétaro"}, ["金塔納羅奧州"] = {wp = "Quintana Roo"}, ["聖路易斯波托西州"] = {wp = "San Luis Potosí"}, ["錫那羅亞州"] = {wp = "Sinaloa"}, ["索諾拉州"] = {wp = "Sonora"}, ["塔巴斯科州"] = {wp = "Tabasco (state)"}, ["塔毛利帕斯州"] = {wp = "Tamaulipas"}, ["特拉斯卡拉州"] = {wp = "Tlaxcala"}, ["韋拉克魯斯州"] = {wp = "Veracruz"}, ["尤卡坦州"] = {wp = "Yucatán"}, ["薩卡特卡斯州"] = {wp = "Zacatecas"}, } export.mexico_group = { placename_to_key = false, default_container = "墨西哥", default_placetype = "state", data = export.mexico_states, } ----------------------------------------------------------------------------------- -- Moldova districts and ATUs -- ----------------------------------------------------------------------------------- export.moldova_districts = { ["阿內尼諾伊區"] = {wp = "Anenii Noi District"}, ["巴薩拉比亞斯卡區"] = {wp = "Basarabeasca District"}, ["布里切尼區"] = {wp = "Briceni District"}, ["卡胡爾區"] = {wp = "Cahul District"}, ["坎特米爾區"] = {wp = "Cantemir District"}, ["克勒拉希區"] = {wp = "Călărași District"}, ["考沙尼區"] = {wp = "Căușeni District"}, ["奇米什利亞區"] = {wp = "Cimișlia District"}, ["克里烏列尼區"] = {wp = "Criuleni District"}, ["東杜沙尼區"] = {wp = "Dondușeni District"}, ["德羅基亞區"] = {wp = "Drochia District"}, ["杜巴薩里區"] = {wp = "Dubăsari District"}, ["埃迪涅茨區"] = {wp = "Edineț District"}, ["法勒什蒂區"] = {wp = "Fălești District"}, ["弗洛雷什蒂區"] = {wp = "Florești District"}, ["格洛德尼區"] = {wp = "Glodeni District"}, ["欣切什蒂區"] = {wp = "Hîncești District"}, ["亞洛韋尼區"] = {wp = "Ialoveni District"}, ["萊奧瓦區"] = {wp = "Leova District"}, ["尼斯波雷尼區"] = {wp = "Nisporeni District"}, ["奧克尼察區"] = {wp = "Ocnița District"}, ["奧爾海伊區"] = {wp = "Orhei District"}, ["雷齊納區"] = {wp = "Rezina District"}, ["雷什卡尼區"] = {wp = "Rîșcani District"}, ["辛格雷伊區"] = {wp = "Sîngerei District"}, ["索羅卡區"] = {wp = "Soroca District"}, ["斯特拉沙尼區"] = {wp = "Strășeni District"}, ["紹爾達涅什蒂區"] = {wp = "Șoldănești District"}, ["斯蒂凡沃達區"] = {wp = "Ștefan Vodă District"}, ["塔拉克利亞區"] = {wp = "Taraclia District"}, ["泰萊涅什蒂區"] = {wp = "Telenești District"}, ["翁格尼區"] = {wp = "Ungheni District"}, ["基希訥烏市"] = {wp = "Chișinău", placetype = "municipality"}, ["巴爾茨市"] = {wp = "Bălți", placetype = "municipality"}, ["加告茲自治領土"] = {wp = "Gagauzia", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, ["本德爾市"] = {wp = "Bender, Moldova", placetype = "municipality"}, ["德涅斯特河沿岸"] = {wp = "Transnistria", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, } export.moldova_group = { placename_to_key = false, default_container = "摩爾多瓦", default_placetype = {"district", "raion"}, data = export.moldova_districts, } ----------------------------------------------------------------------------------- -- Morocco regions -- ----------------------------------------------------------------------------------- export.morocco_regions = { ["丹吉爾-得土安-霍賽馬大區"] = {wp = "Tangier-Tetouan-Al Hoceima"}, ["東方大區(摩洛哥)"] = {wp = "Oriental, Morocco"}, ["非斯-梅克內斯大區"] = {wp = "Fez-Meknes"}, ["拉巴特-薩累-肯尼特拉大區"] = {wp = "Rabat-Salé-Kénitra"}, ["貝尼梅拉勒-赫尼夫拉大區"] = {wp = "Béni Mellal-Khénifra"}, ["卡薩布蘭卡-塞塔特大區"] = {wp = "Casablanca-Settat"}, ["馬拉喀什-薩菲大區"] = {wp = "Marrakesh-Safi"}, ["德拉阿-塔菲拉勒特大區"] = {wp = "Drâa-Tafilalet"}, ["蘇斯-馬薩大區"] = {wp = "Souss-Massa"}, ["蓋勒明-烏德農大區"] = {wp = "Guelmim-Oued Noun"}, ["拉阿永-薩基亞-哈姆拉大區"] = {wp = "Laâyoune-Sakia El Hamra"}, ["達赫拉-奧以德達赫卜大區"] = {wp = "Dakhla-Oued Ed-Dahab"}, } export.morocco_group = { placename_to_key = false, default_container = "摩洛哥", default_placetype = "region", data = export.morocco_regions, } ----------------------------------------------------------------------------------- -- Netherlands provinces -- ----------------------------------------------------------------------------------- export.netherlands_provinces = { ["德倫特省"] = {wp = "Drenthe"}, ["弗萊福蘭省"] = {wp = "Flevoland"}, ["弗里斯蘭省"] = {wp = "Friesland"}, ["格爾德蘭省"] = {wp = "Gelderland"}, ["格羅寧根省"] = {wp = "Groningen (province)"}, ["林堡省(荷蘭)"] = {wp = "Limburg (Netherlands)"}, ["北布拉班特省"] = {wp = "North Brabant"}, ["北荷蘭省"] = {wp = "North Holland"}, ["上艾瑟爾省"] = {wp = "Overijssel"}, ["南荷蘭省"] = {wp = "South Holland"}, ["烏特勒支省"] = {wp = "Utrecht (province)"}, ["澤蘭省"] = {wp = "Zeeland"}, } export.netherlands_group = { placename_to_key = false, default_container = "荷蘭", default_placetype = "province", data = export.netherlands_provinces, } ----------------------------------------------------------------------------------- -- New Zealand regions -- ----------------------------------------------------------------------------------- export.new_zealand_regions = { ["北地大區"] = {wp = "Northland Region"}, ["奧克蘭大區"] = {wp = "Auckland Region"}, ["懷卡托大區"] = {wp = "Waikato Region"}, ["豐盛灣大區"] = {wp = "Bay of Plenty Region"}, ["吉斯伯恩大區"] = {wp = "Gisborne District", placetype = {"region", "district"}}, ["霍克斯灣大區"] = {wp = "Hawke's Bay Region"}, ["塔拉納基大區"] = {wp = "Taranaki Region"}, ["馬納瓦圖-旺阿努伊大區"] = {wp = "Manawatū-Whanganui Region"}, ["惠靈頓大區"] = {wp = "Wellington Region"}, ["塔斯曼大區"] = {wp = "Tasman District", placetype = {"region", "district"}}, ["納爾遜大區"] = {wp = "Nelson, New Zealand", placetype = {"region", "city"}, is_city = true}, ["馬爾堡大區"] = {wp = "Marlborough District", placetype = {"region", "district"}}, ["西海岸大區"] = {wp = "West Coast Region"}, ["坎特伯雷大區"] = {wp = "Canterbury Region"}, ["奧塔哥大區"] = {wp = "Otago Region"}, ["南地大區"] = {wp = "Southland Region"}, } export.new_zealand_group = { placename_to_key = false, default_container = "紐西蘭", default_placetype = "region", data = export.new_zealand_regions, } ----------------------------------------------------------------------------------- -- Norway counties -- ----------------------------------------------------------------------------------- export.norwegian_counties = { ["奧斯陸縣"] = {wp = "Oslo"}, ["羅加蘭縣"] = {wp = "Rogaland"}, ["莫雷-羅姆斯達爾縣"] = {wp = "Møre og Romsdal"}, ["諾爾蘭縣"] = {wp = "Nordland"}, ["東福爾縣"] = {wp = "Østfold"}, ["阿克斯胡斯縣"] = {wp = "Akershus"}, ["布斯克呂縣"] = {wp = "Buskerud"}, ["因蘭德縣"] = {wp = "Innlandet"}, ["西福爾縣"] = {wp = "Vestfold"}, ["泰勒馬克縣"] = {wp = "Telemark"}, ["阿格德爾縣"] = {wp = "Agder"}, ["西地縣"] = {wp = "Vestland"}, ["特倫德拉格縣"] = {wp = "Trøndelag"}, ["特羅姆斯縣"] = {wp = "Troms"}, ["芬馬克縣"] = {wp = "Finnmark"}, } export.norway_group = { placename_to_key = false, default_container = "挪威", default_placetype = "county", data = export.norwegian_counties, } ----------------------------------------------------------------------------------- -- Pakistan provinces and territories -- ----------------------------------------------------------------------------------- export.pakistan_provinces_and_territories = { ["自由克什米爾"] = {wp = "Azad Kashmir", placetype = {"administrative territory", "autonomous territory", "territory"}}, ["俾路支省"] = {wp = "Balochistan, Pakistan"}, ["吉爾吉特-巴爾蒂斯坦"] = {wp = "Gilgit-Baltistan", placetype = {"administrative territory", "territory"}}, ["伊斯蘭馬巴德首都直轄區"] = {wp = "Islamabad Capital Territory", placetype = {"federal territory", "administrative territory", "territory"}}, ["開伯爾-普赫圖赫瓦省"] = {wp = "Khyber Pakhtunkhwa"}, ["旁遮普省(巴基斯坦)"] = {wp = "Punjab, Pakistan"}, ["信德省"] = {wp = "Sindh"}, } export.pakistan_group = { placename_to_key = false, default_container = "巴基斯坦", default_placetype = "province", data = export.pakistan_provinces_and_territories, } ----------------------------------------------------------------------------------- -- Philippines provinces -- ----------------------------------------------------------------------------------- export.philippines_provinces = { ["阿布拉省"] = {wp = "Abra (province)"}, ["北阿古桑省"] = {wp = "Agusan del Norte"}, ["南阿古桑省"] = {wp = "Agusan del Sur"}, ["阿克蘭省"] = {wp = "Aklan"}, ["阿爾拜省"] = {wp = "Albay"}, ["安蒂克省"] = {wp = "Antique (province)"}, ["阿帕亞沃省"] = {wp = "Apayao"}, ["奧羅拉省"] = {wp = "Aurora (province)"}, ["巴西蘭省"] = {wp = "Basilan"}, ["巴丹省"] = {wp = "Bataan"}, ["巴達內斯省"] = {wp = "Batanes"}, ["八打雁省"] = {wp = "Batangas"}, ["本格特省"] = {wp = "Benguet"}, ["比利蘭省"] = {wp = "Biliran"}, ["保和省"] = {wp = "Bohol"}, ["布基農省"] = {wp = "Bukidnon"}, ["布拉干省"] = {wp = "Bulacan"}, ["卡加延省"] = {wp = "Cagayan"}, ["北甲馬仁省"] = {wp = "Camarines Norte"}, ["南甲馬仁省"] = {wp = "Camarines Sur"}, ["卡米金省"] = {wp = "Camiguin"}, ["卡皮斯省"] = {wp = "Capiz"}, ["卡坦端內斯省"] = {wp = "Catanduanes"}, ["甲米地省"] = {wp = "Cavite"}, ["宿霧省"] = {wp = "Cebu"}, ["哥打巴托省"] = {wp = "Cotabato"}, ["達沃德奧羅省"] = {wp = "Davao de Oro"}, ["北達沃省"] = {wp = "Davao del Norte"}, ["南達沃省"] = {wp = "Davao del Sur"}, ["西達沃省"] = {wp = "Davao Occidental"}, ["東達沃省"] = {wp = "Davao Oriental"}, ["迪納加特群島省"] = {wp = "Dinagat Islands"}, ["東薩馬省"] = {wp = "Eastern Samar"}, ["吉馬拉斯省"] = {wp = "Guimaras"}, ["伊富高省"] = {wp = "Ifugao"}, ["北伊羅科斯省"] = {wp = "Ilocos Norte"}, ["南伊羅科斯省"] = {wp = "Ilocos Sur"}, ["伊洛伊洛省"] = {wp = "Iloilo"}, ["伊莎貝拉省"] = {wp = "Isabela (province)"}, ["卡林加省"] = {wp = "Kalinga (province)"}, ["拉烏尼翁省"] = {wp = "La Union"}, ["拉古納省"] = {wp = "Laguna (province)"}, ["北拉瑙省"] = {wp = "Lanao del Norte"}, ["南拉瑙省"] = {wp = "Lanao del Sur"}, ["萊特省"] = {wp = "Leyte (province)"}, ["北馬京達瑙省"] = {wp = "Maguindanao del Norte"}, ["南馬京達瑙省"] = {wp = "Maguindanao del Sur"}, ["馬林杜克省"] = {wp = "Marinduque"}, ["馬斯巴特省"] = {wp = "Masbate"}, ["西米薩米斯省"] = {wp = "Misamis Occidental"}, ["東米薩米斯省"] = {wp = "Misamis Oriental"}, ["山岳省"] = {wp = "Mountain Province"}, ["西內格羅斯省"] = {wp = "Negros Occidental"}, ["東內格羅斯省"] = {wp = "Negros Oriental"}, ["北薩馬省"] = {wp = "Northern Samar"}, ["新怡詩夏省"] = {wp = "Nueva Ecija"}, ["新比斯開省"] = {wp = "Nueva Vizcaya"}, ["西民都洛省"] = {wp = "Occidental Mindoro"}, ["東民都洛省"] = {wp = "Oriental Mindoro"}, ["巴拉望省"] = {wp = "Palawan"}, ["邦板牙省"] = {wp = "Pampanga"}, ["邦阿西楠省"] = {wp = "Pangasinan"}, ["奎松省"] = {wp = "Quezon"}, ["基里諾省"] = {wp = "Quirino"}, ["黎剎省"] = {wp = "Rizal (province)"}, ["朗布隆省"] = {wp = "Romblon"}, ["薩馬省"] = {wp = "Samar (province)"}, ["薩蘭加尼省"] = {wp = "Sarangani"}, ["錫基霍爾省"] = {wp = "Siquijor"}, ["索索貢省"] = {wp = "Sorsogon"}, ["南哥打巴托省"] = {wp = "South Cotabato"}, ["南萊特省"] = {wp = "Southern Leyte"}, ["蘇丹庫達拉省"] = {wp = "Sultan Kudarat"}, ["蘇祿省"] = {wp = "Sulu"}, ["北蘇里高省"] = {wp = "Surigao del Norte"}, ["南蘇里高省"] = {wp = "Surigao del Sur"}, ["塔拉克省"] = {wp = "Tarlac"}, ["塔威塔威省"] = {wp = "Tawi-Tawi"}, ["三描禮士省"] = {wp = "Zambales"}, ["北三寶顏省"] = {wp = "Zamboanga del Norte"}, ["南三寶顏省"] = {wp = "Zamboanga del Sur"}, ["三寶顏錫布蓋省"] = {wp = "Zamboanga Sibugay"}, ["馬尼拉都會區"] = {wp = "Metro Manila", placetype = {"region", "province"}}, } export.philippines_group = { placename_to_key = false, default_container = "菲律賓", default_placetype = "province", data = export.philippines_provinces, } ----------------------------------------------------------------------------------- -- Poland voivodeships -- ----------------------------------------------------------------------------------- export.poland_voivodeships = { ["下西里西亞省"] = {wp = "Lower Silesian Voivodeship"}, ["庫亞維-波美拉尼亞省"] = {wp = "Kuyavian-Pomeranian Voivodeship"}, ["盧布林省"] = {wp = "Lublin Voivodeship"}, ["盧布斯省"] = {wp = "Lubusz Voivodeship"}, ["羅茲省"] = {wp = "Łódź Voivodeship"}, ["小波蘭省"] = {wp = "Lesser Poland Voivodeship"}, ["馬佐夫舍省"] = {wp = "Masovian Voivodeship"}, ["奧波萊省"] = {wp = "Opole Voivodeship"}, ["喀爾巴阡山省"] = {wp = "Subcarpathian Voivodeship"}, ["波德拉謝省"] = {wp = "Podlaskie Voivodeship"}, ["波美拉尼亞省"] = {wp = "Pomeranian Voivodeship"}, ["西里西亞省"] = {wp = "Silesian Voivodeship"}, ["神聖十字省"] = {wp = "Świętokrzyskie Voivodeship"}, ["瓦爾米亞-馬祖里省"] = {wp = "Warmian-Masurian Voivodeship"}, ["大波蘭省"] = {wp = "Greater Poland Voivodeship"}, ["西波美拉尼亞省"] = {wp = "West Pomeranian Voivodeship"}, } export.poland_group = { placename_to_key = false, default_container = "波蘭", default_placetype = "voivodeship", data = export.poland_voivodeships, } ----------------------------------------------------------------------------------- -- Portugal districts and autonomous regions -- ----------------------------------------------------------------------------------- export.portugal_districts_and_autonomous_regions = { ["亞速爾群島"] = {wp = "Azores", placetype = {"autonomous region", "region"}}, ["阿維羅區"] = {wp = "Aveiro District"}, ["貝雅區"] = {wp = "Beja District"}, ["布拉加區"] = {wp = "Braga District"}, ["布拉干薩區"] = {wp = "Bragança District"}, ["卡斯特洛布蘭科區"] = {wp = "Castelo Branco District"}, ["科英布拉區"] = {wp = "Coimbra District"}, ["埃武拉區"] = {wp = "Évora District"}, ["法魯區"] = {wp = "Faro District"}, ["瓜達區"] = {wp = "Guarda District"}, ["萊里亞區"] = {wp = "Leiria District"}, ["里斯本區"] = {wp = "Lisbon District"}, ["馬德拉島"] = {wp = "Madeira", placetype = {"autonomous region", "region"}}, ["波塔萊格里區"] = {wp = "Portalegre District"}, ["波爾圖區"] = {wp = "Porto District"}, ["聖塔倫區"] = {wp = "Santarém District"}, ["塞圖巴爾區"] = {wp = "Setúbal District"}, ["維亞納堡區"] = {wp = "Viana do Castelo District"}, ["維拉雷亞爾區"] = {wp = "Vila Real District"}, ["維塞烏區"] = {wp = "Viseu District"}, } export.portugal_group = { placename_to_key = false, default_container = "葡萄牙", default_placetype = "district", data = export.portugal_districts_and_autonomous_regions, } ----------------------------------------------------------------------------------- -- Russia federal subjects -- ----------------------------------------------------------------------------------- local russia_oblast = {placetype = "oblast"} local russia_krai = {placetype = "krai"} local russia_republic = {placetype = "republic"} local russia_autonomous_okrug = {placetype = {"autonomous okrug", "okrug"}} export.russia_federal_subjects = { -- autonomous oblast ["猶太自治州"] = {placetype = {"autonomous oblast", "oblast"}, wp = "Jewish Autonomous Oblast"}, -- autonomous okrugs ["楚科奇自治區"] = {wp = "Chukotka Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西自治區"] = {wp = "Khanty-Mansi Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西亞"] = {alias_of = "漢特-曼西自治區"}, ["涅涅茨自治區"] = {wp = "Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["亞馬洛-涅涅茨自治區"] = {wp = "Yamalo-Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, -- krais ["阿爾泰邊疆區"] = {wp = "Altai Krai", placetype = "krai"}, ["堪察加邊疆區"] = {wp = "Kamchatka Krai", placetype = "krai"}, ["哈巴羅夫斯克邊疆區"] = {wp = "Khabarovsk Krai", placetype = "krai"}, ["克拉斯諾達爾邊疆區"] = {wp = "Krasnodar Krai", placetype = "krai"}, ["克拉斯諾亞爾斯克邊疆區"] = {wp = "Krasnoyarsk Krai", placetype = "krai"}, ["彼爾姆邊疆區"] = {wp = "Perm Krai", placetype = "krai"}, ["濱海邊疆區"] = {wp = "Primorsky Krai", placetype = "krai"}, ["斯塔夫羅波爾邊疆區"] = {wp = "Stavropol Krai", placetype = "krai"}, ["外貝加爾邊疆區"] = {wp = "Zabaykalsky Krai", placetype = "krai"}, -- oblasts ["阿穆爾州"] = russia_oblast, ["阿爾漢格爾斯克州"] = russia_oblast, ["阿斯特拉罕州"] = russia_oblast, ["別爾哥羅德州"] = russia_oblast, ["布良斯克州"] = russia_oblast, ["車裡雅賓斯克州"] = russia_oblast, ["伊爾庫茨克州"] = russia_oblast, ["伊萬諾沃州"] = russia_oblast, ["加里寧格勒州"] = russia_oblast, ["卡盧加州"] = russia_oblast, ["克麥羅沃州"] = russia_oblast, ["基洛夫州"] = russia_oblast, ["科斯特羅馬州"] = russia_oblast, ["庫爾干州"] = russia_oblast, ["庫爾斯克州"] = russia_oblast, ["列寧格勒州"] = russia_oblast, ["利佩茨克州"] = russia_oblast, ["馬加丹州"] = russia_oblast, ["莫斯科州"] = russia_oblast, ["摩爾曼斯克州"] = russia_oblast, ["下諾夫哥羅德州"] = russia_oblast, ["諾夫哥羅德州"] = russia_oblast, ["新西伯利亞州"] = russia_oblast, ["鄂木斯克州"] = russia_oblast, ["奧倫堡州"] = russia_oblast, ["奧廖爾州"] = russia_oblast, ["奔薩州"] = russia_oblast, ["普斯科夫州"] = russia_oblast, ["羅斯托夫州"] = russia_oblast, ["梁贊州"] = russia_oblast, ["薩哈林州"] = {wp = "Sakhalin Oblast", placetype = "oblast"}, ["薩馬拉州"] = russia_oblast, ["薩拉托夫州"] = russia_oblast, ["斯摩棱斯克州"] = russia_oblast, ["斯維爾德洛夫斯克州"] = russia_oblast, ["坦波夫州"] = russia_oblast, ["托木斯克州"] = russia_oblast, ["圖拉州"] = russia_oblast, ["特維爾州"] = russia_oblast, ["秋明州"] = russia_oblast, ["烏里揚諾夫斯克州"] = russia_oblast, ["弗拉基米爾州"] = russia_oblast, ["伏爾加格勒州"] = russia_oblast, ["沃洛格達州"] = russia_oblast, ["沃羅涅日州"] = russia_oblast, ["雅羅斯拉夫爾州"] = russia_oblast, -- republics ["阿迪格共和國"] = russia_republic, ["巴什科爾托斯坦共和國"] = russia_republic, ["布里亞特共和國"] = russia_republic, ["達吉斯坦共和國"] = russia_republic, ["印古什共和國"] = russia_republic, ["卡爾梅克共和國"] = russia_republic, ["卡累利亞共和國"] = {wp = "Republic of Karelia", placetype = "republic"}, ["哈卡斯共和國"] = russia_republic, ["莫爾多瓦共和國"] = russia_republic, ["北奧塞梯-阿蘭尼亞共和國"] = {wp = "North Ossetia–Alania", placetype = "republic"}, ["北奧塞梯"] = {alias_of = "北奧塞梯-阿蘭尼亞共和國"}, ["韃靼斯坦共和國"] = russia_republic, ["阿爾泰共和國"] = {wp = "Altai Republic", placetype = "republic"}, ["車臣共和國"] = russia_republic, ["楚瓦什共和國"] = russia_republic, ["卡巴爾達-巴爾卡爾共和國"] = russia_republic, ["卡拉恰伊-切爾克斯共和國"] = russia_republic, ["科米共和國"] = {wp = "Komi Republic", placetype = "republic"}, ["馬里埃爾共和國"] = russia_republic, ["薩哈共和國"] = {wp = "Sakha Republic", placetype = "republic"}, ["雅庫特"] = {alias_of = "薩哈共和國"}, ["圖瓦共和國"] = russia_republic, ["烏德穆爾特共和國"] = russia_republic, } export.russia_group = { placename_to_key = false, default_container = "俄羅斯", default_placetype = "oblast", data = export.russia_federal_subjects, } ----------------------------------------------------------------------------------- -- Saudi Arabia provinces -- ----------------------------------------------------------------------------------- export.saudi_arabia_provinces = { ["利雅得省"] = {wp = "Riyadh Province"}, ["麥加省"] = {wp = "Mecca Province"}, ["東部省(沙特)"] = {wp = "Eastern Province, Saudi Arabia", no_auto_augment_container = true}, ["麥地那省"] = {wp = "Medina Province"}, ["阿西爾省"] = {wp = "Asir"}, ["吉贊省"] = {wp = "Jazan Province"}, ["卡西姆省"] = {wp = "Al-Qassim Province"}, ["塔布克省"] = {wp = "Tabuk Province"}, ["哈伊爾省"] = {wp = "Ha'il Province"}, ["焦夫省"] = {wp = "Al-Jawf Province"}, ["納季蘭省"] = {wp = "Najran Province"}, ["北部邊界省"] = {wp = "Northern Borders Province"}, ["巴哈省"] = {wp = "Al-Bahah Province"}, } export.saudi_arabia_group = { placename_to_key = false, default_container = "沙烏地阿拉伯", default_placetype = "province", data = export.saudi_arabia_provinces, } ----------------------------------------------------------------------------------- -- South Africa provinces -- ----------------------------------------------------------------------------------- export.south_africa_provinces = { ["東開普省"] = {wp = "Eastern Cape"}, ["自由邦省"] = {wp = "Free State (South African province)"}, ["豪登省"] = {wp = "Gauteng"}, ["夸祖魯-納塔爾省"] = {wp = "KwaZulu-Natal"}, ["林波波省"] = {wp = "Limpopo"}, ["姆普馬蘭加省"] = {wp = "Mpumalanga"}, ["西北省(南非)"] = {wp = "North West (South African province)"}, ["北開普省"] = {wp = "Northern Cape"}, ["西開普省"] = {wp = "Western Cape"}, } export.south_africa_group = { placename_to_key = false, default_container = "南非", default_placetype = "province", data = export.south_africa_provinces, } ----------------------------------------------------------------------------------- -- Ukraine oblasts -- ----------------------------------------------------------------------------------- export.ukraine_oblasts = { ["切爾卡瑟州"] = {wp = "Cherkasy Oblast"}, ["切爾尼戈夫州"] = {wp = "Chernihiv Oblast"}, ["切爾諾夫策州"] = {wp = "Chernivtsi Oblast"}, ["第聶伯羅彼得羅夫斯克州"] = {wp = "Dnipropetrovsk Oblast"}, ["頓涅茨克州"] = {wp = "Donetsk Oblast"}, ["伊萬諾-弗蘭科夫斯克州"] = {wp = "Ivano-Frankivsk Oblast"}, ["哈爾科夫州"] = {wp = "Kharkiv Oblast"}, ["赫爾松州"] = {wp = "Kherson Oblast"}, ["赫梅利尼茨基州"] = {wp = "Khmelnytskyi Oblast"}, ["基洛夫格勒州"] = {wp = "Kirovohrad Oblast"}, ["基輔州"] = {wp = "Kyiv Oblast"}, ["盧甘斯克州"] = {wp = "Luhansk Oblast"}, ["利沃夫州"] = {wp = "Lviv Oblast"}, ["尼古拉耶夫州"] = {wp = "Mykolaiv Oblast"}, ["敖德薩州"] = {wp = "Odesa Oblast"}, ["波爾塔瓦州"] = {wp = "Poltava Oblast"}, ["羅夫諾州"] = {wp = "Rivne Oblast"}, ["蘇梅州"] = {wp = "Sumy Oblast"}, ["捷爾諾波爾州"] = {wp = "Ternopil Oblast"}, ["文尼察州"] = {wp = "Vinnytsia Oblast"}, ["沃里尼亞州"] = {wp = "Volyn Oblast"}, ["外喀爾巴阡州"] = {wp = "Zakarpattia Oblast"}, ["扎波羅熱州"] = {wp = "Zaporizhzhia Oblast"}, ["日托米爾州"] = {wp = "Zhytomyr Oblast"}, } export.ukraine_group = { placename_to_key = false, default_container = "烏克蘭", default_placetype = "oblast", data = export.ukraine_oblasts, } ----------------------------------------------------------------------------------- -- Wales principal areas -- ----------------------------------------------------------------------------------- export.wales_principal_areas = { ["布拉艾諾格溫特"] = {wp = "Blaenau Gwent"}, ["布里真德"] = {wp = "Bridgend County Borough"}, ["卡菲利"] = {wp = "Caerphilly County Borough"}, ["卡馬森郡"] = {wp = "Carmarthenshire", placetype = "county"}, ["克雷地基昂"] = {wp = "Ceredigion", placetype = "county"}, ["科溫"] = {wp = "Conwy County Borough"}, ["登比郡"] = {wp = "Denbighshire", placetype = "county"}, ["弗林特郡"] = {wp = "Flintshire", placetype = "county"}, ["格溫內德"] = {wp = "Gwynedd", placetype = "county"}, ["安格爾西島"] = {wp = "Isle of Anglesey", placetype = "county"}, ["默瑟蒂德菲爾"] = {wp = "Merthyr Tydfil County Borough"}, ["蒙茅斯郡"] = {wp = "Monmouthshire", placetype = "county"}, ["尼斯-波特塔爾博特"] = {wp = "Neath Port Talbot"}, ["彭布羅克郡"] = {wp = "Pembrokeshire", placetype = "county"}, ["波伊斯"] = {wp = "Powys", placetype = "county"}, ["朗達坎農塔夫"] = {wp = "Rhondda Cynon Taf"}, ["托爾范"] = {wp = "Torfaen"}, ["格拉摩根谷"] = {wp = "Vale of Glamorgan"}, ["雷克瑟姆"] = {wp = "Wrexham County Borough"}, } export.wales_group = { placename_to_key = false, default_container = {key = "威爾斯", placetype = "constituent country"}, default_placetype = "county borough", data = export.wales_principal_areas, } ----------------------------------------------------------------------------------- -- City groups -- ----------------------------------------------------------------------------------- export.australia_cities = { ["阿德萊德"] = {container = "南澳大利亞", wp = "Adelaide"}, ["布里斯班"] = {container = "昆士蘭", wp = "Brisbane"}, ["坎培拉"] = {container = "澳大利亞首都領地", wp = "Canberra"}, ["墨爾本"] = {container = "維多利亞州", wp = "Melbourne"}, ["紐卡素"] = {container = "新南威爾斯", wp = "Newcastle, New South Wales"}, ["伯斯"] = {container = "西澳大利亞", wp = "Perth"}, ["悉尼"] = {container = "新南威爾斯", wp = "Sydney"}, } export.australia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "澳大利亞", default_placetype = "city", default_is_city = true, data = export.australia_cities, } export.brazil_cities = { ["聖保羅"] = {container = "聖保羅州", wp = "São Paulo"}, ["里約熱內盧"] = {container = "里約熱內盧州", wp = "Rio de Janeiro"}, ["貝洛奧里藏特"] = {container = "米納斯吉拉斯", wp = "Belo Horizonte"}, ["累西腓"] = {container = "伯南布哥州", wp = "Recife"}, ["阿雷格里港"] = {container = "南里奧格蘭德州", wp = "Porto Alegre"}, ["巴西利亞"] = {container = "巴西聯邦區", wp = "Brasília"}, ["福塔萊薩"] = {container = "塞阿拉州", wp = "Fortaleza"}, ["薩爾瓦多"] = {container = "巴伊亞", wp = "Salvador, Bahia"}, ["庫里蒂巴"] = {container = "巴拉那州", wp = "Curitiba"}, ["坎皮納斯"] = {container = "聖保羅州", wp = "Campinas"}, ["戈亞尼亞"] = {container = "戈亞斯州", wp = "Goiânia"}, ["瑪瑙斯"] = {container = "亞馬遜州", wp = "Manaus"}, ["伯利恆"] = {container = "帕拉州", wp = "Belém, Pará"}, ["維多利亞"] = {container = "聖埃斯皮里圖州", wp = "Vitória, Espírito Santo"}, ["聖路易斯"] = {container = "馬拉尼昂州", wp = "São Luís"}, ["納塔爾"] = {container = "北里奧格蘭德州", wp = "Natal, Rio Grande do Norte"}, ["弗洛里亞諾波利斯"] = {container = "聖卡塔琳娜州", wp = "Florianópolis"}, ["馬塞約"] = {container = "阿拉戈亞斯州", wp = "Maceió"}, ["若昂佩索阿"] = {container = "帕拉伊巴州", wp = "João Pessoa"}, ["特雷齊納"] = {container = "皮奧伊州", wp = "Teresina"}, ["隆德里納"] = {container = "巴拉那州", wp = "Londrina"}, } export.brazil_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "巴西", default_placetype = "city", default_is_city = true, data = export.brazil_cities, } export.canada_cities = { ["多倫多"] = {container = "安大略", wp = "Toronto"}, ["蒙特婁"] = {container = "魁北克", wp = "Montreal"}, ["溫哥華"] = {container = "英屬哥倫比亞", wp = "Vancouver"}, ["卡加里"] = {container = "亞伯達", wp = "Calgary"}, ["愛民頓"] = {container = "亞伯達", wp = "Edmonton"}, ["渥太華"] = {container = "安大略", wp = "Ottawa"}, ["魁北克城"] = {container = "魁北克", wp = "Quebec City"}, ["溫尼伯"] = {container = "馬尼托巴", wp = "Winnipeg"}, ["漢密爾頓"] = {container = "安大略", wp = "Hamilton, Ontario"}, } export.canada_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "加拿大", default_placetype = "city", default_is_city = true, data = export.canada_cities, } export.france_cities = { ["巴黎"] = {container = "法蘭西島大區", wp = "Paris"}, ["里昂"] = {container = "奧弗涅-隆河-阿爾卑斯大區", wp = "Lyon"}, ["馬賽"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Marseille"}, ["里爾"] = {container = "上法蘭西大區", wp = "Lille"}, ["波爾多"] = {container = "新阿基坦大區", wp = "Bordeaux"}, ["圖盧茲"] = {container = "奧克西塔尼大區", wp = "Toulouse"}, ["尼斯"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Nice"}, ["南特"] = {container = "盧瓦爾河地區大區", wp = "Nantes"}, ["史特拉斯堡"] = {container = "大東部大區", wp = "Strasbourg"}, ["雷恩"] = {container = "布列塔尼大區", wp = "Rennes"}, } export.france_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "法國", default_placetype = "city", default_is_city = true, data = export.france_cities, } export.germany_cities = { ["科隆"] = {container = "北萊茵-威斯特法倫", wp = "Cologne"}, ["杜塞爾多夫"] = {container = "北萊茵-威斯特法倫", wp = "Düsseldorf"}, ["多特蒙德"] = {container = "北萊茵-威斯特法倫", wp = "Dortmund"}, ["埃森"] = {container = "北萊茵-威斯特法倫", wp = "Essen"}, ["柏林"] = {wp = "Berlin"}, ["法蘭克福"] = {container = "黑森", wp = "Frankfurt"}, ["漢堡"] = {wp = "Hamburg"}, ["慕尼黑"] = {container = "巴伐利亞", wp = "Munich"}, ["斯圖加特"] = {container = "巴登-符騰堡", wp = "Stuttgart"}, ["曼海姆"] = {container = "巴登-符騰堡", wp = "Mannheim"}, ["紐倫堡"] = {container = "巴伐利亞", wp = "Nuremberg"}, ["漢諾威"] = {container = "下薩克森", wp = "Hanover"}, ["比勒費爾德"] = {container = "北萊茵-威斯特法倫", wp = "Bielefeld"}, ["萊比錫"] = {container = "薩克森", wp = "Leipzig"}, ["亞琛"] = {container = "北萊茵-威斯特法倫", wp = "Aachen"}, ["不來梅"] = {wp = "Bremen"}, } export.germany_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "德國", default_placetype = "city", default_is_city = true, data = export.germany_cities, } export.india_cities = { ["德里"] = {container = {key = "德里", placetype = "union territory"}, wp = "Delhi"}, ["孟買"] = {container = "馬哈拉施特拉邦", wp = "Mumbai"}, ["加爾各答"] = {container = "西孟加拉邦", wp = "Kolkata"}, ["班加羅爾"] = {container = "卡納塔克邦", wp = "Bengaluru"}, ["金奈"] = {container = "泰米爾納德邦", wp = "Chennai"}, ["海德拉巴"] = {container = "特倫甘納邦", wp = "Hyderabad"}, ["艾哈邁達巴德"] = {container = "古吉拉特邦", wp = "Ahmedabad"}, ["浦那"] = {container = "馬哈拉施特拉邦", wp = "Pune"}, ["蘇拉特"] = {container = "古吉拉特邦", wp = "Surat"}, ["勒克瑙"] = {container = "北方邦", wp = "Lucknow"}, ["齋浦爾"] = {container = "拉賈斯坦邦", wp = "Jaipur"}, ["坎普爾"] = {container = "北方邦", wp = "Kanpur"}, ["那格浦爾"] = {container = "馬哈拉施特拉邦", wp = "Nagpur"}, ["巴特那"] = {container = "比哈爾邦", wp = "Patna"}, ["瓦拉納西"] = {container = "北方邦", wp = "Varanasi"}, ["印多爾"] = {container = "中央邦", wp = "Indore"}, ["博帕爾"] = {container = "中央邦", wp = "Bhopal"}, ["阿格拉"] = {container = "北方邦", wp = "Agra"}, ["科欽"] = {container = "喀拉拉邦", wp = "Kochi"}, ["維沙卡帕特南"] = {container = "安得拉邦", wp = "Visakhapatnam"}, ["齋普爾"] = {alias_of = "齋浦爾"}, } export.india_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "印度", default_placetype = "city", default_is_city = true, data = export.india_cities, } export.indonesia_cities = { ["雅加達"] = {container = "雅加達首都特區", wp = "Jakarta"}, ["泗水"] = {container = "東爪哇省", wp = "Surabaya"}, ["勿加泗"] = {container = "西爪哇省", wp = "Bekasi"}, ["萬隆"] = {container = "西爪哇省", wp = "Bandung"}, ["棉蘭"] = {container = "北蘇門答臘省", wp = "Medan"}, ["德波"] = {container = "西爪哇省", wp = "Depok"}, ["萬丹市"] = {container = "萬丹省", wp = "Tangerang"}, ["巨港"] = {container = "南蘇門答臘省", wp = "Palembang"}, ["三寶壟"] = {container = "中爪哇省", wp = "Semarang"}, ["望加錫"] = {container = "南蘇拉威西省", wp = "Makassar"}, ["武端"] = {container = "廖內群島省", wp = "Batam"}, ["茂物"] = {container = "西爪哇省", wp = "Bogor"}, ["北干巴魯"] = {container = "廖內省", wp = "Pekanbaru"}, ["班達爾楠榜"] = {container = "楠榜省", wp = "Bandar Lampung"}, ["巴東"] = {container = "西蘇門答臘省", wp = "Padang"}, ["薩馬林達"] = {container = "東加里曼丹省", wp = "Samarinda"}, ["瑪琅"] = {container = "東爪哇省", wp = "Malang"}, ["日惹"] = {container = "日惹特區", wp = "Yogyakarta"}, ["登巴薩"] = {container = "峇里省", wp = "Denpasar"}, ["哲勒貢"] = {container = "西爪哇省", wp = "Cirebon"}, ["梭羅"] = {container = "中爪哇省", wp = "Surakarta"}, ["馬辰"] = {container = "南加里曼丹省", wp = "Banjarmasin"}, ["打橫"] = {container = "西爪哇省", wp = "Tasikmalaya"}, } export.indonesia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "印度尼西亞", default_placetype = "city", default_is_city = true, data = export.indonesia_cities, } export.italy_cities = { ["米蘭"] = {container = "倫巴第", wp = "Milan"}, ["那不勒斯"] = {container = "坎帕尼亞", wp = "Naples"}, ["羅馬"] = {container = "拉齊奧", wp = "Rome"}, ["都靈"] = {container = "皮埃蒙特", wp = "Turin"}, ["威尼斯"] = {container = "威尼托", wp = "Venice"}, ["佛羅倫斯"] = {container = "托斯卡納", wp = "Florence"}, ["巴里"] = {container = "普利亞", wp = "Bari"}, ["巴勒莫"] = {container = "西西里", wp = "Palermo"}, ["卡塔尼亞"] = {container = "西西里", wp = "Catania"}, ["布雷西亞"] = {container = "倫巴第", wp = "Brescia"}, ["熱那亞"] = {container = "利古里亞", wp = "Genoa"}, } export.italy_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "意大利", default_placetype = "city", default_is_city = true, data = export.italy_cities, } export.japan_cities = { ["東京"] = {container = "東京都", wp = "Tokyo", placetype = {"city", "prefecture"}}, ["橫濱"] = {container = "神奈川縣", wp = "Yokohama"}, ["大阪"] = {container = "大阪府", wp = "Osaka"}, ["名古屋"] = {container = "愛知縣", wp = "Nagoya"}, ["札幌"] = {container = "北海道", wp = "Sapporo"}, ["福岡"] = {container = "福岡縣", wp = "Fukuoka"}, ["神戶"] = {container = "兵庫縣", wp = "Kobe"}, ["京都"] = {container = "京都府", wp = "Kyoto"}, ["川崎"] = {container = "神奈川縣", wp = "Kawasaki, Kanagawa"}, ["廣島"] = {container = "廣島縣", wp = "Hiroshima"}, ["仙台"] = {container = "宮城縣", wp = "Sendai"}, ["北九州"] = {container = "福岡縣", wp = "Kitakyushu"}, ["新潟"] = {container = "新潟縣", wp = "Niigata (city)"}, ["靜岡"] = {container = "靜岡縣", wp = "Shizuoka (city)"}, ["岡山"] = {container = "岡山縣", wp = "Okayama"}, ["熊本"] = {container = "熊本縣", wp = "Kumamoto"}, ["鹿兒島"] = {container = "鹿兒島縣", wp = "Kagoshima"}, } export.japan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "prefecture"), default_container = "日本", default_placetype = "city", default_is_city = true, data = export.japan_cities, } export.mexico_cities = { ["墨西哥城"] = {wp = "Mexico City"}, ["蒙特雷"] = {container = "新萊昂州", wp = "Monterrey"}, ["瓜達拉哈拉"] = {container = "哈利斯科州", wp = "Guadalajara"}, ["普埃布拉市"] = {container = "普埃布拉州", wp = "Puebla (city)"}, ["托盧卡"] = {container = "墨西哥州", wp = "Toluca"}, ["蒂華納"] = {container = "下加利福尼亞州", wp = "Tijuana"}, ["萊昂"] = {container = "瓜納華托州", wp = "León, Guanajuato"}, ["克雷塔羅市"] = {container = "克雷塔羅州", wp = "Querétaro (city)"}, ["華雷斯城"] = {container = "奇瓦瓦州", wp = "Ciudad Juárez"}, ["托雷翁"] = {container = "科阿韋拉州", wp = "Torreón"}, ["梅里達"] = {container = "尤卡坦州", wp = "Mérida, Yucatán"}, ["聖路易斯波托西市"] = {container = "聖路易斯波托西州", wp = "San Luis Potosí (city)"}, ["阿瓜斯卡連特斯市"] = {container = "阿瓜斯卡連特斯州", wp = "Aguascalientes (city)"}, ["墨西卡利"] = {container = "下加利福尼亞州", wp = "Mexicali"}, } export.mexico_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "墨西哥", default_placetype = "city", default_is_city = true, data = export.mexico_cities, } export.nigeria_cities = { ["拉各斯"] = {container = "拉各斯州", wp = "Lagos"}, ["卡諾市"] = {container = "卡諾州", wp = "Kano (city)"}, ["伊巴丹"] = {container = "奧約州", wp = "Ibadan"}, ["阿布賈"] = {container = {key = "阿布賈聯邦首都轄區", placetype = "federal territory"}, wp = "Abuja"}, ["哈科特港"] = {container = "河流州", wp = "Port Harcourt"}, ["卡杜納市"] = {container = "卡杜納州", wp = "Kaduna (city)"}, ["貝寧城"] = {container = "埃多州", wp = "Benin City"}, ["阿巴"] = {container = "阿比亞州", wp = "Aba, Nigeria"}, ["奧尼查"] = {container = "阿南布拉州", wp = "Onitsha"}, ["邁杜古里"] = {container = "博爾諾州", wp = "Maiduguri"}, ["伊洛林"] = {container = "誇拉州", wp = "Ilorin"}, ["索科托市"] = {container = "索科托州", wp = "Sokoto (city)"}, ["喬斯"] = {container = "高原州", wp = "Jos"}, ["扎里亞"] = {container = "卡杜納州", wp = "Zaria"}, ["埃努古市"] = {container = "埃努古州", wp = "Enugu (city)"}, } export.nigeria_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "奈及利亞", default_placetype = "city", default_is_city = true, data = export.nigeria_cities, } export.pakistan_cities = { ["卡拉奇"] = {container = "信德省", wp = "Karachi"}, ["拉合爾"] = {container = "旁遮普省(巴基斯坦)", wp = "Lahore"}, ["拉瓦爾品第"] = {container = "旁遮普省(巴基斯坦)", wp = "Rawalpindi"}, ["伊斯蘭馬巴德"] = {container = {key = "伊斯蘭馬巴德首都直轄區", placetype = "federal territory"}, wp = "Islamabad"}, ["費薩拉巴德"] = {container = "旁遮普省(巴基斯坦)", wp = "Faisalabad"}, ["古傑蘭瓦拉"] = {container = "旁遮普省(巴基斯坦)", wp = "Gujranwala"}, ["海德拉巴(巴基斯坦)"] = {container = "信德省", wp = "Hyderabad, Pakistan"}, ["木爾坦"] = {container = "旁遮普省(巴基斯坦)", wp = "Multan"}, ["白沙瓦"] = {container = "開伯爾-普赫圖赫瓦省", wp = "Peshawar"}, ["奎達"] = {container = "俾路支省", wp = "Quetta"}, ["薩戈達"] = {container = "旁遮普省(巴基斯坦)", wp = "Sargodha"}, ["錫亞爾科特"] = {container = "旁遮普省(巴基斯坦)", wp = "Sialkot"}, } export.pakistan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "巴基斯坦", default_placetype = "city", default_is_city = true, data = export.pakistan_cities, } export.philippines_cities = { ["奎松市"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Quezon City"}, ["馬尼拉"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Manila"}, ["達沃市"] = {container = "南達沃省", wp = "Davao City"}, ["卡洛坎"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Caloocan"}, ["三寶顏市"] = {container = "南三寶顏省", wp = "Zamboanga City"}, ["宿霧市"] = {container = "宿霧省", wp = "Cebu City"}, ["安蒂波洛"] = {container = "黎剎省", wp = "Antipolo"}, ["卡加延德奧羅"] = {container = "東米薩米斯省", wp = "Cagayan de Oro"}, ["達斯馬里尼亞斯"] = {container = "甲米地省", wp = "Dasmariñas"}, ["棉蘭老將軍城"] = {container = "南哥打巴托省", wp = "General Santos"}, ["聖何塞德爾蒙特"] = {container = "布拉干省", wp = "San Jose del Monte"}, ["巴科洛德"] = {container = "西內格羅斯省", wp = "Bacolod"}, ["卡蘭巴"] = {container = "拉古納省", wp = "Calamba, Laguna"}, ["天使城"] = {container = "邦板牙省", wp = "Angeles City"}, ["伊洛伊洛市"] = {container = "伊洛伊洛省", wp = "Iloilo City"}, } export.philippines_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "菲律賓", default_placetype = "city", default_is_city = true, data = export.philippines_cities, } export.russia_cities = { ["莫斯科"] = {wp = "Moscow"}, ["聖彼得堡"] = {wp = "Saint Petersburg"}, ["新西伯利亞"] = {container = "新西伯利亞州", wp = "Novosibirsk"}, ["葉卡捷琳堡"] = {container = "斯維爾德洛夫斯克州", wp = "Yekaterinburg"}, ["下諾夫哥羅德"] = {container = "下諾夫哥羅德州", wp = "Nizhny Novgorod"}, ["喀山"] = {container = {key = "韃靼斯坦共和國", placetype = "republic"}, wp = "Kazan"}, ["車裡雅賓斯克市"] = {container = "車裡雅賓斯克州", wp = "Chelyabinsk"}, ["頓河畔羅斯托夫"] = {container = "羅斯托夫州", wp = "Rostov-on-Don"}, ["克拉斯諾達爾市"] = {container = {key = "克拉斯諾達爾邊疆區", placetype = "krai"}, wp = "Krasnodar"}, ["薩馬拉市"] = {container = "薩馬拉州", wp = "Samara"}, ["克拉斯諾亞爾斯克市"] = {container = {key = "克拉斯諾亞爾斯克邊疆區", placetype = "krai"}, wp = "Krasnoyarsk"}, ["烏法"] = {container = {key = "巴什科爾托斯坦共和國", placetype = "republic"}, wp = "Ufa"}, ["薩拉托夫市"] = {container = "薩拉托夫州", wp = "Saratov"}, ["鄂木斯克市"] = {container = "鄂木斯克州", wp = "Omsk"}, ["沃羅涅日市"] = {container = "沃羅涅日州", wp = "Voronezh"}, ["伏爾加格勒市"] = {container = "伏爾加格勒州", wp = "Volgograd"}, ["彼爾姆市"] = {container = {key = "彼爾姆邊疆區", placetype = "krai"}, wp = "Perm, Russia"}, } export.russia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "oblast"), default_container = "俄羅斯", default_placetype = "city", default_is_city = true, data = export.russia_cities, } export.saudi_arabia_cities = { ["利雅得"] = {container = "利雅得省", wp = "Riyadh"}, ["吉達"] = {container = "麥加省", wp = "Jeddah"}, ["達曼"] = {container = "東部省(沙特)", wp = "Dammam"}, ["麥加"] = {container = "麥加省", wp = "Mecca"}, ["麥地那"] = {container = "麥地那省", wp = "Medina"}, ["霍夫夫"] = {container = "東部省(沙特)", wp = "Hofuf"}, ["哈米斯穆沙伊特"] = {container = "阿西爾省", wp = "Khamis Mushait"}, } export.saudi_arabia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "沙烏地阿拉伯", default_placetype = "city", default_is_city = true, data = export.saudi_arabia_cities, } export.south_korea_cities = { ["首爾"] = {wp = "Seoul"}, ["釜山"] = {wp = "Busan"}, ["仁川"] = {wp = "Incheon"}, ["大邱"] = {wp = "Daegu"}, ["大田"] = {wp = "Daejeon"}, ["光州"] = {wp = "Gwangju"}, ["蔚山"] = {wp = "Ulsan"}, } export.south_korea_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "南韓", default_placetype = "city", default_is_city = true, data = export.south_korea_cities, } export.spain_cities = { ["馬德里"] = {container = "馬德里自治區", wp = "Madrid"}, ["巴塞羅那"] = {container = "加泰羅尼亞", wp = "Barcelona"}, ["瓦倫西亞"] = {container = "巴倫西亞", wp = "Valencia"}, ["塞維利亞"] = {container = "安達盧西亞", wp = "Seville"}, ["畢爾包"] = {container = "巴斯克", wp = "Bilbao"}, } export.spain_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "autonomous community"), default_container = "西班牙", default_placetype = "city", default_is_city = true, data = export.spain_cities, } export.united_kingdom_cities = { ["倫敦"] = {container = {key = "大倫敦", placetype = "county"}, wp = "London"}, ["曼徹斯特"] = {container = {key = "大曼徹斯特", placetype = "county"}, wp = "Manchester"}, ["伯明翰"] = {container = {key = "西密德蘭", placetype = "county"}, wp = "Birmingham"}, ["利物浦"] = {container = {key = "默西賽德郡", placetype = "county"}, wp = "Liverpool"}, ["格拉斯哥"] = {container = {key = "Glasgow市", placetype = "council area"}, wp = "Glasgow"}, ["利茲"] = {container = {key = "西約克郡", placetype = "county"}, wp = "Leeds"}, ["布里斯托"] = {container = {key = "英格蘭", placetype = "constituent country"}, wp = "Bristol"}, ["卡地夫"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Cardiff"}, ["愛丁堡"] = {container = {key = "Edinburgh市", placetype = "council area"}, wp = "Edinburgh"}, ["斯旺西"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Swansea"}, ["紐波特"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Newport, Wales"}, } export.united_kingdom_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "county"), default_container = "英國", default_placetype = "city", default_is_city = true, data = export.united_kingdom_cities, } export.united_states_cities = { ["紐約市"] = {container = "紐約", wp = "New York City"}, ["洛杉磯"] = {container = "加利福尼亞", wp = "Los Angeles"}, ["芝加哥"] = {container = "伊利諾伊", wp = "Chicago"}, ["華盛頓特區"] = {wp = "Washington, D.C."}, ["巴爾的摩"] = {container = "馬里蘭", wp = "Baltimore"}, ["聖荷西"] = {container = "加利福尼亞", wp = "San Jose, California"}, ["舊金山"] = {container = "加利福尼亞", wp = "San Francisco"}, ["波士頓"] = {container = "麻薩諸塞", wp = "Boston"}, ["達拉斯"] = {container = "德克薩斯", wp = "Dallas"}, ["費城"] = {container = "賓夕法尼亞", wp = "Philadelphia"}, ["休士頓"] = {container = "德克薩斯", wp = "Houston"}, ["邁阿密"] = {container = "佛羅里達", wp = "Miami"}, ["亞特蘭大"] = {container = "喬治亞", wp = "Atlanta"}, ["底特律"] = {container = "密西根", wp = "Detroit"}, ["鳳凰城"] = {container = "亞利桑那", wp = "Phoenix"}, ["西雅圖"] = {container = "華盛頓州", wp = "Seattle"}, ["明尼阿波利斯"] = {container = "明尼蘇達", wp = "Minneapolis"}, ["克里夫蘭"] = {container = "俄亥俄", wp = "Cleveland"}, ["丹佛"] = {container = "科羅拉多", wp = "Denver"}, ["聖地牙哥(美國)"] = {container = "加利福尼亞", wp = "San Diego"}, ["波特蘭(俄勒岡)"] = {container = "俄勒岡", wp = "Portland"}, ["聖路易斯"] = {container = "密蘇里", wp = "St. Louis"}, ["夏洛特"] = {container = "北卡羅來納", wp = "Charlotte"}, ["薩克拉門托"] = {container = "加利福尼亞", wp = "Sacramento"}, ["匹茲堡"] = {container = "賓夕法尼亞", wp = "Pittsburgh"}, ["鹽湖城"] = {container = "猶他", wp = "Salt Lake City"}, ["聖安東尼奧"] = {container = "德克薩斯", wp = "San Antonio"}, ["哥倫布"] = {container = "俄亥俄", wp = "Columbus"}, ["堪薩斯城"] = {container = "密蘇里", wp = "Kansas City metropolitan area"}, ["印第安納波利斯"] = {container = "印第安納", wp = "Indianapolis"}, ["拉斯維加斯"] = {container = "內華達", wp = "Las Vegas"}, ["辛辛那提"] = {container = "俄亥俄", wp = "Cincinnati"}, ["奧斯汀"] = {container = "德克薩斯", wp = "Austin"}, ["密爾沃基"] = {container = "威斯康辛", wp = "Milwaukee"}, ["羅利"] = {container = "北卡羅來納", wp = "Raleigh"}, ["納什維爾"] = {container = "田納西", wp = "Nashville"}, ["傑克遜維爾"] = {container = "佛羅里達", wp = "Jacksonville"}, ["新奧爾良"] = {container = "路易斯安那", wp = "New Orleans"}, ["路易斯維爾"] = {container = "肯塔基", wp = "Louisville"}, ["奧克拉荷馬城"] = {container = "奧克拉荷馬", wp = "Oklahoma City"}, ["孟菲斯"] = {container = "田納西", wp = "Memphis"}, ["伯明翰(美國)"] = {container = "阿拉巴馬", wp = "Birmingham, Alabama"}, ["弗雷斯諾"] = {container = "加利福尼亞", wp = "Fresno"}, ["里奇蒙"] = {container = "弗吉尼亞", wp = "Richmond"}, ["水牛城"] = {container = "紐約", wp = "Buffalo"}, ["艾爾帕索"] = {container = "德克薩斯", wp = "El Paso"}, ["阿爾伯克基"] = {container = "新墨西哥", wp = "Albuquerque"}, ["塔森"] = {container = "亞利桑那", wp = "Tucson"}, ["科羅拉多斯普林斯"] = {container = "科羅拉多", wp = "Colorado Springs"}, ["奧馬哈"] = {container = "內布拉斯加", wp = "Omaha"}, ["塔爾薩"] = {container = "奧克拉荷馬", wp = "Tulsa"}, } export.united_states_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "美國", default_placetype = "city", default_is_city = true, data = export.united_states_cities, } export.vietnam_cities = { ["胡志明市"] = {wp = "Ho Chi Minh City"}, ["西貢"] = {alias_of = "胡志明市"}, ["河內"] = {wp = "Hanoi"}, ["峴港"] = {wp = "Da Nang"}, ["海防"] = {wp = "Haiphong"}, ["邊和"] = {container = "同奈省", wp = "Biên Hòa", placetype = "city"}, ["芹苴"] = {wp = "Cần Thơ"}, ["順化"] = {wp = "Huế"}, } export.vietnam_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "越南", default_placetype = {"municipality", "city"}, default_is_city = true, data = export.vietnam_cities, } ----------------------------------------------------------------------------------- -- locations list -- ----------------------------------------------------------------------------------- export.locations = { export.continents_group, export.countries_group, export.country_like_entities_group, export.former_countries_group, export.united_states_group, export.united_kingdom_group, export.scotland_group, export.england_group, export.northern_ireland_group, export.ireland_group, export.wales_group, export.china_group, export.china_prefecture_level_cities_group, export.taiwan_group, export.canada_group, export.australia_group, export.india_group, export.japan_group, export.brazil_group, export.france_group, export.france_departments_group, export.germany_group, export.italy_group, export.spain_group, export.austria_group, export.bangladesh_group, export.egypt_group, export.finland_group, export.greece_group, export.indonesia_group, export.lebanon_group, export.malaysia_group, export.malta_group, export.mexico_group, export.moldova_group, export.morocco_group, export.netherlands_group, export.new_zealand_group, export.norway_group, export.pakistan_group, export.philippines_group, export.poland_group, export.portugal_group, export.romania_group, export.bulgaria_group, export.iran_group, export.russia_group, export.saudi_arabia_group, export.south_africa_group, export.laos_group, export.north_korea_group, export.south_korea_group, export.thailand_group, export.turkey_group, export.ukraine_group, export.vietnam_group, export.nigeria_group, export.new_york_boroughs_group, export.australia_cities_group, export.brazil_cities_group, export.canada_cities_group, export.france_cities_group, export.germany_cities_group, export.india_cities_group, export.indonesia_cities_group, export.italy_cities_group, export.japan_cities_group, export.mexico_cities_group, export.nigeria_cities_group, export.pakistan_cities_group, export.philippines_cities_group, export.russia_cities_group, export.saudi_arabia_cities_group, export.south_korea_cities_group, export.spain_cities_group, export.united_kingdom_cities_group, export.united_states_cities_group, export.vietnam_cities_group, export.misc_cities_group, } return export lntnb98t9bg7sp9pu5kns5dlrb0lku8 9759415 9759408 2026-05-14T14:41:36Z TongcyDai 53191 9759415 Scribunto text/plain local export = {} export.force_cat = false local m_table = require("Module:table") local insert = table.insert local concat = table.concat local dump = mw.dumpObject local unpack = unpack or table.unpack --[==[ Chinese Wiktionary localization of [[Module:place/locations]]. All canonical location keys are in Chinese, matching what editors write in holonym parameters (e.g. {{place|zh|城市|s/中央邦|c/印度}}). English Wikipedia article names are stored in the `wp` field for cross-reference. The `the`, `british_spelling` and English-suffix-detection fields from enwikt are omitted as they are not applicable in Chinese. The helper functions (process_error through construct_linked_placename) are kept intact from enwikt's Module:place/locations to maintain API compatibility with Module:place/placetypes. ]==] ----------------------------------------------------------------------------------- -- Helper functions -- ----------------------------------------------------------------------------------- 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 function export.internal_error(fmt, ...) export.process_error("Internal error: " .. fmt, ...) end local internal_error = export.internal_error 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 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 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 == "country" or defcon.placetype == "constituent country") then return placename .. ", " .. defcon.key else return placename end end end 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 = "country"} 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", "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 spec.is_city = value_with_default(spec.is_city, group.default_placetype == "city") spec.initialized = true end 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 local placetype = spec.placetype or resolved_spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s", key) 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 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 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 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 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 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 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 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) -- Chinese has no articles; `the` field is unused but kept for API compatibility. return linked_placename end ----------------------------------------------------------------------------------- -- Local data helper factories -- ----------------------------------------------------------------------------------- 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 _, pat in ipairs(container_patterns) do local nsubs full_placename, nsubs = full_placename:gsub(pat, "") if nsubs > 0 then break end end end local elliptical_placename = full_placename if divtype_patterns then for _, pat in ipairs(divtype_patterns) do local nsubs elliptical_placename, nsubs = elliptical_placename:gsub(pat, "") if nsubs > 0 then break end end end return full_placename, elliptical_placename end end 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 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 -- Canonicalize a continent container key (string) to canonical container form. 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_container`", key) end ----------------------------------------------------------------------------------- -- Top-level tables -- ----------------------------------------------------------------------------------- export.continents = { ["地球"] = {placetype = "planet", addl_parents = {"nature"}, fulldesc = "=the planet [[Earth]] and the features found on it", wp = "Earth"}, ["非洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Africa"}, ["美洲"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Americas"}, ["北美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "North America"}, ["加勒比地區"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Caribbean"}, ["中美洲"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Central America"}, ["南美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "South America"}, ["南極洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, fulldesc = "=the territory of [[Antarctica]]", wp = "Antarctica"}, ["歐亞大陸"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Eurasia"}, ["亞洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Asia"}, ["中東"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Middle East"}, ["東南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Southeast Asia"}, ["南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "South Asia"}, ["東亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "East Asia"}, ["中亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Central Asia"}, ["歐洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Europe"}, ["西歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Western Europe"}, ["東歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Eastern Europe"}, ["北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Northern Europe"}, ["南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Southern Europe"}, ["中歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Central Europe"}, ["大洋洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Oceania"}, ["美拉尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Melanesia"}, ["密克羅尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Micronesia"}, ["玻里尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Polynesia"}, } export.continents_group = { default_overriding_bare_label_parents = {}, default_divs = {{type = "countries", prep = "in"}}, 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, default_no_check_holonym_mismatch = true, data = export.continents, } ----------------------------------------------------------------------------------- -- Countries -- ----------------------------------------------------------------------------------- export.countries = { -- Africa ["阿爾及利亞"] = {container = "非洲", divs = {"provinces", "communes", "districts"}, wp = "阿爾及利亞"}, ["安哥拉"] = {container = "非洲", divs = {"provinces", "municipalities"}, wp = "安哥拉"}, ["貝寧"] = {container = "非洲", wp = "貝寧"}, ["貝南"] = {alias_of = "貝寧"}, ["博茨瓦納"] = {container = "非洲", wp = "博茨瓦納"}, ["波札那"] = {alias_of = "博茨瓦納"}, ["布基納法索"] = {container = "非洲", wp = "布基納法索"}, ["布吉納法索"] = {alias_of = "布基納法索"}, ["布隆迪"] = {container = "非洲", wp = "布隆迪"}, ["蒲隆地"] = {alias_of = "布隆迪"}, ["佛得角"] = {container = "非洲", wp = "佛得角"}, ["維德角"] = {alias_of = "佛得角"}, ["中非共和國"] = {container = "非洲", wp = "中非共和國"}, ["乍得"] = {container = "非洲", wp = "乍得"}, ["查德"] = {alias_of = "乍得"}, ["科摩羅"] = {container = "非洲", wp = "科摩羅"}, ["葛摩"] = {alias_of = "科摩羅"}, ["剛果共和國"] = {container = "非洲", wp = "剛果共和國"}, ["剛果(布)"] = {alias_of = "剛果共和國"}, ["剛果民主共和國"] = {container = "非洲", divs = {"provinces"}, wp = "剛果民主共和國"}, ["剛果(金)"] = {alias_of = "剛果民主共和國"}, ["吉布提"] = {container = "非洲", wp = "吉布提"}, ["吉布地"] = {alias_of = "吉布提"}, ["埃及"] = {container = "非洲", divs = {"governorates"}, wp = "埃及"}, ["赤道幾內亞"] = {container = "非洲", wp = "赤道幾內亞"}, ["厄立特里亞"] = {container = "非洲", wp = "厄立特里亞"}, ["厄利垂亞"] = {alias_of = "厄立特里亞"}, ["斯威士蘭"] = {container = "非洲", wp = "斯威士蘭"}, ["史瓦帝尼"] = {alias_of = "斯威士蘭"}, ["埃塞俄比亞"] = {container = "非洲", divs = {"regions"}, wp = "埃塞俄比亞"}, ["衣索比亞"] = {alias_of = "埃塞俄比亞"}, ["加蓬"] = {container = "非洲", wp = "加蓬"}, ["加彭"] = {alias_of = "加蓬"}, ["岡比亞"] = {container = "非洲", wp = "岡比亞"}, ["甘比亞"] = {alias_of = "岡比亞"}, ["加納"] = {container = "非洲", wp = "加納"}, ["迦納"] = {alias_of = "加納"}, ["幾內亞"] = {container = "非洲", wp = "幾內亞"}, ["幾內亞比紹"] = {container = "非洲", wp = "幾內亞比紹"}, ["幾內亞比索"] = {alias_of = "幾內亞比紹"}, ["科特迪瓦"] = {container = "非洲", wp = "科特迪瓦"}, ["象牙海岸"] = {alias_of = "科特迪瓦"}, ["肯尼亞"] = {container = "非洲", divs = {"counties"}, wp = "肯尼亞"}, ["肯亞"] = {alias_of = "肯尼亞"}, ["萊索托"] = {container = "非洲", wp = "萊索托"}, ["賴索托"] = {alias_of = "萊索托"}, ["利比里亞"] = {container = "非洲", wp = "利比里亞"}, ["賴比瑞亞"] = {alias_of = "利比里亞"}, ["利比亞"] = {container = "非洲", wp = "利比亞"}, ["馬達加斯加"] = {container = "非洲", wp = "馬達加斯加"}, ["馬拉維"] = {container = "非洲", wp = "馬拉維"}, ["馬拉威"] = {alias_of = "馬拉維"}, ["馬里"] = {container = "非洲", wp = "馬里"}, ["馬利"] = {alias_of = "馬里"}, ["毛里塔尼亞"] = {container = "非洲", wp = "毛里塔尼亞"}, ["茅利塔尼亞"] = {alias_of = "毛里塔尼亞"}, ["毛里求斯"] = {container = "非洲", wp = "毛里求斯"}, ["模里西斯"] = {alias_of = "毛里求斯"}, ["摩洛哥"] = {container = "非洲", wp = "摩洛哥"}, ["莫桑比克"] = {container = "非洲", wp = "莫桑比克"}, ["莫三比克"] = {alias_of = "莫桑比克"}, ["納米比亞"] = {container = "非洲", wp = "納米比亞"}, ["尼日爾"] = {container = "非洲", wp = "尼日爾"}, ["尼日"] = {alias_of = "尼日爾"}, ["尼日利亞"] = {container = "非洲", divs = { {type = "states", cat_as = "states and FCT"}, "local government areas", }, wp = "尼日利亞"}, ["奈及利亞"] = {alias_of = "尼日利亞"}, ["盧旺達"] = {container = "非洲", wp = "盧旺達"}, ["盧安達"] = {alias_of = "盧旺達"}, ["聖多美和普林西比"] = {container = "非洲", wp = "聖多美和普林西比"}, ["塞內加爾"] = {container = "非洲", wp = "塞內加爾"}, ["塞舌爾"] = {container = "非洲", wp = "塞舌爾"}, ["塞席爾"] = {alias_of = "塞舌爾"}, ["塞拉利昂"] = {container = "非洲", wp = "塞拉利昂"}, ["獅子山"] = {alias_of = "塞拉利昂"}, ["索馬里"] = {container = "非洲", wp = "索馬里"}, ["索馬利亞"] = {alias_of = "索馬里"}, ["南非"] = {container = "非洲", divs = {"provinces"}, wp = "南非"}, ["南蘇丹"] = {container = "非洲", wp = "南蘇丹"}, ["蘇丹"] = {container = "非洲", wp = "蘇丹"}, ["坦桑尼亞"] = {container = "非洲", wp = "坦桑尼亞"}, ["坦尚尼亞"] = {alias_of = "坦桑尼亞"}, ["多哥"] = {container = "非洲", wp = "多哥"}, ["突尼斯"] = {container = "非洲", wp = "突尼斯"}, ["突尼西亞"] = {alias_of = "突尼斯"}, ["烏干達"] = {container = "非洲", wp = "烏干達"}, ["贊比亞"] = {container = "非洲", wp = "贊比亞"}, ["尚比亞"] = {alias_of = "贊比亞"}, ["津巴布韋"] = {container = "非洲", wp = "津巴布韋"}, ["辛巴威"] = {alias_of = "津巴布韋"}, -- Asia ["阿富汗"] = {container = "亞洲", wp = "阿富汗"}, ["亞美尼亞"] = {container = {"歐洲", "亞洲"}, wp = "亞美尼亞"}, ["阿塞拜疆"] = {container = {"歐洲", "亞洲"}, wp = "阿塞拜疆"}, ["亞塞拜然"] = {alias_of = "阿塞拜疆"}, ["巴林"] = {container = "亞洲", wp = "巴林"}, ["孟加拉國"] = {container = "亞洲", divs = {"divisions", "districts"}, wp = "孟加拉國"}, ["孟加拉"] = {alias_of = "孟加拉國"}, ["不丹"] = {container = "亞洲", wp = "不丹"}, ["文萊"] = {container = "亞洲", wp = "文萊"}, ["汶萊"] = {alias_of = "文萊"}, ["柬埔寨"] = {container = "亞洲", wp = "柬埔寨"}, ["中國"] = {container = "亞洲", divs = { {type = "provinces", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "autonomous regions", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "direct-administered municipalities", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "special administrative regions", cat_as = "special administrative regions"}, }, wp = "中國"}, ["東帝汶"] = {container = "亞洲", wp = "東帝汶"}, ["帝汶島"] = {alias_of = "東帝汶"}, ["印度"] = {container = "亞洲", divs = { {type = "states", cat_as = "states and union territories"}, {type = "union territories", cat_as = "states and union territories"}, }, wp = "印度"}, ["印度尼西亞"] = {container = "亞洲", divs = {"provinces"}, wp = "印度尼西亞"}, ["印尼"] = {alias_of = "印度尼西亞"}, ["伊朗"] = {container = "亞洲", wp = "伊朗"}, ["伊拉克"] = {container = "亞洲", wp = "伊拉克"}, ["以色列"] = {container = "亞洲", wp = "以色列"}, ["日本"] = {container = "亞洲", divs = {"prefectures"}, wp = "日本"}, ["約旦"] = {container = "亞洲", wp = "約旦"}, ["哈薩克斯坦"] = {container = {"歐洲", "亞洲"}, wp = "哈薩克斯坦"}, ["哈薩克"] = {alias_of = "哈薩克斯坦"}, ["朝鮮"] = {container = "亞洲", wp = "朝鮮民主主義人民共和國"}, ["北韓"] = {alias_of = "朝鮮"}, ["韓國"] = {container = "亞洲", divs = {"provinces", "special cities", "metropolitan cities"}, wp = "韓國"}, ["南韓"] = {alias_of = "韓國"}, ["科威特"] = {container = "亞洲", wp = "科威特"}, ["吉爾吉斯斯坦"] = {container = "亞洲", wp = "吉爾吉斯斯坦"}, ["吉爾吉斯"] = {alias_of = "吉爾吉斯斯坦"}, ["老撾"] = {container = "亞洲", wp = "老撾"}, ["寮國"] = {alias_of = "老撾"}, ["黎巴嫩"] = {container = "亞洲", wp = "黎巴嫩"}, ["馬來西亞"] = {container = "亞洲", divs = {"states"}, wp = "馬來西亞"}, ["馬爾代夫"] = {container = "亞洲", wp = "馬爾代夫"}, ["馬爾地夫"] = {alias_of = "馬爾代夫"}, ["蒙古"] = {container = "亞洲", wp = "蒙古"}, ["緬甸"] = {container = "亞洲", wp = "緬甸"}, ["尼泊爾"] = {container = "亞洲", wp = "尼泊爾"}, ["阿曼"] = {container = "亞洲", wp = "阿曼"}, ["巴基斯坦"] = {container = "亞洲", divs = {"provinces"}, wp = "巴基斯坦"}, ["菲律賓"] = {container = "亞洲", divs = {"regions"}, wp = "菲律賓"}, ["卡塔爾"] = {container = "亞洲", wp = "卡塔爾"}, ["卡達"] = {alias_of = "卡塔爾"}, ["俄羅斯"] = {container = {"歐洲", "亞洲"}, divs = {"federal subjects"}, wp = "俄羅斯"}, ["俄國"] = {alias_of = "俄羅斯"}, ["沙特阿拉伯"] = {container = "亞洲", wp = "沙特阿拉伯"}, ["沙烏地阿拉伯"] = {alias_of = "沙特阿拉伯"}, ["新加坡"] = {container = "亞洲", is_city = true, wp = "新加坡"}, ["斯里蘭卡"] = {container = "亞洲", wp = "斯里蘭卡"}, ["敘利亞"] = {container = "亞洲", wp = "敘利亞"}, ["臺灣"] = {container = "亞洲", divs = { "special municipalities", "counties", }, wp = "臺灣"}, ["台灣"] = {alias_of = "臺灣"}, ["塔吉克斯坦"] = {container = "亞洲", wp = "塔吉克斯坦"}, ["塔吉克"] = {alias_of = "塔吉克斯坦"}, ["泰國"] = {container = "亞洲", divs = {"provinces"}, wp = "泰國"}, ["土耳其"] = {container = {"歐洲", "亞洲"}, wp = "土耳其"}, ["土庫曼斯坦"] = {container = "亞洲", wp = "土庫曼斯坦"}, ["土庫曼"] = {alias_of = "土庫曼斯坦"}, ["阿拉伯聯合酋長國"] = {container = "亞洲", wp = "阿拉伯聯合酋長國"}, ["阿拉伯聯合大公國"] = {alias_of = "阿拉伯聯合酋長國"}, ["阿聯酋"] = {alias_of = "阿拉伯聯合酋長國"}, ["烏茲別克斯坦"] = {container = "亞洲", wp = "烏茲別克斯坦"}, ["烏茲別克"] = {alias_of = "烏茲別克斯坦"}, ["越南"] = {container = "亞洲", divs = {"provinces", "municipalities"}, wp = "越南"}, ["也門"] = {container = "亞洲", wp = "也門"}, ["葉門"] = {alias_of = "也門"}, -- Europe ["阿爾巴尼亞"] = {container = "歐洲", wp = "阿爾巴尼亞"}, ["安道爾"] = {container = "歐洲", wp = "安道爾"}, ["奧地利"] = {container = "歐洲", divs = {"states"}, wp = "奧地利"}, ["白俄羅斯"] = {container = "歐洲", divs = {"regions"}, wp = "白俄羅斯"}, ["比利時"] = {container = "歐洲", divs = {"regions", "provinces"}, wp = "比利時"}, ["波斯尼亞和黑塞哥維那"] = {container = "歐洲", wp = "波斯尼亞和黑塞哥維那"}, ["波士尼亞與赫塞哥維納"] = {alias_of = "波斯尼亞和黑塞哥維那"}, ["保加利亞"] = {container = "歐洲", wp = "保加利亞"}, ["克羅地亞"] = {container = "歐洲", wp = "克羅地亞"}, ["克羅埃西亞"] = {alias_of = "克羅地亞"}, ["塞浦路斯"] = {container = "亞洲", addl_parents = {"歐洲"}, wp = "塞浦路斯"}, ["賽普勒斯"] = {alias_of = "塞浦路斯"}, ["捷克"] = {container = "歐洲", wp = "捷克"}, ["丹麥"] = {container = "歐洲", wp = "丹麥"}, ["愛沙尼亞"] = {container = "歐洲", wp = "愛沙尼亞"}, ["芬蘭"] = {container = "歐洲", divs = {"regions"}, wp = "芬蘭"}, ["法國"] = {container = "歐洲", divs = { {type = "regions", cat_as = "metropolitan regions"}, "departments", "communes", }, wp = "法國"}, ["格魯吉亞"] = {container = {"歐洲", "亞洲"}, wp = "格魯吉亞"}, ["喬治亞"] = {alias_of = "格魯吉亞"}, ["德國"] = {container = "歐洲", divs = {"states"}, wp = "德國"}, ["希臘"] = {container = "歐洲", divs = {"regions"}, wp = "希臘"}, ["匈牙利"] = {container = "歐洲", wp = "匈牙利"}, ["冰島"] = {container = "歐洲", wp = "冰島"}, ["愛爾蘭"] = {container = "歐洲", divs = {"provinces", "counties"}, wp = "愛爾蘭"}, ["意大利"] = {container = "歐洲", divs = {"regions"}, wp = "意大利"}, ["義大利"] = {alias_of = "意大利"}, ["科索沃"] = {container = "歐洲", wp = "科索沃"}, ["拉脫維亞"] = {container = "歐洲", wp = "拉脫維亞"}, ["拉托維亞"] = {alias_of = "拉脫維亞"}, ["列支敦士登"] = {container = "歐洲", wp = "列支敦士登"}, ["列支敦斯登"] = {alias_of = "列支敦士登"}, ["立陶宛"] = {container = "歐洲", wp = "立陶宛"}, ["盧森堡"] = {container = "歐洲", wp = "盧森堡"}, ["北馬其頓"] = {container = "歐洲", wp = "北馬其頓"}, ["馬耳他"] = {container = "歐洲", wp = "馬耳他"}, ["馬爾他"] = {alias_of = "馬耳他"}, ["摩爾多瓦"] = {container = "歐洲", wp = "摩爾多瓦"}, ["摩納哥"] = {container = "歐洲", is_city = true, wp = "摩納哥"}, ["黑山"] = {container = "歐洲", wp = "黑山"}, ["蒙特內哥羅"] = {alias_of = "黑山"}, ["荷蘭"] = {container = "歐洲", divs = {"provinces"}, wp = "荷蘭"}, ["尼德蘭"] = {alias_of = "荷蘭"}, ["挪威"] = {container = "歐洲", wp = "挪威"}, ["波蘭"] = {container = "歐洲", divs = {"voivodeships"}, wp = "波蘭"}, ["葡萄牙"] = {container = "歐洲", divs = {"districts"}, wp = "葡萄牙"}, ["羅馬尼亞"] = {container = "歐洲", wp = "羅馬尼亞"}, ["聖馬力諾"] = {container = "歐洲", wp = "聖馬力諾"}, ["聖馬利諾"] = {alias_of = "聖馬力諾"}, ["塞爾維亞"] = {container = "歐洲", wp = "塞爾維亞"}, ["斯洛伐克"] = {container = "歐洲", wp = "斯洛伐克"}, ["斯洛文尼亞"] = {container = "歐洲", wp = "斯洛文尼亞"}, ["斯洛維尼亞"] = {alias_of = "斯洛文尼亞"}, ["西班牙"] = {container = "歐洲", divs = {"autonomous communities"}, wp = "西班牙"}, ["瑞典"] = {container = "歐洲", wp = "瑞典"}, ["瑞士"] = {container = "歐洲", divs = {"cantons"}, wp = "瑞士"}, ["烏克蘭"] = {container = "歐洲", divs = {"oblasts"}, wp = "烏克蘭"}, ["英國"] = {container = "歐洲", divs = { {type = "constituent countries", cat_as = "constituent countries"}, }, wp = "英國"}, -- North America ["加拿大"] = {container = "北美洲", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, }, wp = "加拿大"}, ["墨西哥"] = {container = "北美洲", divs = {"states"}, wp = "墨西哥"}, ["美國"] = {container = "北美洲", divs = {"states"}, wp = "美國"}, -- Central America ["伯利茲"] = {container = "中美洲", wp = "伯利茲"}, ["貝里斯"] = {alias_of = "伯利茲"}, ["哥斯達黎加"] = {container = "中美洲", wp = "哥斯達黎加"}, ["哥斯大黎加"] = {alias_of = "哥斯達黎加"}, ["薩爾瓦多"] = {container = "中美洲", wp = "薩爾瓦多"}, ["危地馬拉"] = {container = "中美洲", wp = "危地馬拉"}, ["瓜地馬拉"] = {alias_of = "危地馬拉"}, ["洪都拉斯"] = {container = "中美洲", wp = "洪都拉斯"}, ["宏都拉斯"] = {alias_of = "洪都拉斯"}, ["尼加拉瓜"] = {container = "中美洲", wp = "尼加拉瓜"}, ["巴拿馬"] = {container = "中美洲", wp = "巴拿馬"}, -- Caribbean ["安提瓜和巴布達"] = {container = "加勒比地區", wp = "安提瓜和巴布達"}, ["安地卡及巴布達"] = {alias_of = "安提瓜和巴布達"}, ["巴哈馬"] = {container = "加勒比地區", wp = "巴哈馬"}, ["巴巴多斯"] = {container = "加勒比地區", wp = "巴巴多斯"}, ["巴貝多"] = {alias_of = "巴巴多斯"}, ["古巴"] = {container = "加勒比地區", wp = "古巴"}, ["多米尼克"] = {container = "加勒比地區", wp = "多米尼克"}, ["多米尼加共和國"] = {container = "加勒比地區", wp = "多米尼加"}, ["多明尼加共和國"] = {alias_of = "多米尼加共和國"}, ["格林納達"] = {container = "加勒比地區", wp = "格林納達"}, ["格瑞那達"] = {alias_of = "格林納達"}, ["海地"] = {container = "加勒比地區", wp = "海地"}, ["牙買加"] = {container = "加勒比地區", wp = "牙買加"}, ["聖基茨和尼維斯"] = {container = "加勒比地區", wp = "聖基茨和尼維斯"}, ["聖克里斯多福及尼維斯"] = {alias_of = "聖基茨和尼維斯"}, ["聖盧西亞"] = {container = "加勒比地區", wp = "聖盧西亞"}, ["聖露西亞"] = {alias_of = "聖盧西亞"}, ["聖文森特和格林納丁斯"] = {container = "加勒比地區", wp = "聖文森特和格林納丁斯"}, ["聖文森及格瑞那丁"] = {alias_of = "聖文森特和格林納丁斯"}, ["特立尼達和多巴哥"] = {container = "加勒比地區", wp = "特立尼達和多巴哥"}, ["千里達及托巴哥"] = {alias_of = "特立尼達和多巴哥"}, -- South America ["阿根廷"] = {container = "南美洲", divs = {"provinces"}, wp = "阿根廷"}, ["玻利維亞"] = {container = "南美洲", wp = "玻利維亞"}, ["巴西"] = {container = "南美洲", divs = {"states"}, wp = "巴西"}, ["智利"] = {container = "南美洲", wp = "智利"}, ["哥倫比亞"] = {container = "南美洲", wp = "哥倫比亞"}, ["厄瓜多爾"] = {container = "南美洲", wp = "厄瓜多爾"}, ["厄瓜多"] = {alias_of = "厄瓜多爾"}, ["圭亞那"] = {container = "南美洲", wp = "圭亞那"}, ["蓋亞那"] = {alias_of = "圭亞那"}, ["巴拉圭"] = {container = "南美洲", wp = "巴拉圭"}, ["秘魯"] = {container = "南美洲", wp = "秘魯"}, ["蘇里南"] = {container = "南美洲", wp = "蘇里南"}, ["蘇利南"] = {alias_of = "蘇里南"}, ["烏拉圭"] = {container = "南美洲", wp = "烏拉圭"}, ["委內瑞拉"] = {container = "南美洲", wp = "委內瑞拉"}, -- Oceania ["澳大利亞"] = {container = "大洋洲", divs = { {type = "states", cat_as = "states and territories"}, {type = "territories", cat_as = "states and territories"}, }, wp = "澳大利亞"}, ["澳洲"] = {alias_of = "澳大利亞"}, ["斐濟"] = {container = "大洋洲", wp = "斐濟"}, ["基里巴斯"] = {container = "大洋洲", wp = "基里巴斯"}, ["吉里巴斯"] = {alias_of = "基里巴斯"}, ["馬紹爾群島"] = {container = "大洋洲", wp = "馬紹爾群島"}, ["密克羅尼西亞聯邦"] = {container = "大洋洲", wp = "密克羅尼西亞聯邦"}, ["瑙魯"] = {container = "大洋洲", wp = "瑙魯"}, ["諾魯"] = {alias_of = "瑙魯"}, ["新西蘭"] = {container = "大洋洲", wp = "新西蘭"}, ["紐西蘭"] = {alias_of = "新西蘭"}, ["帕勞"] = {container = "大洋洲", wp = "帕勞"}, ["帛琉"] = {alias_of = "帕勞"}, ["巴布亞新幾內亞"] = {container = "大洋洲", wp = "巴布亞新幾內亞"}, ["巴布亞紐幾內亞"] = {alias_of = "巴布亞新幾內亞"}, ["薩摩亞"] = {container = "大洋洲", wp = "薩摩亞"}, ["所羅門群島"] = {container = "大洋洲", wp = "所羅門群島"}, ["湯加"] = {container = "大洋洲", wp = "湯加"}, ["東加"] = {alias_of = "湯加"}, ["圖瓦盧"] = {container = "大洋洲", wp = "圖瓦盧"}, ["吐瓦魯"] = {alias_of = "圖瓦盧"}, ["瓦努阿圖"] = {container = "大洋洲", wp = "瓦努阿圖"}, ["萬那杜"] = {alias_of = "瓦努阿圖"}, } export.countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"+++", "countries"}, default_placetype = "country", default_no_container_cat = true, default_no_container_parent = true, default_no_auto_augment_container = true, placename_to_key = false, data = export.countries, } ----------------------------------------------------------------------------------- -- Country-like entities -- ----------------------------------------------------------------------------------- export.country_like_entities = { -- Special administrative regions of China ["香港"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, divs = {"districts"}, wp = "Hong Kong", }, ["澳門"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, wp = "Macau", }, -- Western Sahara ["西撒哈拉"] = { placetype = {"territory", "country"}, container = "非洲", wp = "Western Sahara", }, -- Kosovo (disputed) ["科索沃(部分承認)"] = {alias_of = "科索沃"}, -- Palestinian territories ["巴勒斯坦"] = { placetype = {"country", "territory"}, container = "亞洲", wp = "State of Palestine", }, -- Key overseas territories ["波多黎各"] = { placetype = {"commonwealth", "territory"}, container = "美國", addl_parents = {"加勒比地區"}, wp = "Puerto Rico", }, ["關島"] = { placetype = {"territory"}, container = "美國", addl_parents = {"密克羅尼西亞"}, wp = "Guam", }, ["新喀里多尼亞"] = { placetype = {"territory"}, container = "法國", addl_parents = {"大洋洲"}, wp = "New Caledonia", }, ["法屬圭亞那"] = { placetype = {"territory"}, container = "法國", addl_parents = {"南美洲"}, wp = "French Guiana", }, ["留尼旺"] = { placetype = {"territory"}, container = "法國", addl_parents = {"非洲"}, wp = "Réunion", }, ["馬丁尼克"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Martinique", }, ["瓜德羅普"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Guadeloupe", }, ["格陵蘭"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"北美洲"}, wp = "Greenland", }, ["法羅群島"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"歐洲"}, wp = "Faroe Islands", }, } export.country_like_entities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "country"), default_placetype = "territory", placename_to_key = false, data = export.country_like_entities, } ----------------------------------------------------------------------------------- -- Former countries -- ----------------------------------------------------------------------------------- export.former_countries = { ["蘇聯"] = { placetype = {"country"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Soviet Union", }, ["南斯拉夫"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Yugoslavia", }, ["捷克斯洛伐克"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Czechoslovakia", }, ["東德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "East Germany", }, ["西德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "West Germany", }, ["奧匈帝國"] = { placetype = {"empire"}, container = "歐洲", is_former_place = true, wp = "Austria-Hungary", }, ["鄂圖曼帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Ottoman Empire", }, ["奧斯曼帝國"] = {alias_of = "鄂圖曼帝國"}, ["羅馬帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲", "非洲"}, is_former_place = true, wp = "Roman Empire", }, ["大英帝國"] = { placetype = {"empire"}, is_former_place = true, wp = "British Empire", }, ["普魯士"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Prussia", }, } export.former_countries_group = { canonicalize_key_container = canonicalize_continent_container, default_placetype = "country", default_is_former_place = true, placename_to_key = false, data = export.former_countries, } ----------------------------------------------------------------------------------- -- United States states -- ----------------------------------------------------------------------------------- export.united_states_states = { ["阿拉巴馬"] = {wp = "Alabama"}, ["阿拉斯加"] = {wp = "Alaska"}, ["亞利桑那"] = {wp = "Arizona"}, ["阿肯色"] = {wp = "Arkansas"}, ["加利福尼亞"] = {wp = "California"}, ["加州"] = {alias_of = "加利福尼亞"}, ["科羅拉多"] = {wp = "Colorado"}, ["康乃狄克"] = {wp = "Connecticut"}, ["康涅狄格"] = {alias_of = "康乃狄克"}, ["德拉瓦"] = {wp = "Delaware"}, ["佛羅里達"] = {wp = "Florida"}, ["佛罗里达"] = {alias_of = "佛羅里達"}, ["佐治亞"] = {wp = "Georgia (U.S. state)"}, ["夏威夷"] = {addl_parents = {"玻里尼西亞"}, wp = "Hawaii"}, ["愛達荷"] = {wp = "Idaho"}, ["伊利諾伊"] = {wp = "Illinois"}, ["伊利诺伊"] = {alias_of = "伊利諾伊"}, ["印地安那"] = {wp = "Indiana"}, ["印第安納"] = {alias_of = "印地安那"}, ["愛荷華"] = {wp = "Iowa"}, ["堪薩斯"] = {wp = "Kansas"}, ["肯塔基"] = {wp = "Kentucky"}, ["路易斯安那"] = {wp = "Louisiana"}, ["緬因"] = {wp = "Maine"}, ["馬里蘭"] = {wp = "Maryland"}, ["麻薩諸塞"] = {wp = "Massachusetts"}, ["麻薩诸塞"] = {alias_of = "麻薩諸塞"}, ["密西根"] = {wp = "Michigan"}, ["密歇根"] = {alias_of = "密西根"}, ["明尼蘇達"] = {wp = "Minnesota"}, ["明尼苏达"] = {alias_of = "明尼蘇達"}, ["密西西比"] = {wp = "Mississippi"}, ["密蘇里"] = {wp = "Missouri"}, ["蒙大拿"] = {wp = "Montana"}, ["內布拉斯加"] = {wp = "Nebraska"}, ["內華達"] = {wp = "Nevada"}, ["新罕布什爾"] = {wp = "New Hampshire"}, ["新澤西"] = {wp = "New Jersey"}, ["新泽西"] = {alias_of = "新澤西"}, ["新墨西哥"] = {wp = "New Mexico"}, ["紐約"] = {wp = "New York (state)"}, ["纽约"] = {alias_of = "紐約"}, ["北卡羅來納"] = {wp = "North Carolina"}, ["北达科他"] = {alias_of = "北達科他"}, ["北達科他"] = {wp = "North Dakota"}, ["俄亥俄"] = {wp = "Ohio"}, ["奧克拉荷馬"] = {wp = "Oklahoma"}, ["奧勒岡"] = {wp = "Oregon"}, ["俄勒冈"] = {alias_of = "奧勒岡"}, ["賓夕法尼亞"] = {wp = "Pennsylvania"}, ["宾夕法尼亚"] = {alias_of = "賓夕法尼亞"}, ["羅德島"] = {wp = "Rhode Island"}, ["南卡羅來納"] = {wp = "South Carolina"}, ["南達科他"] = {wp = "South Dakota"}, ["田納西"] = {wp = "Tennessee"}, ["田纳西"] = {alias_of = "田納西"}, ["德克薩斯"] = {wp = "Texas"}, ["德州"] = {alias_of = "德克薩斯"}, ["猶他"] = {wp = "Utah"}, ["佛蒙特"] = {wp = "Vermont"}, ["弗吉尼亞"] = {wp = "Virginia"}, ["弗吉尼亚"] = {alias_of = "弗吉尼亞"}, ["維吉尼亞"] = {alias_of = "弗吉尼亞"}, ["華盛頓州"] = {wp = "Washington (state)"}, ["华盛顿州"] = {alias_of = "華盛頓州"}, ["西維吉尼亞"] = {wp = "West Virginia"}, ["西弗吉尼亞"] = {alias_of = "西維吉尼亞"}, ["威斯康辛"] = {wp = "Wisconsin"}, ["懷俄明"] = {wp = "Wyoming"}, -- Washington D.C. (federal district, treated like a state in holonym context) ["華盛頓特區"] = {placetype = {"federal district", "district"}, wp = "Washington, D.C."}, } export.united_states_group = { placename_to_key = false, default_container = "美國", default_placetype = "state", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, }, data = export.united_states_states, } ----------------------------------------------------------------------------------- -- United Kingdom constituent countries -- ----------------------------------------------------------------------------------- export.united_kingdom_constituent_countries = { ["英格蘭"] = {divs = {"counties", "districts"}, wp = "England"}, ["北愛爾蘭"] = { placetype = {"constituent country", "province", "country"}, divs = {"counties", "districts"}, wp = "Northern Ireland", }, ["蘇格蘭"] = {divs = {{type = "council areas", container_parent_type = false}}, wp = "Scotland"}, ["威爾斯"] = {divs = {"counties"}, wp = "Wales"}, ["威爾士"] = {alias_of = "威爾斯"}, } export.united_kingdom_group = { placename_to_key = false, default_container = "英國", default_placetype = {"constituent country", "country"}, default_no_container_cat = true, data = export.united_kingdom_constituent_countries, } -- Scotland council areas export.scotland_council_areas = { ["Aberdeen市"] = {wp = "Aberdeen"}, ["Aberdeenshire"] = {wp = "Aberdeenshire"}, ["Angus"] = {wp = "Angus, Scotland"}, ["Argyll and Bute"] = {wp = "Argyll and Bute"}, ["Clackmannanshire"] = {wp = "Clackmannanshire"}, ["Dumfries and Galloway"] = {wp = "Dumfries and Galloway"}, ["Dundee市"] = {wp = "Dundee"}, ["East Ayrshire"] = {wp = "East Ayrshire"}, ["East Dunbartonshire"] = {wp = "East Dunbartonshire"}, ["East Lothian"] = {wp = "East Lothian"}, ["East Renfrewshire"] = {wp = "East Renfrewshire"}, ["Edinburgh市"] = {wp = "Edinburgh"}, ["Eilean Siar"] = {wp = "Outer Hebrides"}, ["Falkirk"] = {wp = "Falkirk"}, ["Fife"] = {wp = "Fife"}, ["Glasgow市"] = {wp = "Glasgow"}, ["高地"] = {wp = "Highland council area"}, ["Highland"] = {alias_of = "高地", display = true}, ["Inverclyde"] = {wp = "Inverclyde"}, ["Midlothian"] = {wp = "Midlothian"}, ["Moray"] = {wp = "Moray"}, ["North Ayrshire"] = {wp = "North Ayrshire"}, ["North Lanarkshire"] = {wp = "North Lanarkshire"}, ["Orkney群島"] = {wp = "Orkney"}, ["Perth and Kinross"] = {wp = "Perth and Kinross"}, ["Renfrewshire"] = {wp = "Renfrewshire"}, ["Scottish Borders"] = {wp = "Scottish Borders"}, ["Shetland群島"] = {wp = "Shetland"}, ["South Ayrshire"] = {wp = "South Ayrshire"}, ["South Lanarkshire"] = {wp = "South Lanarkshire"}, ["Stirling"] = {wp = "Stirling (council area)"}, ["West Dunbartonshire"] = {wp = "West Dunbartonshire"}, ["West Lothian"] = {wp = "West Lothian"}, } export.scotland_group = { placename_to_key = false, default_container = "蘇格蘭", default_placetype = "council area", data = export.scotland_council_areas, } -- England counties (ceremonial) export.england_counties = { -- Metropolitan counties ["大倫敦"] = {wp = "Greater London"}, ["大曼徹斯特"] = {wp = "Greater Manchester"}, ["默西賽德郡"] = {wp = "Merseyside"}, ["西密德蘭"] = {wp = "West Midlands (county)"}, ["南約克郡"] = {wp = "South Yorkshire"}, ["西約克郡"] = {wp = "West Yorkshire"}, ["泰恩-威爾郡"] = {wp = "Tyne and Wear"}, -- Non-metropolitan ceremonial counties ["貝德福德郡"] = {wp = "Bedfordshire"}, ["伯克郡"] = {wp = "Berkshire"}, ["白金漢郡"] = {wp = "Buckinghamshire"}, ["劍橋郡"] = {wp = "Cambridgeshire"}, ["柴郡"] = {wp = "Cheshire"}, ["康沃爾郡"] = {wp = "Cornwall"}, ["坎布里亞郡"] = {wp = "Cumbria"}, ["德比郡"] = {wp = "Derbyshire"}, ["德文郡"] = {wp = "Devon"}, ["多塞特郡"] = {wp = "Dorset"}, ["達勒姆郡"] = {wp = "County Durham"}, ["約克郡東區"] = {wp = "East Riding of Yorkshire"}, ["東薩塞克斯郡"] = {wp = "East Sussex"}, ["埃塞克斯郡"] = {wp = "Essex"}, ["格洛斯特郡"] = {wp = "Gloucestershire"}, ["漢普郡"] = {wp = "Hampshire"}, ["赫里福德郡"] = {wp = "Herefordshire"}, ["赫特福德郡"] = {wp = "Hertfordshire"}, ["懷特島"] = {wp = "Isle of Wight"}, ["肯特郡"] = {wp = "Kent"}, ["蘭開夏郡"] = {wp = "Lancashire"}, ["萊斯特郡"] = {wp = "Leicestershire"}, ["林肯郡"] = {wp = "Lincolnshire"}, ["諾福克郡"] = {wp = "Norfolk"}, ["北安普敦郡"] = {wp = "Northamptonshire"}, ["諾森伯蘭郡"] = {wp = "Northumberland"}, ["北約克郡"] = {wp = "North Yorkshire"}, ["諾丁漢郡"] = {wp = "Nottinghamshire"}, ["牛津郡"] = {wp = "Oxfordshire"}, ["拉特蘭郡"] = {wp = "Rutland"}, ["什羅普郡"] = {wp = "Shropshire"}, ["薩默塞特郡"] = {wp = "Somerset"}, ["南亨伯賽德郡"] = {wp = "South Humberside"}, ["斯塔福德郡"] = {wp = "Staffordshire"}, ["薩福克郡"] = {wp = "Suffolk"}, ["薩里郡"] = {wp = "Surrey"}, ["沃里克郡"] = {wp = "Warwickshire"}, ["西薩塞克斯郡"] = {wp = "West Sussex"}, ["威爾特郡"] = {wp = "Wiltshire"}, ["伍斯特郡"] = {wp = "Worcestershire"}, } export.england_group = { placename_to_key = false, default_container = {key = "英格蘭", placetype = "constituent country"}, default_placetype = "county", data = export.england_counties, } -- Counties of Northern Ireland export.northern_ireland_counties = { ["安特里姆郡"] = {wp = "County Antrim"}, ["阿爾馬郡"] = {wp = "County Armagh"}, ["貝爾法斯特市"] = {is_city = true, wp = "Belfast"}, ["唐郡"] = {wp = "County Down"}, ["弗馬納郡"] = {wp = "County Fermanagh"}, ["倫敦德里郡"] = {wp = "County Londonderry"}, ["德里市"] = {is_city = true, wp = "Derry"}, ["泰龍郡"] = {wp = "County Tyrone"}, } export.northern_ireland_group = { placename_to_key = false, default_container = {key = "北愛爾蘭", placetype = "constituent country"}, default_placetype = "county", data = export.northern_ireland_counties, } -- Counties of Ireland export.ireland_counties = { ["卡洛郡"] = {wp = "County Carlow"}, ["卡文郡"] = {wp = "County Cavan"}, ["克萊爾郡"] = {wp = "County Clare"}, ["科克郡"] = {wp = "County Cork"}, ["多尼戈爾郡"] = {wp = "County Donegal"}, ["都柏林郡"] = {wp = "County Dublin"}, ["戈爾韋郡"] = {wp = "County Galway"}, ["克里郡"] = {wp = "County Kerry"}, ["基爾代爾郡"] = {wp = "County Kildare"}, ["基爾肯尼郡"] = {wp = "County Kilkenny"}, ["萊什郡"] = {wp = "County Laois"}, ["利特里姆郡"] = {wp = "County Leitrim"}, ["利默里克郡"] = {wp = "County Limerick"}, ["朗福德郡"] = {wp = "County Longford"}, ["勞斯郡"] = {wp = "County Louth"}, ["梅奧郡"] = {wp = "County Mayo"}, ["米斯郡"] = {wp = "County Meath"}, ["莫納亨郡"] = {wp = "County Monaghan"}, ["奧法利郡"] = {wp = "County Offaly"}, ["羅斯康芒郡"] = {wp = "County Roscommon"}, ["斯萊戈郡"] = {wp = "County Sligo"}, ["蒂珀雷里郡"] = {wp = "County Tipperary"}, ["沃特福德郡"] = {wp = "County Waterford"}, ["西米斯郡"] = {wp = "County Westmeath"}, ["韋克斯福德郡"] = {wp = "County Wexford"}, ["威克洛郡"] = {wp = "County Wicklow"}, } export.ireland_group = { placename_to_key = false, default_container = "愛爾蘭", default_placetype = "county", data = export.ireland_counties, } ----------------------------------------------------------------------------------- -- China provinces -- ----------------------------------------------------------------------------------- export.china_provinces = { -- Provinces ["安徽"] = {wp = "安徽省"}, ["福建"] = {wp = "福建省"}, ["甘肅"] = {wp = "甘肅省"}, ["廣東"] = {wp = "廣東省"}, ["貴州"] = {wp = "貴州省"}, ["海南"] = {wp = "海南省"}, ["河北"] = {wp = "河北省"}, ["黑龍江"] = {wp = "黑龍江省"}, ["河南"] = {wp = "河南省"}, ["湖北"] = {wp = "湖北省"}, ["湖南"] = {wp = "湖南省"}, ["江蘇"] = {wp = "江蘇省"}, ["江西"] = {wp = "江西省"}, ["吉林"] = {wp = "吉林省"}, ["遼寧"] = {wp = "遼寧省"}, ["青海"] = {wp = "青海省"}, ["陝西"] = {wp = "陝西省"}, ["山東"] = {wp = "山東省"}, ["山西"] = {wp = "山西省"}, ["四川"] = {wp = "四川省"}, ["雲南"] = {wp = "雲南省"}, ["浙江"] = {wp = "浙江省"}, -- Autonomous regions ["廣西壯族自治區"] = {placetype = "autonomous region", wp = "廣西壯族自治區"}, ["廣西"] = {alias_of = "廣西壯族自治區"}, ["內蒙古自治區"] = {placetype = "autonomous region", wp = "內蒙古自治區"}, ["內蒙古"] = {alias_of = "內蒙古自治區"}, ["寧夏回族自治區"] = {placetype = "autonomous region", wp = "寧夏回族自治區"}, ["寧夏"] = {alias_of = "寧夏回族自治區"}, ["西藏自治區"] = {placetype = "autonomous region", wp = "西藏自治區"}, ["西藏"] = {alias_of = "西藏自治區"}, ["新疆維吾爾自治區"] = {placetype = "autonomous region", wp = "新疆維吾爾自治區"}, ["新疆"] = {alias_of = "新疆維吾爾自治區"}, -- Direct-administered municipalities (treated as province-level for holonym purposes) ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "北京市"}, ["北京市"] = {alias_of = "北京"}, ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "上海市"}, ["上海市"] = {alias_of = "上海"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "天津市"}, ["天津市"] = {alias_of = "天津"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "重慶市"}, ["重慶市"] = {alias_of = "重慶"}, } export.china_group = { placename_to_key = false, default_container = "中國", default_placetype = "province", default_divs = { "prefecture-level cities", "districts", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_provinces, } ----------------------------------------------------------------------------------- -- Taiwan counties -- ----------------------------------------------------------------------------------- -- Note: In zhwikt, Taiwan county keys use Chinese names directly. -- The enwikt-style lookup `taiwan_counties["Chiayi County, Taiwan"]` will return nil -- (correct: no English suffix auto-detection for Chinese holonym names). export.taiwan_counties = { ["彰化縣"] = {wp = "彰化縣"}, ["彰化"] = {alias_of = "彰化縣", display = true}, ["嘉義縣"] = {wp = "嘉義縣"}, ["新竹縣"] = {wp = "新竹縣"}, ["花蓮縣"] = {wp = "花蓮縣"}, ["花蓮"] = {alias_of = "花蓮縣", display = true}, ["金門縣"] = {wp = "金門縣"}, ["金門"] = {alias_of = "金門縣", display = true}, ["連江縣"] = {wp = "連江縣"}, ["連江"] = {alias_of = "連江縣", display = true}, ["苗栗縣"] = {wp = "苗栗縣"}, ["苗栗"] = {alias_of = "苗栗縣", display = true}, ["南投縣"] = {wp = "南投縣"}, ["南投"] = {alias_of = "南投縣", display = true}, ["澎湖縣"] = {wp = "澎湖縣"}, ["澎湖"] = {alias_of = "澎湖縣", display = true}, ["屏東縣"] = {wp = "屏東縣"}, ["澎湖"] = {alias_of = "澎湖縣", display = true}, ["澎湖縣"] = {wp = "澎湖縣"}, ["澎湖"] = {alias_of = "澎湖縣", display = true}, ["宜蘭縣"] = {wp = "宜蘭縣"}, ["宜蘭"] = {alias_of = "宜蘭縣", display = true}, ["雲林縣"] = {wp = "雲林縣"}, ["雲林"] = {alias_of = "雲林縣", display = true}, -- Special municipalities (province-level) ["臺北市"] = {placetype = "special municipality", wp = "臺北市"}, ["臺北"] = {alias_of = "臺北市", display = true}, ["新北市"] = {placetype = "special municipality", wp = "新北市"}, ["新北"] = {alias_of = "新北市", display = true}, ["桃園市"] = {placetype = "special municipality", wp = "桃園市"}, ["桃園"] = {alias_of = "桃園市", display = true}, ["臺中市"] = {placetype = "special municipality", wp = "臺中市"}, ["臺中"] = {alias_of = "臺中市", display = true}, ["臺南市"] = {placetype = "special municipality", wp = "臺南市"}, ["臺南"] = {alias_of = "臺南市", display = true}, ["高雄市"] = {placetype = "special municipality", wp = "高雄市"}, ["高雄"] = {alias_of = "高雄市", display = true}, ["嘉義市"] = {placetype = "city", wp = "嘉義市"}, ["新竹市"] = {placetype = "city", wp = "新竹市"}, ["基隆市"] = {placetype = "city", wp = "基隆市"}, ["基隆"] = {alias_of = "基隆市", display = true}, } export.taiwan_group = { placename_to_key = false, default_container = "臺灣", default_placetype = "county", default_divs = {"districts", "townships"}, data = export.taiwan_counties, } ----------------------------------------------------------------------------------- -- Canada provinces and territories -- ----------------------------------------------------------------------------------- export.canada_provinces_and_territories = { ["亞伯達"] = {wp = "Alberta"}, ["艾伯塔"] = {alias_of = "亞伯達"}, ["英屬哥倫比亞"] = {wp = "British Columbia"}, ["卑詩省"] = {alias_of = "英屬哥倫比亞"}, ["馬尼托巴"] = {wp = "Manitoba"}, ["新不倫瑞克"] = {wp = "New Brunswick"}, ["紐芬蘭與拉布拉多"] = {wp = "Newfoundland and Labrador"}, ["西北地區"] = {placetype = "territory", wp = "Northwest Territories"}, ["新斯科舍"] = {wp = "Nova Scotia"}, ["努納武特"] = {placetype = "territory", wp = "Nunavut"}, ["安大略"] = {divs = {"counties", "regional municipalities"}, wp = "Ontario"}, ["愛德華王子島"] = {wp = "Prince Edward Island"}, ["魁北克"] = {wp = "Quebec"}, ["薩斯喀徹溫"] = {wp = "Saskatchewan"}, ["育空"] = {placetype = "territory", wp = "Yukon"}, } export.canada_group = { placename_to_key = false, default_container = "加拿大", default_placetype = "province", data = export.canada_provinces_and_territories, } ----------------------------------------------------------------------------------- -- Australia states and territories -- ----------------------------------------------------------------------------------- export.australia_states_and_territories = { ["新南威爾斯"] = {wp = "New South Wales"}, ["維多利亞州"] = {wp = "Victoria (Australia)"}, ["昆士蘭"] = {wp = "Queensland"}, ["南澳大利亞"] = {wp = "South Australia"}, ["西澳大利亞"] = {wp = "Western Australia"}, ["塔斯馬尼亞"] = {wp = "Tasmania"}, ["澳大利亞首都領地"] = {placetype = "territory", wp = "Australian Capital Territory"}, ["北領地"] = {placetype = "territory", wp = "Northern Territory"}, } export.australia_group = { placename_to_key = false, default_container = "澳大利亞", default_placetype = "state", data = export.australia_states_and_territories, } ----------------------------------------------------------------------------------- -- India states and union territories -- ----------------------------------------------------------------------------------- export.india_states_and_union_territories = { ["安達曼-尼科巴群島"] = {placetype = "union territory", wp = "Andaman and Nicobar Islands"}, ["安得拉邦"] = {wp = "Andhra Pradesh"}, ["阿魯納恰爾邦"] = {wp = "Arunachal Pradesh"}, ["阿薩姆"] = {wp = "Assam"}, ["比哈爾邦"] = {wp = "Bihar"}, ["昌迪加爾"] = {placetype = "union territory", wp = "Chandigarh"}, ["恰蒂斯加爾邦"] = {wp = "Chhattisgarh"}, ["達德拉-納加爾哈維利和達曼-第烏"] = {placetype = "union territory", wp = "Dadra and Nagar Haveli and Daman and Diu"}, ["德里"] = {placetype = "union territory", wp = "Delhi"}, ["果阿"] = {wp = "Goa"}, ["古吉拉特邦"] = {wp = "Gujarat"}, ["哈里亞納邦"] = {wp = "Haryana"}, ["喜馬偕爾邦"] = {wp = "Himachal Pradesh"}, ["查謨和克什米爾"] = {placetype = "union territory", wp = "Jammu and Kashmir (union territory)"}, ["賈坎德邦"] = {wp = "Jharkhand"}, ["卡納塔克邦"] = {wp = "Karnataka"}, ["喀拉拉邦"] = {wp = "Kerala"}, ["拉達克"] = {placetype = "union territory", wp = "Ladakh"}, ["拉克沙群島"] = {placetype = "union territory", wp = "Lakshadweep"}, ["中央邦"] = {wp = "Madhya Pradesh"}, ["馬哈拉施特拉邦"] = {wp = "Maharashtra"}, ["曼尼普爾邦"] = {wp = "Manipur"}, ["梅加拉亞邦"] = {wp = "Meghalaya"}, ["米佐拉姆邦"] = {wp = "Mizoram"}, ["那加蘭邦"] = {wp = "Nagaland"}, ["奧里薩邦"] = {wp = "Odisha"}, ["本地治里"] = {placetype = "union territory", wp = "Puducherry"}, ["旁遮普邦"] = {wp = "Punjab, India"}, ["拉賈斯坦邦"] = {wp = "Rajasthan"}, ["錫金"] = {wp = "Sikkim"}, ["泰米爾納德邦"] = {wp = "Tamil Nadu"}, ["特倫甘納邦"] = {wp = "Telangana"}, ["特里普拉邦"] = {wp = "Tripura"}, ["北方邦"] = {wp = "Uttar Pradesh"}, ["北阿坎德邦"] = {wp = "Uttarakhand"}, ["西孟加拉邦"] = {wp = "West Bengal"}, } export.india_group = { placename_to_key = false, default_container = "印度", default_placetype = "state", default_divs = {"districts"}, data = export.india_states_and_union_territories, } ----------------------------------------------------------------------------------- -- Japan prefectures -- ----------------------------------------------------------------------------------- -- Note: export.japan_prefectures is accessed directly by place-placetypes.lua -- using English-style keys (e.g. "Tokyo Prefecture, Japan"). Those lookups return -- nil for Chinese keys, which is correct: no English "Prefecture" suffix is added. export.japan_prefectures = { ["北海道"] = {placetype = {"prefecture"}, wp = "Hokkaido"}, ["青森縣"] = {wp = "Aomori Prefecture"}, ["岩手縣"] = {wp = "Iwate Prefecture"}, ["宮城縣"] = {wp = "Miyagi Prefecture"}, ["秋田縣"] = {wp = "Akita Prefecture"}, ["山形縣"] = {wp = "Yamagata Prefecture"}, ["福島縣"] = {wp = "Fukushima Prefecture"}, ["茨城縣"] = {wp = "Ibaraki Prefecture"}, ["栃木縣"] = {wp = "Tochigi Prefecture"}, ["群馬縣"] = {wp = "Gunma Prefecture"}, ["埼玉縣"] = {wp = "Saitama Prefecture"}, ["千葉縣"] = {wp = "Chiba Prefecture"}, ["東京都"] = {placetype = {"prefecture"}, wp = "Tokyo"}, ["神奈川縣"] = {wp = "Kanagawa Prefecture"}, ["新潟縣"] = {wp = "Niigata Prefecture"}, ["富山縣"] = {wp = "Toyama Prefecture"}, ["石川縣"] = {wp = "Ishikawa Prefecture"}, ["福井縣"] = {wp = "Fukui Prefecture"}, ["山梨縣"] = {wp = "Yamanashi Prefecture"}, ["長野縣"] = {wp = "Nagano Prefecture"}, ["岐阜縣"] = {wp = "Gifu Prefecture"}, ["靜岡縣"] = {wp = "Shizuoka Prefecture"}, ["愛知縣"] = {wp = "Aichi Prefecture"}, ["三重縣"] = {wp = "Mie Prefecture"}, ["滋賀縣"] = {wp = "Shiga Prefecture"}, ["京都府"] = {placetype = {"prefecture"}, wp = "Kyoto Prefecture"}, ["大阪府"] = {placetype = {"prefecture"}, wp = "Osaka Prefecture"}, ["兵庫縣"] = {wp = "Hyogo Prefecture"}, ["奈良縣"] = {wp = "Nara Prefecture"}, ["和歌山縣"] = {wp = "Wakayama Prefecture"}, ["鳥取縣"] = {wp = "Tottori Prefecture"}, ["島根縣"] = {wp = "Shimane Prefecture"}, ["岡山縣"] = {wp = "Okayama Prefecture"}, ["廣島縣"] = {wp = "Hiroshima Prefecture"}, ["山口縣"] = {wp = "Yamaguchi Prefecture"}, ["德島縣"] = {wp = "Tokushima Prefecture"}, ["香川縣"] = {wp = "Kagawa Prefecture"}, ["愛媛縣"] = {wp = "Ehime Prefecture"}, ["高知縣"] = {wp = "Kochi Prefecture"}, ["福岡縣"] = {wp = "Fukuoka Prefecture"}, ["佐賀縣"] = {wp = "Saga Prefecture"}, ["長崎縣"] = {wp = "Nagasaki Prefecture"}, ["熊本縣"] = {wp = "Kumamoto Prefecture"}, ["大分縣"] = {wp = "Oita Prefecture"}, ["宮崎縣"] = {wp = "Miyazaki Prefecture"}, ["鹿兒島縣"] = {wp = "Kagoshima Prefecture"}, ["沖繩縣"] = {wp = "Okinawa Prefecture"}, } export.japan_group = { placename_to_key = false, default_container = "日本", default_placetype = "prefecture", default_divs = {"cities", "districts"}, data = export.japan_prefectures, } ----------------------------------------------------------------------------------- -- Germany states (Bundesländer) -- ----------------------------------------------------------------------------------- export.germany_states = { ["巴登-符騰堡"] = {wp = "Baden-Württemberg"}, ["巴伐利亞"] = {wp = "Bavaria"}, ["柏林"] = {wp = "Berlin"}, ["布蘭登堡"] = {wp = "Brandenburg"}, ["不來梅"] = {wp = "Bremen"}, ["漢堡"] = {wp = "Hamburg"}, ["黑森"] = {wp = "Hesse"}, ["梅克倫堡-前波美拉尼亞"] = {wp = "Mecklenburg-Vorpommern"}, ["下薩克森"] = {wp = "Lower Saxony"}, ["北萊茵-威斯特法倫"] = {wp = "North Rhine-Westphalia"}, ["萊茵蘭-普法爾茨"] = {wp = "Rhineland-Palatinate"}, ["薩爾"] = {wp = "Saarland"}, ["薩克森"] = {wp = "Saxony"}, ["薩克森-安哈爾特"] = {wp = "Saxony-Anhalt"}, ["石勒蘇益格-荷爾斯泰因"] = {wp = "Schleswig-Holstein"}, ["圖林根"] = {wp = "Thuringia"}, } export.germany_group = { placename_to_key = false, default_container = "德國", default_placetype = "state", data = export.germany_states, } ----------------------------------------------------------------------------------- -- Italy regions (Regioni) -- ----------------------------------------------------------------------------------- export.italy_regions = { ["阿布魯佐"] = {wp = "Abruzzo"}, ["巴西利卡塔"] = {wp = "Basilicata"}, ["卡拉布里亞"] = {wp = "Calabria"}, ["坎帕尼亞"] = {wp = "Campania"}, ["艾米利亞-羅馬涅"] = {wp = "Emilia-Romagna"}, ["弗留利-威尼斯朱利亞"] = {wp = "Friuli-Venezia Giulia"}, ["拉齊奧"] = {wp = "Lazio"}, ["利古里亞"] = {wp = "Liguria"}, ["倫巴第"] = {wp = "Lombardy"}, ["倫巴底"] = {alias_of = "倫巴第"}, ["馬爾凱"] = {wp = "Marche"}, ["莫利塞"] = {wp = "Molise"}, ["皮埃蒙特"] = {wp = "Piedmont"}, ["普利亞"] = {wp = "Apulia"}, ["阿普利亞"] = {alias_of = "普利亞"}, ["薩丁尼亞"] = {wp = "Sardinia"}, ["西西里"] = {wp = "Sicily"}, ["托斯卡納"] = {wp = "Tuscany"}, ["特倫蒂諾-上阿迪傑"] = {wp = "Trentino-Alto Adige/Südtirol"}, ["翁布里亞"] = {wp = "Umbria"}, ["奧斯塔谷"] = {wp = "Aosta Valley"}, ["威尼托"] = {wp = "Veneto"}, } export.italy_group = { placename_to_key = false, default_container = "意大利", default_placetype = "region", data = export.italy_regions, } ----------------------------------------------------------------------------------- -- Spain autonomous communities (Comunidades autónomas) -- ----------------------------------------------------------------------------------- export.spain_autonomous_communities = { ["安達盧西亞"] = {wp = "Andalusia"}, ["安達魯西亞"] = {alias_of = "安達盧西亞"}, ["阿拉貢"] = {wp = "Aragon"}, ["阿斯圖里亞斯"] = {wp = "Asturias"}, ["巴利阿里群島"] = {wp = "Balearic Islands"}, ["巴斯克"] = {wp = "Basque Country (autonomous community)"}, ["加那利群島"] = {wp = "Canary Islands"}, ["坎塔布里亞"] = {wp = "Cantabria"}, ["卡斯蒂利亞-拉曼恰"] = {wp = "Castilla-La Mancha"}, ["卡斯蒂利亞-萊昂"] = {wp = "Castilla y León"}, ["加泰羅尼亞"] = {wp = "Catalonia"}, ["加泰隆尼亞"] = {alias_of = "加泰羅尼亞"}, ["埃斯特雷馬杜拉"] = {wp = "Extremadura"}, ["加利西亞"] = {wp = "Galicia (Spain)"}, ["拉里奧哈"] = {wp = "La Rioja (autonomous community)"}, ["馬德里自治區"] = {wp = "Community of Madrid"}, ["穆爾西亞"] = {wp = "Region of Murcia"}, ["納瓦拉"] = {wp = "Navarre"}, ["巴倫西亞"] = {wp = "Valencian Community"}, ["巴倫西亞自治區"] = {alias_of = "巴倫西亞"}, } export.spain_group = { placename_to_key = false, default_container = "西班牙", default_placetype = "autonomous community", data = export.spain_autonomous_communities, } ----------------------------------------------------------------------------------- -- China prefecture-level cities -- -- Mirrors enwikt china_prefecture_level_cities (168 entries) and -- -- china_prefecture_level_cities_2 (4 entries, merged here since Chinese names -- -- are unambiguous: 台州/泰州, 蘇州/宿州 do not clash). -- ----------------------------------------------------------------------------------- export.china_prefecture_level_cities = { -- Guangdong ["廣州"] = {container = "廣東", wp = "Guangzhou"}, ["東莞"] = {container = "廣東", wp = "Dongguan"}, ["佛山"] = {container = "廣東", wp = "Foshan"}, ["惠州"] = {container = "廣東", wp = "Huizhou"}, ["江門"] = {container = "廣東", wp = "Jiangmen"}, ["深圳"] = {container = "廣東", wp = "Shenzhen"}, ["中山"] = {container = "廣東", wp = "Zhongshan"}, ["汕頭"] = {container = "廣東", wp = "Shantou"}, ["潮州"] = {container = "廣東", wp = "Chaozhou"}, ["揭陽"] = {container = "廣東", wp = "Jieyang"}, ["珠海"] = {container = "廣東", wp = "Zhuhai"}, ["湛江"] = {container = "廣東", wp = "Zhanjiang"}, ["茂名"] = {container = "廣東", wp = "Maoming"}, ["清遠"] = {container = "廣東", wp = "Qingyuan"}, ["肇慶"] = {container = "廣東", wp = "Zhaoqing"}, -- Direct-administered municipalities (also in china_provinces; duplicated here for division categorisation) ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Shanghai"}, ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Beijing"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Chongqing"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Tianjin"}, -- Jiangsu ["常熟"] = {container = "江蘇", wp = "Changshu"}, ["常州"] = {container = "江蘇", wp = "Changzhou"}, ["蘇州"] = {container = "江蘇", wp = "Suzhou"}, ["無錫"] = {container = "江蘇", wp = "Wuxi"}, ["南京"] = {container = "江蘇", wp = "Nanjing"}, ["南通"] = {container = "江蘇", wp = "Nantong"}, ["江陰"] = {container = "江蘇", wp = "Jiangyin"}, ["張家港"] = {container = "江蘇", wp = "Zhangjiagang"}, ["徐州"] = {container = "江蘇", wp = "Xuzhou"}, ["揚州"] = {container = "江蘇", wp = "Yangzhou"}, ["鹽城"] = {container = "江蘇", wp = "Yancheng"}, ["淮安"] = {container = "江蘇", wp = "Huai'an"}, ["連雲港"] = {container = "江蘇", wp = "Lianyungang"}, ["宿遷"] = {container = "江蘇", wp = "Suqian"}, ["鎮江"] = {container = "江蘇", wp = "Zhenjiang"}, ["崑山"] = {container = "江蘇", wp = "Kunshan"}, ["泰州"] = {container = "江蘇", wp = "Taizhou, Jiangsu"}, -- distinct from 台州 (Zhejiang) -- Zhejiang ["杭州"] = {container = "浙江", wp = "Hangzhou"}, ["紹興"] = {container = "浙江", wp = "Shaoxing"}, ["寧波"] = {container = "浙江", wp = "Ningbo"}, ["慈溪"] = {container = "浙江", wp = "Cixi"}, ["余姚"] = {container = "浙江", wp = "Yuyao"}, ["溫州"] = {container = "浙江", wp = "Wenzhou"}, ["瑞安"] = {placetype = "county-level city", container = {key = "溫州", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Rui'an"}, ["台州"] = {container = "浙江", wp = "Taizhou, Zhejiang"}, ["義烏"] = {container = "浙江", wp = "Yiwu"}, ["嘉興"] = {container = "浙江", wp = "Jiaxing"}, ["金華"] = {container = "浙江", wp = "Jinhua"}, ["湖州"] = {container = "浙江", wp = "Huzhou"}, ["永康"] = {placetype = "county-level city", container = {key = "金華", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Yongkang, Zhejiang"}, -- Fujian ["廈門"] = {container = "福建", wp = "Xiamen"}, ["晉江"] = {container = "福建", wp = "Jinjiang"}, ["泉州"] = {container = "福建", wp = "Quanzhou"}, ["莆田"] = {container = "福建", wp = "Putian"}, ["福州"] = {container = "福建", wp = "Fuzhou"}, -- Shandong ["青島"] = {container = "山東", wp = "Qingdao"}, ["臨沂"] = {container = "山東", wp = "Linyi"}, ["淄博"] = {container = "山東", wp = "Zibo"}, ["濟南"] = {container = "山東", wp = "Jinan"}, ["濰坊"] = {container = "山東", wp = "Weifang"}, ["煙台"] = {container = "山東", wp = "Yantai"}, ["濟寧"] = {container = "山東", wp = "Jining"}, ["泰安"] = {container = "山東", wp = "Tai'an"}, ["威海"] = {container = "山東", wp = "Weihai"}, ["菏澤"] = {container = "山東", wp = "Heze"}, ["德州"] = {container = "山東", wp = "Dezhou"}, ["日照"] = {container = "山東", wp = "Rizhao"}, ["聊城"] = {container = "山東", wp = "Liaocheng"}, ["棗莊"] = {container = "山東", wp = "Zaozhuang"}, ["滕州"] = {placetype = "county-level city", container = {key = "棗莊", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Tengzhou"}, ["東營"] = {container = "山東", wp = "Dongying"}, -- Henan ["鄭州"] = {container = "河南", wp = "Zhengzhou"}, ["洛陽"] = {container = "河南", wp = "Luoyang"}, ["新鄉"] = {container = "河南", wp = "Xinxiang"}, ["信陽"] = {container = "河南", wp = "Xinyang"}, ["安陽"] = {container = "河南", wp = "Anyang"}, ["開封"] = {container = "河南", wp = "Kaifeng"}, ["許昌"] = {container = "河南", wp = "Xuchang"}, ["濮陽"] = {container = "河南", wp = "Puyang"}, ["商丘"] = {container = "河南", wp = "Shangqiu"}, ["南陽"] = {container = "河南", wp = "Nanyang, Henan"}, ["焦作"] = {container = "河南", wp = "Jiaozuo"}, ["平頂山"] = {container = "河南", wp = "Pingdingshan"}, ["周口"] = {container = "河南", wp = "Zhoukou"}, ["駐馬店"] = {container = "河南", wp = "Zhumadian"}, -- Hubei ["武漢"] = {container = "湖北", wp = "Wuhan"}, ["襄陽"] = {container = "湖北", wp = "Xiangyang"}, ["宜昌"] = {container = "湖北", wp = "Yichang"}, ["鄂州"] = {container = "湖北", wp = "Ezhou"}, ["十堰"] = {container = "湖北", wp = "Shiyan"}, -- Hunan ["長沙"] = {container = "湖南", wp = "Changsha"}, ["株洲"] = {container = "湖南", wp = "Zhuzhou"}, ["衡陽"] = {container = "湖南", wp = "Hengyang"}, ["邵陽"] = {container = "湖南", wp = "Shaoyang"}, ["岳陽"] = {container = "湖南", wp = "Yueyang"}, ["常德"] = {container = "湖南", wp = "Changde"}, ["瀏陽"] = {placetype = "county-level city", container = {key = "長沙", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Liuyang"}, -- Sichuan ["成都"] = {container = "四川", wp = "Chengdu"}, ["綿陽"] = {container = "四川", wp = "Mianyang"}, ["南充"] = {container = "四川", wp = "Nanchong"}, ["達州"] = {container = "四川", wp = "Dazhou"}, ["瀘州"] = {container = "四川", wp = "Luzhou"}, ["宜賓"] = {container = "四川", wp = "Yibin"}, -- Yunnan ["昆明"] = {container = "雲南", wp = "Kunming"}, ["曲靖"] = {container = "雲南", wp = "Qujing"}, -- Guizhou ["貴陽"] = {container = "貴州", wp = "Guiyang"}, ["遵義"] = {container = "貴州", wp = "Zunyi"}, ["六盤水"] = {container = "貴州", wp = "Liupanshui"}, ["畢節"] = {container = "貴州", wp = "Bijie"}, -- Shaanxi ["西安"] = {container = "陝西", wp = "Xi'an"}, ["咸陽"] = {container = "陝西", wp = "Xianyang"}, ["寶雞"] = {container = "陝西", wp = "Baoji"}, -- Heilongjiang ["哈爾濱"] = {container = "黑龍江", wp = "Harbin"}, ["大慶"] = {container = "黑龍江", wp = "Daqing"}, ["齊齊哈爾"] = {container = "黑龍江", wp = "Qiqihar"}, -- Liaoning ["瀋陽"] = {container = "遼寧", wp = "Shenyang"}, ["撫順"] = {container = "遼寧", wp = "Fushun"}, ["大連"] = {container = "遼寧", wp = "Dalian"}, ["鞍山"] = {container = "遼寧", wp = "Anshan"}, ["錦州"] = {container = "遼寧", wp = "Jinzhou"}, ["葫蘆島"] = {container = "遼寧", wp = "Huludao"}, ["盤錦"] = {container = "遼寧", wp = "Panjin"}, -- Jilin ["長春"] = {container = "吉林", wp = "Changchun"}, ["吉林市"] = {container = "吉林", wp = "Jilin City"}, -- distinct from 吉林 (province) -- Anhui ["合肥"] = {container = "安徽", wp = "Hefei"}, ["蚌埠"] = {container = "安徽", wp = "Bengbu"}, ["淮南"] = {container = "安徽", wp = "Huainan"}, ["蕪湖"] = {container = "安徽", wp = "Wuhu"}, ["淮北"] = {container = "安徽", wp = "Huaibei"}, ["滁州"] = {container = "安徽", wp = "Chuzhou"}, ["六安"] = {container = "安徽", wp = "Lu'an"}, ["阜陽"] = {container = "安徽", wp = "Fuyang, Anhui"}, ["宿州"] = {container = "安徽", wp = "Suzhou, Anhui"}, -- distinct from 蘇州 (Jiangsu) -- Hebei ["石家莊"] = {container = "河北", wp = "Shijiazhuang"}, ["邯鄲"] = {container = "河北", wp = "Handan"}, ["唐山"] = {container = "河北", wp = "Tangshan"}, ["秦皇島"] = {container = "河北", wp = "Qinhuangdao"}, ["邢台"] = {container = "河北", wp = "Xingtai"}, ["保定"] = {container = "河北", wp = "Baoding"}, ["張家口"] = {container = "河北", wp = "Zhangjiakou"}, ["衡水"] = {container = "河北", wp = "Hengshui"}, ["滄州"] = {container = "河北", wp = "Cangzhou"}, -- Shanxi ["太原"] = {container = "山西", wp = "Taiyuan"}, ["大同"] = {container = "山西", wp = "Datong"}, ["長治"] = {container = "山西", wp = "Changzhi"}, ["臨汾"] = {container = "山西", wp = "Linfen"}, -- Jiangxi ["南昌"] = {container = "江西", wp = "Nanchang"}, ["贛州"] = {container = "江西", wp = "Ganzhou"}, ["上饒"] = {container = "江西", wp = "Shangrao"}, ["九江"] = {container = "江西", wp = "Jiujiang"}, -- Guangxi (autonomous region) ["南寧"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Nanning"}, ["柳州"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Liuzhou"}, ["桂林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guilin"}, ["玉林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Yulin, Guangxi"}, ["北海"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Beihai"}, ["貴港"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guigang"}, -- Inner Mongolia (autonomous region) ["呼和浩特"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Hohhot"}, ["包頭"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Baotou"}, ["赤峰"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Chifeng"}, -- Xinjiang (autonomous region) ["烏魯木齊"] = {container = {key = "新疆", placetype = "autonomous region"}, wp = "Ürümqi"}, -- Ningxia (autonomous region) ["銀川"] = {container = {key = "寧夏", placetype = "autonomous region"}, wp = "Yinchuan"}, -- Hainan ["海口"] = {container = "海南", wp = "Haikou"}, -- Qinghai ["西寧"] = {container = "青海", wp = "Xining"}, -- Gansu ["蘭州"] = {container = "甘肅", wp = "Lanzhou"}, -- Chongqing subdivision (district 142 miles from Chongqing proper) ["萬州"] = {placetype = "district", container = {key = "重慶", placetype = "direct-administered municipality"}, divs = {"subdistricts", "townships"}, wp = "Wanzhou"}, -- County within Suqian prefecture-level city ["沭陽"] = {placetype = "county", container = {key = "宿遷", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Shuyang County"}, } export.china_prefecture_level_cities_group = { placename_to_key = false, default_placetype = {"prefecture-level city", "city"}, default_divs = { "districts", "subdistricts", "townships", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_prefecture_level_cities, } ----------------------------------------------------------------------------------- -- New York City boroughs -- ----------------------------------------------------------------------------------- export.new_york_boroughs = { ["布朗克斯"] = {the = true, wp = "The Bronx"}, ["布魯克林"] = {wp = "Brooklyn"}, ["曼哈頓"] = {wp = "Manhattan"}, ["皇后區"] = {wp = "Queens"}, ["史泰登島"] = {wp = "Staten Island"}, } export.new_york_boroughs_group = { placename_to_key = false, default_container = {key = "紐約市", placetype = "city"}, default_placetype = "borough", default_is_city = true, data = export.new_york_boroughs, } ----------------------------------------------------------------------------------- -- Romania counties -- ----------------------------------------------------------------------------------- export.romania_counties = { ["阿爾巴縣"] = {wp = "Alba County"}, ["阿拉德縣"] = {wp = "Arad County"}, ["阿爾傑什縣"] = {wp = "Argeș County"}, ["巴考縣"] = {wp = "Bacău County"}, ["比霍爾縣"] = {wp = "Bihor County"}, ["比斯特里察-訥瑟烏德縣"] = {wp = "Bistrița-Năsăud County"}, ["博托沙尼縣"] = {wp = "Botoșani County"}, ["布拉索夫縣"] = {wp = "Brașov County"}, ["布勒伊拉縣"] = {wp = "Brăila County"}, ["布澤烏縣"] = {wp = "Buzău County"}, ["卡拉什-塞韋林縣"] = {wp = "Caraș-Severin County"}, ["克盧日縣"] = {wp = "Cluj County"}, ["康斯坦察縣"] = {wp = "Constanța County"}, ["科瓦斯納縣"] = {wp = "Covasna County"}, ["克勒拉希縣"] = {wp = "Călărași County"}, ["多爾日縣"] = {wp = "Dolj County"}, ["登博維察縣"] = {wp = "Dâmbovița County"}, ["加拉茨縣"] = {wp = "Galați County"}, ["久爾久縣"] = {wp = "Giurgiu County"}, ["戈爾日縣"] = {wp = "Gorj County"}, ["哈爾吉塔縣"] = {wp = "Harghita County"}, ["胡內多阿拉縣"] = {wp = "Hunedoara County"}, ["雅洛米察縣"] = {wp = "Ialomița County"}, ["雅西縣"] = {wp = "Iași County"}, ["伊爾福夫縣"] = {wp = "Ilfov County"}, ["馬拉穆列什縣"] = {wp = "Maramureș County"}, ["梅赫丁茨縣"] = {wp = "Mehedinți County"}, ["穆列什縣"] = {wp = "Mureș County"}, ["尼亞姆茨縣"] = {wp = "Neamț County"}, ["奧爾特縣"] = {wp = "Olt County"}, ["普拉霍瓦縣"] = {wp = "Prahova County"}, ["薩圖馬雷縣"] = {wp = "Satu Mare County"}, ["錫比烏縣"] = {wp = "Sibiu County"}, ["蘇恰瓦縣"] = {wp = "Suceava County"}, ["瑟拉日縣"] = {wp = "Sălaj County"}, ["特列奧爾曼縣"] = {wp = "Teleorman County"}, ["蒂米什縣"] = {wp = "Timiș County"}, ["圖爾恰縣"] = {wp = "Tulcea County"}, ["瓦斯盧伊縣"] = {wp = "Vaslui County"}, ["弗蘭恰縣"] = {wp = "Vrancea County"}, ["沃爾恰縣"] = {wp = "Vâlcea County"}, } export.romania_group = { placename_to_key = false, default_container = "羅馬尼亞", default_placetype = "county", data = export.romania_counties, } ----------------------------------------------------------------------------------- -- Bulgaria provinces -- ----------------------------------------------------------------------------------- export.bulgaria_provinces = { ["布拉戈耶夫格勒省"] = {wp = "Blagoevgrad Province"}, ["布爾加斯省"] = {wp = "Burgas Province"}, ["多布里奇省"] = {wp = "Dobrich Province"}, ["加布羅沃省"] = {wp = "Gabrovo Province"}, ["哈斯科沃省"] = {wp = "Haskovo Province"}, ["卡爾扎利省"] = {wp = "Kardzhali Province"}, ["屈斯滕迪爾省"] = {wp = "Kyustendil Province"}, ["洛維奇省"] = {wp = "Lovech Province"}, ["蒙塔納省"] = {wp = "Montana Province"}, ["帕扎爾吉克省"] = {wp = "Pazardzhik Province"}, ["佩爾尼克省"] = {wp = "Pernik Province"}, ["普萊文省"] = {wp = "Pleven Province"}, ["普羅夫迪夫省"] = {wp = "Plovdiv Province"}, ["拉茲格勒省"] = {wp = "Razgrad Province"}, ["魯塞省"] = {wp = "Ruse Province"}, ["舒門省"] = {wp = "Shumen Province"}, ["錫利斯特拉省"] = {wp = "Silistra Province"}, ["斯利文省"] = {wp = "Sliven Province"}, ["斯莫梁省"] = {wp = "Smolyan Province"}, ["索非亞市省"] = {wp = "Sofia City Province"}, ["索非亞省"] = {wp = "Sofia Province"}, ["斯塔拉扎戈拉省"] = {wp = "Stara Zagora Province"}, ["特爾戈維什泰省"] = {wp = "Targovishte Province"}, ["瓦爾納省"] = {wp = "Varna Province"}, ["大特爾諾沃省"] = {wp = "Veliko Tarnovo Province"}, ["維丁省"] = {wp = "Vidin Province"}, ["弗拉察省"] = {wp = "Vratsa Province"}, ["揚博爾省"] = {wp = "Yambol Province"}, } export.bulgaria_group = { placename_to_key = false, default_container = "保加利亞", default_placetype = "province", data = export.bulgaria_provinces, } ----------------------------------------------------------------------------------- -- Iran provinces -- ----------------------------------------------------------------------------------- export.iran_provinces = { ["阿爾博爾茲省"] = {wp = "Alborz Province"}, ["阿爾達比勒省"] = {wp = "Ardabil Province"}, ["布什爾省"] = {wp = "Bushehr Province"}, ["恰哈爾馬哈勒-巴赫蒂亞里省"] = {wp = "Chaharmahal and Bakhtiari Province"}, ["東阿塞拜疆省"] = {wp = "East Azerbaijan Province"}, ["法爾斯省"] = {wp = "Fars Province"}, ["帕爾斯省"] = {alias_of = "法爾斯省"}, ["吉蘭省"] = {wp = "Gilan Province"}, ["戈勒斯坦省"] = {wp = "Golestan Province"}, ["哈馬丹省"] = {wp = "Hamadan Province"}, ["霍爾木茲甘省"] = {wp = "Hormozgan Province"}, ["伊拉姆省"] = {wp = "Ilam Province"}, ["伊斯法罕省"] = {wp = "Isfahan Province"}, ["克爾曼省"] = {wp = "Kerman Province"}, ["克爾曼沙赫省"] = {wp = "Kermanshah Province"}, ["胡齊斯坦省"] = {wp = "Khuzestan Province"}, ["科吉盧耶-博亞赫邁德省"] = {wp = "Kohgiluyeh and Boyer-Ahmad Province"}, ["庫爾德斯坦省"] = {wp = "Kurdistan Province"}, ["洛雷斯坦省"] = {wp = "Lorestan Province"}, ["馬爾卡齊省"] = {wp = "Markazi Province"}, ["馬贊達蘭省"] = {wp = "Mazandaran Province"}, ["北呼羅珊省"] = {wp = "North Khorasan Province"}, ["加茲溫省"] = {wp = "Qazvin Province"}, ["庫姆省"] = {wp = "Qom Province"}, ["拉扎維呼羅珊省"] = {wp = "Razavi Khorasan Province"}, ["森南省"] = {wp = "Semnan Province"}, ["錫斯坦-俾路支斯坦省"] = {wp = "Sistan and Baluchestan Province"}, ["南呼羅珊省"] = {wp = "South Khorasan Province"}, ["德黑蘭省"] = {wp = "Tehran Province"}, ["西阿塞拜疆省"] = {wp = "West Azerbaijan Province"}, ["亞茲德省"] = {wp = "Yazd Province"}, ["贊詹省"] = {wp = "Zanjan Province"}, } export.iran_group = { placename_to_key = false, default_container = "伊朗", default_placetype = "province", data = export.iran_provinces, } ----------------------------------------------------------------------------------- -- Laos provinces -- ----------------------------------------------------------------------------------- export.laos_provinces = { ["阿塔坡省"] = {wp = "Attapeu Province"}, ["博膠省"] = {wp = "Bokeo Province"}, ["波里坎賽省"] = {wp = "Bolikhamxai Province"}, ["占巴塞省"] = {wp = "Champasak Province"}, ["華潘省"] = {wp = "Houaphanh Province"}, ["甘蒙省"] = {wp = "Khammouane Province"}, ["南塔省"] = {wp = "Luang Namtha Province"}, ["琅勃拉邦省"] = {wp = "Luang Prabang Province"}, ["烏多姆賽省"] = {wp = "Oudomxay Province"}, ["豐沙里省"] = {wp = "Phongsaly Province"}, ["沙拉灣省"] = {wp = "Salavan Province"}, ["沙灣拿吉省"] = {wp = "Savannakhet Province"}, ["萬象省"] = {wp = "Vientiane Province"}, ["萬象直轄市"] = {placetype = "prefecture", wp = "Vientiane Prefecture"}, ["賽亞武里省"] = {wp = "Sainyabuli Province"}, ["塞公省"] = {wp = "Sekong Province"}, ["賽頌本省"] = {wp = "Xaisomboun Province"}, ["川壙省"] = {wp = "Xiangkhouang Province"}, } export.laos_group = { placename_to_key = false, default_container = "老撾", default_placetype = "province", data = export.laos_provinces, } ----------------------------------------------------------------------------------- -- North Korea provinces -- ----------------------------------------------------------------------------------- export.north_korea_provinces = { ["慈江道"] = {wp = "慈江道"}, ["咸鏡北道"] = {wp = "咸鏡北道"}, ["咸鏡南道"] = {wp = "咸鏡南道"}, ["黃海北道"] = {wp = "黃海北道"}, ["黃海南道"] = {wp = "黃海南道"}, ["江原道(北韓)"] = {wp = "江原道 (朝鮮民主主義人民共和國)"}, ["平安北道"] = {wp = "平安北道"}, ["平安南道"] = {wp = "平安南道"}, ["兩江道"] = {wp = "兩江道"}, } export.north_korea_group = { placename_to_key = false, default_container = "朝鮮", default_placetype = "province", data = export.north_korea_provinces, } ----------------------------------------------------------------------------------- -- South Korea provinces -- ----------------------------------------------------------------------------------- export.south_korea_provinces = { ["忠清北道"] = {wp = "忠清北道"}, ["忠清南道"] = {wp = "忠清南道"}, ["江原道(南韓)"] = {wp = "江原特別自治道"}, ["京畿道"] = {wp = "京畿道"}, ["慶尚北道"] = {wp = "慶尚北道"}, ["慶尚南道"] = {wp = "慶尚南道"}, ["全羅北道"] = {wp = "全羅北道"}, ["全羅南道"] = {wp = "全羅南道"}, ["濟州道"] = {wp = "濟州道"}, } export.south_korea_group = { placename_to_key = false, default_container = "韓國", default_placetype = "province", data = export.south_korea_provinces, } ----------------------------------------------------------------------------------- -- Thailand provinces -- ----------------------------------------------------------------------------------- export.thailand_provinces = { ["阿姆納特坤府"] = {wp = "Amnat Charoen Province"}, ["紅統府"] = {wp = "Ang Thong Province"}, ["彭侃府"] = {wp = "Bueng Kan Province"}, ["武里南府"] = {wp = "Buriram Province"}, ["北柳府"] = {wp = "Chachoengsao Province"}, ["猜納府"] = {wp = "Chai Nat Province"}, ["猜耶奔府"] = {wp = "Chaiyaphum Province"}, ["尖竹汶府"] = {wp = "Chanthaburi Province"}, ["清邁府"] = {wp = "Chiang Mai Province"}, ["清萊府"] = {wp = "Chiang Rai Province"}, ["春武里府"] = {wp = "Chonburi Province"}, ["春蓬府"] = {wp = "Chumphon Province"}, ["加拉信府"] = {wp = "Kalasin Province"}, ["甘烹碧府"] = {wp = "Kamphaeng Phet Province"}, ["北碧府"] = {wp = "Kanchanaburi Province"}, ["孔敬府"] = {wp = "Khon Kaen Province"}, ["甲米府"] = {wp = "Krabi Province"}, ["南邦府"] = {wp = "Lampang Province"}, ["南奔府"] = {wp = "Lamphun Province"}, ["黎府"] = {wp = "Loei Province"}, ["華富里府"] = {wp = "Lopburi Province"}, ["夜豐頌府"] = {wp = "Mae Hong Son Province"}, ["瑪哈沙拉堪府"] = {wp = "Maha Sarakham Province"}, ["莫達罕府"] = {wp = "Mukdahan Province"}, ["那空那育府"] = {wp = "Nakhon Nayok Province"}, ["佛統府"] = {wp = "Nakhon Pathom Province"}, ["那空帕農府"] = {wp = "Nakhon Phanom Province"}, ["呵叻府"] = {wp = "Nakhon Ratchasima Province"}, ["那空沙旺府"] = {wp = "Nakhon Sawan Province"}, ["洛坤府"] = {wp = "Nakhon Si Thammarat Province"}, ["難府"] = {wp = "Nan Province"}, ["那拉提瓦府"] = {wp = "Narathiwat Province"}, ["農布瓦蘭普府"] = {wp = "Nong Bua Lamphu Province"}, ["廊開府"] = {wp = "Nong Khai Province"}, ["暖武里府"] = {wp = "Nonthaburi Province"}, ["巴吞他尼府"] = {wp = "Pathum Thani Province"}, ["北大年府"] = {wp = "Pattani Province"}, ["攀牙府"] = {wp = "Phang Nga Province"}, ["博他侖府"] = {wp = "Phatthalung Province"}, ["帕堯府"] = {wp = "Phayao Province"}, ["碧差汶府"] = {wp = "Phetchabun Province"}, ["碧武里府"] = {wp = "Phetchaburi Province"}, ["披集府"] = {wp = "Phichit Province"}, ["彭世洛府"] = {wp = "Phitsanulok Province"}, ["大城府"] = {wp = "Phra Nakhon Si Ayutthaya Province"}, ["帕府"] = {wp = "Phrae Province"}, ["普吉府"] = {wp = "Phuket Province"}, ["巴真府"] = {wp = "Prachinburi Province"}, ["巴蜀府"] = {wp = "Prachuap Khiri Khan Province"}, ["拉廊府"] = {wp = "Ranong Province"}, ["叻丕府"] = {wp = "Ratchaburi Province"}, ["羅勇府"] = {wp = "Rayong Province"}, ["黎逸府"] = {wp = "Roi Et Province"}, ["沙繳府"] = {wp = "Sa Kaeo Province"}, ["色軍府"] = {wp = "Sakon Nakhon Province"}, ["北欖府"] = {wp = "Samut Prakan Province"}, ["沙沒沙空府"] = {wp = "Samut Sakhon Province"}, ["沙沒頌堪府"] = {wp = "Samut Songkhram Province"}, ["沙拉武里府"] = {wp = "Saraburi Province"}, ["沙敦府"] = {wp = "Satun Province"}, ["信武里府"] = {wp = "Sing Buri Province"}, ["四色菊府"] = {wp = "Sisaket Province"}, ["宋卡府"] = {wp = "Songkhla Province"}, ["素可泰府"] = {wp = "Sukhothai Province"}, ["素攀武里府"] = {wp = "Suphan Buri Province"}, ["素叻他尼府"] = {wp = "Surat Thani Province"}, ["素林府"] = {wp = "Surin Province"}, ["達府"] = {wp = "Tak Province"}, ["董里府"] = {wp = "Trang Province"}, ["達叻府"] = {wp = "Trat Province"}, ["烏汶府"] = {wp = "Ubon Ratchathani Province"}, ["烏隆府"] = {wp = "Udon Thani Province"}, ["烏泰他尼府"] = {wp = "Uthai Thani Province"}, ["烏達拉勐府"] = {wp = "Uttaradit Province"}, ["惹拉府"] = {wp = "Yala Province"}, ["耶梭通府"] = {wp = "Yasothon Province"}, } export.thailand_group = { placename_to_key = false, default_container = "泰國", default_placetype = "province", data = export.thailand_provinces, } ----------------------------------------------------------------------------------- -- Turkey provinces -- ----------------------------------------------------------------------------------- export.turkey_provinces = { ["阿達納省"] = {wp = "Adana Province"}, ["阿德亞曼省"] = {wp = "Adıyaman Province"}, ["阿菲永卡拉希薩爾省"] = {wp = "Afyonkarahisar Province"}, ["阿里省"] = {wp = "Ağrı Province"}, ["阿馬西亞省"] = {wp = "Amasya Province"}, ["安卡拉省"] = {wp = "Ankara Province"}, ["安塔利亞省"] = {wp = "Antalya Province"}, ["阿爾特溫省"] = {wp = "Artvin Province"}, ["艾登省"] = {wp = "Aydın Province"}, ["巴勒克埃西爾省"] = {wp = "Balıkesir Province"}, ["比萊吉克省"] = {wp = "Bilecik Province"}, ["賓格爾省"] = {wp = "Bingöl Province"}, ["比特利斯省"] = {wp = "Bitlis Province"}, ["博盧省"] = {wp = "Bolu Province"}, ["布爾杜爾省"] = {wp = "Burdur Province"}, ["布爾薩省"] = {wp = "Bursa Province"}, ["恰納卡萊省"] = {wp = "Çanakkale Province"}, ["昌克勒省"] = {wp = "Çankırı Province"}, ["喬魯姆省"] = {wp = "Çorum Province"}, ["代尼茲利省"] = {wp = "Denizli Province"}, ["迪亞巴克爾省"] = {wp = "Diyarbakır Province"}, ["埃迪爾內省"] = {wp = "Edirne Province"}, ["埃拉澤省"] = {wp = "Elazığ Province"}, ["埃爾津詹省"] = {wp = "Erzincan Province"}, ["埃爾祖魯姆省"] = {wp = "Erzurum Province"}, ["埃斯基謝希爾省"] = {wp = "Eskişehir Province"}, ["加濟安泰普省"] = {wp = "Gaziantep Province"}, ["吉雷松省"] = {wp = "Giresun Province"}, ["居米什哈內省"] = {wp = "Gümüşhane Province"}, ["哈卡里省"] = {wp = "Hakkâri Province"}, ["哈塔伊省"] = {wp = "Hatay Province"}, ["伊斯帕爾塔省"] = {wp = "Isparta Province"}, ["梅爾辛省"] = {wp = "Mersin Province"}, ["伊茲密爾省"] = {wp = "İzmir Province"}, ["卡爾斯省"] = {wp = "Kars Province"}, ["卡斯塔莫努省"] = {wp = "Kastamonu Province"}, ["開塞利省"] = {wp = "Kayseri Province"}, ["柯克拉雷利省"] = {wp = "Kırklareli Province"}, ["克爾謝希爾省"] = {wp = "Kırşehir Province"}, ["科賈埃利省"] = {wp = "Kocaeli Province"}, ["科尼亞省"] = {wp = "Konya Province"}, ["屈塔希亞省"] = {wp = "Kütahya Province"}, ["馬拉蒂亞省"] = {wp = "Malatya Province"}, ["馬尼薩省"] = {wp = "Manisa Province"}, ["卡赫拉曼馬拉什省"] = {wp = "Kahramanmaraş Province"}, ["馬爾丁省"] = {wp = "Mardin Province"}, ["穆拉省"] = {wp = "Muğla Province"}, ["穆什省"] = {wp = "Muş Province"}, ["內夫謝希爾省"] = {wp = "Nevşehir Province"}, ["尼代省"] = {wp = "Niğde Province"}, ["奧爾杜省"] = {wp = "Ordu Province"}, ["里澤省"] = {wp = "Rize Province"}, ["薩卡里亞省"] = {wp = "Sakarya Province"}, ["薩姆松省"] = {wp = "Samsun Province"}, ["錫爾特省"] = {wp = "Siirt Province"}, ["錫諾普省"] = {wp = "Sinop Province"}, ["錫瓦斯省"] = {wp = "Sivas Province"}, ["泰基爾達省"] = {wp = "Tekirdağ Province"}, ["托卡特省"] = {wp = "Tokat Province"}, ["特拉布宗省"] = {wp = "Trabzon Province"}, ["通傑利省"] = {wp = "Tunceli Province"}, ["尚勒烏爾法省"] = {wp = "Şanlıurfa Province"}, ["烏沙克省"] = {wp = "Uşak Province"}, ["凡省"] = {wp = "Van Province"}, ["約茲加特省"] = {wp = "Yozgat Province"}, ["宗古爾達克省"] = {wp = "Zonguldak Province"}, ["阿克薩賴省"] = {wp = "Aksaray Province"}, ["拜布爾特省"] = {wp = "Bayburt Province"}, ["卡拉曼省"] = {wp = "Karaman Province"}, ["克勒克卡萊省"] = {wp = "Kırıkkale Province"}, ["巴特曼省"] = {wp = "Batman Province"}, ["蘇爾納克省"] = {wp = "Şırnak Province"}, ["巴爾騰省"] = {wp = "Bartın Province"}, ["阿爾達罕省"] = {wp = "Ardahan Province"}, ["伊迪爾省"] = {wp = "Iğdır Province"}, ["亞洛瓦省"] = {wp = "Yalova Province"}, ["卡拉比克省"] = {wp = "Karabük Province"}, ["基利斯省"] = {wp = "Kilis Province"}, ["奧斯曼尼耶省"] = {wp = "Osmaniye Province"}, ["迪茲傑省"] = {wp = "Düzce Province"}, } export.turkey_group = { placename_to_key = false, default_container = "土耳其", default_placetype = "province", data = export.turkey_provinces, } ----------------------------------------------------------------------------------- -- Vietnam provinces -- ----------------------------------------------------------------------------------- export.vietnam_provinces = { -- Northeast ["北江省"] = {wp = "Bắc Giang Province"}, ["北件省"] = {wp = "Bắc Kạn Province"}, ["高平省"] = {wp = "Cao Bằng Province"}, ["河江省"] = {wp = "Hà Giang Province"}, ["諒山省"] = {wp = "Lạng Sơn Province"}, ["富壽省"] = {wp = "Phú Thọ Province"}, ["廣寧省"] = {wp = "Quảng Ninh Province"}, ["太原省"] = {wp = "Thái Nguyên Province"}, ["宣光省"] = {wp = "Tuyên Quang Province"}, -- Northwest ["老街省"] = {wp = "Lào Cai Province"}, ["安沛省"] = {wp = "Yên Bái Province"}, ["奠邊省"] = {wp = "Điện Biên Province"}, ["和平省"] = {wp = "Hoà Bình Province"}, ["萊州省"] = {wp = "Lai Châu Province"}, ["山羅省"] = {wp = "Sơn La Province"}, -- Red River Delta ["北寧省"] = {wp = "Bắc Ninh Province"}, ["河南省"] = {wp = "Hà Nam Province"}, ["海陽省"] = {wp = "Hải Dương Province"}, ["興安省"] = {wp = "Hưng Yên Province"}, ["南定省"] = {wp = "Nam Định Province"}, ["寧平省"] = {wp = "Ninh Bình Province"}, ["太平省"] = {wp = "Thái Bình Province"}, ["永福省"] = {wp = "Vĩnh Phúc Province"}, -- North Central Coast ["河靜省"] = {wp = "Hà Tĩnh Province"}, ["乂安省"] = {wp = "Nghệ An Province"}, ["廣平省"] = {wp = "Quảng Bình Province"}, ["廣治省"] = {wp = "Quảng Trị Province"}, ["清化省"] = {wp = "Thanh Hoá Province"}, -- Central Highlands ["得樂省"] = {wp = "Đắk Lắk Province"}, ["得農省"] = {wp = "Đăk Nông Province"}, ["嘉萊省"] = {wp = "Gia Lai Province"}, ["崑嵩省"] = {wp = "Kon Tum Province"}, ["林同省"] = {wp = "Lâm Đồng Province"}, -- South Central Coast ["平定省"] = {wp = "Bình Định Province"}, ["平順省"] = {wp = "Bình Thuận Province"}, ["慶和省"] = {wp = "Khánh Hoà Province"}, ["寧順省"] = {wp = "Ninh Thuận Province"}, ["富安省"] = {wp = "Phú Yên Province"}, ["廣南省"] = {wp = "Quảng Nam Province"}, ["廣義省"] = {wp = "Quảng Ngãi Province"}, -- Southeast ["巴地-頭頓省"] = {wp = "Bà Rịa–Vũng Tàu Province"}, ["平陽省"] = {wp = "Bình Dương Province"}, ["平福省"] = {wp = "Bình Phước Province"}, ["同奈省"] = {wp = "Đồng Nai Province"}, ["西寧省"] = {wp = "Tây Ninh Province"}, -- Mekong Delta ["安江省"] = {wp = "An Giang Province"}, ["薄寮省"] = {wp = "Bạc Liêu Province"}, ["檳椥省"] = {wp = "Bến Tre Province"}, ["金甌省"] = {wp = "Cà Mau Province"}, ["同塔省"] = {wp = "Đồng Tháp Province"}, ["後江省"] = {wp = "Hậu Giang Province"}, ["堅江省"] = {wp = "Kiên Giang Province"}, ["龍安省"] = {wp = "Long An Province"}, ["朔莊省"] = {wp = "Sóc Trăng Province"}, ["前江省"] = {wp = "Tiền Giang Province"}, ["茶榮省"] = {wp = "Trà Vinh Province"}, ["永隆省"] = {wp = "Vĩnh Long Province"}, } export.vietnam_group = { placename_to_key = false, default_container = "越南", default_placetype = "province", data = export.vietnam_provinces, } ----------------------------------------------------------------------------------- -- Nigeria states -- ----------------------------------------------------------------------------------- export.nigeria_states = { ["阿比亞州"] = {wp = "Abia State"}, ["阿達馬瓦州"] = {wp = "Adamawa State"}, ["阿誇伊博姆州"] = {wp = "Akwa Ibom State"}, ["阿南布拉州"] = {wp = "Anambra State"}, ["包奇州"] = {wp = "Bauchi State"}, ["貝耶薩州"] = {wp = "Bayelsa State"}, ["貝努埃州"] = {wp = "Benue State"}, ["博爾諾州"] = {wp = "Borno State"}, ["跨河州"] = {wp = "Cross River State"}, ["三角洲州"] = {wp = "Delta State"}, ["埃博尼州"] = {wp = "Ebonyi State"}, ["埃多州"] = {wp = "Edo State"}, ["埃基蒂州"] = {wp = "Ekiti State"}, ["埃努古州"] = {wp = "Enugu State"}, ["阿布賈聯邦首都轄區"] = {placetype = {"federal territory", "territory", "state"}, the = true, wp = "Federal Capital Territory, Nigeria"}, ["貢貝州"] = {wp = "Gombe State"}, ["伊莫州"] = {wp = "Imo State"}, ["吉加瓦州"] = {wp = "Jigawa State"}, ["卡杜納州"] = {wp = "Kaduna State"}, ["卡諾州"] = {wp = "Kano State"}, ["卡齊納州"] = {wp = "Katsina State"}, ["克比州"] = {wp = "Kebbi State"}, ["科吉州"] = {wp = "Kogi State"}, ["誇拉州"] = {wp = "Kwara State"}, ["拉各斯州"] = {wp = "Lagos State"}, ["納薩拉瓦州"] = {wp = "Nasarawa State"}, ["尼日爾州"] = {wp = "Niger State"}, ["奧貢州"] = {wp = "Ogun State"}, ["翁多州"] = {wp = "Ondo State"}, ["奧順州"] = {wp = "Osun State"}, ["奧約州"] = {wp = "Oyo State"}, ["高原州"] = {wp = "Plateau State"}, ["河流州"] = {wp = "Rivers State"}, ["索科托州"] = {wp = "Sokoto State"}, ["塔拉巴州"] = {wp = "Taraba State"}, ["約貝州"] = {wp = "Yobe State"}, ["贊法拉州"] = {wp = "Zamfara State"}, } export.nigeria_group = { placename_to_key = false, default_container = "奈及利亞", default_placetype = "state", data = export.nigeria_states, } ----------------------------------------------------------------------------------- -- Selected city groups -- ----------------------------------------------------------------------------------- -- Key world cities frequently used as holonyms (entries covered by dedicated city groups removed) export.misc_cities = { -- Americas ["費爾法克斯"] = {container = "弗吉尼亞", placetype = "city", is_city = true, wp = "Fairfax, Virginia"}, ["斯克蘭頓"] = {container = "賓夕法尼亞", placetype = "city", is_city = true, wp = "Scranton, Pennsylvania"}, ["里約熱內盧市"] = {container = "巴西", placetype = "city", is_city = true, wp = "Rio de Janeiro"}, ["布宜諾斯艾利斯"] = {container = "阿根廷", placetype = "city", is_city = true, wp = "Buenos Aires"}, ["聖地牙哥"] = {container = "智利", placetype = "city", is_city = true, wp = "Santiago"}, ["波哥大"] = {container = "哥倫比亞", placetype = "city", is_city = true, wp = "Bogotá"}, ["利馬"] = {container = "秘魯", placetype = "city", is_city = true, wp = "Lima"}, -- Europe ["阿姆斯特丹"] = {container = "荷蘭", placetype = "city", is_city = true, wp = "Amsterdam"}, ["布魯塞爾"] = {container = "比利時", placetype = "city", is_city = true, wp = "Brussels"}, ["維也納"] = {container = "奧地利", placetype = "city", is_city = true, wp = "Vienna"}, ["伊斯坦布爾"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Istanbul"}, ["基輔"] = {container = "烏克蘭", placetype = "city", is_city = true, wp = "Kyiv"}, ["華沙"] = {container = "波蘭", placetype = "city", is_city = true, wp = "Warsaw"}, ["布拉格"] = {container = "捷克", placetype = "city", is_city = true, wp = "Prague"}, ["布達佩斯"] = {container = "匈牙利", placetype = "city", is_city = true, wp = "Budapest"}, ["斯德哥爾摩"] = {container = "瑞典", placetype = "city", is_city = true, wp = "Stockholm"}, ["赫爾辛基"] = {container = "芬蘭", placetype = "city", is_city = true, wp = "Helsinki"}, ["奧斯陸"] = {container = "挪威", placetype = "city", is_city = true, wp = "Oslo"}, ["哥本哈根"] = {container = "丹麥", placetype = "city", is_city = true, wp = "Copenhagen"}, ["里斯本"] = {container = "葡萄牙", placetype = "city", is_city = true, wp = "Lisbon"}, ["雅典"] = {container = "希臘", placetype = "city", is_city = true, wp = "Athens"}, ["蘇黎世"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Zurich"}, ["日內瓦"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Geneva"}, ["第比利斯"] = {container = "格魯吉亞", placetype = "city", is_city = true, wp = "Tbilisi"}, ["貝爾格勒"] = {container = "塞爾維亞", placetype = "city", is_city = true, wp = "Belgrade"}, ["薩格勒布"] = {container = "克羅埃西亞", placetype = "city", is_city = true, wp = "Zagreb"}, ["都柏林"] = {container = "愛爾蘭", placetype = "city", is_city = true, wp = "Dublin"}, -- Asia ["北京市"] = {container = "北京", placetype = "city", is_city = true, wp = "Beijing"}, ["上海市"] = {container = "上海", placetype = "city", is_city = true, wp = "Shanghai"}, ["德里市"] = {container = "德里", placetype = "city", is_city = true, wp = "Delhi"}, ["曼谷"] = {container = "泰國", placetype = "city", is_city = true, wp = "Bangkok"}, ["吉隆坡"] = {container = "馬來西亞", placetype = "city", is_city = true, wp = "Kuala Lumpur"}, ["開羅"] = {container = "埃及", placetype = "city", is_city = true, wp = "Cairo"}, ["德黑蘭"] = {container = "伊朗", placetype = "city", is_city = true, wp = "Tehran"}, ["安卡拉"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Ankara"}, -- Oceania ["奧克蘭"] = {container = "紐西蘭", placetype = "city", is_city = true, wp = "Auckland"}, -- Africa ["開普敦"] = {container = "南非", placetype = "city", is_city = true, wp = "Cape Town"}, ["約翰尼斯堡"] = {container = "南非", placetype = "city", is_city = true, wp = "Johannesburg"}, ["奈洛比"] = {container = "肯亞", placetype = "city", is_city = true, wp = "Nairobi"}, } export.misc_cities_group = { placename_to_key = false, default_placetype = "city", default_is_city = true, data = export.misc_cities, } ----------------------------------------------------------------------------------- -- Brazil states (for testcase coverage) -- ----------------------------------------------------------------------------------- export.brazil_states = { ["里約熱內盧州"] = {wp = "Rio de Janeiro (state)"}, ["里約熱內盧"] = {alias_of = "里約熱內盧州"}, ["聖保羅州"] = {wp = "São Paulo (state)"}, ["米納斯吉拉斯"] = {wp = "Minas Gerais"}, ["巴伊亞"] = {wp = "Bahia"}, ["亞馬遜州"] = {wp = "Amazonas (Brazilian state)"}, ["帕拉州"] = {wp = "Pará"}, ["伯南布哥州"] = {wp = "Pernambuco"}, ["南里奧格蘭德州"] = {wp = "Rio Grande do Sul"}, ["巴西聯邦區"] = {wp = "Federal District (Brazil)"}, ["塞阿拉州"] = {wp = "Ceará"}, ["巴拉那州"] = {wp = "Paraná (state)"}, ["戈亞斯州"] = {wp = "Goiás"}, ["聖埃斯皮里圖州"] = {wp = "Espírito Santo"}, ["馬拉尼昂州"] = {wp = "Maranhão"}, ["北里奧格蘭德州"] = {wp = "Rio Grande do Norte"}, ["聖卡塔琳娜州"] = {wp = "Santa Catarina (state)"}, ["阿拉戈亞斯州"] = {wp = "Alagoas"}, ["帕拉伊巴州"] = {wp = "Paraíba"}, ["皮奧伊州"] = {wp = "Piauí"}, ["阿克里州"] = {wp = "Acre (state)"}, ["阿馬帕州"] = {wp = "Amapá"}, ["馬托格羅索州"] = {wp = "Mato Grosso"}, ["南馬托格羅索州"] = {wp = "Mato Grosso do Sul"}, ["朗多尼亞州"] = {wp = "Rondônia"}, ["羅賴馬州"] = {wp = "Roraima"}, ["塞爾希培州"] = {wp = "Sergipe"}, ["托坎廷斯州"] = {wp = "Tocantins"}, } export.brazil_group = { placename_to_key = false, default_container = "巴西", default_placetype = "state", data = export.brazil_states, } ----------------------------------------------------------------------------------- -- France regions -- ----------------------------------------------------------------------------------- export.france_administrative_regions = { ["奧弗涅-隆河-阿爾卑斯大區"] = {wp = "Auvergne-Rhône-Alpes"}, ["勃艮第-弗朗什-孔泰大區"] = {wp = "Bourgogne-Franche-Comté"}, ["布列塔尼大區"] = {wp = "Brittany (administrative region)"}, ["中央-羅亞爾河谷大區"] = {wp = "Centre-Val de Loire"}, ["科西嘉大區"] = {wp = "Corsica"}, ["大東部大區"] = {wp = "Grand Est"}, ["上法蘭西大區"] = {wp = "Hauts-de-France"}, ["法蘭西島大區"] = {wp = "Île-de-France"}, ["諾曼底大區"] = {wp = "Normandy"}, ["新阿基坦大區"] = {wp = "Nouvelle-Aquitaine"}, ["奧克西塔尼大區"] = {wp = "Occitanie"}, ["盧瓦爾河地區大區"] = {wp = "Pays de la Loire"}, ["普羅旺斯-阿爾卑斯-蔚藍海岸大區"] = {wp = "Provence-Alpes-Côte d'Azur"}, -- Old region names (pre-2016) as aliases ["北部-加萊海峽大區"] = {wp = "Nord-Pas-de-Calais"}, ["加來海峽大區"] = {alias_of = "北部-加萊海峽大區"}, } export.france_group = { placename_to_key = false, default_container = "法國", default_placetype = "region", data = export.france_administrative_regions, } -- France departments (abbreviated list) export.france_departments = { ["北部省"] = {wp = "Nord (department)", container = "上法蘭西大區"}, ["加來海峽省"] = {wp = "Pas-de-Calais", container = "上法蘭西大區"}, ["巴黎市"] = {wp = "Paris", container = "法蘭西島大區"}, ["上塞納省"] = {wp = "Hauts-de-Seine", container = "法蘭西島大區"}, } export.france_departments_group = { placename_to_key = false, default_container = "法國", default_placetype = "department", data = export.france_departments, } ----------------------------------------------------------------------------------- -- Austria states -- ----------------------------------------------------------------------------------- export.austria_states = { ["維也納州"] = {wp = "Vienna (state)"}, ["下奧地利州"] = {wp = "Lower Austria"}, ["上奧地利州"] = {wp = "Upper Austria"}, ["施泰爾馬克州"] = {wp = "Styria"}, ["蒂羅爾州"] = {wp = "Tyrol (state)"}, ["克恩頓州"] = {wp = "Carinthia"}, ["薩爾茨堡州"] = {wp = "Salzburg (state)"}, ["福拉爾貝格州"] = {wp = "Vorarlberg"}, ["布根蘭州"] = {wp = "Burgenland"}, } export.austria_group = { placename_to_key = false, default_container = "奧地利", default_placetype = "state", data = export.austria_states, } ----------------------------------------------------------------------------------- -- Bangladesh divisions -- ----------------------------------------------------------------------------------- export.bangladesh_divisions = { ["巴里薩爾專區"] = {wp = "Barisal Division"}, ["吉大港專區"] = {wp = "Chittagong Division"}, ["達卡專區"] = {wp = "Dhaka Division"}, ["庫爾納專區"] = {wp = "Khulna Division"}, ["邁門辛專區"] = {wp = "Mymensingh Division"}, ["拉吉沙希專區"] = {wp = "Rajshahi Division"}, ["朗普爾專區"] = {wp = "Rangpur Division"}, ["錫爾赫特專區"] = {wp = "Sylhet Division"}, } export.bangladesh_group = { placename_to_key = false, default_container = "孟加拉國", default_placetype = "division", data = export.bangladesh_divisions, } ----------------------------------------------------------------------------------- -- Egypt governorates -- ----------------------------------------------------------------------------------- export.egypt_governorates = { ["開羅省"] = {wp = "Cairo Governorate"}, ["吉薩省"] = {wp = "Giza Governorate"}, ["夏爾基亞省"] = {wp = "Sharqia Governorate"}, ["達卡利亞省"] = {wp = "Dakahlia Governorate"}, ["貝海拉省"] = {wp = "Beheira Governorate"}, ["明亞省"] = {wp = "Minya Governorate"}, ["蓋柳比亞省"] = {wp = "Qalyubia Governorate"}, ["索哈傑省"] = {wp = "Sohag Governorate"}, ["亞歷山大省"] = {wp = "Alexandria Governorate"}, ["加爾比亞省"] = {wp = "Gharbia Governorate"}, ["艾斯尤特省"] = {wp = "Asyut Governorate"}, ["莫諾菲亞省"] = {wp = "Monufia Governorate"}, ["法尤姆省"] = {wp = "Faiyum Governorate"}, ["卡夫爾謝赫省"] = {wp = "Kafr El Sheikh Governorate"}, ["基納省"] = {wp = "Qena Governorate"}, ["本尼蘇威夫省"] = {wp = "Beni Suef Governorate"}, ["達米埃塔省"] = {wp = "Damietta Governorate"}, ["阿斯旺省"] = {wp = "Aswan Governorate"}, ["伊斯梅利亞省"] = {wp = "Ismailia Governorate"}, ["盧克索省"] = {wp = "Luxor Governorate"}, ["蘇伊士省"] = {wp = "Suez Governorate"}, ["塞德港省"] = {wp = "Port Said Governorate"}, ["馬特魯省"] = {wp = "Matrouh Governorate"}, ["北西奈省"] = {wp = "North Sinai Governorate"}, ["紅海省"] = {wp = "Red Sea Governorate"}, ["新河谷省"] = {wp = "New Valley Governorate"}, ["南西奈省"] = {wp = "South Sinai Governorate"}, } export.egypt_group = { placename_to_key = false, default_container = "埃及", default_placetype = "governorate", data = export.egypt_governorates, } ----------------------------------------------------------------------------------- -- Finland regions -- ----------------------------------------------------------------------------------- export.finland_regions = { ["拉普蘭省"] = {wp = "Lapland (Finland)"}, ["北奧斯特博滕省"] = {wp = "North Ostrobothnia"}, ["卡亞尼省"] = {wp = "Kainuu"}, ["北卡累利亞省"] = {wp = "North Karelia"}, ["北薩沃省"] = {wp = "Northern Savonia"}, ["南薩沃省"] = {wp = "Southern Savonia"}, ["南卡累利亞省"] = {wp = "South Karelia"}, ["中芬蘭省"] = {wp = "Central Finland"}, ["南奧斯特博滕省"] = {wp = "South Ostrobothnia"}, ["奧斯特博滕省"] = {wp = "Ostrobothnia (region)"}, ["中奧斯特博滕省"] = {wp = "Central Ostrobothnia"}, ["皮爾卡馬省"] = {wp = "Pirkanmaa"}, ["薩塔昆塔省"] = {wp = "Satakunta"}, ["派亞特哈米省"] = {wp = "Päijät-Häme"}, ["坎塔哈米省"] = {wp = "Tavastia Proper"}, ["屈米河谷省"] = {wp = "Kymenlaakso"}, ["烏西馬省"] = {wp = "Uusimaa"}, ["西南芬蘭省"] = {wp = "Southwest Finland"}, ["奧蘭群島"] = {wp = "Åland", placetype = {"autonomous region", "region"}}, } export.finland_group = { placename_to_key = false, default_container = "芬蘭", default_placetype = "region", data = export.finland_regions, } ----------------------------------------------------------------------------------- -- Greece regions -- ----------------------------------------------------------------------------------- export.greece_regions = { ["阿提卡大區"] = {wp = "Attica (region)"}, ["中希臘大區"] = {wp = "Central Greece (administrative region)"}, ["中馬其頓大區"] = {wp = "Central Macedonia"}, ["克里特大區"] = {wp = "Crete"}, ["東馬其頓和色雷斯大區"] = {wp = "Eastern Macedonia and Thrace"}, ["伊庇魯斯大區"] = {wp = "Epirus (region)"}, ["愛奧尼亞群島大區"] = {wp = "Ionian Islands (region)"}, ["北愛琴大區"] = {wp = "North Aegean"}, ["伯羅奔尼撒大區"] = {wp = "Peloponnese (region)"}, ["南愛琴大區"] = {wp = "South Aegean"}, ["塞薩利大區"] = {wp = "Thessaly"}, ["西希臘大區"] = {wp = "Western Greece"}, ["西馬其頓大區"] = {wp = "Western Macedonia"}, ["阿托斯山"] = {wp = "Monastic community of Mount Athos", placetype = {"autonomous region", "region"}}, } export.greece_group = { placename_to_key = false, default_container = "希臘", default_placetype = "region", data = export.greece_regions, } ----------------------------------------------------------------------------------- -- Indonesia provinces -- ----------------------------------------------------------------------------------- export.indonesia_provinces = { ["亞齊省"] = {wp = "Aceh"}, ["峇里省"] = {wp = "Bali"}, ["邦加勿里洞省"] = {wp = "Bangka Belitung Islands"}, ["萬丹省"] = {wp = "Banten"}, ["明古魯省"] = {wp = "Bengkulu"}, ["中爪哇省"] = {wp = "Central Java"}, ["中加里曼丹省"] = {wp = "Central Kalimantan"}, ["中巴布亞省"] = {wp = "Central Papua"}, ["中蘇拉威西省"] = {wp = "Central Sulawesi"}, ["東爪哇省"] = {wp = "East Java"}, ["東加里曼丹省"] = {wp = "East Kalimantan"}, ["東努沙登加拉省"] = {wp = "East Nusa Tenggara"}, ["哥倫打洛省"] = {wp = "Gorontalo"}, ["巴布亞高地省"] = {wp = "Highland Papua"}, ["雅加達首都特區"] = {wp = "Jakarta"}, ["占碑省"] = {wp = "Jambi"}, ["楠榜省"] = {wp = "Lampung"}, ["馬魯古省"] = {wp = "Maluku"}, ["北加里曼丹省"] = {wp = "North Kalimantan"}, ["北馬魯古省"] = {wp = "North Maluku"}, ["北蘇拉威西省"] = {wp = "North Sulawesi"}, ["北巴布亞省"] = {wp = "North Papua"}, ["北蘇門答臘省"] = {wp = "North Sumatra"}, ["巴布亞省"] = {wp = "Papua (province)"}, ["廖內省"] = {wp = "Riau"}, ["廖內群島省"] = {wp = "Riau Islands"}, ["東南蘇拉威西省"] = {wp = "Southeast Sulawesi"}, ["南加里曼丹省"] = {wp = "South Kalimantan"}, ["南巴布亞省"] = {wp = "South Papua"}, ["南蘇拉威西省"] = {wp = "South Sulawesi"}, ["南蘇門答臘省"] = {wp = "South Sumatra"}, ["西南巴布亞省"] = {wp = "Southwest Papua"}, ["西爪哇省"] = {wp = "West Java"}, ["西加里曼丹省"] = {wp = "West Kalimantan"}, ["西努沙登加拉省"] = {wp = "West Nusa Tenggara"}, ["西巴布亞省"] = {wp = "West Papua (province)"}, ["西蘇拉威西省"] = {wp = "West Sulawesi"}, ["西蘇門答臘省"] = {wp = "West Sumatra"}, ["日惹特區"] = {wp = "Special Region of Yogyakarta"}, } export.indonesia_group = { placename_to_key = false, default_container = "印度尼西亞", default_placetype = "province", data = export.indonesia_provinces, } ----------------------------------------------------------------------------------- -- Lebanon governorates -- ----------------------------------------------------------------------------------- export.lebanon_governorates = { ["阿卡爾省"] = {wp = "Akkar Governorate"}, ["巴勒貝克-赫爾梅勒省"] = {wp = "Baalbek-Hermel Governorate"}, ["貝魯特省"] = {wp = "Beirut Governorate"}, ["貝卡省"] = {wp = "Beqaa Governorate"}, ["克塞旺-裘拜勒省"] = {wp = "Keserwan-Jbeil Governorate"}, ["黎巴嫩山省"] = {wp = "Mount Lebanon Governorate"}, ["納巴蒂耶省"] = {wp = "Nabatieh Governorate"}, ["北部省(黎巴嫩)"] = {wp = "North Governorate (Lebanon)", no_auto_augment_container = true}, ["南部省(黎巴嫩)"] = {wp = "South Governorate (Lebanon)", no_auto_augment_container = true}, } export.lebanon_group = { placename_to_key = false, default_container = "黎巴嫩", default_placetype = "governorate", data = export.lebanon_governorates, } ----------------------------------------------------------------------------------- -- Malaysia states -- ----------------------------------------------------------------------------------- export.malaysia_states = { ["柔佛州"] = {wp = "Johor"}, ["吉打州"] = {wp = "Kedah"}, ["吉蘭丹州"] = {wp = "Kelantan"}, ["馬六甲州"] = {wp = "Malacca"}, ["森美蘭州"] = {wp = "Negeri Sembilan"}, ["彭亨州"] = {wp = "Pahang"}, ["檳城州"] = {wp = "Penang"}, ["霹靂州"] = {wp = "Perak"}, ["玻璃市州"] = {wp = "Perlis"}, ["沙巴州"] = {wp = "Sabah"}, ["砂拉越州"] = {wp = "Sarawak"}, ["雪蘭莪州"] = {wp = "Selangor"}, ["登嘉樓州"] = {wp = "Terengganu"}, } export.malaysia_group = { placename_to_key = false, default_container = "馬來西亞", default_placetype = "state", data = export.malaysia_states, } ----------------------------------------------------------------------------------- -- Malta regions -- ----------------------------------------------------------------------------------- export.malta_regions = { ["東部區(馬爾他)"] = {wp = "Eastern Region, Malta", no_auto_augment_container = true}, ["戈佐區"] = {wp = "Gozo Region"}, ["北部區(馬爾他)"] = {wp = "Northern Region, Malta", no_auto_augment_container = true}, ["港口區"] = {wp = "Port Region, Malta"}, ["南部區(馬爾他)"] = {wp = "Southern Region, Malta", no_auto_augment_container = true}, ["西部區(馬爾他)"] = {wp = "Western Region, Malta", no_auto_augment_container = true}, } export.malta_group = { placename_to_key = false, default_container = "馬爾他", default_placetype = "region", data = export.malta_regions, } ----------------------------------------------------------------------------------- -- Mexico states -- ----------------------------------------------------------------------------------- export.mexico_states = { ["阿瓜斯卡連特斯州"] = {wp = "Aguascalientes"}, ["下加利福尼亞州"] = {wp = "Baja California"}, ["南下加利福尼亞州"] = {wp = "Baja California Sur"}, ["坎佩切州"] = {wp = "Campeche"}, ["恰帕斯州"] = {wp = "Chiapas"}, ["奇瓦瓦州"] = {wp = "Chihuahua (state)"}, ["科阿韋拉州"] = {wp = "Coahuila"}, ["科利馬州"] = {wp = "Colima"}, ["杜蘭戈州"] = {wp = "Durango"}, ["瓜納華托州"] = {wp = "Guanajuato"}, ["格雷羅州"] = {wp = "Guerrero"}, ["伊達爾戈州"] = {wp = "Hidalgo (state)"}, ["哈利斯科州"] = {wp = "Jalisco"}, ["墨西哥州"] = {wp = "State of Mexico"}, ["米卻肯州"] = {wp = "Michoacán"}, ["莫雷洛斯州"] = {wp = "Morelos"}, ["納亞里特州"] = {wp = "Nayarit"}, ["新萊昂州"] = {wp = "Nuevo León"}, ["瓦哈卡州"] = {wp = "Oaxaca"}, ["普埃布拉州"] = {wp = "Puebla"}, ["克雷塔羅州"] = {wp = "Querétaro"}, ["金塔納羅奧州"] = {wp = "Quintana Roo"}, ["聖路易斯波托西州"] = {wp = "San Luis Potosí"}, ["錫那羅亞州"] = {wp = "Sinaloa"}, ["索諾拉州"] = {wp = "Sonora"}, ["塔巴斯科州"] = {wp = "Tabasco (state)"}, ["塔毛利帕斯州"] = {wp = "Tamaulipas"}, ["特拉斯卡拉州"] = {wp = "Tlaxcala"}, ["韋拉克魯斯州"] = {wp = "Veracruz"}, ["尤卡坦州"] = {wp = "Yucatán"}, ["薩卡特卡斯州"] = {wp = "Zacatecas"}, } export.mexico_group = { placename_to_key = false, default_container = "墨西哥", default_placetype = "state", data = export.mexico_states, } ----------------------------------------------------------------------------------- -- Moldova districts and ATUs -- ----------------------------------------------------------------------------------- export.moldova_districts = { ["阿內尼諾伊區"] = {wp = "Anenii Noi District"}, ["巴薩拉比亞斯卡區"] = {wp = "Basarabeasca District"}, ["布里切尼區"] = {wp = "Briceni District"}, ["卡胡爾區"] = {wp = "Cahul District"}, ["坎特米爾區"] = {wp = "Cantemir District"}, ["克勒拉希區"] = {wp = "Călărași District"}, ["考沙尼區"] = {wp = "Căușeni District"}, ["奇米什利亞區"] = {wp = "Cimișlia District"}, ["克里烏列尼區"] = {wp = "Criuleni District"}, ["東杜沙尼區"] = {wp = "Dondușeni District"}, ["德羅基亞區"] = {wp = "Drochia District"}, ["杜巴薩里區"] = {wp = "Dubăsari District"}, ["埃迪涅茨區"] = {wp = "Edineț District"}, ["法勒什蒂區"] = {wp = "Fălești District"}, ["弗洛雷什蒂區"] = {wp = "Florești District"}, ["格洛德尼區"] = {wp = "Glodeni District"}, ["欣切什蒂區"] = {wp = "Hîncești District"}, ["亞洛韋尼區"] = {wp = "Ialoveni District"}, ["萊奧瓦區"] = {wp = "Leova District"}, ["尼斯波雷尼區"] = {wp = "Nisporeni District"}, ["奧克尼察區"] = {wp = "Ocnița District"}, ["奧爾海伊區"] = {wp = "Orhei District"}, ["雷齊納區"] = {wp = "Rezina District"}, ["雷什卡尼區"] = {wp = "Rîșcani District"}, ["辛格雷伊區"] = {wp = "Sîngerei District"}, ["索羅卡區"] = {wp = "Soroca District"}, ["斯特拉沙尼區"] = {wp = "Strășeni District"}, ["紹爾達涅什蒂區"] = {wp = "Șoldănești District"}, ["斯蒂凡沃達區"] = {wp = "Ștefan Vodă District"}, ["塔拉克利亞區"] = {wp = "Taraclia District"}, ["泰萊涅什蒂區"] = {wp = "Telenești District"}, ["翁格尼區"] = {wp = "Ungheni District"}, ["基希訥烏市"] = {wp = "Chișinău", placetype = "municipality"}, ["巴爾茨市"] = {wp = "Bălți", placetype = "municipality"}, ["加告茲自治領土"] = {wp = "Gagauzia", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, ["本德爾市"] = {wp = "Bender, Moldova", placetype = "municipality"}, ["德涅斯特河沿岸"] = {wp = "Transnistria", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, } export.moldova_group = { placename_to_key = false, default_container = "摩爾多瓦", default_placetype = {"district", "raion"}, data = export.moldova_districts, } ----------------------------------------------------------------------------------- -- Morocco regions -- ----------------------------------------------------------------------------------- export.morocco_regions = { ["丹吉爾-得土安-霍賽馬大區"] = {wp = "Tangier-Tetouan-Al Hoceima"}, ["東方大區(摩洛哥)"] = {wp = "Oriental, Morocco"}, ["非斯-梅克內斯大區"] = {wp = "Fez-Meknes"}, ["拉巴特-薩累-肯尼特拉大區"] = {wp = "Rabat-Salé-Kénitra"}, ["貝尼梅拉勒-赫尼夫拉大區"] = {wp = "Béni Mellal-Khénifra"}, ["卡薩布蘭卡-塞塔特大區"] = {wp = "Casablanca-Settat"}, ["馬拉喀什-薩菲大區"] = {wp = "Marrakesh-Safi"}, ["德拉阿-塔菲拉勒特大區"] = {wp = "Drâa-Tafilalet"}, ["蘇斯-馬薩大區"] = {wp = "Souss-Massa"}, ["蓋勒明-烏德農大區"] = {wp = "Guelmim-Oued Noun"}, ["拉阿永-薩基亞-哈姆拉大區"] = {wp = "Laâyoune-Sakia El Hamra"}, ["達赫拉-奧以德達赫卜大區"] = {wp = "Dakhla-Oued Ed-Dahab"}, } export.morocco_group = { placename_to_key = false, default_container = "摩洛哥", default_placetype = "region", data = export.morocco_regions, } ----------------------------------------------------------------------------------- -- Netherlands provinces -- ----------------------------------------------------------------------------------- export.netherlands_provinces = { ["德倫特省"] = {wp = "Drenthe"}, ["弗萊福蘭省"] = {wp = "Flevoland"}, ["弗里斯蘭省"] = {wp = "Friesland"}, ["格爾德蘭省"] = {wp = "Gelderland"}, ["格羅寧根省"] = {wp = "Groningen (province)"}, ["林堡省(荷蘭)"] = {wp = "Limburg (Netherlands)"}, ["北布拉班特省"] = {wp = "North Brabant"}, ["北荷蘭省"] = {wp = "North Holland"}, ["上艾瑟爾省"] = {wp = "Overijssel"}, ["南荷蘭省"] = {wp = "South Holland"}, ["烏特勒支省"] = {wp = "Utrecht (province)"}, ["澤蘭省"] = {wp = "Zeeland"}, } export.netherlands_group = { placename_to_key = false, default_container = "荷蘭", default_placetype = "province", data = export.netherlands_provinces, } ----------------------------------------------------------------------------------- -- New Zealand regions -- ----------------------------------------------------------------------------------- export.new_zealand_regions = { ["北地大區"] = {wp = "Northland Region"}, ["奧克蘭大區"] = {wp = "Auckland Region"}, ["懷卡托大區"] = {wp = "Waikato Region"}, ["豐盛灣大區"] = {wp = "Bay of Plenty Region"}, ["吉斯伯恩大區"] = {wp = "Gisborne District", placetype = {"region", "district"}}, ["霍克斯灣大區"] = {wp = "Hawke's Bay Region"}, ["塔拉納基大區"] = {wp = "Taranaki Region"}, ["馬納瓦圖-旺阿努伊大區"] = {wp = "Manawatū-Whanganui Region"}, ["惠靈頓大區"] = {wp = "Wellington Region"}, ["塔斯曼大區"] = {wp = "Tasman District", placetype = {"region", "district"}}, ["納爾遜大區"] = {wp = "Nelson, New Zealand", placetype = {"region", "city"}, is_city = true}, ["馬爾堡大區"] = {wp = "Marlborough District", placetype = {"region", "district"}}, ["西海岸大區"] = {wp = "West Coast Region"}, ["坎特伯雷大區"] = {wp = "Canterbury Region"}, ["奧塔哥大區"] = {wp = "Otago Region"}, ["南地大區"] = {wp = "Southland Region"}, } export.new_zealand_group = { placename_to_key = false, default_container = "紐西蘭", default_placetype = "region", data = export.new_zealand_regions, } ----------------------------------------------------------------------------------- -- Norway counties -- ----------------------------------------------------------------------------------- export.norwegian_counties = { ["奧斯陸縣"] = {wp = "Oslo"}, ["羅加蘭縣"] = {wp = "Rogaland"}, ["莫雷-羅姆斯達爾縣"] = {wp = "Møre og Romsdal"}, ["諾爾蘭縣"] = {wp = "Nordland"}, ["東福爾縣"] = {wp = "Østfold"}, ["阿克斯胡斯縣"] = {wp = "Akershus"}, ["布斯克呂縣"] = {wp = "Buskerud"}, ["因蘭德縣"] = {wp = "Innlandet"}, ["西福爾縣"] = {wp = "Vestfold"}, ["泰勒馬克縣"] = {wp = "Telemark"}, ["阿格德爾縣"] = {wp = "Agder"}, ["西地縣"] = {wp = "Vestland"}, ["特倫德拉格縣"] = {wp = "Trøndelag"}, ["特羅姆斯縣"] = {wp = "Troms"}, ["芬馬克縣"] = {wp = "Finnmark"}, } export.norway_group = { placename_to_key = false, default_container = "挪威", default_placetype = "county", data = export.norwegian_counties, } ----------------------------------------------------------------------------------- -- Pakistan provinces and territories -- ----------------------------------------------------------------------------------- export.pakistan_provinces_and_territories = { ["自由克什米爾"] = {wp = "Azad Kashmir", placetype = {"administrative territory", "autonomous territory", "territory"}}, ["俾路支省"] = {wp = "Balochistan, Pakistan"}, ["吉爾吉特-巴爾蒂斯坦"] = {wp = "Gilgit-Baltistan", placetype = {"administrative territory", "territory"}}, ["伊斯蘭馬巴德首都直轄區"] = {wp = "Islamabad Capital Territory", placetype = {"federal territory", "administrative territory", "territory"}}, ["開伯爾-普赫圖赫瓦省"] = {wp = "Khyber Pakhtunkhwa"}, ["旁遮普省(巴基斯坦)"] = {wp = "Punjab, Pakistan"}, ["信德省"] = {wp = "Sindh"}, } export.pakistan_group = { placename_to_key = false, default_container = "巴基斯坦", default_placetype = "province", data = export.pakistan_provinces_and_territories, } ----------------------------------------------------------------------------------- -- Philippines provinces -- ----------------------------------------------------------------------------------- export.philippines_provinces = { ["阿布拉省"] = {wp = "Abra (province)"}, ["北阿古桑省"] = {wp = "Agusan del Norte"}, ["南阿古桑省"] = {wp = "Agusan del Sur"}, ["阿克蘭省"] = {wp = "Aklan"}, ["阿爾拜省"] = {wp = "Albay"}, ["安蒂克省"] = {wp = "Antique (province)"}, ["阿帕亞沃省"] = {wp = "Apayao"}, ["奧羅拉省"] = {wp = "Aurora (province)"}, ["巴西蘭省"] = {wp = "Basilan"}, ["巴丹省"] = {wp = "Bataan"}, ["巴達內斯省"] = {wp = "Batanes"}, ["八打雁省"] = {wp = "Batangas"}, ["本格特省"] = {wp = "Benguet"}, ["比利蘭省"] = {wp = "Biliran"}, ["保和省"] = {wp = "Bohol"}, ["布基農省"] = {wp = "Bukidnon"}, ["布拉干省"] = {wp = "Bulacan"}, ["卡加延省"] = {wp = "Cagayan"}, ["北甲馬仁省"] = {wp = "Camarines Norte"}, ["南甲馬仁省"] = {wp = "Camarines Sur"}, ["卡米金省"] = {wp = "Camiguin"}, ["卡皮斯省"] = {wp = "Capiz"}, ["卡坦端內斯省"] = {wp = "Catanduanes"}, ["甲米地省"] = {wp = "Cavite"}, ["宿霧省"] = {wp = "Cebu"}, ["哥打巴托省"] = {wp = "Cotabato"}, ["達沃德奧羅省"] = {wp = "Davao de Oro"}, ["北達沃省"] = {wp = "Davao del Norte"}, ["南達沃省"] = {wp = "Davao del Sur"}, ["西達沃省"] = {wp = "Davao Occidental"}, ["東達沃省"] = {wp = "Davao Oriental"}, ["迪納加特群島省"] = {wp = "Dinagat Islands"}, ["東薩馬省"] = {wp = "Eastern Samar"}, ["吉馬拉斯省"] = {wp = "Guimaras"}, ["伊富高省"] = {wp = "Ifugao"}, ["北伊羅科斯省"] = {wp = "Ilocos Norte"}, ["南伊羅科斯省"] = {wp = "Ilocos Sur"}, ["伊洛伊洛省"] = {wp = "Iloilo"}, ["伊莎貝拉省"] = {wp = "Isabela (province)"}, ["卡林加省"] = {wp = "Kalinga (province)"}, ["拉烏尼翁省"] = {wp = "La Union"}, ["拉古納省"] = {wp = "Laguna (province)"}, ["北拉瑙省"] = {wp = "Lanao del Norte"}, ["南拉瑙省"] = {wp = "Lanao del Sur"}, ["萊特省"] = {wp = "Leyte (province)"}, ["北馬京達瑙省"] = {wp = "Maguindanao del Norte"}, ["南馬京達瑙省"] = {wp = "Maguindanao del Sur"}, ["馬林杜克省"] = {wp = "Marinduque"}, ["馬斯巴特省"] = {wp = "Masbate"}, ["西米薩米斯省"] = {wp = "Misamis Occidental"}, ["東米薩米斯省"] = {wp = "Misamis Oriental"}, ["山岳省"] = {wp = "Mountain Province"}, ["西內格羅斯省"] = {wp = "Negros Occidental"}, ["東內格羅斯省"] = {wp = "Negros Oriental"}, ["北薩馬省"] = {wp = "Northern Samar"}, ["新怡詩夏省"] = {wp = "Nueva Ecija"}, ["新比斯開省"] = {wp = "Nueva Vizcaya"}, ["西民都洛省"] = {wp = "Occidental Mindoro"}, ["東民都洛省"] = {wp = "Oriental Mindoro"}, ["巴拉望省"] = {wp = "Palawan"}, ["邦板牙省"] = {wp = "Pampanga"}, ["邦阿西楠省"] = {wp = "Pangasinan"}, ["奎松省"] = {wp = "Quezon"}, ["基里諾省"] = {wp = "Quirino"}, ["黎剎省"] = {wp = "Rizal (province)"}, ["朗布隆省"] = {wp = "Romblon"}, ["薩馬省"] = {wp = "Samar (province)"}, ["薩蘭加尼省"] = {wp = "Sarangani"}, ["錫基霍爾省"] = {wp = "Siquijor"}, ["索索貢省"] = {wp = "Sorsogon"}, ["南哥打巴托省"] = {wp = "South Cotabato"}, ["南萊特省"] = {wp = "Southern Leyte"}, ["蘇丹庫達拉省"] = {wp = "Sultan Kudarat"}, ["蘇祿省"] = {wp = "Sulu"}, ["北蘇里高省"] = {wp = "Surigao del Norte"}, ["南蘇里高省"] = {wp = "Surigao del Sur"}, ["塔拉克省"] = {wp = "Tarlac"}, ["塔威塔威省"] = {wp = "Tawi-Tawi"}, ["三描禮士省"] = {wp = "Zambales"}, ["北三寶顏省"] = {wp = "Zamboanga del Norte"}, ["南三寶顏省"] = {wp = "Zamboanga del Sur"}, ["三寶顏錫布蓋省"] = {wp = "Zamboanga Sibugay"}, ["馬尼拉都會區"] = {wp = "Metro Manila", placetype = {"region", "province"}}, } export.philippines_group = { placename_to_key = false, default_container = "菲律賓", default_placetype = "province", data = export.philippines_provinces, } ----------------------------------------------------------------------------------- -- Poland voivodeships -- ----------------------------------------------------------------------------------- export.poland_voivodeships = { ["下西里西亞省"] = {wp = "Lower Silesian Voivodeship"}, ["庫亞維-波美拉尼亞省"] = {wp = "Kuyavian-Pomeranian Voivodeship"}, ["盧布林省"] = {wp = "Lublin Voivodeship"}, ["盧布斯省"] = {wp = "Lubusz Voivodeship"}, ["羅茲省"] = {wp = "Łódź Voivodeship"}, ["小波蘭省"] = {wp = "Lesser Poland Voivodeship"}, ["馬佐夫舍省"] = {wp = "Masovian Voivodeship"}, ["奧波萊省"] = {wp = "Opole Voivodeship"}, ["喀爾巴阡山省"] = {wp = "Subcarpathian Voivodeship"}, ["波德拉謝省"] = {wp = "Podlaskie Voivodeship"}, ["波美拉尼亞省"] = {wp = "Pomeranian Voivodeship"}, ["西里西亞省"] = {wp = "Silesian Voivodeship"}, ["神聖十字省"] = {wp = "Świętokrzyskie Voivodeship"}, ["瓦爾米亞-馬祖里省"] = {wp = "Warmian-Masurian Voivodeship"}, ["大波蘭省"] = {wp = "Greater Poland Voivodeship"}, ["西波美拉尼亞省"] = {wp = "West Pomeranian Voivodeship"}, } export.poland_group = { placename_to_key = false, default_container = "波蘭", default_placetype = "voivodeship", data = export.poland_voivodeships, } ----------------------------------------------------------------------------------- -- Portugal districts and autonomous regions -- ----------------------------------------------------------------------------------- export.portugal_districts_and_autonomous_regions = { ["亞速爾群島"] = {wp = "Azores", placetype = {"autonomous region", "region"}}, ["阿維羅區"] = {wp = "Aveiro District"}, ["貝雅區"] = {wp = "Beja District"}, ["布拉加區"] = {wp = "Braga District"}, ["布拉干薩區"] = {wp = "Bragança District"}, ["卡斯特洛布蘭科區"] = {wp = "Castelo Branco District"}, ["科英布拉區"] = {wp = "Coimbra District"}, ["埃武拉區"] = {wp = "Évora District"}, ["法魯區"] = {wp = "Faro District"}, ["瓜達區"] = {wp = "Guarda District"}, ["萊里亞區"] = {wp = "Leiria District"}, ["里斯本區"] = {wp = "Lisbon District"}, ["馬德拉島"] = {wp = "Madeira", placetype = {"autonomous region", "region"}}, ["波塔萊格里區"] = {wp = "Portalegre District"}, ["波爾圖區"] = {wp = "Porto District"}, ["聖塔倫區"] = {wp = "Santarém District"}, ["塞圖巴爾區"] = {wp = "Setúbal District"}, ["維亞納堡區"] = {wp = "Viana do Castelo District"}, ["維拉雷亞爾區"] = {wp = "Vila Real District"}, ["維塞烏區"] = {wp = "Viseu District"}, } export.portugal_group = { placename_to_key = false, default_container = "葡萄牙", default_placetype = "district", data = export.portugal_districts_and_autonomous_regions, } ----------------------------------------------------------------------------------- -- Russia federal subjects -- ----------------------------------------------------------------------------------- local russia_oblast = {placetype = "oblast"} local russia_krai = {placetype = "krai"} local russia_republic = {placetype = "republic"} local russia_autonomous_okrug = {placetype = {"autonomous okrug", "okrug"}} export.russia_federal_subjects = { -- autonomous oblast ["猶太自治州"] = {placetype = {"autonomous oblast", "oblast"}, wp = "Jewish Autonomous Oblast"}, -- autonomous okrugs ["楚科奇自治區"] = {wp = "Chukotka Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西自治區"] = {wp = "Khanty-Mansi Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西亞"] = {alias_of = "漢特-曼西自治區"}, ["涅涅茨自治區"] = {wp = "Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["亞馬洛-涅涅茨自治區"] = {wp = "Yamalo-Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, -- krais ["阿爾泰邊疆區"] = {wp = "Altai Krai", placetype = "krai"}, ["堪察加邊疆區"] = {wp = "Kamchatka Krai", placetype = "krai"}, ["哈巴羅夫斯克邊疆區"] = {wp = "Khabarovsk Krai", placetype = "krai"}, ["克拉斯諾達爾邊疆區"] = {wp = "Krasnodar Krai", placetype = "krai"}, ["克拉斯諾亞爾斯克邊疆區"] = {wp = "Krasnoyarsk Krai", placetype = "krai"}, ["彼爾姆邊疆區"] = {wp = "Perm Krai", placetype = "krai"}, ["濱海邊疆區"] = {wp = "Primorsky Krai", placetype = "krai"}, ["斯塔夫羅波爾邊疆區"] = {wp = "Stavropol Krai", placetype = "krai"}, ["外貝加爾邊疆區"] = {wp = "Zabaykalsky Krai", placetype = "krai"}, -- oblasts ["阿穆爾州"] = russia_oblast, ["阿爾漢格爾斯克州"] = russia_oblast, ["阿斯特拉罕州"] = russia_oblast, ["別爾哥羅德州"] = russia_oblast, ["布良斯克州"] = russia_oblast, ["車裡雅賓斯克州"] = russia_oblast, ["伊爾庫茨克州"] = russia_oblast, ["伊萬諾沃州"] = russia_oblast, ["加里寧格勒州"] = russia_oblast, ["卡盧加州"] = russia_oblast, ["克麥羅沃州"] = russia_oblast, ["基洛夫州"] = russia_oblast, ["科斯特羅馬州"] = russia_oblast, ["庫爾干州"] = russia_oblast, ["庫爾斯克州"] = russia_oblast, ["列寧格勒州"] = russia_oblast, ["利佩茨克州"] = russia_oblast, ["馬加丹州"] = russia_oblast, ["莫斯科州"] = russia_oblast, ["摩爾曼斯克州"] = russia_oblast, ["下諾夫哥羅德州"] = russia_oblast, ["諾夫哥羅德州"] = russia_oblast, ["新西伯利亞州"] = russia_oblast, ["鄂木斯克州"] = russia_oblast, ["奧倫堡州"] = russia_oblast, ["奧廖爾州"] = russia_oblast, ["奔薩州"] = russia_oblast, ["普斯科夫州"] = russia_oblast, ["羅斯托夫州"] = russia_oblast, ["梁贊州"] = russia_oblast, ["薩哈林州"] = {wp = "Sakhalin Oblast", placetype = "oblast"}, ["薩馬拉州"] = russia_oblast, ["薩拉托夫州"] = russia_oblast, ["斯摩棱斯克州"] = russia_oblast, ["斯維爾德洛夫斯克州"] = russia_oblast, ["坦波夫州"] = russia_oblast, ["托木斯克州"] = russia_oblast, ["圖拉州"] = russia_oblast, ["特維爾州"] = russia_oblast, ["秋明州"] = russia_oblast, ["烏里揚諾夫斯克州"] = russia_oblast, ["弗拉基米爾州"] = russia_oblast, ["伏爾加格勒州"] = russia_oblast, ["沃洛格達州"] = russia_oblast, ["沃羅涅日州"] = russia_oblast, ["雅羅斯拉夫爾州"] = russia_oblast, -- republics ["阿迪格共和國"] = russia_republic, ["巴什科爾托斯坦共和國"] = russia_republic, ["布里亞特共和國"] = russia_republic, ["達吉斯坦共和國"] = russia_republic, ["印古什共和國"] = russia_republic, ["卡爾梅克共和國"] = russia_republic, ["卡累利亞共和國"] = {wp = "Republic of Karelia", placetype = "republic"}, ["哈卡斯共和國"] = russia_republic, ["莫爾多瓦共和國"] = russia_republic, ["北奧塞梯-阿蘭尼亞共和國"] = {wp = "North Ossetia–Alania", placetype = "republic"}, ["北奧塞梯"] = {alias_of = "北奧塞梯-阿蘭尼亞共和國"}, ["韃靼斯坦共和國"] = russia_republic, ["阿爾泰共和國"] = {wp = "Altai Republic", placetype = "republic"}, ["車臣共和國"] = russia_republic, ["楚瓦什共和國"] = russia_republic, ["卡巴爾達-巴爾卡爾共和國"] = russia_republic, ["卡拉恰伊-切爾克斯共和國"] = russia_republic, ["科米共和國"] = {wp = "Komi Republic", placetype = "republic"}, ["馬里埃爾共和國"] = russia_republic, ["薩哈共和國"] = {wp = "Sakha Republic", placetype = "republic"}, ["雅庫特"] = {alias_of = "薩哈共和國"}, ["圖瓦共和國"] = russia_republic, ["烏德穆爾特共和國"] = russia_republic, } export.russia_group = { placename_to_key = false, default_container = "俄羅斯", default_placetype = "oblast", data = export.russia_federal_subjects, } ----------------------------------------------------------------------------------- -- Saudi Arabia provinces -- ----------------------------------------------------------------------------------- export.saudi_arabia_provinces = { ["利雅得省"] = {wp = "Riyadh Province"}, ["麥加省"] = {wp = "Mecca Province"}, ["東部省(沙特)"] = {wp = "Eastern Province, Saudi Arabia", no_auto_augment_container = true}, ["麥地那省"] = {wp = "Medina Province"}, ["阿西爾省"] = {wp = "Asir"}, ["吉贊省"] = {wp = "Jazan Province"}, ["卡西姆省"] = {wp = "Al-Qassim Province"}, ["塔布克省"] = {wp = "Tabuk Province"}, ["哈伊爾省"] = {wp = "Ha'il Province"}, ["焦夫省"] = {wp = "Al-Jawf Province"}, ["納季蘭省"] = {wp = "Najran Province"}, ["北部邊界省"] = {wp = "Northern Borders Province"}, ["巴哈省"] = {wp = "Al-Bahah Province"}, } export.saudi_arabia_group = { placename_to_key = false, default_container = "沙烏地阿拉伯", default_placetype = "province", data = export.saudi_arabia_provinces, } ----------------------------------------------------------------------------------- -- South Africa provinces -- ----------------------------------------------------------------------------------- export.south_africa_provinces = { ["東開普省"] = {wp = "Eastern Cape"}, ["自由邦省"] = {wp = "Free State (South African province)"}, ["豪登省"] = {wp = "Gauteng"}, ["夸祖魯-納塔爾省"] = {wp = "KwaZulu-Natal"}, ["林波波省"] = {wp = "Limpopo"}, ["姆普馬蘭加省"] = {wp = "Mpumalanga"}, ["西北省(南非)"] = {wp = "North West (South African province)"}, ["北開普省"] = {wp = "Northern Cape"}, ["西開普省"] = {wp = "Western Cape"}, } export.south_africa_group = { placename_to_key = false, default_container = "南非", default_placetype = "province", data = export.south_africa_provinces, } ----------------------------------------------------------------------------------- -- Ukraine oblasts -- ----------------------------------------------------------------------------------- export.ukraine_oblasts = { ["切爾卡瑟州"] = {wp = "Cherkasy Oblast"}, ["切爾尼戈夫州"] = {wp = "Chernihiv Oblast"}, ["切爾諾夫策州"] = {wp = "Chernivtsi Oblast"}, ["第聶伯羅彼得羅夫斯克州"] = {wp = "Dnipropetrovsk Oblast"}, ["頓涅茨克州"] = {wp = "Donetsk Oblast"}, ["伊萬諾-弗蘭科夫斯克州"] = {wp = "Ivano-Frankivsk Oblast"}, ["哈爾科夫州"] = {wp = "Kharkiv Oblast"}, ["赫爾松州"] = {wp = "Kherson Oblast"}, ["赫梅利尼茨基州"] = {wp = "Khmelnytskyi Oblast"}, ["基洛夫格勒州"] = {wp = "Kirovohrad Oblast"}, ["基輔州"] = {wp = "Kyiv Oblast"}, ["盧甘斯克州"] = {wp = "Luhansk Oblast"}, ["利沃夫州"] = {wp = "Lviv Oblast"}, ["尼古拉耶夫州"] = {wp = "Mykolaiv Oblast"}, ["敖德薩州"] = {wp = "Odesa Oblast"}, ["波爾塔瓦州"] = {wp = "Poltava Oblast"}, ["羅夫諾州"] = {wp = "Rivne Oblast"}, ["蘇梅州"] = {wp = "Sumy Oblast"}, ["捷爾諾波爾州"] = {wp = "Ternopil Oblast"}, ["文尼察州"] = {wp = "Vinnytsia Oblast"}, ["沃里尼亞州"] = {wp = "Volyn Oblast"}, ["外喀爾巴阡州"] = {wp = "Zakarpattia Oblast"}, ["扎波羅熱州"] = {wp = "Zaporizhzhia Oblast"}, ["日托米爾州"] = {wp = "Zhytomyr Oblast"}, } export.ukraine_group = { placename_to_key = false, default_container = "烏克蘭", default_placetype = "oblast", data = export.ukraine_oblasts, } ----------------------------------------------------------------------------------- -- Wales principal areas -- ----------------------------------------------------------------------------------- export.wales_principal_areas = { ["布拉艾諾格溫特"] = {wp = "Blaenau Gwent"}, ["布里真德"] = {wp = "Bridgend County Borough"}, ["卡菲利"] = {wp = "Caerphilly County Borough"}, ["卡馬森郡"] = {wp = "Carmarthenshire", placetype = "county"}, ["克雷地基昂"] = {wp = "Ceredigion", placetype = "county"}, ["科溫"] = {wp = "Conwy County Borough"}, ["登比郡"] = {wp = "Denbighshire", placetype = "county"}, ["弗林特郡"] = {wp = "Flintshire", placetype = "county"}, ["格溫內德"] = {wp = "Gwynedd", placetype = "county"}, ["安格爾西島"] = {wp = "Isle of Anglesey", placetype = "county"}, ["默瑟蒂德菲爾"] = {wp = "Merthyr Tydfil County Borough"}, ["蒙茅斯郡"] = {wp = "Monmouthshire", placetype = "county"}, ["尼斯-波特塔爾博特"] = {wp = "Neath Port Talbot"}, ["彭布羅克郡"] = {wp = "Pembrokeshire", placetype = "county"}, ["波伊斯"] = {wp = "Powys", placetype = "county"}, ["朗達坎農塔夫"] = {wp = "Rhondda Cynon Taf"}, ["托爾范"] = {wp = "Torfaen"}, ["格拉摩根谷"] = {wp = "Vale of Glamorgan"}, ["雷克瑟姆"] = {wp = "Wrexham County Borough"}, } export.wales_group = { placename_to_key = false, default_container = {key = "威爾斯", placetype = "constituent country"}, default_placetype = "county borough", data = export.wales_principal_areas, } ----------------------------------------------------------------------------------- -- City groups -- ----------------------------------------------------------------------------------- export.australia_cities = { ["阿德萊德"] = {container = "南澳大利亞", wp = "Adelaide"}, ["布里斯班"] = {container = "昆士蘭", wp = "Brisbane"}, ["坎培拉"] = {container = "澳大利亞首都領地", wp = "Canberra"}, ["墨爾本"] = {container = "維多利亞州", wp = "Melbourne"}, ["紐卡素"] = {container = "新南威爾斯", wp = "Newcastle, New South Wales"}, ["伯斯"] = {container = "西澳大利亞", wp = "Perth"}, ["悉尼"] = {container = "新南威爾斯", wp = "Sydney"}, } export.australia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "澳大利亞", default_placetype = "city", default_is_city = true, data = export.australia_cities, } export.brazil_cities = { ["聖保羅"] = {container = "聖保羅州", wp = "São Paulo"}, ["里約熱內盧"] = {container = "里約熱內盧州", wp = "Rio de Janeiro"}, ["貝洛奧里藏特"] = {container = "米納斯吉拉斯", wp = "Belo Horizonte"}, ["累西腓"] = {container = "伯南布哥州", wp = "Recife"}, ["阿雷格里港"] = {container = "南里奧格蘭德州", wp = "Porto Alegre"}, ["巴西利亞"] = {container = "巴西聯邦區", wp = "Brasília"}, ["福塔萊薩"] = {container = "塞阿拉州", wp = "Fortaleza"}, ["薩爾瓦多"] = {container = "巴伊亞", wp = "Salvador, Bahia"}, ["庫里蒂巴"] = {container = "巴拉那州", wp = "Curitiba"}, ["坎皮納斯"] = {container = "聖保羅州", wp = "Campinas"}, ["戈亞尼亞"] = {container = "戈亞斯州", wp = "Goiânia"}, ["瑪瑙斯"] = {container = "亞馬遜州", wp = "Manaus"}, ["伯利恆"] = {container = "帕拉州", wp = "Belém, Pará"}, ["維多利亞"] = {container = "聖埃斯皮里圖州", wp = "Vitória, Espírito Santo"}, ["聖路易斯"] = {container = "馬拉尼昂州", wp = "São Luís"}, ["納塔爾"] = {container = "北里奧格蘭德州", wp = "Natal, Rio Grande do Norte"}, ["弗洛里亞諾波利斯"] = {container = "聖卡塔琳娜州", wp = "Florianópolis"}, ["馬塞約"] = {container = "阿拉戈亞斯州", wp = "Maceió"}, ["若昂佩索阿"] = {container = "帕拉伊巴州", wp = "João Pessoa"}, ["特雷齊納"] = {container = "皮奧伊州", wp = "Teresina"}, ["隆德里納"] = {container = "巴拉那州", wp = "Londrina"}, } export.brazil_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "巴西", default_placetype = "city", default_is_city = true, data = export.brazil_cities, } export.canada_cities = { ["多倫多"] = {container = "安大略", wp = "Toronto"}, ["蒙特婁"] = {container = "魁北克", wp = "Montreal"}, ["溫哥華"] = {container = "英屬哥倫比亞", wp = "Vancouver"}, ["卡加里"] = {container = "亞伯達", wp = "Calgary"}, ["愛民頓"] = {container = "亞伯達", wp = "Edmonton"}, ["渥太華"] = {container = "安大略", wp = "Ottawa"}, ["魁北克城"] = {container = "魁北克", wp = "Quebec City"}, ["溫尼伯"] = {container = "馬尼托巴", wp = "Winnipeg"}, ["漢密爾頓"] = {container = "安大略", wp = "Hamilton, Ontario"}, } export.canada_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "加拿大", default_placetype = "city", default_is_city = true, data = export.canada_cities, } export.france_cities = { ["巴黎"] = {container = "法蘭西島大區", wp = "Paris"}, ["里昂"] = {container = "奧弗涅-隆河-阿爾卑斯大區", wp = "Lyon"}, ["馬賽"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Marseille"}, ["里爾"] = {container = "上法蘭西大區", wp = "Lille"}, ["波爾多"] = {container = "新阿基坦大區", wp = "Bordeaux"}, ["圖盧茲"] = {container = "奧克西塔尼大區", wp = "Toulouse"}, ["尼斯"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Nice"}, ["南特"] = {container = "盧瓦爾河地區大區", wp = "Nantes"}, ["史特拉斯堡"] = {container = "大東部大區", wp = "Strasbourg"}, ["雷恩"] = {container = "布列塔尼大區", wp = "Rennes"}, } export.france_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "法國", default_placetype = "city", default_is_city = true, data = export.france_cities, } export.germany_cities = { ["科隆"] = {container = "北萊茵-威斯特法倫", wp = "Cologne"}, ["杜塞爾多夫"] = {container = "北萊茵-威斯特法倫", wp = "Düsseldorf"}, ["多特蒙德"] = {container = "北萊茵-威斯特法倫", wp = "Dortmund"}, ["埃森"] = {container = "北萊茵-威斯特法倫", wp = "Essen"}, ["柏林"] = {wp = "Berlin"}, ["法蘭克福"] = {container = "黑森", wp = "Frankfurt"}, ["漢堡"] = {wp = "Hamburg"}, ["慕尼黑"] = {container = "巴伐利亞", wp = "Munich"}, ["斯圖加特"] = {container = "巴登-符騰堡", wp = "Stuttgart"}, ["曼海姆"] = {container = "巴登-符騰堡", wp = "Mannheim"}, ["紐倫堡"] = {container = "巴伐利亞", wp = "Nuremberg"}, ["漢諾威"] = {container = "下薩克森", wp = "Hanover"}, ["比勒費爾德"] = {container = "北萊茵-威斯特法倫", wp = "Bielefeld"}, ["萊比錫"] = {container = "薩克森", wp = "Leipzig"}, ["亞琛"] = {container = "北萊茵-威斯特法倫", wp = "Aachen"}, ["不來梅"] = {wp = "Bremen"}, } export.germany_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "德國", default_placetype = "city", default_is_city = true, data = export.germany_cities, } export.india_cities = { ["德里"] = {container = {key = "德里", placetype = "union territory"}, wp = "Delhi"}, ["孟買"] = {container = "馬哈拉施特拉邦", wp = "Mumbai"}, ["加爾各答"] = {container = "西孟加拉邦", wp = "Kolkata"}, ["班加羅爾"] = {container = "卡納塔克邦", wp = "Bengaluru"}, ["金奈"] = {container = "泰米爾納德邦", wp = "Chennai"}, ["海德拉巴"] = {container = "特倫甘納邦", wp = "Hyderabad"}, ["艾哈邁達巴德"] = {container = "古吉拉特邦", wp = "Ahmedabad"}, ["浦那"] = {container = "馬哈拉施特拉邦", wp = "Pune"}, ["蘇拉特"] = {container = "古吉拉特邦", wp = "Surat"}, ["勒克瑙"] = {container = "北方邦", wp = "Lucknow"}, ["齋浦爾"] = {container = "拉賈斯坦邦", wp = "Jaipur"}, ["坎普爾"] = {container = "北方邦", wp = "Kanpur"}, ["那格浦爾"] = {container = "馬哈拉施特拉邦", wp = "Nagpur"}, ["巴特那"] = {container = "比哈爾邦", wp = "Patna"}, ["瓦拉納西"] = {container = "北方邦", wp = "Varanasi"}, ["印多爾"] = {container = "中央邦", wp = "Indore"}, ["博帕爾"] = {container = "中央邦", wp = "Bhopal"}, ["阿格拉"] = {container = "北方邦", wp = "Agra"}, ["科欽"] = {container = "喀拉拉邦", wp = "Kochi"}, ["維沙卡帕特南"] = {container = "安得拉邦", wp = "Visakhapatnam"}, ["齋普爾"] = {alias_of = "齋浦爾"}, } export.india_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "印度", default_placetype = "city", default_is_city = true, data = export.india_cities, } export.indonesia_cities = { ["雅加達"] = {container = "雅加達首都特區", wp = "Jakarta"}, ["泗水"] = {container = "東爪哇省", wp = "Surabaya"}, ["勿加泗"] = {container = "西爪哇省", wp = "Bekasi"}, ["萬隆"] = {container = "西爪哇省", wp = "Bandung"}, ["棉蘭"] = {container = "北蘇門答臘省", wp = "Medan"}, ["德波"] = {container = "西爪哇省", wp = "Depok"}, ["萬丹市"] = {container = "萬丹省", wp = "Tangerang"}, ["巨港"] = {container = "南蘇門答臘省", wp = "Palembang"}, ["三寶壟"] = {container = "中爪哇省", wp = "Semarang"}, ["望加錫"] = {container = "南蘇拉威西省", wp = "Makassar"}, ["武端"] = {container = "廖內群島省", wp = "Batam"}, ["茂物"] = {container = "西爪哇省", wp = "Bogor"}, ["北干巴魯"] = {container = "廖內省", wp = "Pekanbaru"}, ["班達爾楠榜"] = {container = "楠榜省", wp = "Bandar Lampung"}, ["巴東"] = {container = "西蘇門答臘省", wp = "Padang"}, ["薩馬林達"] = {container = "東加里曼丹省", wp = "Samarinda"}, ["瑪琅"] = {container = "東爪哇省", wp = "Malang"}, ["日惹"] = {container = "日惹特區", wp = "Yogyakarta"}, ["登巴薩"] = {container = "峇里省", wp = "Denpasar"}, ["哲勒貢"] = {container = "西爪哇省", wp = "Cirebon"}, ["梭羅"] = {container = "中爪哇省", wp = "Surakarta"}, ["馬辰"] = {container = "南加里曼丹省", wp = "Banjarmasin"}, ["打橫"] = {container = "西爪哇省", wp = "Tasikmalaya"}, } export.indonesia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "印度尼西亞", default_placetype = "city", default_is_city = true, data = export.indonesia_cities, } export.italy_cities = { ["米蘭"] = {container = "倫巴第", wp = "Milan"}, ["那不勒斯"] = {container = "坎帕尼亞", wp = "Naples"}, ["羅馬"] = {container = "拉齊奧", wp = "Rome"}, ["都靈"] = {container = "皮埃蒙特", wp = "Turin"}, ["威尼斯"] = {container = "威尼托", wp = "Venice"}, ["佛羅倫斯"] = {container = "托斯卡納", wp = "Florence"}, ["巴里"] = {container = "普利亞", wp = "Bari"}, ["巴勒莫"] = {container = "西西里", wp = "Palermo"}, ["卡塔尼亞"] = {container = "西西里", wp = "Catania"}, ["布雷西亞"] = {container = "倫巴第", wp = "Brescia"}, ["熱那亞"] = {container = "利古里亞", wp = "Genoa"}, } export.italy_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "意大利", default_placetype = "city", default_is_city = true, data = export.italy_cities, } export.japan_cities = { ["東京"] = {container = "東京都", wp = "Tokyo", placetype = {"city", "prefecture"}}, ["橫濱"] = {container = "神奈川縣", wp = "Yokohama"}, ["大阪"] = {container = "大阪府", wp = "Osaka"}, ["名古屋"] = {container = "愛知縣", wp = "Nagoya"}, ["札幌"] = {container = "北海道", wp = "Sapporo"}, ["福岡"] = {container = "福岡縣", wp = "Fukuoka"}, ["神戶"] = {container = "兵庫縣", wp = "Kobe"}, ["京都"] = {container = "京都府", wp = "Kyoto"}, ["川崎"] = {container = "神奈川縣", wp = "Kawasaki, Kanagawa"}, ["廣島"] = {container = "廣島縣", wp = "Hiroshima"}, ["仙台"] = {container = "宮城縣", wp = "Sendai"}, ["北九州"] = {container = "福岡縣", wp = "Kitakyushu"}, ["新潟"] = {container = "新潟縣", wp = "Niigata (city)"}, ["靜岡"] = {container = "靜岡縣", wp = "Shizuoka (city)"}, ["岡山"] = {container = "岡山縣", wp = "Okayama"}, ["熊本"] = {container = "熊本縣", wp = "Kumamoto"}, ["鹿兒島"] = {container = "鹿兒島縣", wp = "Kagoshima"}, } export.japan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "prefecture"), default_container = "日本", default_placetype = "city", default_is_city = true, data = export.japan_cities, } export.mexico_cities = { ["墨西哥城"] = {wp = "Mexico City"}, ["蒙特雷"] = {container = "新萊昂州", wp = "Monterrey"}, ["瓜達拉哈拉"] = {container = "哈利斯科州", wp = "Guadalajara"}, ["普埃布拉市"] = {container = "普埃布拉州", wp = "Puebla (city)"}, ["托盧卡"] = {container = "墨西哥州", wp = "Toluca"}, ["蒂華納"] = {container = "下加利福尼亞州", wp = "Tijuana"}, ["萊昂"] = {container = "瓜納華托州", wp = "León, Guanajuato"}, ["克雷塔羅市"] = {container = "克雷塔羅州", wp = "Querétaro (city)"}, ["華雷斯城"] = {container = "奇瓦瓦州", wp = "Ciudad Juárez"}, ["托雷翁"] = {container = "科阿韋拉州", wp = "Torreón"}, ["梅里達"] = {container = "尤卡坦州", wp = "Mérida, Yucatán"}, ["聖路易斯波托西市"] = {container = "聖路易斯波托西州", wp = "San Luis Potosí (city)"}, ["阿瓜斯卡連特斯市"] = {container = "阿瓜斯卡連特斯州", wp = "Aguascalientes (city)"}, ["墨西卡利"] = {container = "下加利福尼亞州", wp = "Mexicali"}, } export.mexico_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "墨西哥", default_placetype = "city", default_is_city = true, data = export.mexico_cities, } export.nigeria_cities = { ["拉各斯"] = {container = "拉各斯州", wp = "Lagos"}, ["卡諾市"] = {container = "卡諾州", wp = "Kano (city)"}, ["伊巴丹"] = {container = "奧約州", wp = "Ibadan"}, ["阿布賈"] = {container = {key = "阿布賈聯邦首都轄區", placetype = "federal territory"}, wp = "Abuja"}, ["哈科特港"] = {container = "河流州", wp = "Port Harcourt"}, ["卡杜納市"] = {container = "卡杜納州", wp = "Kaduna (city)"}, ["貝寧城"] = {container = "埃多州", wp = "Benin City"}, ["阿巴"] = {container = "阿比亞州", wp = "Aba, Nigeria"}, ["奧尼查"] = {container = "阿南布拉州", wp = "Onitsha"}, ["邁杜古里"] = {container = "博爾諾州", wp = "Maiduguri"}, ["伊洛林"] = {container = "誇拉州", wp = "Ilorin"}, ["索科托市"] = {container = "索科托州", wp = "Sokoto (city)"}, ["喬斯"] = {container = "高原州", wp = "Jos"}, ["扎里亞"] = {container = "卡杜納州", wp = "Zaria"}, ["埃努古市"] = {container = "埃努古州", wp = "Enugu (city)"}, } export.nigeria_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "奈及利亞", default_placetype = "city", default_is_city = true, data = export.nigeria_cities, } export.pakistan_cities = { ["卡拉奇"] = {container = "信德省", wp = "Karachi"}, ["拉合爾"] = {container = "旁遮普省(巴基斯坦)", wp = "Lahore"}, ["拉瓦爾品第"] = {container = "旁遮普省(巴基斯坦)", wp = "Rawalpindi"}, ["伊斯蘭馬巴德"] = {container = {key = "伊斯蘭馬巴德首都直轄區", placetype = "federal territory"}, wp = "Islamabad"}, ["費薩拉巴德"] = {container = "旁遮普省(巴基斯坦)", wp = "Faisalabad"}, ["古傑蘭瓦拉"] = {container = "旁遮普省(巴基斯坦)", wp = "Gujranwala"}, ["海德拉巴(巴基斯坦)"] = {container = "信德省", wp = "Hyderabad, Pakistan"}, ["木爾坦"] = {container = "旁遮普省(巴基斯坦)", wp = "Multan"}, ["白沙瓦"] = {container = "開伯爾-普赫圖赫瓦省", wp = "Peshawar"}, ["奎達"] = {container = "俾路支省", wp = "Quetta"}, ["薩戈達"] = {container = "旁遮普省(巴基斯坦)", wp = "Sargodha"}, ["錫亞爾科特"] = {container = "旁遮普省(巴基斯坦)", wp = "Sialkot"}, } export.pakistan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "巴基斯坦", default_placetype = "city", default_is_city = true, data = export.pakistan_cities, } export.philippines_cities = { ["奎松市"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Quezon City"}, ["馬尼拉"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Manila"}, ["達沃市"] = {container = "南達沃省", wp = "Davao City"}, ["卡洛坎"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Caloocan"}, ["三寶顏市"] = {container = "南三寶顏省", wp = "Zamboanga City"}, ["宿霧市"] = {container = "宿霧省", wp = "Cebu City"}, ["安蒂波洛"] = {container = "黎剎省", wp = "Antipolo"}, ["卡加延德奧羅"] = {container = "東米薩米斯省", wp = "Cagayan de Oro"}, ["達斯馬里尼亞斯"] = {container = "甲米地省", wp = "Dasmariñas"}, ["棉蘭老將軍城"] = {container = "南哥打巴托省", wp = "General Santos"}, ["聖何塞德爾蒙特"] = {container = "布拉干省", wp = "San Jose del Monte"}, ["巴科洛德"] = {container = "西內格羅斯省", wp = "Bacolod"}, ["卡蘭巴"] = {container = "拉古納省", wp = "Calamba, Laguna"}, ["天使城"] = {container = "邦板牙省", wp = "Angeles City"}, ["伊洛伊洛市"] = {container = "伊洛伊洛省", wp = "Iloilo City"}, } export.philippines_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "菲律賓", default_placetype = "city", default_is_city = true, data = export.philippines_cities, } export.russia_cities = { ["莫斯科"] = {wp = "Moscow"}, ["聖彼得堡"] = {wp = "Saint Petersburg"}, ["新西伯利亞"] = {container = "新西伯利亞州", wp = "Novosibirsk"}, ["葉卡捷琳堡"] = {container = "斯維爾德洛夫斯克州", wp = "Yekaterinburg"}, ["下諾夫哥羅德"] = {container = "下諾夫哥羅德州", wp = "Nizhny Novgorod"}, ["喀山"] = {container = {key = "韃靼斯坦共和國", placetype = "republic"}, wp = "Kazan"}, ["車裡雅賓斯克市"] = {container = "車裡雅賓斯克州", wp = "Chelyabinsk"}, ["頓河畔羅斯托夫"] = {container = "羅斯托夫州", wp = "Rostov-on-Don"}, ["克拉斯諾達爾市"] = {container = {key = "克拉斯諾達爾邊疆區", placetype = "krai"}, wp = "Krasnodar"}, ["薩馬拉市"] = {container = "薩馬拉州", wp = "Samara"}, ["克拉斯諾亞爾斯克市"] = {container = {key = "克拉斯諾亞爾斯克邊疆區", placetype = "krai"}, wp = "Krasnoyarsk"}, ["烏法"] = {container = {key = "巴什科爾托斯坦共和國", placetype = "republic"}, wp = "Ufa"}, ["薩拉托夫市"] = {container = "薩拉托夫州", wp = "Saratov"}, ["鄂木斯克市"] = {container = "鄂木斯克州", wp = "Omsk"}, ["沃羅涅日市"] = {container = "沃羅涅日州", wp = "Voronezh"}, ["伏爾加格勒市"] = {container = "伏爾加格勒州", wp = "Volgograd"}, ["彼爾姆市"] = {container = {key = "彼爾姆邊疆區", placetype = "krai"}, wp = "Perm, Russia"}, } export.russia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "oblast"), default_container = "俄羅斯", default_placetype = "city", default_is_city = true, data = export.russia_cities, } export.saudi_arabia_cities = { ["利雅得"] = {container = "利雅得省", wp = "Riyadh"}, ["吉達"] = {container = "麥加省", wp = "Jeddah"}, ["達曼"] = {container = "東部省(沙特)", wp = "Dammam"}, ["麥加"] = {container = "麥加省", wp = "Mecca"}, ["麥地那"] = {container = "麥地那省", wp = "Medina"}, ["霍夫夫"] = {container = "東部省(沙特)", wp = "Hofuf"}, ["哈米斯穆沙伊特"] = {container = "阿西爾省", wp = "Khamis Mushait"}, } export.saudi_arabia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "沙烏地阿拉伯", default_placetype = "city", default_is_city = true, data = export.saudi_arabia_cities, } export.south_korea_cities = { ["首爾"] = {wp = "Seoul"}, ["釜山"] = {wp = "Busan"}, ["仁川"] = {wp = "Incheon"}, ["大邱"] = {wp = "Daegu"}, ["大田"] = {wp = "Daejeon"}, ["光州"] = {wp = "Gwangju"}, ["蔚山"] = {wp = "Ulsan"}, } export.south_korea_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "南韓", default_placetype = "city", default_is_city = true, data = export.south_korea_cities, } export.spain_cities = { ["馬德里"] = {container = "馬德里自治區", wp = "Madrid"}, ["巴塞羅那"] = {container = "加泰羅尼亞", wp = "Barcelona"}, ["瓦倫西亞"] = {container = "巴倫西亞", wp = "Valencia"}, ["塞維利亞"] = {container = "安達盧西亞", wp = "Seville"}, ["畢爾包"] = {container = "巴斯克", wp = "Bilbao"}, } export.spain_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "autonomous community"), default_container = "西班牙", default_placetype = "city", default_is_city = true, data = export.spain_cities, } export.united_kingdom_cities = { ["倫敦"] = {container = {key = "大倫敦", placetype = "county"}, wp = "London"}, ["曼徹斯特"] = {container = {key = "大曼徹斯特", placetype = "county"}, wp = "Manchester"}, ["伯明翰"] = {container = {key = "西密德蘭", placetype = "county"}, wp = "Birmingham"}, ["利物浦"] = {container = {key = "默西賽德郡", placetype = "county"}, wp = "Liverpool"}, ["格拉斯哥"] = {container = {key = "Glasgow市", placetype = "council area"}, wp = "Glasgow"}, ["利茲"] = {container = {key = "西約克郡", placetype = "county"}, wp = "Leeds"}, ["布里斯托"] = {container = {key = "英格蘭", placetype = "constituent country"}, wp = "Bristol"}, ["卡地夫"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Cardiff"}, ["愛丁堡"] = {container = {key = "Edinburgh市", placetype = "council area"}, wp = "Edinburgh"}, ["斯旺西"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Swansea"}, ["紐波特"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Newport, Wales"}, } export.united_kingdom_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "county"), default_container = "英國", default_placetype = "city", default_is_city = true, data = export.united_kingdom_cities, } export.united_states_cities = { ["紐約市"] = {container = "紐約", wp = "New York City"}, ["洛杉磯"] = {container = "加利福尼亞", wp = "Los Angeles"}, ["芝加哥"] = {container = "伊利諾伊", wp = "Chicago"}, ["華盛頓特區"] = {wp = "Washington, D.C."}, ["巴爾的摩"] = {container = "馬里蘭", wp = "Baltimore"}, ["聖荷西"] = {container = "加利福尼亞", wp = "San Jose, California"}, ["舊金山"] = {container = "加利福尼亞", wp = "San Francisco"}, ["波士頓"] = {container = "麻薩諸塞", wp = "Boston"}, ["達拉斯"] = {container = "德克薩斯", wp = "Dallas"}, ["費城"] = {container = "賓夕法尼亞", wp = "Philadelphia"}, ["休士頓"] = {container = "德克薩斯", wp = "Houston"}, ["邁阿密"] = {container = "佛羅里達", wp = "Miami"}, ["亞特蘭大"] = {container = "喬治亞", wp = "Atlanta"}, ["底特律"] = {container = "密西根", wp = "Detroit"}, ["鳳凰城"] = {container = "亞利桑那", wp = "Phoenix"}, ["西雅圖"] = {container = "華盛頓州", wp = "Seattle"}, ["明尼阿波利斯"] = {container = "明尼蘇達", wp = "Minneapolis"}, ["克里夫蘭"] = {container = "俄亥俄", wp = "Cleveland"}, ["丹佛"] = {container = "科羅拉多", wp = "Denver"}, ["聖地牙哥(美國)"] = {container = "加利福尼亞", wp = "San Diego"}, ["波特蘭(俄勒岡)"] = {container = "俄勒岡", wp = "Portland"}, ["聖路易斯"] = {container = "密蘇里", wp = "St. Louis"}, ["夏洛特"] = {container = "北卡羅來納", wp = "Charlotte"}, ["薩克拉門托"] = {container = "加利福尼亞", wp = "Sacramento"}, ["匹茲堡"] = {container = "賓夕法尼亞", wp = "Pittsburgh"}, ["鹽湖城"] = {container = "猶他", wp = "Salt Lake City"}, ["聖安東尼奧"] = {container = "德克薩斯", wp = "San Antonio"}, ["哥倫布"] = {container = "俄亥俄", wp = "Columbus"}, ["堪薩斯城"] = {container = "密蘇里", wp = "Kansas City metropolitan area"}, ["印第安納波利斯"] = {container = "印第安納", wp = "Indianapolis"}, ["拉斯維加斯"] = {container = "內華達", wp = "Las Vegas"}, ["辛辛那提"] = {container = "俄亥俄", wp = "Cincinnati"}, ["奧斯汀"] = {container = "德克薩斯", wp = "Austin"}, ["密爾沃基"] = {container = "威斯康辛", wp = "Milwaukee"}, ["羅利"] = {container = "北卡羅來納", wp = "Raleigh"}, ["納什維爾"] = {container = "田納西", wp = "Nashville"}, ["傑克遜維爾"] = {container = "佛羅里達", wp = "Jacksonville"}, ["新奧爾良"] = {container = "路易斯安那", wp = "New Orleans"}, ["路易斯維爾"] = {container = "肯塔基", wp = "Louisville"}, ["奧克拉荷馬城"] = {container = "奧克拉荷馬", wp = "Oklahoma City"}, ["孟菲斯"] = {container = "田納西", wp = "Memphis"}, ["伯明翰(美國)"] = {container = "阿拉巴馬", wp = "Birmingham, Alabama"}, ["弗雷斯諾"] = {container = "加利福尼亞", wp = "Fresno"}, ["里奇蒙"] = {container = "弗吉尼亞", wp = "Richmond"}, ["水牛城"] = {container = "紐約", wp = "Buffalo"}, ["艾爾帕索"] = {container = "德克薩斯", wp = "El Paso"}, ["阿爾伯克基"] = {container = "新墨西哥", wp = "Albuquerque"}, ["塔森"] = {container = "亞利桑那", wp = "Tucson"}, ["科羅拉多斯普林斯"] = {container = "科羅拉多", wp = "Colorado Springs"}, ["奧馬哈"] = {container = "內布拉斯加", wp = "Omaha"}, ["塔爾薩"] = {container = "奧克拉荷馬", wp = "Tulsa"}, } export.united_states_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "美國", default_placetype = "city", default_is_city = true, data = export.united_states_cities, } export.vietnam_cities = { ["胡志明市"] = {wp = "Ho Chi Minh City"}, ["西貢"] = {alias_of = "胡志明市"}, ["河內"] = {wp = "Hanoi"}, ["峴港"] = {wp = "Da Nang"}, ["海防"] = {wp = "Haiphong"}, ["邊和"] = {container = "同奈省", wp = "Biên Hòa", placetype = "city"}, ["芹苴"] = {wp = "Cần Thơ"}, ["順化"] = {wp = "Huế"}, } export.vietnam_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "越南", default_placetype = {"municipality", "city"}, default_is_city = true, data = export.vietnam_cities, } ----------------------------------------------------------------------------------- -- locations list -- ----------------------------------------------------------------------------------- export.locations = { export.continents_group, export.countries_group, export.country_like_entities_group, export.former_countries_group, export.united_states_group, export.united_kingdom_group, export.scotland_group, export.england_group, export.northern_ireland_group, export.ireland_group, export.wales_group, export.china_group, export.china_prefecture_level_cities_group, export.taiwan_group, export.canada_group, export.australia_group, export.india_group, export.japan_group, export.brazil_group, export.france_group, export.france_departments_group, export.germany_group, export.italy_group, export.spain_group, export.austria_group, export.bangladesh_group, export.egypt_group, export.finland_group, export.greece_group, export.indonesia_group, export.lebanon_group, export.malaysia_group, export.malta_group, export.mexico_group, export.moldova_group, export.morocco_group, export.netherlands_group, export.new_zealand_group, export.norway_group, export.pakistan_group, export.philippines_group, export.poland_group, export.portugal_group, export.romania_group, export.bulgaria_group, export.iran_group, export.russia_group, export.saudi_arabia_group, export.south_africa_group, export.laos_group, export.north_korea_group, export.south_korea_group, export.thailand_group, export.turkey_group, export.ukraine_group, export.vietnam_group, export.nigeria_group, export.new_york_boroughs_group, export.australia_cities_group, export.brazil_cities_group, export.canada_cities_group, export.france_cities_group, export.germany_cities_group, export.india_cities_group, export.indonesia_cities_group, export.italy_cities_group, export.japan_cities_group, export.mexico_cities_group, export.nigeria_cities_group, export.pakistan_cities_group, export.philippines_cities_group, export.russia_cities_group, export.saudi_arabia_cities_group, export.south_korea_cities_group, export.spain_cities_group, export.united_kingdom_cities_group, export.united_states_cities_group, export.vietnam_cities_group, export.misc_cities_group, } return export q1z0dkz5jil1uu61n1edxsi3oxj13ee 9759432 9759415 2026-05-14T15:50:06Z TongcyDai 53191 9759432 Scribunto text/plain local export = {} export.force_cat = false local m_table = require("Module:table") local insert = table.insert local concat = table.concat local dump = mw.dumpObject local unpack = unpack or table.unpack --[==[ Chinese Wiktionary localization of [[Module:place/locations]]. All canonical location keys are in Chinese, matching what editors write in holonym parameters (e.g. {{place|zh|城市|s/中央邦|c/印度}}). English Wikipedia article names are stored in the `wp` field for cross-reference. The `the`, `british_spelling` and English-suffix-detection fields from enwikt are omitted as they are not applicable in Chinese. The helper functions (process_error through construct_linked_placename) are kept intact from enwikt's Module:place/locations to maintain API compatibility with Module:place/placetypes. ]==] ----------------------------------------------------------------------------------- -- Helper functions -- ----------------------------------------------------------------------------------- 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 function export.internal_error(fmt, ...) export.process_error("Internal error: " .. fmt, ...) end local internal_error = export.internal_error 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 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 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 == "country" or defcon.placetype == "constituent country") then return placename .. ", " .. defcon.key else return placename end end end 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 = "country"} 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", "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 spec.is_city = value_with_default(spec.is_city, group.default_placetype == "city") spec.initialized = true end 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 local placetype = spec.placetype or resolved_spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s", key) 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 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 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 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 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 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 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 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) -- Chinese has no articles; `the` field is unused but kept for API compatibility. return linked_placename end ----------------------------------------------------------------------------------- -- Local data helper factories -- ----------------------------------------------------------------------------------- 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 _, pat in ipairs(container_patterns) do local nsubs full_placename, nsubs = full_placename:gsub(pat, "") if nsubs > 0 then break end end end local elliptical_placename = full_placename if divtype_patterns then for _, pat in ipairs(divtype_patterns) do local nsubs elliptical_placename, nsubs = elliptical_placename:gsub(pat, "") if nsubs > 0 then break end end end return full_placename, elliptical_placename end end 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 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 -- Canonicalize a continent container key (string) to canonical container form. 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_container`", key) end ----------------------------------------------------------------------------------- -- Top-level tables -- ----------------------------------------------------------------------------------- export.continents = { ["地球"] = {placetype = "planet", addl_parents = {"nature"}, fulldesc = "=the planet [[Earth]] and the features found on it", wp = "Earth"}, ["非洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Africa"}, ["美洲"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Americas"}, ["北美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "North America"}, ["加勒比地區"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Caribbean"}, ["中美洲"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Central America"}, ["南美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "South America"}, ["南極洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, fulldesc = "=the territory of [[Antarctica]]", wp = "Antarctica"}, ["歐亞大陸"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Eurasia"}, ["亞洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Asia"}, ["中東"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Middle East"}, ["東南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Southeast Asia"}, ["南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "South Asia"}, ["東亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "East Asia"}, ["中亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Central Asia"}, ["歐洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Europe"}, ["西歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Western Europe"}, ["東歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Eastern Europe"}, ["北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Northern Europe"}, ["南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Southern Europe"}, ["中歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Central Europe"}, ["大洋洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Oceania"}, ["美拉尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Melanesia"}, ["密克羅尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Micronesia"}, ["玻里尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Polynesia"}, } export.continents_group = { default_overriding_bare_label_parents = {}, default_divs = {{type = "countries", prep = "in"}}, 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, default_no_check_holonym_mismatch = true, data = export.continents, } ----------------------------------------------------------------------------------- -- Countries -- ----------------------------------------------------------------------------------- export.countries = { -- Africa ["阿爾及利亞"] = {container = "非洲", divs = {"provinces", "communes", "districts"}, wp = "阿爾及利亞"}, ["安哥拉"] = {container = "非洲", divs = {"provinces", "municipalities"}, wp = "安哥拉"}, ["貝寧"] = {container = "非洲", wp = "貝寧"}, ["貝南"] = {alias_of = "貝寧"}, ["博茨瓦納"] = {container = "非洲", wp = "博茨瓦納"}, ["波札那"] = {alias_of = "博茨瓦納"}, ["布基納法索"] = {container = "非洲", wp = "布基納法索"}, ["布吉納法索"] = {alias_of = "布基納法索"}, ["布隆迪"] = {container = "非洲", wp = "布隆迪"}, ["蒲隆地"] = {alias_of = "布隆迪"}, ["佛得角"] = {container = "非洲", wp = "佛得角"}, ["維德角"] = {alias_of = "佛得角"}, ["中非共和國"] = {container = "非洲", wp = "中非共和國"}, ["乍得"] = {container = "非洲", wp = "乍得"}, ["查德"] = {alias_of = "乍得"}, ["科摩羅"] = {container = "非洲", wp = "科摩羅"}, ["葛摩"] = {alias_of = "科摩羅"}, ["剛果共和國"] = {container = "非洲", wp = "剛果共和國"}, ["剛果(布)"] = {alias_of = "剛果共和國"}, ["剛果民主共和國"] = {container = "非洲", divs = {"provinces"}, wp = "剛果民主共和國"}, ["剛果(金)"] = {alias_of = "剛果民主共和國"}, ["吉布提"] = {container = "非洲", wp = "吉布提"}, ["吉布地"] = {alias_of = "吉布提"}, ["埃及"] = {container = "非洲", divs = {"governorates"}, wp = "埃及"}, ["赤道幾內亞"] = {container = "非洲", wp = "赤道幾內亞"}, ["厄立特里亞"] = {container = "非洲", wp = "厄立特里亞"}, ["厄利垂亞"] = {alias_of = "厄立特里亞"}, ["斯威士蘭"] = {container = "非洲", wp = "斯威士蘭"}, ["史瓦帝尼"] = {alias_of = "斯威士蘭"}, ["埃塞俄比亞"] = {container = "非洲", divs = {"regions"}, wp = "埃塞俄比亞"}, ["衣索比亞"] = {alias_of = "埃塞俄比亞"}, ["加蓬"] = {container = "非洲", wp = "加蓬"}, ["加彭"] = {alias_of = "加蓬"}, ["岡比亞"] = {container = "非洲", wp = "岡比亞"}, ["甘比亞"] = {alias_of = "岡比亞"}, ["加納"] = {container = "非洲", wp = "加納"}, ["迦納"] = {alias_of = "加納"}, ["幾內亞"] = {container = "非洲", wp = "幾內亞"}, ["幾內亞比紹"] = {container = "非洲", wp = "幾內亞比紹"}, ["幾內亞比索"] = {alias_of = "幾內亞比紹"}, ["科特迪瓦"] = {container = "非洲", wp = "科特迪瓦"}, ["象牙海岸"] = {alias_of = "科特迪瓦"}, ["肯尼亞"] = {container = "非洲", divs = {"counties"}, wp = "肯尼亞"}, ["肯亞"] = {alias_of = "肯尼亞"}, ["萊索托"] = {container = "非洲", wp = "萊索托"}, ["賴索托"] = {alias_of = "萊索托"}, ["利比里亞"] = {container = "非洲", wp = "利比里亞"}, ["賴比瑞亞"] = {alias_of = "利比里亞"}, ["利比亞"] = {container = "非洲", wp = "利比亞"}, ["馬達加斯加"] = {container = "非洲", wp = "馬達加斯加"}, ["馬拉維"] = {container = "非洲", wp = "馬拉維"}, ["馬拉威"] = {alias_of = "馬拉維"}, ["馬里"] = {container = "非洲", wp = "馬里"}, ["馬利"] = {alias_of = "馬里"}, ["毛里塔尼亞"] = {container = "非洲", wp = "毛里塔尼亞"}, ["茅利塔尼亞"] = {alias_of = "毛里塔尼亞"}, ["毛里求斯"] = {container = "非洲", wp = "毛里求斯"}, ["模里西斯"] = {alias_of = "毛里求斯"}, ["摩洛哥"] = {container = "非洲", wp = "摩洛哥"}, ["莫桑比克"] = {container = "非洲", wp = "莫桑比克"}, ["莫三比克"] = {alias_of = "莫桑比克"}, ["納米比亞"] = {container = "非洲", wp = "納米比亞"}, ["尼日爾"] = {container = "非洲", wp = "尼日爾"}, ["尼日"] = {alias_of = "尼日爾"}, ["尼日利亞"] = {container = "非洲", divs = { {type = "states", cat_as = "states and FCT"}, "local government areas", }, wp = "尼日利亞"}, ["奈及利亞"] = {alias_of = "尼日利亞"}, ["盧旺達"] = {container = "非洲", wp = "盧旺達"}, ["盧安達"] = {alias_of = "盧旺達"}, ["聖多美和普林西比"] = {container = "非洲", wp = "聖多美和普林西比"}, ["塞內加爾"] = {container = "非洲", wp = "塞內加爾"}, ["塞舌爾"] = {container = "非洲", wp = "塞舌爾"}, ["塞席爾"] = {alias_of = "塞舌爾"}, ["塞拉利昂"] = {container = "非洲", wp = "塞拉利昂"}, ["獅子山"] = {alias_of = "塞拉利昂"}, ["索馬里"] = {container = "非洲", wp = "索馬里"}, ["索馬利亞"] = {alias_of = "索馬里"}, ["南非"] = {container = "非洲", divs = {"provinces"}, wp = "南非"}, ["南蘇丹"] = {container = "非洲", wp = "南蘇丹"}, ["蘇丹"] = {container = "非洲", wp = "蘇丹"}, ["坦桑尼亞"] = {container = "非洲", wp = "坦桑尼亞"}, ["坦尚尼亞"] = {alias_of = "坦桑尼亞"}, ["多哥"] = {container = "非洲", wp = "多哥"}, ["突尼斯"] = {container = "非洲", wp = "突尼斯"}, ["突尼西亞"] = {alias_of = "突尼斯"}, ["烏干達"] = {container = "非洲", wp = "烏干達"}, ["贊比亞"] = {container = "非洲", wp = "贊比亞"}, ["尚比亞"] = {alias_of = "贊比亞"}, ["津巴布韋"] = {container = "非洲", wp = "津巴布韋"}, ["辛巴威"] = {alias_of = "津巴布韋"}, -- Asia ["阿富汗"] = {container = "亞洲", wp = "阿富汗"}, ["亞美尼亞"] = {container = {"歐洲", "亞洲"}, wp = "亞美尼亞"}, ["阿塞拜疆"] = {container = {"歐洲", "亞洲"}, wp = "阿塞拜疆"}, ["亞塞拜然"] = {alias_of = "阿塞拜疆"}, ["巴林"] = {container = "亞洲", wp = "巴林"}, ["孟加拉國"] = {container = "亞洲", divs = {"divisions", "districts"}, wp = "孟加拉國"}, ["孟加拉"] = {alias_of = "孟加拉國"}, ["不丹"] = {container = "亞洲", wp = "不丹"}, ["文萊"] = {container = "亞洲", wp = "文萊"}, ["汶萊"] = {alias_of = "文萊"}, ["柬埔寨"] = {container = "亞洲", wp = "柬埔寨"}, ["中國"] = {container = "亞洲", divs = { {type = "provinces", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "autonomous regions", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "direct-administered municipalities", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "special administrative regions", cat_as = "special administrative regions"}, }, wp = "中國"}, ["東帝汶"] = {container = "亞洲", wp = "東帝汶"}, ["帝汶島"] = {alias_of = "東帝汶"}, ["印度"] = {container = "亞洲", divs = { {type = "states", cat_as = "states and union territories"}, {type = "union territories", cat_as = "states and union territories"}, }, wp = "印度"}, ["印度尼西亞"] = {container = "亞洲", divs = {"provinces"}, wp = "印度尼西亞"}, ["印尼"] = {alias_of = "印度尼西亞"}, ["伊朗"] = {container = "亞洲", wp = "伊朗"}, ["伊拉克"] = {container = "亞洲", wp = "伊拉克"}, ["以色列"] = {container = "亞洲", wp = "以色列"}, ["日本"] = {container = "亞洲", divs = {"prefectures"}, wp = "日本"}, ["約旦"] = {container = "亞洲", wp = "約旦"}, ["哈薩克斯坦"] = {container = {"歐洲", "亞洲"}, wp = "哈薩克斯坦"}, ["哈薩克"] = {alias_of = "哈薩克斯坦"}, ["朝鮮"] = {container = "亞洲", wp = "朝鮮民主主義人民共和國"}, ["北韓"] = {alias_of = "朝鮮"}, ["韓國"] = {container = "亞洲", divs = {"provinces", "special cities", "metropolitan cities"}, wp = "韓國"}, ["南韓"] = {alias_of = "韓國"}, ["科威特"] = {container = "亞洲", wp = "科威特"}, ["吉爾吉斯斯坦"] = {container = "亞洲", wp = "吉爾吉斯斯坦"}, ["吉爾吉斯"] = {alias_of = "吉爾吉斯斯坦"}, ["老撾"] = {container = "亞洲", wp = "老撾"}, ["寮國"] = {alias_of = "老撾"}, ["黎巴嫩"] = {container = "亞洲", wp = "黎巴嫩"}, ["馬來西亞"] = {container = "亞洲", divs = {"states"}, wp = "馬來西亞"}, ["馬爾代夫"] = {container = "亞洲", wp = "馬爾代夫"}, ["馬爾地夫"] = {alias_of = "馬爾代夫"}, ["蒙古"] = {container = "亞洲", wp = "蒙古"}, ["緬甸"] = {container = "亞洲", wp = "緬甸"}, ["尼泊爾"] = {container = "亞洲", wp = "尼泊爾"}, ["阿曼"] = {container = "亞洲", wp = "阿曼"}, ["巴基斯坦"] = {container = "亞洲", divs = {"provinces"}, wp = "巴基斯坦"}, ["菲律賓"] = {container = "亞洲", divs = {"regions"}, wp = "菲律賓"}, ["卡塔爾"] = {container = "亞洲", wp = "卡塔爾"}, ["卡達"] = {alias_of = "卡塔爾"}, ["俄羅斯"] = {container = {"歐洲", "亞洲"}, divs = {"federal subjects"}, wp = "俄羅斯"}, ["俄國"] = {alias_of = "俄羅斯"}, ["沙特阿拉伯"] = {container = "亞洲", wp = "沙特阿拉伯"}, ["沙烏地阿拉伯"] = {alias_of = "沙特阿拉伯"}, ["新加坡"] = {container = "亞洲", is_city = true, wp = "新加坡"}, ["斯里蘭卡"] = {container = "亞洲", wp = "斯里蘭卡"}, ["敘利亞"] = {container = "亞洲", wp = "敘利亞"}, ["臺灣"] = {container = "亞洲", divs = { "special municipalities", "counties", }, wp = "臺灣"}, ["台灣"] = {alias_of = "臺灣"}, ["塔吉克斯坦"] = {container = "亞洲", wp = "塔吉克斯坦"}, ["塔吉克"] = {alias_of = "塔吉克斯坦"}, ["泰國"] = {container = "亞洲", divs = {"provinces"}, wp = "泰國"}, ["土耳其"] = {container = {"歐洲", "亞洲"}, wp = "土耳其"}, ["土庫曼斯坦"] = {container = "亞洲", wp = "土庫曼斯坦"}, ["土庫曼"] = {alias_of = "土庫曼斯坦"}, ["阿拉伯聯合酋長國"] = {container = "亞洲", wp = "阿拉伯聯合酋長國"}, ["阿拉伯聯合大公國"] = {alias_of = "阿拉伯聯合酋長國"}, ["阿聯酋"] = {alias_of = "阿拉伯聯合酋長國"}, ["烏茲別克斯坦"] = {container = "亞洲", wp = "烏茲別克斯坦"}, ["烏茲別克"] = {alias_of = "烏茲別克斯坦"}, ["越南"] = {container = "亞洲", divs = {"provinces", "municipalities"}, wp = "越南"}, ["也門"] = {container = "亞洲", wp = "也門"}, ["葉門"] = {alias_of = "也門"}, -- Europe ["阿爾巴尼亞"] = {container = "歐洲", wp = "阿爾巴尼亞"}, ["安道爾"] = {container = "歐洲", wp = "安道爾"}, ["奧地利"] = {container = "歐洲", divs = {"states"}, wp = "奧地利"}, ["白俄羅斯"] = {container = "歐洲", divs = {"regions"}, wp = "白俄羅斯"}, ["比利時"] = {container = "歐洲", divs = {"regions", "provinces"}, wp = "比利時"}, ["波斯尼亞和黑塞哥維那"] = {container = "歐洲", wp = "波斯尼亞和黑塞哥維那"}, ["波士尼亞與赫塞哥維納"] = {alias_of = "波斯尼亞和黑塞哥維那"}, ["保加利亞"] = {container = "歐洲", wp = "保加利亞"}, ["克羅地亞"] = {container = "歐洲", wp = "克羅地亞"}, ["克羅埃西亞"] = {alias_of = "克羅地亞"}, ["塞浦路斯"] = {container = "亞洲", addl_parents = {"歐洲"}, wp = "塞浦路斯"}, ["賽普勒斯"] = {alias_of = "塞浦路斯"}, ["捷克"] = {container = "歐洲", wp = "捷克"}, ["丹麥"] = {container = "歐洲", wp = "丹麥"}, ["愛沙尼亞"] = {container = "歐洲", wp = "愛沙尼亞"}, ["芬蘭"] = {container = "歐洲", divs = {"regions"}, wp = "芬蘭"}, ["法國"] = {container = "歐洲", divs = { {type = "regions", cat_as = "metropolitan regions"}, "departments", "communes", }, wp = "法國"}, ["格魯吉亞"] = {container = {"歐洲", "亞洲"}, wp = "格魯吉亞"}, ["喬治亞"] = {alias_of = "格魯吉亞"}, ["德國"] = {container = "歐洲", divs = {"states"}, wp = "德國"}, ["希臘"] = {container = "歐洲", divs = {"regions"}, wp = "希臘"}, ["匈牙利"] = {container = "歐洲", wp = "匈牙利"}, ["冰島"] = {container = "歐洲", wp = "冰島"}, ["愛爾蘭"] = {container = "歐洲", divs = {"provinces", "counties"}, wp = "愛爾蘭"}, ["意大利"] = {container = "歐洲", divs = {"regions"}, wp = "意大利"}, ["義大利"] = {alias_of = "意大利"}, ["科索沃"] = {container = "歐洲", wp = "科索沃"}, ["拉脫維亞"] = {container = "歐洲", wp = "拉脫維亞"}, ["拉托維亞"] = {alias_of = "拉脫維亞"}, ["列支敦士登"] = {container = "歐洲", wp = "列支敦士登"}, ["列支敦斯登"] = {alias_of = "列支敦士登"}, ["立陶宛"] = {container = "歐洲", wp = "立陶宛"}, ["盧森堡"] = {container = "歐洲", wp = "盧森堡"}, ["北馬其頓"] = {container = "歐洲", wp = "北馬其頓"}, ["馬耳他"] = {container = "歐洲", wp = "馬耳他"}, ["馬爾他"] = {alias_of = "馬耳他"}, ["摩爾多瓦"] = {container = "歐洲", wp = "摩爾多瓦"}, ["摩納哥"] = {container = "歐洲", is_city = true, wp = "摩納哥"}, ["黑山"] = {container = "歐洲", wp = "黑山"}, ["蒙特內哥羅"] = {alias_of = "黑山"}, ["荷蘭"] = {container = "歐洲", divs = {"provinces"}, wp = "荷蘭"}, ["尼德蘭"] = {alias_of = "荷蘭"}, ["挪威"] = {container = "歐洲", wp = "挪威"}, ["波蘭"] = {container = "歐洲", divs = {"voivodeships"}, wp = "波蘭"}, ["葡萄牙"] = {container = "歐洲", divs = {"districts"}, wp = "葡萄牙"}, ["羅馬尼亞"] = {container = "歐洲", wp = "羅馬尼亞"}, ["聖馬力諾"] = {container = "歐洲", wp = "聖馬力諾"}, ["聖馬利諾"] = {alias_of = "聖馬力諾"}, ["塞爾維亞"] = {container = "歐洲", wp = "塞爾維亞"}, ["斯洛伐克"] = {container = "歐洲", wp = "斯洛伐克"}, ["斯洛文尼亞"] = {container = "歐洲", wp = "斯洛文尼亞"}, ["斯洛維尼亞"] = {alias_of = "斯洛文尼亞"}, ["西班牙"] = {container = "歐洲", divs = {"autonomous communities"}, wp = "西班牙"}, ["瑞典"] = {container = "歐洲", wp = "瑞典"}, ["瑞士"] = {container = "歐洲", divs = {"cantons"}, wp = "瑞士"}, ["烏克蘭"] = {container = "歐洲", divs = {"oblasts"}, wp = "烏克蘭"}, ["英國"] = {container = "歐洲", divs = { {type = "constituent countries", cat_as = "constituent countries"}, }, wp = "英國"}, -- North America ["加拿大"] = {container = "北美洲", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, }, wp = "加拿大"}, ["墨西哥"] = {container = "北美洲", divs = {"states"}, wp = "墨西哥"}, ["美國"] = {container = "北美洲", divs = {"states"}, wp = "美國"}, -- Central America ["伯利茲"] = {container = "中美洲", wp = "伯利茲"}, ["貝里斯"] = {alias_of = "伯利茲"}, ["哥斯達黎加"] = {container = "中美洲", wp = "哥斯達黎加"}, ["哥斯大黎加"] = {alias_of = "哥斯達黎加"}, ["薩爾瓦多"] = {container = "中美洲", wp = "薩爾瓦多"}, ["危地馬拉"] = {container = "中美洲", wp = "危地馬拉"}, ["瓜地馬拉"] = {alias_of = "危地馬拉"}, ["洪都拉斯"] = {container = "中美洲", wp = "洪都拉斯"}, ["宏都拉斯"] = {alias_of = "洪都拉斯"}, ["尼加拉瓜"] = {container = "中美洲", wp = "尼加拉瓜"}, ["巴拿馬"] = {container = "中美洲", wp = "巴拿馬"}, -- Caribbean ["安提瓜和巴布達"] = {container = "加勒比地區", wp = "安提瓜和巴布達"}, ["安地卡及巴布達"] = {alias_of = "安提瓜和巴布達"}, ["巴哈馬"] = {container = "加勒比地區", wp = "巴哈馬"}, ["巴巴多斯"] = {container = "加勒比地區", wp = "巴巴多斯"}, ["巴貝多"] = {alias_of = "巴巴多斯"}, ["古巴"] = {container = "加勒比地區", wp = "古巴"}, ["多米尼克"] = {container = "加勒比地區", wp = "多米尼克"}, ["多米尼加共和國"] = {container = "加勒比地區", wp = "多米尼加"}, ["多明尼加共和國"] = {alias_of = "多米尼加共和國"}, ["格林納達"] = {container = "加勒比地區", wp = "格林納達"}, ["格瑞那達"] = {alias_of = "格林納達"}, ["海地"] = {container = "加勒比地區", wp = "海地"}, ["牙買加"] = {container = "加勒比地區", wp = "牙買加"}, ["聖基茨和尼維斯"] = {container = "加勒比地區", wp = "聖基茨和尼維斯"}, ["聖克里斯多福及尼維斯"] = {alias_of = "聖基茨和尼維斯"}, ["聖盧西亞"] = {container = "加勒比地區", wp = "聖盧西亞"}, ["聖露西亞"] = {alias_of = "聖盧西亞"}, ["聖文森特和格林納丁斯"] = {container = "加勒比地區", wp = "聖文森特和格林納丁斯"}, ["聖文森及格瑞那丁"] = {alias_of = "聖文森特和格林納丁斯"}, ["特立尼達和多巴哥"] = {container = "加勒比地區", wp = "特立尼達和多巴哥"}, ["千里達及托巴哥"] = {alias_of = "特立尼達和多巴哥"}, -- South America ["阿根廷"] = {container = "南美洲", divs = {"provinces"}, wp = "阿根廷"}, ["玻利維亞"] = {container = "南美洲", wp = "玻利維亞"}, ["巴西"] = {container = "南美洲", divs = {"states"}, wp = "巴西"}, ["智利"] = {container = "南美洲", wp = "智利"}, ["哥倫比亞"] = {container = "南美洲", wp = "哥倫比亞"}, ["厄瓜多爾"] = {container = "南美洲", wp = "厄瓜多爾"}, ["厄瓜多"] = {alias_of = "厄瓜多爾"}, ["圭亞那"] = {container = "南美洲", wp = "圭亞那"}, ["蓋亞那"] = {alias_of = "圭亞那"}, ["巴拉圭"] = {container = "南美洲", wp = "巴拉圭"}, ["秘魯"] = {container = "南美洲", wp = "秘魯"}, ["蘇里南"] = {container = "南美洲", wp = "蘇里南"}, ["蘇利南"] = {alias_of = "蘇里南"}, ["烏拉圭"] = {container = "南美洲", wp = "烏拉圭"}, ["委內瑞拉"] = {container = "南美洲", wp = "委內瑞拉"}, -- Oceania ["澳大利亞"] = {container = "大洋洲", divs = { {type = "states", cat_as = "states and territories"}, {type = "territories", cat_as = "states and territories"}, }, wp = "澳大利亞"}, ["澳洲"] = {alias_of = "澳大利亞"}, ["斐濟"] = {container = "大洋洲", wp = "斐濟"}, ["基里巴斯"] = {container = "大洋洲", wp = "基里巴斯"}, ["吉里巴斯"] = {alias_of = "基里巴斯"}, ["馬紹爾群島"] = {container = "大洋洲", wp = "馬紹爾群島"}, ["密克羅尼西亞聯邦"] = {container = "大洋洲", wp = "密克羅尼西亞聯邦"}, ["瑙魯"] = {container = "大洋洲", wp = "瑙魯"}, ["諾魯"] = {alias_of = "瑙魯"}, ["新西蘭"] = {container = "大洋洲", wp = "新西蘭"}, ["紐西蘭"] = {alias_of = "新西蘭"}, ["帕勞"] = {container = "大洋洲", wp = "帕勞"}, ["帛琉"] = {alias_of = "帕勞"}, ["巴布亞新幾內亞"] = {container = "大洋洲", wp = "巴布亞新幾內亞"}, ["巴布亞紐幾內亞"] = {alias_of = "巴布亞新幾內亞"}, ["薩摩亞"] = {container = "大洋洲", wp = "薩摩亞"}, ["所羅門群島"] = {container = "大洋洲", wp = "所羅門群島"}, ["湯加"] = {container = "大洋洲", wp = "湯加"}, ["東加"] = {alias_of = "湯加"}, ["圖瓦盧"] = {container = "大洋洲", wp = "圖瓦盧"}, ["吐瓦魯"] = {alias_of = "圖瓦盧"}, ["瓦努阿圖"] = {container = "大洋洲", wp = "瓦努阿圖"}, ["萬那杜"] = {alias_of = "瓦努阿圖"}, } export.countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"+++", "countries"}, default_placetype = "country", default_no_container_cat = true, default_no_container_parent = true, default_no_auto_augment_container = true, placename_to_key = false, data = export.countries, } ----------------------------------------------------------------------------------- -- Country-like entities -- ----------------------------------------------------------------------------------- export.country_like_entities = { -- Special administrative regions of China ["香港"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, divs = {"districts"}, wp = "Hong Kong", }, ["澳門"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, wp = "Macau", }, -- Western Sahara ["西撒哈拉"] = { placetype = {"territory", "country"}, container = "非洲", wp = "Western Sahara", }, -- Kosovo (disputed) ["科索沃(部分承認)"] = {alias_of = "科索沃"}, -- Palestinian territories ["巴勒斯坦"] = { placetype = {"country", "territory"}, container = "亞洲", wp = "State of Palestine", }, -- Key overseas territories ["波多黎各"] = { placetype = {"commonwealth", "territory"}, container = "美國", addl_parents = {"加勒比地區"}, wp = "Puerto Rico", }, ["關島"] = { placetype = {"territory"}, container = "美國", addl_parents = {"密克羅尼西亞"}, wp = "Guam", }, ["新喀里多尼亞"] = { placetype = {"territory"}, container = "法國", addl_parents = {"大洋洲"}, wp = "New Caledonia", }, ["法屬圭亞那"] = { placetype = {"territory"}, container = "法國", addl_parents = {"南美洲"}, wp = "French Guiana", }, ["留尼旺"] = { placetype = {"territory"}, container = "法國", addl_parents = {"非洲"}, wp = "Réunion", }, ["馬丁尼克"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Martinique", }, ["瓜德羅普"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Guadeloupe", }, ["格陵蘭"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"北美洲"}, wp = "Greenland", }, ["法羅群島"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"歐洲"}, wp = "Faroe Islands", }, } export.country_like_entities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "country"), default_placetype = "territory", placename_to_key = false, data = export.country_like_entities, } ----------------------------------------------------------------------------------- -- Former countries -- ----------------------------------------------------------------------------------- export.former_countries = { ["蘇聯"] = { placetype = {"country"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Soviet Union", }, ["南斯拉夫"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Yugoslavia", }, ["捷克斯洛伐克"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Czechoslovakia", }, ["東德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "East Germany", }, ["西德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "West Germany", }, ["奧匈帝國"] = { placetype = {"empire"}, container = "歐洲", is_former_place = true, wp = "Austria-Hungary", }, ["鄂圖曼帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Ottoman Empire", }, ["奧斯曼帝國"] = {alias_of = "鄂圖曼帝國"}, ["羅馬帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲", "非洲"}, is_former_place = true, wp = "Roman Empire", }, ["大英帝國"] = { placetype = {"empire"}, is_former_place = true, wp = "British Empire", }, ["普魯士"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Prussia", }, } export.former_countries_group = { canonicalize_key_container = canonicalize_continent_container, default_placetype = "country", default_is_former_place = true, placename_to_key = false, data = export.former_countries, } ----------------------------------------------------------------------------------- -- United States states -- ----------------------------------------------------------------------------------- export.united_states_states = { ["阿拉巴馬"] = {wp = "Alabama"}, ["阿拉斯加"] = {wp = "Alaska"}, ["亞利桑那"] = {wp = "Arizona"}, ["阿肯色"] = {wp = "Arkansas"}, ["加利福尼亞"] = {wp = "California"}, ["加州"] = {alias_of = "加利福尼亞"}, ["科羅拉多"] = {wp = "Colorado"}, ["康乃狄克"] = {wp = "Connecticut"}, ["康涅狄格"] = {alias_of = "康乃狄克"}, ["德拉瓦"] = {wp = "Delaware"}, ["佛羅里達"] = {wp = "Florida"}, ["佛罗里达"] = {alias_of = "佛羅里達"}, ["佐治亞"] = {wp = "Georgia (U.S. state)"}, ["夏威夷"] = {addl_parents = {"玻里尼西亞"}, wp = "Hawaii"}, ["愛達荷"] = {wp = "Idaho"}, ["伊利諾伊"] = {wp = "Illinois"}, ["伊利诺伊"] = {alias_of = "伊利諾伊"}, ["印地安那"] = {wp = "Indiana"}, ["印第安納"] = {alias_of = "印地安那"}, ["愛荷華"] = {wp = "Iowa"}, ["堪薩斯"] = {wp = "Kansas"}, ["肯塔基"] = {wp = "Kentucky"}, ["路易斯安那"] = {wp = "Louisiana"}, ["緬因"] = {wp = "Maine"}, ["馬里蘭"] = {wp = "Maryland"}, ["麻薩諸塞"] = {wp = "Massachusetts"}, ["麻薩诸塞"] = {alias_of = "麻薩諸塞"}, ["密西根"] = {wp = "Michigan"}, ["密歇根"] = {alias_of = "密西根"}, ["明尼蘇達"] = {wp = "Minnesota"}, ["明尼苏达"] = {alias_of = "明尼蘇達"}, ["密西西比"] = {wp = "Mississippi"}, ["密蘇里"] = {wp = "Missouri"}, ["蒙大拿"] = {wp = "Montana"}, ["內布拉斯加"] = {wp = "Nebraska"}, ["內華達"] = {wp = "Nevada"}, ["新罕布什爾"] = {wp = "New Hampshire"}, ["新澤西"] = {wp = "New Jersey"}, ["新泽西"] = {alias_of = "新澤西"}, ["新墨西哥"] = {wp = "New Mexico"}, ["紐約"] = {wp = "New York (state)"}, ["纽约"] = {alias_of = "紐約"}, ["北卡羅來納"] = {wp = "North Carolina"}, ["北达科他"] = {alias_of = "北達科他"}, ["北達科他"] = {wp = "North Dakota"}, ["俄亥俄"] = {wp = "Ohio"}, ["奧克拉荷馬"] = {wp = "Oklahoma"}, ["奧勒岡"] = {wp = "Oregon"}, ["俄勒冈"] = {alias_of = "奧勒岡"}, ["賓夕法尼亞"] = {wp = "Pennsylvania"}, ["宾夕法尼亚"] = {alias_of = "賓夕法尼亞"}, ["羅德島"] = {wp = "Rhode Island"}, ["南卡羅來納"] = {wp = "South Carolina"}, ["南達科他"] = {wp = "South Dakota"}, ["田納西"] = {wp = "Tennessee"}, ["田纳西"] = {alias_of = "田納西"}, ["德克薩斯"] = {wp = "Texas"}, ["德州"] = {alias_of = "德克薩斯"}, ["猶他"] = {wp = "Utah"}, ["佛蒙特"] = {wp = "Vermont"}, ["弗吉尼亞"] = {wp = "Virginia"}, ["弗吉尼亚"] = {alias_of = "弗吉尼亞"}, ["維吉尼亞"] = {alias_of = "弗吉尼亞"}, ["華盛頓州"] = {wp = "Washington (state)"}, ["华盛顿州"] = {alias_of = "華盛頓州"}, ["西維吉尼亞"] = {wp = "West Virginia"}, ["西弗吉尼亞"] = {alias_of = "西維吉尼亞"}, ["威斯康辛"] = {wp = "Wisconsin"}, ["懷俄明"] = {wp = "Wyoming"}, -- Washington D.C. (federal district, treated like a state in holonym context) ["華盛頓特區"] = {placetype = {"federal district", "district"}, wp = "Washington, D.C."}, } export.united_states_group = { placename_to_key = false, default_container = "美國", default_placetype = "state", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, }, data = export.united_states_states, } ----------------------------------------------------------------------------------- -- United Kingdom constituent countries -- ----------------------------------------------------------------------------------- export.united_kingdom_constituent_countries = { ["英格蘭"] = {divs = {"counties", "districts"}, wp = "England"}, ["北愛爾蘭"] = { placetype = {"constituent country", "province", "country"}, divs = {"counties", "districts"}, wp = "Northern Ireland", }, ["蘇格蘭"] = {divs = {{type = "council areas", container_parent_type = false}}, wp = "Scotland"}, ["威爾斯"] = {divs = {"counties"}, wp = "Wales"}, ["威爾士"] = {alias_of = "威爾斯"}, } export.united_kingdom_group = { placename_to_key = false, default_container = "英國", default_placetype = {"constituent country", "country"}, default_no_container_cat = true, data = export.united_kingdom_constituent_countries, } -- Scotland council areas export.scotland_council_areas = { ["Aberdeen市"] = {wp = "Aberdeen"}, ["Aberdeenshire"] = {wp = "Aberdeenshire"}, ["Angus"] = {wp = "Angus, Scotland"}, ["Argyll and Bute"] = {wp = "Argyll and Bute"}, ["Clackmannanshire"] = {wp = "Clackmannanshire"}, ["Dumfries and Galloway"] = {wp = "Dumfries and Galloway"}, ["Dundee市"] = {wp = "Dundee"}, ["East Ayrshire"] = {wp = "East Ayrshire"}, ["East Dunbartonshire"] = {wp = "East Dunbartonshire"}, ["East Lothian"] = {wp = "East Lothian"}, ["East Renfrewshire"] = {wp = "East Renfrewshire"}, ["Edinburgh市"] = {wp = "Edinburgh"}, ["Eilean Siar"] = {wp = "Outer Hebrides"}, ["Falkirk"] = {wp = "Falkirk"}, ["Fife"] = {wp = "Fife"}, ["Glasgow市"] = {wp = "Glasgow"}, ["高地"] = {wp = "Highland council area"}, ["Highland"] = {alias_of = "高地", display = true}, ["Inverclyde"] = {wp = "Inverclyde"}, ["Midlothian"] = {wp = "Midlothian"}, ["Moray"] = {wp = "Moray"}, ["North Ayrshire"] = {wp = "North Ayrshire"}, ["North Lanarkshire"] = {wp = "North Lanarkshire"}, ["Orkney群島"] = {wp = "Orkney"}, ["Perth and Kinross"] = {wp = "Perth and Kinross"}, ["Renfrewshire"] = {wp = "Renfrewshire"}, ["Scottish Borders"] = {wp = "Scottish Borders"}, ["Shetland群島"] = {wp = "Shetland"}, ["South Ayrshire"] = {wp = "South Ayrshire"}, ["South Lanarkshire"] = {wp = "South Lanarkshire"}, ["Stirling"] = {wp = "Stirling (council area)"}, ["West Dunbartonshire"] = {wp = "West Dunbartonshire"}, ["West Lothian"] = {wp = "West Lothian"}, } export.scotland_group = { placename_to_key = false, default_container = "蘇格蘭", default_placetype = "council area", data = export.scotland_council_areas, } -- England counties (ceremonial) export.england_counties = { -- Metropolitan counties ["大倫敦"] = {wp = "Greater London"}, ["大曼徹斯特"] = {wp = "Greater Manchester"}, ["默西賽德郡"] = {wp = "Merseyside"}, ["西密德蘭"] = {wp = "West Midlands (county)"}, ["南約克郡"] = {wp = "South Yorkshire"}, ["西約克郡"] = {wp = "West Yorkshire"}, ["泰恩-威爾郡"] = {wp = "Tyne and Wear"}, -- Non-metropolitan ceremonial counties ["貝德福德郡"] = {wp = "Bedfordshire"}, ["伯克郡"] = {wp = "Berkshire"}, ["白金漢郡"] = {wp = "Buckinghamshire"}, ["劍橋郡"] = {wp = "Cambridgeshire"}, ["柴郡"] = {wp = "Cheshire"}, ["康沃爾郡"] = {wp = "Cornwall"}, ["坎布里亞郡"] = {wp = "Cumbria"}, ["德比郡"] = {wp = "Derbyshire"}, ["德文郡"] = {wp = "Devon"}, ["多塞特郡"] = {wp = "Dorset"}, ["達勒姆郡"] = {wp = "County Durham"}, ["約克郡東區"] = {wp = "East Riding of Yorkshire"}, ["東薩塞克斯郡"] = {wp = "East Sussex"}, ["埃塞克斯郡"] = {wp = "Essex"}, ["格洛斯特郡"] = {wp = "Gloucestershire"}, ["漢普郡"] = {wp = "Hampshire"}, ["赫里福德郡"] = {wp = "Herefordshire"}, ["赫特福德郡"] = {wp = "Hertfordshire"}, ["懷特島"] = {wp = "Isle of Wight"}, ["肯特郡"] = {wp = "Kent"}, ["蘭開夏郡"] = {wp = "Lancashire"}, ["萊斯特郡"] = {wp = "Leicestershire"}, ["林肯郡"] = {wp = "Lincolnshire"}, ["諾福克郡"] = {wp = "Norfolk"}, ["北安普敦郡"] = {wp = "Northamptonshire"}, ["諾森伯蘭郡"] = {wp = "Northumberland"}, ["北約克郡"] = {wp = "North Yorkshire"}, ["諾丁漢郡"] = {wp = "Nottinghamshire"}, ["牛津郡"] = {wp = "Oxfordshire"}, ["拉特蘭郡"] = {wp = "Rutland"}, ["什羅普郡"] = {wp = "Shropshire"}, ["薩默塞特郡"] = {wp = "Somerset"}, ["南亨伯賽德郡"] = {wp = "South Humberside"}, ["斯塔福德郡"] = {wp = "Staffordshire"}, ["薩福克郡"] = {wp = "Suffolk"}, ["薩里郡"] = {wp = "Surrey"}, ["沃里克郡"] = {wp = "Warwickshire"}, ["西薩塞克斯郡"] = {wp = "West Sussex"}, ["威爾特郡"] = {wp = "Wiltshire"}, ["伍斯特郡"] = {wp = "Worcestershire"}, } export.england_group = { placename_to_key = false, default_container = {key = "英格蘭", placetype = "constituent country"}, default_placetype = "county", data = export.england_counties, } -- Counties of Northern Ireland export.northern_ireland_counties = { ["安特里姆郡"] = {wp = "County Antrim"}, ["阿爾馬郡"] = {wp = "County Armagh"}, ["貝爾法斯特市"] = {is_city = true, wp = "Belfast"}, ["唐郡"] = {wp = "County Down"}, ["弗馬納郡"] = {wp = "County Fermanagh"}, ["倫敦德里郡"] = {wp = "County Londonderry"}, ["德里市"] = {is_city = true, wp = "Derry"}, ["泰龍郡"] = {wp = "County Tyrone"}, } export.northern_ireland_group = { placename_to_key = false, default_container = {key = "北愛爾蘭", placetype = "constituent country"}, default_placetype = "county", data = export.northern_ireland_counties, } -- Counties of Ireland export.ireland_counties = { ["卡洛郡"] = {wp = "County Carlow"}, ["卡文郡"] = {wp = "County Cavan"}, ["克萊爾郡"] = {wp = "County Clare"}, ["科克郡"] = {wp = "County Cork"}, ["多尼戈爾郡"] = {wp = "County Donegal"}, ["都柏林郡"] = {wp = "County Dublin"}, ["戈爾韋郡"] = {wp = "County Galway"}, ["克里郡"] = {wp = "County Kerry"}, ["基爾代爾郡"] = {wp = "County Kildare"}, ["基爾肯尼郡"] = {wp = "County Kilkenny"}, ["萊什郡"] = {wp = "County Laois"}, ["利特里姆郡"] = {wp = "County Leitrim"}, ["利默里克郡"] = {wp = "County Limerick"}, ["朗福德郡"] = {wp = "County Longford"}, ["勞斯郡"] = {wp = "County Louth"}, ["梅奧郡"] = {wp = "County Mayo"}, ["米斯郡"] = {wp = "County Meath"}, ["莫納亨郡"] = {wp = "County Monaghan"}, ["奧法利郡"] = {wp = "County Offaly"}, ["羅斯康芒郡"] = {wp = "County Roscommon"}, ["斯萊戈郡"] = {wp = "County Sligo"}, ["蒂珀雷里郡"] = {wp = "County Tipperary"}, ["沃特福德郡"] = {wp = "County Waterford"}, ["西米斯郡"] = {wp = "County Westmeath"}, ["韋克斯福德郡"] = {wp = "County Wexford"}, ["威克洛郡"] = {wp = "County Wicklow"}, } export.ireland_group = { placename_to_key = false, default_container = "愛爾蘭", default_placetype = "county", data = export.ireland_counties, } ----------------------------------------------------------------------------------- -- China provinces -- ----------------------------------------------------------------------------------- export.china_provinces = { -- Provinces ["安徽"] = {wp = "安徽省"}, ["福建"] = {wp = "福建省"}, ["甘肅"] = {wp = "甘肅省"}, ["廣東"] = {wp = "廣東省"}, ["貴州"] = {wp = "貴州省"}, ["海南"] = {wp = "海南省"}, ["河北"] = {wp = "河北省"}, ["黑龍江"] = {wp = "黑龍江省"}, ["河南"] = {wp = "河南省"}, ["湖北"] = {wp = "湖北省"}, ["湖南"] = {wp = "湖南省"}, ["江蘇"] = {wp = "江蘇省"}, ["江西"] = {wp = "江西省"}, ["吉林"] = {wp = "吉林省"}, ["遼寧"] = {wp = "遼寧省"}, ["青海"] = {wp = "青海省"}, ["陝西"] = {wp = "陝西省"}, ["山東"] = {wp = "山東省"}, ["山西"] = {wp = "山西省"}, ["四川"] = {wp = "四川省"}, ["雲南"] = {wp = "雲南省"}, ["浙江"] = {wp = "浙江省"}, -- Autonomous regions ["廣西壯族自治區"] = {placetype = "autonomous region", wp = "廣西壯族自治區"}, ["廣西"] = {alias_of = "廣西壯族自治區"}, ["內蒙古自治區"] = {placetype = "autonomous region", wp = "內蒙古自治區"}, ["內蒙古"] = {alias_of = "內蒙古自治區"}, ["寧夏回族自治區"] = {placetype = "autonomous region", wp = "寧夏回族自治區"}, ["寧夏"] = {alias_of = "寧夏回族自治區"}, ["西藏自治區"] = {placetype = "autonomous region", wp = "西藏自治區"}, ["西藏"] = {alias_of = "西藏自治區"}, ["新疆維吾爾自治區"] = {placetype = "autonomous region", wp = "新疆維吾爾自治區"}, ["新疆"] = {alias_of = "新疆維吾爾自治區"}, -- Direct-administered municipalities (treated as province-level for holonym purposes) ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "北京市"}, ["北京市"] = {alias_of = "北京"}, ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "上海市"}, ["上海市"] = {alias_of = "上海"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "天津市"}, ["天津市"] = {alias_of = "天津"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "重慶市"}, ["重慶市"] = {alias_of = "重慶"}, } export.china_group = { placename_to_key = false, default_container = "中國", default_placetype = "province", default_divs = { "prefecture-level cities", "districts", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_provinces, } ----------------------------------------------------------------------------------- -- Canada provinces and territories -- ----------------------------------------------------------------------------------- export.canada_provinces_and_territories = { ["亞伯達"] = {wp = "Alberta"}, ["艾伯塔"] = {alias_of = "亞伯達"}, ["英屬哥倫比亞"] = {wp = "British Columbia"}, ["卑詩省"] = {alias_of = "英屬哥倫比亞"}, ["馬尼托巴"] = {wp = "Manitoba"}, ["新不倫瑞克"] = {wp = "New Brunswick"}, ["紐芬蘭與拉布拉多"] = {wp = "Newfoundland and Labrador"}, ["西北地區"] = {placetype = "territory", wp = "Northwest Territories"}, ["新斯科舍"] = {wp = "Nova Scotia"}, ["努納武特"] = {placetype = "territory", wp = "Nunavut"}, ["安大略"] = {divs = {"counties", "regional municipalities"}, wp = "Ontario"}, ["愛德華王子島"] = {wp = "Prince Edward Island"}, ["魁北克"] = {wp = "Quebec"}, ["薩斯喀徹溫"] = {wp = "Saskatchewan"}, ["育空"] = {placetype = "territory", wp = "Yukon"}, } export.canada_group = { placename_to_key = false, default_container = "加拿大", default_placetype = "province", data = export.canada_provinces_and_territories, } ----------------------------------------------------------------------------------- -- Australia states and territories -- ----------------------------------------------------------------------------------- export.australia_states_and_territories = { ["新南威爾斯"] = {wp = "New South Wales"}, ["維多利亞州"] = {wp = "Victoria (Australia)"}, ["昆士蘭"] = {wp = "Queensland"}, ["南澳大利亞"] = {wp = "South Australia"}, ["西澳大利亞"] = {wp = "Western Australia"}, ["塔斯馬尼亞"] = {wp = "Tasmania"}, ["澳大利亞首都領地"] = {placetype = "territory", wp = "Australian Capital Territory"}, ["北領地"] = {placetype = "territory", wp = "Northern Territory"}, } export.australia_group = { placename_to_key = false, default_container = "澳大利亞", default_placetype = "state", data = export.australia_states_and_territories, } ----------------------------------------------------------------------------------- -- India states and union territories -- ----------------------------------------------------------------------------------- export.india_states_and_union_territories = { ["安達曼-尼科巴群島"] = {placetype = "union territory", wp = "Andaman and Nicobar Islands"}, ["安得拉邦"] = {wp = "Andhra Pradesh"}, ["阿魯納恰爾邦"] = {wp = "Arunachal Pradesh"}, ["阿薩姆"] = {wp = "Assam"}, ["比哈爾邦"] = {wp = "Bihar"}, ["昌迪加爾"] = {placetype = "union territory", wp = "Chandigarh"}, ["恰蒂斯加爾邦"] = {wp = "Chhattisgarh"}, ["達德拉-納加爾哈維利和達曼-第烏"] = {placetype = "union territory", wp = "Dadra and Nagar Haveli and Daman and Diu"}, ["德里"] = {placetype = "union territory", wp = "Delhi"}, ["果阿"] = {wp = "Goa"}, ["古吉拉特邦"] = {wp = "Gujarat"}, ["哈里亞納邦"] = {wp = "Haryana"}, ["喜馬偕爾邦"] = {wp = "Himachal Pradesh"}, ["查謨和克什米爾"] = {placetype = "union territory", wp = "Jammu and Kashmir (union territory)"}, ["賈坎德邦"] = {wp = "Jharkhand"}, ["卡納塔克邦"] = {wp = "Karnataka"}, ["喀拉拉邦"] = {wp = "Kerala"}, ["拉達克"] = {placetype = "union territory", wp = "Ladakh"}, ["拉克沙群島"] = {placetype = "union territory", wp = "Lakshadweep"}, ["中央邦"] = {wp = "Madhya Pradesh"}, ["馬哈拉施特拉邦"] = {wp = "Maharashtra"}, ["曼尼普爾邦"] = {wp = "Manipur"}, ["梅加拉亞邦"] = {wp = "Meghalaya"}, ["米佐拉姆邦"] = {wp = "Mizoram"}, ["那加蘭邦"] = {wp = "Nagaland"}, ["奧里薩邦"] = {wp = "Odisha"}, ["本地治里"] = {placetype = "union territory", wp = "Puducherry"}, ["旁遮普邦"] = {wp = "Punjab, India"}, ["拉賈斯坦邦"] = {wp = "Rajasthan"}, ["錫金"] = {wp = "Sikkim"}, ["泰米爾納德邦"] = {wp = "Tamil Nadu"}, ["特倫甘納邦"] = {wp = "Telangana"}, ["特里普拉邦"] = {wp = "Tripura"}, ["北方邦"] = {wp = "Uttar Pradesh"}, ["北阿坎德邦"] = {wp = "Uttarakhand"}, ["西孟加拉邦"] = {wp = "West Bengal"}, } export.india_group = { placename_to_key = false, default_container = "印度", default_placetype = "state", default_divs = {"districts"}, data = export.india_states_and_union_territories, } ----------------------------------------------------------------------------------- -- Japan prefectures -- ----------------------------------------------------------------------------------- -- Note: export.japan_prefectures is accessed directly by place-placetypes.lua -- using English-style keys (e.g. "Tokyo Prefecture, Japan"). Those lookups return -- nil for Chinese keys, which is correct: no English "Prefecture" suffix is added. export.japan_prefectures = { ["北海道"] = {placetype = {"prefecture"}, wp = "Hokkaido"}, ["青森縣"] = {wp = "Aomori Prefecture"}, ["岩手縣"] = {wp = "Iwate Prefecture"}, ["宮城縣"] = {wp = "Miyagi Prefecture"}, ["秋田縣"] = {wp = "Akita Prefecture"}, ["山形縣"] = {wp = "Yamagata Prefecture"}, ["福島縣"] = {wp = "Fukushima Prefecture"}, ["茨城縣"] = {wp = "Ibaraki Prefecture"}, ["栃木縣"] = {wp = "Tochigi Prefecture"}, ["群馬縣"] = {wp = "Gunma Prefecture"}, ["埼玉縣"] = {wp = "Saitama Prefecture"}, ["千葉縣"] = {wp = "Chiba Prefecture"}, ["東京都"] = {placetype = {"prefecture"}, wp = "Tokyo"}, ["神奈川縣"] = {wp = "Kanagawa Prefecture"}, ["新潟縣"] = {wp = "Niigata Prefecture"}, ["富山縣"] = {wp = "Toyama Prefecture"}, ["石川縣"] = {wp = "Ishikawa Prefecture"}, ["福井縣"] = {wp = "Fukui Prefecture"}, ["山梨縣"] = {wp = "Yamanashi Prefecture"}, ["長野縣"] = {wp = "Nagano Prefecture"}, ["岐阜縣"] = {wp = "Gifu Prefecture"}, ["靜岡縣"] = {wp = "Shizuoka Prefecture"}, ["愛知縣"] = {wp = "Aichi Prefecture"}, ["三重縣"] = {wp = "Mie Prefecture"}, ["滋賀縣"] = {wp = "Shiga Prefecture"}, ["京都府"] = {placetype = {"prefecture"}, wp = "Kyoto Prefecture"}, ["大阪府"] = {placetype = {"prefecture"}, wp = "Osaka Prefecture"}, ["兵庫縣"] = {wp = "Hyogo Prefecture"}, ["奈良縣"] = {wp = "Nara Prefecture"}, ["和歌山縣"] = {wp = "Wakayama Prefecture"}, ["鳥取縣"] = {wp = "Tottori Prefecture"}, ["島根縣"] = {wp = "Shimane Prefecture"}, ["岡山縣"] = {wp = "Okayama Prefecture"}, ["廣島縣"] = {wp = "Hiroshima Prefecture"}, ["山口縣"] = {wp = "Yamaguchi Prefecture"}, ["德島縣"] = {wp = "Tokushima Prefecture"}, ["香川縣"] = {wp = "Kagawa Prefecture"}, ["愛媛縣"] = {wp = "Ehime Prefecture"}, ["高知縣"] = {wp = "Kochi Prefecture"}, ["福岡縣"] = {wp = "Fukuoka Prefecture"}, ["佐賀縣"] = {wp = "Saga Prefecture"}, ["長崎縣"] = {wp = "Nagasaki Prefecture"}, ["熊本縣"] = {wp = "Kumamoto Prefecture"}, ["大分縣"] = {wp = "Oita Prefecture"}, ["宮崎縣"] = {wp = "Miyazaki Prefecture"}, ["鹿兒島縣"] = {wp = "Kagoshima Prefecture"}, ["沖繩縣"] = {wp = "Okinawa Prefecture"}, } export.japan_group = { placename_to_key = false, default_container = "日本", default_placetype = "prefecture", default_divs = {"cities", "districts"}, data = export.japan_prefectures, } ----------------------------------------------------------------------------------- -- Germany states (Bundesländer) -- ----------------------------------------------------------------------------------- export.germany_states = { ["巴登-符騰堡"] = {wp = "Baden-Württemberg"}, ["巴伐利亞"] = {wp = "Bavaria"}, ["柏林"] = {wp = "Berlin"}, ["布蘭登堡"] = {wp = "Brandenburg"}, ["不來梅"] = {wp = "Bremen"}, ["漢堡"] = {wp = "Hamburg"}, ["黑森"] = {wp = "Hesse"}, ["梅克倫堡-前波美拉尼亞"] = {wp = "Mecklenburg-Vorpommern"}, ["下薩克森"] = {wp = "Lower Saxony"}, ["北萊茵-威斯特法倫"] = {wp = "North Rhine-Westphalia"}, ["萊茵蘭-普法爾茨"] = {wp = "Rhineland-Palatinate"}, ["薩爾"] = {wp = "Saarland"}, ["薩克森"] = {wp = "Saxony"}, ["薩克森-安哈爾特"] = {wp = "Saxony-Anhalt"}, ["石勒蘇益格-荷爾斯泰因"] = {wp = "Schleswig-Holstein"}, ["圖林根"] = {wp = "Thuringia"}, } export.germany_group = { placename_to_key = false, default_container = "德國", default_placetype = "state", data = export.germany_states, } ----------------------------------------------------------------------------------- -- Italy regions (Regioni) -- ----------------------------------------------------------------------------------- export.italy_regions = { ["阿布魯佐"] = {wp = "Abruzzo"}, ["巴西利卡塔"] = {wp = "Basilicata"}, ["卡拉布里亞"] = {wp = "Calabria"}, ["坎帕尼亞"] = {wp = "Campania"}, ["艾米利亞-羅馬涅"] = {wp = "Emilia-Romagna"}, ["弗留利-威尼斯朱利亞"] = {wp = "Friuli-Venezia Giulia"}, ["拉齊奧"] = {wp = "Lazio"}, ["利古里亞"] = {wp = "Liguria"}, ["倫巴第"] = {wp = "Lombardy"}, ["倫巴底"] = {alias_of = "倫巴第"}, ["馬爾凱"] = {wp = "Marche"}, ["莫利塞"] = {wp = "Molise"}, ["皮埃蒙特"] = {wp = "Piedmont"}, ["普利亞"] = {wp = "Apulia"}, ["阿普利亞"] = {alias_of = "普利亞"}, ["薩丁尼亞"] = {wp = "Sardinia"}, ["西西里"] = {wp = "Sicily"}, ["托斯卡納"] = {wp = "Tuscany"}, ["特倫蒂諾-上阿迪傑"] = {wp = "Trentino-Alto Adige/Südtirol"}, ["翁布里亞"] = {wp = "Umbria"}, ["奧斯塔谷"] = {wp = "Aosta Valley"}, ["威尼托"] = {wp = "Veneto"}, } export.italy_group = { placename_to_key = false, default_container = "意大利", default_placetype = "region", data = export.italy_regions, } ----------------------------------------------------------------------------------- -- Spain autonomous communities (Comunidades autónomas) -- ----------------------------------------------------------------------------------- export.spain_autonomous_communities = { ["安達盧西亞"] = {wp = "Andalusia"}, ["安達魯西亞"] = {alias_of = "安達盧西亞"}, ["阿拉貢"] = {wp = "Aragon"}, ["阿斯圖里亞斯"] = {wp = "Asturias"}, ["巴利阿里群島"] = {wp = "Balearic Islands"}, ["巴斯克"] = {wp = "Basque Country (autonomous community)"}, ["加那利群島"] = {wp = "Canary Islands"}, ["坎塔布里亞"] = {wp = "Cantabria"}, ["卡斯蒂利亞-拉曼恰"] = {wp = "Castilla-La Mancha"}, ["卡斯蒂利亞-萊昂"] = {wp = "Castilla y León"}, ["加泰羅尼亞"] = {wp = "Catalonia"}, ["加泰隆尼亞"] = {alias_of = "加泰羅尼亞"}, ["埃斯特雷馬杜拉"] = {wp = "Extremadura"}, ["加利西亞"] = {wp = "Galicia (Spain)"}, ["拉里奧哈"] = {wp = "La Rioja (autonomous community)"}, ["馬德里自治區"] = {wp = "Community of Madrid"}, ["穆爾西亞"] = {wp = "Region of Murcia"}, ["納瓦拉"] = {wp = "Navarre"}, ["巴倫西亞"] = {wp = "Valencian Community"}, ["巴倫西亞自治區"] = {alias_of = "巴倫西亞"}, } export.spain_group = { placename_to_key = false, default_container = "西班牙", default_placetype = "autonomous community", data = export.spain_autonomous_communities, } export.taiwan_counties = { ["彰化縣"] = {wp = "彰化縣"}, ["嘉義縣"] = {wp = "嘉義縣"}, ["新竹縣"] = {wp = "新竹縣"}, ["花蓮縣"] = {wp = "花蓮縣"}, ["金門縣"] = {wp = "金門縣"}, ["連江縣"] = {wp = "連江縣"}, ["苗栗縣"] = {wp = "苗栗縣"}, ["南投縣"] = {wp = "南投縣"}, ["屏東縣"] = {wp = "屏東縣"}, ["澎湖縣"] = {wp = "澎湖縣"}, ["宜蘭縣"] = {wp = "宜蘭縣"}, ["雲林縣"] = {wp = "雲林縣"}, } export.taiwan_group = { key_to_placename = make_key_to_placename(nil, "縣$"), placename_to_key = make_placename_to_key("縣"), default_container = "臺灣", default_placetype = "county", default_divs = {"districts", "townships"}, data = export.taiwan_counties, } ----------------------------------------------------------------------------------- -- China prefecture-level cities -- -- Mirrors enwikt china_prefecture_level_cities (168 entries) and -- -- china_prefecture_level_cities_2 (4 entries, merged here since Chinese names -- -- are unambiguous: 台州/泰州, 蘇州/宿州 do not clash). -- ----------------------------------------------------------------------------------- export.china_prefecture_level_cities = { -- Guangdong ["廣州"] = {container = "廣東", wp = "Guangzhou"}, ["東莞"] = {container = "廣東", wp = "Dongguan"}, ["佛山"] = {container = "廣東", wp = "Foshan"}, ["惠州"] = {container = "廣東", wp = "Huizhou"}, ["江門"] = {container = "廣東", wp = "Jiangmen"}, ["深圳"] = {container = "廣東", wp = "Shenzhen"}, ["中山"] = {container = "廣東", wp = "Zhongshan"}, ["汕頭"] = {container = "廣東", wp = "Shantou"}, ["潮州"] = {container = "廣東", wp = "Chaozhou"}, ["揭陽"] = {container = "廣東", wp = "Jieyang"}, ["珠海"] = {container = "廣東", wp = "Zhuhai"}, ["湛江"] = {container = "廣東", wp = "Zhanjiang"}, ["茂名"] = {container = "廣東", wp = "Maoming"}, ["清遠"] = {container = "廣東", wp = "Qingyuan"}, ["肇慶"] = {container = "廣東", wp = "Zhaoqing"}, -- Direct-administered municipalities (also in china_provinces; duplicated here for division categorisation) ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Shanghai"}, ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Beijing"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Chongqing"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Tianjin"}, -- Jiangsu ["常熟"] = {container = "江蘇", wp = "Changshu"}, ["常州"] = {container = "江蘇", wp = "Changzhou"}, ["蘇州"] = {container = "江蘇", wp = "Suzhou"}, ["無錫"] = {container = "江蘇", wp = "Wuxi"}, ["南京"] = {container = "江蘇", wp = "Nanjing"}, ["南通"] = {container = "江蘇", wp = "Nantong"}, ["江陰"] = {container = "江蘇", wp = "Jiangyin"}, ["張家港"] = {container = "江蘇", wp = "Zhangjiagang"}, ["徐州"] = {container = "江蘇", wp = "Xuzhou"}, ["揚州"] = {container = "江蘇", wp = "Yangzhou"}, ["鹽城"] = {container = "江蘇", wp = "Yancheng"}, ["淮安"] = {container = "江蘇", wp = "Huai'an"}, ["連雲港"] = {container = "江蘇", wp = "Lianyungang"}, ["宿遷"] = {container = "江蘇", wp = "Suqian"}, ["鎮江"] = {container = "江蘇", wp = "Zhenjiang"}, ["崑山"] = {container = "江蘇", wp = "Kunshan"}, ["泰州"] = {container = "江蘇", wp = "Taizhou, Jiangsu"}, -- distinct from 台州 (Zhejiang) -- Zhejiang ["杭州"] = {container = "浙江", wp = "Hangzhou"}, ["紹興"] = {container = "浙江", wp = "Shaoxing"}, ["寧波"] = {container = "浙江", wp = "Ningbo"}, ["慈溪"] = {container = "浙江", wp = "Cixi"}, ["余姚"] = {container = "浙江", wp = "Yuyao"}, ["溫州"] = {container = "浙江", wp = "Wenzhou"}, ["瑞安"] = {placetype = "county-level city", container = {key = "溫州", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Rui'an"}, ["台州"] = {container = "浙江", wp = "Taizhou, Zhejiang"}, ["義烏"] = {container = "浙江", wp = "Yiwu"}, ["嘉興"] = {container = "浙江", wp = "Jiaxing"}, ["金華"] = {container = "浙江", wp = "Jinhua"}, ["湖州"] = {container = "浙江", wp = "Huzhou"}, ["永康"] = {placetype = "county-level city", container = {key = "金華", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Yongkang, Zhejiang"}, -- Fujian ["廈門"] = {container = "福建", wp = "Xiamen"}, ["晉江"] = {container = "福建", wp = "Jinjiang"}, ["泉州"] = {container = "福建", wp = "Quanzhou"}, ["莆田"] = {container = "福建", wp = "Putian"}, ["福州"] = {container = "福建", wp = "Fuzhou"}, -- Shandong ["青島"] = {container = "山東", wp = "Qingdao"}, ["臨沂"] = {container = "山東", wp = "Linyi"}, ["淄博"] = {container = "山東", wp = "Zibo"}, ["濟南"] = {container = "山東", wp = "Jinan"}, ["濰坊"] = {container = "山東", wp = "Weifang"}, ["煙台"] = {container = "山東", wp = "Yantai"}, ["濟寧"] = {container = "山東", wp = "Jining"}, ["泰安"] = {container = "山東", wp = "Tai'an"}, ["威海"] = {container = "山東", wp = "Weihai"}, ["菏澤"] = {container = "山東", wp = "Heze"}, ["德州"] = {container = "山東", wp = "Dezhou"}, ["日照"] = {container = "山東", wp = "Rizhao"}, ["聊城"] = {container = "山東", wp = "Liaocheng"}, ["棗莊"] = {container = "山東", wp = "Zaozhuang"}, ["滕州"] = {placetype = "county-level city", container = {key = "棗莊", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Tengzhou"}, ["東營"] = {container = "山東", wp = "Dongying"}, -- Henan ["鄭州"] = {container = "河南", wp = "Zhengzhou"}, ["洛陽"] = {container = "河南", wp = "Luoyang"}, ["新鄉"] = {container = "河南", wp = "Xinxiang"}, ["信陽"] = {container = "河南", wp = "Xinyang"}, ["安陽"] = {container = "河南", wp = "Anyang"}, ["開封"] = {container = "河南", wp = "Kaifeng"}, ["許昌"] = {container = "河南", wp = "Xuchang"}, ["濮陽"] = {container = "河南", wp = "Puyang"}, ["商丘"] = {container = "河南", wp = "Shangqiu"}, ["南陽"] = {container = "河南", wp = "Nanyang, Henan"}, ["焦作"] = {container = "河南", wp = "Jiaozuo"}, ["平頂山"] = {container = "河南", wp = "Pingdingshan"}, ["周口"] = {container = "河南", wp = "Zhoukou"}, ["駐馬店"] = {container = "河南", wp = "Zhumadian"}, -- Hubei ["武漢"] = {container = "湖北", wp = "Wuhan"}, ["襄陽"] = {container = "湖北", wp = "Xiangyang"}, ["宜昌"] = {container = "湖北", wp = "Yichang"}, ["鄂州"] = {container = "湖北", wp = "Ezhou"}, ["十堰"] = {container = "湖北", wp = "Shiyan"}, -- Hunan ["長沙"] = {container = "湖南", wp = "Changsha"}, ["株洲"] = {container = "湖南", wp = "Zhuzhou"}, ["衡陽"] = {container = "湖南", wp = "Hengyang"}, ["邵陽"] = {container = "湖南", wp = "Shaoyang"}, ["岳陽"] = {container = "湖南", wp = "Yueyang"}, ["常德"] = {container = "湖南", wp = "Changde"}, ["瀏陽"] = {placetype = "county-level city", container = {key = "長沙", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Liuyang"}, -- Sichuan ["成都"] = {container = "四川", wp = "Chengdu"}, ["綿陽"] = {container = "四川", wp = "Mianyang"}, ["南充"] = {container = "四川", wp = "Nanchong"}, ["達州"] = {container = "四川", wp = "Dazhou"}, ["瀘州"] = {container = "四川", wp = "Luzhou"}, ["宜賓"] = {container = "四川", wp = "Yibin"}, -- Yunnan ["昆明"] = {container = "雲南", wp = "Kunming"}, ["曲靖"] = {container = "雲南", wp = "Qujing"}, -- Guizhou ["貴陽"] = {container = "貴州", wp = "Guiyang"}, ["遵義"] = {container = "貴州", wp = "Zunyi"}, ["六盤水"] = {container = "貴州", wp = "Liupanshui"}, ["畢節"] = {container = "貴州", wp = "Bijie"}, -- Shaanxi ["西安"] = {container = "陝西", wp = "Xi'an"}, ["咸陽"] = {container = "陝西", wp = "Xianyang"}, ["寶雞"] = {container = "陝西", wp = "Baoji"}, -- Heilongjiang ["哈爾濱"] = {container = "黑龍江", wp = "Harbin"}, ["大慶"] = {container = "黑龍江", wp = "Daqing"}, ["齊齊哈爾"] = {container = "黑龍江", wp = "Qiqihar"}, -- Liaoning ["瀋陽"] = {container = "遼寧", wp = "Shenyang"}, ["撫順"] = {container = "遼寧", wp = "Fushun"}, ["大連"] = {container = "遼寧", wp = "Dalian"}, ["鞍山"] = {container = "遼寧", wp = "Anshan"}, ["錦州"] = {container = "遼寧", wp = "Jinzhou"}, ["葫蘆島"] = {container = "遼寧", wp = "Huludao"}, ["盤錦"] = {container = "遼寧", wp = "Panjin"}, -- Jilin ["長春"] = {container = "吉林", wp = "Changchun"}, ["吉林市"] = {container = "吉林", wp = "Jilin City"}, -- distinct from 吉林 (province) -- Anhui ["合肥"] = {container = "安徽", wp = "Hefei"}, ["蚌埠"] = {container = "安徽", wp = "Bengbu"}, ["淮南"] = {container = "安徽", wp = "Huainan"}, ["蕪湖"] = {container = "安徽", wp = "Wuhu"}, ["淮北"] = {container = "安徽", wp = "Huaibei"}, ["滁州"] = {container = "安徽", wp = "Chuzhou"}, ["六安"] = {container = "安徽", wp = "Lu'an"}, ["阜陽"] = {container = "安徽", wp = "Fuyang, Anhui"}, ["宿州"] = {container = "安徽", wp = "Suzhou, Anhui"}, -- distinct from 蘇州 (Jiangsu) -- Hebei ["石家莊"] = {container = "河北", wp = "Shijiazhuang"}, ["邯鄲"] = {container = "河北", wp = "Handan"}, ["唐山"] = {container = "河北", wp = "Tangshan"}, ["秦皇島"] = {container = "河北", wp = "Qinhuangdao"}, ["邢台"] = {container = "河北", wp = "Xingtai"}, ["保定"] = {container = "河北", wp = "Baoding"}, ["張家口"] = {container = "河北", wp = "Zhangjiakou"}, ["衡水"] = {container = "河北", wp = "Hengshui"}, ["滄州"] = {container = "河北", wp = "Cangzhou"}, -- Shanxi ["太原"] = {container = "山西", wp = "Taiyuan"}, ["大同"] = {container = "山西", wp = "Datong"}, ["長治"] = {container = "山西", wp = "Changzhi"}, ["臨汾"] = {container = "山西", wp = "Linfen"}, -- Jiangxi ["南昌"] = {container = "江西", wp = "Nanchang"}, ["贛州"] = {container = "江西", wp = "Ganzhou"}, ["上饒"] = {container = "江西", wp = "Shangrao"}, ["九江"] = {container = "江西", wp = "Jiujiang"}, -- Guangxi (autonomous region) ["南寧"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Nanning"}, ["柳州"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Liuzhou"}, ["桂林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guilin"}, ["玉林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Yulin, Guangxi"}, ["北海"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Beihai"}, ["貴港"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guigang"}, -- Inner Mongolia (autonomous region) ["呼和浩特"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Hohhot"}, ["包頭"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Baotou"}, ["赤峰"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Chifeng"}, -- Xinjiang (autonomous region) ["烏魯木齊"] = {container = {key = "新疆", placetype = "autonomous region"}, wp = "Ürümqi"}, -- Ningxia (autonomous region) ["銀川"] = {container = {key = "寧夏", placetype = "autonomous region"}, wp = "Yinchuan"}, -- Hainan ["海口"] = {container = "海南", wp = "Haikou"}, -- Qinghai ["西寧"] = {container = "青海", wp = "Xining"}, -- Gansu ["蘭州"] = {container = "甘肅", wp = "Lanzhou"}, -- Chongqing subdivision (district 142 miles from Chongqing proper) ["萬州"] = {placetype = "district", container = {key = "重慶", placetype = "direct-administered municipality"}, divs = {"subdistricts", "townships"}, wp = "Wanzhou"}, -- County within Suqian prefecture-level city ["沭陽"] = {placetype = "county", container = {key = "宿遷", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Shuyang County"}, } export.china_prefecture_level_cities_group = { placename_to_key = false, default_placetype = {"prefecture-level city", "city"}, default_divs = { "districts", "subdistricts", "townships", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_prefecture_level_cities, } ----------------------------------------------------------------------------------- -- New York City boroughs -- ----------------------------------------------------------------------------------- export.new_york_boroughs = { ["布朗克斯"] = {the = true, wp = "The Bronx"}, ["布魯克林"] = {wp = "Brooklyn"}, ["曼哈頓"] = {wp = "Manhattan"}, ["皇后區"] = {wp = "Queens"}, ["史泰登島"] = {wp = "Staten Island"}, } export.new_york_boroughs_group = { placename_to_key = false, default_container = {key = "紐約市", placetype = "city"}, default_placetype = "borough", default_is_city = true, data = export.new_york_boroughs, } ----------------------------------------------------------------------------------- -- Romania counties -- ----------------------------------------------------------------------------------- export.romania_counties = { ["阿爾巴縣"] = {wp = "Alba County"}, ["阿拉德縣"] = {wp = "Arad County"}, ["阿爾傑什縣"] = {wp = "Argeș County"}, ["巴考縣"] = {wp = "Bacău County"}, ["比霍爾縣"] = {wp = "Bihor County"}, ["比斯特里察-訥瑟烏德縣"] = {wp = "Bistrița-Năsăud County"}, ["博托沙尼縣"] = {wp = "Botoșani County"}, ["布拉索夫縣"] = {wp = "Brașov County"}, ["布勒伊拉縣"] = {wp = "Brăila County"}, ["布澤烏縣"] = {wp = "Buzău County"}, ["卡拉什-塞韋林縣"] = {wp = "Caraș-Severin County"}, ["克盧日縣"] = {wp = "Cluj County"}, ["康斯坦察縣"] = {wp = "Constanța County"}, ["科瓦斯納縣"] = {wp = "Covasna County"}, ["克勒拉希縣"] = {wp = "Călărași County"}, ["多爾日縣"] = {wp = "Dolj County"}, ["登博維察縣"] = {wp = "Dâmbovița County"}, ["加拉茨縣"] = {wp = "Galați County"}, ["久爾久縣"] = {wp = "Giurgiu County"}, ["戈爾日縣"] = {wp = "Gorj County"}, ["哈爾吉塔縣"] = {wp = "Harghita County"}, ["胡內多阿拉縣"] = {wp = "Hunedoara County"}, ["雅洛米察縣"] = {wp = "Ialomița County"}, ["雅西縣"] = {wp = "Iași County"}, ["伊爾福夫縣"] = {wp = "Ilfov County"}, ["馬拉穆列什縣"] = {wp = "Maramureș County"}, ["梅赫丁茨縣"] = {wp = "Mehedinți County"}, ["穆列什縣"] = {wp = "Mureș County"}, ["尼亞姆茨縣"] = {wp = "Neamț County"}, ["奧爾特縣"] = {wp = "Olt County"}, ["普拉霍瓦縣"] = {wp = "Prahova County"}, ["薩圖馬雷縣"] = {wp = "Satu Mare County"}, ["錫比烏縣"] = {wp = "Sibiu County"}, ["蘇恰瓦縣"] = {wp = "Suceava County"}, ["瑟拉日縣"] = {wp = "Sălaj County"}, ["特列奧爾曼縣"] = {wp = "Teleorman County"}, ["蒂米什縣"] = {wp = "Timiș County"}, ["圖爾恰縣"] = {wp = "Tulcea County"}, ["瓦斯盧伊縣"] = {wp = "Vaslui County"}, ["弗蘭恰縣"] = {wp = "Vrancea County"}, ["沃爾恰縣"] = {wp = "Vâlcea County"}, } export.romania_group = { placename_to_key = false, default_container = "羅馬尼亞", default_placetype = "county", data = export.romania_counties, } ----------------------------------------------------------------------------------- -- Bulgaria provinces -- ----------------------------------------------------------------------------------- export.bulgaria_provinces = { ["布拉戈耶夫格勒省"] = {wp = "Blagoevgrad Province"}, ["布爾加斯省"] = {wp = "Burgas Province"}, ["多布里奇省"] = {wp = "Dobrich Province"}, ["加布羅沃省"] = {wp = "Gabrovo Province"}, ["哈斯科沃省"] = {wp = "Haskovo Province"}, ["卡爾扎利省"] = {wp = "Kardzhali Province"}, ["屈斯滕迪爾省"] = {wp = "Kyustendil Province"}, ["洛維奇省"] = {wp = "Lovech Province"}, ["蒙塔納省"] = {wp = "Montana Province"}, ["帕扎爾吉克省"] = {wp = "Pazardzhik Province"}, ["佩爾尼克省"] = {wp = "Pernik Province"}, ["普萊文省"] = {wp = "Pleven Province"}, ["普羅夫迪夫省"] = {wp = "Plovdiv Province"}, ["拉茲格勒省"] = {wp = "Razgrad Province"}, ["魯塞省"] = {wp = "Ruse Province"}, ["舒門省"] = {wp = "Shumen Province"}, ["錫利斯特拉省"] = {wp = "Silistra Province"}, ["斯利文省"] = {wp = "Sliven Province"}, ["斯莫梁省"] = {wp = "Smolyan Province"}, ["索非亞市省"] = {wp = "Sofia City Province"}, ["索非亞省"] = {wp = "Sofia Province"}, ["斯塔拉扎戈拉省"] = {wp = "Stara Zagora Province"}, ["特爾戈維什泰省"] = {wp = "Targovishte Province"}, ["瓦爾納省"] = {wp = "Varna Province"}, ["大特爾諾沃省"] = {wp = "Veliko Tarnovo Province"}, ["維丁省"] = {wp = "Vidin Province"}, ["弗拉察省"] = {wp = "Vratsa Province"}, ["揚博爾省"] = {wp = "Yambol Province"}, } export.bulgaria_group = { placename_to_key = false, default_container = "保加利亞", default_placetype = "province", data = export.bulgaria_provinces, } ----------------------------------------------------------------------------------- -- Iran provinces -- ----------------------------------------------------------------------------------- export.iran_provinces = { ["阿爾博爾茲省"] = {wp = "Alborz Province"}, ["阿爾達比勒省"] = {wp = "Ardabil Province"}, ["布什爾省"] = {wp = "Bushehr Province"}, ["恰哈爾馬哈勒-巴赫蒂亞里省"] = {wp = "Chaharmahal and Bakhtiari Province"}, ["東阿塞拜疆省"] = {wp = "East Azerbaijan Province"}, ["法爾斯省"] = {wp = "Fars Province"}, ["帕爾斯省"] = {alias_of = "法爾斯省"}, ["吉蘭省"] = {wp = "Gilan Province"}, ["戈勒斯坦省"] = {wp = "Golestan Province"}, ["哈馬丹省"] = {wp = "Hamadan Province"}, ["霍爾木茲甘省"] = {wp = "Hormozgan Province"}, ["伊拉姆省"] = {wp = "Ilam Province"}, ["伊斯法罕省"] = {wp = "Isfahan Province"}, ["克爾曼省"] = {wp = "Kerman Province"}, ["克爾曼沙赫省"] = {wp = "Kermanshah Province"}, ["胡齊斯坦省"] = {wp = "Khuzestan Province"}, ["科吉盧耶-博亞赫邁德省"] = {wp = "Kohgiluyeh and Boyer-Ahmad Province"}, ["庫爾德斯坦省"] = {wp = "Kurdistan Province"}, ["洛雷斯坦省"] = {wp = "Lorestan Province"}, ["馬爾卡齊省"] = {wp = "Markazi Province"}, ["馬贊達蘭省"] = {wp = "Mazandaran Province"}, ["北呼羅珊省"] = {wp = "North Khorasan Province"}, ["加茲溫省"] = {wp = "Qazvin Province"}, ["庫姆省"] = {wp = "Qom Province"}, ["拉扎維呼羅珊省"] = {wp = "Razavi Khorasan Province"}, ["森南省"] = {wp = "Semnan Province"}, ["錫斯坦-俾路支斯坦省"] = {wp = "Sistan and Baluchestan Province"}, ["南呼羅珊省"] = {wp = "South Khorasan Province"}, ["德黑蘭省"] = {wp = "Tehran Province"}, ["西阿塞拜疆省"] = {wp = "West Azerbaijan Province"}, ["亞茲德省"] = {wp = "Yazd Province"}, ["贊詹省"] = {wp = "Zanjan Province"}, } export.iran_group = { placename_to_key = false, default_container = "伊朗", default_placetype = "province", data = export.iran_provinces, } ----------------------------------------------------------------------------------- -- Laos provinces -- ----------------------------------------------------------------------------------- export.laos_provinces = { ["阿塔坡省"] = {wp = "Attapeu Province"}, ["博膠省"] = {wp = "Bokeo Province"}, ["波里坎賽省"] = {wp = "Bolikhamxai Province"}, ["占巴塞省"] = {wp = "Champasak Province"}, ["華潘省"] = {wp = "Houaphanh Province"}, ["甘蒙省"] = {wp = "Khammouane Province"}, ["南塔省"] = {wp = "Luang Namtha Province"}, ["琅勃拉邦省"] = {wp = "Luang Prabang Province"}, ["烏多姆賽省"] = {wp = "Oudomxay Province"}, ["豐沙里省"] = {wp = "Phongsaly Province"}, ["沙拉灣省"] = {wp = "Salavan Province"}, ["沙灣拿吉省"] = {wp = "Savannakhet Province"}, ["萬象省"] = {wp = "Vientiane Province"}, ["萬象直轄市"] = {placetype = "prefecture", wp = "Vientiane Prefecture"}, ["賽亞武里省"] = {wp = "Sainyabuli Province"}, ["塞公省"] = {wp = "Sekong Province"}, ["賽頌本省"] = {wp = "Xaisomboun Province"}, ["川壙省"] = {wp = "Xiangkhouang Province"}, } export.laos_group = { placename_to_key = false, default_container = "老撾", default_placetype = "province", data = export.laos_provinces, } ----------------------------------------------------------------------------------- -- North Korea provinces -- ----------------------------------------------------------------------------------- export.north_korea_provinces = { ["慈江道"] = {wp = "慈江道"}, ["咸鏡北道"] = {wp = "咸鏡北道"}, ["咸鏡南道"] = {wp = "咸鏡南道"}, ["黃海北道"] = {wp = "黃海北道"}, ["黃海南道"] = {wp = "黃海南道"}, ["江原道(北韓)"] = {wp = "江原道 (朝鮮民主主義人民共和國)"}, ["平安北道"] = {wp = "平安北道"}, ["平安南道"] = {wp = "平安南道"}, ["兩江道"] = {wp = "兩江道"}, } export.north_korea_group = { placename_to_key = false, default_container = "朝鮮", default_placetype = "province", data = export.north_korea_provinces, } ----------------------------------------------------------------------------------- -- South Korea provinces -- ----------------------------------------------------------------------------------- export.south_korea_provinces = { ["忠清北道"] = {wp = "忠清北道"}, ["忠清南道"] = {wp = "忠清南道"}, ["江原道(南韓)"] = {wp = "江原特別自治道"}, ["京畿道"] = {wp = "京畿道"}, ["慶尚北道"] = {wp = "慶尚北道"}, ["慶尚南道"] = {wp = "慶尚南道"}, ["全羅北道"] = {wp = "全羅北道"}, ["全羅南道"] = {wp = "全羅南道"}, ["濟州道"] = {wp = "濟州道"}, } export.south_korea_group = { placename_to_key = false, default_container = "韓國", default_placetype = "province", data = export.south_korea_provinces, } ----------------------------------------------------------------------------------- -- Thailand provinces -- ----------------------------------------------------------------------------------- export.thailand_provinces = { ["阿姆納特坤府"] = {wp = "Amnat Charoen Province"}, ["紅統府"] = {wp = "Ang Thong Province"}, ["彭侃府"] = {wp = "Bueng Kan Province"}, ["武里南府"] = {wp = "Buriram Province"}, ["北柳府"] = {wp = "Chachoengsao Province"}, ["猜納府"] = {wp = "Chai Nat Province"}, ["猜耶奔府"] = {wp = "Chaiyaphum Province"}, ["尖竹汶府"] = {wp = "Chanthaburi Province"}, ["清邁府"] = {wp = "Chiang Mai Province"}, ["清萊府"] = {wp = "Chiang Rai Province"}, ["春武里府"] = {wp = "Chonburi Province"}, ["春蓬府"] = {wp = "Chumphon Province"}, ["加拉信府"] = {wp = "Kalasin Province"}, ["甘烹碧府"] = {wp = "Kamphaeng Phet Province"}, ["北碧府"] = {wp = "Kanchanaburi Province"}, ["孔敬府"] = {wp = "Khon Kaen Province"}, ["甲米府"] = {wp = "Krabi Province"}, ["南邦府"] = {wp = "Lampang Province"}, ["南奔府"] = {wp = "Lamphun Province"}, ["黎府"] = {wp = "Loei Province"}, ["華富里府"] = {wp = "Lopburi Province"}, ["夜豐頌府"] = {wp = "Mae Hong Son Province"}, ["瑪哈沙拉堪府"] = {wp = "Maha Sarakham Province"}, ["莫達罕府"] = {wp = "Mukdahan Province"}, ["那空那育府"] = {wp = "Nakhon Nayok Province"}, ["佛統府"] = {wp = "Nakhon Pathom Province"}, ["那空帕農府"] = {wp = "Nakhon Phanom Province"}, ["呵叻府"] = {wp = "Nakhon Ratchasima Province"}, ["那空沙旺府"] = {wp = "Nakhon Sawan Province"}, ["洛坤府"] = {wp = "Nakhon Si Thammarat Province"}, ["難府"] = {wp = "Nan Province"}, ["那拉提瓦府"] = {wp = "Narathiwat Province"}, ["農布瓦蘭普府"] = {wp = "Nong Bua Lamphu Province"}, ["廊開府"] = {wp = "Nong Khai Province"}, ["暖武里府"] = {wp = "Nonthaburi Province"}, ["巴吞他尼府"] = {wp = "Pathum Thani Province"}, ["北大年府"] = {wp = "Pattani Province"}, ["攀牙府"] = {wp = "Phang Nga Province"}, ["博他侖府"] = {wp = "Phatthalung Province"}, ["帕堯府"] = {wp = "Phayao Province"}, ["碧差汶府"] = {wp = "Phetchabun Province"}, ["碧武里府"] = {wp = "Phetchaburi Province"}, ["披集府"] = {wp = "Phichit Province"}, ["彭世洛府"] = {wp = "Phitsanulok Province"}, ["大城府"] = {wp = "Phra Nakhon Si Ayutthaya Province"}, ["帕府"] = {wp = "Phrae Province"}, ["普吉府"] = {wp = "Phuket Province"}, ["巴真府"] = {wp = "Prachinburi Province"}, ["巴蜀府"] = {wp = "Prachuap Khiri Khan Province"}, ["拉廊府"] = {wp = "Ranong Province"}, ["叻丕府"] = {wp = "Ratchaburi Province"}, ["羅勇府"] = {wp = "Rayong Province"}, ["黎逸府"] = {wp = "Roi Et Province"}, ["沙繳府"] = {wp = "Sa Kaeo Province"}, ["色軍府"] = {wp = "Sakon Nakhon Province"}, ["北欖府"] = {wp = "Samut Prakan Province"}, ["沙沒沙空府"] = {wp = "Samut Sakhon Province"}, ["沙沒頌堪府"] = {wp = "Samut Songkhram Province"}, ["沙拉武里府"] = {wp = "Saraburi Province"}, ["沙敦府"] = {wp = "Satun Province"}, ["信武里府"] = {wp = "Sing Buri Province"}, ["四色菊府"] = {wp = "Sisaket Province"}, ["宋卡府"] = {wp = "Songkhla Province"}, ["素可泰府"] = {wp = "Sukhothai Province"}, ["素攀武里府"] = {wp = "Suphan Buri Province"}, ["素叻他尼府"] = {wp = "Surat Thani Province"}, ["素林府"] = {wp = "Surin Province"}, ["達府"] = {wp = "Tak Province"}, ["董里府"] = {wp = "Trang Province"}, ["達叻府"] = {wp = "Trat Province"}, ["烏汶府"] = {wp = "Ubon Ratchathani Province"}, ["烏隆府"] = {wp = "Udon Thani Province"}, ["烏泰他尼府"] = {wp = "Uthai Thani Province"}, ["烏達拉勐府"] = {wp = "Uttaradit Province"}, ["惹拉府"] = {wp = "Yala Province"}, ["耶梭通府"] = {wp = "Yasothon Province"}, } export.thailand_group = { placename_to_key = false, default_container = "泰國", default_placetype = "province", data = export.thailand_provinces, } ----------------------------------------------------------------------------------- -- Turkey provinces -- ----------------------------------------------------------------------------------- export.turkey_provinces = { ["阿達納省"] = {wp = "Adana Province"}, ["阿德亞曼省"] = {wp = "Adıyaman Province"}, ["阿菲永卡拉希薩爾省"] = {wp = "Afyonkarahisar Province"}, ["阿里省"] = {wp = "Ağrı Province"}, ["阿馬西亞省"] = {wp = "Amasya Province"}, ["安卡拉省"] = {wp = "Ankara Province"}, ["安塔利亞省"] = {wp = "Antalya Province"}, ["阿爾特溫省"] = {wp = "Artvin Province"}, ["艾登省"] = {wp = "Aydın Province"}, ["巴勒克埃西爾省"] = {wp = "Balıkesir Province"}, ["比萊吉克省"] = {wp = "Bilecik Province"}, ["賓格爾省"] = {wp = "Bingöl Province"}, ["比特利斯省"] = {wp = "Bitlis Province"}, ["博盧省"] = {wp = "Bolu Province"}, ["布爾杜爾省"] = {wp = "Burdur Province"}, ["布爾薩省"] = {wp = "Bursa Province"}, ["恰納卡萊省"] = {wp = "Çanakkale Province"}, ["昌克勒省"] = {wp = "Çankırı Province"}, ["喬魯姆省"] = {wp = "Çorum Province"}, ["代尼茲利省"] = {wp = "Denizli Province"}, ["迪亞巴克爾省"] = {wp = "Diyarbakır Province"}, ["埃迪爾內省"] = {wp = "Edirne Province"}, ["埃拉澤省"] = {wp = "Elazığ Province"}, ["埃爾津詹省"] = {wp = "Erzincan Province"}, ["埃爾祖魯姆省"] = {wp = "Erzurum Province"}, ["埃斯基謝希爾省"] = {wp = "Eskişehir Province"}, ["加濟安泰普省"] = {wp = "Gaziantep Province"}, ["吉雷松省"] = {wp = "Giresun Province"}, ["居米什哈內省"] = {wp = "Gümüşhane Province"}, ["哈卡里省"] = {wp = "Hakkâri Province"}, ["哈塔伊省"] = {wp = "Hatay Province"}, ["伊斯帕爾塔省"] = {wp = "Isparta Province"}, ["梅爾辛省"] = {wp = "Mersin Province"}, ["伊茲密爾省"] = {wp = "İzmir Province"}, ["卡爾斯省"] = {wp = "Kars Province"}, ["卡斯塔莫努省"] = {wp = "Kastamonu Province"}, ["開塞利省"] = {wp = "Kayseri Province"}, ["柯克拉雷利省"] = {wp = "Kırklareli Province"}, ["克爾謝希爾省"] = {wp = "Kırşehir Province"}, ["科賈埃利省"] = {wp = "Kocaeli Province"}, ["科尼亞省"] = {wp = "Konya Province"}, ["屈塔希亞省"] = {wp = "Kütahya Province"}, ["馬拉蒂亞省"] = {wp = "Malatya Province"}, ["馬尼薩省"] = {wp = "Manisa Province"}, ["卡赫拉曼馬拉什省"] = {wp = "Kahramanmaraş Province"}, ["馬爾丁省"] = {wp = "Mardin Province"}, ["穆拉省"] = {wp = "Muğla Province"}, ["穆什省"] = {wp = "Muş Province"}, ["內夫謝希爾省"] = {wp = "Nevşehir Province"}, ["尼代省"] = {wp = "Niğde Province"}, ["奧爾杜省"] = {wp = "Ordu Province"}, ["里澤省"] = {wp = "Rize Province"}, ["薩卡里亞省"] = {wp = "Sakarya Province"}, ["薩姆松省"] = {wp = "Samsun Province"}, ["錫爾特省"] = {wp = "Siirt Province"}, ["錫諾普省"] = {wp = "Sinop Province"}, ["錫瓦斯省"] = {wp = "Sivas Province"}, ["泰基爾達省"] = {wp = "Tekirdağ Province"}, ["托卡特省"] = {wp = "Tokat Province"}, ["特拉布宗省"] = {wp = "Trabzon Province"}, ["通傑利省"] = {wp = "Tunceli Province"}, ["尚勒烏爾法省"] = {wp = "Şanlıurfa Province"}, ["烏沙克省"] = {wp = "Uşak Province"}, ["凡省"] = {wp = "Van Province"}, ["約茲加特省"] = {wp = "Yozgat Province"}, ["宗古爾達克省"] = {wp = "Zonguldak Province"}, ["阿克薩賴省"] = {wp = "Aksaray Province"}, ["拜布爾特省"] = {wp = "Bayburt Province"}, ["卡拉曼省"] = {wp = "Karaman Province"}, ["克勒克卡萊省"] = {wp = "Kırıkkale Province"}, ["巴特曼省"] = {wp = "Batman Province"}, ["蘇爾納克省"] = {wp = "Şırnak Province"}, ["巴爾騰省"] = {wp = "Bartın Province"}, ["阿爾達罕省"] = {wp = "Ardahan Province"}, ["伊迪爾省"] = {wp = "Iğdır Province"}, ["亞洛瓦省"] = {wp = "Yalova Province"}, ["卡拉比克省"] = {wp = "Karabük Province"}, ["基利斯省"] = {wp = "Kilis Province"}, ["奧斯曼尼耶省"] = {wp = "Osmaniye Province"}, ["迪茲傑省"] = {wp = "Düzce Province"}, } export.turkey_group = { placename_to_key = false, default_container = "土耳其", default_placetype = "province", data = export.turkey_provinces, } ----------------------------------------------------------------------------------- -- Vietnam provinces -- ----------------------------------------------------------------------------------- export.vietnam_provinces = { -- Northeast ["北江省"] = {wp = "Bắc Giang Province"}, ["北件省"] = {wp = "Bắc Kạn Province"}, ["高平省"] = {wp = "Cao Bằng Province"}, ["河江省"] = {wp = "Hà Giang Province"}, ["諒山省"] = {wp = "Lạng Sơn Province"}, ["富壽省"] = {wp = "Phú Thọ Province"}, ["廣寧省"] = {wp = "Quảng Ninh Province"}, ["太原省"] = {wp = "Thái Nguyên Province"}, ["宣光省"] = {wp = "Tuyên Quang Province"}, -- Northwest ["老街省"] = {wp = "Lào Cai Province"}, ["安沛省"] = {wp = "Yên Bái Province"}, ["奠邊省"] = {wp = "Điện Biên Province"}, ["和平省"] = {wp = "Hoà Bình Province"}, ["萊州省"] = {wp = "Lai Châu Province"}, ["山羅省"] = {wp = "Sơn La Province"}, -- Red River Delta ["北寧省"] = {wp = "Bắc Ninh Province"}, ["河南省"] = {wp = "Hà Nam Province"}, ["海陽省"] = {wp = "Hải Dương Province"}, ["興安省"] = {wp = "Hưng Yên Province"}, ["南定省"] = {wp = "Nam Định Province"}, ["寧平省"] = {wp = "Ninh Bình Province"}, ["太平省"] = {wp = "Thái Bình Province"}, ["永福省"] = {wp = "Vĩnh Phúc Province"}, -- North Central Coast ["河靜省"] = {wp = "Hà Tĩnh Province"}, ["乂安省"] = {wp = "Nghệ An Province"}, ["廣平省"] = {wp = "Quảng Bình Province"}, ["廣治省"] = {wp = "Quảng Trị Province"}, ["清化省"] = {wp = "Thanh Hoá Province"}, -- Central Highlands ["得樂省"] = {wp = "Đắk Lắk Province"}, ["得農省"] = {wp = "Đăk Nông Province"}, ["嘉萊省"] = {wp = "Gia Lai Province"}, ["崑嵩省"] = {wp = "Kon Tum Province"}, ["林同省"] = {wp = "Lâm Đồng Province"}, -- South Central Coast ["平定省"] = {wp = "Bình Định Province"}, ["平順省"] = {wp = "Bình Thuận Province"}, ["慶和省"] = {wp = "Khánh Hoà Province"}, ["寧順省"] = {wp = "Ninh Thuận Province"}, ["富安省"] = {wp = "Phú Yên Province"}, ["廣南省"] = {wp = "Quảng Nam Province"}, ["廣義省"] = {wp = "Quảng Ngãi Province"}, -- Southeast ["巴地-頭頓省"] = {wp = "Bà Rịa–Vũng Tàu Province"}, ["平陽省"] = {wp = "Bình Dương Province"}, ["平福省"] = {wp = "Bình Phước Province"}, ["同奈省"] = {wp = "Đồng Nai Province"}, ["西寧省"] = {wp = "Tây Ninh Province"}, -- Mekong Delta ["安江省"] = {wp = "An Giang Province"}, ["薄寮省"] = {wp = "Bạc Liêu Province"}, ["檳椥省"] = {wp = "Bến Tre Province"}, ["金甌省"] = {wp = "Cà Mau Province"}, ["同塔省"] = {wp = "Đồng Tháp Province"}, ["後江省"] = {wp = "Hậu Giang Province"}, ["堅江省"] = {wp = "Kiên Giang Province"}, ["龍安省"] = {wp = "Long An Province"}, ["朔莊省"] = {wp = "Sóc Trăng Province"}, ["前江省"] = {wp = "Tiền Giang Province"}, ["茶榮省"] = {wp = "Trà Vinh Province"}, ["永隆省"] = {wp = "Vĩnh Long Province"}, } export.vietnam_group = { placename_to_key = false, default_container = "越南", default_placetype = "province", data = export.vietnam_provinces, } ----------------------------------------------------------------------------------- -- Nigeria states -- ----------------------------------------------------------------------------------- export.nigeria_states = { ["阿比亞州"] = {wp = "Abia State"}, ["阿達馬瓦州"] = {wp = "Adamawa State"}, ["阿誇伊博姆州"] = {wp = "Akwa Ibom State"}, ["阿南布拉州"] = {wp = "Anambra State"}, ["包奇州"] = {wp = "Bauchi State"}, ["貝耶薩州"] = {wp = "Bayelsa State"}, ["貝努埃州"] = {wp = "Benue State"}, ["博爾諾州"] = {wp = "Borno State"}, ["跨河州"] = {wp = "Cross River State"}, ["三角洲州"] = {wp = "Delta State"}, ["埃博尼州"] = {wp = "Ebonyi State"}, ["埃多州"] = {wp = "Edo State"}, ["埃基蒂州"] = {wp = "Ekiti State"}, ["埃努古州"] = {wp = "Enugu State"}, ["阿布賈聯邦首都轄區"] = {placetype = {"federal territory", "territory", "state"}, the = true, wp = "Federal Capital Territory, Nigeria"}, ["貢貝州"] = {wp = "Gombe State"}, ["伊莫州"] = {wp = "Imo State"}, ["吉加瓦州"] = {wp = "Jigawa State"}, ["卡杜納州"] = {wp = "Kaduna State"}, ["卡諾州"] = {wp = "Kano State"}, ["卡齊納州"] = {wp = "Katsina State"}, ["克比州"] = {wp = "Kebbi State"}, ["科吉州"] = {wp = "Kogi State"}, ["誇拉州"] = {wp = "Kwara State"}, ["拉各斯州"] = {wp = "Lagos State"}, ["納薩拉瓦州"] = {wp = "Nasarawa State"}, ["尼日爾州"] = {wp = "Niger State"}, ["奧貢州"] = {wp = "Ogun State"}, ["翁多州"] = {wp = "Ondo State"}, ["奧順州"] = {wp = "Osun State"}, ["奧約州"] = {wp = "Oyo State"}, ["高原州"] = {wp = "Plateau State"}, ["河流州"] = {wp = "Rivers State"}, ["索科托州"] = {wp = "Sokoto State"}, ["塔拉巴州"] = {wp = "Taraba State"}, ["約貝州"] = {wp = "Yobe State"}, ["贊法拉州"] = {wp = "Zamfara State"}, } export.nigeria_group = { placename_to_key = false, default_container = "奈及利亞", default_placetype = "state", data = export.nigeria_states, } ----------------------------------------------------------------------------------- -- Selected city groups -- ----------------------------------------------------------------------------------- -- Key world cities frequently used as holonyms (entries covered by dedicated city groups removed) export.misc_cities = { -- Americas ["費爾法克斯"] = {container = "弗吉尼亞", placetype = "city", is_city = true, wp = "Fairfax, Virginia"}, ["斯克蘭頓"] = {container = "賓夕法尼亞", placetype = "city", is_city = true, wp = "Scranton, Pennsylvania"}, ["里約熱內盧市"] = {container = "巴西", placetype = "city", is_city = true, wp = "Rio de Janeiro"}, ["布宜諾斯艾利斯"] = {container = "阿根廷", placetype = "city", is_city = true, wp = "Buenos Aires"}, ["聖地牙哥"] = {container = "智利", placetype = "city", is_city = true, wp = "Santiago"}, ["波哥大"] = {container = "哥倫比亞", placetype = "city", is_city = true, wp = "Bogotá"}, ["利馬"] = {container = "秘魯", placetype = "city", is_city = true, wp = "Lima"}, -- Europe ["阿姆斯特丹"] = {container = "荷蘭", placetype = "city", is_city = true, wp = "Amsterdam"}, ["布魯塞爾"] = {container = "比利時", placetype = "city", is_city = true, wp = "Brussels"}, ["維也納"] = {container = "奧地利", placetype = "city", is_city = true, wp = "Vienna"}, ["伊斯坦布爾"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Istanbul"}, ["基輔"] = {container = "烏克蘭", placetype = "city", is_city = true, wp = "Kyiv"}, ["華沙"] = {container = "波蘭", placetype = "city", is_city = true, wp = "Warsaw"}, ["布拉格"] = {container = "捷克", placetype = "city", is_city = true, wp = "Prague"}, ["布達佩斯"] = {container = "匈牙利", placetype = "city", is_city = true, wp = "Budapest"}, ["斯德哥爾摩"] = {container = "瑞典", placetype = "city", is_city = true, wp = "Stockholm"}, ["赫爾辛基"] = {container = "芬蘭", placetype = "city", is_city = true, wp = "Helsinki"}, ["奧斯陸"] = {container = "挪威", placetype = "city", is_city = true, wp = "Oslo"}, ["哥本哈根"] = {container = "丹麥", placetype = "city", is_city = true, wp = "Copenhagen"}, ["里斯本"] = {container = "葡萄牙", placetype = "city", is_city = true, wp = "Lisbon"}, ["雅典"] = {container = "希臘", placetype = "city", is_city = true, wp = "Athens"}, ["蘇黎世"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Zurich"}, ["日內瓦"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Geneva"}, ["第比利斯"] = {container = "格魯吉亞", placetype = "city", is_city = true, wp = "Tbilisi"}, ["貝爾格勒"] = {container = "塞爾維亞", placetype = "city", is_city = true, wp = "Belgrade"}, ["薩格勒布"] = {container = "克羅埃西亞", placetype = "city", is_city = true, wp = "Zagreb"}, ["都柏林"] = {container = "愛爾蘭", placetype = "city", is_city = true, wp = "Dublin"}, -- Asia ["北京市"] = {container = "北京", placetype = "city", is_city = true, wp = "Beijing"}, ["上海市"] = {container = "上海", placetype = "city", is_city = true, wp = "Shanghai"}, ["德里市"] = {container = "德里", placetype = "city", is_city = true, wp = "Delhi"}, ["曼谷"] = {container = "泰國", placetype = "city", is_city = true, wp = "Bangkok"}, ["吉隆坡"] = {container = "馬來西亞", placetype = "city", is_city = true, wp = "Kuala Lumpur"}, ["開羅"] = {container = "埃及", placetype = "city", is_city = true, wp = "Cairo"}, ["德黑蘭"] = {container = "伊朗", placetype = "city", is_city = true, wp = "Tehran"}, ["安卡拉"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Ankara"}, -- Oceania ["奧克蘭"] = {container = "紐西蘭", placetype = "city", is_city = true, wp = "Auckland"}, -- Africa ["開普敦"] = {container = "南非", placetype = "city", is_city = true, wp = "Cape Town"}, ["約翰尼斯堡"] = {container = "南非", placetype = "city", is_city = true, wp = "Johannesburg"}, ["奈洛比"] = {container = "肯亞", placetype = "city", is_city = true, wp = "Nairobi"}, } export.misc_cities_group = { placename_to_key = false, default_placetype = "city", default_is_city = true, data = export.misc_cities, } ----------------------------------------------------------------------------------- -- Brazil states (for testcase coverage) -- ----------------------------------------------------------------------------------- export.brazil_states = { ["里約熱內盧州"] = {wp = "Rio de Janeiro (state)"}, ["里約熱內盧"] = {alias_of = "里約熱內盧州"}, ["聖保羅州"] = {wp = "São Paulo (state)"}, ["米納斯吉拉斯"] = {wp = "Minas Gerais"}, ["巴伊亞"] = {wp = "Bahia"}, ["亞馬遜州"] = {wp = "Amazonas (Brazilian state)"}, ["帕拉州"] = {wp = "Pará"}, ["伯南布哥州"] = {wp = "Pernambuco"}, ["南里奧格蘭德州"] = {wp = "Rio Grande do Sul"}, ["巴西聯邦區"] = {wp = "Federal District (Brazil)"}, ["塞阿拉州"] = {wp = "Ceará"}, ["巴拉那州"] = {wp = "Paraná (state)"}, ["戈亞斯州"] = {wp = "Goiás"}, ["聖埃斯皮里圖州"] = {wp = "Espírito Santo"}, ["馬拉尼昂州"] = {wp = "Maranhão"}, ["北里奧格蘭德州"] = {wp = "Rio Grande do Norte"}, ["聖卡塔琳娜州"] = {wp = "Santa Catarina (state)"}, ["阿拉戈亞斯州"] = {wp = "Alagoas"}, ["帕拉伊巴州"] = {wp = "Paraíba"}, ["皮奧伊州"] = {wp = "Piauí"}, ["阿克里州"] = {wp = "Acre (state)"}, ["阿馬帕州"] = {wp = "Amapá"}, ["馬托格羅索州"] = {wp = "Mato Grosso"}, ["南馬托格羅索州"] = {wp = "Mato Grosso do Sul"}, ["朗多尼亞州"] = {wp = "Rondônia"}, ["羅賴馬州"] = {wp = "Roraima"}, ["塞爾希培州"] = {wp = "Sergipe"}, ["托坎廷斯州"] = {wp = "Tocantins"}, } export.brazil_group = { placename_to_key = false, default_container = "巴西", default_placetype = "state", data = export.brazil_states, } ----------------------------------------------------------------------------------- -- France regions -- ----------------------------------------------------------------------------------- export.france_administrative_regions = { ["奧弗涅-隆河-阿爾卑斯大區"] = {wp = "Auvergne-Rhône-Alpes"}, ["勃艮第-弗朗什-孔泰大區"] = {wp = "Bourgogne-Franche-Comté"}, ["布列塔尼大區"] = {wp = "Brittany (administrative region)"}, ["中央-羅亞爾河谷大區"] = {wp = "Centre-Val de Loire"}, ["科西嘉大區"] = {wp = "Corsica"}, ["大東部大區"] = {wp = "Grand Est"}, ["上法蘭西大區"] = {wp = "Hauts-de-France"}, ["法蘭西島大區"] = {wp = "Île-de-France"}, ["諾曼底大區"] = {wp = "Normandy"}, ["新阿基坦大區"] = {wp = "Nouvelle-Aquitaine"}, ["奧克西塔尼大區"] = {wp = "Occitanie"}, ["盧瓦爾河地區大區"] = {wp = "Pays de la Loire"}, ["普羅旺斯-阿爾卑斯-蔚藍海岸大區"] = {wp = "Provence-Alpes-Côte d'Azur"}, -- Old region names (pre-2016) as aliases ["北部-加萊海峽大區"] = {wp = "Nord-Pas-de-Calais"}, ["加來海峽大區"] = {alias_of = "北部-加萊海峽大區"}, } export.france_group = { placename_to_key = false, default_container = "法國", default_placetype = "region", data = export.france_administrative_regions, } -- France departments (abbreviated list) export.france_departments = { ["北部省"] = {wp = "Nord (department)", container = "上法蘭西大區"}, ["加來海峽省"] = {wp = "Pas-de-Calais", container = "上法蘭西大區"}, ["巴黎市"] = {wp = "Paris", container = "法蘭西島大區"}, ["上塞納省"] = {wp = "Hauts-de-Seine", container = "法蘭西島大區"}, } export.france_departments_group = { placename_to_key = false, default_container = "法國", default_placetype = "department", data = export.france_departments, } ----------------------------------------------------------------------------------- -- Austria states -- ----------------------------------------------------------------------------------- export.austria_states = { ["維也納州"] = {wp = "Vienna (state)"}, ["下奧地利州"] = {wp = "Lower Austria"}, ["上奧地利州"] = {wp = "Upper Austria"}, ["施泰爾馬克州"] = {wp = "Styria"}, ["蒂羅爾州"] = {wp = "Tyrol (state)"}, ["克恩頓州"] = {wp = "Carinthia"}, ["薩爾茨堡州"] = {wp = "Salzburg (state)"}, ["福拉爾貝格州"] = {wp = "Vorarlberg"}, ["布根蘭州"] = {wp = "Burgenland"}, } export.austria_group = { placename_to_key = false, default_container = "奧地利", default_placetype = "state", data = export.austria_states, } ----------------------------------------------------------------------------------- -- Bangladesh divisions -- ----------------------------------------------------------------------------------- export.bangladesh_divisions = { ["巴里薩爾專區"] = {wp = "Barisal Division"}, ["吉大港專區"] = {wp = "Chittagong Division"}, ["達卡專區"] = {wp = "Dhaka Division"}, ["庫爾納專區"] = {wp = "Khulna Division"}, ["邁門辛專區"] = {wp = "Mymensingh Division"}, ["拉吉沙希專區"] = {wp = "Rajshahi Division"}, ["朗普爾專區"] = {wp = "Rangpur Division"}, ["錫爾赫特專區"] = {wp = "Sylhet Division"}, } export.bangladesh_group = { placename_to_key = false, default_container = "孟加拉國", default_placetype = "division", data = export.bangladesh_divisions, } ----------------------------------------------------------------------------------- -- Egypt governorates -- ----------------------------------------------------------------------------------- export.egypt_governorates = { ["開羅省"] = {wp = "Cairo Governorate"}, ["吉薩省"] = {wp = "Giza Governorate"}, ["夏爾基亞省"] = {wp = "Sharqia Governorate"}, ["達卡利亞省"] = {wp = "Dakahlia Governorate"}, ["貝海拉省"] = {wp = "Beheira Governorate"}, ["明亞省"] = {wp = "Minya Governorate"}, ["蓋柳比亞省"] = {wp = "Qalyubia Governorate"}, ["索哈傑省"] = {wp = "Sohag Governorate"}, ["亞歷山大省"] = {wp = "Alexandria Governorate"}, ["加爾比亞省"] = {wp = "Gharbia Governorate"}, ["艾斯尤特省"] = {wp = "Asyut Governorate"}, ["莫諾菲亞省"] = {wp = "Monufia Governorate"}, ["法尤姆省"] = {wp = "Faiyum Governorate"}, ["卡夫爾謝赫省"] = {wp = "Kafr El Sheikh Governorate"}, ["基納省"] = {wp = "Qena Governorate"}, ["本尼蘇威夫省"] = {wp = "Beni Suef Governorate"}, ["達米埃塔省"] = {wp = "Damietta Governorate"}, ["阿斯旺省"] = {wp = "Aswan Governorate"}, ["伊斯梅利亞省"] = {wp = "Ismailia Governorate"}, ["盧克索省"] = {wp = "Luxor Governorate"}, ["蘇伊士省"] = {wp = "Suez Governorate"}, ["塞德港省"] = {wp = "Port Said Governorate"}, ["馬特魯省"] = {wp = "Matrouh Governorate"}, ["北西奈省"] = {wp = "North Sinai Governorate"}, ["紅海省"] = {wp = "Red Sea Governorate"}, ["新河谷省"] = {wp = "New Valley Governorate"}, ["南西奈省"] = {wp = "South Sinai Governorate"}, } export.egypt_group = { placename_to_key = false, default_container = "埃及", default_placetype = "governorate", data = export.egypt_governorates, } ----------------------------------------------------------------------------------- -- Finland regions -- ----------------------------------------------------------------------------------- export.finland_regions = { ["拉普蘭省"] = {wp = "Lapland (Finland)"}, ["北奧斯特博滕省"] = {wp = "North Ostrobothnia"}, ["卡亞尼省"] = {wp = "Kainuu"}, ["北卡累利亞省"] = {wp = "North Karelia"}, ["北薩沃省"] = {wp = "Northern Savonia"}, ["南薩沃省"] = {wp = "Southern Savonia"}, ["南卡累利亞省"] = {wp = "South Karelia"}, ["中芬蘭省"] = {wp = "Central Finland"}, ["南奧斯特博滕省"] = {wp = "South Ostrobothnia"}, ["奧斯特博滕省"] = {wp = "Ostrobothnia (region)"}, ["中奧斯特博滕省"] = {wp = "Central Ostrobothnia"}, ["皮爾卡馬省"] = {wp = "Pirkanmaa"}, ["薩塔昆塔省"] = {wp = "Satakunta"}, ["派亞特哈米省"] = {wp = "Päijät-Häme"}, ["坎塔哈米省"] = {wp = "Tavastia Proper"}, ["屈米河谷省"] = {wp = "Kymenlaakso"}, ["烏西馬省"] = {wp = "Uusimaa"}, ["西南芬蘭省"] = {wp = "Southwest Finland"}, ["奧蘭群島"] = {wp = "Åland", placetype = {"autonomous region", "region"}}, } export.finland_group = { placename_to_key = false, default_container = "芬蘭", default_placetype = "region", data = export.finland_regions, } ----------------------------------------------------------------------------------- -- Greece regions -- ----------------------------------------------------------------------------------- export.greece_regions = { ["阿提卡大區"] = {wp = "Attica (region)"}, ["中希臘大區"] = {wp = "Central Greece (administrative region)"}, ["中馬其頓大區"] = {wp = "Central Macedonia"}, ["克里特大區"] = {wp = "Crete"}, ["東馬其頓和色雷斯大區"] = {wp = "Eastern Macedonia and Thrace"}, ["伊庇魯斯大區"] = {wp = "Epirus (region)"}, ["愛奧尼亞群島大區"] = {wp = "Ionian Islands (region)"}, ["北愛琴大區"] = {wp = "North Aegean"}, ["伯羅奔尼撒大區"] = {wp = "Peloponnese (region)"}, ["南愛琴大區"] = {wp = "South Aegean"}, ["塞薩利大區"] = {wp = "Thessaly"}, ["西希臘大區"] = {wp = "Western Greece"}, ["西馬其頓大區"] = {wp = "Western Macedonia"}, ["阿托斯山"] = {wp = "Monastic community of Mount Athos", placetype = {"autonomous region", "region"}}, } export.greece_group = { placename_to_key = false, default_container = "希臘", default_placetype = "region", data = export.greece_regions, } ----------------------------------------------------------------------------------- -- Indonesia provinces -- ----------------------------------------------------------------------------------- export.indonesia_provinces = { ["亞齊省"] = {wp = "Aceh"}, ["峇里省"] = {wp = "Bali"}, ["邦加勿里洞省"] = {wp = "Bangka Belitung Islands"}, ["萬丹省"] = {wp = "Banten"}, ["明古魯省"] = {wp = "Bengkulu"}, ["中爪哇省"] = {wp = "Central Java"}, ["中加里曼丹省"] = {wp = "Central Kalimantan"}, ["中巴布亞省"] = {wp = "Central Papua"}, ["中蘇拉威西省"] = {wp = "Central Sulawesi"}, ["東爪哇省"] = {wp = "East Java"}, ["東加里曼丹省"] = {wp = "East Kalimantan"}, ["東努沙登加拉省"] = {wp = "East Nusa Tenggara"}, ["哥倫打洛省"] = {wp = "Gorontalo"}, ["巴布亞高地省"] = {wp = "Highland Papua"}, ["雅加達首都特區"] = {wp = "Jakarta"}, ["占碑省"] = {wp = "Jambi"}, ["楠榜省"] = {wp = "Lampung"}, ["馬魯古省"] = {wp = "Maluku"}, ["北加里曼丹省"] = {wp = "North Kalimantan"}, ["北馬魯古省"] = {wp = "North Maluku"}, ["北蘇拉威西省"] = {wp = "North Sulawesi"}, ["北巴布亞省"] = {wp = "North Papua"}, ["北蘇門答臘省"] = {wp = "North Sumatra"}, ["巴布亞省"] = {wp = "Papua (province)"}, ["廖內省"] = {wp = "Riau"}, ["廖內群島省"] = {wp = "Riau Islands"}, ["東南蘇拉威西省"] = {wp = "Southeast Sulawesi"}, ["南加里曼丹省"] = {wp = "South Kalimantan"}, ["南巴布亞省"] = {wp = "South Papua"}, ["南蘇拉威西省"] = {wp = "South Sulawesi"}, ["南蘇門答臘省"] = {wp = "South Sumatra"}, ["西南巴布亞省"] = {wp = "Southwest Papua"}, ["西爪哇省"] = {wp = "West Java"}, ["西加里曼丹省"] = {wp = "West Kalimantan"}, ["西努沙登加拉省"] = {wp = "West Nusa Tenggara"}, ["西巴布亞省"] = {wp = "West Papua (province)"}, ["西蘇拉威西省"] = {wp = "West Sulawesi"}, ["西蘇門答臘省"] = {wp = "West Sumatra"}, ["日惹特區"] = {wp = "Special Region of Yogyakarta"}, } export.indonesia_group = { placename_to_key = false, default_container = "印度尼西亞", default_placetype = "province", data = export.indonesia_provinces, } ----------------------------------------------------------------------------------- -- Lebanon governorates -- ----------------------------------------------------------------------------------- export.lebanon_governorates = { ["阿卡爾省"] = {wp = "Akkar Governorate"}, ["巴勒貝克-赫爾梅勒省"] = {wp = "Baalbek-Hermel Governorate"}, ["貝魯特省"] = {wp = "Beirut Governorate"}, ["貝卡省"] = {wp = "Beqaa Governorate"}, ["克塞旺-裘拜勒省"] = {wp = "Keserwan-Jbeil Governorate"}, ["黎巴嫩山省"] = {wp = "Mount Lebanon Governorate"}, ["納巴蒂耶省"] = {wp = "Nabatieh Governorate"}, ["北部省(黎巴嫩)"] = {wp = "North Governorate (Lebanon)", no_auto_augment_container = true}, ["南部省(黎巴嫩)"] = {wp = "South Governorate (Lebanon)", no_auto_augment_container = true}, } export.lebanon_group = { placename_to_key = false, default_container = "黎巴嫩", default_placetype = "governorate", data = export.lebanon_governorates, } ----------------------------------------------------------------------------------- -- Malaysia states -- ----------------------------------------------------------------------------------- export.malaysia_states = { ["柔佛州"] = {wp = "Johor"}, ["吉打州"] = {wp = "Kedah"}, ["吉蘭丹州"] = {wp = "Kelantan"}, ["馬六甲州"] = {wp = "Malacca"}, ["森美蘭州"] = {wp = "Negeri Sembilan"}, ["彭亨州"] = {wp = "Pahang"}, ["檳城州"] = {wp = "Penang"}, ["霹靂州"] = {wp = "Perak"}, ["玻璃市州"] = {wp = "Perlis"}, ["沙巴州"] = {wp = "Sabah"}, ["砂拉越州"] = {wp = "Sarawak"}, ["雪蘭莪州"] = {wp = "Selangor"}, ["登嘉樓州"] = {wp = "Terengganu"}, } export.malaysia_group = { placename_to_key = false, default_container = "馬來西亞", default_placetype = "state", data = export.malaysia_states, } ----------------------------------------------------------------------------------- -- Malta regions -- ----------------------------------------------------------------------------------- export.malta_regions = { ["東部區(馬爾他)"] = {wp = "Eastern Region, Malta", no_auto_augment_container = true}, ["戈佐區"] = {wp = "Gozo Region"}, ["北部區(馬爾他)"] = {wp = "Northern Region, Malta", no_auto_augment_container = true}, ["港口區"] = {wp = "Port Region, Malta"}, ["南部區(馬爾他)"] = {wp = "Southern Region, Malta", no_auto_augment_container = true}, ["西部區(馬爾他)"] = {wp = "Western Region, Malta", no_auto_augment_container = true}, } export.malta_group = { placename_to_key = false, default_container = "馬爾他", default_placetype = "region", data = export.malta_regions, } ----------------------------------------------------------------------------------- -- Mexico states -- ----------------------------------------------------------------------------------- export.mexico_states = { ["阿瓜斯卡連特斯州"] = {wp = "Aguascalientes"}, ["下加利福尼亞州"] = {wp = "Baja California"}, ["南下加利福尼亞州"] = {wp = "Baja California Sur"}, ["坎佩切州"] = {wp = "Campeche"}, ["恰帕斯州"] = {wp = "Chiapas"}, ["奇瓦瓦州"] = {wp = "Chihuahua (state)"}, ["科阿韋拉州"] = {wp = "Coahuila"}, ["科利馬州"] = {wp = "Colima"}, ["杜蘭戈州"] = {wp = "Durango"}, ["瓜納華托州"] = {wp = "Guanajuato"}, ["格雷羅州"] = {wp = "Guerrero"}, ["伊達爾戈州"] = {wp = "Hidalgo (state)"}, ["哈利斯科州"] = {wp = "Jalisco"}, ["墨西哥州"] = {wp = "State of Mexico"}, ["米卻肯州"] = {wp = "Michoacán"}, ["莫雷洛斯州"] = {wp = "Morelos"}, ["納亞里特州"] = {wp = "Nayarit"}, ["新萊昂州"] = {wp = "Nuevo León"}, ["瓦哈卡州"] = {wp = "Oaxaca"}, ["普埃布拉州"] = {wp = "Puebla"}, ["克雷塔羅州"] = {wp = "Querétaro"}, ["金塔納羅奧州"] = {wp = "Quintana Roo"}, ["聖路易斯波托西州"] = {wp = "San Luis Potosí"}, ["錫那羅亞州"] = {wp = "Sinaloa"}, ["索諾拉州"] = {wp = "Sonora"}, ["塔巴斯科州"] = {wp = "Tabasco (state)"}, ["塔毛利帕斯州"] = {wp = "Tamaulipas"}, ["特拉斯卡拉州"] = {wp = "Tlaxcala"}, ["韋拉克魯斯州"] = {wp = "Veracruz"}, ["尤卡坦州"] = {wp = "Yucatán"}, ["薩卡特卡斯州"] = {wp = "Zacatecas"}, } export.mexico_group = { placename_to_key = false, default_container = "墨西哥", default_placetype = "state", data = export.mexico_states, } ----------------------------------------------------------------------------------- -- Moldova districts and ATUs -- ----------------------------------------------------------------------------------- export.moldova_districts = { ["阿內尼諾伊區"] = {wp = "Anenii Noi District"}, ["巴薩拉比亞斯卡區"] = {wp = "Basarabeasca District"}, ["布里切尼區"] = {wp = "Briceni District"}, ["卡胡爾區"] = {wp = "Cahul District"}, ["坎特米爾區"] = {wp = "Cantemir District"}, ["克勒拉希區"] = {wp = "Călărași District"}, ["考沙尼區"] = {wp = "Căușeni District"}, ["奇米什利亞區"] = {wp = "Cimișlia District"}, ["克里烏列尼區"] = {wp = "Criuleni District"}, ["東杜沙尼區"] = {wp = "Dondușeni District"}, ["德羅基亞區"] = {wp = "Drochia District"}, ["杜巴薩里區"] = {wp = "Dubăsari District"}, ["埃迪涅茨區"] = {wp = "Edineț District"}, ["法勒什蒂區"] = {wp = "Fălești District"}, ["弗洛雷什蒂區"] = {wp = "Florești District"}, ["格洛德尼區"] = {wp = "Glodeni District"}, ["欣切什蒂區"] = {wp = "Hîncești District"}, ["亞洛韋尼區"] = {wp = "Ialoveni District"}, ["萊奧瓦區"] = {wp = "Leova District"}, ["尼斯波雷尼區"] = {wp = "Nisporeni District"}, ["奧克尼察區"] = {wp = "Ocnița District"}, ["奧爾海伊區"] = {wp = "Orhei District"}, ["雷齊納區"] = {wp = "Rezina District"}, ["雷什卡尼區"] = {wp = "Rîșcani District"}, ["辛格雷伊區"] = {wp = "Sîngerei District"}, ["索羅卡區"] = {wp = "Soroca District"}, ["斯特拉沙尼區"] = {wp = "Strășeni District"}, ["紹爾達涅什蒂區"] = {wp = "Șoldănești District"}, ["斯蒂凡沃達區"] = {wp = "Ștefan Vodă District"}, ["塔拉克利亞區"] = {wp = "Taraclia District"}, ["泰萊涅什蒂區"] = {wp = "Telenești District"}, ["翁格尼區"] = {wp = "Ungheni District"}, ["基希訥烏市"] = {wp = "Chișinău", placetype = "municipality"}, ["巴爾茨市"] = {wp = "Bălți", placetype = "municipality"}, ["加告茲自治領土"] = {wp = "Gagauzia", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, ["本德爾市"] = {wp = "Bender, Moldova", placetype = "municipality"}, ["德涅斯特河沿岸"] = {wp = "Transnistria", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, } export.moldova_group = { placename_to_key = false, default_container = "摩爾多瓦", default_placetype = {"district", "raion"}, data = export.moldova_districts, } ----------------------------------------------------------------------------------- -- Morocco regions -- ----------------------------------------------------------------------------------- export.morocco_regions = { ["丹吉爾-得土安-霍賽馬大區"] = {wp = "Tangier-Tetouan-Al Hoceima"}, ["東方大區(摩洛哥)"] = {wp = "Oriental, Morocco"}, ["非斯-梅克內斯大區"] = {wp = "Fez-Meknes"}, ["拉巴特-薩累-肯尼特拉大區"] = {wp = "Rabat-Salé-Kénitra"}, ["貝尼梅拉勒-赫尼夫拉大區"] = {wp = "Béni Mellal-Khénifra"}, ["卡薩布蘭卡-塞塔特大區"] = {wp = "Casablanca-Settat"}, ["馬拉喀什-薩菲大區"] = {wp = "Marrakesh-Safi"}, ["德拉阿-塔菲拉勒特大區"] = {wp = "Drâa-Tafilalet"}, ["蘇斯-馬薩大區"] = {wp = "Souss-Massa"}, ["蓋勒明-烏德農大區"] = {wp = "Guelmim-Oued Noun"}, ["拉阿永-薩基亞-哈姆拉大區"] = {wp = "Laâyoune-Sakia El Hamra"}, ["達赫拉-奧以德達赫卜大區"] = {wp = "Dakhla-Oued Ed-Dahab"}, } export.morocco_group = { placename_to_key = false, default_container = "摩洛哥", default_placetype = "region", data = export.morocco_regions, } ----------------------------------------------------------------------------------- -- Netherlands provinces -- ----------------------------------------------------------------------------------- export.netherlands_provinces = { ["德倫特省"] = {wp = "Drenthe"}, ["弗萊福蘭省"] = {wp = "Flevoland"}, ["弗里斯蘭省"] = {wp = "Friesland"}, ["格爾德蘭省"] = {wp = "Gelderland"}, ["格羅寧根省"] = {wp = "Groningen (province)"}, ["林堡省(荷蘭)"] = {wp = "Limburg (Netherlands)"}, ["北布拉班特省"] = {wp = "North Brabant"}, ["北荷蘭省"] = {wp = "North Holland"}, ["上艾瑟爾省"] = {wp = "Overijssel"}, ["南荷蘭省"] = {wp = "South Holland"}, ["烏特勒支省"] = {wp = "Utrecht (province)"}, ["澤蘭省"] = {wp = "Zeeland"}, } export.netherlands_group = { placename_to_key = false, default_container = "荷蘭", default_placetype = "province", data = export.netherlands_provinces, } ----------------------------------------------------------------------------------- -- New Zealand regions -- ----------------------------------------------------------------------------------- export.new_zealand_regions = { ["北地大區"] = {wp = "Northland Region"}, ["奧克蘭大區"] = {wp = "Auckland Region"}, ["懷卡托大區"] = {wp = "Waikato Region"}, ["豐盛灣大區"] = {wp = "Bay of Plenty Region"}, ["吉斯伯恩大區"] = {wp = "Gisborne District", placetype = {"region", "district"}}, ["霍克斯灣大區"] = {wp = "Hawke's Bay Region"}, ["塔拉納基大區"] = {wp = "Taranaki Region"}, ["馬納瓦圖-旺阿努伊大區"] = {wp = "Manawatū-Whanganui Region"}, ["惠靈頓大區"] = {wp = "Wellington Region"}, ["塔斯曼大區"] = {wp = "Tasman District", placetype = {"region", "district"}}, ["納爾遜大區"] = {wp = "Nelson, New Zealand", placetype = {"region", "city"}, is_city = true}, ["馬爾堡大區"] = {wp = "Marlborough District", placetype = {"region", "district"}}, ["西海岸大區"] = {wp = "West Coast Region"}, ["坎特伯雷大區"] = {wp = "Canterbury Region"}, ["奧塔哥大區"] = {wp = "Otago Region"}, ["南地大區"] = {wp = "Southland Region"}, } export.new_zealand_group = { placename_to_key = false, default_container = "紐西蘭", default_placetype = "region", data = export.new_zealand_regions, } ----------------------------------------------------------------------------------- -- Norway counties -- ----------------------------------------------------------------------------------- export.norwegian_counties = { ["奧斯陸縣"] = {wp = "Oslo"}, ["羅加蘭縣"] = {wp = "Rogaland"}, ["莫雷-羅姆斯達爾縣"] = {wp = "Møre og Romsdal"}, ["諾爾蘭縣"] = {wp = "Nordland"}, ["東福爾縣"] = {wp = "Østfold"}, ["阿克斯胡斯縣"] = {wp = "Akershus"}, ["布斯克呂縣"] = {wp = "Buskerud"}, ["因蘭德縣"] = {wp = "Innlandet"}, ["西福爾縣"] = {wp = "Vestfold"}, ["泰勒馬克縣"] = {wp = "Telemark"}, ["阿格德爾縣"] = {wp = "Agder"}, ["西地縣"] = {wp = "Vestland"}, ["特倫德拉格縣"] = {wp = "Trøndelag"}, ["特羅姆斯縣"] = {wp = "Troms"}, ["芬馬克縣"] = {wp = "Finnmark"}, } export.norway_group = { placename_to_key = false, default_container = "挪威", default_placetype = "county", data = export.norwegian_counties, } ----------------------------------------------------------------------------------- -- Pakistan provinces and territories -- ----------------------------------------------------------------------------------- export.pakistan_provinces_and_territories = { ["自由克什米爾"] = {wp = "Azad Kashmir", placetype = {"administrative territory", "autonomous territory", "territory"}}, ["俾路支省"] = {wp = "Balochistan, Pakistan"}, ["吉爾吉特-巴爾蒂斯坦"] = {wp = "Gilgit-Baltistan", placetype = {"administrative territory", "territory"}}, ["伊斯蘭馬巴德首都直轄區"] = {wp = "Islamabad Capital Territory", placetype = {"federal territory", "administrative territory", "territory"}}, ["開伯爾-普赫圖赫瓦省"] = {wp = "Khyber Pakhtunkhwa"}, ["旁遮普省(巴基斯坦)"] = {wp = "Punjab, Pakistan"}, ["信德省"] = {wp = "Sindh"}, } export.pakistan_group = { placename_to_key = false, default_container = "巴基斯坦", default_placetype = "province", data = export.pakistan_provinces_and_territories, } ----------------------------------------------------------------------------------- -- Philippines provinces -- ----------------------------------------------------------------------------------- export.philippines_provinces = { ["阿布拉省"] = {wp = "Abra (province)"}, ["北阿古桑省"] = {wp = "Agusan del Norte"}, ["南阿古桑省"] = {wp = "Agusan del Sur"}, ["阿克蘭省"] = {wp = "Aklan"}, ["阿爾拜省"] = {wp = "Albay"}, ["安蒂克省"] = {wp = "Antique (province)"}, ["阿帕亞沃省"] = {wp = "Apayao"}, ["奧羅拉省"] = {wp = "Aurora (province)"}, ["巴西蘭省"] = {wp = "Basilan"}, ["巴丹省"] = {wp = "Bataan"}, ["巴達內斯省"] = {wp = "Batanes"}, ["八打雁省"] = {wp = "Batangas"}, ["本格特省"] = {wp = "Benguet"}, ["比利蘭省"] = {wp = "Biliran"}, ["保和省"] = {wp = "Bohol"}, ["布基農省"] = {wp = "Bukidnon"}, ["布拉干省"] = {wp = "Bulacan"}, ["卡加延省"] = {wp = "Cagayan"}, ["北甲馬仁省"] = {wp = "Camarines Norte"}, ["南甲馬仁省"] = {wp = "Camarines Sur"}, ["卡米金省"] = {wp = "Camiguin"}, ["卡皮斯省"] = {wp = "Capiz"}, ["卡坦端內斯省"] = {wp = "Catanduanes"}, ["甲米地省"] = {wp = "Cavite"}, ["宿霧省"] = {wp = "Cebu"}, ["哥打巴托省"] = {wp = "Cotabato"}, ["達沃德奧羅省"] = {wp = "Davao de Oro"}, ["北達沃省"] = {wp = "Davao del Norte"}, ["南達沃省"] = {wp = "Davao del Sur"}, ["西達沃省"] = {wp = "Davao Occidental"}, ["東達沃省"] = {wp = "Davao Oriental"}, ["迪納加特群島省"] = {wp = "Dinagat Islands"}, ["東薩馬省"] = {wp = "Eastern Samar"}, ["吉馬拉斯省"] = {wp = "Guimaras"}, ["伊富高省"] = {wp = "Ifugao"}, ["北伊羅科斯省"] = {wp = "Ilocos Norte"}, ["南伊羅科斯省"] = {wp = "Ilocos Sur"}, ["伊洛伊洛省"] = {wp = "Iloilo"}, ["伊莎貝拉省"] = {wp = "Isabela (province)"}, ["卡林加省"] = {wp = "Kalinga (province)"}, ["拉烏尼翁省"] = {wp = "La Union"}, ["拉古納省"] = {wp = "Laguna (province)"}, ["北拉瑙省"] = {wp = "Lanao del Norte"}, ["南拉瑙省"] = {wp = "Lanao del Sur"}, ["萊特省"] = {wp = "Leyte (province)"}, ["北馬京達瑙省"] = {wp = "Maguindanao del Norte"}, ["南馬京達瑙省"] = {wp = "Maguindanao del Sur"}, ["馬林杜克省"] = {wp = "Marinduque"}, ["馬斯巴特省"] = {wp = "Masbate"}, ["西米薩米斯省"] = {wp = "Misamis Occidental"}, ["東米薩米斯省"] = {wp = "Misamis Oriental"}, ["山岳省"] = {wp = "Mountain Province"}, ["西內格羅斯省"] = {wp = "Negros Occidental"}, ["東內格羅斯省"] = {wp = "Negros Oriental"}, ["北薩馬省"] = {wp = "Northern Samar"}, ["新怡詩夏省"] = {wp = "Nueva Ecija"}, ["新比斯開省"] = {wp = "Nueva Vizcaya"}, ["西民都洛省"] = {wp = "Occidental Mindoro"}, ["東民都洛省"] = {wp = "Oriental Mindoro"}, ["巴拉望省"] = {wp = "Palawan"}, ["邦板牙省"] = {wp = "Pampanga"}, ["邦阿西楠省"] = {wp = "Pangasinan"}, ["奎松省"] = {wp = "Quezon"}, ["基里諾省"] = {wp = "Quirino"}, ["黎剎省"] = {wp = "Rizal (province)"}, ["朗布隆省"] = {wp = "Romblon"}, ["薩馬省"] = {wp = "Samar (province)"}, ["薩蘭加尼省"] = {wp = "Sarangani"}, ["錫基霍爾省"] = {wp = "Siquijor"}, ["索索貢省"] = {wp = "Sorsogon"}, ["南哥打巴托省"] = {wp = "South Cotabato"}, ["南萊特省"] = {wp = "Southern Leyte"}, ["蘇丹庫達拉省"] = {wp = "Sultan Kudarat"}, ["蘇祿省"] = {wp = "Sulu"}, ["北蘇里高省"] = {wp = "Surigao del Norte"}, ["南蘇里高省"] = {wp = "Surigao del Sur"}, ["塔拉克省"] = {wp = "Tarlac"}, ["塔威塔威省"] = {wp = "Tawi-Tawi"}, ["三描禮士省"] = {wp = "Zambales"}, ["北三寶顏省"] = {wp = "Zamboanga del Norte"}, ["南三寶顏省"] = {wp = "Zamboanga del Sur"}, ["三寶顏錫布蓋省"] = {wp = "Zamboanga Sibugay"}, ["馬尼拉都會區"] = {wp = "Metro Manila", placetype = {"region", "province"}}, } export.philippines_group = { placename_to_key = false, default_container = "菲律賓", default_placetype = "province", data = export.philippines_provinces, } ----------------------------------------------------------------------------------- -- Poland voivodeships -- ----------------------------------------------------------------------------------- export.poland_voivodeships = { ["下西里西亞省"] = {wp = "Lower Silesian Voivodeship"}, ["庫亞維-波美拉尼亞省"] = {wp = "Kuyavian-Pomeranian Voivodeship"}, ["盧布林省"] = {wp = "Lublin Voivodeship"}, ["盧布斯省"] = {wp = "Lubusz Voivodeship"}, ["羅茲省"] = {wp = "Łódź Voivodeship"}, ["小波蘭省"] = {wp = "Lesser Poland Voivodeship"}, ["馬佐夫舍省"] = {wp = "Masovian Voivodeship"}, ["奧波萊省"] = {wp = "Opole Voivodeship"}, ["喀爾巴阡山省"] = {wp = "Subcarpathian Voivodeship"}, ["波德拉謝省"] = {wp = "Podlaskie Voivodeship"}, ["波美拉尼亞省"] = {wp = "Pomeranian Voivodeship"}, ["西里西亞省"] = {wp = "Silesian Voivodeship"}, ["神聖十字省"] = {wp = "Świętokrzyskie Voivodeship"}, ["瓦爾米亞-馬祖里省"] = {wp = "Warmian-Masurian Voivodeship"}, ["大波蘭省"] = {wp = "Greater Poland Voivodeship"}, ["西波美拉尼亞省"] = {wp = "West Pomeranian Voivodeship"}, } export.poland_group = { placename_to_key = false, default_container = "波蘭", default_placetype = "voivodeship", data = export.poland_voivodeships, } ----------------------------------------------------------------------------------- -- Portugal districts and autonomous regions -- ----------------------------------------------------------------------------------- export.portugal_districts_and_autonomous_regions = { ["亞速爾群島"] = {wp = "Azores", placetype = {"autonomous region", "region"}}, ["阿維羅區"] = {wp = "Aveiro District"}, ["貝雅區"] = {wp = "Beja District"}, ["布拉加區"] = {wp = "Braga District"}, ["布拉干薩區"] = {wp = "Bragança District"}, ["卡斯特洛布蘭科區"] = {wp = "Castelo Branco District"}, ["科英布拉區"] = {wp = "Coimbra District"}, ["埃武拉區"] = {wp = "Évora District"}, ["法魯區"] = {wp = "Faro District"}, ["瓜達區"] = {wp = "Guarda District"}, ["萊里亞區"] = {wp = "Leiria District"}, ["里斯本區"] = {wp = "Lisbon District"}, ["馬德拉島"] = {wp = "Madeira", placetype = {"autonomous region", "region"}}, ["波塔萊格里區"] = {wp = "Portalegre District"}, ["波爾圖區"] = {wp = "Porto District"}, ["聖塔倫區"] = {wp = "Santarém District"}, ["塞圖巴爾區"] = {wp = "Setúbal District"}, ["維亞納堡區"] = {wp = "Viana do Castelo District"}, ["維拉雷亞爾區"] = {wp = "Vila Real District"}, ["維塞烏區"] = {wp = "Viseu District"}, } export.portugal_group = { placename_to_key = false, default_container = "葡萄牙", default_placetype = "district", data = export.portugal_districts_and_autonomous_regions, } ----------------------------------------------------------------------------------- -- Russia federal subjects -- ----------------------------------------------------------------------------------- local russia_oblast = {placetype = "oblast"} local russia_krai = {placetype = "krai"} local russia_republic = {placetype = "republic"} local russia_autonomous_okrug = {placetype = {"autonomous okrug", "okrug"}} export.russia_federal_subjects = { -- autonomous oblast ["猶太自治州"] = {placetype = {"autonomous oblast", "oblast"}, wp = "Jewish Autonomous Oblast"}, -- autonomous okrugs ["楚科奇自治區"] = {wp = "Chukotka Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西自治區"] = {wp = "Khanty-Mansi Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西亞"] = {alias_of = "漢特-曼西自治區"}, ["涅涅茨自治區"] = {wp = "Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["亞馬洛-涅涅茨自治區"] = {wp = "Yamalo-Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, -- krais ["阿爾泰邊疆區"] = {wp = "Altai Krai", placetype = "krai"}, ["堪察加邊疆區"] = {wp = "Kamchatka Krai", placetype = "krai"}, ["哈巴羅夫斯克邊疆區"] = {wp = "Khabarovsk Krai", placetype = "krai"}, ["克拉斯諾達爾邊疆區"] = {wp = "Krasnodar Krai", placetype = "krai"}, ["克拉斯諾亞爾斯克邊疆區"] = {wp = "Krasnoyarsk Krai", placetype = "krai"}, ["彼爾姆邊疆區"] = {wp = "Perm Krai", placetype = "krai"}, ["濱海邊疆區"] = {wp = "Primorsky Krai", placetype = "krai"}, ["斯塔夫羅波爾邊疆區"] = {wp = "Stavropol Krai", placetype = "krai"}, ["外貝加爾邊疆區"] = {wp = "Zabaykalsky Krai", placetype = "krai"}, -- oblasts ["阿穆爾州"] = russia_oblast, ["阿爾漢格爾斯克州"] = russia_oblast, ["阿斯特拉罕州"] = russia_oblast, ["別爾哥羅德州"] = russia_oblast, ["布良斯克州"] = russia_oblast, ["車裡雅賓斯克州"] = russia_oblast, ["伊爾庫茨克州"] = russia_oblast, ["伊萬諾沃州"] = russia_oblast, ["加里寧格勒州"] = russia_oblast, ["卡盧加州"] = russia_oblast, ["克麥羅沃州"] = russia_oblast, ["基洛夫州"] = russia_oblast, ["科斯特羅馬州"] = russia_oblast, ["庫爾干州"] = russia_oblast, ["庫爾斯克州"] = russia_oblast, ["列寧格勒州"] = russia_oblast, ["利佩茨克州"] = russia_oblast, ["馬加丹州"] = russia_oblast, ["莫斯科州"] = russia_oblast, ["摩爾曼斯克州"] = russia_oblast, ["下諾夫哥羅德州"] = russia_oblast, ["諾夫哥羅德州"] = russia_oblast, ["新西伯利亞州"] = russia_oblast, ["鄂木斯克州"] = russia_oblast, ["奧倫堡州"] = russia_oblast, ["奧廖爾州"] = russia_oblast, ["奔薩州"] = russia_oblast, ["普斯科夫州"] = russia_oblast, ["羅斯托夫州"] = russia_oblast, ["梁贊州"] = russia_oblast, ["薩哈林州"] = {wp = "Sakhalin Oblast", placetype = "oblast"}, ["薩馬拉州"] = russia_oblast, ["薩拉托夫州"] = russia_oblast, ["斯摩棱斯克州"] = russia_oblast, ["斯維爾德洛夫斯克州"] = russia_oblast, ["坦波夫州"] = russia_oblast, ["托木斯克州"] = russia_oblast, ["圖拉州"] = russia_oblast, ["特維爾州"] = russia_oblast, ["秋明州"] = russia_oblast, ["烏里揚諾夫斯克州"] = russia_oblast, ["弗拉基米爾州"] = russia_oblast, ["伏爾加格勒州"] = russia_oblast, ["沃洛格達州"] = russia_oblast, ["沃羅涅日州"] = russia_oblast, ["雅羅斯拉夫爾州"] = russia_oblast, -- republics ["阿迪格共和國"] = russia_republic, ["巴什科爾托斯坦共和國"] = russia_republic, ["布里亞特共和國"] = russia_republic, ["達吉斯坦共和國"] = russia_republic, ["印古什共和國"] = russia_republic, ["卡爾梅克共和國"] = russia_republic, ["卡累利亞共和國"] = {wp = "Republic of Karelia", placetype = "republic"}, ["哈卡斯共和國"] = russia_republic, ["莫爾多瓦共和國"] = russia_republic, ["北奧塞梯-阿蘭尼亞共和國"] = {wp = "North Ossetia–Alania", placetype = "republic"}, ["北奧塞梯"] = {alias_of = "北奧塞梯-阿蘭尼亞共和國"}, ["韃靼斯坦共和國"] = russia_republic, ["阿爾泰共和國"] = {wp = "Altai Republic", placetype = "republic"}, ["車臣共和國"] = russia_republic, ["楚瓦什共和國"] = russia_republic, ["卡巴爾達-巴爾卡爾共和國"] = russia_republic, ["卡拉恰伊-切爾克斯共和國"] = russia_republic, ["科米共和國"] = {wp = "Komi Republic", placetype = "republic"}, ["馬里埃爾共和國"] = russia_republic, ["薩哈共和國"] = {wp = "Sakha Republic", placetype = "republic"}, ["雅庫特"] = {alias_of = "薩哈共和國"}, ["圖瓦共和國"] = russia_republic, ["烏德穆爾特共和國"] = russia_republic, } export.russia_group = { placename_to_key = false, default_container = "俄羅斯", default_placetype = "oblast", data = export.russia_federal_subjects, } ----------------------------------------------------------------------------------- -- Saudi Arabia provinces -- ----------------------------------------------------------------------------------- export.saudi_arabia_provinces = { ["利雅得省"] = {wp = "Riyadh Province"}, ["麥加省"] = {wp = "Mecca Province"}, ["東部省(沙特)"] = {wp = "Eastern Province, Saudi Arabia", no_auto_augment_container = true}, ["麥地那省"] = {wp = "Medina Province"}, ["阿西爾省"] = {wp = "Asir"}, ["吉贊省"] = {wp = "Jazan Province"}, ["卡西姆省"] = {wp = "Al-Qassim Province"}, ["塔布克省"] = {wp = "Tabuk Province"}, ["哈伊爾省"] = {wp = "Ha'il Province"}, ["焦夫省"] = {wp = "Al-Jawf Province"}, ["納季蘭省"] = {wp = "Najran Province"}, ["北部邊界省"] = {wp = "Northern Borders Province"}, ["巴哈省"] = {wp = "Al-Bahah Province"}, } export.saudi_arabia_group = { placename_to_key = false, default_container = "沙烏地阿拉伯", default_placetype = "province", data = export.saudi_arabia_provinces, } ----------------------------------------------------------------------------------- -- South Africa provinces -- ----------------------------------------------------------------------------------- export.south_africa_provinces = { ["東開普省"] = {wp = "Eastern Cape"}, ["自由邦省"] = {wp = "Free State (South African province)"}, ["豪登省"] = {wp = "Gauteng"}, ["夸祖魯-納塔爾省"] = {wp = "KwaZulu-Natal"}, ["林波波省"] = {wp = "Limpopo"}, ["姆普馬蘭加省"] = {wp = "Mpumalanga"}, ["西北省(南非)"] = {wp = "North West (South African province)"}, ["北開普省"] = {wp = "Northern Cape"}, ["西開普省"] = {wp = "Western Cape"}, } export.south_africa_group = { placename_to_key = false, default_container = "南非", default_placetype = "province", data = export.south_africa_provinces, } ----------------------------------------------------------------------------------- -- Ukraine oblasts -- ----------------------------------------------------------------------------------- export.ukraine_oblasts = { ["切爾卡瑟州"] = {wp = "Cherkasy Oblast"}, ["切爾尼戈夫州"] = {wp = "Chernihiv Oblast"}, ["切爾諾夫策州"] = {wp = "Chernivtsi Oblast"}, ["第聶伯羅彼得羅夫斯克州"] = {wp = "Dnipropetrovsk Oblast"}, ["頓涅茨克州"] = {wp = "Donetsk Oblast"}, ["伊萬諾-弗蘭科夫斯克州"] = {wp = "Ivano-Frankivsk Oblast"}, ["哈爾科夫州"] = {wp = "Kharkiv Oblast"}, ["赫爾松州"] = {wp = "Kherson Oblast"}, ["赫梅利尼茨基州"] = {wp = "Khmelnytskyi Oblast"}, ["基洛夫格勒州"] = {wp = "Kirovohrad Oblast"}, ["基輔州"] = {wp = "Kyiv Oblast"}, ["盧甘斯克州"] = {wp = "Luhansk Oblast"}, ["利沃夫州"] = {wp = "Lviv Oblast"}, ["尼古拉耶夫州"] = {wp = "Mykolaiv Oblast"}, ["敖德薩州"] = {wp = "Odesa Oblast"}, ["波爾塔瓦州"] = {wp = "Poltava Oblast"}, ["羅夫諾州"] = {wp = "Rivne Oblast"}, ["蘇梅州"] = {wp = "Sumy Oblast"}, ["捷爾諾波爾州"] = {wp = "Ternopil Oblast"}, ["文尼察州"] = {wp = "Vinnytsia Oblast"}, ["沃里尼亞州"] = {wp = "Volyn Oblast"}, ["外喀爾巴阡州"] = {wp = "Zakarpattia Oblast"}, ["扎波羅熱州"] = {wp = "Zaporizhzhia Oblast"}, ["日托米爾州"] = {wp = "Zhytomyr Oblast"}, } export.ukraine_group = { placename_to_key = false, default_container = "烏克蘭", default_placetype = "oblast", data = export.ukraine_oblasts, } ----------------------------------------------------------------------------------- -- Wales principal areas -- ----------------------------------------------------------------------------------- export.wales_principal_areas = { ["布拉艾諾格溫特"] = {wp = "Blaenau Gwent"}, ["布里真德"] = {wp = "Bridgend County Borough"}, ["卡菲利"] = {wp = "Caerphilly County Borough"}, ["卡馬森郡"] = {wp = "Carmarthenshire", placetype = "county"}, ["克雷地基昂"] = {wp = "Ceredigion", placetype = "county"}, ["科溫"] = {wp = "Conwy County Borough"}, ["登比郡"] = {wp = "Denbighshire", placetype = "county"}, ["弗林特郡"] = {wp = "Flintshire", placetype = "county"}, ["格溫內德"] = {wp = "Gwynedd", placetype = "county"}, ["安格爾西島"] = {wp = "Isle of Anglesey", placetype = "county"}, ["默瑟蒂德菲爾"] = {wp = "Merthyr Tydfil County Borough"}, ["蒙茅斯郡"] = {wp = "Monmouthshire", placetype = "county"}, ["尼斯-波特塔爾博特"] = {wp = "Neath Port Talbot"}, ["彭布羅克郡"] = {wp = "Pembrokeshire", placetype = "county"}, ["波伊斯"] = {wp = "Powys", placetype = "county"}, ["朗達坎農塔夫"] = {wp = "Rhondda Cynon Taf"}, ["托爾范"] = {wp = "Torfaen"}, ["格拉摩根谷"] = {wp = "Vale of Glamorgan"}, ["雷克瑟姆"] = {wp = "Wrexham County Borough"}, } export.wales_group = { placename_to_key = false, default_container = {key = "威爾斯", placetype = "constituent country"}, default_placetype = "county borough", data = export.wales_principal_areas, } ----------------------------------------------------------------------------------- -- City groups -- ----------------------------------------------------------------------------------- export.australia_cities = { ["阿德萊德"] = {container = "南澳大利亞", wp = "Adelaide"}, ["布里斯班"] = {container = "昆士蘭", wp = "Brisbane"}, ["坎培拉"] = {container = "澳大利亞首都領地", wp = "Canberra"}, ["墨爾本"] = {container = "維多利亞州", wp = "Melbourne"}, ["紐卡素"] = {container = "新南威爾斯", wp = "Newcastle, New South Wales"}, ["伯斯"] = {container = "西澳大利亞", wp = "Perth"}, ["悉尼"] = {container = "新南威爾斯", wp = "Sydney"}, } export.australia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "澳大利亞", default_placetype = "city", default_is_city = true, data = export.australia_cities, } export.brazil_cities = { ["聖保羅"] = {container = "聖保羅州", wp = "São Paulo"}, ["里約熱內盧"] = {container = "里約熱內盧州", wp = "Rio de Janeiro"}, ["貝洛奧里藏特"] = {container = "米納斯吉拉斯", wp = "Belo Horizonte"}, ["累西腓"] = {container = "伯南布哥州", wp = "Recife"}, ["阿雷格里港"] = {container = "南里奧格蘭德州", wp = "Porto Alegre"}, ["巴西利亞"] = {container = "巴西聯邦區", wp = "Brasília"}, ["福塔萊薩"] = {container = "塞阿拉州", wp = "Fortaleza"}, ["薩爾瓦多"] = {container = "巴伊亞", wp = "Salvador, Bahia"}, ["庫里蒂巴"] = {container = "巴拉那州", wp = "Curitiba"}, ["坎皮納斯"] = {container = "聖保羅州", wp = "Campinas"}, ["戈亞尼亞"] = {container = "戈亞斯州", wp = "Goiânia"}, ["瑪瑙斯"] = {container = "亞馬遜州", wp = "Manaus"}, ["伯利恆"] = {container = "帕拉州", wp = "Belém, Pará"}, ["維多利亞"] = {container = "聖埃斯皮里圖州", wp = "Vitória, Espírito Santo"}, ["聖路易斯"] = {container = "馬拉尼昂州", wp = "São Luís"}, ["納塔爾"] = {container = "北里奧格蘭德州", wp = "Natal, Rio Grande do Norte"}, ["弗洛里亞諾波利斯"] = {container = "聖卡塔琳娜州", wp = "Florianópolis"}, ["馬塞約"] = {container = "阿拉戈亞斯州", wp = "Maceió"}, ["若昂佩索阿"] = {container = "帕拉伊巴州", wp = "João Pessoa"}, ["特雷齊納"] = {container = "皮奧伊州", wp = "Teresina"}, ["隆德里納"] = {container = "巴拉那州", wp = "Londrina"}, } export.brazil_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "巴西", default_placetype = "city", default_is_city = true, data = export.brazil_cities, } export.canada_cities = { ["多倫多"] = {container = "安大略", wp = "Toronto"}, ["蒙特婁"] = {container = "魁北克", wp = "Montreal"}, ["溫哥華"] = {container = "英屬哥倫比亞", wp = "Vancouver"}, ["卡加里"] = {container = "亞伯達", wp = "Calgary"}, ["愛民頓"] = {container = "亞伯達", wp = "Edmonton"}, ["渥太華"] = {container = "安大略", wp = "Ottawa"}, ["魁北克城"] = {container = "魁北克", wp = "Quebec City"}, ["溫尼伯"] = {container = "馬尼托巴", wp = "Winnipeg"}, ["漢密爾頓"] = {container = "安大略", wp = "Hamilton, Ontario"}, } export.canada_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "加拿大", default_placetype = "city", default_is_city = true, data = export.canada_cities, } export.france_cities = { ["巴黎"] = {container = "法蘭西島大區", wp = "Paris"}, ["里昂"] = {container = "奧弗涅-隆河-阿爾卑斯大區", wp = "Lyon"}, ["馬賽"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Marseille"}, ["里爾"] = {container = "上法蘭西大區", wp = "Lille"}, ["波爾多"] = {container = "新阿基坦大區", wp = "Bordeaux"}, ["圖盧茲"] = {container = "奧克西塔尼大區", wp = "Toulouse"}, ["尼斯"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Nice"}, ["南特"] = {container = "盧瓦爾河地區大區", wp = "Nantes"}, ["史特拉斯堡"] = {container = "大東部大區", wp = "Strasbourg"}, ["雷恩"] = {container = "布列塔尼大區", wp = "Rennes"}, } export.france_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "法國", default_placetype = "city", default_is_city = true, data = export.france_cities, } export.germany_cities = { ["科隆"] = {container = "北萊茵-威斯特法倫", wp = "Cologne"}, ["杜塞爾多夫"] = {container = "北萊茵-威斯特法倫", wp = "Düsseldorf"}, ["多特蒙德"] = {container = "北萊茵-威斯特法倫", wp = "Dortmund"}, ["埃森"] = {container = "北萊茵-威斯特法倫", wp = "Essen"}, ["柏林"] = {wp = "Berlin"}, ["法蘭克福"] = {container = "黑森", wp = "Frankfurt"}, ["漢堡"] = {wp = "Hamburg"}, ["慕尼黑"] = {container = "巴伐利亞", wp = "Munich"}, ["斯圖加特"] = {container = "巴登-符騰堡", wp = "Stuttgart"}, ["曼海姆"] = {container = "巴登-符騰堡", wp = "Mannheim"}, ["紐倫堡"] = {container = "巴伐利亞", wp = "Nuremberg"}, ["漢諾威"] = {container = "下薩克森", wp = "Hanover"}, ["比勒費爾德"] = {container = "北萊茵-威斯特法倫", wp = "Bielefeld"}, ["萊比錫"] = {container = "薩克森", wp = "Leipzig"}, ["亞琛"] = {container = "北萊茵-威斯特法倫", wp = "Aachen"}, ["不來梅"] = {wp = "Bremen"}, } export.germany_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "德國", default_placetype = "city", default_is_city = true, data = export.germany_cities, } export.india_cities = { ["德里"] = {container = {key = "德里", placetype = "union territory"}, wp = "Delhi"}, ["孟買"] = {container = "馬哈拉施特拉邦", wp = "Mumbai"}, ["加爾各答"] = {container = "西孟加拉邦", wp = "Kolkata"}, ["班加羅爾"] = {container = "卡納塔克邦", wp = "Bengaluru"}, ["金奈"] = {container = "泰米爾納德邦", wp = "Chennai"}, ["海德拉巴"] = {container = "特倫甘納邦", wp = "Hyderabad"}, ["艾哈邁達巴德"] = {container = "古吉拉特邦", wp = "Ahmedabad"}, ["浦那"] = {container = "馬哈拉施特拉邦", wp = "Pune"}, ["蘇拉特"] = {container = "古吉拉特邦", wp = "Surat"}, ["勒克瑙"] = {container = "北方邦", wp = "Lucknow"}, ["齋浦爾"] = {container = "拉賈斯坦邦", wp = "Jaipur"}, ["坎普爾"] = {container = "北方邦", wp = "Kanpur"}, ["那格浦爾"] = {container = "馬哈拉施特拉邦", wp = "Nagpur"}, ["巴特那"] = {container = "比哈爾邦", wp = "Patna"}, ["瓦拉納西"] = {container = "北方邦", wp = "Varanasi"}, ["印多爾"] = {container = "中央邦", wp = "Indore"}, ["博帕爾"] = {container = "中央邦", wp = "Bhopal"}, ["阿格拉"] = {container = "北方邦", wp = "Agra"}, ["科欽"] = {container = "喀拉拉邦", wp = "Kochi"}, ["維沙卡帕特南"] = {container = "安得拉邦", wp = "Visakhapatnam"}, ["齋普爾"] = {alias_of = "齋浦爾"}, } export.india_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "印度", default_placetype = "city", default_is_city = true, data = export.india_cities, } export.indonesia_cities = { ["雅加達"] = {container = "雅加達首都特區", wp = "Jakarta"}, ["泗水"] = {container = "東爪哇省", wp = "Surabaya"}, ["勿加泗"] = {container = "西爪哇省", wp = "Bekasi"}, ["萬隆"] = {container = "西爪哇省", wp = "Bandung"}, ["棉蘭"] = {container = "北蘇門答臘省", wp = "Medan"}, ["德波"] = {container = "西爪哇省", wp = "Depok"}, ["萬丹市"] = {container = "萬丹省", wp = "Tangerang"}, ["巨港"] = {container = "南蘇門答臘省", wp = "Palembang"}, ["三寶壟"] = {container = "中爪哇省", wp = "Semarang"}, ["望加錫"] = {container = "南蘇拉威西省", wp = "Makassar"}, ["武端"] = {container = "廖內群島省", wp = "Batam"}, ["茂物"] = {container = "西爪哇省", wp = "Bogor"}, ["北干巴魯"] = {container = "廖內省", wp = "Pekanbaru"}, ["班達爾楠榜"] = {container = "楠榜省", wp = "Bandar Lampung"}, ["巴東"] = {container = "西蘇門答臘省", wp = "Padang"}, ["薩馬林達"] = {container = "東加里曼丹省", wp = "Samarinda"}, ["瑪琅"] = {container = "東爪哇省", wp = "Malang"}, ["日惹"] = {container = "日惹特區", wp = "Yogyakarta"}, ["登巴薩"] = {container = "峇里省", wp = "Denpasar"}, ["哲勒貢"] = {container = "西爪哇省", wp = "Cirebon"}, ["梭羅"] = {container = "中爪哇省", wp = "Surakarta"}, ["馬辰"] = {container = "南加里曼丹省", wp = "Banjarmasin"}, ["打橫"] = {container = "西爪哇省", wp = "Tasikmalaya"}, } export.indonesia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "印度尼西亞", default_placetype = "city", default_is_city = true, data = export.indonesia_cities, } export.italy_cities = { ["米蘭"] = {container = "倫巴第", wp = "Milan"}, ["那不勒斯"] = {container = "坎帕尼亞", wp = "Naples"}, ["羅馬"] = {container = "拉齊奧", wp = "Rome"}, ["都靈"] = {container = "皮埃蒙特", wp = "Turin"}, ["威尼斯"] = {container = "威尼托", wp = "Venice"}, ["佛羅倫斯"] = {container = "托斯卡納", wp = "Florence"}, ["巴里"] = {container = "普利亞", wp = "Bari"}, ["巴勒莫"] = {container = "西西里", wp = "Palermo"}, ["卡塔尼亞"] = {container = "西西里", wp = "Catania"}, ["布雷西亞"] = {container = "倫巴第", wp = "Brescia"}, ["熱那亞"] = {container = "利古里亞", wp = "Genoa"}, } export.italy_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "意大利", default_placetype = "city", default_is_city = true, data = export.italy_cities, } export.japan_cities = { ["東京"] = {container = "東京都", wp = "Tokyo", placetype = {"city", "prefecture"}}, ["橫濱"] = {container = "神奈川縣", wp = "Yokohama"}, ["大阪"] = {container = "大阪府", wp = "Osaka"}, ["名古屋"] = {container = "愛知縣", wp = "Nagoya"}, ["札幌"] = {container = "北海道", wp = "Sapporo"}, ["福岡"] = {container = "福岡縣", wp = "Fukuoka"}, ["神戶"] = {container = "兵庫縣", wp = "Kobe"}, ["京都"] = {container = "京都府", wp = "Kyoto"}, ["川崎"] = {container = "神奈川縣", wp = "Kawasaki, Kanagawa"}, ["廣島"] = {container = "廣島縣", wp = "Hiroshima"}, ["仙台"] = {container = "宮城縣", wp = "Sendai"}, ["北九州"] = {container = "福岡縣", wp = "Kitakyushu"}, ["新潟"] = {container = "新潟縣", wp = "Niigata (city)"}, ["靜岡"] = {container = "靜岡縣", wp = "Shizuoka (city)"}, ["岡山"] = {container = "岡山縣", wp = "Okayama"}, ["熊本"] = {container = "熊本縣", wp = "Kumamoto"}, ["鹿兒島"] = {container = "鹿兒島縣", wp = "Kagoshima"}, } export.japan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "prefecture"), default_container = "日本", default_placetype = "city", default_is_city = true, data = export.japan_cities, } export.mexico_cities = { ["墨西哥城"] = {wp = "Mexico City"}, ["蒙特雷"] = {container = "新萊昂州", wp = "Monterrey"}, ["瓜達拉哈拉"] = {container = "哈利斯科州", wp = "Guadalajara"}, ["普埃布拉市"] = {container = "普埃布拉州", wp = "Puebla (city)"}, ["托盧卡"] = {container = "墨西哥州", wp = "Toluca"}, ["蒂華納"] = {container = "下加利福尼亞州", wp = "Tijuana"}, ["萊昂"] = {container = "瓜納華托州", wp = "León, Guanajuato"}, ["克雷塔羅市"] = {container = "克雷塔羅州", wp = "Querétaro (city)"}, ["華雷斯城"] = {container = "奇瓦瓦州", wp = "Ciudad Juárez"}, ["托雷翁"] = {container = "科阿韋拉州", wp = "Torreón"}, ["梅里達"] = {container = "尤卡坦州", wp = "Mérida, Yucatán"}, ["聖路易斯波托西市"] = {container = "聖路易斯波托西州", wp = "San Luis Potosí (city)"}, ["阿瓜斯卡連特斯市"] = {container = "阿瓜斯卡連特斯州", wp = "Aguascalientes (city)"}, ["墨西卡利"] = {container = "下加利福尼亞州", wp = "Mexicali"}, } export.mexico_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "墨西哥", default_placetype = "city", default_is_city = true, data = export.mexico_cities, } export.nigeria_cities = { ["拉各斯"] = {container = "拉各斯州", wp = "Lagos"}, ["卡諾市"] = {container = "卡諾州", wp = "Kano (city)"}, ["伊巴丹"] = {container = "奧約州", wp = "Ibadan"}, ["阿布賈"] = {container = {key = "阿布賈聯邦首都轄區", placetype = "federal territory"}, wp = "Abuja"}, ["哈科特港"] = {container = "河流州", wp = "Port Harcourt"}, ["卡杜納市"] = {container = "卡杜納州", wp = "Kaduna (city)"}, ["貝寧城"] = {container = "埃多州", wp = "Benin City"}, ["阿巴"] = {container = "阿比亞州", wp = "Aba, Nigeria"}, ["奧尼查"] = {container = "阿南布拉州", wp = "Onitsha"}, ["邁杜古里"] = {container = "博爾諾州", wp = "Maiduguri"}, ["伊洛林"] = {container = "誇拉州", wp = "Ilorin"}, ["索科托市"] = {container = "索科托州", wp = "Sokoto (city)"}, ["喬斯"] = {container = "高原州", wp = "Jos"}, ["扎里亞"] = {container = "卡杜納州", wp = "Zaria"}, ["埃努古市"] = {container = "埃努古州", wp = "Enugu (city)"}, } export.nigeria_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "奈及利亞", default_placetype = "city", default_is_city = true, data = export.nigeria_cities, } export.pakistan_cities = { ["卡拉奇"] = {container = "信德省", wp = "Karachi"}, ["拉合爾"] = {container = "旁遮普省(巴基斯坦)", wp = "Lahore"}, ["拉瓦爾品第"] = {container = "旁遮普省(巴基斯坦)", wp = "Rawalpindi"}, ["伊斯蘭馬巴德"] = {container = {key = "伊斯蘭馬巴德首都直轄區", placetype = "federal territory"}, wp = "Islamabad"}, ["費薩拉巴德"] = {container = "旁遮普省(巴基斯坦)", wp = "Faisalabad"}, ["古傑蘭瓦拉"] = {container = "旁遮普省(巴基斯坦)", wp = "Gujranwala"}, ["海德拉巴(巴基斯坦)"] = {container = "信德省", wp = "Hyderabad, Pakistan"}, ["木爾坦"] = {container = "旁遮普省(巴基斯坦)", wp = "Multan"}, ["白沙瓦"] = {container = "開伯爾-普赫圖赫瓦省", wp = "Peshawar"}, ["奎達"] = {container = "俾路支省", wp = "Quetta"}, ["薩戈達"] = {container = "旁遮普省(巴基斯坦)", wp = "Sargodha"}, ["錫亞爾科特"] = {container = "旁遮普省(巴基斯坦)", wp = "Sialkot"}, } export.pakistan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "巴基斯坦", default_placetype = "city", default_is_city = true, data = export.pakistan_cities, } export.philippines_cities = { ["奎松市"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Quezon City"}, ["馬尼拉"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Manila"}, ["達沃市"] = {container = "南達沃省", wp = "Davao City"}, ["卡洛坎"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Caloocan"}, ["三寶顏市"] = {container = "南三寶顏省", wp = "Zamboanga City"}, ["宿霧市"] = {container = "宿霧省", wp = "Cebu City"}, ["安蒂波洛"] = {container = "黎剎省", wp = "Antipolo"}, ["卡加延德奧羅"] = {container = "東米薩米斯省", wp = "Cagayan de Oro"}, ["達斯馬里尼亞斯"] = {container = "甲米地省", wp = "Dasmariñas"}, ["棉蘭老將軍城"] = {container = "南哥打巴托省", wp = "General Santos"}, ["聖何塞德爾蒙特"] = {container = "布拉干省", wp = "San Jose del Monte"}, ["巴科洛德"] = {container = "西內格羅斯省", wp = "Bacolod"}, ["卡蘭巴"] = {container = "拉古納省", wp = "Calamba, Laguna"}, ["天使城"] = {container = "邦板牙省", wp = "Angeles City"}, ["伊洛伊洛市"] = {container = "伊洛伊洛省", wp = "Iloilo City"}, } export.philippines_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "菲律賓", default_placetype = "city", default_is_city = true, data = export.philippines_cities, } export.russia_cities = { ["莫斯科"] = {wp = "Moscow"}, ["聖彼得堡"] = {wp = "Saint Petersburg"}, ["新西伯利亞"] = {container = "新西伯利亞州", wp = "Novosibirsk"}, ["葉卡捷琳堡"] = {container = "斯維爾德洛夫斯克州", wp = "Yekaterinburg"}, ["下諾夫哥羅德"] = {container = "下諾夫哥羅德州", wp = "Nizhny Novgorod"}, ["喀山"] = {container = {key = "韃靼斯坦共和國", placetype = "republic"}, wp = "Kazan"}, ["車裡雅賓斯克市"] = {container = "車裡雅賓斯克州", wp = "Chelyabinsk"}, ["頓河畔羅斯托夫"] = {container = "羅斯托夫州", wp = "Rostov-on-Don"}, ["克拉斯諾達爾市"] = {container = {key = "克拉斯諾達爾邊疆區", placetype = "krai"}, wp = "Krasnodar"}, ["薩馬拉市"] = {container = "薩馬拉州", wp = "Samara"}, ["克拉斯諾亞爾斯克市"] = {container = {key = "克拉斯諾亞爾斯克邊疆區", placetype = "krai"}, wp = "Krasnoyarsk"}, ["烏法"] = {container = {key = "巴什科爾托斯坦共和國", placetype = "republic"}, wp = "Ufa"}, ["薩拉托夫市"] = {container = "薩拉托夫州", wp = "Saratov"}, ["鄂木斯克市"] = {container = "鄂木斯克州", wp = "Omsk"}, ["沃羅涅日市"] = {container = "沃羅涅日州", wp = "Voronezh"}, ["伏爾加格勒市"] = {container = "伏爾加格勒州", wp = "Volgograd"}, ["彼爾姆市"] = {container = {key = "彼爾姆邊疆區", placetype = "krai"}, wp = "Perm, Russia"}, } export.russia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "oblast"), default_container = "俄羅斯", default_placetype = "city", default_is_city = true, data = export.russia_cities, } export.saudi_arabia_cities = { ["利雅得"] = {container = "利雅得省", wp = "Riyadh"}, ["吉達"] = {container = "麥加省", wp = "Jeddah"}, ["達曼"] = {container = "東部省(沙特)", wp = "Dammam"}, ["麥加"] = {container = "麥加省", wp = "Mecca"}, ["麥地那"] = {container = "麥地那省", wp = "Medina"}, ["霍夫夫"] = {container = "東部省(沙特)", wp = "Hofuf"}, ["哈米斯穆沙伊特"] = {container = "阿西爾省", wp = "Khamis Mushait"}, } export.saudi_arabia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "沙烏地阿拉伯", default_placetype = "city", default_is_city = true, data = export.saudi_arabia_cities, } export.south_korea_cities = { ["首爾"] = {wp = "Seoul"}, ["釜山"] = {wp = "Busan"}, ["仁川"] = {wp = "Incheon"}, ["大邱"] = {wp = "Daegu"}, ["大田"] = {wp = "Daejeon"}, ["光州"] = {wp = "Gwangju"}, ["蔚山"] = {wp = "Ulsan"}, } export.south_korea_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "南韓", default_placetype = "city", default_is_city = true, data = export.south_korea_cities, } export.spain_cities = { ["馬德里"] = {container = "馬德里自治區", wp = "Madrid"}, ["巴塞羅那"] = {container = "加泰羅尼亞", wp = "Barcelona"}, ["瓦倫西亞"] = {container = "巴倫西亞", wp = "Valencia"}, ["塞維利亞"] = {container = "安達盧西亞", wp = "Seville"}, ["畢爾包"] = {container = "巴斯克", wp = "Bilbao"}, } export.spain_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "autonomous community"), default_container = "西班牙", default_placetype = "city", default_is_city = true, data = export.spain_cities, } export.taiwan_cities = { -- Special municipalities (province-level) ["臺北市"] = {placetype = "special municipality", wp = "臺北市"}, ["新北市"] = {placetype = "special municipality", wp = "新北市"}, ["桃園市"] = {placetype = "special municipality", wp = "桃園市"}, ["臺中市"] = {placetype = "special municipality", wp = "臺中市"}, ["臺南市"] = {placetype = "special municipality", wp = "臺南市"}, ["高雄市"] = {placetype = "special municipality", wp = "高雄市"}, -- these last three are not special municipalities ["嘉義市"] = {placetype = "city", wp = "嘉義市"}, ["新竹市"] = {placetype = "city", wp = "新竹市"}, ["基隆市"] = {placetype = "city", wp = "基隆市"}, } export.taiwan_cities_group = { key_to_placename = make_key_to_placename(nil, "市$"), placename_to_key = make_placename_to_key("市"), default_container = "臺灣", default_placetype = {"special municipality", "city"}, default_is_city = true, data = export.taiwan_cities, } export.united_kingdom_cities = { ["倫敦"] = {container = {key = "大倫敦", placetype = "county"}, wp = "London"}, ["曼徹斯特"] = {container = {key = "大曼徹斯特", placetype = "county"}, wp = "Manchester"}, ["伯明翰"] = {container = {key = "西密德蘭", placetype = "county"}, wp = "Birmingham"}, ["利物浦"] = {container = {key = "默西賽德郡", placetype = "county"}, wp = "Liverpool"}, ["格拉斯哥"] = {container = {key = "Glasgow市", placetype = "council area"}, wp = "Glasgow"}, ["利茲"] = {container = {key = "西約克郡", placetype = "county"}, wp = "Leeds"}, ["布里斯托"] = {container = {key = "英格蘭", placetype = "constituent country"}, wp = "Bristol"}, ["卡地夫"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Cardiff"}, ["愛丁堡"] = {container = {key = "Edinburgh市", placetype = "council area"}, wp = "Edinburgh"}, ["斯旺西"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Swansea"}, ["紐波特"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Newport, Wales"}, } export.united_kingdom_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "county"), default_container = "英國", default_placetype = "city", default_is_city = true, data = export.united_kingdom_cities, } export.united_states_cities = { ["紐約市"] = {container = "紐約", wp = "New York City"}, ["洛杉磯"] = {container = "加利福尼亞", wp = "Los Angeles"}, ["芝加哥"] = {container = "伊利諾伊", wp = "Chicago"}, ["華盛頓特區"] = {wp = "Washington, D.C."}, ["巴爾的摩"] = {container = "馬里蘭", wp = "Baltimore"}, ["聖荷西"] = {container = "加利福尼亞", wp = "San Jose, California"}, ["舊金山"] = {container = "加利福尼亞", wp = "San Francisco"}, ["波士頓"] = {container = "麻薩諸塞", wp = "Boston"}, ["達拉斯"] = {container = "德克薩斯", wp = "Dallas"}, ["費城"] = {container = "賓夕法尼亞", wp = "Philadelphia"}, ["休士頓"] = {container = "德克薩斯", wp = "Houston"}, ["邁阿密"] = {container = "佛羅里達", wp = "Miami"}, ["亞特蘭大"] = {container = "喬治亞", wp = "Atlanta"}, ["底特律"] = {container = "密西根", wp = "Detroit"}, ["鳳凰城"] = {container = "亞利桑那", wp = "Phoenix"}, ["西雅圖"] = {container = "華盛頓州", wp = "Seattle"}, ["明尼阿波利斯"] = {container = "明尼蘇達", wp = "Minneapolis"}, ["克里夫蘭"] = {container = "俄亥俄", wp = "Cleveland"}, ["丹佛"] = {container = "科羅拉多", wp = "Denver"}, ["聖地牙哥(美國)"] = {container = "加利福尼亞", wp = "San Diego"}, ["波特蘭(俄勒岡)"] = {container = "俄勒岡", wp = "Portland"}, ["聖路易斯"] = {container = "密蘇里", wp = "St. Louis"}, ["夏洛特"] = {container = "北卡羅來納", wp = "Charlotte"}, ["薩克拉門托"] = {container = "加利福尼亞", wp = "Sacramento"}, ["匹茲堡"] = {container = "賓夕法尼亞", wp = "Pittsburgh"}, ["鹽湖城"] = {container = "猶他", wp = "Salt Lake City"}, ["聖安東尼奧"] = {container = "德克薩斯", wp = "San Antonio"}, ["哥倫布"] = {container = "俄亥俄", wp = "Columbus"}, ["堪薩斯城"] = {container = "密蘇里", wp = "Kansas City metropolitan area"}, ["印第安納波利斯"] = {container = "印第安納", wp = "Indianapolis"}, ["拉斯維加斯"] = {container = "內華達", wp = "Las Vegas"}, ["辛辛那提"] = {container = "俄亥俄", wp = "Cincinnati"}, ["奧斯汀"] = {container = "德克薩斯", wp = "Austin"}, ["密爾沃基"] = {container = "威斯康辛", wp = "Milwaukee"}, ["羅利"] = {container = "北卡羅來納", wp = "Raleigh"}, ["納什維爾"] = {container = "田納西", wp = "Nashville"}, ["傑克遜維爾"] = {container = "佛羅里達", wp = "Jacksonville"}, ["新奧爾良"] = {container = "路易斯安那", wp = "New Orleans"}, ["路易斯維爾"] = {container = "肯塔基", wp = "Louisville"}, ["奧克拉荷馬城"] = {container = "奧克拉荷馬", wp = "Oklahoma City"}, ["孟菲斯"] = {container = "田納西", wp = "Memphis"}, ["伯明翰(美國)"] = {container = "阿拉巴馬", wp = "Birmingham, Alabama"}, ["弗雷斯諾"] = {container = "加利福尼亞", wp = "Fresno"}, ["里奇蒙"] = {container = "弗吉尼亞", wp = "Richmond"}, ["水牛城"] = {container = "紐約", wp = "Buffalo"}, ["艾爾帕索"] = {container = "德克薩斯", wp = "El Paso"}, ["阿爾伯克基"] = {container = "新墨西哥", wp = "Albuquerque"}, ["塔森"] = {container = "亞利桑那", wp = "Tucson"}, ["科羅拉多斯普林斯"] = {container = "科羅拉多", wp = "Colorado Springs"}, ["奧馬哈"] = {container = "內布拉斯加", wp = "Omaha"}, ["塔爾薩"] = {container = "奧克拉荷馬", wp = "Tulsa"}, } export.united_states_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "美國", default_placetype = "city", default_is_city = true, data = export.united_states_cities, } export.vietnam_cities = { ["胡志明市"] = {wp = "Ho Chi Minh City"}, ["西貢"] = {alias_of = "胡志明市"}, ["河內"] = {wp = "Hanoi"}, ["峴港"] = {wp = "Da Nang"}, ["海防"] = {wp = "Haiphong"}, ["邊和"] = {container = "同奈省", wp = "Biên Hòa", placetype = "city"}, ["芹苴"] = {wp = "Cần Thơ"}, ["順化"] = {wp = "Huế"}, } export.vietnam_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "越南", default_placetype = {"municipality", "city"}, default_is_city = true, data = export.vietnam_cities, } ----------------------------------------------------------------------------------- -- locations list -- ----------------------------------------------------------------------------------- export.locations = { export.continents_group, export.countries_group, export.country_like_entities_group, export.former_countries_group, export.united_states_group, export.united_kingdom_group, export.scotland_group, export.england_group, export.northern_ireland_group, export.ireland_group, export.wales_group, export.china_group, export.china_prefecture_level_cities_group, export.taiwan_group, export.canada_group, export.australia_group, export.india_group, export.japan_group, export.brazil_group, export.france_group, export.france_departments_group, export.germany_group, export.italy_group, export.spain_group, export.austria_group, export.bangladesh_group, export.egypt_group, export.finland_group, export.greece_group, export.indonesia_group, export.lebanon_group, export.malaysia_group, export.malta_group, export.mexico_group, export.moldova_group, export.morocco_group, export.netherlands_group, export.new_zealand_group, export.norway_group, export.pakistan_group, export.philippines_group, export.poland_group, export.portugal_group, export.romania_group, export.bulgaria_group, export.iran_group, export.russia_group, export.saudi_arabia_group, export.south_africa_group, export.laos_group, export.north_korea_group, export.south_korea_group, export.thailand_group, export.turkey_group, export.ukraine_group, export.vietnam_group, export.nigeria_group, export.new_york_boroughs_group, export.australia_cities_group, export.brazil_cities_group, export.canada_cities_group, export.france_cities_group, export.germany_cities_group, export.india_cities_group, export.indonesia_cities_group, export.italy_cities_group, export.japan_cities_group, export.mexico_cities_group, export.nigeria_cities_group, export.pakistan_cities_group, export.philippines_cities_group, export.russia_cities_group, export.saudi_arabia_cities_group, export.south_korea_cities_group, export.spain_cities_group, export.taiwan_cities_group, export.united_kingdom_cities_group, export.united_states_cities_group, export.vietnam_cities_group, export.misc_cities_group, } return export 5y9jvxfbcyi211j7i6m0s2dudufwzar 9759444 9759432 2026-05-14T16:52:43Z TongcyDai 53191 9759444 Scribunto text/plain local export = {} export.force_cat = false local m_table = require("Module:table") local insert = table.insert local concat = table.concat local dump = mw.dumpObject local unpack = unpack or table.unpack --[==[ Chinese Wiktionary localization of [[Module:place/locations]]. All canonical location keys are in Chinese, matching what editors write in holonym parameters (e.g. {{place|zh|城市|s/中央邦|c/印度}}). English Wikipedia article names are stored in the `wp` field for cross-reference. The `the`, `british_spelling` and English-suffix-detection fields from enwikt are omitted as they are not applicable in Chinese. The helper functions (process_error through construct_linked_placename) are kept intact from enwikt's Module:place/locations to maintain API compatibility with Module:place/placetypes. ]==] ----------------------------------------------------------------------------------- -- Helper functions -- ----------------------------------------------------------------------------------- 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 function export.internal_error(fmt, ...) export.process_error("Internal error: " .. fmt, ...) end local internal_error = export.internal_error 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 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 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 == "country" or defcon.placetype == "constituent country") then return placename .. ", " .. defcon.key else return placename end end end 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 = "country"} 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", "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 spec.is_city = value_with_default(spec.is_city, group.default_placetype == "city") spec.initialized = true end 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 local placetype = spec.placetype or resolved_spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s", key) 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 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 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 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 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 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 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 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) -- Chinese has no articles; `the` field is unused but kept for API compatibility. return linked_placename end ----------------------------------------------------------------------------------- -- Local data helper factories -- ----------------------------------------------------------------------------------- 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 _, pat in ipairs(container_patterns) do local nsubs full_placename, nsubs = full_placename:gsub(pat, "") if nsubs > 0 then break end end end local elliptical_placename = full_placename if divtype_patterns then for _, pat in ipairs(divtype_patterns) do local nsubs elliptical_placename, nsubs = elliptical_placename:gsub(pat, "") if nsubs > 0 then break end end end return full_placename, elliptical_placename end end 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 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 -- Canonicalize a continent container key (string) to canonical container form. 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_container`", key) end ----------------------------------------------------------------------------------- -- Top-level tables -- ----------------------------------------------------------------------------------- export.continents = { ["地球"] = {placetype = "planet", addl_parents = {"nature"}, fulldesc = "=the planet [[Earth]] and the features found on it", wp = "Earth"}, ["非洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Africa"}, ["美洲"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Americas"}, ["北美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "North America"}, ["加勒比地區"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Caribbean"}, ["中美洲"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Central America"}, ["南美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "South America"}, ["南極洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, fulldesc = "=the territory of [[Antarctica]]", wp = "Antarctica"}, ["歐亞大陸"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Eurasia"}, ["亞洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Asia"}, ["中東"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Middle East"}, ["東南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Southeast Asia"}, ["南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "South Asia"}, ["東亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "East Asia"}, ["中亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Central Asia"}, ["歐洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Europe"}, ["西歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Western Europe"}, ["東歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Eastern Europe"}, ["北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Northern Europe"}, ["南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Southern Europe"}, ["中歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Central Europe"}, ["大洋洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Oceania"}, ["美拉尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Melanesia"}, ["密克羅尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Micronesia"}, ["玻里尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Polynesia"}, } export.continents_group = { default_overriding_bare_label_parents = {}, default_divs = {{type = "countries", prep = "in"}}, 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, default_no_check_holonym_mismatch = true, data = export.continents, } export.countries = { -- Africa ["阿爾及利亞"] = {container = "非洲", divs = {"provinces", "communes", "districts"}, wp = "阿爾及利亞"}, ["安哥拉"] = {container = "非洲", divs = {"provinces", "municipalities"}, wp = "安哥拉"}, ["貝寧"] = {container = "非洲", wp = "貝寧"}, ["貝南"] = {alias_of = "貝寧"}, ["博茨瓦納"] = {container = "非洲", wp = "博茨瓦納"}, ["波札那"] = {alias_of = "博茨瓦納"}, ["布基納法索"] = {container = "非洲", wp = "布基納法索"}, ["布吉納法索"] = {alias_of = "布基納法索"}, ["布隆迪"] = {container = "非洲", wp = "布隆迪"}, ["蒲隆地"] = {alias_of = "布隆迪"}, ["佛得角"] = {container = "非洲", wp = "佛得角"}, ["維德角"] = {alias_of = "佛得角"}, ["中非共和國"] = {container = "非洲", wp = "中非共和國"}, ["乍得"] = {container = "非洲", wp = "乍得"}, ["查德"] = {alias_of = "乍得"}, ["科摩羅"] = {container = "非洲", wp = "科摩羅"}, ["葛摩"] = {alias_of = "科摩羅"}, ["剛果共和國"] = {container = "非洲", wp = "剛果共和國"}, ["剛果(布)"] = {alias_of = "剛果共和國"}, ["剛果民主共和國"] = {container = "非洲", divs = {"provinces"}, wp = "剛果民主共和國"}, ["剛果(金)"] = {alias_of = "剛果民主共和國"}, ["吉布提"] = {container = "非洲", wp = "吉布提"}, ["吉布地"] = {alias_of = "吉布提"}, ["埃及"] = {container = "非洲", divs = {"governorates"}, wp = "埃及"}, ["赤道幾內亞"] = {container = "非洲", wp = "赤道幾內亞"}, ["厄立特里亞"] = {container = "非洲", wp = "厄立特里亞"}, ["厄利垂亞"] = {alias_of = "厄立特里亞"}, ["斯威士蘭"] = {container = "非洲", wp = "斯威士蘭"}, ["史瓦帝尼"] = {alias_of = "斯威士蘭"}, ["埃塞俄比亞"] = {container = "非洲", divs = {"regions"}, wp = "埃塞俄比亞"}, ["衣索比亞"] = {alias_of = "埃塞俄比亞"}, ["加蓬"] = {container = "非洲", wp = "加蓬"}, ["加彭"] = {alias_of = "加蓬"}, ["岡比亞"] = {container = "非洲", wp = "岡比亞"}, ["甘比亞"] = {alias_of = "岡比亞"}, ["加納"] = {container = "非洲", wp = "加納"}, ["迦納"] = {alias_of = "加納"}, ["幾內亞"] = {container = "非洲", wp = "幾內亞"}, ["幾內亞比紹"] = {container = "非洲", wp = "幾內亞比紹"}, ["幾內亞比索"] = {alias_of = "幾內亞比紹"}, ["科特迪瓦"] = {container = "非洲", wp = "科特迪瓦"}, ["象牙海岸"] = {alias_of = "科特迪瓦"}, ["肯尼亞"] = {container = "非洲", divs = {"counties"}, wp = "肯尼亞"}, ["肯亞"] = {alias_of = "肯尼亞"}, ["萊索托"] = {container = "非洲", wp = "萊索托"}, ["賴索托"] = {alias_of = "萊索托"}, ["利比里亞"] = {container = "非洲", wp = "利比里亞"}, ["賴比瑞亞"] = {alias_of = "利比里亞"}, ["利比亞"] = {container = "非洲", wp = "利比亞"}, ["馬達加斯加"] = {container = "非洲", wp = "馬達加斯加"}, ["馬拉維"] = {container = "非洲", wp = "馬拉維"}, ["馬拉威"] = {alias_of = "馬拉維"}, ["馬里"] = {container = "非洲", wp = "馬里"}, ["馬利"] = {alias_of = "馬里"}, ["毛里塔尼亞"] = {container = "非洲", wp = "毛里塔尼亞"}, ["茅利塔尼亞"] = {alias_of = "毛里塔尼亞"}, ["毛里求斯"] = {container = "非洲", wp = "毛里求斯"}, ["模里西斯"] = {alias_of = "毛里求斯"}, ["摩洛哥"] = {container = "非洲", wp = "摩洛哥"}, ["莫桑比克"] = {container = "非洲", wp = "莫桑比克"}, ["莫三比克"] = {alias_of = "莫桑比克"}, ["納米比亞"] = {container = "非洲", wp = "納米比亞"}, ["尼日爾"] = {container = "非洲", wp = "尼日爾"}, ["尼日"] = {alias_of = "尼日爾"}, ["尼日利亞"] = {container = "非洲", divs = { {type = "states", cat_as = "states and FCT"}, "local government areas", }, wp = "尼日利亞"}, ["奈及利亞"] = {alias_of = "尼日利亞"}, ["盧旺達"] = {container = "非洲", wp = "盧旺達"}, ["盧安達"] = {alias_of = "盧旺達"}, ["聖多美和普林西比"] = {container = "非洲", wp = "聖多美和普林西比"}, ["塞內加爾"] = {container = "非洲", wp = "塞內加爾"}, ["塞舌爾"] = {container = "非洲", wp = "塞舌爾"}, ["塞席爾"] = {alias_of = "塞舌爾"}, ["塞拉利昂"] = {container = "非洲", wp = "塞拉利昂"}, ["獅子山"] = {alias_of = "塞拉利昂"}, ["索馬里"] = {container = "非洲", wp = "索馬里"}, ["索馬利亞"] = {alias_of = "索馬里"}, ["南非"] = {container = "非洲", divs = {"provinces"}, wp = "南非"}, ["南蘇丹"] = {container = "非洲", wp = "南蘇丹"}, ["蘇丹"] = {container = "非洲", wp = "蘇丹"}, ["坦桑尼亞"] = {container = "非洲", wp = "坦桑尼亞"}, ["坦尚尼亞"] = {alias_of = "坦桑尼亞"}, ["多哥"] = {container = "非洲", wp = "多哥"}, ["突尼斯"] = {container = "非洲", wp = "突尼斯"}, ["突尼西亞"] = {alias_of = "突尼斯"}, ["烏干達"] = {container = "非洲", wp = "烏干達"}, ["贊比亞"] = {container = "非洲", wp = "贊比亞"}, ["尚比亞"] = {alias_of = "贊比亞"}, ["津巴布韋"] = {container = "非洲", wp = "津巴布韋"}, ["辛巴威"] = {alias_of = "津巴布韋"}, -- Asia ["阿富汗"] = {container = "亞洲", wp = "阿富汗"}, ["亞美尼亞"] = {container = {"歐洲", "亞洲"}, wp = "亞美尼亞"}, ["阿塞拜疆"] = {container = {"歐洲", "亞洲"}, wp = "阿塞拜疆"}, ["亞塞拜然"] = {alias_of = "阿塞拜疆"}, ["巴林"] = {container = "亞洲", wp = "巴林"}, ["孟加拉國"] = {container = "亞洲", divs = {"divisions", "districts"}, wp = "孟加拉國"}, ["孟加拉"] = {alias_of = "孟加拉國"}, ["不丹"] = {container = "亞洲", wp = "不丹"}, ["文萊"] = {container = "亞洲", wp = "文萊"}, ["汶萊"] = {alias_of = "文萊"}, ["柬埔寨"] = {container = "亞洲", wp = "柬埔寨"}, ["中國"] = {container = "亞洲", divs = { {type = "provinces", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "autonomous regions", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "direct-administered municipalities", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "special administrative regions", cat_as = "special administrative regions"}, }, wp = "中國"}, ["東帝汶"] = {container = "亞洲", wp = "東帝汶"}, ["帝汶島"] = {alias_of = "東帝汶"}, ["印度"] = {container = "亞洲", divs = { {type = "states", cat_as = "states and union territories"}, {type = "union territories", cat_as = "states and union territories"}, }, wp = "印度"}, ["印度尼西亞"] = {container = "亞洲", divs = {"provinces"}, wp = "印度尼西亞"}, ["印尼"] = {alias_of = "印度尼西亞"}, ["伊朗"] = {container = "亞洲", wp = "伊朗"}, ["伊拉克"] = {container = "亞洲", wp = "伊拉克"}, ["以色列"] = {container = "亞洲", wp = "以色列"}, ["日本"] = {container = "亞洲", divs = {"prefectures"}, wp = "日本"}, ["約旦"] = {container = "亞洲", wp = "約旦"}, ["哈薩克斯坦"] = {container = {"歐洲", "亞洲"}, wp = "哈薩克斯坦"}, ["哈薩克"] = {alias_of = "哈薩克斯坦"}, ["朝鮮"] = {container = "亞洲", wp = "朝鮮民主主義人民共和國"}, ["北韓"] = {alias_of = "朝鮮"}, ["韓國"] = {container = "亞洲", divs = {"provinces", "special cities", "metropolitan cities"}, wp = "韓國"}, ["南韓"] = {alias_of = "韓國"}, ["科威特"] = {container = "亞洲", wp = "科威特"}, ["吉爾吉斯斯坦"] = {container = "亞洲", wp = "吉爾吉斯斯坦"}, ["吉爾吉斯"] = {alias_of = "吉爾吉斯斯坦"}, ["老撾"] = {container = "亞洲", wp = "老撾"}, ["寮國"] = {alias_of = "老撾"}, ["黎巴嫩"] = {container = "亞洲", wp = "黎巴嫩"}, ["馬來西亞"] = {container = "亞洲", divs = {"states"}, wp = "馬來西亞"}, ["馬爾代夫"] = {container = "亞洲", wp = "馬爾代夫"}, ["馬爾地夫"] = {alias_of = "馬爾代夫"}, ["蒙古"] = {container = "亞洲", wp = "蒙古"}, ["緬甸"] = {container = "亞洲", wp = "緬甸"}, ["尼泊爾"] = {container = "亞洲", wp = "尼泊爾"}, ["阿曼"] = {container = "亞洲", wp = "阿曼"}, ["巴基斯坦"] = {container = "亞洲", divs = {"provinces"}, wp = "巴基斯坦"}, ["菲律賓"] = {container = "亞洲", divs = {"regions"}, wp = "菲律賓"}, ["卡塔爾"] = {container = "亞洲", wp = "卡塔爾"}, ["卡達"] = {alias_of = "卡塔爾"}, ["俄羅斯"] = {container = {"歐洲", "亞洲"}, divs = {"federal subjects"}, wp = "俄羅斯"}, ["俄國"] = {alias_of = "俄羅斯"}, ["沙特阿拉伯"] = {container = "亞洲", wp = "沙特阿拉伯"}, ["沙烏地阿拉伯"] = {alias_of = "沙特阿拉伯"}, ["新加坡"] = {container = "亞洲", is_city = true, wp = "新加坡"}, ["斯里蘭卡"] = {container = "亞洲", wp = "斯里蘭卡"}, ["敘利亞"] = {container = "亞洲", wp = "敘利亞"}, ["臺灣"] = {container = "亞洲", divs = { "special municipalities", "counties", }, wp = "臺灣"}, ["台灣"] = {alias_of = "臺灣"}, ["塔吉克斯坦"] = {container = "亞洲", wp = "塔吉克斯坦"}, ["塔吉克"] = {alias_of = "塔吉克斯坦"}, ["泰國"] = {container = "亞洲", divs = {"provinces"}, wp = "泰國"}, ["土耳其"] = {container = {"歐洲", "亞洲"}, wp = "土耳其"}, ["土庫曼斯坦"] = {container = "亞洲", wp = "土庫曼斯坦"}, ["土庫曼"] = {alias_of = "土庫曼斯坦"}, ["阿拉伯聯合酋長國"] = {container = "亞洲", wp = "阿拉伯聯合酋長國"}, ["阿拉伯聯合大公國"] = {alias_of = "阿拉伯聯合酋長國"}, ["阿聯酋"] = {alias_of = "阿拉伯聯合酋長國"}, ["烏茲別克斯坦"] = {container = "亞洲", wp = "烏茲別克斯坦"}, ["烏茲別克"] = {alias_of = "烏茲別克斯坦"}, ["越南"] = {container = "亞洲", divs = {"provinces", "municipalities"}, wp = "越南"}, ["也門"] = {container = "亞洲", wp = "也門"}, ["葉門"] = {alias_of = "也門"}, -- Europe ["阿爾巴尼亞"] = {container = "歐洲", wp = "阿爾巴尼亞"}, ["安道爾"] = {container = "歐洲", wp = "安道爾"}, ["奧地利"] = {container = "歐洲", divs = {"states"}, wp = "奧地利"}, ["白俄羅斯"] = {container = "歐洲", divs = {"regions"}, wp = "白俄羅斯"}, ["比利時"] = {container = "歐洲", divs = {"regions", "provinces"}, wp = "比利時"}, ["波斯尼亞和黑塞哥維那"] = {container = "歐洲", wp = "波斯尼亞和黑塞哥維那"}, ["波士尼亞與赫塞哥維納"] = {alias_of = "波斯尼亞和黑塞哥維那"}, ["保加利亞"] = {container = "歐洲", wp = "保加利亞"}, ["克羅地亞"] = {container = "歐洲", wp = "克羅地亞"}, ["克羅埃西亞"] = {alias_of = "克羅地亞"}, ["塞浦路斯"] = {container = "亞洲", addl_parents = {"歐洲"}, wp = "塞浦路斯"}, ["賽普勒斯"] = {alias_of = "塞浦路斯"}, ["捷克"] = {container = "歐洲", wp = "捷克"}, ["丹麥"] = {container = "歐洲", wp = "丹麥"}, ["愛沙尼亞"] = {container = "歐洲", wp = "愛沙尼亞"}, ["芬蘭"] = {container = "歐洲", divs = {"regions"}, wp = "芬蘭"}, ["法國"] = {container = "歐洲", divs = { {type = "regions", cat_as = "metropolitan regions"}, "departments", "communes", }, wp = "法國"}, ["格魯吉亞"] = {container = {"歐洲", "亞洲"}, wp = "格魯吉亞"}, ["喬治亞"] = {alias_of = "格魯吉亞"}, ["德國"] = {container = "歐洲", divs = {"states"}, wp = "德國"}, ["希臘"] = {container = "歐洲", divs = {"regions"}, wp = "希臘"}, ["匈牙利"] = {container = "歐洲", wp = "匈牙利"}, ["冰島"] = {container = "歐洲", wp = "冰島"}, ["愛爾蘭"] = {container = "歐洲", divs = {"provinces", "counties"}, wp = "愛爾蘭"}, ["意大利"] = {container = "歐洲", divs = {"regions"}, wp = "意大利"}, ["義大利"] = {alias_of = "意大利"}, ["科索沃"] = {container = "歐洲", wp = "科索沃"}, ["拉脫維亞"] = {container = "歐洲", wp = "拉脫維亞"}, ["拉托維亞"] = {alias_of = "拉脫維亞"}, ["列支敦士登"] = {container = "歐洲", wp = "列支敦士登"}, ["列支敦斯登"] = {alias_of = "列支敦士登"}, ["立陶宛"] = {container = "歐洲", wp = "立陶宛"}, ["盧森堡"] = {container = "歐洲", wp = "盧森堡"}, ["北馬其頓"] = {container = "歐洲", wp = "北馬其頓"}, ["馬耳他"] = {container = "歐洲", wp = "馬耳他"}, ["馬爾他"] = {alias_of = "馬耳他"}, ["摩爾多瓦"] = {container = "歐洲", wp = "摩爾多瓦"}, ["摩納哥"] = {container = "歐洲", is_city = true, wp = "摩納哥"}, ["黑山"] = {container = "歐洲", wp = "黑山"}, ["蒙特內哥羅"] = {alias_of = "黑山"}, ["荷蘭"] = {container = "歐洲", divs = {"provinces"}, wp = "荷蘭"}, ["尼德蘭"] = {alias_of = "荷蘭"}, ["挪威"] = {container = "歐洲", wp = "挪威"}, ["波蘭"] = {container = "歐洲", divs = {"voivodeships"}, wp = "波蘭"}, ["葡萄牙"] = {container = "歐洲", divs = {"districts"}, wp = "葡萄牙"}, ["羅馬尼亞"] = {container = "歐洲", wp = "羅馬尼亞"}, ["聖馬力諾"] = {container = "歐洲", wp = "聖馬力諾"}, ["聖馬利諾"] = {alias_of = "聖馬力諾"}, ["塞爾維亞"] = {container = "歐洲", wp = "塞爾維亞"}, ["斯洛伐克"] = {container = "歐洲", wp = "斯洛伐克"}, ["斯洛文尼亞"] = {container = "歐洲", wp = "斯洛文尼亞"}, ["斯洛維尼亞"] = {alias_of = "斯洛文尼亞"}, ["西班牙"] = {container = "歐洲", divs = {"autonomous communities"}, wp = "西班牙"}, ["瑞典"] = {container = "歐洲", wp = "瑞典"}, ["瑞士"] = {container = "歐洲", divs = {"cantons"}, wp = "瑞士"}, ["烏克蘭"] = {container = "歐洲", divs = {"oblasts"}, wp = "烏克蘭"}, ["英國"] = {container = "歐洲", divs = { {type = "constituent countries", cat_as = "constituent countries"}, }, wp = "英國"}, -- North America ["加拿大"] = {container = "北美洲", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, }, wp = "加拿大"}, ["墨西哥"] = {container = "北美洲", divs = {"states"}, wp = "墨西哥"}, ["美國"] = {container = "北美洲", divs = {"states"}, wp = "美國"}, -- Central America ["伯利茲"] = {container = "中美洲", wp = "伯利茲"}, ["貝里斯"] = {alias_of = "伯利茲"}, ["哥斯達黎加"] = {container = "中美洲", wp = "哥斯達黎加"}, ["哥斯大黎加"] = {alias_of = "哥斯達黎加"}, ["薩爾瓦多"] = {container = "中美洲", wp = "薩爾瓦多"}, ["危地馬拉"] = {container = "中美洲", wp = "危地馬拉"}, ["瓜地馬拉"] = {alias_of = "危地馬拉"}, ["洪都拉斯"] = {container = "中美洲", wp = "洪都拉斯"}, ["宏都拉斯"] = {alias_of = "洪都拉斯"}, ["尼加拉瓜"] = {container = "中美洲", wp = "尼加拉瓜"}, ["巴拿馬"] = {container = "中美洲", wp = "巴拿馬"}, -- Caribbean ["安提瓜和巴布達"] = {container = "加勒比地區", wp = "安提瓜和巴布達"}, ["安地卡及巴布達"] = {alias_of = "安提瓜和巴布達"}, ["巴哈馬"] = {container = "加勒比地區", wp = "巴哈馬"}, ["巴巴多斯"] = {container = "加勒比地區", wp = "巴巴多斯"}, ["巴貝多"] = {alias_of = "巴巴多斯"}, ["古巴"] = {container = "加勒比地區", wp = "古巴"}, ["多米尼克"] = {container = "加勒比地區", wp = "多米尼克"}, ["多米尼加共和國"] = {container = "加勒比地區", wp = "多米尼加"}, ["多明尼加共和國"] = {alias_of = "多米尼加共和國"}, ["格林納達"] = {container = "加勒比地區", wp = "格林納達"}, ["格瑞那達"] = {alias_of = "格林納達"}, ["海地"] = {container = "加勒比地區", wp = "海地"}, ["牙買加"] = {container = "加勒比地區", wp = "牙買加"}, ["聖基茨和尼維斯"] = {container = "加勒比地區", wp = "聖基茨和尼維斯"}, ["聖克里斯多福及尼維斯"] = {alias_of = "聖基茨和尼維斯"}, ["聖盧西亞"] = {container = "加勒比地區", wp = "聖盧西亞"}, ["聖露西亞"] = {alias_of = "聖盧西亞"}, ["聖文森特和格林納丁斯"] = {container = "加勒比地區", wp = "聖文森特和格林納丁斯"}, ["聖文森及格瑞那丁"] = {alias_of = "聖文森特和格林納丁斯"}, ["特立尼達和多巴哥"] = {container = "加勒比地區", wp = "特立尼達和多巴哥"}, ["千里達及托巴哥"] = {alias_of = "特立尼達和多巴哥"}, -- South America ["阿根廷"] = {container = "南美洲", divs = {"provinces"}, wp = "阿根廷"}, ["玻利維亞"] = {container = "南美洲", wp = "玻利維亞"}, ["巴西"] = {container = "南美洲", divs = {"states"}, wp = "巴西"}, ["智利"] = {container = "南美洲", wp = "智利"}, ["哥倫比亞"] = {container = "南美洲", wp = "哥倫比亞"}, ["厄瓜多爾"] = {container = "南美洲", wp = "厄瓜多爾"}, ["厄瓜多"] = {alias_of = "厄瓜多爾"}, ["圭亞那"] = {container = "南美洲", wp = "圭亞那"}, ["蓋亞那"] = {alias_of = "圭亞那"}, ["巴拉圭"] = {container = "南美洲", wp = "巴拉圭"}, ["秘魯"] = {container = "南美洲", wp = "秘魯"}, ["蘇里南"] = {container = "南美洲", wp = "蘇里南"}, ["蘇利南"] = {alias_of = "蘇里南"}, ["烏拉圭"] = {container = "南美洲", wp = "烏拉圭"}, ["委內瑞拉"] = {container = "南美洲", wp = "委內瑞拉"}, -- Oceania ["澳大利亞"] = {container = "大洋洲", divs = { {type = "states", cat_as = "states and territories"}, {type = "territories", cat_as = "states and territories"}, }, wp = "澳大利亞"}, ["澳洲"] = {alias_of = "澳大利亞"}, ["斐濟"] = {container = "大洋洲", wp = "斐濟"}, ["基里巴斯"] = {container = "大洋洲", wp = "基里巴斯"}, ["吉里巴斯"] = {alias_of = "基里巴斯"}, ["馬紹爾群島"] = {container = "大洋洲", wp = "馬紹爾群島"}, ["密克羅尼西亞聯邦"] = {container = "大洋洲", wp = "密克羅尼西亞聯邦"}, ["瑙魯"] = {container = "大洋洲", wp = "瑙魯"}, ["諾魯"] = {alias_of = "瑙魯"}, ["新西蘭"] = {container = "大洋洲", wp = "新西蘭"}, ["紐西蘭"] = {alias_of = "新西蘭"}, ["帕勞"] = {container = "大洋洲", wp = "帕勞"}, ["帛琉"] = {alias_of = "帕勞"}, ["巴布亞新幾內亞"] = {container = "大洋洲", wp = "巴布亞新幾內亞"}, ["巴布亞紐幾內亞"] = {alias_of = "巴布亞新幾內亞"}, ["薩摩亞"] = {container = "大洋洲", wp = "薩摩亞"}, ["所羅門群島"] = {container = "大洋洲", wp = "所羅門群島"}, ["湯加"] = {container = "大洋洲", wp = "湯加"}, ["東加"] = {alias_of = "湯加"}, ["圖瓦盧"] = {container = "大洋洲", wp = "圖瓦盧"}, ["吐瓦魯"] = {alias_of = "圖瓦盧"}, ["瓦努阿圖"] = {container = "大洋洲", wp = "瓦努阿圖"}, ["萬那杜"] = {alias_of = "瓦努阿圖"}, } export.countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"+++", "countries"}, default_placetype = "country", default_no_container_cat = true, default_no_container_parent = true, default_no_auto_augment_container = true, placename_to_key = false, data = export.countries, } export.country_like_entities = { -- Special administrative regions of China ["香港"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, divs = {"districts"}, wp = "Hong Kong", }, ["澳門"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, wp = "Macau", }, -- Western Sahara ["西撒哈拉"] = { placetype = {"territory", "country"}, container = "非洲", wp = "Western Sahara", }, -- Kosovo (disputed) ["科索沃(部分承認)"] = {alias_of = "科索沃"}, -- Palestinian territories ["巴勒斯坦"] = { placetype = {"country", "territory"}, container = "亞洲", wp = "State of Palestine", }, -- Key overseas territories ["波多黎各"] = { placetype = {"commonwealth", "territory"}, container = "美國", addl_parents = {"加勒比地區"}, wp = "Puerto Rico", }, ["關島"] = { placetype = {"territory"}, container = "美國", addl_parents = {"密克羅尼西亞"}, wp = "Guam", }, ["新喀里多尼亞"] = { placetype = {"territory"}, container = "法國", addl_parents = {"大洋洲"}, wp = "New Caledonia", }, ["法屬圭亞那"] = { placetype = {"territory"}, container = "法國", addl_parents = {"南美洲"}, wp = "French Guiana", }, ["留尼旺"] = { placetype = {"territory"}, container = "法國", addl_parents = {"非洲"}, wp = "Réunion", }, ["馬丁尼克"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Martinique", }, ["瓜德羅普"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Guadeloupe", }, ["格陵蘭"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"北美洲"}, wp = "Greenland", }, ["法羅群島"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"歐洲"}, wp = "Faroe Islands", }, } export.country_like_entities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "country"), default_placetype = "territory", placename_to_key = false, data = export.country_like_entities, } export.former_countries = { ["蘇聯"] = { placetype = {"country"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Soviet Union", }, ["南斯拉夫"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Yugoslavia", }, ["捷克斯洛伐克"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Czechoslovakia", }, ["東德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "East Germany", }, ["西德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "West Germany", }, ["奧匈帝國"] = { placetype = {"empire"}, container = "歐洲", is_former_place = true, wp = "Austria-Hungary", }, ["鄂圖曼帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Ottoman Empire", }, ["奧斯曼帝國"] = {alias_of = "鄂圖曼帝國"}, ["羅馬帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲", "非洲"}, is_former_place = true, wp = "Roman Empire", }, ["大英帝國"] = { placetype = {"empire"}, is_former_place = true, wp = "British Empire", }, ["普魯士"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Prussia", }, } export.former_countries_group = { canonicalize_key_container = canonicalize_continent_container, default_placetype = "country", default_is_former_place = true, placename_to_key = false, data = export.former_countries, } ----------------------------------------------------------------------------------- -- Subpolity tables -- ----------------------------------------------------------------------------------- export.australia_states_and_territories = { ["新南威爾斯"] = {wp = "New South Wales"}, ["維多利亞州"] = {wp = "Victoria (Australia)"}, ["昆士蘭"] = {wp = "Queensland"}, ["南澳大利亞"] = {wp = "South Australia"}, ["西澳大利亞"] = {wp = "Western Australia"}, ["塔斯馬尼亞"] = {wp = "Tasmania"}, ["澳大利亞首都領地"] = {placetype = "territory", wp = "Australian Capital Territory"}, ["北領地"] = {placetype = "territory", wp = "Northern Territory"}, } -- states and territories of Australia export.australia_group = { placename_to_key = false, default_container = "澳大利亞", default_placetype = "state", data = export.australia_states_and_territories, } export.austria_states = { ["維也納州"] = {wp = "Vienna (state)"}, ["下奧地利州"] = {wp = "Lower Austria"}, ["上奧地利州"] = {wp = "Upper Austria"}, ["施泰爾馬克州"] = {wp = "Styria"}, ["蒂羅爾州"] = {wp = "Tyrol (state)"}, ["克恩頓州"] = {wp = "Carinthia"}, ["薩爾茨堡州"] = {wp = "Salzburg (state)"}, ["福拉爾貝格州"] = {wp = "Vorarlberg"}, ["布根蘭州"] = {wp = "Burgenland"}, } -- states of Austria export.austria_group = { placename_to_key = false, default_container = "奧地利", default_placetype = "state", data = export.austria_states, } export.bangladesh_divisions = { ["巴里薩爾專區"] = {wp = "Barisal Division"}, ["吉大港專區"] = {wp = "Chittagong Division"}, ["達卡專區"] = {wp = "Dhaka Division"}, ["庫爾納專區"] = {wp = "Khulna Division"}, ["邁門辛專區"] = {wp = "Mymensingh Division"}, ["拉吉沙希專區"] = {wp = "Rajshahi Division"}, ["朗普爾專區"] = {wp = "Rangpur Division"}, ["錫爾赫特專區"] = {wp = "Sylhet Division"}, } -- divisions of Bangladesh export.bangladesh_group = { placename_to_key = false, default_container = "孟加拉國", default_placetype = "division", data = export.bangladesh_divisions, } export.brazil_states = { ["里約熱內盧州"] = {wp = "Rio de Janeiro (state)"}, ["里約熱內盧"] = {alias_of = "里約熱內盧州"}, ["聖保羅州"] = {wp = "São Paulo (state)"}, ["米納斯吉拉斯"] = {wp = "Minas Gerais"}, ["巴伊亞"] = {wp = "Bahia"}, ["亞馬遜州"] = {wp = "Amazonas (Brazilian state)"}, ["帕拉州"] = {wp = "Pará"}, ["伯南布哥州"] = {wp = "Pernambuco"}, ["南里奧格蘭德州"] = {wp = "Rio Grande do Sul"}, ["巴西聯邦區"] = {wp = "Federal District (Brazil)"}, ["塞阿拉州"] = {wp = "Ceará"}, ["巴拉那州"] = {wp = "Paraná (state)"}, ["戈亞斯州"] = {wp = "Goiás"}, ["聖埃斯皮里圖州"] = {wp = "Espírito Santo"}, ["馬拉尼昂州"] = {wp = "Maranhão"}, ["北里奧格蘭德州"] = {wp = "Rio Grande do Norte"}, ["聖卡塔琳娜州"] = {wp = "Santa Catarina (state)"}, ["阿拉戈亞斯州"] = {wp = "Alagoas"}, ["帕拉伊巴州"] = {wp = "Paraíba"}, ["皮奧伊州"] = {wp = "Piauí"}, ["阿克里州"] = {wp = "Acre (state)"}, ["阿馬帕州"] = {wp = "Amapá"}, ["馬托格羅索州"] = {wp = "Mato Grosso"}, ["南馬托格羅索州"] = {wp = "Mato Grosso do Sul"}, ["朗多尼亞州"] = {wp = "Rondônia"}, ["羅賴馬州"] = {wp = "Roraima"}, ["塞爾希培州"] = {wp = "Sergipe"}, ["托坎廷斯州"] = {wp = "Tocantins"}, } -- states of Brazil export.brazil_group = { placename_to_key = false, default_container = "巴西", default_placetype = "state", data = export.brazil_states, } -- provinces (a.k.a. oblasts) of Bulgaria export.bulgaria_provinces = { ["布拉戈耶夫格勒省"] = {wp = "Blagoevgrad Province"}, ["布爾加斯省"] = {wp = "Burgas Province"}, ["多布里奇省"] = {wp = "Dobrich Province"}, ["加布羅沃省"] = {wp = "Gabrovo Province"}, ["哈斯科沃省"] = {wp = "Haskovo Province"}, ["卡爾扎利省"] = {wp = "Kardzhali Province"}, ["屈斯滕迪爾省"] = {wp = "Kyustendil Province"}, ["洛維奇省"] = {wp = "Lovech Province"}, ["蒙塔納省"] = {wp = "Montana Province"}, ["帕扎爾吉克省"] = {wp = "Pazardzhik Province"}, ["佩爾尼克省"] = {wp = "Pernik Province"}, ["普萊文省"] = {wp = "Pleven Province"}, ["普羅夫迪夫省"] = {wp = "Plovdiv Province"}, ["拉茲格勒省"] = {wp = "Razgrad Province"}, ["魯塞省"] = {wp = "Ruse Province"}, ["舒門省"] = {wp = "Shumen Province"}, ["錫利斯特拉省"] = {wp = "Silistra Province"}, ["斯利文省"] = {wp = "Sliven Province"}, ["斯莫梁省"] = {wp = "Smolyan Province"}, ["索非亞市省"] = {wp = "Sofia City Province"}, ["索非亞省"] = {wp = "Sofia Province"}, ["斯塔拉扎戈拉省"] = {wp = "Stara Zagora Province"}, ["特爾戈維什泰省"] = {wp = "Targovishte Province"}, ["瓦爾納省"] = {wp = "Varna Province"}, ["大特爾諾沃省"] = {wp = "Veliko Tarnovo Province"}, ["維丁省"] = {wp = "Vidin Province"}, ["弗拉察省"] = {wp = "Vratsa Province"}, ["揚博爾省"] = {wp = "Yambol Province"}, } export.bulgaria_group = { placename_to_key = false, default_container = "保加利亞", divs = {"regions", "planning regions", "provinces", "municipalities", "settlements"}, default_placetype = "province", data = export.bulgaria_provinces, } export.canada_provinces_and_territories = { ["亞伯達"] = {wp = "Alberta"}, ["艾伯塔"] = {alias_of = "亞伯達"}, ["英屬哥倫比亞"] = {wp = "British Columbia"}, ["卑詩省"] = {alias_of = "英屬哥倫比亞"}, ["馬尼托巴"] = {wp = "Manitoba"}, ["新不倫瑞克"] = {wp = "New Brunswick"}, ["紐芬蘭與拉布拉多"] = {wp = "Newfoundland and Labrador"}, ["西北地區"] = {placetype = "territory", wp = "Northwest Territories"}, ["新斯科舍"] = {wp = "Nova Scotia"}, ["努納武特"] = {placetype = "territory", wp = "Nunavut"}, ["安大略"] = {divs = {"counties", "regional municipalities"}, wp = "Ontario"}, ["愛德華王子島"] = {wp = "Prince Edward Island"}, ["魁北克"] = {wp = "Quebec"}, ["薩斯喀徹溫"] = {wp = "Saskatchewan"}, ["育空"] = {placetype = "territory", wp = "Yukon"}, } export.canada_group = { placename_to_key = false, default_container = "加拿大", default_placetype = "province", data = export.canada_provinces_and_territories, } export.china_provinces_and_autonomous_regions = { -- Provinces ["安徽"] = {wp = "安徽省"}, ["福建"] = {wp = "福建省"}, ["甘肅"] = {wp = "甘肅省"}, ["廣東"] = {wp = "廣東省"}, ["貴州"] = {wp = "貴州省"}, ["海南"] = {wp = "海南省"}, ["河北"] = {wp = "河北省"}, ["黑龍江"] = {wp = "黑龍江省"}, ["河南"] = {wp = "河南省"}, ["湖北"] = {wp = "湖北省"}, ["湖南"] = {wp = "湖南省"}, ["江蘇"] = {wp = "江蘇省"}, ["江西"] = {wp = "江西省"}, ["吉林"] = {wp = "吉林省"}, ["遼寧"] = {wp = "遼寧省"}, ["青海"] = {wp = "青海省"}, ["陝西"] = {wp = "陝西省"}, ["山東"] = {wp = "山東省"}, ["山西"] = {wp = "山西省"}, ["四川"] = {wp = "四川省"}, ["雲南"] = {wp = "雲南省"}, ["浙江"] = {wp = "浙江省"}, -- Autonomous regions ["廣西"] = {placetype = "autonomous region", wp = "廣西壯族自治區"}, ["廣西壯族自治區"] = {alias_of = "廣西"}, ["內蒙古"] = {placetype = "autonomous region", wp = "內蒙古自治區"}, ["內蒙古自治區"] = {alias_of = "內蒙"}, ["寧夏"] = {placetype = "autonomous region", wp = "寧夏回族自治區"}, ["寧夏回族自治區"] = {alias_of = "寧夏"}, ["西藏"] = {placetype = "autonomous region", wp = "西藏自治區"}, ["西藏自治區"] = {alias_of = "西藏"}, ["新疆"] = {placetype = "autonomous region", wp = "新疆維吾爾自治區"}, ["新疆維吾爾自治區"] = {alias_of = "新疆"}, -- Direct-administered municipalities (treated as province-level for holonym purposes) ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "北京市"}, ["北京市"] = {alias_of = "北京"}, ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "上海市"}, ["上海市"] = {alias_of = "上海"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "天津市"}, ["天津市"] = {alias_of = "天津"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "重慶市"}, ["重慶市"] = {alias_of = "重慶"}, } export.china_group = { placename_to_key = false, default_container = "中國", default_placetype = "province", default_divs = { "prefecture-level cities", "districts", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_provinces_and_autonomous_regions, } export.china_prefecture_level_cities = { -- Guangdong ["廣州"] = {container = "廣東", wp = "Guangzhou"}, ["東莞"] = {container = "廣東", wp = "Dongguan"}, ["佛山"] = {container = "廣東", wp = "Foshan"}, ["惠州"] = {container = "廣東", wp = "Huizhou"}, ["江門"] = {container = "廣東", wp = "Jiangmen"}, ["深圳"] = {container = "廣東", wp = "Shenzhen"}, ["中山"] = {container = "廣東", wp = "Zhongshan"}, ["汕頭"] = {container = "廣東", wp = "Shantou"}, ["潮州"] = {container = "廣東", wp = "Chaozhou"}, ["揭陽"] = {container = "廣東", wp = "Jieyang"}, ["珠海"] = {container = "廣東", wp = "Zhuhai"}, ["湛江"] = {container = "廣東", wp = "Zhanjiang"}, ["茂名"] = {container = "廣東", wp = "Maoming"}, ["清遠"] = {container = "廣東", wp = "Qingyuan"}, ["肇慶"] = {container = "廣東", wp = "Zhaoqing"}, -- Direct-administered municipalities (also in china_provinces; duplicated here for division categorisation) ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Shanghai"}, ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Beijing"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Chongqing"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Tianjin"}, -- Jiangsu ["常熟"] = {container = "江蘇", wp = "Changshu"}, ["常州"] = {container = "江蘇", wp = "Changzhou"}, ["蘇州"] = {container = "江蘇", wp = "Suzhou"}, ["無錫"] = {container = "江蘇", wp = "Wuxi"}, ["南京"] = {container = "江蘇", wp = "Nanjing"}, ["南通"] = {container = "江蘇", wp = "Nantong"}, ["江陰"] = {container = "江蘇", wp = "Jiangyin"}, ["張家港"] = {container = "江蘇", wp = "Zhangjiagang"}, ["徐州"] = {container = "江蘇", wp = "Xuzhou"}, ["揚州"] = {container = "江蘇", wp = "Yangzhou"}, ["鹽城"] = {container = "江蘇", wp = "Yancheng"}, ["淮安"] = {container = "江蘇", wp = "Huai'an"}, ["連雲港"] = {container = "江蘇", wp = "Lianyungang"}, ["宿遷"] = {container = "江蘇", wp = "Suqian"}, ["鎮江"] = {container = "江蘇", wp = "Zhenjiang"}, ["崑山"] = {container = "江蘇", wp = "Kunshan"}, ["泰州"] = {container = "江蘇", wp = "Taizhou, Jiangsu"}, -- distinct from 台州 (Zhejiang) -- Zhejiang ["杭州"] = {container = "浙江", wp = "Hangzhou"}, ["紹興"] = {container = "浙江", wp = "Shaoxing"}, ["寧波"] = {container = "浙江", wp = "Ningbo"}, ["慈溪"] = {container = "浙江", wp = "Cixi"}, ["余姚"] = {container = "浙江", wp = "Yuyao"}, ["溫州"] = {container = "浙江", wp = "Wenzhou"}, ["瑞安"] = {placetype = "county-level city", container = {key = "溫州", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Rui'an"}, ["台州"] = {container = "浙江", wp = "Taizhou, Zhejiang"}, ["義烏"] = {container = "浙江", wp = "Yiwu"}, ["嘉興"] = {container = "浙江", wp = "Jiaxing"}, ["金華"] = {container = "浙江", wp = "Jinhua"}, ["湖州"] = {container = "浙江", wp = "Huzhou"}, ["永康"] = {placetype = "county-level city", container = {key = "金華", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Yongkang, Zhejiang"}, -- Fujian ["廈門"] = {container = "福建", wp = "Xiamen"}, ["晉江"] = {container = "福建", wp = "Jinjiang"}, ["泉州"] = {container = "福建", wp = "Quanzhou"}, ["莆田"] = {container = "福建", wp = "Putian"}, ["福州"] = {container = "福建", wp = "Fuzhou"}, -- Shandong ["青島"] = {container = "山東", wp = "Qingdao"}, ["臨沂"] = {container = "山東", wp = "Linyi"}, ["淄博"] = {container = "山東", wp = "Zibo"}, ["濟南"] = {container = "山東", wp = "Jinan"}, ["濰坊"] = {container = "山東", wp = "Weifang"}, ["煙台"] = {container = "山東", wp = "Yantai"}, ["濟寧"] = {container = "山東", wp = "Jining"}, ["泰安"] = {container = "山東", wp = "Tai'an"}, ["威海"] = {container = "山東", wp = "Weihai"}, ["菏澤"] = {container = "山東", wp = "Heze"}, ["德州"] = {container = "山東", wp = "Dezhou"}, ["日照"] = {container = "山東", wp = "Rizhao"}, ["聊城"] = {container = "山東", wp = "Liaocheng"}, ["棗莊"] = {container = "山東", wp = "Zaozhuang"}, ["滕州"] = {placetype = "county-level city", container = {key = "棗莊", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Tengzhou"}, ["東營"] = {container = "山東", wp = "Dongying"}, -- Henan ["鄭州"] = {container = "河南", wp = "Zhengzhou"}, ["洛陽"] = {container = "河南", wp = "Luoyang"}, ["新鄉"] = {container = "河南", wp = "Xinxiang"}, ["信陽"] = {container = "河南", wp = "Xinyang"}, ["安陽"] = {container = "河南", wp = "Anyang"}, ["開封"] = {container = "河南", wp = "Kaifeng"}, ["許昌"] = {container = "河南", wp = "Xuchang"}, ["濮陽"] = {container = "河南", wp = "Puyang"}, ["商丘"] = {container = "河南", wp = "Shangqiu"}, ["南陽"] = {container = "河南", wp = "Nanyang, Henan"}, ["焦作"] = {container = "河南", wp = "Jiaozuo"}, ["平頂山"] = {container = "河南", wp = "Pingdingshan"}, ["周口"] = {container = "河南", wp = "Zhoukou"}, ["駐馬店"] = {container = "河南", wp = "Zhumadian"}, -- Hubei ["武漢"] = {container = "湖北", wp = "Wuhan"}, ["襄陽"] = {container = "湖北", wp = "Xiangyang"}, ["宜昌"] = {container = "湖北", wp = "Yichang"}, ["鄂州"] = {container = "湖北", wp = "Ezhou"}, ["十堰"] = {container = "湖北", wp = "Shiyan"}, -- Hunan ["長沙"] = {container = "湖南", wp = "Changsha"}, ["株洲"] = {container = "湖南", wp = "Zhuzhou"}, ["衡陽"] = {container = "湖南", wp = "Hengyang"}, ["邵陽"] = {container = "湖南", wp = "Shaoyang"}, ["岳陽"] = {container = "湖南", wp = "Yueyang"}, ["常德"] = {container = "湖南", wp = "Changde"}, ["瀏陽"] = {placetype = "county-level city", container = {key = "長沙", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Liuyang"}, -- Sichuan ["成都"] = {container = "四川", wp = "Chengdu"}, ["綿陽"] = {container = "四川", wp = "Mianyang"}, ["南充"] = {container = "四川", wp = "Nanchong"}, ["達州"] = {container = "四川", wp = "Dazhou"}, ["瀘州"] = {container = "四川", wp = "Luzhou"}, ["宜賓"] = {container = "四川", wp = "Yibin"}, -- Yunnan ["昆明"] = {container = "雲南", wp = "Kunming"}, ["曲靖"] = {container = "雲南", wp = "Qujing"}, -- Guizhou ["貴陽"] = {container = "貴州", wp = "Guiyang"}, ["遵義"] = {container = "貴州", wp = "Zunyi"}, ["六盤水"] = {container = "貴州", wp = "Liupanshui"}, ["畢節"] = {container = "貴州", wp = "Bijie"}, -- Shaanxi ["西安"] = {container = "陝西", wp = "Xi'an"}, ["咸陽"] = {container = "陝西", wp = "Xianyang"}, ["寶雞"] = {container = "陝西", wp = "Baoji"}, -- Heilongjiang ["哈爾濱"] = {container = "黑龍江", wp = "Harbin"}, ["大慶"] = {container = "黑龍江", wp = "Daqing"}, ["齊齊哈爾"] = {container = "黑龍江", wp = "Qiqihar"}, -- Liaoning ["瀋陽"] = {container = "遼寧", wp = "Shenyang"}, ["撫順"] = {container = "遼寧", wp = "Fushun"}, ["大連"] = {container = "遼寧", wp = "Dalian"}, ["鞍山"] = {container = "遼寧", wp = "Anshan"}, ["錦州"] = {container = "遼寧", wp = "Jinzhou"}, ["葫蘆島"] = {container = "遼寧", wp = "Huludao"}, ["盤錦"] = {container = "遼寧", wp = "Panjin"}, -- Jilin ["長春"] = {container = "吉林", wp = "Changchun"}, ["吉林市"] = {container = "吉林", wp = "Jilin City"}, -- distinct from 吉林 (province) -- Anhui ["合肥"] = {container = "安徽", wp = "Hefei"}, ["蚌埠"] = {container = "安徽", wp = "Bengbu"}, ["淮南"] = {container = "安徽", wp = "Huainan"}, ["蕪湖"] = {container = "安徽", wp = "Wuhu"}, ["淮北"] = {container = "安徽", wp = "Huaibei"}, ["滁州"] = {container = "安徽", wp = "Chuzhou"}, ["六安"] = {container = "安徽", wp = "Lu'an"}, ["阜陽"] = {container = "安徽", wp = "Fuyang, Anhui"}, ["宿州"] = {container = "安徽", wp = "Suzhou, Anhui"}, -- distinct from 蘇州 (Jiangsu) -- Hebei ["石家莊"] = {container = "河北", wp = "Shijiazhuang"}, ["邯鄲"] = {container = "河北", wp = "Handan"}, ["唐山"] = {container = "河北", wp = "Tangshan"}, ["秦皇島"] = {container = "河北", wp = "Qinhuangdao"}, ["邢台"] = {container = "河北", wp = "Xingtai"}, ["保定"] = {container = "河北", wp = "Baoding"}, ["張家口"] = {container = "河北", wp = "Zhangjiakou"}, ["衡水"] = {container = "河北", wp = "Hengshui"}, ["滄州"] = {container = "河北", wp = "Cangzhou"}, -- Shanxi ["太原"] = {container = "山西", wp = "Taiyuan"}, ["大同"] = {container = "山西", wp = "Datong"}, ["長治"] = {container = "山西", wp = "Changzhi"}, ["臨汾"] = {container = "山西", wp = "Linfen"}, -- Jiangxi ["南昌"] = {container = "江西", wp = "Nanchang"}, ["贛州"] = {container = "江西", wp = "Ganzhou"}, ["上饒"] = {container = "江西", wp = "Shangrao"}, ["九江"] = {container = "江西", wp = "Jiujiang"}, -- Guangxi (autonomous region) ["南寧"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Nanning"}, ["柳州"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Liuzhou"}, ["桂林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guilin"}, ["玉林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Yulin, Guangxi"}, ["北海"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Beihai"}, ["貴港"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guigang"}, -- Inner Mongolia (autonomous region) ["呼和浩特"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Hohhot"}, ["包頭"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Baotou"}, ["赤峰"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Chifeng"}, -- Xinjiang (autonomous region) ["烏魯木齊"] = {container = {key = "新疆", placetype = "autonomous region"}, wp = "Ürümqi"}, -- Ningxia (autonomous region) ["銀川"] = {container = {key = "寧夏", placetype = "autonomous region"}, wp = "Yinchuan"}, -- Hainan ["海口"] = {container = "海南", wp = "Haikou"}, -- Qinghai ["西寧"] = {container = "青海", wp = "Xining"}, -- Gansu ["蘭州"] = {container = "甘肅", wp = "Lanzhou"}, -- Chongqing subdivision (district 142 miles from Chongqing proper) ["萬州"] = {placetype = "district", container = {key = "重慶", placetype = "direct-administered municipality"}, divs = {"subdistricts", "townships"}, wp = "Wanzhou"}, -- County within Suqian prefecture-level city ["沭陽"] = {placetype = "county", container = {key = "宿遷", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Shuyang County"}, } export.china_prefecture_level_cities_group = { placename_to_key = false, default_placetype = {"prefecture-level city", "city"}, default_divs = { "districts", "subdistricts", "townships", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_prefecture_level_cities, } export.finland_regions = { ["拉普蘭省"] = {wp = "Lapland (Finland)"}, ["北奧斯特博滕省"] = {wp = "North Ostrobothnia"}, ["卡亞尼省"] = {wp = "Kainuu"}, ["北卡累利亞省"] = {wp = "North Karelia"}, ["北薩沃省"] = {wp = "Northern Savonia"}, ["南薩沃省"] = {wp = "Southern Savonia"}, ["南卡累利亞省"] = {wp = "South Karelia"}, ["中芬蘭省"] = {wp = "Central Finland"}, ["南奧斯特博滕省"] = {wp = "South Ostrobothnia"}, ["奧斯特博滕省"] = {wp = "Ostrobothnia (region)"}, ["中奧斯特博滕省"] = {wp = "Central Ostrobothnia"}, ["皮爾卡馬省"] = {wp = "Pirkanmaa"}, ["薩塔昆塔省"] = {wp = "Satakunta"}, ["派亞特哈米省"] = {wp = "Päijät-Häme"}, ["坎塔哈米省"] = {wp = "Tavastia Proper"}, ["屈米河谷省"] = {wp = "Kymenlaakso"}, ["烏西馬省"] = {wp = "Uusimaa"}, ["西南芬蘭省"] = {wp = "Southwest Finland"}, ["奧蘭群島"] = {wp = "Åland", placetype = {"autonomous region", "region"}}, } export.finland_group = { placename_to_key = false, default_container = "芬蘭", default_placetype = "region", data = export.finland_regions, } export.france_administrative_regions = { ["奧弗涅-隆河-阿爾卑斯大區"] = {wp = "Auvergne-Rhône-Alpes"}, ["勃艮第-弗朗什-孔泰大區"] = {wp = "Bourgogne-Franche-Comté"}, ["布列塔尼大區"] = {wp = "Brittany (administrative region)"}, ["中央-羅亞爾河谷大區"] = {wp = "Centre-Val de Loire"}, ["科西嘉大區"] = {wp = "Corsica"}, ["大東部大區"] = {wp = "Grand Est"}, ["上法蘭西大區"] = {wp = "Hauts-de-France"}, ["法蘭西島大區"] = {wp = "Île-de-France"}, ["諾曼底大區"] = {wp = "Normandy"}, ["新阿基坦大區"] = {wp = "Nouvelle-Aquitaine"}, ["奧克西塔尼大區"] = {wp = "Occitanie"}, ["盧瓦爾河地區大區"] = {wp = "Pays de la Loire"}, ["普羅旺斯-阿爾卑斯-蔚藍海岸大區"] = {wp = "Provence-Alpes-Côte d'Azur"}, -- Old region names (pre-2016) as aliases ["北部-加萊海峽大區"] = {wp = "Nord-Pas-de-Calais"}, ["加來海峽大區"] = {alias_of = "北部-加萊海峽大區"}, } export.france_group = { placename_to_key = false, default_container = "法國", default_placetype = "region", data = export.france_administrative_regions, } -- France departments (abbreviated list) export.france_departments = { ["北部省"] = {wp = "Nord (department)", container = "上法蘭西大區"}, ["加來海峽省"] = {wp = "Pas-de-Calais", container = "上法蘭西大區"}, ["巴黎市"] = {wp = "Paris", container = "法蘭西島大區"}, ["上塞納省"] = {wp = "Hauts-de-Seine", container = "法蘭西島大區"}, } export.france_departments_group = { placename_to_key = false, default_container = "法國", default_placetype = "department", data = export.france_departments, } export.germany_states = { ["巴登-符騰堡"] = {wp = "Baden-Württemberg"}, ["巴伐利亞"] = {wp = "Bavaria"}, ["柏林"] = {wp = "Berlin"}, ["布蘭登堡"] = {wp = "Brandenburg"}, ["不來梅"] = {wp = "Bremen"}, ["漢堡"] = {wp = "Hamburg"}, ["黑森"] = {wp = "Hesse"}, ["梅克倫堡-前波美拉尼亞"] = {wp = "Mecklenburg-Vorpommern"}, ["下薩克森"] = {wp = "Lower Saxony"}, ["北萊茵-威斯特法倫"] = {wp = "North Rhine-Westphalia"}, ["萊茵蘭-普法爾茨"] = {wp = "Rhineland-Palatinate"}, ["薩爾"] = {wp = "Saarland"}, ["薩克森"] = {wp = "Saxony"}, ["薩克森-安哈爾特"] = {wp = "Saxony-Anhalt"}, ["石勒蘇益格-荷爾斯泰因"] = {wp = "Schleswig-Holstein"}, ["圖林根"] = {wp = "Thuringia"}, } export.germany_group = { placename_to_key = false, default_container = "德國", default_placetype = "state", data = export.germany_states, } export.greece_regions = { ["阿提卡大區"] = {wp = "Attica (region)"}, ["中希臘大區"] = {wp = "Central Greece (administrative region)"}, ["中馬其頓大區"] = {wp = "Central Macedonia"}, ["克里特大區"] = {wp = "Crete"}, ["東馬其頓和色雷斯大區"] = {wp = "Eastern Macedonia and Thrace"}, ["伊庇魯斯大區"] = {wp = "Epirus (region)"}, ["愛奧尼亞群島大區"] = {wp = "Ionian Islands (region)"}, ["北愛琴大區"] = {wp = "North Aegean"}, ["伯羅奔尼撒大區"] = {wp = "Peloponnese (region)"}, ["南愛琴大區"] = {wp = "South Aegean"}, ["塞薩利大區"] = {wp = "Thessaly"}, ["西希臘大區"] = {wp = "Western Greece"}, ["西馬其頓大區"] = {wp = "Western Macedonia"}, ["阿托斯山"] = {wp = "Monastic community of Mount Athos", placetype = {"autonomous region", "region"}}, } export.greece_group = { placename_to_key = false, default_container = "希臘", default_placetype = "region", data = export.greece_regions, } export.india_states_and_union_territories = { ["安達曼-尼科巴群島"] = {placetype = "union territory", wp = "Andaman and Nicobar Islands"}, ["安得拉邦"] = {wp = "Andhra Pradesh"}, ["阿魯納恰爾邦"] = {wp = "Arunachal Pradesh"}, ["阿薩姆"] = {wp = "Assam"}, ["比哈爾邦"] = {wp = "Bihar"}, ["昌迪加爾"] = {placetype = "union territory", wp = "Chandigarh"}, ["恰蒂斯加爾邦"] = {wp = "Chhattisgarh"}, ["達德拉-納加爾哈維利和達曼-第烏"] = {placetype = "union territory", wp = "Dadra and Nagar Haveli and Daman and Diu"}, ["德里"] = {placetype = "union territory", wp = "Delhi"}, ["果阿"] = {wp = "Goa"}, ["古吉拉特邦"] = {wp = "Gujarat"}, ["哈里亞納邦"] = {wp = "Haryana"}, ["喜馬偕爾邦"] = {wp = "Himachal Pradesh"}, ["查謨和克什米爾"] = {placetype = "union territory", wp = "Jammu and Kashmir (union territory)"}, ["賈坎德邦"] = {wp = "Jharkhand"}, ["卡納塔克邦"] = {wp = "Karnataka"}, ["喀拉拉邦"] = {wp = "Kerala"}, ["拉達克"] = {placetype = "union territory", wp = "Ladakh"}, ["拉克沙群島"] = {placetype = "union territory", wp = "Lakshadweep"}, ["中央邦"] = {wp = "Madhya Pradesh"}, ["馬哈拉施特拉邦"] = {wp = "Maharashtra"}, ["曼尼普爾邦"] = {wp = "Manipur"}, ["梅加拉亞邦"] = {wp = "Meghalaya"}, ["米佐拉姆邦"] = {wp = "Mizoram"}, ["那加蘭邦"] = {wp = "Nagaland"}, ["奧里薩邦"] = {wp = "Odisha"}, ["本地治里"] = {placetype = "union territory", wp = "Puducherry"}, ["旁遮普邦"] = {wp = "Punjab, India"}, ["拉賈斯坦邦"] = {wp = "Rajasthan"}, ["錫金"] = {wp = "Sikkim"}, ["泰米爾納德邦"] = {wp = "Tamil Nadu"}, ["特倫甘納邦"] = {wp = "Telangana"}, ["特里普拉邦"] = {wp = "Tripura"}, ["北方邦"] = {wp = "Uttar Pradesh"}, ["北阿坎德邦"] = {wp = "Uttarakhand"}, ["西孟加拉邦"] = {wp = "West Bengal"}, } export.india_group = { placename_to_key = false, default_container = "印度", default_placetype = "state", default_divs = {"districts"}, data = export.india_states_and_union_territories, } export.indonesia_provinces = { ["亞齊省"] = {wp = "Aceh"}, ["峇里省"] = {wp = "Bali"}, ["邦加勿里洞省"] = {wp = "Bangka Belitung Islands"}, ["萬丹省"] = {wp = "Banten"}, ["明古魯省"] = {wp = "Bengkulu"}, ["中爪哇省"] = {wp = "Central Java"}, ["中加里曼丹省"] = {wp = "Central Kalimantan"}, ["中巴布亞省"] = {wp = "Central Papua"}, ["中蘇拉威西省"] = {wp = "Central Sulawesi"}, ["東爪哇省"] = {wp = "East Java"}, ["東加里曼丹省"] = {wp = "East Kalimantan"}, ["東努沙登加拉省"] = {wp = "East Nusa Tenggara"}, ["哥倫打洛省"] = {wp = "Gorontalo"}, ["巴布亞高地省"] = {wp = "Highland Papua"}, ["雅加達首都特區"] = {wp = "Jakarta"}, ["占碑省"] = {wp = "Jambi"}, ["楠榜省"] = {wp = "Lampung"}, ["馬魯古省"] = {wp = "Maluku"}, ["北加里曼丹省"] = {wp = "North Kalimantan"}, ["北馬魯古省"] = {wp = "North Maluku"}, ["北蘇拉威西省"] = {wp = "North Sulawesi"}, ["北巴布亞省"] = {wp = "North Papua"}, ["北蘇門答臘省"] = {wp = "North Sumatra"}, ["巴布亞省"] = {wp = "Papua (province)"}, ["廖內省"] = {wp = "Riau"}, ["廖內群島省"] = {wp = "Riau Islands"}, ["東南蘇拉威西省"] = {wp = "Southeast Sulawesi"}, ["南加里曼丹省"] = {wp = "South Kalimantan"}, ["南巴布亞省"] = {wp = "South Papua"}, ["南蘇拉威西省"] = {wp = "South Sulawesi"}, ["南蘇門答臘省"] = {wp = "South Sumatra"}, ["西南巴布亞省"] = {wp = "Southwest Papua"}, ["西爪哇省"] = {wp = "West Java"}, ["西加里曼丹省"] = {wp = "West Kalimantan"}, ["西努沙登加拉省"] = {wp = "West Nusa Tenggara"}, ["西巴布亞省"] = {wp = "West Papua (province)"}, ["西蘇拉威西省"] = {wp = "West Sulawesi"}, ["西蘇門答臘省"] = {wp = "West Sumatra"}, ["日惹特區"] = {wp = "Special Region of Yogyakarta"}, } export.indonesia_group = { placename_to_key = false, default_container = "印度尼西亞", default_placetype = "province", data = export.indonesia_provinces, } export.iran_provinces = { ["阿爾博爾茲省"] = {wp = "Alborz Province"}, ["阿爾達比勒省"] = {wp = "Ardabil Province"}, ["布什爾省"] = {wp = "Bushehr Province"}, ["恰哈爾馬哈勒-巴赫蒂亞里省"] = {wp = "Chaharmahal and Bakhtiari Province"}, ["東阿塞拜疆省"] = {wp = "East Azerbaijan Province"}, ["法爾斯省"] = {wp = "Fars Province"}, ["帕爾斯省"] = {alias_of = "法爾斯省"}, ["吉蘭省"] = {wp = "Gilan Province"}, ["戈勒斯坦省"] = {wp = "Golestan Province"}, ["哈馬丹省"] = {wp = "Hamadan Province"}, ["霍爾木茲甘省"] = {wp = "Hormozgan Province"}, ["伊拉姆省"] = {wp = "Ilam Province"}, ["伊斯法罕省"] = {wp = "Isfahan Province"}, ["克爾曼省"] = {wp = "Kerman Province"}, ["克爾曼沙赫省"] = {wp = "Kermanshah Province"}, ["胡齊斯坦省"] = {wp = "Khuzestan Province"}, ["科吉盧耶-博亞赫邁德省"] = {wp = "Kohgiluyeh and Boyer-Ahmad Province"}, ["庫爾德斯坦省"] = {wp = "Kurdistan Province"}, ["洛雷斯坦省"] = {wp = "Lorestan Province"}, ["馬爾卡齊省"] = {wp = "Markazi Province"}, ["馬贊達蘭省"] = {wp = "Mazandaran Province"}, ["北呼羅珊省"] = {wp = "North Khorasan Province"}, ["加茲溫省"] = {wp = "Qazvin Province"}, ["庫姆省"] = {wp = "Qom Province"}, ["拉扎維呼羅珊省"] = {wp = "Razavi Khorasan Province"}, ["森南省"] = {wp = "Semnan Province"}, ["錫斯坦-俾路支斯坦省"] = {wp = "Sistan and Baluchestan Province"}, ["南呼羅珊省"] = {wp = "South Khorasan Province"}, ["德黑蘭省"] = {wp = "Tehran Province"}, ["西阿塞拜疆省"] = {wp = "West Azerbaijan Province"}, ["亞茲德省"] = {wp = "Yazd Province"}, ["贊詹省"] = {wp = "Zanjan Province"}, } export.iran_group = { placename_to_key = false, default_container = "伊朗", default_placetype = "province", data = export.iran_provinces, } export.ireland_counties = { ["卡洛郡"] = {wp = "County Carlow"}, ["卡文郡"] = {wp = "County Cavan"}, ["克萊爾郡"] = {wp = "County Clare"}, ["科克郡"] = {wp = "County Cork"}, ["多尼戈爾郡"] = {wp = "County Donegal"}, ["都柏林郡"] = {wp = "County Dublin"}, ["戈爾韋郡"] = {wp = "County Galway"}, ["克里郡"] = {wp = "County Kerry"}, ["基爾代爾郡"] = {wp = "County Kildare"}, ["基爾肯尼郡"] = {wp = "County Kilkenny"}, ["萊什郡"] = {wp = "County Laois"}, ["利特里姆郡"] = {wp = "County Leitrim"}, ["利默里克郡"] = {wp = "County Limerick"}, ["朗福德郡"] = {wp = "County Longford"}, ["勞斯郡"] = {wp = "County Louth"}, ["梅奧郡"] = {wp = "County Mayo"}, ["米斯郡"] = {wp = "County Meath"}, ["莫納亨郡"] = {wp = "County Monaghan"}, ["奧法利郡"] = {wp = "County Offaly"}, ["羅斯康芒郡"] = {wp = "County Roscommon"}, ["斯萊戈郡"] = {wp = "County Sligo"}, ["蒂珀雷里郡"] = {wp = "County Tipperary"}, ["沃特福德郡"] = {wp = "County Waterford"}, ["西米斯郡"] = {wp = "County Westmeath"}, ["韋克斯福德郡"] = {wp = "County Wexford"}, ["威克洛郡"] = {wp = "County Wicklow"}, } -- 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 = { placename_to_key = false, default_container = "愛爾蘭", default_placetype = "county", data = export.ireland_counties, } export.italy_administrative_regions = { ["阿布魯佐"] = {wp = "Abruzzo"}, ["巴西利卡塔"] = {wp = "Basilicata"}, ["卡拉布里亞"] = {wp = "Calabria"}, ["坎帕尼亞"] = {wp = "Campania"}, ["艾米利亞-羅馬涅"] = {wp = "Emilia-Romagna"}, ["弗留利-威尼斯朱利亞"] = {wp = "Friuli-Venezia Giulia"}, ["拉齊奧"] = {wp = "Lazio"}, ["利古里亞"] = {wp = "Liguria"}, ["倫巴第"] = {wp = "Lombardy"}, ["倫巴底"] = {alias_of = "倫巴第"}, ["馬爾凱"] = {wp = "Marche"}, ["莫利塞"] = {wp = "Molise"}, ["皮埃蒙特"] = {wp = "Piedmont"}, ["普利亞"] = {wp = "Apulia"}, ["阿普利亞"] = {alias_of = "普利亞"}, ["薩丁尼亞"] = {wp = "Sardinia"}, ["西西里"] = {wp = "Sicily"}, ["托斯卡納"] = {wp = "Tuscany"}, ["特倫蒂諾-上阿迪傑"] = {wp = "Trentino-Alto Adige/Südtirol"}, ["翁布里亞"] = {wp = "Umbria"}, ["奧斯塔谷"] = {wp = "Aosta Valley"}, ["威尼托"] = {wp = "Veneto"}, } export.italy_group = { placename_to_key = false, default_container = "意大利", default_placetype = "region", data = export.italy_administrative_regions, } -- table of Japanese prefectures; interpolated into the main 'places' table, but also needed separately export.japan_prefectures = { ["青森縣"] = {wp = "青森縣"}, ["岩手縣"] = {wp = "岩手縣"}, ["宮城縣"] = {wp = "宮城縣"}, ["秋田縣"] = {wp = "秋田縣"}, ["山形縣"] = {wp = "山形縣"}, ["福島縣"] = {wp = "福島縣"}, ["茨城縣"] = {wp = "茨城縣"}, ["栃木縣"] = {wp = "栃木縣"}, ["群馬縣"] = {wp = "群馬縣"}, ["埼玉縣"] = {wp = "埼玉縣"}, ["千葉縣"] = {wp = "千葉縣"}, ["神奈川縣"] = {wp = "神奈川縣"}, ["新潟縣"] = {wp = "新潟縣"}, ["富山縣"] = {wp = "富山縣"}, ["石川縣"] = {wp = "石川縣"}, ["福井縣"] = {wp = "福井縣"}, ["山梨縣"] = {wp = "山梨縣"}, ["長野縣"] = {wp = "長野縣"}, ["岐阜縣"] = {wp = "岐阜縣"}, ["靜岡縣"] = {wp = "靜岡縣"}, ["愛知縣"] = {wp = "愛知縣"}, ["三重縣"] = {wp = "三重縣"}, ["滋賀縣"] = {wp = "滋賀縣"}, ["兵庫縣"] = {wp = "兵庫縣"}, ["奈良縣"] = {wp = "奈良縣"}, ["和歌山縣"] = {wp = "和歌山縣"}, ["鳥取縣"] = {wp = "鳥取縣"}, ["島根縣"] = {wp = "島根縣"}, ["岡山縣"] = {wp = "岡山縣"}, ["廣島縣"] = {wp = "廣島縣"}, ["山口縣"] = {wp = "山口縣"}, ["德島縣"] = {wp = "德島縣"}, ["香川縣"] = {wp = "香川縣"}, ["愛媛縣"] = {wp = "愛媛縣"}, ["高知縣"] = {wp = "高知縣"}, ["福岡縣"] = {wp = "福岡縣"}, ["佐賀縣"] = {wp = "佐賀縣"}, ["長崎縣"] = {wp = "長崎縣"}, ["熊本縣"] = {wp = "熊本縣"}, ["大分縣"] = {wp = "大分縣"}, ["宮崎縣"] = {wp = "宮崎縣"}, ["鹿兒島縣"] = {wp = "鹿兒島縣"}, ["沖繩縣"] = {wp = "沖繩縣"}, ["北海道"] = {divs = {"subprefectures"}, wp = "北海道"}, ["京都府"] = {wp = "京都府"}, ["大阪府"] = {wp = "大阪府"}, } local function japan_placename_to_key(placename) local japan_placename_to_key_map = { ["東京"] = "東京都", ["大阪"] = "大阪府", ["京都"] = "京都府", } if placename:find("[都道府縣]$") then return placename -- 已帶後綴,不轉換 end return japan_placename_to_key_map[placename] or (placename .. "縣") end -- prefectures of Japan export.japan_group = { key_to_placename = make_key_to_placename(nil, "[都道府縣]$"), placename_to_key = japan_placename_to_key, default_container = "日本", default_placetype = "prefecture", default_divs = {"cities", "districts"}, data = export.japan_prefectures, } export.laos_provinces = { ["阿塔坡省"] = {wp = "Attapeu Province"}, ["博膠省"] = {wp = "Bokeo Province"}, ["波里坎賽省"] = {wp = "Bolikhamxai Province"}, ["占巴塞省"] = {wp = "Champasak Province"}, ["華潘省"] = {wp = "Houaphanh Province"}, ["甘蒙省"] = {wp = "Khammouane Province"}, ["南塔省"] = {wp = "Luang Namtha Province"}, ["琅勃拉邦省"] = {wp = "Luang Prabang Province"}, ["烏多姆賽省"] = {wp = "Oudomxay Province"}, ["豐沙里省"] = {wp = "Phongsaly Province"}, ["沙拉灣省"] = {wp = "Salavan Province"}, ["沙灣拿吉省"] = {wp = "Savannakhet Province"}, ["萬象省"] = {wp = "Vientiane Province"}, ["萬象直轄市"] = {placetype = "prefecture", wp = "Vientiane Prefecture"}, ["賽亞武里省"] = {wp = "Sainyabuli Province"}, ["塞公省"] = {wp = "Sekong Province"}, ["賽頌本省"] = {wp = "Xaisomboun Province"}, ["川壙省"] = {wp = "Xiangkhouang Province"}, } export.laos_group = { placename_to_key = false, default_container = "老撾", default_placetype = "province", data = export.laos_provinces, } export.lebanon_governorates = { ["阿卡爾省"] = {wp = "Akkar Governorate"}, ["巴勒貝克-赫爾梅勒省"] = {wp = "Baalbek-Hermel Governorate"}, ["貝魯特省"] = {wp = "Beirut Governorate"}, ["貝卡省"] = {wp = "Beqaa Governorate"}, ["克塞旺-裘拜勒省"] = {wp = "Keserwan-Jbeil Governorate"}, ["黎巴嫩山省"] = {wp = "Mount Lebanon Governorate"}, ["納巴蒂耶省"] = {wp = "Nabatieh Governorate"}, ["北部省(黎巴嫩)"] = {wp = "North Governorate (Lebanon)", no_auto_augment_container = true}, ["南部省(黎巴嫩)"] = {wp = "South Governorate (Lebanon)", no_auto_augment_container = true}, } export.lebanon_group = { placename_to_key = false, default_container = "黎巴嫩", default_placetype = "governorate", data = export.lebanon_governorates, } export.malaysia_states = { ["柔佛州"] = {wp = "Johor"}, ["吉打州"] = {wp = "Kedah"}, ["吉蘭丹州"] = {wp = "Kelantan"}, ["馬六甲州"] = {wp = "Malacca"}, ["森美蘭州"] = {wp = "Negeri Sembilan"}, ["彭亨州"] = {wp = "Pahang"}, ["檳城州"] = {wp = "Penang"}, ["霹靂州"] = {wp = "Perak"}, ["玻璃市州"] = {wp = "Perlis"}, ["沙巴州"] = {wp = "Sabah"}, ["砂拉越州"] = {wp = "Sarawak"}, ["雪蘭莪州"] = {wp = "Selangor"}, ["登嘉樓州"] = {wp = "Terengganu"}, } export.malaysia_group = { placename_to_key = false, default_container = "馬來西亞", default_placetype = "state", data = export.malaysia_states, } export.malta_regions = { ["東部區(馬爾他)"] = {wp = "Eastern Region, Malta", no_auto_augment_container = true}, ["戈佐區"] = {wp = "Gozo Region"}, ["北部區(馬爾他)"] = {wp = "Northern Region, Malta", no_auto_augment_container = true}, ["港口區"] = {wp = "Port Region, Malta"}, ["南部區(馬爾他)"] = {wp = "Southern Region, Malta", no_auto_augment_container = true}, ["西部區(馬爾他)"] = {wp = "Western Region, Malta", no_auto_augment_container = true}, } export.malta_group = { placename_to_key = false, default_container = "馬爾他", default_placetype = "region", data = export.malta_regions, } export.mexico_states = { ["阿瓜斯卡連特斯州"] = {wp = "Aguascalientes"}, ["下加利福尼亞州"] = {wp = "Baja California"}, ["南下加利福尼亞州"] = {wp = "Baja California Sur"}, ["坎佩切州"] = {wp = "Campeche"}, ["恰帕斯州"] = {wp = "Chiapas"}, ["奇瓦瓦州"] = {wp = "Chihuahua (state)"}, ["科阿韋拉州"] = {wp = "Coahuila"}, ["科利馬州"] = {wp = "Colima"}, ["杜蘭戈州"] = {wp = "Durango"}, ["瓜納華托州"] = {wp = "Guanajuato"}, ["格雷羅州"] = {wp = "Guerrero"}, ["伊達爾戈州"] = {wp = "Hidalgo (state)"}, ["哈利斯科州"] = {wp = "Jalisco"}, ["墨西哥州"] = {wp = "State of Mexico"}, ["米卻肯州"] = {wp = "Michoacán"}, ["莫雷洛斯州"] = {wp = "Morelos"}, ["納亞里特州"] = {wp = "Nayarit"}, ["新萊昂州"] = {wp = "Nuevo León"}, ["瓦哈卡州"] = {wp = "Oaxaca"}, ["普埃布拉州"] = {wp = "Puebla"}, ["克雷塔羅州"] = {wp = "Querétaro"}, ["金塔納羅奧州"] = {wp = "Quintana Roo"}, ["聖路易斯波托西州"] = {wp = "San Luis Potosí"}, ["錫那羅亞州"] = {wp = "Sinaloa"}, ["索諾拉州"] = {wp = "Sonora"}, ["塔巴斯科州"] = {wp = "Tabasco (state)"}, ["塔毛利帕斯州"] = {wp = "Tamaulipas"}, ["特拉斯卡拉州"] = {wp = "Tlaxcala"}, ["韋拉克魯斯州"] = {wp = "Veracruz"}, ["尤卡坦州"] = {wp = "Yucatán"}, ["薩卡特卡斯州"] = {wp = "Zacatecas"}, } export.mexico_group = { placename_to_key = false, default_container = "墨西哥", default_placetype = "state", data = export.mexico_states, } export.moldova_districts_and_autonomous_territorial_units = { ["阿內尼諾伊區"] = {wp = "Anenii Noi District"}, ["巴薩拉比亞斯卡區"] = {wp = "Basarabeasca District"}, ["布里切尼區"] = {wp = "Briceni District"}, ["卡胡爾區"] = {wp = "Cahul District"}, ["坎特米爾區"] = {wp = "Cantemir District"}, ["克勒拉希區"] = {wp = "Călărași District"}, ["考沙尼區"] = {wp = "Căușeni District"}, ["奇米什利亞區"] = {wp = "Cimișlia District"}, ["克里烏列尼區"] = {wp = "Criuleni District"}, ["東杜沙尼區"] = {wp = "Dondușeni District"}, ["德羅基亞區"] = {wp = "Drochia District"}, ["杜巴薩里區"] = {wp = "Dubăsari District"}, ["埃迪涅茨區"] = {wp = "Edineț District"}, ["法勒什蒂區"] = {wp = "Fălești District"}, ["弗洛雷什蒂區"] = {wp = "Florești District"}, ["格洛德尼區"] = {wp = "Glodeni District"}, ["欣切什蒂區"] = {wp = "Hîncești District"}, ["亞洛韋尼區"] = {wp = "Ialoveni District"}, ["萊奧瓦區"] = {wp = "Leova District"}, ["尼斯波雷尼區"] = {wp = "Nisporeni District"}, ["奧克尼察區"] = {wp = "Ocnița District"}, ["奧爾海伊區"] = {wp = "Orhei District"}, ["雷齊納區"] = {wp = "Rezina District"}, ["雷什卡尼區"] = {wp = "Rîșcani District"}, ["辛格雷伊區"] = {wp = "Sîngerei District"}, ["索羅卡區"] = {wp = "Soroca District"}, ["斯特拉沙尼區"] = {wp = "Strășeni District"}, ["紹爾達涅什蒂區"] = {wp = "Șoldănești District"}, ["斯蒂凡沃達區"] = {wp = "Ștefan Vodă District"}, ["塔拉克利亞區"] = {wp = "Taraclia District"}, ["泰萊涅什蒂區"] = {wp = "Telenești District"}, ["翁格尼區"] = {wp = "Ungheni District"}, ["基希訥烏市"] = {wp = "Chișinău", placetype = "municipality"}, ["巴爾茨市"] = {wp = "Bălți", placetype = "municipality"}, ["加告茲自治領土"] = {wp = "Gagauzia", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, ["本德爾市"] = {wp = "Bender, Moldova", placetype = "municipality"}, ["德涅斯特河沿岸"] = {wp = "Transnistria", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, } export.moldova_group = { placename_to_key = false, default_container = "摩爾多瓦", default_placetype = {"district", "raion"}, data = export.moldova_districts_and_autonomous_territorial_units, } export.morocco_regions = { ["丹吉爾-得土安-霍賽馬大區"] = {wp = "Tangier-Tetouan-Al Hoceima"}, ["東方大區(摩洛哥)"] = {wp = "Oriental, Morocco"}, ["非斯-梅克內斯大區"] = {wp = "Fez-Meknes"}, ["拉巴特-薩累-肯尼特拉大區"] = {wp = "Rabat-Salé-Kénitra"}, ["貝尼梅拉勒-赫尼夫拉大區"] = {wp = "Béni Mellal-Khénifra"}, ["卡薩布蘭卡-塞塔特大區"] = {wp = "Casablanca-Settat"}, ["馬拉喀什-薩菲大區"] = {wp = "Marrakesh-Safi"}, ["德拉阿-塔菲拉勒特大區"] = {wp = "Drâa-Tafilalet"}, ["蘇斯-馬薩大區"] = {wp = "Souss-Massa"}, ["蓋勒明-烏德農大區"] = {wp = "Guelmim-Oued Noun"}, ["拉阿永-薩基亞-哈姆拉大區"] = {wp = "Laâyoune-Sakia El Hamra"}, ["達赫拉-奧以德達赫卜大區"] = {wp = "Dakhla-Oued Ed-Dahab"}, } export.morocco_group = { placename_to_key = false, default_container = "摩洛哥", default_placetype = "region", data = export.morocco_regions, } export.egypt_governorates = { ["開羅省"] = {wp = "Cairo Governorate"}, ["吉薩省"] = {wp = "Giza Governorate"}, ["夏爾基亞省"] = {wp = "Sharqia Governorate"}, ["達卡利亞省"] = {wp = "Dakahlia Governorate"}, ["貝海拉省"] = {wp = "Beheira Governorate"}, ["明亞省"] = {wp = "Minya Governorate"}, ["蓋柳比亞省"] = {wp = "Qalyubia Governorate"}, ["索哈傑省"] = {wp = "Sohag Governorate"}, ["亞歷山大省"] = {wp = "Alexandria Governorate"}, ["加爾比亞省"] = {wp = "Gharbia Governorate"}, ["艾斯尤特省"] = {wp = "Asyut Governorate"}, ["莫諾菲亞省"] = {wp = "Monufia Governorate"}, ["法尤姆省"] = {wp = "Faiyum Governorate"}, ["卡夫爾謝赫省"] = {wp = "Kafr El Sheikh Governorate"}, ["基納省"] = {wp = "Qena Governorate"}, ["本尼蘇威夫省"] = {wp = "Beni Suef Governorate"}, ["達米埃塔省"] = {wp = "Damietta Governorate"}, ["阿斯旺省"] = {wp = "Aswan Governorate"}, ["伊斯梅利亞省"] = {wp = "Ismailia Governorate"}, ["盧克索省"] = {wp = "Luxor Governorate"}, ["蘇伊士省"] = {wp = "Suez Governorate"}, ["塞德港省"] = {wp = "Port Said Governorate"}, ["馬特魯省"] = {wp = "Matrouh Governorate"}, ["北西奈省"] = {wp = "North Sinai Governorate"}, ["紅海省"] = {wp = "Red Sea Governorate"}, ["新河谷省"] = {wp = "New Valley Governorate"}, ["南西奈省"] = {wp = "South Sinai Governorate"}, } export.egypt_group = { placename_to_key = false, default_container = "埃及", default_placetype = "governorate", data = export.egypt_governorates, } export.spain_autonomous_communities = { ["安達盧西亞"] = {wp = "Andalusia"}, ["安達魯西亞"] = {alias_of = "安達盧西亞"}, ["阿拉貢"] = {wp = "Aragon"}, ["阿斯圖里亞斯"] = {wp = "Asturias"}, ["巴利阿里群島"] = {wp = "Balearic Islands"}, ["巴斯克"] = {wp = "Basque Country (autonomous community)"}, ["加那利群島"] = {wp = "Canary Islands"}, ["坎塔布里亞"] = {wp = "Cantabria"}, ["卡斯蒂利亞-拉曼恰"] = {wp = "Castilla-La Mancha"}, ["卡斯蒂利亞-萊昂"] = {wp = "Castilla y León"}, ["加泰羅尼亞"] = {wp = "Catalonia"}, ["加泰隆尼亞"] = {alias_of = "加泰羅尼亞"}, ["埃斯特雷馬杜拉"] = {wp = "Extremadura"}, ["加利西亞"] = {wp = "Galicia (Spain)"}, ["拉里奧哈"] = {wp = "La Rioja (autonomous community)"}, ["馬德里自治區"] = {wp = "Community of Madrid"}, ["穆爾西亞"] = {wp = "Region of Murcia"}, ["納瓦拉"] = {wp = "Navarre"}, ["巴倫西亞"] = {wp = "Valencian Community"}, ["巴倫西亞自治區"] = {alias_of = "巴倫西亞"}, } export.spain_group = { placename_to_key = false, default_container = "西班牙", default_placetype = "autonomous community", data = export.spain_autonomous_communities, } export.taiwan_counties = { ["彰化縣"] = {wp = "彰化縣"}, ["嘉義縣"] = {wp = "嘉義縣"}, ["新竹縣"] = {wp = "新竹縣"}, ["花蓮縣"] = {wp = "花蓮縣"}, ["金門縣"] = {wp = "金門縣"}, ["連江縣"] = {wp = "連江縣"}, ["苗栗縣"] = {wp = "苗栗縣"}, ["南投縣"] = {wp = "南投縣"}, ["屏東縣"] = {wp = "屏東縣"}, ["澎湖縣"] = {wp = "澎湖縣"}, ["宜蘭縣"] = {wp = "宜蘭縣"}, ["雲林縣"] = {wp = "雲林縣"}, } export.taiwan_group = { key_to_placename = make_key_to_placename(nil, "縣$"), placename_to_key = make_placename_to_key("縣"), default_container = "臺灣", default_placetype = "county", default_divs = {"districts", "townships"}, data = export.taiwan_counties, } export.new_york_boroughs = { ["布朗克斯"] = {the = true, wp = "The Bronx"}, ["布魯克林"] = {wp = "Brooklyn"}, ["曼哈頓"] = {wp = "Manhattan"}, ["皇后區"] = {wp = "Queens"}, ["史泰登島"] = {wp = "Staten Island"}, } export.new_york_boroughs_group = { placename_to_key = false, default_container = {key = "紐約市", placetype = "city"}, default_placetype = "borough", default_is_city = true, data = export.new_york_boroughs, } export.romania_counties = { ["阿爾巴縣"] = {wp = "Alba County"}, ["阿拉德縣"] = {wp = "Arad County"}, ["阿爾傑什縣"] = {wp = "Argeș County"}, ["巴考縣"] = {wp = "Bacău County"}, ["比霍爾縣"] = {wp = "Bihor County"}, ["比斯特里察-訥瑟烏德縣"] = {wp = "Bistrița-Năsăud County"}, ["博托沙尼縣"] = {wp = "Botoșani County"}, ["布拉索夫縣"] = {wp = "Brașov County"}, ["布勒伊拉縣"] = {wp = "Brăila County"}, ["布澤烏縣"] = {wp = "Buzău County"}, ["卡拉什-塞韋林縣"] = {wp = "Caraș-Severin County"}, ["克盧日縣"] = {wp = "Cluj County"}, ["康斯坦察縣"] = {wp = "Constanța County"}, ["科瓦斯納縣"] = {wp = "Covasna County"}, ["克勒拉希縣"] = {wp = "Călărași County"}, ["多爾日縣"] = {wp = "Dolj County"}, ["登博維察縣"] = {wp = "Dâmbovița County"}, ["加拉茨縣"] = {wp = "Galați County"}, ["久爾久縣"] = {wp = "Giurgiu County"}, ["戈爾日縣"] = {wp = "Gorj County"}, ["哈爾吉塔縣"] = {wp = "Harghita County"}, ["胡內多阿拉縣"] = {wp = "Hunedoara County"}, ["雅洛米察縣"] = {wp = "Ialomița County"}, ["雅西縣"] = {wp = "Iași County"}, ["伊爾福夫縣"] = {wp = "Ilfov County"}, ["馬拉穆列什縣"] = {wp = "Maramureș County"}, ["梅赫丁茨縣"] = {wp = "Mehedinți County"}, ["穆列什縣"] = {wp = "Mureș County"}, ["尼亞姆茨縣"] = {wp = "Neamț County"}, ["奧爾特縣"] = {wp = "Olt County"}, ["普拉霍瓦縣"] = {wp = "Prahova County"}, ["薩圖馬雷縣"] = {wp = "Satu Mare County"}, ["錫比烏縣"] = {wp = "Sibiu County"}, ["蘇恰瓦縣"] = {wp = "Suceava County"}, ["瑟拉日縣"] = {wp = "Sălaj County"}, ["特列奧爾曼縣"] = {wp = "Teleorman County"}, ["蒂米什縣"] = {wp = "Timiș County"}, ["圖爾恰縣"] = {wp = "Tulcea County"}, ["瓦斯盧伊縣"] = {wp = "Vaslui County"}, ["弗蘭恰縣"] = {wp = "Vrancea County"}, ["沃爾恰縣"] = {wp = "Vâlcea County"}, } export.romania_group = { placename_to_key = false, default_container = "羅馬尼亞", default_placetype = "county", data = export.romania_counties, } export.north_korea_provinces = { ["慈江道"] = {wp = "慈江道"}, ["咸鏡北道"] = {wp = "咸鏡北道"}, ["咸鏡南道"] = {wp = "咸鏡南道"}, ["黃海北道"] = {wp = "黃海北道"}, ["黃海南道"] = {wp = "黃海南道"}, ["江原道(北韓)"] = {wp = "江原道 (朝鮮民主主義人民共和國)"}, ["平安北道"] = {wp = "平安北道"}, ["平安南道"] = {wp = "平安南道"}, ["兩江道"] = {wp = "兩江道"}, } export.north_korea_group = { placename_to_key = false, default_container = "朝鮮", default_placetype = "province", data = export.north_korea_provinces, } export.south_korea_provinces = { ["忠清北道"] = {wp = "忠清北道"}, ["忠清南道"] = {wp = "忠清南道"}, ["江原道(南韓)"] = {wp = "江原特別自治道"}, ["京畿道"] = {wp = "京畿道"}, ["慶尚北道"] = {wp = "慶尚北道"}, ["慶尚南道"] = {wp = "慶尚南道"}, ["全羅北道"] = {wp = "全羅北道"}, ["全羅南道"] = {wp = "全羅南道"}, ["濟州道"] = {wp = "濟州道"}, } export.south_korea_group = { placename_to_key = false, default_container = "韓國", default_placetype = "province", data = export.south_korea_provinces, } export.thailand_provinces = { ["阿姆納特坤府"] = {wp = "Amnat Charoen Province"}, ["紅統府"] = {wp = "Ang Thong Province"}, ["彭侃府"] = {wp = "Bueng Kan Province"}, ["武里南府"] = {wp = "Buriram Province"}, ["北柳府"] = {wp = "Chachoengsao Province"}, ["猜納府"] = {wp = "Chai Nat Province"}, ["猜耶奔府"] = {wp = "Chaiyaphum Province"}, ["尖竹汶府"] = {wp = "Chanthaburi Province"}, ["清邁府"] = {wp = "Chiang Mai Province"}, ["清萊府"] = {wp = "Chiang Rai Province"}, ["春武里府"] = {wp = "Chonburi Province"}, ["春蓬府"] = {wp = "Chumphon Province"}, ["加拉信府"] = {wp = "Kalasin Province"}, ["甘烹碧府"] = {wp = "Kamphaeng Phet Province"}, ["北碧府"] = {wp = "Kanchanaburi Province"}, ["孔敬府"] = {wp = "Khon Kaen Province"}, ["甲米府"] = {wp = "Krabi Province"}, ["南邦府"] = {wp = "Lampang Province"}, ["南奔府"] = {wp = "Lamphun Province"}, ["黎府"] = {wp = "Loei Province"}, ["華富里府"] = {wp = "Lopburi Province"}, ["夜豐頌府"] = {wp = "Mae Hong Son Province"}, ["瑪哈沙拉堪府"] = {wp = "Maha Sarakham Province"}, ["莫達罕府"] = {wp = "Mukdahan Province"}, ["那空那育府"] = {wp = "Nakhon Nayok Province"}, ["佛統府"] = {wp = "Nakhon Pathom Province"}, ["那空帕農府"] = {wp = "Nakhon Phanom Province"}, ["呵叻府"] = {wp = "Nakhon Ratchasima Province"}, ["那空沙旺府"] = {wp = "Nakhon Sawan Province"}, ["洛坤府"] = {wp = "Nakhon Si Thammarat Province"}, ["難府"] = {wp = "Nan Province"}, ["那拉提瓦府"] = {wp = "Narathiwat Province"}, ["農布瓦蘭普府"] = {wp = "Nong Bua Lamphu Province"}, ["廊開府"] = {wp = "Nong Khai Province"}, ["暖武里府"] = {wp = "Nonthaburi Province"}, ["巴吞他尼府"] = {wp = "Pathum Thani Province"}, ["北大年府"] = {wp = "Pattani Province"}, ["攀牙府"] = {wp = "Phang Nga Province"}, ["博他侖府"] = {wp = "Phatthalung Province"}, ["帕堯府"] = {wp = "Phayao Province"}, ["碧差汶府"] = {wp = "Phetchabun Province"}, ["碧武里府"] = {wp = "Phetchaburi Province"}, ["披集府"] = {wp = "Phichit Province"}, ["彭世洛府"] = {wp = "Phitsanulok Province"}, ["大城府"] = {wp = "Phra Nakhon Si Ayutthaya Province"}, ["帕府"] = {wp = "Phrae Province"}, ["普吉府"] = {wp = "Phuket Province"}, ["巴真府"] = {wp = "Prachinburi Province"}, ["巴蜀府"] = {wp = "Prachuap Khiri Khan Province"}, ["拉廊府"] = {wp = "Ranong Province"}, ["叻丕府"] = {wp = "Ratchaburi Province"}, ["羅勇府"] = {wp = "Rayong Province"}, ["黎逸府"] = {wp = "Roi Et Province"}, ["沙繳府"] = {wp = "Sa Kaeo Province"}, ["色軍府"] = {wp = "Sakon Nakhon Province"}, ["北欖府"] = {wp = "Samut Prakan Province"}, ["沙沒沙空府"] = {wp = "Samut Sakhon Province"}, ["沙沒頌堪府"] = {wp = "Samut Songkhram Province"}, ["沙拉武里府"] = {wp = "Saraburi Province"}, ["沙敦府"] = {wp = "Satun Province"}, ["信武里府"] = {wp = "Sing Buri Province"}, ["四色菊府"] = {wp = "Sisaket Province"}, ["宋卡府"] = {wp = "Songkhla Province"}, ["素可泰府"] = {wp = "Sukhothai Province"}, ["素攀武里府"] = {wp = "Suphan Buri Province"}, ["素叻他尼府"] = {wp = "Surat Thani Province"}, ["素林府"] = {wp = "Surin Province"}, ["達府"] = {wp = "Tak Province"}, ["董里府"] = {wp = "Trang Province"}, ["達叻府"] = {wp = "Trat Province"}, ["烏汶府"] = {wp = "Ubon Ratchathani Province"}, ["烏隆府"] = {wp = "Udon Thani Province"}, ["烏泰他尼府"] = {wp = "Uthai Thani Province"}, ["烏達拉勐府"] = {wp = "Uttaradit Province"}, ["惹拉府"] = {wp = "Yala Province"}, ["耶梭通府"] = {wp = "Yasothon Province"}, } export.thailand_group = { placename_to_key = false, default_container = "泰國", default_placetype = "province", data = export.thailand_provinces, } export.turkey_provinces = { ["阿達納省"] = {wp = "Adana Province"}, ["阿德亞曼省"] = {wp = "Adıyaman Province"}, ["阿菲永卡拉希薩爾省"] = {wp = "Afyonkarahisar Province"}, ["阿里省"] = {wp = "Ağrı Province"}, ["阿馬西亞省"] = {wp = "Amasya Province"}, ["安卡拉省"] = {wp = "Ankara Province"}, ["安塔利亞省"] = {wp = "Antalya Province"}, ["阿爾特溫省"] = {wp = "Artvin Province"}, ["艾登省"] = {wp = "Aydın Province"}, ["巴勒克埃西爾省"] = {wp = "Balıkesir Province"}, ["比萊吉克省"] = {wp = "Bilecik Province"}, ["賓格爾省"] = {wp = "Bingöl Province"}, ["比特利斯省"] = {wp = "Bitlis Province"}, ["博盧省"] = {wp = "Bolu Province"}, ["布爾杜爾省"] = {wp = "Burdur Province"}, ["布爾薩省"] = {wp = "Bursa Province"}, ["恰納卡萊省"] = {wp = "Çanakkale Province"}, ["昌克勒省"] = {wp = "Çankırı Province"}, ["喬魯姆省"] = {wp = "Çorum Province"}, ["代尼茲利省"] = {wp = "Denizli Province"}, ["迪亞巴克爾省"] = {wp = "Diyarbakır Province"}, ["埃迪爾內省"] = {wp = "Edirne Province"}, ["埃拉澤省"] = {wp = "Elazığ Province"}, ["埃爾津詹省"] = {wp = "Erzincan Province"}, ["埃爾祖魯姆省"] = {wp = "Erzurum Province"}, ["埃斯基謝希爾省"] = {wp = "Eskişehir Province"}, ["加濟安泰普省"] = {wp = "Gaziantep Province"}, ["吉雷松省"] = {wp = "Giresun Province"}, ["居米什哈內省"] = {wp = "Gümüşhane Province"}, ["哈卡里省"] = {wp = "Hakkâri Province"}, ["哈塔伊省"] = {wp = "Hatay Province"}, ["伊斯帕爾塔省"] = {wp = "Isparta Province"}, ["梅爾辛省"] = {wp = "Mersin Province"}, ["伊茲密爾省"] = {wp = "İzmir Province"}, ["卡爾斯省"] = {wp = "Kars Province"}, ["卡斯塔莫努省"] = {wp = "Kastamonu Province"}, ["開塞利省"] = {wp = "Kayseri Province"}, ["柯克拉雷利省"] = {wp = "Kırklareli Province"}, ["克爾謝希爾省"] = {wp = "Kırşehir Province"}, ["科賈埃利省"] = {wp = "Kocaeli Province"}, ["科尼亞省"] = {wp = "Konya Province"}, ["屈塔希亞省"] = {wp = "Kütahya Province"}, ["馬拉蒂亞省"] = {wp = "Malatya Province"}, ["馬尼薩省"] = {wp = "Manisa Province"}, ["卡赫拉曼馬拉什省"] = {wp = "Kahramanmaraş Province"}, ["馬爾丁省"] = {wp = "Mardin Province"}, ["穆拉省"] = {wp = "Muğla Province"}, ["穆什省"] = {wp = "Muş Province"}, ["內夫謝希爾省"] = {wp = "Nevşehir Province"}, ["尼代省"] = {wp = "Niğde Province"}, ["奧爾杜省"] = {wp = "Ordu Province"}, ["里澤省"] = {wp = "Rize Province"}, ["薩卡里亞省"] = {wp = "Sakarya Province"}, ["薩姆松省"] = {wp = "Samsun Province"}, ["錫爾特省"] = {wp = "Siirt Province"}, ["錫諾普省"] = {wp = "Sinop Province"}, ["錫瓦斯省"] = {wp = "Sivas Province"}, ["泰基爾達省"] = {wp = "Tekirdağ Province"}, ["托卡特省"] = {wp = "Tokat Province"}, ["特拉布宗省"] = {wp = "Trabzon Province"}, ["通傑利省"] = {wp = "Tunceli Province"}, ["尚勒烏爾法省"] = {wp = "Şanlıurfa Province"}, ["烏沙克省"] = {wp = "Uşak Province"}, ["凡省"] = {wp = "Van Province"}, ["約茲加特省"] = {wp = "Yozgat Province"}, ["宗古爾達克省"] = {wp = "Zonguldak Province"}, ["阿克薩賴省"] = {wp = "Aksaray Province"}, ["拜布爾特省"] = {wp = "Bayburt Province"}, ["卡拉曼省"] = {wp = "Karaman Province"}, ["克勒克卡萊省"] = {wp = "Kırıkkale Province"}, ["巴特曼省"] = {wp = "Batman Province"}, ["蘇爾納克省"] = {wp = "Şırnak Province"}, ["巴爾騰省"] = {wp = "Bartın Province"}, ["阿爾達罕省"] = {wp = "Ardahan Province"}, ["伊迪爾省"] = {wp = "Iğdır Province"}, ["亞洛瓦省"] = {wp = "Yalova Province"}, ["卡拉比克省"] = {wp = "Karabük Province"}, ["基利斯省"] = {wp = "Kilis Province"}, ["奧斯曼尼耶省"] = {wp = "Osmaniye Province"}, ["迪茲傑省"] = {wp = "Düzce Province"}, } export.turkey_group = { placename_to_key = false, default_container = "土耳其", default_placetype = "province", data = export.turkey_provinces, } export.vietnam_provinces = { -- Northeast ["北江省"] = {wp = "Bắc Giang Province"}, ["北件省"] = {wp = "Bắc Kạn Province"}, ["高平省"] = {wp = "Cao Bằng Province"}, ["河江省"] = {wp = "Hà Giang Province"}, ["諒山省"] = {wp = "Lạng Sơn Province"}, ["富壽省"] = {wp = "Phú Thọ Province"}, ["廣寧省"] = {wp = "Quảng Ninh Province"}, ["太原省"] = {wp = "Thái Nguyên Province"}, ["宣光省"] = {wp = "Tuyên Quang Province"}, -- Northwest ["老街省"] = {wp = "Lào Cai Province"}, ["安沛省"] = {wp = "Yên Bái Province"}, ["奠邊省"] = {wp = "Điện Biên Province"}, ["和平省"] = {wp = "Hoà Bình Province"}, ["萊州省"] = {wp = "Lai Châu Province"}, ["山羅省"] = {wp = "Sơn La Province"}, -- Red River Delta ["北寧省"] = {wp = "Bắc Ninh Province"}, ["河南省"] = {wp = "Hà Nam Province"}, ["海陽省"] = {wp = "Hải Dương Province"}, ["興安省"] = {wp = "Hưng Yên Province"}, ["南定省"] = {wp = "Nam Định Province"}, ["寧平省"] = {wp = "Ninh Bình Province"}, ["太平省"] = {wp = "Thái Bình Province"}, ["永福省"] = {wp = "Vĩnh Phúc Province"}, -- North Central Coast ["河靜省"] = {wp = "Hà Tĩnh Province"}, ["乂安省"] = {wp = "Nghệ An Province"}, ["廣平省"] = {wp = "Quảng Bình Province"}, ["廣治省"] = {wp = "Quảng Trị Province"}, ["清化省"] = {wp = "Thanh Hoá Province"}, -- Central Highlands ["得樂省"] = {wp = "Đắk Lắk Province"}, ["得農省"] = {wp = "Đăk Nông Province"}, ["嘉萊省"] = {wp = "Gia Lai Province"}, ["崑嵩省"] = {wp = "Kon Tum Province"}, ["林同省"] = {wp = "Lâm Đồng Province"}, -- South Central Coast ["平定省"] = {wp = "Bình Định Province"}, ["平順省"] = {wp = "Bình Thuận Province"}, ["慶和省"] = {wp = "Khánh Hoà Province"}, ["寧順省"] = {wp = "Ninh Thuận Province"}, ["富安省"] = {wp = "Phú Yên Province"}, ["廣南省"] = {wp = "Quảng Nam Province"}, ["廣義省"] = {wp = "Quảng Ngãi Province"}, -- Southeast ["巴地-頭頓省"] = {wp = "Bà Rịa–Vũng Tàu Province"}, ["平陽省"] = {wp = "Bình Dương Province"}, ["平福省"] = {wp = "Bình Phước Province"}, ["同奈省"] = {wp = "Đồng Nai Province"}, ["西寧省"] = {wp = "Tây Ninh Province"}, -- Mekong Delta ["安江省"] = {wp = "An Giang Province"}, ["薄寮省"] = {wp = "Bạc Liêu Province"}, ["檳椥省"] = {wp = "Bến Tre Province"}, ["金甌省"] = {wp = "Cà Mau Province"}, ["同塔省"] = {wp = "Đồng Tháp Province"}, ["後江省"] = {wp = "Hậu Giang Province"}, ["堅江省"] = {wp = "Kiên Giang Province"}, ["龍安省"] = {wp = "Long An Province"}, ["朔莊省"] = {wp = "Sóc Trăng Province"}, ["前江省"] = {wp = "Tiền Giang Province"}, ["茶榮省"] = {wp = "Trà Vinh Province"}, ["永隆省"] = {wp = "Vĩnh Long Province"}, } export.vietnam_group = { placename_to_key = false, default_container = "越南", default_placetype = "province", data = export.vietnam_provinces, } export.united_states_states = { ["阿拉巴馬"] = {wp = "Alabama"}, ["阿拉斯加"] = {wp = "Alaska"}, ["亞利桑那"] = {wp = "Arizona"}, ["阿肯色"] = {wp = "Arkansas"}, ["加利福尼亞"] = {wp = "California"}, ["加州"] = {alias_of = "加利福尼亞"}, ["科羅拉多"] = {wp = "Colorado"}, ["康乃狄克"] = {wp = "Connecticut"}, ["康涅狄格"] = {alias_of = "康乃狄克"}, ["德拉瓦"] = {wp = "Delaware"}, ["佛羅里達"] = {wp = "Florida"}, ["佛罗里达"] = {alias_of = "佛羅里達"}, ["佐治亞"] = {wp = "Georgia (U.S. state)"}, ["夏威夷"] = {addl_parents = {"玻里尼西亞"}, wp = "Hawaii"}, ["愛達荷"] = {wp = "Idaho"}, ["伊利諾伊"] = {wp = "Illinois"}, ["伊利诺伊"] = {alias_of = "伊利諾伊"}, ["印地安那"] = {wp = "Indiana"}, ["印第安納"] = {alias_of = "印地安那"}, ["愛荷華"] = {wp = "Iowa"}, ["堪薩斯"] = {wp = "Kansas"}, ["肯塔基"] = {wp = "Kentucky"}, ["路易斯安那"] = {wp = "Louisiana"}, ["緬因"] = {wp = "Maine"}, ["馬里蘭"] = {wp = "Maryland"}, ["麻薩諸塞"] = {wp = "Massachusetts"}, ["麻薩诸塞"] = {alias_of = "麻薩諸塞"}, ["密西根"] = {wp = "Michigan"}, ["密歇根"] = {alias_of = "密西根"}, ["明尼蘇達"] = {wp = "Minnesota"}, ["明尼苏达"] = {alias_of = "明尼蘇達"}, ["密西西比"] = {wp = "Mississippi"}, ["密蘇里"] = {wp = "Missouri"}, ["蒙大拿"] = {wp = "Montana"}, ["內布拉斯加"] = {wp = "Nebraska"}, ["內華達"] = {wp = "Nevada"}, ["新罕布什爾"] = {wp = "New Hampshire"}, ["新澤西"] = {wp = "New Jersey"}, ["新泽西"] = {alias_of = "新澤西"}, ["新墨西哥"] = {wp = "New Mexico"}, ["紐約"] = {wp = "New York (state)"}, ["纽约"] = {alias_of = "紐約"}, ["北卡羅來納"] = {wp = "North Carolina"}, ["北达科他"] = {alias_of = "北達科他"}, ["北達科他"] = {wp = "North Dakota"}, ["俄亥俄"] = {wp = "Ohio"}, ["奧克拉荷馬"] = {wp = "Oklahoma"}, ["奧勒岡"] = {wp = "Oregon"}, ["俄勒冈"] = {alias_of = "奧勒岡"}, ["賓夕法尼亞"] = {wp = "Pennsylvania"}, ["宾夕法尼亚"] = {alias_of = "賓夕法尼亞"}, ["羅德島"] = {wp = "Rhode Island"}, ["南卡羅來納"] = {wp = "South Carolina"}, ["南達科他"] = {wp = "South Dakota"}, ["田納西"] = {wp = "Tennessee"}, ["田纳西"] = {alias_of = "田納西"}, ["德克薩斯"] = {wp = "Texas"}, ["德州"] = {alias_of = "德克薩斯"}, ["猶他"] = {wp = "Utah"}, ["佛蒙特"] = {wp = "Vermont"}, ["弗吉尼亞"] = {wp = "Virginia"}, ["弗吉尼亚"] = {alias_of = "弗吉尼亞"}, ["維吉尼亞"] = {alias_of = "弗吉尼亞"}, ["華盛頓州"] = {wp = "Washington (state)"}, ["华盛顿州"] = {alias_of = "華盛頓州"}, ["西維吉尼亞"] = {wp = "West Virginia"}, ["西弗吉尼亞"] = {alias_of = "西維吉尼亞"}, ["威斯康辛"] = {wp = "Wisconsin"}, ["懷俄明"] = {wp = "Wyoming"}, -- Washington D.C. (federal district, treated like a state in holonym context) ["華盛頓特區"] = {placetype = {"federal district", "district"}, wp = "Washington, D.C."}, } export.united_states_group = { placename_to_key = false, default_container = "美國", default_placetype = "state", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, }, data = export.united_states_states, } export.united_kingdom_constituent_countries = { ["英格蘭"] = {divs = {"counties", "districts"}, wp = "England"}, ["北愛爾蘭"] = { placetype = {"constituent country", "province", "country"}, divs = {"counties", "districts"}, wp = "Northern Ireland", }, ["蘇格蘭"] = {divs = {{type = "council areas", container_parent_type = false}}, wp = "Scotland"}, ["威爾斯"] = {divs = {"counties"}, wp = "Wales"}, ["威爾士"] = {alias_of = "威爾斯"}, } export.united_kingdom_group = { placename_to_key = false, default_container = "英國", default_placetype = {"constituent country", "country"}, default_no_container_cat = true, data = export.united_kingdom_constituent_countries, } -- Scotland council areas export.scotland_council_areas = { ["Aberdeen市"] = {wp = "Aberdeen"}, ["Aberdeenshire"] = {wp = "Aberdeenshire"}, ["Angus"] = {wp = "Angus, Scotland"}, ["Argyll and Bute"] = {wp = "Argyll and Bute"}, ["Clackmannanshire"] = {wp = "Clackmannanshire"}, ["Dumfries and Galloway"] = {wp = "Dumfries and Galloway"}, ["Dundee市"] = {wp = "Dundee"}, ["East Ayrshire"] = {wp = "East Ayrshire"}, ["East Dunbartonshire"] = {wp = "East Dunbartonshire"}, ["East Lothian"] = {wp = "East Lothian"}, ["East Renfrewshire"] = {wp = "East Renfrewshire"}, ["Edinburgh市"] = {wp = "Edinburgh"}, ["Eilean Siar"] = {wp = "Outer Hebrides"}, ["Falkirk"] = {wp = "Falkirk"}, ["Fife"] = {wp = "Fife"}, ["Glasgow市"] = {wp = "Glasgow"}, ["高地"] = {wp = "Highland council area"}, ["Highland"] = {alias_of = "高地", display = true}, ["Inverclyde"] = {wp = "Inverclyde"}, ["Midlothian"] = {wp = "Midlothian"}, ["Moray"] = {wp = "Moray"}, ["North Ayrshire"] = {wp = "North Ayrshire"}, ["North Lanarkshire"] = {wp = "North Lanarkshire"}, ["Orkney群島"] = {wp = "Orkney"}, ["Perth and Kinross"] = {wp = "Perth and Kinross"}, ["Renfrewshire"] = {wp = "Renfrewshire"}, ["Scottish Borders"] = {wp = "Scottish Borders"}, ["Shetland群島"] = {wp = "Shetland"}, ["South Ayrshire"] = {wp = "South Ayrshire"}, ["South Lanarkshire"] = {wp = "South Lanarkshire"}, ["Stirling"] = {wp = "Stirling (council area)"}, ["West Dunbartonshire"] = {wp = "West Dunbartonshire"}, ["West Lothian"] = {wp = "West Lothian"}, } export.scotland_group = { placename_to_key = false, default_container = "蘇格蘭", default_placetype = "council area", data = export.scotland_council_areas, } -- England counties (ceremonial) export.england_counties = { -- Metropolitan counties ["大倫敦"] = {wp = "Greater London"}, ["大曼徹斯特"] = {wp = "Greater Manchester"}, ["默西賽德郡"] = {wp = "Merseyside"}, ["西密德蘭"] = {wp = "West Midlands (county)"}, ["南約克郡"] = {wp = "South Yorkshire"}, ["西約克郡"] = {wp = "West Yorkshire"}, ["泰恩-威爾郡"] = {wp = "Tyne and Wear"}, -- Non-metropolitan ceremonial counties ["貝德福德郡"] = {wp = "Bedfordshire"}, ["伯克郡"] = {wp = "Berkshire"}, ["白金漢郡"] = {wp = "Buckinghamshire"}, ["劍橋郡"] = {wp = "Cambridgeshire"}, ["柴郡"] = {wp = "Cheshire"}, ["康沃爾郡"] = {wp = "Cornwall"}, ["坎布里亞郡"] = {wp = "Cumbria"}, ["德比郡"] = {wp = "Derbyshire"}, ["德文郡"] = {wp = "Devon"}, ["多塞特郡"] = {wp = "Dorset"}, ["達勒姆郡"] = {wp = "County Durham"}, ["約克郡東區"] = {wp = "East Riding of Yorkshire"}, ["東薩塞克斯郡"] = {wp = "East Sussex"}, ["埃塞克斯郡"] = {wp = "Essex"}, ["格洛斯特郡"] = {wp = "Gloucestershire"}, ["漢普郡"] = {wp = "Hampshire"}, ["赫里福德郡"] = {wp = "Herefordshire"}, ["赫特福德郡"] = {wp = "Hertfordshire"}, ["懷特島"] = {wp = "Isle of Wight"}, ["肯特郡"] = {wp = "Kent"}, ["蘭開夏郡"] = {wp = "Lancashire"}, ["萊斯特郡"] = {wp = "Leicestershire"}, ["林肯郡"] = {wp = "Lincolnshire"}, ["諾福克郡"] = {wp = "Norfolk"}, ["北安普敦郡"] = {wp = "Northamptonshire"}, ["諾森伯蘭郡"] = {wp = "Northumberland"}, ["北約克郡"] = {wp = "North Yorkshire"}, ["諾丁漢郡"] = {wp = "Nottinghamshire"}, ["牛津郡"] = {wp = "Oxfordshire"}, ["拉特蘭郡"] = {wp = "Rutland"}, ["什羅普郡"] = {wp = "Shropshire"}, ["薩默塞特郡"] = {wp = "Somerset"}, ["南亨伯賽德郡"] = {wp = "South Humberside"}, ["斯塔福德郡"] = {wp = "Staffordshire"}, ["薩福克郡"] = {wp = "Suffolk"}, ["薩里郡"] = {wp = "Surrey"}, ["沃里克郡"] = {wp = "Warwickshire"}, ["西薩塞克斯郡"] = {wp = "West Sussex"}, ["威爾特郡"] = {wp = "Wiltshire"}, ["伍斯特郡"] = {wp = "Worcestershire"}, } export.england_group = { placename_to_key = false, default_container = {key = "英格蘭", placetype = "constituent country"}, default_placetype = "county", data = export.england_counties, } -- Counties of Northern Ireland export.northern_ireland_counties = { ["安特里姆郡"] = {wp = "County Antrim"}, ["阿爾馬郡"] = {wp = "County Armagh"}, ["貝爾法斯特市"] = {is_city = true, wp = "Belfast"}, ["唐郡"] = {wp = "County Down"}, ["弗馬納郡"] = {wp = "County Fermanagh"}, ["倫敦德里郡"] = {wp = "County Londonderry"}, ["德里市"] = {is_city = true, wp = "Derry"}, ["泰龍郡"] = {wp = "County Tyrone"}, } export.northern_ireland_group = { placename_to_key = false, default_container = {key = "北愛爾蘭", placetype = "constituent country"}, default_placetype = "county", data = export.northern_ireland_counties, } export.nigeria_states = { ["阿比亞州"] = {wp = "Abia State"}, ["阿達馬瓦州"] = {wp = "Adamawa State"}, ["阿誇伊博姆州"] = {wp = "Akwa Ibom State"}, ["阿南布拉州"] = {wp = "Anambra State"}, ["包奇州"] = {wp = "Bauchi State"}, ["貝耶薩州"] = {wp = "Bayelsa State"}, ["貝努埃州"] = {wp = "Benue State"}, ["博爾諾州"] = {wp = "Borno State"}, ["跨河州"] = {wp = "Cross River State"}, ["三角洲州"] = {wp = "Delta State"}, ["埃博尼州"] = {wp = "Ebonyi State"}, ["埃多州"] = {wp = "Edo State"}, ["埃基蒂州"] = {wp = "Ekiti State"}, ["埃努古州"] = {wp = "Enugu State"}, ["阿布賈聯邦首都轄區"] = {placetype = {"federal territory", "territory", "state"}, the = true, wp = "Federal Capital Territory, Nigeria"}, ["貢貝州"] = {wp = "Gombe State"}, ["伊莫州"] = {wp = "Imo State"}, ["吉加瓦州"] = {wp = "Jigawa State"}, ["卡杜納州"] = {wp = "Kaduna State"}, ["卡諾州"] = {wp = "Kano State"}, ["卡齊納州"] = {wp = "Katsina State"}, ["克比州"] = {wp = "Kebbi State"}, ["科吉州"] = {wp = "Kogi State"}, ["誇拉州"] = {wp = "Kwara State"}, ["拉各斯州"] = {wp = "Lagos State"}, ["納薩拉瓦州"] = {wp = "Nasarawa State"}, ["尼日爾州"] = {wp = "Niger State"}, ["奧貢州"] = {wp = "Ogun State"}, ["翁多州"] = {wp = "Ondo State"}, ["奧順州"] = {wp = "Osun State"}, ["奧約州"] = {wp = "Oyo State"}, ["高原州"] = {wp = "Plateau State"}, ["河流州"] = {wp = "Rivers State"}, ["索科托州"] = {wp = "Sokoto State"}, ["塔拉巴州"] = {wp = "Taraba State"}, ["約貝州"] = {wp = "Yobe State"}, ["贊法拉州"] = {wp = "Zamfara State"}, } export.nigeria_group = { placename_to_key = false, default_container = "奈及利亞", default_placetype = "state", data = export.nigeria_states, } ----------------------------------------------------------------------------------- -- Selected city groups -- ----------------------------------------------------------------------------------- -- Key world cities frequently used as holonyms (entries covered by dedicated city groups removed) export.misc_cities = { -- Americas ["費爾法克斯"] = {container = "弗吉尼亞", placetype = "city", is_city = true, wp = "Fairfax, Virginia"}, ["斯克蘭頓"] = {container = "賓夕法尼亞", placetype = "city", is_city = true, wp = "Scranton, Pennsylvania"}, ["里約熱內盧市"] = {container = "巴西", placetype = "city", is_city = true, wp = "Rio de Janeiro"}, ["布宜諾斯艾利斯"] = {container = "阿根廷", placetype = "city", is_city = true, wp = "Buenos Aires"}, ["聖地牙哥"] = {container = "智利", placetype = "city", is_city = true, wp = "Santiago"}, ["波哥大"] = {container = "哥倫比亞", placetype = "city", is_city = true, wp = "Bogotá"}, ["利馬"] = {container = "秘魯", placetype = "city", is_city = true, wp = "Lima"}, -- Europe ["阿姆斯特丹"] = {container = "荷蘭", placetype = "city", is_city = true, wp = "Amsterdam"}, ["布魯塞爾"] = {container = "比利時", placetype = "city", is_city = true, wp = "Brussels"}, ["維也納"] = {container = "奧地利", placetype = "city", is_city = true, wp = "Vienna"}, ["伊斯坦布爾"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Istanbul"}, ["基輔"] = {container = "烏克蘭", placetype = "city", is_city = true, wp = "Kyiv"}, ["華沙"] = {container = "波蘭", placetype = "city", is_city = true, wp = "Warsaw"}, ["布拉格"] = {container = "捷克", placetype = "city", is_city = true, wp = "Prague"}, ["布達佩斯"] = {container = "匈牙利", placetype = "city", is_city = true, wp = "Budapest"}, ["斯德哥爾摩"] = {container = "瑞典", placetype = "city", is_city = true, wp = "Stockholm"}, ["赫爾辛基"] = {container = "芬蘭", placetype = "city", is_city = true, wp = "Helsinki"}, ["奧斯陸"] = {container = "挪威", placetype = "city", is_city = true, wp = "Oslo"}, ["哥本哈根"] = {container = "丹麥", placetype = "city", is_city = true, wp = "Copenhagen"}, ["里斯本"] = {container = "葡萄牙", placetype = "city", is_city = true, wp = "Lisbon"}, ["雅典"] = {container = "希臘", placetype = "city", is_city = true, wp = "Athens"}, ["蘇黎世"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Zurich"}, ["日內瓦"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Geneva"}, ["第比利斯"] = {container = "格魯吉亞", placetype = "city", is_city = true, wp = "Tbilisi"}, ["貝爾格勒"] = {container = "塞爾維亞", placetype = "city", is_city = true, wp = "Belgrade"}, ["薩格勒布"] = {container = "克羅埃西亞", placetype = "city", is_city = true, wp = "Zagreb"}, ["都柏林"] = {container = "愛爾蘭", placetype = "city", is_city = true, wp = "Dublin"}, -- Asia ["北京市"] = {container = "北京", placetype = "city", is_city = true, wp = "Beijing"}, ["上海市"] = {container = "上海", placetype = "city", is_city = true, wp = "Shanghai"}, ["德里市"] = {container = "德里", placetype = "city", is_city = true, wp = "Delhi"}, ["曼谷"] = {container = "泰國", placetype = "city", is_city = true, wp = "Bangkok"}, ["吉隆坡"] = {container = "馬來西亞", placetype = "city", is_city = true, wp = "Kuala Lumpur"}, ["開羅"] = {container = "埃及", placetype = "city", is_city = true, wp = "Cairo"}, ["德黑蘭"] = {container = "伊朗", placetype = "city", is_city = true, wp = "Tehran"}, ["安卡拉"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Ankara"}, -- Oceania ["奧克蘭"] = {container = "紐西蘭", placetype = "city", is_city = true, wp = "Auckland"}, -- Africa ["開普敦"] = {container = "南非", placetype = "city", is_city = true, wp = "Cape Town"}, ["約翰尼斯堡"] = {container = "南非", placetype = "city", is_city = true, wp = "Johannesburg"}, ["奈洛比"] = {container = "肯亞", placetype = "city", is_city = true, wp = "Nairobi"}, } export.misc_cities_group = { placename_to_key = false, default_placetype = "city", default_is_city = true, data = export.misc_cities, } export.netherlands_provinces = { ["德倫特省"] = {wp = "Drenthe"}, ["弗萊福蘭省"] = {wp = "Flevoland"}, ["弗里斯蘭省"] = {wp = "Friesland"}, ["格爾德蘭省"] = {wp = "Gelderland"}, ["格羅寧根省"] = {wp = "Groningen (province)"}, ["林堡省(荷蘭)"] = {wp = "Limburg (Netherlands)"}, ["北布拉班特省"] = {wp = "North Brabant"}, ["北荷蘭省"] = {wp = "North Holland"}, ["上艾瑟爾省"] = {wp = "Overijssel"}, ["南荷蘭省"] = {wp = "South Holland"}, ["烏特勒支省"] = {wp = "Utrecht (province)"}, ["澤蘭省"] = {wp = "Zeeland"}, } export.netherlands_group = { placename_to_key = false, default_container = "荷蘭", default_placetype = "province", data = export.netherlands_provinces, } export.new_zealand_regions = { ["北地大區"] = {wp = "Northland Region"}, ["奧克蘭大區"] = {wp = "Auckland Region"}, ["懷卡托大區"] = {wp = "Waikato Region"}, ["豐盛灣大區"] = {wp = "Bay of Plenty Region"}, ["吉斯伯恩大區"] = {wp = "Gisborne District", placetype = {"region", "district"}}, ["霍克斯灣大區"] = {wp = "Hawke's Bay Region"}, ["塔拉納基大區"] = {wp = "Taranaki Region"}, ["馬納瓦圖-旺阿努伊大區"] = {wp = "Manawatū-Whanganui Region"}, ["惠靈頓大區"] = {wp = "Wellington Region"}, ["塔斯曼大區"] = {wp = "Tasman District", placetype = {"region", "district"}}, ["納爾遜大區"] = {wp = "Nelson, New Zealand", placetype = {"region", "city"}, is_city = true}, ["馬爾堡大區"] = {wp = "Marlborough District", placetype = {"region", "district"}}, ["西海岸大區"] = {wp = "West Coast Region"}, ["坎特伯雷大區"] = {wp = "Canterbury Region"}, ["奧塔哥大區"] = {wp = "Otago Region"}, ["南地大區"] = {wp = "Southland Region"}, } export.new_zealand_group = { placename_to_key = false, default_container = "紐西蘭", default_placetype = "region", data = export.new_zealand_regions, } export.norwegian_counties = { ["奧斯陸縣"] = {wp = "Oslo"}, ["羅加蘭縣"] = {wp = "Rogaland"}, ["莫雷-羅姆斯達爾縣"] = {wp = "Møre og Romsdal"}, ["諾爾蘭縣"] = {wp = "Nordland"}, ["東福爾縣"] = {wp = "Østfold"}, ["阿克斯胡斯縣"] = {wp = "Akershus"}, ["布斯克呂縣"] = {wp = "Buskerud"}, ["因蘭德縣"] = {wp = "Innlandet"}, ["西福爾縣"] = {wp = "Vestfold"}, ["泰勒馬克縣"] = {wp = "Telemark"}, ["阿格德爾縣"] = {wp = "Agder"}, ["西地縣"] = {wp = "Vestland"}, ["特倫德拉格縣"] = {wp = "Trøndelag"}, ["特羅姆斯縣"] = {wp = "Troms"}, ["芬馬克縣"] = {wp = "Finnmark"}, } export.norway_group = { placename_to_key = false, default_container = "挪威", default_placetype = "county", data = export.norwegian_counties, } export.pakistan_provinces_and_territories = { ["自由克什米爾"] = {wp = "Azad Kashmir", placetype = {"administrative territory", "autonomous territory", "territory"}}, ["俾路支省"] = {wp = "Balochistan, Pakistan"}, ["吉爾吉特-巴爾蒂斯坦"] = {wp = "Gilgit-Baltistan", placetype = {"administrative territory", "territory"}}, ["伊斯蘭馬巴德首都直轄區"] = {wp = "Islamabad Capital Territory", placetype = {"federal territory", "administrative territory", "territory"}}, ["開伯爾-普赫圖赫瓦省"] = {wp = "Khyber Pakhtunkhwa"}, ["旁遮普省(巴基斯坦)"] = {wp = "Punjab, Pakistan"}, ["信德省"] = {wp = "Sindh"}, } export.pakistan_group = { placename_to_key = false, default_container = "巴基斯坦", default_placetype = "province", data = export.pakistan_provinces_and_territories, } export.philippines_provinces = { ["阿布拉省"] = {wp = "Abra (province)"}, ["北阿古桑省"] = {wp = "Agusan del Norte"}, ["南阿古桑省"] = {wp = "Agusan del Sur"}, ["阿克蘭省"] = {wp = "Aklan"}, ["阿爾拜省"] = {wp = "Albay"}, ["安蒂克省"] = {wp = "Antique (province)"}, ["阿帕亞沃省"] = {wp = "Apayao"}, ["奧羅拉省"] = {wp = "Aurora (province)"}, ["巴西蘭省"] = {wp = "Basilan"}, ["巴丹省"] = {wp = "Bataan"}, ["巴達內斯省"] = {wp = "Batanes"}, ["八打雁省"] = {wp = "Batangas"}, ["本格特省"] = {wp = "Benguet"}, ["比利蘭省"] = {wp = "Biliran"}, ["保和省"] = {wp = "Bohol"}, ["布基農省"] = {wp = "Bukidnon"}, ["布拉干省"] = {wp = "Bulacan"}, ["卡加延省"] = {wp = "Cagayan"}, ["北甲馬仁省"] = {wp = "Camarines Norte"}, ["南甲馬仁省"] = {wp = "Camarines Sur"}, ["卡米金省"] = {wp = "Camiguin"}, ["卡皮斯省"] = {wp = "Capiz"}, ["卡坦端內斯省"] = {wp = "Catanduanes"}, ["甲米地省"] = {wp = "Cavite"}, ["宿霧省"] = {wp = "Cebu"}, ["哥打巴托省"] = {wp = "Cotabato"}, ["達沃德奧羅省"] = {wp = "Davao de Oro"}, ["北達沃省"] = {wp = "Davao del Norte"}, ["南達沃省"] = {wp = "Davao del Sur"}, ["西達沃省"] = {wp = "Davao Occidental"}, ["東達沃省"] = {wp = "Davao Oriental"}, ["迪納加特群島省"] = {wp = "Dinagat Islands"}, ["東薩馬省"] = {wp = "Eastern Samar"}, ["吉馬拉斯省"] = {wp = "Guimaras"}, ["伊富高省"] = {wp = "Ifugao"}, ["北伊羅科斯省"] = {wp = "Ilocos Norte"}, ["南伊羅科斯省"] = {wp = "Ilocos Sur"}, ["伊洛伊洛省"] = {wp = "Iloilo"}, ["伊莎貝拉省"] = {wp = "Isabela (province)"}, ["卡林加省"] = {wp = "Kalinga (province)"}, ["拉烏尼翁省"] = {wp = "La Union"}, ["拉古納省"] = {wp = "Laguna (province)"}, ["北拉瑙省"] = {wp = "Lanao del Norte"}, ["南拉瑙省"] = {wp = "Lanao del Sur"}, ["萊特省"] = {wp = "Leyte (province)"}, ["北馬京達瑙省"] = {wp = "Maguindanao del Norte"}, ["南馬京達瑙省"] = {wp = "Maguindanao del Sur"}, ["馬林杜克省"] = {wp = "Marinduque"}, ["馬斯巴特省"] = {wp = "Masbate"}, ["西米薩米斯省"] = {wp = "Misamis Occidental"}, ["東米薩米斯省"] = {wp = "Misamis Oriental"}, ["山岳省"] = {wp = "Mountain Province"}, ["西內格羅斯省"] = {wp = "Negros Occidental"}, ["東內格羅斯省"] = {wp = "Negros Oriental"}, ["北薩馬省"] = {wp = "Northern Samar"}, ["新怡詩夏省"] = {wp = "Nueva Ecija"}, ["新比斯開省"] = {wp = "Nueva Vizcaya"}, ["西民都洛省"] = {wp = "Occidental Mindoro"}, ["東民都洛省"] = {wp = "Oriental Mindoro"}, ["巴拉望省"] = {wp = "Palawan"}, ["邦板牙省"] = {wp = "Pampanga"}, ["邦阿西楠省"] = {wp = "Pangasinan"}, ["奎松省"] = {wp = "Quezon"}, ["基里諾省"] = {wp = "Quirino"}, ["黎剎省"] = {wp = "Rizal (province)"}, ["朗布隆省"] = {wp = "Romblon"}, ["薩馬省"] = {wp = "Samar (province)"}, ["薩蘭加尼省"] = {wp = "Sarangani"}, ["錫基霍爾省"] = {wp = "Siquijor"}, ["索索貢省"] = {wp = "Sorsogon"}, ["南哥打巴托省"] = {wp = "South Cotabato"}, ["南萊特省"] = {wp = "Southern Leyte"}, ["蘇丹庫達拉省"] = {wp = "Sultan Kudarat"}, ["蘇祿省"] = {wp = "Sulu"}, ["北蘇里高省"] = {wp = "Surigao del Norte"}, ["南蘇里高省"] = {wp = "Surigao del Sur"}, ["塔拉克省"] = {wp = "Tarlac"}, ["塔威塔威省"] = {wp = "Tawi-Tawi"}, ["三描禮士省"] = {wp = "Zambales"}, ["北三寶顏省"] = {wp = "Zamboanga del Norte"}, ["南三寶顏省"] = {wp = "Zamboanga del Sur"}, ["三寶顏錫布蓋省"] = {wp = "Zamboanga Sibugay"}, ["馬尼拉都會區"] = {wp = "Metro Manila", placetype = {"region", "province"}}, } export.philippines_group = { placename_to_key = false, default_container = "菲律賓", default_placetype = "province", data = export.philippines_provinces, } export.poland_voivodeships = { ["下西里西亞省"] = {wp = "Lower Silesian Voivodeship"}, ["庫亞維-波美拉尼亞省"] = {wp = "Kuyavian-Pomeranian Voivodeship"}, ["盧布林省"] = {wp = "Lublin Voivodeship"}, ["盧布斯省"] = {wp = "Lubusz Voivodeship"}, ["羅茲省"] = {wp = "Łódź Voivodeship"}, ["小波蘭省"] = {wp = "Lesser Poland Voivodeship"}, ["馬佐夫舍省"] = {wp = "Masovian Voivodeship"}, ["奧波萊省"] = {wp = "Opole Voivodeship"}, ["喀爾巴阡山省"] = {wp = "Subcarpathian Voivodeship"}, ["波德拉謝省"] = {wp = "Podlaskie Voivodeship"}, ["波美拉尼亞省"] = {wp = "Pomeranian Voivodeship"}, ["西里西亞省"] = {wp = "Silesian Voivodeship"}, ["神聖十字省"] = {wp = "Świętokrzyskie Voivodeship"}, ["瓦爾米亞-馬祖里省"] = {wp = "Warmian-Masurian Voivodeship"}, ["大波蘭省"] = {wp = "Greater Poland Voivodeship"}, ["西波美拉尼亞省"] = {wp = "West Pomeranian Voivodeship"}, } export.poland_group = { placename_to_key = false, default_container = "波蘭", default_placetype = "voivodeship", data = export.poland_voivodeships, } export.portugal_districts_and_autonomous_regions = { ["亞速爾群島"] = {wp = "Azores", placetype = {"autonomous region", "region"}}, ["阿維羅區"] = {wp = "Aveiro District"}, ["貝雅區"] = {wp = "Beja District"}, ["布拉加區"] = {wp = "Braga District"}, ["布拉干薩區"] = {wp = "Bragança District"}, ["卡斯特洛布蘭科區"] = {wp = "Castelo Branco District"}, ["科英布拉區"] = {wp = "Coimbra District"}, ["埃武拉區"] = {wp = "Évora District"}, ["法魯區"] = {wp = "Faro District"}, ["瓜達區"] = {wp = "Guarda District"}, ["萊里亞區"] = {wp = "Leiria District"}, ["里斯本區"] = {wp = "Lisbon District"}, ["馬德拉島"] = {wp = "Madeira", placetype = {"autonomous region", "region"}}, ["波塔萊格里區"] = {wp = "Portalegre District"}, ["波爾圖區"] = {wp = "Porto District"}, ["聖塔倫區"] = {wp = "Santarém District"}, ["塞圖巴爾區"] = {wp = "Setúbal District"}, ["維亞納堡區"] = {wp = "Viana do Castelo District"}, ["維拉雷亞爾區"] = {wp = "Vila Real District"}, ["維塞烏區"] = {wp = "Viseu District"}, } export.portugal_group = { placename_to_key = false, default_container = "葡萄牙", default_placetype = "district", data = export.portugal_districts_and_autonomous_regions, } local russia_oblast = {placetype = "oblast"} local russia_krai = {placetype = "krai"} local russia_republic = {placetype = "republic"} local russia_autonomous_okrug = {placetype = {"autonomous okrug", "okrug"}} export.russia_federal_subjects = { -- autonomous oblast ["猶太自治州"] = {placetype = {"autonomous oblast", "oblast"}, wp = "Jewish Autonomous Oblast"}, -- autonomous okrugs ["楚科奇自治區"] = {wp = "Chukotka Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西自治區"] = {wp = "Khanty-Mansi Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西亞"] = {alias_of = "漢特-曼西自治區"}, ["涅涅茨自治區"] = {wp = "Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["亞馬洛-涅涅茨自治區"] = {wp = "Yamalo-Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, -- krais ["阿爾泰邊疆區"] = {wp = "Altai Krai", placetype = "krai"}, ["堪察加邊疆區"] = {wp = "Kamchatka Krai", placetype = "krai"}, ["哈巴羅夫斯克邊疆區"] = {wp = "Khabarovsk Krai", placetype = "krai"}, ["克拉斯諾達爾邊疆區"] = {wp = "Krasnodar Krai", placetype = "krai"}, ["克拉斯諾亞爾斯克邊疆區"] = {wp = "Krasnoyarsk Krai", placetype = "krai"}, ["彼爾姆邊疆區"] = {wp = "Perm Krai", placetype = "krai"}, ["濱海邊疆區"] = {wp = "Primorsky Krai", placetype = "krai"}, ["斯塔夫羅波爾邊疆區"] = {wp = "Stavropol Krai", placetype = "krai"}, ["外貝加爾邊疆區"] = {wp = "Zabaykalsky Krai", placetype = "krai"}, -- oblasts ["阿穆爾州"] = russia_oblast, ["阿爾漢格爾斯克州"] = russia_oblast, ["阿斯特拉罕州"] = russia_oblast, ["別爾哥羅德州"] = russia_oblast, ["布良斯克州"] = russia_oblast, ["車裡雅賓斯克州"] = russia_oblast, ["伊爾庫茨克州"] = russia_oblast, ["伊萬諾沃州"] = russia_oblast, ["加里寧格勒州"] = russia_oblast, ["卡盧加州"] = russia_oblast, ["克麥羅沃州"] = russia_oblast, ["基洛夫州"] = russia_oblast, ["科斯特羅馬州"] = russia_oblast, ["庫爾干州"] = russia_oblast, ["庫爾斯克州"] = russia_oblast, ["列寧格勒州"] = russia_oblast, ["利佩茨克州"] = russia_oblast, ["馬加丹州"] = russia_oblast, ["莫斯科州"] = russia_oblast, ["摩爾曼斯克州"] = russia_oblast, ["下諾夫哥羅德州"] = russia_oblast, ["諾夫哥羅德州"] = russia_oblast, ["新西伯利亞州"] = russia_oblast, ["鄂木斯克州"] = russia_oblast, ["奧倫堡州"] = russia_oblast, ["奧廖爾州"] = russia_oblast, ["奔薩州"] = russia_oblast, ["普斯科夫州"] = russia_oblast, ["羅斯托夫州"] = russia_oblast, ["梁贊州"] = russia_oblast, ["薩哈林州"] = {wp = "Sakhalin Oblast", placetype = "oblast"}, ["薩馬拉州"] = russia_oblast, ["薩拉托夫州"] = russia_oblast, ["斯摩棱斯克州"] = russia_oblast, ["斯維爾德洛夫斯克州"] = russia_oblast, ["坦波夫州"] = russia_oblast, ["托木斯克州"] = russia_oblast, ["圖拉州"] = russia_oblast, ["特維爾州"] = russia_oblast, ["秋明州"] = russia_oblast, ["烏里揚諾夫斯克州"] = russia_oblast, ["弗拉基米爾州"] = russia_oblast, ["伏爾加格勒州"] = russia_oblast, ["沃洛格達州"] = russia_oblast, ["沃羅涅日州"] = russia_oblast, ["雅羅斯拉夫爾州"] = russia_oblast, -- republics ["阿迪格共和國"] = russia_republic, ["巴什科爾托斯坦共和國"] = russia_republic, ["布里亞特共和國"] = russia_republic, ["達吉斯坦共和國"] = russia_republic, ["印古什共和國"] = russia_republic, ["卡爾梅克共和國"] = russia_republic, ["卡累利亞共和國"] = {wp = "Republic of Karelia", placetype = "republic"}, ["哈卡斯共和國"] = russia_republic, ["莫爾多瓦共和國"] = russia_republic, ["北奧塞梯-阿蘭尼亞共和國"] = {wp = "North Ossetia–Alania", placetype = "republic"}, ["北奧塞梯"] = {alias_of = "北奧塞梯-阿蘭尼亞共和國"}, ["韃靼斯坦共和國"] = russia_republic, ["阿爾泰共和國"] = {wp = "Altai Republic", placetype = "republic"}, ["車臣共和國"] = russia_republic, ["楚瓦什共和國"] = russia_republic, ["卡巴爾達-巴爾卡爾共和國"] = russia_republic, ["卡拉恰伊-切爾克斯共和國"] = russia_republic, ["科米共和國"] = {wp = "Komi Republic", placetype = "republic"}, ["馬里埃爾共和國"] = russia_republic, ["薩哈共和國"] = {wp = "Sakha Republic", placetype = "republic"}, ["雅庫特"] = {alias_of = "薩哈共和國"}, ["圖瓦共和國"] = russia_republic, ["烏德穆爾特共和國"] = russia_republic, } export.russia_group = { placename_to_key = false, default_container = "俄羅斯", default_placetype = "oblast", data = export.russia_federal_subjects, } export.saudi_arabia_provinces = { ["利雅得省"] = {wp = "Riyadh Province"}, ["麥加省"] = {wp = "Mecca Province"}, ["東部省(沙特)"] = {wp = "Eastern Province, Saudi Arabia", no_auto_augment_container = true}, ["麥地那省"] = {wp = "Medina Province"}, ["阿西爾省"] = {wp = "Asir"}, ["吉贊省"] = {wp = "Jazan Province"}, ["卡西姆省"] = {wp = "Al-Qassim Province"}, ["塔布克省"] = {wp = "Tabuk Province"}, ["哈伊爾省"] = {wp = "Ha'il Province"}, ["焦夫省"] = {wp = "Al-Jawf Province"}, ["納季蘭省"] = {wp = "Najran Province"}, ["北部邊界省"] = {wp = "Northern Borders Province"}, ["巴哈省"] = {wp = "Al-Bahah Province"}, } export.saudi_arabia_group = { placename_to_key = false, default_container = "沙烏地阿拉伯", default_placetype = "province", data = export.saudi_arabia_provinces, } export.south_africa_provinces = { ["東開普省"] = {wp = "Eastern Cape"}, ["自由邦省"] = {wp = "Free State (South African province)"}, ["豪登省"] = {wp = "Gauteng"}, ["夸祖魯-納塔爾省"] = {wp = "KwaZulu-Natal"}, ["林波波省"] = {wp = "Limpopo"}, ["姆普馬蘭加省"] = {wp = "Mpumalanga"}, ["西北省(南非)"] = {wp = "North West (South African province)"}, ["北開普省"] = {wp = "Northern Cape"}, ["西開普省"] = {wp = "Western Cape"}, } export.south_africa_group = { placename_to_key = false, default_container = "南非", default_placetype = "province", data = export.south_africa_provinces, } export.ukraine_oblasts = { ["切爾卡瑟州"] = {wp = "Cherkasy Oblast"}, ["切爾尼戈夫州"] = {wp = "Chernihiv Oblast"}, ["切爾諾夫策州"] = {wp = "Chernivtsi Oblast"}, ["第聶伯羅彼得羅夫斯克州"] = {wp = "Dnipropetrovsk Oblast"}, ["頓涅茨克州"] = {wp = "Donetsk Oblast"}, ["伊萬諾-弗蘭科夫斯克州"] = {wp = "Ivano-Frankivsk Oblast"}, ["哈爾科夫州"] = {wp = "Kharkiv Oblast"}, ["赫爾松州"] = {wp = "Kherson Oblast"}, ["赫梅利尼茨基州"] = {wp = "Khmelnytskyi Oblast"}, ["基洛夫格勒州"] = {wp = "Kirovohrad Oblast"}, ["基輔州"] = {wp = "Kyiv Oblast"}, ["盧甘斯克州"] = {wp = "Luhansk Oblast"}, ["利沃夫州"] = {wp = "Lviv Oblast"}, ["尼古拉耶夫州"] = {wp = "Mykolaiv Oblast"}, ["敖德薩州"] = {wp = "Odesa Oblast"}, ["波爾塔瓦州"] = {wp = "Poltava Oblast"}, ["羅夫諾州"] = {wp = "Rivne Oblast"}, ["蘇梅州"] = {wp = "Sumy Oblast"}, ["捷爾諾波爾州"] = {wp = "Ternopil Oblast"}, ["文尼察州"] = {wp = "Vinnytsia Oblast"}, ["沃里尼亞州"] = {wp = "Volyn Oblast"}, ["外喀爾巴阡州"] = {wp = "Zakarpattia Oblast"}, ["扎波羅熱州"] = {wp = "Zaporizhzhia Oblast"}, ["日托米爾州"] = {wp = "Zhytomyr Oblast"}, } export.ukraine_group = { placename_to_key = false, default_container = "烏克蘭", default_placetype = "oblast", data = export.ukraine_oblasts, } export.wales_principal_areas = { ["布拉艾諾格溫特"] = {wp = "Blaenau Gwent"}, ["布里真德"] = {wp = "Bridgend County Borough"}, ["卡菲利"] = {wp = "Caerphilly County Borough"}, ["卡馬森郡"] = {wp = "Carmarthenshire", placetype = "county"}, ["克雷地基昂"] = {wp = "Ceredigion", placetype = "county"}, ["科溫"] = {wp = "Conwy County Borough"}, ["登比郡"] = {wp = "Denbighshire", placetype = "county"}, ["弗林特郡"] = {wp = "Flintshire", placetype = "county"}, ["格溫內德"] = {wp = "Gwynedd", placetype = "county"}, ["安格爾西島"] = {wp = "Isle of Anglesey", placetype = "county"}, ["默瑟蒂德菲爾"] = {wp = "Merthyr Tydfil County Borough"}, ["蒙茅斯郡"] = {wp = "Monmouthshire", placetype = "county"}, ["尼斯-波特塔爾博特"] = {wp = "Neath Port Talbot"}, ["彭布羅克郡"] = {wp = "Pembrokeshire", placetype = "county"}, ["波伊斯"] = {wp = "Powys", placetype = "county"}, ["朗達坎農塔夫"] = {wp = "Rhondda Cynon Taf"}, ["托爾范"] = {wp = "Torfaen"}, ["格拉摩根谷"] = {wp = "Vale of Glamorgan"}, ["雷克瑟姆"] = {wp = "Wrexham County Borough"}, } export.wales_group = { placename_to_key = false, default_container = {key = "威爾斯", placetype = "constituent country"}, default_placetype = "county borough", data = export.wales_principal_areas, } ----------------------------------------------------------------------------------- -- City groups -- ----------------------------------------------------------------------------------- export.australia_cities = { ["阿德萊德"] = {container = "南澳大利亞", wp = "Adelaide"}, ["布里斯班"] = {container = "昆士蘭", wp = "Brisbane"}, ["坎培拉"] = {container = "澳大利亞首都領地", wp = "Canberra"}, ["墨爾本"] = {container = "維多利亞州", wp = "Melbourne"}, ["紐卡素"] = {container = "新南威爾斯", wp = "Newcastle, New South Wales"}, ["伯斯"] = {container = "西澳大利亞", wp = "Perth"}, ["悉尼"] = {container = "新南威爾斯", wp = "Sydney"}, } export.australia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "澳大利亞", default_placetype = "city", default_is_city = true, data = export.australia_cities, } export.brazil_cities = { ["聖保羅"] = {container = "聖保羅州", wp = "São Paulo"}, ["里約熱內盧"] = {container = "里約熱內盧州", wp = "Rio de Janeiro"}, ["貝洛奧里藏特"] = {container = "米納斯吉拉斯", wp = "Belo Horizonte"}, ["累西腓"] = {container = "伯南布哥州", wp = "Recife"}, ["阿雷格里港"] = {container = "南里奧格蘭德州", wp = "Porto Alegre"}, ["巴西利亞"] = {container = "巴西聯邦區", wp = "Brasília"}, ["福塔萊薩"] = {container = "塞阿拉州", wp = "Fortaleza"}, ["薩爾瓦多"] = {container = "巴伊亞", wp = "Salvador, Bahia"}, ["庫里蒂巴"] = {container = "巴拉那州", wp = "Curitiba"}, ["坎皮納斯"] = {container = "聖保羅州", wp = "Campinas"}, ["戈亞尼亞"] = {container = "戈亞斯州", wp = "Goiânia"}, ["瑪瑙斯"] = {container = "亞馬遜州", wp = "Manaus"}, ["伯利恆"] = {container = "帕拉州", wp = "Belém, Pará"}, ["維多利亞"] = {container = "聖埃斯皮里圖州", wp = "Vitória, Espírito Santo"}, ["聖路易斯"] = {container = "馬拉尼昂州", wp = "São Luís"}, ["納塔爾"] = {container = "北里奧格蘭德州", wp = "Natal, Rio Grande do Norte"}, ["弗洛里亞諾波利斯"] = {container = "聖卡塔琳娜州", wp = "Florianópolis"}, ["馬塞約"] = {container = "阿拉戈亞斯州", wp = "Maceió"}, ["若昂佩索阿"] = {container = "帕拉伊巴州", wp = "João Pessoa"}, ["特雷齊納"] = {container = "皮奧伊州", wp = "Teresina"}, ["隆德里納"] = {container = "巴拉那州", wp = "Londrina"}, } export.brazil_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "巴西", default_placetype = "city", default_is_city = true, data = export.brazil_cities, } export.canada_cities = { ["多倫多"] = {container = "安大略", wp = "Toronto"}, ["蒙特婁"] = {container = "魁北克", wp = "Montreal"}, ["溫哥華"] = {container = "英屬哥倫比亞", wp = "Vancouver"}, ["卡加里"] = {container = "亞伯達", wp = "Calgary"}, ["愛民頓"] = {container = "亞伯達", wp = "Edmonton"}, ["渥太華"] = {container = "安大略", wp = "Ottawa"}, ["魁北克城"] = {container = "魁北克", wp = "Quebec City"}, ["溫尼伯"] = {container = "馬尼托巴", wp = "Winnipeg"}, ["漢密爾頓"] = {container = "安大略", wp = "Hamilton, Ontario"}, } export.canada_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "加拿大", default_placetype = "city", default_is_city = true, data = export.canada_cities, } export.france_cities = { ["巴黎"] = {container = "法蘭西島大區", wp = "Paris"}, ["里昂"] = {container = "奧弗涅-隆河-阿爾卑斯大區", wp = "Lyon"}, ["馬賽"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Marseille"}, ["里爾"] = {container = "上法蘭西大區", wp = "Lille"}, ["波爾多"] = {container = "新阿基坦大區", wp = "Bordeaux"}, ["圖盧茲"] = {container = "奧克西塔尼大區", wp = "Toulouse"}, ["尼斯"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Nice"}, ["南特"] = {container = "盧瓦爾河地區大區", wp = "Nantes"}, ["史特拉斯堡"] = {container = "大東部大區", wp = "Strasbourg"}, ["雷恩"] = {container = "布列塔尼大區", wp = "Rennes"}, } export.france_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "法國", default_placetype = "city", default_is_city = true, data = export.france_cities, } export.germany_cities = { ["科隆"] = {container = "北萊茵-威斯特法倫", wp = "Cologne"}, ["杜塞爾多夫"] = {container = "北萊茵-威斯特法倫", wp = "Düsseldorf"}, ["多特蒙德"] = {container = "北萊茵-威斯特法倫", wp = "Dortmund"}, ["埃森"] = {container = "北萊茵-威斯特法倫", wp = "Essen"}, ["柏林"] = {wp = "Berlin"}, ["法蘭克福"] = {container = "黑森", wp = "Frankfurt"}, ["漢堡"] = {wp = "Hamburg"}, ["慕尼黑"] = {container = "巴伐利亞", wp = "Munich"}, ["斯圖加特"] = {container = "巴登-符騰堡", wp = "Stuttgart"}, ["曼海姆"] = {container = "巴登-符騰堡", wp = "Mannheim"}, ["紐倫堡"] = {container = "巴伐利亞", wp = "Nuremberg"}, ["漢諾威"] = {container = "下薩克森", wp = "Hanover"}, ["比勒費爾德"] = {container = "北萊茵-威斯特法倫", wp = "Bielefeld"}, ["萊比錫"] = {container = "薩克森", wp = "Leipzig"}, ["亞琛"] = {container = "北萊茵-威斯特法倫", wp = "Aachen"}, ["不來梅"] = {wp = "Bremen"}, } export.germany_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "德國", default_placetype = "city", default_is_city = true, data = export.germany_cities, } export.india_cities = { ["德里"] = {container = {key = "德里", placetype = "union territory"}, wp = "Delhi"}, ["孟買"] = {container = "馬哈拉施特拉邦", wp = "Mumbai"}, ["加爾各答"] = {container = "西孟加拉邦", wp = "Kolkata"}, ["班加羅爾"] = {container = "卡納塔克邦", wp = "Bengaluru"}, ["金奈"] = {container = "泰米爾納德邦", wp = "Chennai"}, ["海德拉巴"] = {container = "特倫甘納邦", wp = "Hyderabad"}, ["艾哈邁達巴德"] = {container = "古吉拉特邦", wp = "Ahmedabad"}, ["浦那"] = {container = "馬哈拉施特拉邦", wp = "Pune"}, ["蘇拉特"] = {container = "古吉拉特邦", wp = "Surat"}, ["勒克瑙"] = {container = "北方邦", wp = "Lucknow"}, ["齋浦爾"] = {container = "拉賈斯坦邦", wp = "Jaipur"}, ["坎普爾"] = {container = "北方邦", wp = "Kanpur"}, ["那格浦爾"] = {container = "馬哈拉施特拉邦", wp = "Nagpur"}, ["巴特那"] = {container = "比哈爾邦", wp = "Patna"}, ["瓦拉納西"] = {container = "北方邦", wp = "Varanasi"}, ["印多爾"] = {container = "中央邦", wp = "Indore"}, ["博帕爾"] = {container = "中央邦", wp = "Bhopal"}, ["阿格拉"] = {container = "北方邦", wp = "Agra"}, ["科欽"] = {container = "喀拉拉邦", wp = "Kochi"}, ["維沙卡帕特南"] = {container = "安得拉邦", wp = "Visakhapatnam"}, ["齋普爾"] = {alias_of = "齋浦爾"}, } export.india_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "印度", default_placetype = "city", default_is_city = true, data = export.india_cities, } export.indonesia_cities = { ["雅加達"] = {container = "雅加達首都特區", wp = "Jakarta"}, ["泗水"] = {container = "東爪哇省", wp = "Surabaya"}, ["勿加泗"] = {container = "西爪哇省", wp = "Bekasi"}, ["萬隆"] = {container = "西爪哇省", wp = "Bandung"}, ["棉蘭"] = {container = "北蘇門答臘省", wp = "Medan"}, ["德波"] = {container = "西爪哇省", wp = "Depok"}, ["萬丹市"] = {container = "萬丹省", wp = "Tangerang"}, ["巨港"] = {container = "南蘇門答臘省", wp = "Palembang"}, ["三寶壟"] = {container = "中爪哇省", wp = "Semarang"}, ["望加錫"] = {container = "南蘇拉威西省", wp = "Makassar"}, ["武端"] = {container = "廖內群島省", wp = "Batam"}, ["茂物"] = {container = "西爪哇省", wp = "Bogor"}, ["北干巴魯"] = {container = "廖內省", wp = "Pekanbaru"}, ["班達爾楠榜"] = {container = "楠榜省", wp = "Bandar Lampung"}, ["巴東"] = {container = "西蘇門答臘省", wp = "Padang"}, ["薩馬林達"] = {container = "東加里曼丹省", wp = "Samarinda"}, ["瑪琅"] = {container = "東爪哇省", wp = "Malang"}, ["日惹"] = {container = "日惹特區", wp = "Yogyakarta"}, ["登巴薩"] = {container = "峇里省", wp = "Denpasar"}, ["哲勒貢"] = {container = "西爪哇省", wp = "Cirebon"}, ["梭羅"] = {container = "中爪哇省", wp = "Surakarta"}, ["馬辰"] = {container = "南加里曼丹省", wp = "Banjarmasin"}, ["打橫"] = {container = "西爪哇省", wp = "Tasikmalaya"}, } export.indonesia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "印度尼西亞", default_placetype = "city", default_is_city = true, data = export.indonesia_cities, } export.italy_cities = { ["米蘭"] = {container = "倫巴第", wp = "Milan"}, ["那不勒斯"] = {container = "坎帕尼亞", wp = "Naples"}, ["羅馬"] = {container = "拉齊奧", wp = "Rome"}, ["都靈"] = {container = "皮埃蒙特", wp = "Turin"}, ["威尼斯"] = {container = "威尼托", wp = "Venice"}, ["佛羅倫斯"] = {container = "托斯卡納", wp = "Florence"}, ["巴里"] = {container = "普利亞", wp = "Bari"}, ["巴勒莫"] = {container = "西西里", wp = "Palermo"}, ["卡塔尼亞"] = {container = "西西里", wp = "Catania"}, ["布雷西亞"] = {container = "倫巴第", wp = "Brescia"}, ["熱那亞"] = {container = "利古里亞", wp = "Genoa"}, } export.italy_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "意大利", default_placetype = "city", default_is_city = true, data = export.italy_cities, } export.japan_cities = { ["東京"] = {container = "東京都", wp = "Tokyo", placetype = {"city", "prefecture"}}, ["橫濱"] = {container = "神奈川縣", wp = "Yokohama"}, ["大阪"] = {container = "大阪府", wp = "Osaka"}, ["名古屋"] = {container = "愛知縣", wp = "Nagoya"}, ["札幌"] = {container = "北海道", wp = "Sapporo"}, ["福岡"] = {container = "福岡縣", wp = "Fukuoka"}, ["神戶"] = {container = "兵庫縣", wp = "Kobe"}, ["京都"] = {container = "京都府", wp = "Kyoto"}, ["川崎"] = {container = "神奈川縣", wp = "Kawasaki, Kanagawa"}, ["廣島"] = {container = "廣島縣", wp = "Hiroshima"}, ["仙台"] = {container = "宮城縣", wp = "Sendai"}, ["北九州"] = {container = "福岡縣", wp = "Kitakyushu"}, ["新潟"] = {container = "新潟縣", wp = "Niigata (city)"}, ["靜岡"] = {container = "靜岡縣", wp = "Shizuoka (city)"}, ["岡山"] = {container = "岡山縣", wp = "Okayama"}, ["熊本"] = {container = "熊本縣", wp = "Kumamoto"}, ["鹿兒島"] = {container = "鹿兒島縣", wp = "Kagoshima"}, } export.japan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "prefecture"), default_container = "日本", default_placetype = "city", default_is_city = true, data = export.japan_cities, } export.mexico_cities = { ["墨西哥城"] = {wp = "Mexico City"}, ["蒙特雷"] = {container = "新萊昂州", wp = "Monterrey"}, ["瓜達拉哈拉"] = {container = "哈利斯科州", wp = "Guadalajara"}, ["普埃布拉市"] = {container = "普埃布拉州", wp = "Puebla (city)"}, ["托盧卡"] = {container = "墨西哥州", wp = "Toluca"}, ["蒂華納"] = {container = "下加利福尼亞州", wp = "Tijuana"}, ["萊昂"] = {container = "瓜納華托州", wp = "León, Guanajuato"}, ["克雷塔羅市"] = {container = "克雷塔羅州", wp = "Querétaro (city)"}, ["華雷斯城"] = {container = "奇瓦瓦州", wp = "Ciudad Juárez"}, ["托雷翁"] = {container = "科阿韋拉州", wp = "Torreón"}, ["梅里達"] = {container = "尤卡坦州", wp = "Mérida, Yucatán"}, ["聖路易斯波托西市"] = {container = "聖路易斯波托西州", wp = "San Luis Potosí (city)"}, ["阿瓜斯卡連特斯市"] = {container = "阿瓜斯卡連特斯州", wp = "Aguascalientes (city)"}, ["墨西卡利"] = {container = "下加利福尼亞州", wp = "Mexicali"}, } export.mexico_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "墨西哥", default_placetype = "city", default_is_city = true, data = export.mexico_cities, } export.nigeria_cities = { ["拉各斯"] = {container = "拉各斯州", wp = "Lagos"}, ["卡諾市"] = {container = "卡諾州", wp = "Kano (city)"}, ["伊巴丹"] = {container = "奧約州", wp = "Ibadan"}, ["阿布賈"] = {container = {key = "阿布賈聯邦首都轄區", placetype = "federal territory"}, wp = "Abuja"}, ["哈科特港"] = {container = "河流州", wp = "Port Harcourt"}, ["卡杜納市"] = {container = "卡杜納州", wp = "Kaduna (city)"}, ["貝寧城"] = {container = "埃多州", wp = "Benin City"}, ["阿巴"] = {container = "阿比亞州", wp = "Aba, Nigeria"}, ["奧尼查"] = {container = "阿南布拉州", wp = "Onitsha"}, ["邁杜古里"] = {container = "博爾諾州", wp = "Maiduguri"}, ["伊洛林"] = {container = "誇拉州", wp = "Ilorin"}, ["索科托市"] = {container = "索科托州", wp = "Sokoto (city)"}, ["喬斯"] = {container = "高原州", wp = "Jos"}, ["扎里亞"] = {container = "卡杜納州", wp = "Zaria"}, ["埃努古市"] = {container = "埃努古州", wp = "Enugu (city)"}, } export.nigeria_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "奈及利亞", default_placetype = "city", default_is_city = true, data = export.nigeria_cities, } export.pakistan_cities = { ["卡拉奇"] = {container = "信德省", wp = "Karachi"}, ["拉合爾"] = {container = "旁遮普省(巴基斯坦)", wp = "Lahore"}, ["拉瓦爾品第"] = {container = "旁遮普省(巴基斯坦)", wp = "Rawalpindi"}, ["伊斯蘭馬巴德"] = {container = {key = "伊斯蘭馬巴德首都直轄區", placetype = "federal territory"}, wp = "Islamabad"}, ["費薩拉巴德"] = {container = "旁遮普省(巴基斯坦)", wp = "Faisalabad"}, ["古傑蘭瓦拉"] = {container = "旁遮普省(巴基斯坦)", wp = "Gujranwala"}, ["海德拉巴(巴基斯坦)"] = {container = "信德省", wp = "Hyderabad, Pakistan"}, ["木爾坦"] = {container = "旁遮普省(巴基斯坦)", wp = "Multan"}, ["白沙瓦"] = {container = "開伯爾-普赫圖赫瓦省", wp = "Peshawar"}, ["奎達"] = {container = "俾路支省", wp = "Quetta"}, ["薩戈達"] = {container = "旁遮普省(巴基斯坦)", wp = "Sargodha"}, ["錫亞爾科特"] = {container = "旁遮普省(巴基斯坦)", wp = "Sialkot"}, } export.pakistan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "巴基斯坦", default_placetype = "city", default_is_city = true, data = export.pakistan_cities, } export.philippines_cities = { ["奎松市"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Quezon City"}, ["馬尼拉"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Manila"}, ["達沃市"] = {container = "南達沃省", wp = "Davao City"}, ["卡洛坎"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Caloocan"}, ["三寶顏市"] = {container = "南三寶顏省", wp = "Zamboanga City"}, ["宿霧市"] = {container = "宿霧省", wp = "Cebu City"}, ["安蒂波洛"] = {container = "黎剎省", wp = "Antipolo"}, ["卡加延德奧羅"] = {container = "東米薩米斯省", wp = "Cagayan de Oro"}, ["達斯馬里尼亞斯"] = {container = "甲米地省", wp = "Dasmariñas"}, ["棉蘭老將軍城"] = {container = "南哥打巴托省", wp = "General Santos"}, ["聖何塞德爾蒙特"] = {container = "布拉干省", wp = "San Jose del Monte"}, ["巴科洛德"] = {container = "西內格羅斯省", wp = "Bacolod"}, ["卡蘭巴"] = {container = "拉古納省", wp = "Calamba, Laguna"}, ["天使城"] = {container = "邦板牙省", wp = "Angeles City"}, ["伊洛伊洛市"] = {container = "伊洛伊洛省", wp = "Iloilo City"}, } export.philippines_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "菲律賓", default_placetype = "city", default_is_city = true, data = export.philippines_cities, } export.russia_cities = { ["莫斯科"] = {wp = "Moscow"}, ["聖彼得堡"] = {wp = "Saint Petersburg"}, ["新西伯利亞"] = {container = "新西伯利亞州", wp = "Novosibirsk"}, ["葉卡捷琳堡"] = {container = "斯維爾德洛夫斯克州", wp = "Yekaterinburg"}, ["下諾夫哥羅德"] = {container = "下諾夫哥羅德州", wp = "Nizhny Novgorod"}, ["喀山"] = {container = {key = "韃靼斯坦共和國", placetype = "republic"}, wp = "Kazan"}, ["車裡雅賓斯克市"] = {container = "車裡雅賓斯克州", wp = "Chelyabinsk"}, ["頓河畔羅斯托夫"] = {container = "羅斯托夫州", wp = "Rostov-on-Don"}, ["克拉斯諾達爾市"] = {container = {key = "克拉斯諾達爾邊疆區", placetype = "krai"}, wp = "Krasnodar"}, ["薩馬拉市"] = {container = "薩馬拉州", wp = "Samara"}, ["克拉斯諾亞爾斯克市"] = {container = {key = "克拉斯諾亞爾斯克邊疆區", placetype = "krai"}, wp = "Krasnoyarsk"}, ["烏法"] = {container = {key = "巴什科爾托斯坦共和國", placetype = "republic"}, wp = "Ufa"}, ["薩拉托夫市"] = {container = "薩拉托夫州", wp = "Saratov"}, ["鄂木斯克市"] = {container = "鄂木斯克州", wp = "Omsk"}, ["沃羅涅日市"] = {container = "沃羅涅日州", wp = "Voronezh"}, ["伏爾加格勒市"] = {container = "伏爾加格勒州", wp = "Volgograd"}, ["彼爾姆市"] = {container = {key = "彼爾姆邊疆區", placetype = "krai"}, wp = "Perm, Russia"}, } export.russia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "oblast"), default_container = "俄羅斯", default_placetype = "city", default_is_city = true, data = export.russia_cities, } export.saudi_arabia_cities = { ["利雅得"] = {container = "利雅得省", wp = "Riyadh"}, ["吉達"] = {container = "麥加省", wp = "Jeddah"}, ["達曼"] = {container = "東部省(沙特)", wp = "Dammam"}, ["麥加"] = {container = "麥加省", wp = "Mecca"}, ["麥地那"] = {container = "麥地那省", wp = "Medina"}, ["霍夫夫"] = {container = "東部省(沙特)", wp = "Hofuf"}, ["哈米斯穆沙伊特"] = {container = "阿西爾省", wp = "Khamis Mushait"}, } export.saudi_arabia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "沙烏地阿拉伯", default_placetype = "city", default_is_city = true, data = export.saudi_arabia_cities, } export.south_korea_cities = { ["首爾"] = {wp = "Seoul"}, ["釜山"] = {wp = "Busan"}, ["仁川"] = {wp = "Incheon"}, ["大邱"] = {wp = "Daegu"}, ["大田"] = {wp = "Daejeon"}, ["光州"] = {wp = "Gwangju"}, ["蔚山"] = {wp = "Ulsan"}, } export.south_korea_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "南韓", default_placetype = "city", default_is_city = true, data = export.south_korea_cities, } export.spain_cities = { ["馬德里"] = {container = "馬德里自治區", wp = "Madrid"}, ["巴塞羅那"] = {container = "加泰羅尼亞", wp = "Barcelona"}, ["瓦倫西亞"] = {container = "巴倫西亞", wp = "Valencia"}, ["塞維利亞"] = {container = "安達盧西亞", wp = "Seville"}, ["畢爾包"] = {container = "巴斯克", wp = "Bilbao"}, } export.spain_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "autonomous community"), default_container = "西班牙", default_placetype = "city", default_is_city = true, data = export.spain_cities, } export.taiwan_cities = { -- Special municipalities (province-level) ["臺北市"] = {placetype = "special municipality", wp = "臺北市"}, ["新北市"] = {placetype = "special municipality", wp = "新北市"}, ["桃園市"] = {placetype = "special municipality", wp = "桃園市"}, ["臺中市"] = {placetype = "special municipality", wp = "臺中市"}, ["臺南市"] = {placetype = "special municipality", wp = "臺南市"}, ["高雄市"] = {placetype = "special municipality", wp = "高雄市"}, -- these last three are not special municipalities ["嘉義市"] = {placetype = "city", wp = "嘉義市"}, ["新竹市"] = {placetype = "city", wp = "新竹市"}, ["基隆市"] = {placetype = "city", wp = "基隆市"}, } export.taiwan_cities_group = { key_to_placename = make_key_to_placename(nil, "市$"), placename_to_key = make_placename_to_key("市"), default_container = "臺灣", default_placetype = {"special municipality", "city"}, default_is_city = true, data = export.taiwan_cities, } export.united_kingdom_cities = { ["倫敦"] = {container = {key = "大倫敦", placetype = "county"}, wp = "London"}, ["曼徹斯特"] = {container = {key = "大曼徹斯特", placetype = "county"}, wp = "Manchester"}, ["伯明翰"] = {container = {key = "西密德蘭", placetype = "county"}, wp = "Birmingham"}, ["利物浦"] = {container = {key = "默西賽德郡", placetype = "county"}, wp = "Liverpool"}, ["格拉斯哥"] = {container = {key = "Glasgow市", placetype = "council area"}, wp = "Glasgow"}, ["利茲"] = {container = {key = "西約克郡", placetype = "county"}, wp = "Leeds"}, ["布里斯托"] = {container = {key = "英格蘭", placetype = "constituent country"}, wp = "Bristol"}, ["卡地夫"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Cardiff"}, ["愛丁堡"] = {container = {key = "Edinburgh市", placetype = "council area"}, wp = "Edinburgh"}, ["斯旺西"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Swansea"}, ["紐波特"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Newport, Wales"}, } export.united_kingdom_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "county"), default_container = "英國", default_placetype = "city", default_is_city = true, data = export.united_kingdom_cities, } export.united_states_cities = { ["紐約市"] = {container = "紐約", wp = "New York City"}, ["洛杉磯"] = {container = "加利福尼亞", wp = "Los Angeles"}, ["芝加哥"] = {container = "伊利諾伊", wp = "Chicago"}, ["華盛頓特區"] = {wp = "Washington, D.C."}, ["巴爾的摩"] = {container = "馬里蘭", wp = "Baltimore"}, ["聖荷西"] = {container = "加利福尼亞", wp = "San Jose, California"}, ["舊金山"] = {container = "加利福尼亞", wp = "San Francisco"}, ["波士頓"] = {container = "麻薩諸塞", wp = "Boston"}, ["達拉斯"] = {container = "德克薩斯", wp = "Dallas"}, ["費城"] = {container = "賓夕法尼亞", wp = "Philadelphia"}, ["休士頓"] = {container = "德克薩斯", wp = "Houston"}, ["邁阿密"] = {container = "佛羅里達", wp = "Miami"}, ["亞特蘭大"] = {container = "喬治亞", wp = "Atlanta"}, ["底特律"] = {container = "密西根", wp = "Detroit"}, ["鳳凰城"] = {container = "亞利桑那", wp = "Phoenix"}, ["西雅圖"] = {container = "華盛頓州", wp = "Seattle"}, ["明尼阿波利斯"] = {container = "明尼蘇達", wp = "Minneapolis"}, ["克里夫蘭"] = {container = "俄亥俄", wp = "Cleveland"}, ["丹佛"] = {container = "科羅拉多", wp = "Denver"}, ["聖地牙哥(美國)"] = {container = "加利福尼亞", wp = "San Diego"}, ["波特蘭(俄勒岡)"] = {container = "俄勒岡", wp = "Portland"}, ["聖路易斯"] = {container = "密蘇里", wp = "St. Louis"}, ["夏洛特"] = {container = "北卡羅來納", wp = "Charlotte"}, ["薩克拉門托"] = {container = "加利福尼亞", wp = "Sacramento"}, ["匹茲堡"] = {container = "賓夕法尼亞", wp = "Pittsburgh"}, ["鹽湖城"] = {container = "猶他", wp = "Salt Lake City"}, ["聖安東尼奧"] = {container = "德克薩斯", wp = "San Antonio"}, ["哥倫布"] = {container = "俄亥俄", wp = "Columbus"}, ["堪薩斯城"] = {container = "密蘇里", wp = "Kansas City metropolitan area"}, ["印第安納波利斯"] = {container = "印第安納", wp = "Indianapolis"}, ["拉斯維加斯"] = {container = "內華達", wp = "Las Vegas"}, ["辛辛那提"] = {container = "俄亥俄", wp = "Cincinnati"}, ["奧斯汀"] = {container = "德克薩斯", wp = "Austin"}, ["密爾沃基"] = {container = "威斯康辛", wp = "Milwaukee"}, ["羅利"] = {container = "北卡羅來納", wp = "Raleigh"}, ["納什維爾"] = {container = "田納西", wp = "Nashville"}, ["傑克遜維爾"] = {container = "佛羅里達", wp = "Jacksonville"}, ["新奧爾良"] = {container = "路易斯安那", wp = "New Orleans"}, ["路易斯維爾"] = {container = "肯塔基", wp = "Louisville"}, ["奧克拉荷馬城"] = {container = "奧克拉荷馬", wp = "Oklahoma City"}, ["孟菲斯"] = {container = "田納西", wp = "Memphis"}, ["伯明翰(美國)"] = {container = "阿拉巴馬", wp = "Birmingham, Alabama"}, ["弗雷斯諾"] = {container = "加利福尼亞", wp = "Fresno"}, ["里奇蒙"] = {container = "弗吉尼亞", wp = "Richmond"}, ["水牛城"] = {container = "紐約", wp = "Buffalo"}, ["艾爾帕索"] = {container = "德克薩斯", wp = "El Paso"}, ["阿爾伯克基"] = {container = "新墨西哥", wp = "Albuquerque"}, ["塔森"] = {container = "亞利桑那", wp = "Tucson"}, ["科羅拉多斯普林斯"] = {container = "科羅拉多", wp = "Colorado Springs"}, ["奧馬哈"] = {container = "內布拉斯加", wp = "Omaha"}, ["塔爾薩"] = {container = "奧克拉荷馬", wp = "Tulsa"}, } export.united_states_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "美國", default_placetype = "city", default_is_city = true, data = export.united_states_cities, } export.vietnam_cities = { ["胡志明市"] = {wp = "Ho Chi Minh City"}, ["西貢"] = {alias_of = "胡志明市"}, ["河內"] = {wp = "Hanoi"}, ["峴港"] = {wp = "Da Nang"}, ["海防"] = {wp = "Haiphong"}, ["邊和"] = {container = "同奈省", wp = "Biên Hòa", placetype = "city"}, ["芹苴"] = {wp = "Cần Thơ"}, ["順化"] = {wp = "Huế"}, } export.vietnam_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "越南", default_placetype = {"municipality", "city"}, default_is_city = true, data = export.vietnam_cities, } ----------------------------------------------------------------------------------- -- locations list -- ----------------------------------------------------------------------------------- export.locations = { export.continents_group, export.countries_group, export.country_like_entities_group, export.former_countries_group, export.united_states_group, export.united_kingdom_group, export.scotland_group, export.england_group, export.northern_ireland_group, export.ireland_group, export.wales_group, export.china_group, export.china_prefecture_level_cities_group, export.taiwan_group, export.canada_group, export.australia_group, export.india_group, export.japan_group, export.brazil_group, export.france_group, export.france_departments_group, export.germany_group, export.italy_group, export.spain_group, export.austria_group, export.bangladesh_group, export.egypt_group, export.finland_group, export.greece_group, export.indonesia_group, export.lebanon_group, export.malaysia_group, export.malta_group, export.mexico_group, export.moldova_group, export.morocco_group, export.netherlands_group, export.new_zealand_group, export.norway_group, export.pakistan_group, export.philippines_group, export.poland_group, export.portugal_group, export.romania_group, export.bulgaria_group, export.iran_group, export.russia_group, export.saudi_arabia_group, export.south_africa_group, export.laos_group, export.north_korea_group, export.south_korea_group, export.thailand_group, export.turkey_group, export.ukraine_group, export.vietnam_group, export.nigeria_group, export.new_york_boroughs_group, export.australia_cities_group, export.brazil_cities_group, export.canada_cities_group, export.france_cities_group, export.germany_cities_group, export.india_cities_group, export.indonesia_cities_group, export.italy_cities_group, export.japan_cities_group, export.mexico_cities_group, export.nigeria_cities_group, export.pakistan_cities_group, export.philippines_cities_group, export.russia_cities_group, export.saudi_arabia_cities_group, export.south_korea_cities_group, export.spain_cities_group, export.taiwan_cities_group, export.united_kingdom_cities_group, export.united_states_cities_group, export.vietnam_cities_group, export.misc_cities_group, } return export sqd588weo812to23dvknxbrsk42pmi9 9759445 9759444 2026-05-14T16:55:56Z TongcyDai 53191 9759445 Scribunto text/plain local export = {} export.force_cat = false local m_table = require("Module:table") local insert = table.insert local concat = table.concat local dump = mw.dumpObject local unpack = unpack or table.unpack --[==[ Chinese Wiktionary localization of [[Module:place/locations]]. All canonical location keys are in Chinese, matching what editors write in holonym parameters (e.g. {{place|zh|城市|s/中央邦|c/印度}}). English Wikipedia article names are stored in the `wp` field for cross-reference. The `the`, `british_spelling` and English-suffix-detection fields from enwikt are omitted as they are not applicable in Chinese. The helper functions (process_error through construct_linked_placename) are kept intact from enwikt's Module:place/locations to maintain API compatibility with Module:place/placetypes. ]==] ----------------------------------------------------------------------------------- -- Helper functions -- ----------------------------------------------------------------------------------- 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 function export.internal_error(fmt, ...) export.process_error("Internal error: " .. fmt, ...) end local internal_error = export.internal_error 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 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 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 == "country" or defcon.placetype == "constituent country") then return placename .. ", " .. defcon.key else return placename end end end 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 = "country"} 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", "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 spec.is_city = value_with_default(spec.is_city, group.default_placetype == "city") spec.initialized = true end 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 local placetype = spec.placetype or resolved_spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s", key) 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 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 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 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 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 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 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 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) -- Chinese has no articles; `the` field is unused but kept for API compatibility. return linked_placename end ----------------------------------------------------------------------------------- -- Local data helper factories -- ----------------------------------------------------------------------------------- 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 _, pat in ipairs(container_patterns) do local nsubs full_placename, nsubs = full_placename:gsub(pat, "") if nsubs > 0 then break end end end local elliptical_placename = full_placename if divtype_patterns then for _, pat in ipairs(divtype_patterns) do local nsubs elliptical_placename, nsubs = elliptical_placename:gsub(pat, "") if nsubs > 0 then break end end end return full_placename, elliptical_placename end end 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 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 -- Canonicalize a continent container key (string) to canonical container form. 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_container`", key) end ----------------------------------------------------------------------------------- -- Top-level tables -- ----------------------------------------------------------------------------------- export.continents = { ["地球"] = {placetype = "planet", addl_parents = {"nature"}, fulldesc = "=the planet [[Earth]] and the features found on it", wp = "Earth"}, ["非洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Africa"}, ["美洲"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Americas"}, ["北美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "North America"}, ["加勒比地區"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Caribbean"}, ["中美洲"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Central America"}, ["南美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "South America"}, ["南極洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, fulldesc = "=the territory of [[Antarctica]]", wp = "Antarctica"}, ["歐亞大陸"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Eurasia"}, ["亞洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Asia"}, ["中東"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Middle East"}, ["東南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Southeast Asia"}, ["南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "South Asia"}, ["東亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "East Asia"}, ["中亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Central Asia"}, ["歐洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Europe"}, ["西歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Western Europe"}, ["東歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Eastern Europe"}, ["北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Northern Europe"}, ["南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Southern Europe"}, ["中歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Central Europe"}, ["大洋洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Oceania"}, ["美拉尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Melanesia"}, ["密克羅尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Micronesia"}, ["玻里尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Polynesia"}, } export.continents_group = { default_overriding_bare_label_parents = {}, default_divs = {{type = "countries", prep = "in"}}, 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, default_no_check_holonym_mismatch = true, data = export.continents, } export.countries = { -- Africa ["阿爾及利亞"] = {container = "非洲", divs = {"provinces", "communes", "districts"}, wp = "阿爾及利亞"}, ["安哥拉"] = {container = "非洲", divs = {"provinces", "municipalities"}, wp = "安哥拉"}, ["貝寧"] = {container = "非洲", wp = "貝寧"}, ["貝南"] = {alias_of = "貝寧"}, ["博茨瓦納"] = {container = "非洲", wp = "博茨瓦納"}, ["波札那"] = {alias_of = "博茨瓦納"}, ["布基納法索"] = {container = "非洲", wp = "布基納法索"}, ["布吉納法索"] = {alias_of = "布基納法索"}, ["布隆迪"] = {container = "非洲", wp = "布隆迪"}, ["蒲隆地"] = {alias_of = "布隆迪"}, ["佛得角"] = {container = "非洲", wp = "佛得角"}, ["維德角"] = {alias_of = "佛得角"}, ["中非共和國"] = {container = "非洲", wp = "中非共和國"}, ["乍得"] = {container = "非洲", wp = "乍得"}, ["查德"] = {alias_of = "乍得"}, ["科摩羅"] = {container = "非洲", wp = "科摩羅"}, ["葛摩"] = {alias_of = "科摩羅"}, ["剛果共和國"] = {container = "非洲", wp = "剛果共和國"}, ["剛果(布)"] = {alias_of = "剛果共和國"}, ["剛果民主共和國"] = {container = "非洲", divs = {"provinces"}, wp = "剛果民主共和國"}, ["剛果(金)"] = {alias_of = "剛果民主共和國"}, ["吉布提"] = {container = "非洲", wp = "吉布提"}, ["吉布地"] = {alias_of = "吉布提"}, ["埃及"] = {container = "非洲", divs = {"governorates"}, wp = "埃及"}, ["赤道幾內亞"] = {container = "非洲", wp = "赤道幾內亞"}, ["厄立特里亞"] = {container = "非洲", wp = "厄立特里亞"}, ["厄利垂亞"] = {alias_of = "厄立特里亞"}, ["斯威士蘭"] = {container = "非洲", wp = "斯威士蘭"}, ["史瓦帝尼"] = {alias_of = "斯威士蘭"}, ["埃塞俄比亞"] = {container = "非洲", divs = {"regions"}, wp = "埃塞俄比亞"}, ["衣索比亞"] = {alias_of = "埃塞俄比亞"}, ["加蓬"] = {container = "非洲", wp = "加蓬"}, ["加彭"] = {alias_of = "加蓬"}, ["岡比亞"] = {container = "非洲", wp = "岡比亞"}, ["甘比亞"] = {alias_of = "岡比亞"}, ["加納"] = {container = "非洲", wp = "加納"}, ["迦納"] = {alias_of = "加納"}, ["幾內亞"] = {container = "非洲", wp = "幾內亞"}, ["幾內亞比紹"] = {container = "非洲", wp = "幾內亞比紹"}, ["幾內亞比索"] = {alias_of = "幾內亞比紹"}, ["科特迪瓦"] = {container = "非洲", wp = "科特迪瓦"}, ["象牙海岸"] = {alias_of = "科特迪瓦"}, ["肯尼亞"] = {container = "非洲", divs = {"counties"}, wp = "肯尼亞"}, ["肯亞"] = {alias_of = "肯尼亞"}, ["萊索托"] = {container = "非洲", wp = "萊索托"}, ["賴索托"] = {alias_of = "萊索托"}, ["利比里亞"] = {container = "非洲", wp = "利比里亞"}, ["賴比瑞亞"] = {alias_of = "利比里亞"}, ["利比亞"] = {container = "非洲", wp = "利比亞"}, ["馬達加斯加"] = {container = "非洲", wp = "馬達加斯加"}, ["馬拉維"] = {container = "非洲", wp = "馬拉維"}, ["馬拉威"] = {alias_of = "馬拉維"}, ["馬里"] = {container = "非洲", wp = "馬里"}, ["馬利"] = {alias_of = "馬里"}, ["毛里塔尼亞"] = {container = "非洲", wp = "毛里塔尼亞"}, ["茅利塔尼亞"] = {alias_of = "毛里塔尼亞"}, ["毛里求斯"] = {container = "非洲", wp = "毛里求斯"}, ["模里西斯"] = {alias_of = "毛里求斯"}, ["摩洛哥"] = {container = "非洲", wp = "摩洛哥"}, ["莫桑比克"] = {container = "非洲", wp = "莫桑比克"}, ["莫三比克"] = {alias_of = "莫桑比克"}, ["納米比亞"] = {container = "非洲", wp = "納米比亞"}, ["尼日爾"] = {container = "非洲", wp = "尼日爾"}, ["尼日"] = {alias_of = "尼日爾"}, ["尼日利亞"] = {container = "非洲", divs = { {type = "states", cat_as = "states and FCT"}, "local government areas", }, wp = "尼日利亞"}, ["奈及利亞"] = {alias_of = "尼日利亞"}, ["盧旺達"] = {container = "非洲", wp = "盧旺達"}, ["盧安達"] = {alias_of = "盧旺達"}, ["聖多美和普林西比"] = {container = "非洲", wp = "聖多美和普林西比"}, ["塞內加爾"] = {container = "非洲", wp = "塞內加爾"}, ["塞舌爾"] = {container = "非洲", wp = "塞舌爾"}, ["塞席爾"] = {alias_of = "塞舌爾"}, ["塞拉利昂"] = {container = "非洲", wp = "塞拉利昂"}, ["獅子山"] = {alias_of = "塞拉利昂"}, ["索馬里"] = {container = "非洲", wp = "索馬里"}, ["索馬利亞"] = {alias_of = "索馬里"}, ["南非"] = {container = "非洲", divs = {"provinces"}, wp = "南非"}, ["南蘇丹"] = {container = "非洲", wp = "南蘇丹"}, ["蘇丹"] = {container = "非洲", wp = "蘇丹"}, ["坦桑尼亞"] = {container = "非洲", wp = "坦桑尼亞"}, ["坦尚尼亞"] = {alias_of = "坦桑尼亞"}, ["多哥"] = {container = "非洲", wp = "多哥"}, ["突尼斯"] = {container = "非洲", wp = "突尼斯"}, ["突尼西亞"] = {alias_of = "突尼斯"}, ["烏干達"] = {container = "非洲", wp = "烏干達"}, ["贊比亞"] = {container = "非洲", wp = "贊比亞"}, ["尚比亞"] = {alias_of = "贊比亞"}, ["津巴布韋"] = {container = "非洲", wp = "津巴布韋"}, ["辛巴威"] = {alias_of = "津巴布韋"}, -- Asia ["阿富汗"] = {container = "亞洲", wp = "阿富汗"}, ["亞美尼亞"] = {container = {"歐洲", "亞洲"}, wp = "亞美尼亞"}, ["阿塞拜疆"] = {container = {"歐洲", "亞洲"}, wp = "阿塞拜疆"}, ["亞塞拜然"] = {alias_of = "阿塞拜疆"}, ["巴林"] = {container = "亞洲", wp = "巴林"}, ["孟加拉國"] = {container = "亞洲", divs = {"divisions", "districts"}, wp = "孟加拉國"}, ["孟加拉"] = {alias_of = "孟加拉國"}, ["不丹"] = {container = "亞洲", wp = "不丹"}, ["文萊"] = {container = "亞洲", wp = "文萊"}, ["汶萊"] = {alias_of = "文萊"}, ["柬埔寨"] = {container = "亞洲", wp = "柬埔寨"}, ["中國"] = {container = "亞洲", divs = { {type = "provinces", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "autonomous regions", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "direct-administered municipalities", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "special administrative regions", cat_as = "special administrative regions"}, }, wp = "中國"}, ["東帝汶"] = {container = "亞洲", wp = "東帝汶"}, ["帝汶島"] = {alias_of = "東帝汶"}, ["印度"] = {container = "亞洲", divs = { {type = "states", cat_as = "states and union territories"}, {type = "union territories", cat_as = "states and union territories"}, }, wp = "印度"}, ["印度尼西亞"] = {container = "亞洲", divs = {"provinces"}, wp = "印度尼西亞"}, ["印尼"] = {alias_of = "印度尼西亞"}, ["伊朗"] = {container = "亞洲", wp = "伊朗"}, ["伊拉克"] = {container = "亞洲", wp = "伊拉克"}, ["以色列"] = {container = "亞洲", wp = "以色列"}, ["日本"] = {container = "亞洲", divs = {"prefectures"}, wp = "日本"}, ["約旦"] = {container = "亞洲", wp = "約旦"}, ["哈薩克斯坦"] = {container = {"歐洲", "亞洲"}, wp = "哈薩克斯坦"}, ["哈薩克"] = {alias_of = "哈薩克斯坦"}, ["朝鮮"] = {container = "亞洲", wp = "朝鮮民主主義人民共和國"}, ["北韓"] = {alias_of = "朝鮮"}, ["韓國"] = {container = "亞洲", divs = {"provinces", "special cities", "metropolitan cities"}, wp = "韓國"}, ["南韓"] = {alias_of = "韓國"}, ["科威特"] = {container = "亞洲", wp = "科威特"}, ["吉爾吉斯斯坦"] = {container = "亞洲", wp = "吉爾吉斯斯坦"}, ["吉爾吉斯"] = {alias_of = "吉爾吉斯斯坦"}, ["老撾"] = {container = "亞洲", wp = "老撾"}, ["寮國"] = {alias_of = "老撾"}, ["黎巴嫩"] = {container = "亞洲", wp = "黎巴嫩"}, ["馬來西亞"] = {container = "亞洲", divs = {"states"}, wp = "馬來西亞"}, ["馬爾代夫"] = {container = "亞洲", wp = "馬爾代夫"}, ["馬爾地夫"] = {alias_of = "馬爾代夫"}, ["蒙古"] = {container = "亞洲", wp = "蒙古"}, ["緬甸"] = {container = "亞洲", wp = "緬甸"}, ["尼泊爾"] = {container = "亞洲", wp = "尼泊爾"}, ["阿曼"] = {container = "亞洲", wp = "阿曼"}, ["巴基斯坦"] = {container = "亞洲", divs = {"provinces"}, wp = "巴基斯坦"}, ["菲律賓"] = {container = "亞洲", divs = {"regions"}, wp = "菲律賓"}, ["卡塔爾"] = {container = "亞洲", wp = "卡塔爾"}, ["卡達"] = {alias_of = "卡塔爾"}, ["俄羅斯"] = {container = {"歐洲", "亞洲"}, divs = {"federal subjects"}, wp = "俄羅斯"}, ["俄國"] = {alias_of = "俄羅斯"}, ["沙特阿拉伯"] = {container = "亞洲", wp = "沙特阿拉伯"}, ["沙烏地阿拉伯"] = {alias_of = "沙特阿拉伯"}, ["新加坡"] = {container = "亞洲", is_city = true, wp = "新加坡"}, ["斯里蘭卡"] = {container = "亞洲", wp = "斯里蘭卡"}, ["敘利亞"] = {container = "亞洲", wp = "敘利亞"}, ["臺灣"] = {container = "亞洲", divs = { "special municipalities", "counties", }, wp = "臺灣"}, ["台灣"] = {alias_of = "臺灣"}, ["塔吉克斯坦"] = {container = "亞洲", wp = "塔吉克斯坦"}, ["塔吉克"] = {alias_of = "塔吉克斯坦"}, ["泰國"] = {container = "亞洲", divs = {"provinces"}, wp = "泰國"}, ["土耳其"] = {container = {"歐洲", "亞洲"}, wp = "土耳其"}, ["土庫曼斯坦"] = {container = "亞洲", wp = "土庫曼斯坦"}, ["土庫曼"] = {alias_of = "土庫曼斯坦"}, ["阿拉伯聯合酋長國"] = {container = "亞洲", wp = "阿拉伯聯合酋長國"}, ["阿拉伯聯合大公國"] = {alias_of = "阿拉伯聯合酋長國"}, ["阿聯酋"] = {alias_of = "阿拉伯聯合酋長國"}, ["烏茲別克斯坦"] = {container = "亞洲", wp = "烏茲別克斯坦"}, ["烏茲別克"] = {alias_of = "烏茲別克斯坦"}, ["越南"] = {container = "亞洲", divs = {"provinces", "municipalities"}, wp = "越南"}, ["也門"] = {container = "亞洲", wp = "也門"}, ["葉門"] = {alias_of = "也門"}, -- Europe ["阿爾巴尼亞"] = {container = "歐洲", wp = "阿爾巴尼亞"}, ["安道爾"] = {container = "歐洲", wp = "安道爾"}, ["奧地利"] = {container = "歐洲", divs = {"states"}, wp = "奧地利"}, ["白俄羅斯"] = {container = "歐洲", divs = {"regions"}, wp = "白俄羅斯"}, ["比利時"] = {container = "歐洲", divs = {"regions", "provinces"}, wp = "比利時"}, ["波斯尼亞和黑塞哥維那"] = {container = "歐洲", wp = "波斯尼亞和黑塞哥維那"}, ["波士尼亞與赫塞哥維納"] = {alias_of = "波斯尼亞和黑塞哥維那"}, ["保加利亞"] = {container = "歐洲", wp = "保加利亞"}, ["克羅地亞"] = {container = "歐洲", wp = "克羅地亞"}, ["克羅埃西亞"] = {alias_of = "克羅地亞"}, ["塞浦路斯"] = {container = "亞洲", addl_parents = {"歐洲"}, wp = "塞浦路斯"}, ["賽普勒斯"] = {alias_of = "塞浦路斯"}, ["捷克"] = {container = "歐洲", wp = "捷克"}, ["丹麥"] = {container = "歐洲", wp = "丹麥"}, ["愛沙尼亞"] = {container = "歐洲", wp = "愛沙尼亞"}, ["芬蘭"] = {container = "歐洲", divs = {"regions"}, wp = "芬蘭"}, ["法國"] = {container = "歐洲", divs = { {type = "regions", cat_as = "metropolitan regions"}, "departments", "communes", }, wp = "法國"}, ["格魯吉亞"] = {container = {"歐洲", "亞洲"}, wp = "格魯吉亞"}, ["喬治亞"] = {alias_of = "格魯吉亞"}, ["德國"] = {container = "歐洲", divs = {"states"}, wp = "德國"}, ["希臘"] = {container = "歐洲", divs = {"regions"}, wp = "希臘"}, ["匈牙利"] = {container = "歐洲", wp = "匈牙利"}, ["冰島"] = {container = "歐洲", wp = "冰島"}, ["愛爾蘭"] = {container = "歐洲", divs = {"provinces", "counties"}, wp = "愛爾蘭"}, ["意大利"] = {container = "歐洲", divs = {"regions"}, wp = "意大利"}, ["義大利"] = {alias_of = "意大利"}, ["科索沃"] = {container = "歐洲", wp = "科索沃"}, ["拉脫維亞"] = {container = "歐洲", wp = "拉脫維亞"}, ["拉托維亞"] = {alias_of = "拉脫維亞"}, ["列支敦士登"] = {container = "歐洲", wp = "列支敦士登"}, ["列支敦斯登"] = {alias_of = "列支敦士登"}, ["立陶宛"] = {container = "歐洲", wp = "立陶宛"}, ["盧森堡"] = {container = "歐洲", wp = "盧森堡"}, ["北馬其頓"] = {container = "歐洲", wp = "北馬其頓"}, ["馬耳他"] = {container = "歐洲", wp = "馬耳他"}, ["馬爾他"] = {alias_of = "馬耳他"}, ["摩爾多瓦"] = {container = "歐洲", wp = "摩爾多瓦"}, ["摩納哥"] = {container = "歐洲", is_city = true, wp = "摩納哥"}, ["黑山"] = {container = "歐洲", wp = "黑山"}, ["蒙特內哥羅"] = {alias_of = "黑山"}, ["荷蘭"] = {container = "歐洲", divs = {"provinces"}, wp = "荷蘭"}, ["尼德蘭"] = {alias_of = "荷蘭"}, ["挪威"] = {container = "歐洲", wp = "挪威"}, ["波蘭"] = {container = "歐洲", divs = {"voivodeships"}, wp = "波蘭"}, ["葡萄牙"] = {container = "歐洲", divs = {"districts"}, wp = "葡萄牙"}, ["羅馬尼亞"] = {container = "歐洲", wp = "羅馬尼亞"}, ["聖馬力諾"] = {container = "歐洲", wp = "聖馬力諾"}, ["聖馬利諾"] = {alias_of = "聖馬力諾"}, ["塞爾維亞"] = {container = "歐洲", wp = "塞爾維亞"}, ["斯洛伐克"] = {container = "歐洲", wp = "斯洛伐克"}, ["斯洛文尼亞"] = {container = "歐洲", wp = "斯洛文尼亞"}, ["斯洛維尼亞"] = {alias_of = "斯洛文尼亞"}, ["西班牙"] = {container = "歐洲", divs = {"autonomous communities"}, wp = "西班牙"}, ["瑞典"] = {container = "歐洲", wp = "瑞典"}, ["瑞士"] = {container = "歐洲", divs = {"cantons"}, wp = "瑞士"}, ["烏克蘭"] = {container = "歐洲", divs = {"oblasts"}, wp = "烏克蘭"}, ["英國"] = {container = "歐洲", divs = { {type = "constituent countries", cat_as = "constituent countries"}, }, wp = "英國"}, -- North America ["加拿大"] = {container = "北美洲", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, }, wp = "加拿大"}, ["墨西哥"] = {container = "北美洲", divs = {"states"}, wp = "墨西哥"}, ["美國"] = {container = "北美洲", divs = {"states"}, wp = "美國"}, -- Central America ["伯利茲"] = {container = "中美洲", wp = "伯利茲"}, ["貝里斯"] = {alias_of = "伯利茲"}, ["哥斯達黎加"] = {container = "中美洲", wp = "哥斯達黎加"}, ["哥斯大黎加"] = {alias_of = "哥斯達黎加"}, ["薩爾瓦多"] = {container = "中美洲", wp = "薩爾瓦多"}, ["危地馬拉"] = {container = "中美洲", wp = "危地馬拉"}, ["瓜地馬拉"] = {alias_of = "危地馬拉"}, ["洪都拉斯"] = {container = "中美洲", wp = "洪都拉斯"}, ["宏都拉斯"] = {alias_of = "洪都拉斯"}, ["尼加拉瓜"] = {container = "中美洲", wp = "尼加拉瓜"}, ["巴拿馬"] = {container = "中美洲", wp = "巴拿馬"}, -- Caribbean ["安提瓜和巴布達"] = {container = "加勒比地區", wp = "安提瓜和巴布達"}, ["安地卡及巴布達"] = {alias_of = "安提瓜和巴布達"}, ["巴哈馬"] = {container = "加勒比地區", wp = "巴哈馬"}, ["巴巴多斯"] = {container = "加勒比地區", wp = "巴巴多斯"}, ["巴貝多"] = {alias_of = "巴巴多斯"}, ["古巴"] = {container = "加勒比地區", wp = "古巴"}, ["多米尼克"] = {container = "加勒比地區", wp = "多米尼克"}, ["多米尼加共和國"] = {container = "加勒比地區", wp = "多米尼加"}, ["多明尼加共和國"] = {alias_of = "多米尼加共和國"}, ["格林納達"] = {container = "加勒比地區", wp = "格林納達"}, ["格瑞那達"] = {alias_of = "格林納達"}, ["海地"] = {container = "加勒比地區", wp = "海地"}, ["牙買加"] = {container = "加勒比地區", wp = "牙買加"}, ["聖基茨和尼維斯"] = {container = "加勒比地區", wp = "聖基茨和尼維斯"}, ["聖克里斯多福及尼維斯"] = {alias_of = "聖基茨和尼維斯"}, ["聖盧西亞"] = {container = "加勒比地區", wp = "聖盧西亞"}, ["聖露西亞"] = {alias_of = "聖盧西亞"}, ["聖文森特和格林納丁斯"] = {container = "加勒比地區", wp = "聖文森特和格林納丁斯"}, ["聖文森及格瑞那丁"] = {alias_of = "聖文森特和格林納丁斯"}, ["特立尼達和多巴哥"] = {container = "加勒比地區", wp = "特立尼達和多巴哥"}, ["千里達及托巴哥"] = {alias_of = "特立尼達和多巴哥"}, -- South America ["阿根廷"] = {container = "南美洲", divs = {"provinces"}, wp = "阿根廷"}, ["玻利維亞"] = {container = "南美洲", wp = "玻利維亞"}, ["巴西"] = {container = "南美洲", divs = {"states"}, wp = "巴西"}, ["智利"] = {container = "南美洲", wp = "智利"}, ["哥倫比亞"] = {container = "南美洲", wp = "哥倫比亞"}, ["厄瓜多爾"] = {container = "南美洲", wp = "厄瓜多爾"}, ["厄瓜多"] = {alias_of = "厄瓜多爾"}, ["圭亞那"] = {container = "南美洲", wp = "圭亞那"}, ["蓋亞那"] = {alias_of = "圭亞那"}, ["巴拉圭"] = {container = "南美洲", wp = "巴拉圭"}, ["秘魯"] = {container = "南美洲", wp = "秘魯"}, ["蘇里南"] = {container = "南美洲", wp = "蘇里南"}, ["蘇利南"] = {alias_of = "蘇里南"}, ["烏拉圭"] = {container = "南美洲", wp = "烏拉圭"}, ["委內瑞拉"] = {container = "南美洲", wp = "委內瑞拉"}, -- Oceania ["澳大利亞"] = {container = "大洋洲", divs = { {type = "states", cat_as = "states and territories"}, {type = "territories", cat_as = "states and territories"}, }, wp = "澳大利亞"}, ["澳洲"] = {alias_of = "澳大利亞"}, ["斐濟"] = {container = "大洋洲", wp = "斐濟"}, ["基里巴斯"] = {container = "大洋洲", wp = "基里巴斯"}, ["吉里巴斯"] = {alias_of = "基里巴斯"}, ["馬紹爾群島"] = {container = "大洋洲", wp = "馬紹爾群島"}, ["密克羅尼西亞聯邦"] = {container = "大洋洲", wp = "密克羅尼西亞聯邦"}, ["瑙魯"] = {container = "大洋洲", wp = "瑙魯"}, ["諾魯"] = {alias_of = "瑙魯"}, ["新西蘭"] = {container = "大洋洲", wp = "新西蘭"}, ["紐西蘭"] = {alias_of = "新西蘭"}, ["帕勞"] = {container = "大洋洲", wp = "帕勞"}, ["帛琉"] = {alias_of = "帕勞"}, ["巴布亞新幾內亞"] = {container = "大洋洲", wp = "巴布亞新幾內亞"}, ["巴布亞紐幾內亞"] = {alias_of = "巴布亞新幾內亞"}, ["薩摩亞"] = {container = "大洋洲", wp = "薩摩亞"}, ["所羅門群島"] = {container = "大洋洲", wp = "所羅門群島"}, ["湯加"] = {container = "大洋洲", wp = "湯加"}, ["東加"] = {alias_of = "湯加"}, ["圖瓦盧"] = {container = "大洋洲", wp = "圖瓦盧"}, ["吐瓦魯"] = {alias_of = "圖瓦盧"}, ["瓦努阿圖"] = {container = "大洋洲", wp = "瓦努阿圖"}, ["萬那杜"] = {alias_of = "瓦努阿圖"}, } export.countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"+++", "countries"}, default_placetype = "country", default_no_container_cat = true, default_no_container_parent = true, default_no_auto_augment_container = true, placename_to_key = false, data = export.countries, } export.country_like_entities = { -- Special administrative regions of China ["香港"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, divs = {"districts"}, wp = "Hong Kong", }, ["澳門"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, wp = "Macau", }, -- Western Sahara ["西撒哈拉"] = { placetype = {"territory", "country"}, container = "非洲", wp = "Western Sahara", }, -- Kosovo (disputed) ["科索沃(部分承認)"] = {alias_of = "科索沃"}, -- Palestinian territories ["巴勒斯坦"] = { placetype = {"country", "territory"}, container = "亞洲", wp = "State of Palestine", }, -- Key overseas territories ["波多黎各"] = { placetype = {"commonwealth", "territory"}, container = "美國", addl_parents = {"加勒比地區"}, wp = "Puerto Rico", }, ["關島"] = { placetype = {"territory"}, container = "美國", addl_parents = {"密克羅尼西亞"}, wp = "Guam", }, ["新喀里多尼亞"] = { placetype = {"territory"}, container = "法國", addl_parents = {"大洋洲"}, wp = "New Caledonia", }, ["法屬圭亞那"] = { placetype = {"territory"}, container = "法國", addl_parents = {"南美洲"}, wp = "French Guiana", }, ["留尼旺"] = { placetype = {"territory"}, container = "法國", addl_parents = {"非洲"}, wp = "Réunion", }, ["馬丁尼克"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Martinique", }, ["瓜德羅普"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Guadeloupe", }, ["格陵蘭"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"北美洲"}, wp = "Greenland", }, ["法羅群島"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"歐洲"}, wp = "Faroe Islands", }, } export.country_like_entities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "country"), default_placetype = "territory", placename_to_key = false, data = export.country_like_entities, } export.former_countries = { ["蘇聯"] = { placetype = {"country"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Soviet Union", }, ["南斯拉夫"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Yugoslavia", }, ["捷克斯洛伐克"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Czechoslovakia", }, ["東德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "East Germany", }, ["西德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "West Germany", }, ["奧匈帝國"] = { placetype = {"empire"}, container = "歐洲", is_former_place = true, wp = "Austria-Hungary", }, ["鄂圖曼帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Ottoman Empire", }, ["奧斯曼帝國"] = {alias_of = "鄂圖曼帝國"}, ["羅馬帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲", "非洲"}, is_former_place = true, wp = "Roman Empire", }, ["大英帝國"] = { placetype = {"empire"}, is_former_place = true, wp = "British Empire", }, ["普魯士"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Prussia", }, } export.former_countries_group = { canonicalize_key_container = canonicalize_continent_container, default_placetype = "country", default_is_former_place = true, placename_to_key = false, data = export.former_countries, } ----------------------------------------------------------------------------------- -- Subpolity tables -- ----------------------------------------------------------------------------------- export.australia_states_and_territories = { ["新南威爾斯"] = {wp = "New South Wales"}, ["維多利亞州"] = {wp = "Victoria (Australia)"}, ["昆士蘭"] = {wp = "Queensland"}, ["南澳大利亞"] = {wp = "South Australia"}, ["西澳大利亞"] = {wp = "Western Australia"}, ["塔斯馬尼亞"] = {wp = "Tasmania"}, ["澳大利亞首都領地"] = {placetype = "territory", wp = "Australian Capital Territory"}, ["北領地"] = {placetype = "territory", wp = "Northern Territory"}, } -- states and territories of Australia export.australia_group = { placename_to_key = false, default_container = "澳大利亞", default_placetype = "state", data = export.australia_states_and_territories, } export.austria_states = { ["維也納州"] = {wp = "Vienna (state)"}, ["下奧地利州"] = {wp = "Lower Austria"}, ["上奧地利州"] = {wp = "Upper Austria"}, ["施泰爾馬克州"] = {wp = "Styria"}, ["蒂羅爾州"] = {wp = "Tyrol (state)"}, ["克恩頓州"] = {wp = "Carinthia"}, ["薩爾茨堡州"] = {wp = "Salzburg (state)"}, ["福拉爾貝格州"] = {wp = "Vorarlberg"}, ["布根蘭州"] = {wp = "Burgenland"}, } -- states of Austria export.austria_group = { placename_to_key = false, default_container = "奧地利", default_placetype = "state", data = export.austria_states, } export.bangladesh_divisions = { ["巴里薩爾專區"] = {wp = "Barisal Division"}, ["吉大港專區"] = {wp = "Chittagong Division"}, ["達卡專區"] = {wp = "Dhaka Division"}, ["庫爾納專區"] = {wp = "Khulna Division"}, ["邁門辛專區"] = {wp = "Mymensingh Division"}, ["拉吉沙希專區"] = {wp = "Rajshahi Division"}, ["朗普爾專區"] = {wp = "Rangpur Division"}, ["錫爾赫特專區"] = {wp = "Sylhet Division"}, } -- divisions of Bangladesh export.bangladesh_group = { placename_to_key = false, default_container = "孟加拉國", default_placetype = "division", data = export.bangladesh_divisions, } export.brazil_states = { ["里約熱內盧州"] = {wp = "Rio de Janeiro (state)"}, ["里約熱內盧"] = {alias_of = "里約熱內盧州"}, ["聖保羅州"] = {wp = "São Paulo (state)"}, ["米納斯吉拉斯"] = {wp = "Minas Gerais"}, ["巴伊亞"] = {wp = "Bahia"}, ["亞馬遜州"] = {wp = "Amazonas (Brazilian state)"}, ["帕拉州"] = {wp = "Pará"}, ["伯南布哥州"] = {wp = "Pernambuco"}, ["南里奧格蘭德州"] = {wp = "Rio Grande do Sul"}, ["巴西聯邦區"] = {wp = "Federal District (Brazil)"}, ["塞阿拉州"] = {wp = "Ceará"}, ["巴拉那州"] = {wp = "Paraná (state)"}, ["戈亞斯州"] = {wp = "Goiás"}, ["聖埃斯皮里圖州"] = {wp = "Espírito Santo"}, ["馬拉尼昂州"] = {wp = "Maranhão"}, ["北里奧格蘭德州"] = {wp = "Rio Grande do Norte"}, ["聖卡塔琳娜州"] = {wp = "Santa Catarina (state)"}, ["阿拉戈亞斯州"] = {wp = "Alagoas"}, ["帕拉伊巴州"] = {wp = "Paraíba"}, ["皮奧伊州"] = {wp = "Piauí"}, ["阿克里州"] = {wp = "Acre (state)"}, ["阿馬帕州"] = {wp = "Amapá"}, ["馬托格羅索州"] = {wp = "Mato Grosso"}, ["南馬托格羅索州"] = {wp = "Mato Grosso do Sul"}, ["朗多尼亞州"] = {wp = "Rondônia"}, ["羅賴馬州"] = {wp = "Roraima"}, ["塞爾希培州"] = {wp = "Sergipe"}, ["托坎廷斯州"] = {wp = "Tocantins"}, } -- states of Brazil export.brazil_group = { placename_to_key = false, default_container = "巴西", default_placetype = "state", data = export.brazil_states, } -- provinces (a.k.a. oblasts) of Bulgaria export.bulgaria_provinces = { ["布拉戈耶夫格勒省"] = {wp = "Blagoevgrad Province"}, ["布爾加斯省"] = {wp = "Burgas Province"}, ["多布里奇省"] = {wp = "Dobrich Province"}, ["加布羅沃省"] = {wp = "Gabrovo Province"}, ["哈斯科沃省"] = {wp = "Haskovo Province"}, ["卡爾扎利省"] = {wp = "Kardzhali Province"}, ["屈斯滕迪爾省"] = {wp = "Kyustendil Province"}, ["洛維奇省"] = {wp = "Lovech Province"}, ["蒙塔納省"] = {wp = "Montana Province"}, ["帕扎爾吉克省"] = {wp = "Pazardzhik Province"}, ["佩爾尼克省"] = {wp = "Pernik Province"}, ["普萊文省"] = {wp = "Pleven Province"}, ["普羅夫迪夫省"] = {wp = "Plovdiv Province"}, ["拉茲格勒省"] = {wp = "Razgrad Province"}, ["魯塞省"] = {wp = "Ruse Province"}, ["舒門省"] = {wp = "Shumen Province"}, ["錫利斯特拉省"] = {wp = "Silistra Province"}, ["斯利文省"] = {wp = "Sliven Province"}, ["斯莫梁省"] = {wp = "Smolyan Province"}, ["索非亞市省"] = {wp = "Sofia City Province"}, ["索非亞省"] = {wp = "Sofia Province"}, ["斯塔拉扎戈拉省"] = {wp = "Stara Zagora Province"}, ["特爾戈維什泰省"] = {wp = "Targovishte Province"}, ["瓦爾納省"] = {wp = "Varna Province"}, ["大特爾諾沃省"] = {wp = "Veliko Tarnovo Province"}, ["維丁省"] = {wp = "Vidin Province"}, ["弗拉察省"] = {wp = "Vratsa Province"}, ["揚博爾省"] = {wp = "Yambol Province"}, } export.bulgaria_group = { placename_to_key = false, default_container = "保加利亞", divs = {"regions", "planning regions", "provinces", "municipalities", "settlements"}, default_placetype = "province", data = export.bulgaria_provinces, } export.canada_provinces_and_territories = { ["亞伯達"] = {wp = "Alberta"}, ["艾伯塔"] = {alias_of = "亞伯達"}, ["英屬哥倫比亞"] = {wp = "British Columbia"}, ["卑詩省"] = {alias_of = "英屬哥倫比亞"}, ["馬尼托巴"] = {wp = "Manitoba"}, ["新不倫瑞克"] = {wp = "New Brunswick"}, ["紐芬蘭與拉布拉多"] = {wp = "Newfoundland and Labrador"}, ["西北地區"] = {placetype = "territory", wp = "Northwest Territories"}, ["新斯科舍"] = {wp = "Nova Scotia"}, ["努納武特"] = {placetype = "territory", wp = "Nunavut"}, ["安大略"] = {divs = {"counties", "regional municipalities"}, wp = "Ontario"}, ["愛德華王子島"] = {wp = "Prince Edward Island"}, ["魁北克"] = {wp = "Quebec"}, ["薩斯喀徹溫"] = {wp = "Saskatchewan"}, ["育空"] = {placetype = "territory", wp = "Yukon"}, } export.canada_group = { placename_to_key = false, default_container = "加拿大", default_placetype = "province", data = export.canada_provinces_and_territories, } export.china_provinces_and_autonomous_regions = { -- Provinces ["安徽"] = {wp = "安徽省"}, ["福建"] = {wp = "福建省"}, ["甘肅"] = {wp = "甘肅省"}, ["廣東"] = {wp = "廣東省"}, ["貴州"] = {wp = "貴州省"}, ["海南"] = {wp = "海南省"}, ["河北"] = {wp = "河北省"}, ["黑龍江"] = {wp = "黑龍江省"}, ["河南"] = {wp = "河南省"}, ["湖北"] = {wp = "湖北省"}, ["湖南"] = {wp = "湖南省"}, ["江蘇"] = {wp = "江蘇省"}, ["江西"] = {wp = "江西省"}, ["吉林"] = {wp = "吉林省"}, ["遼寧"] = {wp = "遼寧省"}, ["青海"] = {wp = "青海省"}, ["陝西"] = {wp = "陝西省"}, ["山東"] = {wp = "山東省"}, ["山西"] = {wp = "山西省"}, ["四川"] = {wp = "四川省"}, ["雲南"] = {wp = "雲南省"}, ["浙江"] = {wp = "浙江省"}, -- Autonomous regions ["廣西"] = {placetype = "autonomous region", wp = "廣西壯族自治區"}, ["廣西壯族自治區"] = {alias_of = "廣西"}, ["內蒙古"] = {placetype = "autonomous region", wp = "內蒙古自治區"}, ["內蒙古自治區"] = {alias_of = "內蒙"}, ["寧夏"] = {placetype = "autonomous region", wp = "寧夏回族自治區"}, ["寧夏回族自治區"] = {alias_of = "寧夏"}, ["西藏"] = {placetype = "autonomous region", wp = "西藏自治區"}, ["西藏自治區"] = {alias_of = "西藏"}, ["新疆"] = {placetype = "autonomous region", wp = "新疆維吾爾自治區"}, ["新疆維吾爾自治區"] = {alias_of = "新疆"}, -- Direct-administered municipalities (treated as province-level for holonym purposes) ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "北京市"}, ["北京市"] = {alias_of = "北京"}, ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "上海市"}, ["上海市"] = {alias_of = "上海"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "天津市"}, ["天津市"] = {alias_of = "天津"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "重慶市"}, ["重慶市"] = {alias_of = "重慶"}, } export.china_group = { placename_to_key = false, default_container = "中國", default_placetype = "province", default_divs = { "prefecture-level cities", "districts", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_provinces_and_autonomous_regions, } export.china_prefecture_level_cities = { -- Guangdong ["廣州"] = {container = "廣東", wp = "Guangzhou"}, ["東莞"] = {container = "廣東", wp = "Dongguan"}, ["佛山"] = {container = "廣東", wp = "Foshan"}, ["惠州"] = {container = "廣東", wp = "Huizhou"}, ["江門"] = {container = "廣東", wp = "Jiangmen"}, ["深圳"] = {container = "廣東", wp = "Shenzhen"}, ["中山"] = {container = "廣東", wp = "Zhongshan"}, ["汕頭"] = {container = "廣東", wp = "Shantou"}, ["潮州"] = {container = "廣東", wp = "Chaozhou"}, ["揭陽"] = {container = "廣東", wp = "Jieyang"}, ["珠海"] = {container = "廣東", wp = "Zhuhai"}, ["湛江"] = {container = "廣東", wp = "Zhanjiang"}, ["茂名"] = {container = "廣東", wp = "Maoming"}, ["清遠"] = {container = "廣東", wp = "Qingyuan"}, ["肇慶"] = {container = "廣東", wp = "Zhaoqing"}, -- Direct-administered municipalities (also in china_provinces; duplicated here for division categorisation) ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Shanghai"}, ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Beijing"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Chongqing"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Tianjin"}, -- Jiangsu ["常熟"] = {container = "江蘇", wp = "Changshu"}, ["常州"] = {container = "江蘇", wp = "Changzhou"}, ["蘇州"] = {container = "江蘇", wp = "Suzhou"}, ["無錫"] = {container = "江蘇", wp = "Wuxi"}, ["南京"] = {container = "江蘇", wp = "Nanjing"}, ["南通"] = {container = "江蘇", wp = "Nantong"}, ["江陰"] = {container = "江蘇", wp = "Jiangyin"}, ["張家港"] = {container = "江蘇", wp = "Zhangjiagang"}, ["徐州"] = {container = "江蘇", wp = "Xuzhou"}, ["揚州"] = {container = "江蘇", wp = "Yangzhou"}, ["鹽城"] = {container = "江蘇", wp = "Yancheng"}, ["淮安"] = {container = "江蘇", wp = "Huai'an"}, ["連雲港"] = {container = "江蘇", wp = "Lianyungang"}, ["宿遷"] = {container = "江蘇", wp = "Suqian"}, ["鎮江"] = {container = "江蘇", wp = "Zhenjiang"}, ["崑山"] = {container = "江蘇", wp = "Kunshan"}, ["泰州"] = {container = "江蘇", wp = "Taizhou, Jiangsu"}, -- distinct from 台州 (Zhejiang) -- Zhejiang ["杭州"] = {container = "浙江", wp = "Hangzhou"}, ["紹興"] = {container = "浙江", wp = "Shaoxing"}, ["寧波"] = {container = "浙江", wp = "Ningbo"}, ["慈溪"] = {container = "浙江", wp = "Cixi"}, ["余姚"] = {container = "浙江", wp = "Yuyao"}, ["溫州"] = {container = "浙江", wp = "Wenzhou"}, ["瑞安"] = {placetype = "county-level city", container = {key = "溫州", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Rui'an"}, ["台州"] = {container = "浙江", wp = "Taizhou, Zhejiang"}, ["義烏"] = {container = "浙江", wp = "Yiwu"}, ["嘉興"] = {container = "浙江", wp = "Jiaxing"}, ["金華"] = {container = "浙江", wp = "Jinhua"}, ["湖州"] = {container = "浙江", wp = "Huzhou"}, ["永康"] = {placetype = "county-level city", container = {key = "金華", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Yongkang, Zhejiang"}, -- Fujian ["廈門"] = {container = "福建", wp = "Xiamen"}, ["晉江"] = {container = "福建", wp = "Jinjiang"}, ["泉州"] = {container = "福建", wp = "Quanzhou"}, ["莆田"] = {container = "福建", wp = "Putian"}, ["福州"] = {container = "福建", wp = "Fuzhou"}, -- Shandong ["青島"] = {container = "山東", wp = "Qingdao"}, ["臨沂"] = {container = "山東", wp = "Linyi"}, ["淄博"] = {container = "山東", wp = "Zibo"}, ["濟南"] = {container = "山東", wp = "Jinan"}, ["濰坊"] = {container = "山東", wp = "Weifang"}, ["煙台"] = {container = "山東", wp = "Yantai"}, ["濟寧"] = {container = "山東", wp = "Jining"}, ["泰安"] = {container = "山東", wp = "Tai'an"}, ["威海"] = {container = "山東", wp = "Weihai"}, ["菏澤"] = {container = "山東", wp = "Heze"}, ["德州"] = {container = "山東", wp = "Dezhou"}, ["日照"] = {container = "山東", wp = "Rizhao"}, ["聊城"] = {container = "山東", wp = "Liaocheng"}, ["棗莊"] = {container = "山東", wp = "Zaozhuang"}, ["滕州"] = {placetype = "county-level city", container = {key = "棗莊", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Tengzhou"}, ["東營"] = {container = "山東", wp = "Dongying"}, -- Henan ["鄭州"] = {container = "河南", wp = "Zhengzhou"}, ["洛陽"] = {container = "河南", wp = "Luoyang"}, ["新鄉"] = {container = "河南", wp = "Xinxiang"}, ["信陽"] = {container = "河南", wp = "Xinyang"}, ["安陽"] = {container = "河南", wp = "Anyang"}, ["開封"] = {container = "河南", wp = "Kaifeng"}, ["許昌"] = {container = "河南", wp = "Xuchang"}, ["濮陽"] = {container = "河南", wp = "Puyang"}, ["商丘"] = {container = "河南", wp = "Shangqiu"}, ["南陽"] = {container = "河南", wp = "Nanyang, Henan"}, ["焦作"] = {container = "河南", wp = "Jiaozuo"}, ["平頂山"] = {container = "河南", wp = "Pingdingshan"}, ["周口"] = {container = "河南", wp = "Zhoukou"}, ["駐馬店"] = {container = "河南", wp = "Zhumadian"}, -- Hubei ["武漢"] = {container = "湖北", wp = "Wuhan"}, ["襄陽"] = {container = "湖北", wp = "Xiangyang"}, ["宜昌"] = {container = "湖北", wp = "Yichang"}, ["鄂州"] = {container = "湖北", wp = "Ezhou"}, ["十堰"] = {container = "湖北", wp = "Shiyan"}, -- Hunan ["長沙"] = {container = "湖南", wp = "Changsha"}, ["株洲"] = {container = "湖南", wp = "Zhuzhou"}, ["衡陽"] = {container = "湖南", wp = "Hengyang"}, ["邵陽"] = {container = "湖南", wp = "Shaoyang"}, ["岳陽"] = {container = "湖南", wp = "Yueyang"}, ["常德"] = {container = "湖南", wp = "Changde"}, ["瀏陽"] = {placetype = "county-level city", container = {key = "長沙", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Liuyang"}, -- Sichuan ["成都"] = {container = "四川", wp = "Chengdu"}, ["綿陽"] = {container = "四川", wp = "Mianyang"}, ["南充"] = {container = "四川", wp = "Nanchong"}, ["達州"] = {container = "四川", wp = "Dazhou"}, ["瀘州"] = {container = "四川", wp = "Luzhou"}, ["宜賓"] = {container = "四川", wp = "Yibin"}, -- Yunnan ["昆明"] = {container = "雲南", wp = "Kunming"}, ["曲靖"] = {container = "雲南", wp = "Qujing"}, -- Guizhou ["貴陽"] = {container = "貴州", wp = "Guiyang"}, ["遵義"] = {container = "貴州", wp = "Zunyi"}, ["六盤水"] = {container = "貴州", wp = "Liupanshui"}, ["畢節"] = {container = "貴州", wp = "Bijie"}, -- Shaanxi ["西安"] = {container = "陝西", wp = "Xi'an"}, ["咸陽"] = {container = "陝西", wp = "Xianyang"}, ["寶雞"] = {container = "陝西", wp = "Baoji"}, -- Heilongjiang ["哈爾濱"] = {container = "黑龍江", wp = "Harbin"}, ["大慶"] = {container = "黑龍江", wp = "Daqing"}, ["齊齊哈爾"] = {container = "黑龍江", wp = "Qiqihar"}, -- Liaoning ["瀋陽"] = {container = "遼寧", wp = "Shenyang"}, ["撫順"] = {container = "遼寧", wp = "Fushun"}, ["大連"] = {container = "遼寧", wp = "Dalian"}, ["鞍山"] = {container = "遼寧", wp = "Anshan"}, ["錦州"] = {container = "遼寧", wp = "Jinzhou"}, ["葫蘆島"] = {container = "遼寧", wp = "Huludao"}, ["盤錦"] = {container = "遼寧", wp = "Panjin"}, -- Jilin ["長春"] = {container = "吉林", wp = "Changchun"}, ["吉林市"] = {container = "吉林", wp = "Jilin City"}, -- distinct from 吉林 (province) -- Anhui ["合肥"] = {container = "安徽", wp = "Hefei"}, ["蚌埠"] = {container = "安徽", wp = "Bengbu"}, ["淮南"] = {container = "安徽", wp = "Huainan"}, ["蕪湖"] = {container = "安徽", wp = "Wuhu"}, ["淮北"] = {container = "安徽", wp = "Huaibei"}, ["滁州"] = {container = "安徽", wp = "Chuzhou"}, ["六安"] = {container = "安徽", wp = "Lu'an"}, ["阜陽"] = {container = "安徽", wp = "Fuyang, Anhui"}, ["宿州"] = {container = "安徽", wp = "Suzhou, Anhui"}, -- distinct from 蘇州 (Jiangsu) -- Hebei ["石家莊"] = {container = "河北", wp = "Shijiazhuang"}, ["邯鄲"] = {container = "河北", wp = "Handan"}, ["唐山"] = {container = "河北", wp = "Tangshan"}, ["秦皇島"] = {container = "河北", wp = "Qinhuangdao"}, ["邢台"] = {container = "河北", wp = "Xingtai"}, ["保定"] = {container = "河北", wp = "Baoding"}, ["張家口"] = {container = "河北", wp = "Zhangjiakou"}, ["衡水"] = {container = "河北", wp = "Hengshui"}, ["滄州"] = {container = "河北", wp = "Cangzhou"}, -- Shanxi ["太原"] = {container = "山西", wp = "Taiyuan"}, ["大同"] = {container = "山西", wp = "Datong"}, ["長治"] = {container = "山西", wp = "Changzhi"}, ["臨汾"] = {container = "山西", wp = "Linfen"}, -- Jiangxi ["南昌"] = {container = "江西", wp = "Nanchang"}, ["贛州"] = {container = "江西", wp = "Ganzhou"}, ["上饒"] = {container = "江西", wp = "Shangrao"}, ["九江"] = {container = "江西", wp = "Jiujiang"}, -- Guangxi (autonomous region) ["南寧"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Nanning"}, ["柳州"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Liuzhou"}, ["桂林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guilin"}, ["玉林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Yulin, Guangxi"}, ["北海"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Beihai"}, ["貴港"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guigang"}, -- Inner Mongolia (autonomous region) ["呼和浩特"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Hohhot"}, ["包頭"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Baotou"}, ["赤峰"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Chifeng"}, -- Xinjiang (autonomous region) ["烏魯木齊"] = {container = {key = "新疆", placetype = "autonomous region"}, wp = "Ürümqi"}, -- Ningxia (autonomous region) ["銀川"] = {container = {key = "寧夏", placetype = "autonomous region"}, wp = "Yinchuan"}, -- Hainan ["海口"] = {container = "海南", wp = "Haikou"}, -- Qinghai ["西寧"] = {container = "青海", wp = "Xining"}, -- Gansu ["蘭州"] = {container = "甘肅", wp = "Lanzhou"}, -- Chongqing subdivision (district 142 miles from Chongqing proper) ["萬州"] = {placetype = "district", container = {key = "重慶", placetype = "direct-administered municipality"}, divs = {"subdistricts", "townships"}, wp = "Wanzhou"}, -- County within Suqian prefecture-level city ["沭陽"] = {placetype = "county", container = {key = "宿遷", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Shuyang County"}, } export.china_prefecture_level_cities_group = { placename_to_key = false, default_placetype = {"prefecture-level city", "city"}, default_divs = { "districts", "subdistricts", "townships", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_prefecture_level_cities, } export.finland_regions = { ["拉普蘭省"] = {wp = "Lapland (Finland)"}, ["北奧斯特博滕省"] = {wp = "North Ostrobothnia"}, ["卡亞尼省"] = {wp = "Kainuu"}, ["北卡累利亞省"] = {wp = "North Karelia"}, ["北薩沃省"] = {wp = "Northern Savonia"}, ["南薩沃省"] = {wp = "Southern Savonia"}, ["南卡累利亞省"] = {wp = "South Karelia"}, ["中芬蘭省"] = {wp = "Central Finland"}, ["南奧斯特博滕省"] = {wp = "South Ostrobothnia"}, ["奧斯特博滕省"] = {wp = "Ostrobothnia (region)"}, ["中奧斯特博滕省"] = {wp = "Central Ostrobothnia"}, ["皮爾卡馬省"] = {wp = "Pirkanmaa"}, ["薩塔昆塔省"] = {wp = "Satakunta"}, ["派亞特哈米省"] = {wp = "Päijät-Häme"}, ["坎塔哈米省"] = {wp = "Tavastia Proper"}, ["屈米河谷省"] = {wp = "Kymenlaakso"}, ["烏西馬省"] = {wp = "Uusimaa"}, ["西南芬蘭省"] = {wp = "Southwest Finland"}, ["奧蘭群島"] = {wp = "Åland", placetype = {"autonomous region", "region"}}, } export.finland_group = { placename_to_key = false, default_container = "芬蘭", default_placetype = "region", data = export.finland_regions, } export.france_administrative_regions = { ["奧弗涅-隆河-阿爾卑斯大區"] = {wp = "Auvergne-Rhône-Alpes"}, ["勃艮第-弗朗什-孔泰大區"] = {wp = "Bourgogne-Franche-Comté"}, ["布列塔尼大區"] = {wp = "Brittany (administrative region)"}, ["中央-羅亞爾河谷大區"] = {wp = "Centre-Val de Loire"}, ["科西嘉大區"] = {wp = "Corsica"}, ["大東部大區"] = {wp = "Grand Est"}, ["上法蘭西大區"] = {wp = "Hauts-de-France"}, ["法蘭西島大區"] = {wp = "Île-de-France"}, ["諾曼底大區"] = {wp = "Normandy"}, ["新阿基坦大區"] = {wp = "Nouvelle-Aquitaine"}, ["奧克西塔尼大區"] = {wp = "Occitanie"}, ["盧瓦爾河地區大區"] = {wp = "Pays de la Loire"}, ["普羅旺斯-阿爾卑斯-蔚藍海岸大區"] = {wp = "Provence-Alpes-Côte d'Azur"}, -- Old region names (pre-2016) as aliases ["北部-加萊海峽大區"] = {wp = "Nord-Pas-de-Calais"}, ["加來海峽大區"] = {alias_of = "北部-加萊海峽大區"}, } export.france_group = { placename_to_key = false, default_container = "法國", default_placetype = "region", data = export.france_administrative_regions, } -- France departments (abbreviated list) export.france_departments = { ["北部省"] = {wp = "Nord (department)", container = "上法蘭西大區"}, ["加來海峽省"] = {wp = "Pas-de-Calais", container = "上法蘭西大區"}, ["巴黎市"] = {wp = "Paris", container = "法蘭西島大區"}, ["上塞納省"] = {wp = "Hauts-de-Seine", container = "法蘭西島大區"}, } export.france_departments_group = { placename_to_key = false, default_container = "法國", default_placetype = "department", data = export.france_departments, } export.germany_states = { ["巴登-符騰堡"] = {wp = "Baden-Württemberg"}, ["巴伐利亞"] = {wp = "Bavaria"}, ["柏林"] = {wp = "Berlin"}, ["布蘭登堡"] = {wp = "Brandenburg"}, ["不來梅"] = {wp = "Bremen"}, ["漢堡"] = {wp = "Hamburg"}, ["黑森"] = {wp = "Hesse"}, ["梅克倫堡-前波美拉尼亞"] = {wp = "Mecklenburg-Vorpommern"}, ["下薩克森"] = {wp = "Lower Saxony"}, ["北萊茵-威斯特法倫"] = {wp = "North Rhine-Westphalia"}, ["萊茵蘭-普法爾茨"] = {wp = "Rhineland-Palatinate"}, ["薩爾"] = {wp = "Saarland"}, ["薩克森"] = {wp = "Saxony"}, ["薩克森-安哈爾特"] = {wp = "Saxony-Anhalt"}, ["石勒蘇益格-荷爾斯泰因"] = {wp = "Schleswig-Holstein"}, ["圖林根"] = {wp = "Thuringia"}, } export.germany_group = { placename_to_key = false, default_container = "德國", default_placetype = "state", data = export.germany_states, } export.greece_regions = { ["阿提卡大區"] = {wp = "Attica (region)"}, ["中希臘大區"] = {wp = "Central Greece (administrative region)"}, ["中馬其頓大區"] = {wp = "Central Macedonia"}, ["克里特大區"] = {wp = "Crete"}, ["東馬其頓和色雷斯大區"] = {wp = "Eastern Macedonia and Thrace"}, ["伊庇魯斯大區"] = {wp = "Epirus (region)"}, ["愛奧尼亞群島大區"] = {wp = "Ionian Islands (region)"}, ["北愛琴大區"] = {wp = "North Aegean"}, ["伯羅奔尼撒大區"] = {wp = "Peloponnese (region)"}, ["南愛琴大區"] = {wp = "South Aegean"}, ["塞薩利大區"] = {wp = "Thessaly"}, ["西希臘大區"] = {wp = "Western Greece"}, ["西馬其頓大區"] = {wp = "Western Macedonia"}, ["阿托斯山"] = {wp = "Monastic community of Mount Athos", placetype = {"autonomous region", "region"}}, } export.greece_group = { placename_to_key = false, default_container = "希臘", default_placetype = "region", data = export.greece_regions, } export.india_states_and_union_territories = { ["安達曼-尼科巴群島"] = {placetype = "union territory", wp = "Andaman and Nicobar Islands"}, ["安得拉邦"] = {wp = "Andhra Pradesh"}, ["阿魯納恰爾邦"] = {wp = "Arunachal Pradesh"}, ["阿薩姆"] = {wp = "Assam"}, ["比哈爾邦"] = {wp = "Bihar"}, ["昌迪加爾"] = {placetype = "union territory", wp = "Chandigarh"}, ["恰蒂斯加爾邦"] = {wp = "Chhattisgarh"}, ["達德拉-納加爾哈維利和達曼-第烏"] = {placetype = "union territory", wp = "Dadra and Nagar Haveli and Daman and Diu"}, ["德里"] = {placetype = "union territory", wp = "Delhi"}, ["果阿"] = {wp = "Goa"}, ["古吉拉特邦"] = {wp = "Gujarat"}, ["哈里亞納邦"] = {wp = "Haryana"}, ["喜馬偕爾邦"] = {wp = "Himachal Pradesh"}, ["查謨和克什米爾"] = {placetype = "union territory", wp = "Jammu and Kashmir (union territory)"}, ["賈坎德邦"] = {wp = "Jharkhand"}, ["卡納塔克邦"] = {wp = "Karnataka"}, ["喀拉拉邦"] = {wp = "Kerala"}, ["拉達克"] = {placetype = "union territory", wp = "Ladakh"}, ["拉克沙群島"] = {placetype = "union territory", wp = "Lakshadweep"}, ["中央邦"] = {wp = "Madhya Pradesh"}, ["馬哈拉施特拉邦"] = {wp = "Maharashtra"}, ["曼尼普爾邦"] = {wp = "Manipur"}, ["梅加拉亞邦"] = {wp = "Meghalaya"}, ["米佐拉姆邦"] = {wp = "Mizoram"}, ["那加蘭邦"] = {wp = "Nagaland"}, ["奧里薩邦"] = {wp = "Odisha"}, ["本地治里"] = {placetype = "union territory", wp = "Puducherry"}, ["旁遮普邦"] = {wp = "Punjab, India"}, ["拉賈斯坦邦"] = {wp = "Rajasthan"}, ["錫金"] = {wp = "Sikkim"}, ["泰米爾納德邦"] = {wp = "Tamil Nadu"}, ["特倫甘納邦"] = {wp = "Telangana"}, ["特里普拉邦"] = {wp = "Tripura"}, ["北方邦"] = {wp = "Uttar Pradesh"}, ["北阿坎德邦"] = {wp = "Uttarakhand"}, ["西孟加拉邦"] = {wp = "West Bengal"}, } export.india_group = { placename_to_key = false, default_container = "印度", default_placetype = "state", default_divs = {"districts"}, data = export.india_states_and_union_territories, } export.indonesia_provinces = { ["亞齊省"] = {wp = "Aceh"}, ["峇里省"] = {wp = "Bali"}, ["邦加勿里洞省"] = {wp = "Bangka Belitung Islands"}, ["萬丹省"] = {wp = "Banten"}, ["明古魯省"] = {wp = "Bengkulu"}, ["中爪哇省"] = {wp = "Central Java"}, ["中加里曼丹省"] = {wp = "Central Kalimantan"}, ["中巴布亞省"] = {wp = "Central Papua"}, ["中蘇拉威西省"] = {wp = "Central Sulawesi"}, ["東爪哇省"] = {wp = "East Java"}, ["東加里曼丹省"] = {wp = "East Kalimantan"}, ["東努沙登加拉省"] = {wp = "East Nusa Tenggara"}, ["哥倫打洛省"] = {wp = "Gorontalo"}, ["巴布亞高地省"] = {wp = "Highland Papua"}, ["雅加達首都特區"] = {wp = "Jakarta"}, ["占碑省"] = {wp = "Jambi"}, ["楠榜省"] = {wp = "Lampung"}, ["馬魯古省"] = {wp = "Maluku"}, ["北加里曼丹省"] = {wp = "North Kalimantan"}, ["北馬魯古省"] = {wp = "North Maluku"}, ["北蘇拉威西省"] = {wp = "North Sulawesi"}, ["北巴布亞省"] = {wp = "North Papua"}, ["北蘇門答臘省"] = {wp = "North Sumatra"}, ["巴布亞省"] = {wp = "Papua (province)"}, ["廖內省"] = {wp = "Riau"}, ["廖內群島省"] = {wp = "Riau Islands"}, ["東南蘇拉威西省"] = {wp = "Southeast Sulawesi"}, ["南加里曼丹省"] = {wp = "South Kalimantan"}, ["南巴布亞省"] = {wp = "South Papua"}, ["南蘇拉威西省"] = {wp = "South Sulawesi"}, ["南蘇門答臘省"] = {wp = "South Sumatra"}, ["西南巴布亞省"] = {wp = "Southwest Papua"}, ["西爪哇省"] = {wp = "West Java"}, ["西加里曼丹省"] = {wp = "West Kalimantan"}, ["西努沙登加拉省"] = {wp = "West Nusa Tenggara"}, ["西巴布亞省"] = {wp = "West Papua (province)"}, ["西蘇拉威西省"] = {wp = "West Sulawesi"}, ["西蘇門答臘省"] = {wp = "West Sumatra"}, ["日惹特區"] = {wp = "Special Region of Yogyakarta"}, } export.indonesia_group = { placename_to_key = false, default_container = "印度尼西亞", default_placetype = "province", data = export.indonesia_provinces, } export.iran_provinces = { ["阿爾博爾茲省"] = {wp = "Alborz Province"}, ["阿爾達比勒省"] = {wp = "Ardabil Province"}, ["布什爾省"] = {wp = "Bushehr Province"}, ["恰哈爾馬哈勒-巴赫蒂亞里省"] = {wp = "Chaharmahal and Bakhtiari Province"}, ["東阿塞拜疆省"] = {wp = "East Azerbaijan Province"}, ["法爾斯省"] = {wp = "Fars Province"}, ["帕爾斯省"] = {alias_of = "法爾斯省"}, ["吉蘭省"] = {wp = "Gilan Province"}, ["戈勒斯坦省"] = {wp = "Golestan Province"}, ["哈馬丹省"] = {wp = "Hamadan Province"}, ["霍爾木茲甘省"] = {wp = "Hormozgan Province"}, ["伊拉姆省"] = {wp = "Ilam Province"}, ["伊斯法罕省"] = {wp = "Isfahan Province"}, ["克爾曼省"] = {wp = "Kerman Province"}, ["克爾曼沙赫省"] = {wp = "Kermanshah Province"}, ["胡齊斯坦省"] = {wp = "Khuzestan Province"}, ["科吉盧耶-博亞赫邁德省"] = {wp = "Kohgiluyeh and Boyer-Ahmad Province"}, ["庫爾德斯坦省"] = {wp = "Kurdistan Province"}, ["洛雷斯坦省"] = {wp = "Lorestan Province"}, ["馬爾卡齊省"] = {wp = "Markazi Province"}, ["馬贊達蘭省"] = {wp = "Mazandaran Province"}, ["北呼羅珊省"] = {wp = "North Khorasan Province"}, ["加茲溫省"] = {wp = "Qazvin Province"}, ["庫姆省"] = {wp = "Qom Province"}, ["拉扎維呼羅珊省"] = {wp = "Razavi Khorasan Province"}, ["森南省"] = {wp = "Semnan Province"}, ["錫斯坦-俾路支斯坦省"] = {wp = "Sistan and Baluchestan Province"}, ["南呼羅珊省"] = {wp = "South Khorasan Province"}, ["德黑蘭省"] = {wp = "Tehran Province"}, ["西阿塞拜疆省"] = {wp = "West Azerbaijan Province"}, ["亞茲德省"] = {wp = "Yazd Province"}, ["贊詹省"] = {wp = "Zanjan Province"}, } export.iran_group = { placename_to_key = false, default_container = "伊朗", default_placetype = "province", data = export.iran_provinces, } export.ireland_counties = { ["卡洛郡"] = {wp = "County Carlow"}, ["卡文郡"] = {wp = "County Cavan"}, ["克萊爾郡"] = {wp = "County Clare"}, ["科克郡"] = {wp = "County Cork"}, ["多尼戈爾郡"] = {wp = "County Donegal"}, ["都柏林郡"] = {wp = "County Dublin"}, ["戈爾韋郡"] = {wp = "County Galway"}, ["克里郡"] = {wp = "County Kerry"}, ["基爾代爾郡"] = {wp = "County Kildare"}, ["基爾肯尼郡"] = {wp = "County Kilkenny"}, ["萊什郡"] = {wp = "County Laois"}, ["利特里姆郡"] = {wp = "County Leitrim"}, ["利默里克郡"] = {wp = "County Limerick"}, ["朗福德郡"] = {wp = "County Longford"}, ["勞斯郡"] = {wp = "County Louth"}, ["梅奧郡"] = {wp = "County Mayo"}, ["米斯郡"] = {wp = "County Meath"}, ["莫納亨郡"] = {wp = "County Monaghan"}, ["奧法利郡"] = {wp = "County Offaly"}, ["羅斯康芒郡"] = {wp = "County Roscommon"}, ["斯萊戈郡"] = {wp = "County Sligo"}, ["蒂珀雷里郡"] = {wp = "County Tipperary"}, ["沃特福德郡"] = {wp = "County Waterford"}, ["西米斯郡"] = {wp = "County Westmeath"}, ["韋克斯福德郡"] = {wp = "County Wexford"}, ["威克洛郡"] = {wp = "County Wicklow"}, } -- 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 = { placename_to_key = false, default_container = "愛爾蘭", default_placetype = "county", data = export.ireland_counties, } export.italy_administrative_regions = { ["阿布魯佐"] = {wp = "Abruzzo"}, ["巴西利卡塔"] = {wp = "Basilicata"}, ["卡拉布里亞"] = {wp = "Calabria"}, ["坎帕尼亞"] = {wp = "Campania"}, ["艾米利亞-羅馬涅"] = {wp = "Emilia-Romagna"}, ["弗留利-威尼斯朱利亞"] = {wp = "Friuli-Venezia Giulia"}, ["拉齊奧"] = {wp = "Lazio"}, ["利古里亞"] = {wp = "Liguria"}, ["倫巴第"] = {wp = "Lombardy"}, ["倫巴底"] = {alias_of = "倫巴第"}, ["馬爾凱"] = {wp = "Marche"}, ["莫利塞"] = {wp = "Molise"}, ["皮埃蒙特"] = {wp = "Piedmont"}, ["普利亞"] = {wp = "Apulia"}, ["阿普利亞"] = {alias_of = "普利亞"}, ["薩丁尼亞"] = {wp = "Sardinia"}, ["西西里"] = {wp = "Sicily"}, ["托斯卡納"] = {wp = "Tuscany"}, ["特倫蒂諾-上阿迪傑"] = {wp = "Trentino-Alto Adige/Südtirol"}, ["翁布里亞"] = {wp = "Umbria"}, ["奧斯塔谷"] = {wp = "Aosta Valley"}, ["威尼托"] = {wp = "Veneto"}, } export.italy_group = { placename_to_key = false, default_container = "意大利", default_placetype = "region", data = export.italy_administrative_regions, } -- table of Japanese prefectures; interpolated into the main 'places' table, but also needed separately export.japan_prefectures = { ["青森縣"] = {wp = "青森縣"}, ["岩手縣"] = {wp = "岩手縣"}, ["宮城縣"] = {wp = "宮城縣"}, ["秋田縣"] = {wp = "秋田縣"}, ["山形縣"] = {wp = "山形縣"}, ["福島縣"] = {wp = "福島縣"}, ["茨城縣"] = {wp = "茨城縣"}, ["栃木縣"] = {wp = "栃木縣"}, ["群馬縣"] = {wp = "群馬縣"}, ["埼玉縣"] = {wp = "埼玉縣"}, ["千葉縣"] = {wp = "千葉縣"}, ["神奈川縣"] = {wp = "神奈川縣"}, ["新潟縣"] = {wp = "新潟縣"}, ["富山縣"] = {wp = "富山縣"}, ["石川縣"] = {wp = "石川縣"}, ["福井縣"] = {wp = "福井縣"}, ["山梨縣"] = {wp = "山梨縣"}, ["長野縣"] = {wp = "長野縣"}, ["岐阜縣"] = {wp = "岐阜縣"}, ["靜岡縣"] = {wp = "靜岡縣"}, ["愛知縣"] = {wp = "愛知縣"}, ["三重縣"] = {wp = "三重縣"}, ["滋賀縣"] = {wp = "滋賀縣"}, ["兵庫縣"] = {wp = "兵庫縣"}, ["奈良縣"] = {wp = "奈良縣"}, ["和歌山縣"] = {wp = "和歌山縣"}, ["鳥取縣"] = {wp = "鳥取縣"}, ["島根縣"] = {wp = "島根縣"}, ["岡山縣"] = {wp = "岡山縣"}, ["廣島縣"] = {wp = "廣島縣"}, ["山口縣"] = {wp = "山口縣"}, ["德島縣"] = {wp = "德島縣"}, ["香川縣"] = {wp = "香川縣"}, ["愛媛縣"] = {wp = "愛媛縣"}, ["高知縣"] = {wp = "高知縣"}, ["福岡縣"] = {wp = "福岡縣"}, ["佐賀縣"] = {wp = "佐賀縣"}, ["長崎縣"] = {wp = "長崎縣"}, ["熊本縣"] = {wp = "熊本縣"}, ["大分縣"] = {wp = "大分縣"}, ["宮崎縣"] = {wp = "宮崎縣"}, ["鹿兒島縣"] = {wp = "鹿兒島縣"}, ["沖繩縣"] = {wp = "沖繩縣"}, ["北海道"] = {divs = {"subprefectures"}, wp = "北海道"}, ["京都府"] = {wp = "京都府"}, ["大阪府"] = {wp = "大阪府"}, } local function japan_placename_to_key(placename) local japan_placename_to_key_map = { -- ["東京"] = "東京都", ["大阪"] = "大阪府", ["京都"] = "京都府", } if placename:find("[都道府縣]$") then return placename -- 已帶後綴,不轉換 end return japan_placename_to_key_map[placename] or (placename .. "縣") end -- prefectures of Japan export.japan_group = { key_to_placename = make_key_to_placename(nil, "[都道府縣]$"), placename_to_key = japan_placename_to_key, default_container = "日本", default_placetype = "prefecture", default_divs = {"cities", "districts"}, data = export.japan_prefectures, } export.laos_provinces = { ["阿塔坡省"] = {wp = "Attapeu Province"}, ["博膠省"] = {wp = "Bokeo Province"}, ["波里坎賽省"] = {wp = "Bolikhamxai Province"}, ["占巴塞省"] = {wp = "Champasak Province"}, ["華潘省"] = {wp = "Houaphanh Province"}, ["甘蒙省"] = {wp = "Khammouane Province"}, ["南塔省"] = {wp = "Luang Namtha Province"}, ["琅勃拉邦省"] = {wp = "Luang Prabang Province"}, ["烏多姆賽省"] = {wp = "Oudomxay Province"}, ["豐沙里省"] = {wp = "Phongsaly Province"}, ["沙拉灣省"] = {wp = "Salavan Province"}, ["沙灣拿吉省"] = {wp = "Savannakhet Province"}, ["萬象省"] = {wp = "Vientiane Province"}, ["萬象直轄市"] = {placetype = "prefecture", wp = "Vientiane Prefecture"}, ["賽亞武里省"] = {wp = "Sainyabuli Province"}, ["塞公省"] = {wp = "Sekong Province"}, ["賽頌本省"] = {wp = "Xaisomboun Province"}, ["川壙省"] = {wp = "Xiangkhouang Province"}, } export.laos_group = { placename_to_key = false, default_container = "老撾", default_placetype = "province", data = export.laos_provinces, } export.lebanon_governorates = { ["阿卡爾省"] = {wp = "Akkar Governorate"}, ["巴勒貝克-赫爾梅勒省"] = {wp = "Baalbek-Hermel Governorate"}, ["貝魯特省"] = {wp = "Beirut Governorate"}, ["貝卡省"] = {wp = "Beqaa Governorate"}, ["克塞旺-裘拜勒省"] = {wp = "Keserwan-Jbeil Governorate"}, ["黎巴嫩山省"] = {wp = "Mount Lebanon Governorate"}, ["納巴蒂耶省"] = {wp = "Nabatieh Governorate"}, ["北部省(黎巴嫩)"] = {wp = "North Governorate (Lebanon)", no_auto_augment_container = true}, ["南部省(黎巴嫩)"] = {wp = "South Governorate (Lebanon)", no_auto_augment_container = true}, } export.lebanon_group = { placename_to_key = false, default_container = "黎巴嫩", default_placetype = "governorate", data = export.lebanon_governorates, } export.malaysia_states = { ["柔佛州"] = {wp = "Johor"}, ["吉打州"] = {wp = "Kedah"}, ["吉蘭丹州"] = {wp = "Kelantan"}, ["馬六甲州"] = {wp = "Malacca"}, ["森美蘭州"] = {wp = "Negeri Sembilan"}, ["彭亨州"] = {wp = "Pahang"}, ["檳城州"] = {wp = "Penang"}, ["霹靂州"] = {wp = "Perak"}, ["玻璃市州"] = {wp = "Perlis"}, ["沙巴州"] = {wp = "Sabah"}, ["砂拉越州"] = {wp = "Sarawak"}, ["雪蘭莪州"] = {wp = "Selangor"}, ["登嘉樓州"] = {wp = "Terengganu"}, } export.malaysia_group = { placename_to_key = false, default_container = "馬來西亞", default_placetype = "state", data = export.malaysia_states, } export.malta_regions = { ["東部區(馬爾他)"] = {wp = "Eastern Region, Malta", no_auto_augment_container = true}, ["戈佐區"] = {wp = "Gozo Region"}, ["北部區(馬爾他)"] = {wp = "Northern Region, Malta", no_auto_augment_container = true}, ["港口區"] = {wp = "Port Region, Malta"}, ["南部區(馬爾他)"] = {wp = "Southern Region, Malta", no_auto_augment_container = true}, ["西部區(馬爾他)"] = {wp = "Western Region, Malta", no_auto_augment_container = true}, } export.malta_group = { placename_to_key = false, default_container = "馬爾他", default_placetype = "region", data = export.malta_regions, } export.mexico_states = { ["阿瓜斯卡連特斯州"] = {wp = "Aguascalientes"}, ["下加利福尼亞州"] = {wp = "Baja California"}, ["南下加利福尼亞州"] = {wp = "Baja California Sur"}, ["坎佩切州"] = {wp = "Campeche"}, ["恰帕斯州"] = {wp = "Chiapas"}, ["奇瓦瓦州"] = {wp = "Chihuahua (state)"}, ["科阿韋拉州"] = {wp = "Coahuila"}, ["科利馬州"] = {wp = "Colima"}, ["杜蘭戈州"] = {wp = "Durango"}, ["瓜納華托州"] = {wp = "Guanajuato"}, ["格雷羅州"] = {wp = "Guerrero"}, ["伊達爾戈州"] = {wp = "Hidalgo (state)"}, ["哈利斯科州"] = {wp = "Jalisco"}, ["墨西哥州"] = {wp = "State of Mexico"}, ["米卻肯州"] = {wp = "Michoacán"}, ["莫雷洛斯州"] = {wp = "Morelos"}, ["納亞里特州"] = {wp = "Nayarit"}, ["新萊昂州"] = {wp = "Nuevo León"}, ["瓦哈卡州"] = {wp = "Oaxaca"}, ["普埃布拉州"] = {wp = "Puebla"}, ["克雷塔羅州"] = {wp = "Querétaro"}, ["金塔納羅奧州"] = {wp = "Quintana Roo"}, ["聖路易斯波托西州"] = {wp = "San Luis Potosí"}, ["錫那羅亞州"] = {wp = "Sinaloa"}, ["索諾拉州"] = {wp = "Sonora"}, ["塔巴斯科州"] = {wp = "Tabasco (state)"}, ["塔毛利帕斯州"] = {wp = "Tamaulipas"}, ["特拉斯卡拉州"] = {wp = "Tlaxcala"}, ["韋拉克魯斯州"] = {wp = "Veracruz"}, ["尤卡坦州"] = {wp = "Yucatán"}, ["薩卡特卡斯州"] = {wp = "Zacatecas"}, } export.mexico_group = { placename_to_key = false, default_container = "墨西哥", default_placetype = "state", data = export.mexico_states, } export.moldova_districts_and_autonomous_territorial_units = { ["阿內尼諾伊區"] = {wp = "Anenii Noi District"}, ["巴薩拉比亞斯卡區"] = {wp = "Basarabeasca District"}, ["布里切尼區"] = {wp = "Briceni District"}, ["卡胡爾區"] = {wp = "Cahul District"}, ["坎特米爾區"] = {wp = "Cantemir District"}, ["克勒拉希區"] = {wp = "Călărași District"}, ["考沙尼區"] = {wp = "Căușeni District"}, ["奇米什利亞區"] = {wp = "Cimișlia District"}, ["克里烏列尼區"] = {wp = "Criuleni District"}, ["東杜沙尼區"] = {wp = "Dondușeni District"}, ["德羅基亞區"] = {wp = "Drochia District"}, ["杜巴薩里區"] = {wp = "Dubăsari District"}, ["埃迪涅茨區"] = {wp = "Edineț District"}, ["法勒什蒂區"] = {wp = "Fălești District"}, ["弗洛雷什蒂區"] = {wp = "Florești District"}, ["格洛德尼區"] = {wp = "Glodeni District"}, ["欣切什蒂區"] = {wp = "Hîncești District"}, ["亞洛韋尼區"] = {wp = "Ialoveni District"}, ["萊奧瓦區"] = {wp = "Leova District"}, ["尼斯波雷尼區"] = {wp = "Nisporeni District"}, ["奧克尼察區"] = {wp = "Ocnița District"}, ["奧爾海伊區"] = {wp = "Orhei District"}, ["雷齊納區"] = {wp = "Rezina District"}, ["雷什卡尼區"] = {wp = "Rîșcani District"}, ["辛格雷伊區"] = {wp = "Sîngerei District"}, ["索羅卡區"] = {wp = "Soroca District"}, ["斯特拉沙尼區"] = {wp = "Strășeni District"}, ["紹爾達涅什蒂區"] = {wp = "Șoldănești District"}, ["斯蒂凡沃達區"] = {wp = "Ștefan Vodă District"}, ["塔拉克利亞區"] = {wp = "Taraclia District"}, ["泰萊涅什蒂區"] = {wp = "Telenești District"}, ["翁格尼區"] = {wp = "Ungheni District"}, ["基希訥烏市"] = {wp = "Chișinău", placetype = "municipality"}, ["巴爾茨市"] = {wp = "Bălți", placetype = "municipality"}, ["加告茲自治領土"] = {wp = "Gagauzia", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, ["本德爾市"] = {wp = "Bender, Moldova", placetype = "municipality"}, ["德涅斯特河沿岸"] = {wp = "Transnistria", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, } export.moldova_group = { placename_to_key = false, default_container = "摩爾多瓦", default_placetype = {"district", "raion"}, data = export.moldova_districts_and_autonomous_territorial_units, } export.morocco_regions = { ["丹吉爾-得土安-霍賽馬大區"] = {wp = "Tangier-Tetouan-Al Hoceima"}, ["東方大區(摩洛哥)"] = {wp = "Oriental, Morocco"}, ["非斯-梅克內斯大區"] = {wp = "Fez-Meknes"}, ["拉巴特-薩累-肯尼特拉大區"] = {wp = "Rabat-Salé-Kénitra"}, ["貝尼梅拉勒-赫尼夫拉大區"] = {wp = "Béni Mellal-Khénifra"}, ["卡薩布蘭卡-塞塔特大區"] = {wp = "Casablanca-Settat"}, ["馬拉喀什-薩菲大區"] = {wp = "Marrakesh-Safi"}, ["德拉阿-塔菲拉勒特大區"] = {wp = "Drâa-Tafilalet"}, ["蘇斯-馬薩大區"] = {wp = "Souss-Massa"}, ["蓋勒明-烏德農大區"] = {wp = "Guelmim-Oued Noun"}, ["拉阿永-薩基亞-哈姆拉大區"] = {wp = "Laâyoune-Sakia El Hamra"}, ["達赫拉-奧以德達赫卜大區"] = {wp = "Dakhla-Oued Ed-Dahab"}, } export.morocco_group = { placename_to_key = false, default_container = "摩洛哥", default_placetype = "region", data = export.morocco_regions, } export.egypt_governorates = { ["開羅省"] = {wp = "Cairo Governorate"}, ["吉薩省"] = {wp = "Giza Governorate"}, ["夏爾基亞省"] = {wp = "Sharqia Governorate"}, ["達卡利亞省"] = {wp = "Dakahlia Governorate"}, ["貝海拉省"] = {wp = "Beheira Governorate"}, ["明亞省"] = {wp = "Minya Governorate"}, ["蓋柳比亞省"] = {wp = "Qalyubia Governorate"}, ["索哈傑省"] = {wp = "Sohag Governorate"}, ["亞歷山大省"] = {wp = "Alexandria Governorate"}, ["加爾比亞省"] = {wp = "Gharbia Governorate"}, ["艾斯尤特省"] = {wp = "Asyut Governorate"}, ["莫諾菲亞省"] = {wp = "Monufia Governorate"}, ["法尤姆省"] = {wp = "Faiyum Governorate"}, ["卡夫爾謝赫省"] = {wp = "Kafr El Sheikh Governorate"}, ["基納省"] = {wp = "Qena Governorate"}, ["本尼蘇威夫省"] = {wp = "Beni Suef Governorate"}, ["達米埃塔省"] = {wp = "Damietta Governorate"}, ["阿斯旺省"] = {wp = "Aswan Governorate"}, ["伊斯梅利亞省"] = {wp = "Ismailia Governorate"}, ["盧克索省"] = {wp = "Luxor Governorate"}, ["蘇伊士省"] = {wp = "Suez Governorate"}, ["塞德港省"] = {wp = "Port Said Governorate"}, ["馬特魯省"] = {wp = "Matrouh Governorate"}, ["北西奈省"] = {wp = "North Sinai Governorate"}, ["紅海省"] = {wp = "Red Sea Governorate"}, ["新河谷省"] = {wp = "New Valley Governorate"}, ["南西奈省"] = {wp = "South Sinai Governorate"}, } export.egypt_group = { placename_to_key = false, default_container = "埃及", default_placetype = "governorate", data = export.egypt_governorates, } export.spain_autonomous_communities = { ["安達盧西亞"] = {wp = "Andalusia"}, ["安達魯西亞"] = {alias_of = "安達盧西亞"}, ["阿拉貢"] = {wp = "Aragon"}, ["阿斯圖里亞斯"] = {wp = "Asturias"}, ["巴利阿里群島"] = {wp = "Balearic Islands"}, ["巴斯克"] = {wp = "Basque Country (autonomous community)"}, ["加那利群島"] = {wp = "Canary Islands"}, ["坎塔布里亞"] = {wp = "Cantabria"}, ["卡斯蒂利亞-拉曼恰"] = {wp = "Castilla-La Mancha"}, ["卡斯蒂利亞-萊昂"] = {wp = "Castilla y León"}, ["加泰羅尼亞"] = {wp = "Catalonia"}, ["加泰隆尼亞"] = {alias_of = "加泰羅尼亞"}, ["埃斯特雷馬杜拉"] = {wp = "Extremadura"}, ["加利西亞"] = {wp = "Galicia (Spain)"}, ["拉里奧哈"] = {wp = "La Rioja (autonomous community)"}, ["馬德里自治區"] = {wp = "Community of Madrid"}, ["穆爾西亞"] = {wp = "Region of Murcia"}, ["納瓦拉"] = {wp = "Navarre"}, ["巴倫西亞"] = {wp = "Valencian Community"}, ["巴倫西亞自治區"] = {alias_of = "巴倫西亞"}, } export.spain_group = { placename_to_key = false, default_container = "西班牙", default_placetype = "autonomous community", data = export.spain_autonomous_communities, } export.taiwan_counties = { ["彰化縣"] = {wp = "彰化縣"}, ["嘉義縣"] = {wp = "嘉義縣"}, ["新竹縣"] = {wp = "新竹縣"}, ["花蓮縣"] = {wp = "花蓮縣"}, ["金門縣"] = {wp = "金門縣"}, ["連江縣"] = {wp = "連江縣"}, ["苗栗縣"] = {wp = "苗栗縣"}, ["南投縣"] = {wp = "南投縣"}, ["屏東縣"] = {wp = "屏東縣"}, ["澎湖縣"] = {wp = "澎湖縣"}, ["宜蘭縣"] = {wp = "宜蘭縣"}, ["雲林縣"] = {wp = "雲林縣"}, } export.taiwan_group = { key_to_placename = make_key_to_placename(nil, "縣$"), placename_to_key = make_placename_to_key("縣"), default_container = "臺灣", default_placetype = "county", default_divs = {"districts", "townships"}, data = export.taiwan_counties, } export.new_york_boroughs = { ["布朗克斯"] = {the = true, wp = "The Bronx"}, ["布魯克林"] = {wp = "Brooklyn"}, ["曼哈頓"] = {wp = "Manhattan"}, ["皇后區"] = {wp = "Queens"}, ["史泰登島"] = {wp = "Staten Island"}, } export.new_york_boroughs_group = { placename_to_key = false, default_container = {key = "紐約市", placetype = "city"}, default_placetype = "borough", default_is_city = true, data = export.new_york_boroughs, } export.romania_counties = { ["阿爾巴縣"] = {wp = "Alba County"}, ["阿拉德縣"] = {wp = "Arad County"}, ["阿爾傑什縣"] = {wp = "Argeș County"}, ["巴考縣"] = {wp = "Bacău County"}, ["比霍爾縣"] = {wp = "Bihor County"}, ["比斯特里察-訥瑟烏德縣"] = {wp = "Bistrița-Năsăud County"}, ["博托沙尼縣"] = {wp = "Botoșani County"}, ["布拉索夫縣"] = {wp = "Brașov County"}, ["布勒伊拉縣"] = {wp = "Brăila County"}, ["布澤烏縣"] = {wp = "Buzău County"}, ["卡拉什-塞韋林縣"] = {wp = "Caraș-Severin County"}, ["克盧日縣"] = {wp = "Cluj County"}, ["康斯坦察縣"] = {wp = "Constanța County"}, ["科瓦斯納縣"] = {wp = "Covasna County"}, ["克勒拉希縣"] = {wp = "Călărași County"}, ["多爾日縣"] = {wp = "Dolj County"}, ["登博維察縣"] = {wp = "Dâmbovița County"}, ["加拉茨縣"] = {wp = "Galați County"}, ["久爾久縣"] = {wp = "Giurgiu County"}, ["戈爾日縣"] = {wp = "Gorj County"}, ["哈爾吉塔縣"] = {wp = "Harghita County"}, ["胡內多阿拉縣"] = {wp = "Hunedoara County"}, ["雅洛米察縣"] = {wp = "Ialomița County"}, ["雅西縣"] = {wp = "Iași County"}, ["伊爾福夫縣"] = {wp = "Ilfov County"}, ["馬拉穆列什縣"] = {wp = "Maramureș County"}, ["梅赫丁茨縣"] = {wp = "Mehedinți County"}, ["穆列什縣"] = {wp = "Mureș County"}, ["尼亞姆茨縣"] = {wp = "Neamț County"}, ["奧爾特縣"] = {wp = "Olt County"}, ["普拉霍瓦縣"] = {wp = "Prahova County"}, ["薩圖馬雷縣"] = {wp = "Satu Mare County"}, ["錫比烏縣"] = {wp = "Sibiu County"}, ["蘇恰瓦縣"] = {wp = "Suceava County"}, ["瑟拉日縣"] = {wp = "Sălaj County"}, ["特列奧爾曼縣"] = {wp = "Teleorman County"}, ["蒂米什縣"] = {wp = "Timiș County"}, ["圖爾恰縣"] = {wp = "Tulcea County"}, ["瓦斯盧伊縣"] = {wp = "Vaslui County"}, ["弗蘭恰縣"] = {wp = "Vrancea County"}, ["沃爾恰縣"] = {wp = "Vâlcea County"}, } export.romania_group = { placename_to_key = false, default_container = "羅馬尼亞", default_placetype = "county", data = export.romania_counties, } export.north_korea_provinces = { ["慈江道"] = {wp = "慈江道"}, ["咸鏡北道"] = {wp = "咸鏡北道"}, ["咸鏡南道"] = {wp = "咸鏡南道"}, ["黃海北道"] = {wp = "黃海北道"}, ["黃海南道"] = {wp = "黃海南道"}, ["江原道(北韓)"] = {wp = "江原道 (朝鮮民主主義人民共和國)"}, ["平安北道"] = {wp = "平安北道"}, ["平安南道"] = {wp = "平安南道"}, ["兩江道"] = {wp = "兩江道"}, } export.north_korea_group = { placename_to_key = false, default_container = "朝鮮", default_placetype = "province", data = export.north_korea_provinces, } export.south_korea_provinces = { ["忠清北道"] = {wp = "忠清北道"}, ["忠清南道"] = {wp = "忠清南道"}, ["江原道(南韓)"] = {wp = "江原特別自治道"}, ["京畿道"] = {wp = "京畿道"}, ["慶尚北道"] = {wp = "慶尚北道"}, ["慶尚南道"] = {wp = "慶尚南道"}, ["全羅北道"] = {wp = "全羅北道"}, ["全羅南道"] = {wp = "全羅南道"}, ["濟州道"] = {wp = "濟州道"}, } export.south_korea_group = { placename_to_key = false, default_container = "韓國", default_placetype = "province", data = export.south_korea_provinces, } export.thailand_provinces = { ["阿姆納特坤府"] = {wp = "Amnat Charoen Province"}, ["紅統府"] = {wp = "Ang Thong Province"}, ["彭侃府"] = {wp = "Bueng Kan Province"}, ["武里南府"] = {wp = "Buriram Province"}, ["北柳府"] = {wp = "Chachoengsao Province"}, ["猜納府"] = {wp = "Chai Nat Province"}, ["猜耶奔府"] = {wp = "Chaiyaphum Province"}, ["尖竹汶府"] = {wp = "Chanthaburi Province"}, ["清邁府"] = {wp = "Chiang Mai Province"}, ["清萊府"] = {wp = "Chiang Rai Province"}, ["春武里府"] = {wp = "Chonburi Province"}, ["春蓬府"] = {wp = "Chumphon Province"}, ["加拉信府"] = {wp = "Kalasin Province"}, ["甘烹碧府"] = {wp = "Kamphaeng Phet Province"}, ["北碧府"] = {wp = "Kanchanaburi Province"}, ["孔敬府"] = {wp = "Khon Kaen Province"}, ["甲米府"] = {wp = "Krabi Province"}, ["南邦府"] = {wp = "Lampang Province"}, ["南奔府"] = {wp = "Lamphun Province"}, ["黎府"] = {wp = "Loei Province"}, ["華富里府"] = {wp = "Lopburi Province"}, ["夜豐頌府"] = {wp = "Mae Hong Son Province"}, ["瑪哈沙拉堪府"] = {wp = "Maha Sarakham Province"}, ["莫達罕府"] = {wp = "Mukdahan Province"}, ["那空那育府"] = {wp = "Nakhon Nayok Province"}, ["佛統府"] = {wp = "Nakhon Pathom Province"}, ["那空帕農府"] = {wp = "Nakhon Phanom Province"}, ["呵叻府"] = {wp = "Nakhon Ratchasima Province"}, ["那空沙旺府"] = {wp = "Nakhon Sawan Province"}, ["洛坤府"] = {wp = "Nakhon Si Thammarat Province"}, ["難府"] = {wp = "Nan Province"}, ["那拉提瓦府"] = {wp = "Narathiwat Province"}, ["農布瓦蘭普府"] = {wp = "Nong Bua Lamphu Province"}, ["廊開府"] = {wp = "Nong Khai Province"}, ["暖武里府"] = {wp = "Nonthaburi Province"}, ["巴吞他尼府"] = {wp = "Pathum Thani Province"}, ["北大年府"] = {wp = "Pattani Province"}, ["攀牙府"] = {wp = "Phang Nga Province"}, ["博他侖府"] = {wp = "Phatthalung Province"}, ["帕堯府"] = {wp = "Phayao Province"}, ["碧差汶府"] = {wp = "Phetchabun Province"}, ["碧武里府"] = {wp = "Phetchaburi Province"}, ["披集府"] = {wp = "Phichit Province"}, ["彭世洛府"] = {wp = "Phitsanulok Province"}, ["大城府"] = {wp = "Phra Nakhon Si Ayutthaya Province"}, ["帕府"] = {wp = "Phrae Province"}, ["普吉府"] = {wp = "Phuket Province"}, ["巴真府"] = {wp = "Prachinburi Province"}, ["巴蜀府"] = {wp = "Prachuap Khiri Khan Province"}, ["拉廊府"] = {wp = "Ranong Province"}, ["叻丕府"] = {wp = "Ratchaburi Province"}, ["羅勇府"] = {wp = "Rayong Province"}, ["黎逸府"] = {wp = "Roi Et Province"}, ["沙繳府"] = {wp = "Sa Kaeo Province"}, ["色軍府"] = {wp = "Sakon Nakhon Province"}, ["北欖府"] = {wp = "Samut Prakan Province"}, ["沙沒沙空府"] = {wp = "Samut Sakhon Province"}, ["沙沒頌堪府"] = {wp = "Samut Songkhram Province"}, ["沙拉武里府"] = {wp = "Saraburi Province"}, ["沙敦府"] = {wp = "Satun Province"}, ["信武里府"] = {wp = "Sing Buri Province"}, ["四色菊府"] = {wp = "Sisaket Province"}, ["宋卡府"] = {wp = "Songkhla Province"}, ["素可泰府"] = {wp = "Sukhothai Province"}, ["素攀武里府"] = {wp = "Suphan Buri Province"}, ["素叻他尼府"] = {wp = "Surat Thani Province"}, ["素林府"] = {wp = "Surin Province"}, ["達府"] = {wp = "Tak Province"}, ["董里府"] = {wp = "Trang Province"}, ["達叻府"] = {wp = "Trat Province"}, ["烏汶府"] = {wp = "Ubon Ratchathani Province"}, ["烏隆府"] = {wp = "Udon Thani Province"}, ["烏泰他尼府"] = {wp = "Uthai Thani Province"}, ["烏達拉勐府"] = {wp = "Uttaradit Province"}, ["惹拉府"] = {wp = "Yala Province"}, ["耶梭通府"] = {wp = "Yasothon Province"}, } export.thailand_group = { placename_to_key = false, default_container = "泰國", default_placetype = "province", data = export.thailand_provinces, } export.turkey_provinces = { ["阿達納省"] = {wp = "Adana Province"}, ["阿德亞曼省"] = {wp = "Adıyaman Province"}, ["阿菲永卡拉希薩爾省"] = {wp = "Afyonkarahisar Province"}, ["阿里省"] = {wp = "Ağrı Province"}, ["阿馬西亞省"] = {wp = "Amasya Province"}, ["安卡拉省"] = {wp = "Ankara Province"}, ["安塔利亞省"] = {wp = "Antalya Province"}, ["阿爾特溫省"] = {wp = "Artvin Province"}, ["艾登省"] = {wp = "Aydın Province"}, ["巴勒克埃西爾省"] = {wp = "Balıkesir Province"}, ["比萊吉克省"] = {wp = "Bilecik Province"}, ["賓格爾省"] = {wp = "Bingöl Province"}, ["比特利斯省"] = {wp = "Bitlis Province"}, ["博盧省"] = {wp = "Bolu Province"}, ["布爾杜爾省"] = {wp = "Burdur Province"}, ["布爾薩省"] = {wp = "Bursa Province"}, ["恰納卡萊省"] = {wp = "Çanakkale Province"}, ["昌克勒省"] = {wp = "Çankırı Province"}, ["喬魯姆省"] = {wp = "Çorum Province"}, ["代尼茲利省"] = {wp = "Denizli Province"}, ["迪亞巴克爾省"] = {wp = "Diyarbakır Province"}, ["埃迪爾內省"] = {wp = "Edirne Province"}, ["埃拉澤省"] = {wp = "Elazığ Province"}, ["埃爾津詹省"] = {wp = "Erzincan Province"}, ["埃爾祖魯姆省"] = {wp = "Erzurum Province"}, ["埃斯基謝希爾省"] = {wp = "Eskişehir Province"}, ["加濟安泰普省"] = {wp = "Gaziantep Province"}, ["吉雷松省"] = {wp = "Giresun Province"}, ["居米什哈內省"] = {wp = "Gümüşhane Province"}, ["哈卡里省"] = {wp = "Hakkâri Province"}, ["哈塔伊省"] = {wp = "Hatay Province"}, ["伊斯帕爾塔省"] = {wp = "Isparta Province"}, ["梅爾辛省"] = {wp = "Mersin Province"}, ["伊茲密爾省"] = {wp = "İzmir Province"}, ["卡爾斯省"] = {wp = "Kars Province"}, ["卡斯塔莫努省"] = {wp = "Kastamonu Province"}, ["開塞利省"] = {wp = "Kayseri Province"}, ["柯克拉雷利省"] = {wp = "Kırklareli Province"}, ["克爾謝希爾省"] = {wp = "Kırşehir Province"}, ["科賈埃利省"] = {wp = "Kocaeli Province"}, ["科尼亞省"] = {wp = "Konya Province"}, ["屈塔希亞省"] = {wp = "Kütahya Province"}, ["馬拉蒂亞省"] = {wp = "Malatya Province"}, ["馬尼薩省"] = {wp = "Manisa Province"}, ["卡赫拉曼馬拉什省"] = {wp = "Kahramanmaraş Province"}, ["馬爾丁省"] = {wp = "Mardin Province"}, ["穆拉省"] = {wp = "Muğla Province"}, ["穆什省"] = {wp = "Muş Province"}, ["內夫謝希爾省"] = {wp = "Nevşehir Province"}, ["尼代省"] = {wp = "Niğde Province"}, ["奧爾杜省"] = {wp = "Ordu Province"}, ["里澤省"] = {wp = "Rize Province"}, ["薩卡里亞省"] = {wp = "Sakarya Province"}, ["薩姆松省"] = {wp = "Samsun Province"}, ["錫爾特省"] = {wp = "Siirt Province"}, ["錫諾普省"] = {wp = "Sinop Province"}, ["錫瓦斯省"] = {wp = "Sivas Province"}, ["泰基爾達省"] = {wp = "Tekirdağ Province"}, ["托卡特省"] = {wp = "Tokat Province"}, ["特拉布宗省"] = {wp = "Trabzon Province"}, ["通傑利省"] = {wp = "Tunceli Province"}, ["尚勒烏爾法省"] = {wp = "Şanlıurfa Province"}, ["烏沙克省"] = {wp = "Uşak Province"}, ["凡省"] = {wp = "Van Province"}, ["約茲加特省"] = {wp = "Yozgat Province"}, ["宗古爾達克省"] = {wp = "Zonguldak Province"}, ["阿克薩賴省"] = {wp = "Aksaray Province"}, ["拜布爾特省"] = {wp = "Bayburt Province"}, ["卡拉曼省"] = {wp = "Karaman Province"}, ["克勒克卡萊省"] = {wp = "Kırıkkale Province"}, ["巴特曼省"] = {wp = "Batman Province"}, ["蘇爾納克省"] = {wp = "Şırnak Province"}, ["巴爾騰省"] = {wp = "Bartın Province"}, ["阿爾達罕省"] = {wp = "Ardahan Province"}, ["伊迪爾省"] = {wp = "Iğdır Province"}, ["亞洛瓦省"] = {wp = "Yalova Province"}, ["卡拉比克省"] = {wp = "Karabük Province"}, ["基利斯省"] = {wp = "Kilis Province"}, ["奧斯曼尼耶省"] = {wp = "Osmaniye Province"}, ["迪茲傑省"] = {wp = "Düzce Province"}, } export.turkey_group = { placename_to_key = false, default_container = "土耳其", default_placetype = "province", data = export.turkey_provinces, } export.vietnam_provinces = { -- Northeast ["北江省"] = {wp = "Bắc Giang Province"}, ["北件省"] = {wp = "Bắc Kạn Province"}, ["高平省"] = {wp = "Cao Bằng Province"}, ["河江省"] = {wp = "Hà Giang Province"}, ["諒山省"] = {wp = "Lạng Sơn Province"}, ["富壽省"] = {wp = "Phú Thọ Province"}, ["廣寧省"] = {wp = "Quảng Ninh Province"}, ["太原省"] = {wp = "Thái Nguyên Province"}, ["宣光省"] = {wp = "Tuyên Quang Province"}, -- Northwest ["老街省"] = {wp = "Lào Cai Province"}, ["安沛省"] = {wp = "Yên Bái Province"}, ["奠邊省"] = {wp = "Điện Biên Province"}, ["和平省"] = {wp = "Hoà Bình Province"}, ["萊州省"] = {wp = "Lai Châu Province"}, ["山羅省"] = {wp = "Sơn La Province"}, -- Red River Delta ["北寧省"] = {wp = "Bắc Ninh Province"}, ["河南省"] = {wp = "Hà Nam Province"}, ["海陽省"] = {wp = "Hải Dương Province"}, ["興安省"] = {wp = "Hưng Yên Province"}, ["南定省"] = {wp = "Nam Định Province"}, ["寧平省"] = {wp = "Ninh Bình Province"}, ["太平省"] = {wp = "Thái Bình Province"}, ["永福省"] = {wp = "Vĩnh Phúc Province"}, -- North Central Coast ["河靜省"] = {wp = "Hà Tĩnh Province"}, ["乂安省"] = {wp = "Nghệ An Province"}, ["廣平省"] = {wp = "Quảng Bình Province"}, ["廣治省"] = {wp = "Quảng Trị Province"}, ["清化省"] = {wp = "Thanh Hoá Province"}, -- Central Highlands ["得樂省"] = {wp = "Đắk Lắk Province"}, ["得農省"] = {wp = "Đăk Nông Province"}, ["嘉萊省"] = {wp = "Gia Lai Province"}, ["崑嵩省"] = {wp = "Kon Tum Province"}, ["林同省"] = {wp = "Lâm Đồng Province"}, -- South Central Coast ["平定省"] = {wp = "Bình Định Province"}, ["平順省"] = {wp = "Bình Thuận Province"}, ["慶和省"] = {wp = "Khánh Hoà Province"}, ["寧順省"] = {wp = "Ninh Thuận Province"}, ["富安省"] = {wp = "Phú Yên Province"}, ["廣南省"] = {wp = "Quảng Nam Province"}, ["廣義省"] = {wp = "Quảng Ngãi Province"}, -- Southeast ["巴地-頭頓省"] = {wp = "Bà Rịa–Vũng Tàu Province"}, ["平陽省"] = {wp = "Bình Dương Province"}, ["平福省"] = {wp = "Bình Phước Province"}, ["同奈省"] = {wp = "Đồng Nai Province"}, ["西寧省"] = {wp = "Tây Ninh Province"}, -- Mekong Delta ["安江省"] = {wp = "An Giang Province"}, ["薄寮省"] = {wp = "Bạc Liêu Province"}, ["檳椥省"] = {wp = "Bến Tre Province"}, ["金甌省"] = {wp = "Cà Mau Province"}, ["同塔省"] = {wp = "Đồng Tháp Province"}, ["後江省"] = {wp = "Hậu Giang Province"}, ["堅江省"] = {wp = "Kiên Giang Province"}, ["龍安省"] = {wp = "Long An Province"}, ["朔莊省"] = {wp = "Sóc Trăng Province"}, ["前江省"] = {wp = "Tiền Giang Province"}, ["茶榮省"] = {wp = "Trà Vinh Province"}, ["永隆省"] = {wp = "Vĩnh Long Province"}, } export.vietnam_group = { placename_to_key = false, default_container = "越南", default_placetype = "province", data = export.vietnam_provinces, } export.united_states_states = { ["阿拉巴馬"] = {wp = "Alabama"}, ["阿拉斯加"] = {wp = "Alaska"}, ["亞利桑那"] = {wp = "Arizona"}, ["阿肯色"] = {wp = "Arkansas"}, ["加利福尼亞"] = {wp = "California"}, ["加州"] = {alias_of = "加利福尼亞"}, ["科羅拉多"] = {wp = "Colorado"}, ["康乃狄克"] = {wp = "Connecticut"}, ["康涅狄格"] = {alias_of = "康乃狄克"}, ["德拉瓦"] = {wp = "Delaware"}, ["佛羅里達"] = {wp = "Florida"}, ["佛罗里达"] = {alias_of = "佛羅里達"}, ["佐治亞"] = {wp = "Georgia (U.S. state)"}, ["夏威夷"] = {addl_parents = {"玻里尼西亞"}, wp = "Hawaii"}, ["愛達荷"] = {wp = "Idaho"}, ["伊利諾伊"] = {wp = "Illinois"}, ["伊利诺伊"] = {alias_of = "伊利諾伊"}, ["印地安那"] = {wp = "Indiana"}, ["印第安納"] = {alias_of = "印地安那"}, ["愛荷華"] = {wp = "Iowa"}, ["堪薩斯"] = {wp = "Kansas"}, ["肯塔基"] = {wp = "Kentucky"}, ["路易斯安那"] = {wp = "Louisiana"}, ["緬因"] = {wp = "Maine"}, ["馬里蘭"] = {wp = "Maryland"}, ["麻薩諸塞"] = {wp = "Massachusetts"}, ["麻薩诸塞"] = {alias_of = "麻薩諸塞"}, ["密西根"] = {wp = "Michigan"}, ["密歇根"] = {alias_of = "密西根"}, ["明尼蘇達"] = {wp = "Minnesota"}, ["明尼苏达"] = {alias_of = "明尼蘇達"}, ["密西西比"] = {wp = "Mississippi"}, ["密蘇里"] = {wp = "Missouri"}, ["蒙大拿"] = {wp = "Montana"}, ["內布拉斯加"] = {wp = "Nebraska"}, ["內華達"] = {wp = "Nevada"}, ["新罕布什爾"] = {wp = "New Hampshire"}, ["新澤西"] = {wp = "New Jersey"}, ["新泽西"] = {alias_of = "新澤西"}, ["新墨西哥"] = {wp = "New Mexico"}, ["紐約"] = {wp = "New York (state)"}, ["纽约"] = {alias_of = "紐約"}, ["北卡羅來納"] = {wp = "North Carolina"}, ["北达科他"] = {alias_of = "北達科他"}, ["北達科他"] = {wp = "North Dakota"}, ["俄亥俄"] = {wp = "Ohio"}, ["奧克拉荷馬"] = {wp = "Oklahoma"}, ["奧勒岡"] = {wp = "Oregon"}, ["俄勒冈"] = {alias_of = "奧勒岡"}, ["賓夕法尼亞"] = {wp = "Pennsylvania"}, ["宾夕法尼亚"] = {alias_of = "賓夕法尼亞"}, ["羅德島"] = {wp = "Rhode Island"}, ["南卡羅來納"] = {wp = "South Carolina"}, ["南達科他"] = {wp = "South Dakota"}, ["田納西"] = {wp = "Tennessee"}, ["田纳西"] = {alias_of = "田納西"}, ["德克薩斯"] = {wp = "Texas"}, ["德州"] = {alias_of = "德克薩斯"}, ["猶他"] = {wp = "Utah"}, ["佛蒙特"] = {wp = "Vermont"}, ["弗吉尼亞"] = {wp = "Virginia"}, ["弗吉尼亚"] = {alias_of = "弗吉尼亞"}, ["維吉尼亞"] = {alias_of = "弗吉尼亞"}, ["華盛頓州"] = {wp = "Washington (state)"}, ["华盛顿州"] = {alias_of = "華盛頓州"}, ["西維吉尼亞"] = {wp = "West Virginia"}, ["西弗吉尼亞"] = {alias_of = "西維吉尼亞"}, ["威斯康辛"] = {wp = "Wisconsin"}, ["懷俄明"] = {wp = "Wyoming"}, -- Washington D.C. (federal district, treated like a state in holonym context) ["華盛頓特區"] = {placetype = {"federal district", "district"}, wp = "Washington, D.C."}, } export.united_states_group = { placename_to_key = false, default_container = "美國", default_placetype = "state", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, }, data = export.united_states_states, } export.united_kingdom_constituent_countries = { ["英格蘭"] = {divs = {"counties", "districts"}, wp = "England"}, ["北愛爾蘭"] = { placetype = {"constituent country", "province", "country"}, divs = {"counties", "districts"}, wp = "Northern Ireland", }, ["蘇格蘭"] = {divs = {{type = "council areas", container_parent_type = false}}, wp = "Scotland"}, ["威爾斯"] = {divs = {"counties"}, wp = "Wales"}, ["威爾士"] = {alias_of = "威爾斯"}, } export.united_kingdom_group = { placename_to_key = false, default_container = "英國", default_placetype = {"constituent country", "country"}, default_no_container_cat = true, data = export.united_kingdom_constituent_countries, } -- Scotland council areas export.scotland_council_areas = { ["Aberdeen市"] = {wp = "Aberdeen"}, ["Aberdeenshire"] = {wp = "Aberdeenshire"}, ["Angus"] = {wp = "Angus, Scotland"}, ["Argyll and Bute"] = {wp = "Argyll and Bute"}, ["Clackmannanshire"] = {wp = "Clackmannanshire"}, ["Dumfries and Galloway"] = {wp = "Dumfries and Galloway"}, ["Dundee市"] = {wp = "Dundee"}, ["East Ayrshire"] = {wp = "East Ayrshire"}, ["East Dunbartonshire"] = {wp = "East Dunbartonshire"}, ["East Lothian"] = {wp = "East Lothian"}, ["East Renfrewshire"] = {wp = "East Renfrewshire"}, ["Edinburgh市"] = {wp = "Edinburgh"}, ["Eilean Siar"] = {wp = "Outer Hebrides"}, ["Falkirk"] = {wp = "Falkirk"}, ["Fife"] = {wp = "Fife"}, ["Glasgow市"] = {wp = "Glasgow"}, ["高地"] = {wp = "Highland council area"}, ["Highland"] = {alias_of = "高地", display = true}, ["Inverclyde"] = {wp = "Inverclyde"}, ["Midlothian"] = {wp = "Midlothian"}, ["Moray"] = {wp = "Moray"}, ["North Ayrshire"] = {wp = "North Ayrshire"}, ["North Lanarkshire"] = {wp = "North Lanarkshire"}, ["Orkney群島"] = {wp = "Orkney"}, ["Perth and Kinross"] = {wp = "Perth and Kinross"}, ["Renfrewshire"] = {wp = "Renfrewshire"}, ["Scottish Borders"] = {wp = "Scottish Borders"}, ["Shetland群島"] = {wp = "Shetland"}, ["South Ayrshire"] = {wp = "South Ayrshire"}, ["South Lanarkshire"] = {wp = "South Lanarkshire"}, ["Stirling"] = {wp = "Stirling (council area)"}, ["West Dunbartonshire"] = {wp = "West Dunbartonshire"}, ["West Lothian"] = {wp = "West Lothian"}, } export.scotland_group = { placename_to_key = false, default_container = "蘇格蘭", default_placetype = "council area", data = export.scotland_council_areas, } -- England counties (ceremonial) export.england_counties = { -- Metropolitan counties ["大倫敦"] = {wp = "Greater London"}, ["大曼徹斯特"] = {wp = "Greater Manchester"}, ["默西賽德郡"] = {wp = "Merseyside"}, ["西密德蘭"] = {wp = "West Midlands (county)"}, ["南約克郡"] = {wp = "South Yorkshire"}, ["西約克郡"] = {wp = "West Yorkshire"}, ["泰恩-威爾郡"] = {wp = "Tyne and Wear"}, -- Non-metropolitan ceremonial counties ["貝德福德郡"] = {wp = "Bedfordshire"}, ["伯克郡"] = {wp = "Berkshire"}, ["白金漢郡"] = {wp = "Buckinghamshire"}, ["劍橋郡"] = {wp = "Cambridgeshire"}, ["柴郡"] = {wp = "Cheshire"}, ["康沃爾郡"] = {wp = "Cornwall"}, ["坎布里亞郡"] = {wp = "Cumbria"}, ["德比郡"] = {wp = "Derbyshire"}, ["德文郡"] = {wp = "Devon"}, ["多塞特郡"] = {wp = "Dorset"}, ["達勒姆郡"] = {wp = "County Durham"}, ["約克郡東區"] = {wp = "East Riding of Yorkshire"}, ["東薩塞克斯郡"] = {wp = "East Sussex"}, ["埃塞克斯郡"] = {wp = "Essex"}, ["格洛斯特郡"] = {wp = "Gloucestershire"}, ["漢普郡"] = {wp = "Hampshire"}, ["赫里福德郡"] = {wp = "Herefordshire"}, ["赫特福德郡"] = {wp = "Hertfordshire"}, ["懷特島"] = {wp = "Isle of Wight"}, ["肯特郡"] = {wp = "Kent"}, ["蘭開夏郡"] = {wp = "Lancashire"}, ["萊斯特郡"] = {wp = "Leicestershire"}, ["林肯郡"] = {wp = "Lincolnshire"}, ["諾福克郡"] = {wp = "Norfolk"}, ["北安普敦郡"] = {wp = "Northamptonshire"}, ["諾森伯蘭郡"] = {wp = "Northumberland"}, ["北約克郡"] = {wp = "North Yorkshire"}, ["諾丁漢郡"] = {wp = "Nottinghamshire"}, ["牛津郡"] = {wp = "Oxfordshire"}, ["拉特蘭郡"] = {wp = "Rutland"}, ["什羅普郡"] = {wp = "Shropshire"}, ["薩默塞特郡"] = {wp = "Somerset"}, ["南亨伯賽德郡"] = {wp = "South Humberside"}, ["斯塔福德郡"] = {wp = "Staffordshire"}, ["薩福克郡"] = {wp = "Suffolk"}, ["薩里郡"] = {wp = "Surrey"}, ["沃里克郡"] = {wp = "Warwickshire"}, ["西薩塞克斯郡"] = {wp = "West Sussex"}, ["威爾特郡"] = {wp = "Wiltshire"}, ["伍斯特郡"] = {wp = "Worcestershire"}, } export.england_group = { placename_to_key = false, default_container = {key = "英格蘭", placetype = "constituent country"}, default_placetype = "county", data = export.england_counties, } -- Counties of Northern Ireland export.northern_ireland_counties = { ["安特里姆郡"] = {wp = "County Antrim"}, ["阿爾馬郡"] = {wp = "County Armagh"}, ["貝爾法斯特市"] = {is_city = true, wp = "Belfast"}, ["唐郡"] = {wp = "County Down"}, ["弗馬納郡"] = {wp = "County Fermanagh"}, ["倫敦德里郡"] = {wp = "County Londonderry"}, ["德里市"] = {is_city = true, wp = "Derry"}, ["泰龍郡"] = {wp = "County Tyrone"}, } export.northern_ireland_group = { placename_to_key = false, default_container = {key = "北愛爾蘭", placetype = "constituent country"}, default_placetype = "county", data = export.northern_ireland_counties, } export.nigeria_states = { ["阿比亞州"] = {wp = "Abia State"}, ["阿達馬瓦州"] = {wp = "Adamawa State"}, ["阿誇伊博姆州"] = {wp = "Akwa Ibom State"}, ["阿南布拉州"] = {wp = "Anambra State"}, ["包奇州"] = {wp = "Bauchi State"}, ["貝耶薩州"] = {wp = "Bayelsa State"}, ["貝努埃州"] = {wp = "Benue State"}, ["博爾諾州"] = {wp = "Borno State"}, ["跨河州"] = {wp = "Cross River State"}, ["三角洲州"] = {wp = "Delta State"}, ["埃博尼州"] = {wp = "Ebonyi State"}, ["埃多州"] = {wp = "Edo State"}, ["埃基蒂州"] = {wp = "Ekiti State"}, ["埃努古州"] = {wp = "Enugu State"}, ["阿布賈聯邦首都轄區"] = {placetype = {"federal territory", "territory", "state"}, the = true, wp = "Federal Capital Territory, Nigeria"}, ["貢貝州"] = {wp = "Gombe State"}, ["伊莫州"] = {wp = "Imo State"}, ["吉加瓦州"] = {wp = "Jigawa State"}, ["卡杜納州"] = {wp = "Kaduna State"}, ["卡諾州"] = {wp = "Kano State"}, ["卡齊納州"] = {wp = "Katsina State"}, ["克比州"] = {wp = "Kebbi State"}, ["科吉州"] = {wp = "Kogi State"}, ["誇拉州"] = {wp = "Kwara State"}, ["拉各斯州"] = {wp = "Lagos State"}, ["納薩拉瓦州"] = {wp = "Nasarawa State"}, ["尼日爾州"] = {wp = "Niger State"}, ["奧貢州"] = {wp = "Ogun State"}, ["翁多州"] = {wp = "Ondo State"}, ["奧順州"] = {wp = "Osun State"}, ["奧約州"] = {wp = "Oyo State"}, ["高原州"] = {wp = "Plateau State"}, ["河流州"] = {wp = "Rivers State"}, ["索科托州"] = {wp = "Sokoto State"}, ["塔拉巴州"] = {wp = "Taraba State"}, ["約貝州"] = {wp = "Yobe State"}, ["贊法拉州"] = {wp = "Zamfara State"}, } export.nigeria_group = { placename_to_key = false, default_container = "奈及利亞", default_placetype = "state", data = export.nigeria_states, } ----------------------------------------------------------------------------------- -- Selected city groups -- ----------------------------------------------------------------------------------- -- Key world cities frequently used as holonyms (entries covered by dedicated city groups removed) export.misc_cities = { -- Americas ["費爾法克斯"] = {container = "弗吉尼亞", placetype = "city", is_city = true, wp = "Fairfax, Virginia"}, ["斯克蘭頓"] = {container = "賓夕法尼亞", placetype = "city", is_city = true, wp = "Scranton, Pennsylvania"}, ["里約熱內盧市"] = {container = "巴西", placetype = "city", is_city = true, wp = "Rio de Janeiro"}, ["布宜諾斯艾利斯"] = {container = "阿根廷", placetype = "city", is_city = true, wp = "Buenos Aires"}, ["聖地牙哥"] = {container = "智利", placetype = "city", is_city = true, wp = "Santiago"}, ["波哥大"] = {container = "哥倫比亞", placetype = "city", is_city = true, wp = "Bogotá"}, ["利馬"] = {container = "秘魯", placetype = "city", is_city = true, wp = "Lima"}, -- Europe ["阿姆斯特丹"] = {container = "荷蘭", placetype = "city", is_city = true, wp = "Amsterdam"}, ["布魯塞爾"] = {container = "比利時", placetype = "city", is_city = true, wp = "Brussels"}, ["維也納"] = {container = "奧地利", placetype = "city", is_city = true, wp = "Vienna"}, ["伊斯坦布爾"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Istanbul"}, ["基輔"] = {container = "烏克蘭", placetype = "city", is_city = true, wp = "Kyiv"}, ["華沙"] = {container = "波蘭", placetype = "city", is_city = true, wp = "Warsaw"}, ["布拉格"] = {container = "捷克", placetype = "city", is_city = true, wp = "Prague"}, ["布達佩斯"] = {container = "匈牙利", placetype = "city", is_city = true, wp = "Budapest"}, ["斯德哥爾摩"] = {container = "瑞典", placetype = "city", is_city = true, wp = "Stockholm"}, ["赫爾辛基"] = {container = "芬蘭", placetype = "city", is_city = true, wp = "Helsinki"}, ["奧斯陸"] = {container = "挪威", placetype = "city", is_city = true, wp = "Oslo"}, ["哥本哈根"] = {container = "丹麥", placetype = "city", is_city = true, wp = "Copenhagen"}, ["里斯本"] = {container = "葡萄牙", placetype = "city", is_city = true, wp = "Lisbon"}, ["雅典"] = {container = "希臘", placetype = "city", is_city = true, wp = "Athens"}, ["蘇黎世"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Zurich"}, ["日內瓦"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Geneva"}, ["第比利斯"] = {container = "格魯吉亞", placetype = "city", is_city = true, wp = "Tbilisi"}, ["貝爾格勒"] = {container = "塞爾維亞", placetype = "city", is_city = true, wp = "Belgrade"}, ["薩格勒布"] = {container = "克羅埃西亞", placetype = "city", is_city = true, wp = "Zagreb"}, ["都柏林"] = {container = "愛爾蘭", placetype = "city", is_city = true, wp = "Dublin"}, -- Asia ["北京市"] = {container = "北京", placetype = "city", is_city = true, wp = "Beijing"}, ["上海市"] = {container = "上海", placetype = "city", is_city = true, wp = "Shanghai"}, ["德里市"] = {container = "德里", placetype = "city", is_city = true, wp = "Delhi"}, ["曼谷"] = {container = "泰國", placetype = "city", is_city = true, wp = "Bangkok"}, ["吉隆坡"] = {container = "馬來西亞", placetype = "city", is_city = true, wp = "Kuala Lumpur"}, ["開羅"] = {container = "埃及", placetype = "city", is_city = true, wp = "Cairo"}, ["德黑蘭"] = {container = "伊朗", placetype = "city", is_city = true, wp = "Tehran"}, ["安卡拉"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Ankara"}, -- Oceania ["奧克蘭"] = {container = "紐西蘭", placetype = "city", is_city = true, wp = "Auckland"}, -- Africa ["開普敦"] = {container = "南非", placetype = "city", is_city = true, wp = "Cape Town"}, ["約翰尼斯堡"] = {container = "南非", placetype = "city", is_city = true, wp = "Johannesburg"}, ["奈洛比"] = {container = "肯亞", placetype = "city", is_city = true, wp = "Nairobi"}, } export.misc_cities_group = { placename_to_key = false, default_placetype = "city", default_is_city = true, data = export.misc_cities, } export.netherlands_provinces = { ["德倫特省"] = {wp = "Drenthe"}, ["弗萊福蘭省"] = {wp = "Flevoland"}, ["弗里斯蘭省"] = {wp = "Friesland"}, ["格爾德蘭省"] = {wp = "Gelderland"}, ["格羅寧根省"] = {wp = "Groningen (province)"}, ["林堡省(荷蘭)"] = {wp = "Limburg (Netherlands)"}, ["北布拉班特省"] = {wp = "North Brabant"}, ["北荷蘭省"] = {wp = "North Holland"}, ["上艾瑟爾省"] = {wp = "Overijssel"}, ["南荷蘭省"] = {wp = "South Holland"}, ["烏特勒支省"] = {wp = "Utrecht (province)"}, ["澤蘭省"] = {wp = "Zeeland"}, } export.netherlands_group = { placename_to_key = false, default_container = "荷蘭", default_placetype = "province", data = export.netherlands_provinces, } export.new_zealand_regions = { ["北地大區"] = {wp = "Northland Region"}, ["奧克蘭大區"] = {wp = "Auckland Region"}, ["懷卡托大區"] = {wp = "Waikato Region"}, ["豐盛灣大區"] = {wp = "Bay of Plenty Region"}, ["吉斯伯恩大區"] = {wp = "Gisborne District", placetype = {"region", "district"}}, ["霍克斯灣大區"] = {wp = "Hawke's Bay Region"}, ["塔拉納基大區"] = {wp = "Taranaki Region"}, ["馬納瓦圖-旺阿努伊大區"] = {wp = "Manawatū-Whanganui Region"}, ["惠靈頓大區"] = {wp = "Wellington Region"}, ["塔斯曼大區"] = {wp = "Tasman District", placetype = {"region", "district"}}, ["納爾遜大區"] = {wp = "Nelson, New Zealand", placetype = {"region", "city"}, is_city = true}, ["馬爾堡大區"] = {wp = "Marlborough District", placetype = {"region", "district"}}, ["西海岸大區"] = {wp = "West Coast Region"}, ["坎特伯雷大區"] = {wp = "Canterbury Region"}, ["奧塔哥大區"] = {wp = "Otago Region"}, ["南地大區"] = {wp = "Southland Region"}, } export.new_zealand_group = { placename_to_key = false, default_container = "紐西蘭", default_placetype = "region", data = export.new_zealand_regions, } export.norwegian_counties = { ["奧斯陸縣"] = {wp = "Oslo"}, ["羅加蘭縣"] = {wp = "Rogaland"}, ["莫雷-羅姆斯達爾縣"] = {wp = "Møre og Romsdal"}, ["諾爾蘭縣"] = {wp = "Nordland"}, ["東福爾縣"] = {wp = "Østfold"}, ["阿克斯胡斯縣"] = {wp = "Akershus"}, ["布斯克呂縣"] = {wp = "Buskerud"}, ["因蘭德縣"] = {wp = "Innlandet"}, ["西福爾縣"] = {wp = "Vestfold"}, ["泰勒馬克縣"] = {wp = "Telemark"}, ["阿格德爾縣"] = {wp = "Agder"}, ["西地縣"] = {wp = "Vestland"}, ["特倫德拉格縣"] = {wp = "Trøndelag"}, ["特羅姆斯縣"] = {wp = "Troms"}, ["芬馬克縣"] = {wp = "Finnmark"}, } export.norway_group = { placename_to_key = false, default_container = "挪威", default_placetype = "county", data = export.norwegian_counties, } export.pakistan_provinces_and_territories = { ["自由克什米爾"] = {wp = "Azad Kashmir", placetype = {"administrative territory", "autonomous territory", "territory"}}, ["俾路支省"] = {wp = "Balochistan, Pakistan"}, ["吉爾吉特-巴爾蒂斯坦"] = {wp = "Gilgit-Baltistan", placetype = {"administrative territory", "territory"}}, ["伊斯蘭馬巴德首都直轄區"] = {wp = "Islamabad Capital Territory", placetype = {"federal territory", "administrative territory", "territory"}}, ["開伯爾-普赫圖赫瓦省"] = {wp = "Khyber Pakhtunkhwa"}, ["旁遮普省(巴基斯坦)"] = {wp = "Punjab, Pakistan"}, ["信德省"] = {wp = "Sindh"}, } export.pakistan_group = { placename_to_key = false, default_container = "巴基斯坦", default_placetype = "province", data = export.pakistan_provinces_and_territories, } export.philippines_provinces = { ["阿布拉省"] = {wp = "Abra (province)"}, ["北阿古桑省"] = {wp = "Agusan del Norte"}, ["南阿古桑省"] = {wp = "Agusan del Sur"}, ["阿克蘭省"] = {wp = "Aklan"}, ["阿爾拜省"] = {wp = "Albay"}, ["安蒂克省"] = {wp = "Antique (province)"}, ["阿帕亞沃省"] = {wp = "Apayao"}, ["奧羅拉省"] = {wp = "Aurora (province)"}, ["巴西蘭省"] = {wp = "Basilan"}, ["巴丹省"] = {wp = "Bataan"}, ["巴達內斯省"] = {wp = "Batanes"}, ["八打雁省"] = {wp = "Batangas"}, ["本格特省"] = {wp = "Benguet"}, ["比利蘭省"] = {wp = "Biliran"}, ["保和省"] = {wp = "Bohol"}, ["布基農省"] = {wp = "Bukidnon"}, ["布拉干省"] = {wp = "Bulacan"}, ["卡加延省"] = {wp = "Cagayan"}, ["北甲馬仁省"] = {wp = "Camarines Norte"}, ["南甲馬仁省"] = {wp = "Camarines Sur"}, ["卡米金省"] = {wp = "Camiguin"}, ["卡皮斯省"] = {wp = "Capiz"}, ["卡坦端內斯省"] = {wp = "Catanduanes"}, ["甲米地省"] = {wp = "Cavite"}, ["宿霧省"] = {wp = "Cebu"}, ["哥打巴托省"] = {wp = "Cotabato"}, ["達沃德奧羅省"] = {wp = "Davao de Oro"}, ["北達沃省"] = {wp = "Davao del Norte"}, ["南達沃省"] = {wp = "Davao del Sur"}, ["西達沃省"] = {wp = "Davao Occidental"}, ["東達沃省"] = {wp = "Davao Oriental"}, ["迪納加特群島省"] = {wp = "Dinagat Islands"}, ["東薩馬省"] = {wp = "Eastern Samar"}, ["吉馬拉斯省"] = {wp = "Guimaras"}, ["伊富高省"] = {wp = "Ifugao"}, ["北伊羅科斯省"] = {wp = "Ilocos Norte"}, ["南伊羅科斯省"] = {wp = "Ilocos Sur"}, ["伊洛伊洛省"] = {wp = "Iloilo"}, ["伊莎貝拉省"] = {wp = "Isabela (province)"}, ["卡林加省"] = {wp = "Kalinga (province)"}, ["拉烏尼翁省"] = {wp = "La Union"}, ["拉古納省"] = {wp = "Laguna (province)"}, ["北拉瑙省"] = {wp = "Lanao del Norte"}, ["南拉瑙省"] = {wp = "Lanao del Sur"}, ["萊特省"] = {wp = "Leyte (province)"}, ["北馬京達瑙省"] = {wp = "Maguindanao del Norte"}, ["南馬京達瑙省"] = {wp = "Maguindanao del Sur"}, ["馬林杜克省"] = {wp = "Marinduque"}, ["馬斯巴特省"] = {wp = "Masbate"}, ["西米薩米斯省"] = {wp = "Misamis Occidental"}, ["東米薩米斯省"] = {wp = "Misamis Oriental"}, ["山岳省"] = {wp = "Mountain Province"}, ["西內格羅斯省"] = {wp = "Negros Occidental"}, ["東內格羅斯省"] = {wp = "Negros Oriental"}, ["北薩馬省"] = {wp = "Northern Samar"}, ["新怡詩夏省"] = {wp = "Nueva Ecija"}, ["新比斯開省"] = {wp = "Nueva Vizcaya"}, ["西民都洛省"] = {wp = "Occidental Mindoro"}, ["東民都洛省"] = {wp = "Oriental Mindoro"}, ["巴拉望省"] = {wp = "Palawan"}, ["邦板牙省"] = {wp = "Pampanga"}, ["邦阿西楠省"] = {wp = "Pangasinan"}, ["奎松省"] = {wp = "Quezon"}, ["基里諾省"] = {wp = "Quirino"}, ["黎剎省"] = {wp = "Rizal (province)"}, ["朗布隆省"] = {wp = "Romblon"}, ["薩馬省"] = {wp = "Samar (province)"}, ["薩蘭加尼省"] = {wp = "Sarangani"}, ["錫基霍爾省"] = {wp = "Siquijor"}, ["索索貢省"] = {wp = "Sorsogon"}, ["南哥打巴托省"] = {wp = "South Cotabato"}, ["南萊特省"] = {wp = "Southern Leyte"}, ["蘇丹庫達拉省"] = {wp = "Sultan Kudarat"}, ["蘇祿省"] = {wp = "Sulu"}, ["北蘇里高省"] = {wp = "Surigao del Norte"}, ["南蘇里高省"] = {wp = "Surigao del Sur"}, ["塔拉克省"] = {wp = "Tarlac"}, ["塔威塔威省"] = {wp = "Tawi-Tawi"}, ["三描禮士省"] = {wp = "Zambales"}, ["北三寶顏省"] = {wp = "Zamboanga del Norte"}, ["南三寶顏省"] = {wp = "Zamboanga del Sur"}, ["三寶顏錫布蓋省"] = {wp = "Zamboanga Sibugay"}, ["馬尼拉都會區"] = {wp = "Metro Manila", placetype = {"region", "province"}}, } export.philippines_group = { placename_to_key = false, default_container = "菲律賓", default_placetype = "province", data = export.philippines_provinces, } export.poland_voivodeships = { ["下西里西亞省"] = {wp = "Lower Silesian Voivodeship"}, ["庫亞維-波美拉尼亞省"] = {wp = "Kuyavian-Pomeranian Voivodeship"}, ["盧布林省"] = {wp = "Lublin Voivodeship"}, ["盧布斯省"] = {wp = "Lubusz Voivodeship"}, ["羅茲省"] = {wp = "Łódź Voivodeship"}, ["小波蘭省"] = {wp = "Lesser Poland Voivodeship"}, ["馬佐夫舍省"] = {wp = "Masovian Voivodeship"}, ["奧波萊省"] = {wp = "Opole Voivodeship"}, ["喀爾巴阡山省"] = {wp = "Subcarpathian Voivodeship"}, ["波德拉謝省"] = {wp = "Podlaskie Voivodeship"}, ["波美拉尼亞省"] = {wp = "Pomeranian Voivodeship"}, ["西里西亞省"] = {wp = "Silesian Voivodeship"}, ["神聖十字省"] = {wp = "Świętokrzyskie Voivodeship"}, ["瓦爾米亞-馬祖里省"] = {wp = "Warmian-Masurian Voivodeship"}, ["大波蘭省"] = {wp = "Greater Poland Voivodeship"}, ["西波美拉尼亞省"] = {wp = "West Pomeranian Voivodeship"}, } export.poland_group = { placename_to_key = false, default_container = "波蘭", default_placetype = "voivodeship", data = export.poland_voivodeships, } export.portugal_districts_and_autonomous_regions = { ["亞速爾群島"] = {wp = "Azores", placetype = {"autonomous region", "region"}}, ["阿維羅區"] = {wp = "Aveiro District"}, ["貝雅區"] = {wp = "Beja District"}, ["布拉加區"] = {wp = "Braga District"}, ["布拉干薩區"] = {wp = "Bragança District"}, ["卡斯特洛布蘭科區"] = {wp = "Castelo Branco District"}, ["科英布拉區"] = {wp = "Coimbra District"}, ["埃武拉區"] = {wp = "Évora District"}, ["法魯區"] = {wp = "Faro District"}, ["瓜達區"] = {wp = "Guarda District"}, ["萊里亞區"] = {wp = "Leiria District"}, ["里斯本區"] = {wp = "Lisbon District"}, ["馬德拉島"] = {wp = "Madeira", placetype = {"autonomous region", "region"}}, ["波塔萊格里區"] = {wp = "Portalegre District"}, ["波爾圖區"] = {wp = "Porto District"}, ["聖塔倫區"] = {wp = "Santarém District"}, ["塞圖巴爾區"] = {wp = "Setúbal District"}, ["維亞納堡區"] = {wp = "Viana do Castelo District"}, ["維拉雷亞爾區"] = {wp = "Vila Real District"}, ["維塞烏區"] = {wp = "Viseu District"}, } export.portugal_group = { placename_to_key = false, default_container = "葡萄牙", default_placetype = "district", data = export.portugal_districts_and_autonomous_regions, } local russia_oblast = {placetype = "oblast"} local russia_krai = {placetype = "krai"} local russia_republic = {placetype = "republic"} local russia_autonomous_okrug = {placetype = {"autonomous okrug", "okrug"}} export.russia_federal_subjects = { -- autonomous oblast ["猶太自治州"] = {placetype = {"autonomous oblast", "oblast"}, wp = "Jewish Autonomous Oblast"}, -- autonomous okrugs ["楚科奇自治區"] = {wp = "Chukotka Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西自治區"] = {wp = "Khanty-Mansi Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西亞"] = {alias_of = "漢特-曼西自治區"}, ["涅涅茨自治區"] = {wp = "Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["亞馬洛-涅涅茨自治區"] = {wp = "Yamalo-Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, -- krais ["阿爾泰邊疆區"] = {wp = "Altai Krai", placetype = "krai"}, ["堪察加邊疆區"] = {wp = "Kamchatka Krai", placetype = "krai"}, ["哈巴羅夫斯克邊疆區"] = {wp = "Khabarovsk Krai", placetype = "krai"}, ["克拉斯諾達爾邊疆區"] = {wp = "Krasnodar Krai", placetype = "krai"}, ["克拉斯諾亞爾斯克邊疆區"] = {wp = "Krasnoyarsk Krai", placetype = "krai"}, ["彼爾姆邊疆區"] = {wp = "Perm Krai", placetype = "krai"}, ["濱海邊疆區"] = {wp = "Primorsky Krai", placetype = "krai"}, ["斯塔夫羅波爾邊疆區"] = {wp = "Stavropol Krai", placetype = "krai"}, ["外貝加爾邊疆區"] = {wp = "Zabaykalsky Krai", placetype = "krai"}, -- oblasts ["阿穆爾州"] = russia_oblast, ["阿爾漢格爾斯克州"] = russia_oblast, ["阿斯特拉罕州"] = russia_oblast, ["別爾哥羅德州"] = russia_oblast, ["布良斯克州"] = russia_oblast, ["車裡雅賓斯克州"] = russia_oblast, ["伊爾庫茨克州"] = russia_oblast, ["伊萬諾沃州"] = russia_oblast, ["加里寧格勒州"] = russia_oblast, ["卡盧加州"] = russia_oblast, ["克麥羅沃州"] = russia_oblast, ["基洛夫州"] = russia_oblast, ["科斯特羅馬州"] = russia_oblast, ["庫爾干州"] = russia_oblast, ["庫爾斯克州"] = russia_oblast, ["列寧格勒州"] = russia_oblast, ["利佩茨克州"] = russia_oblast, ["馬加丹州"] = russia_oblast, ["莫斯科州"] = russia_oblast, ["摩爾曼斯克州"] = russia_oblast, ["下諾夫哥羅德州"] = russia_oblast, ["諾夫哥羅德州"] = russia_oblast, ["新西伯利亞州"] = russia_oblast, ["鄂木斯克州"] = russia_oblast, ["奧倫堡州"] = russia_oblast, ["奧廖爾州"] = russia_oblast, ["奔薩州"] = russia_oblast, ["普斯科夫州"] = russia_oblast, ["羅斯托夫州"] = russia_oblast, ["梁贊州"] = russia_oblast, ["薩哈林州"] = {wp = "Sakhalin Oblast", placetype = "oblast"}, ["薩馬拉州"] = russia_oblast, ["薩拉托夫州"] = russia_oblast, ["斯摩棱斯克州"] = russia_oblast, ["斯維爾德洛夫斯克州"] = russia_oblast, ["坦波夫州"] = russia_oblast, ["托木斯克州"] = russia_oblast, ["圖拉州"] = russia_oblast, ["特維爾州"] = russia_oblast, ["秋明州"] = russia_oblast, ["烏里揚諾夫斯克州"] = russia_oblast, ["弗拉基米爾州"] = russia_oblast, ["伏爾加格勒州"] = russia_oblast, ["沃洛格達州"] = russia_oblast, ["沃羅涅日州"] = russia_oblast, ["雅羅斯拉夫爾州"] = russia_oblast, -- republics ["阿迪格共和國"] = russia_republic, ["巴什科爾托斯坦共和國"] = russia_republic, ["布里亞特共和國"] = russia_republic, ["達吉斯坦共和國"] = russia_republic, ["印古什共和國"] = russia_republic, ["卡爾梅克共和國"] = russia_republic, ["卡累利亞共和國"] = {wp = "Republic of Karelia", placetype = "republic"}, ["哈卡斯共和國"] = russia_republic, ["莫爾多瓦共和國"] = russia_republic, ["北奧塞梯-阿蘭尼亞共和國"] = {wp = "North Ossetia–Alania", placetype = "republic"}, ["北奧塞梯"] = {alias_of = "北奧塞梯-阿蘭尼亞共和國"}, ["韃靼斯坦共和國"] = russia_republic, ["阿爾泰共和國"] = {wp = "Altai Republic", placetype = "republic"}, ["車臣共和國"] = russia_republic, ["楚瓦什共和國"] = russia_republic, ["卡巴爾達-巴爾卡爾共和國"] = russia_republic, ["卡拉恰伊-切爾克斯共和國"] = russia_republic, ["科米共和國"] = {wp = "Komi Republic", placetype = "republic"}, ["馬里埃爾共和國"] = russia_republic, ["薩哈共和國"] = {wp = "Sakha Republic", placetype = "republic"}, ["雅庫特"] = {alias_of = "薩哈共和國"}, ["圖瓦共和國"] = russia_republic, ["烏德穆爾特共和國"] = russia_republic, } export.russia_group = { placename_to_key = false, default_container = "俄羅斯", default_placetype = "oblast", data = export.russia_federal_subjects, } export.saudi_arabia_provinces = { ["利雅得省"] = {wp = "Riyadh Province"}, ["麥加省"] = {wp = "Mecca Province"}, ["東部省(沙特)"] = {wp = "Eastern Province, Saudi Arabia", no_auto_augment_container = true}, ["麥地那省"] = {wp = "Medina Province"}, ["阿西爾省"] = {wp = "Asir"}, ["吉贊省"] = {wp = "Jazan Province"}, ["卡西姆省"] = {wp = "Al-Qassim Province"}, ["塔布克省"] = {wp = "Tabuk Province"}, ["哈伊爾省"] = {wp = "Ha'il Province"}, ["焦夫省"] = {wp = "Al-Jawf Province"}, ["納季蘭省"] = {wp = "Najran Province"}, ["北部邊界省"] = {wp = "Northern Borders Province"}, ["巴哈省"] = {wp = "Al-Bahah Province"}, } export.saudi_arabia_group = { placename_to_key = false, default_container = "沙烏地阿拉伯", default_placetype = "province", data = export.saudi_arabia_provinces, } export.south_africa_provinces = { ["東開普省"] = {wp = "Eastern Cape"}, ["自由邦省"] = {wp = "Free State (South African province)"}, ["豪登省"] = {wp = "Gauteng"}, ["夸祖魯-納塔爾省"] = {wp = "KwaZulu-Natal"}, ["林波波省"] = {wp = "Limpopo"}, ["姆普馬蘭加省"] = {wp = "Mpumalanga"}, ["西北省(南非)"] = {wp = "North West (South African province)"}, ["北開普省"] = {wp = "Northern Cape"}, ["西開普省"] = {wp = "Western Cape"}, } export.south_africa_group = { placename_to_key = false, default_container = "南非", default_placetype = "province", data = export.south_africa_provinces, } export.ukraine_oblasts = { ["切爾卡瑟州"] = {wp = "Cherkasy Oblast"}, ["切爾尼戈夫州"] = {wp = "Chernihiv Oblast"}, ["切爾諾夫策州"] = {wp = "Chernivtsi Oblast"}, ["第聶伯羅彼得羅夫斯克州"] = {wp = "Dnipropetrovsk Oblast"}, ["頓涅茨克州"] = {wp = "Donetsk Oblast"}, ["伊萬諾-弗蘭科夫斯克州"] = {wp = "Ivano-Frankivsk Oblast"}, ["哈爾科夫州"] = {wp = "Kharkiv Oblast"}, ["赫爾松州"] = {wp = "Kherson Oblast"}, ["赫梅利尼茨基州"] = {wp = "Khmelnytskyi Oblast"}, ["基洛夫格勒州"] = {wp = "Kirovohrad Oblast"}, ["基輔州"] = {wp = "Kyiv Oblast"}, ["盧甘斯克州"] = {wp = "Luhansk Oblast"}, ["利沃夫州"] = {wp = "Lviv Oblast"}, ["尼古拉耶夫州"] = {wp = "Mykolaiv Oblast"}, ["敖德薩州"] = {wp = "Odesa Oblast"}, ["波爾塔瓦州"] = {wp = "Poltava Oblast"}, ["羅夫諾州"] = {wp = "Rivne Oblast"}, ["蘇梅州"] = {wp = "Sumy Oblast"}, ["捷爾諾波爾州"] = {wp = "Ternopil Oblast"}, ["文尼察州"] = {wp = "Vinnytsia Oblast"}, ["沃里尼亞州"] = {wp = "Volyn Oblast"}, ["外喀爾巴阡州"] = {wp = "Zakarpattia Oblast"}, ["扎波羅熱州"] = {wp = "Zaporizhzhia Oblast"}, ["日托米爾州"] = {wp = "Zhytomyr Oblast"}, } export.ukraine_group = { placename_to_key = false, default_container = "烏克蘭", default_placetype = "oblast", data = export.ukraine_oblasts, } export.wales_principal_areas = { ["布拉艾諾格溫特"] = {wp = "Blaenau Gwent"}, ["布里真德"] = {wp = "Bridgend County Borough"}, ["卡菲利"] = {wp = "Caerphilly County Borough"}, ["卡馬森郡"] = {wp = "Carmarthenshire", placetype = "county"}, ["克雷地基昂"] = {wp = "Ceredigion", placetype = "county"}, ["科溫"] = {wp = "Conwy County Borough"}, ["登比郡"] = {wp = "Denbighshire", placetype = "county"}, ["弗林特郡"] = {wp = "Flintshire", placetype = "county"}, ["格溫內德"] = {wp = "Gwynedd", placetype = "county"}, ["安格爾西島"] = {wp = "Isle of Anglesey", placetype = "county"}, ["默瑟蒂德菲爾"] = {wp = "Merthyr Tydfil County Borough"}, ["蒙茅斯郡"] = {wp = "Monmouthshire", placetype = "county"}, ["尼斯-波特塔爾博特"] = {wp = "Neath Port Talbot"}, ["彭布羅克郡"] = {wp = "Pembrokeshire", placetype = "county"}, ["波伊斯"] = {wp = "Powys", placetype = "county"}, ["朗達坎農塔夫"] = {wp = "Rhondda Cynon Taf"}, ["托爾范"] = {wp = "Torfaen"}, ["格拉摩根谷"] = {wp = "Vale of Glamorgan"}, ["雷克瑟姆"] = {wp = "Wrexham County Borough"}, } export.wales_group = { placename_to_key = false, default_container = {key = "威爾斯", placetype = "constituent country"}, default_placetype = "county borough", data = export.wales_principal_areas, } ----------------------------------------------------------------------------------- -- City groups -- ----------------------------------------------------------------------------------- export.australia_cities = { ["阿德萊德"] = {container = "南澳大利亞", wp = "Adelaide"}, ["布里斯班"] = {container = "昆士蘭", wp = "Brisbane"}, ["坎培拉"] = {container = "澳大利亞首都領地", wp = "Canberra"}, ["墨爾本"] = {container = "維多利亞州", wp = "Melbourne"}, ["紐卡素"] = {container = "新南威爾斯", wp = "Newcastle, New South Wales"}, ["伯斯"] = {container = "西澳大利亞", wp = "Perth"}, ["悉尼"] = {container = "新南威爾斯", wp = "Sydney"}, } export.australia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "澳大利亞", default_placetype = "city", default_is_city = true, data = export.australia_cities, } export.brazil_cities = { ["聖保羅"] = {container = "聖保羅州", wp = "São Paulo"}, ["里約熱內盧"] = {container = "里約熱內盧州", wp = "Rio de Janeiro"}, ["貝洛奧里藏特"] = {container = "米納斯吉拉斯", wp = "Belo Horizonte"}, ["累西腓"] = {container = "伯南布哥州", wp = "Recife"}, ["阿雷格里港"] = {container = "南里奧格蘭德州", wp = "Porto Alegre"}, ["巴西利亞"] = {container = "巴西聯邦區", wp = "Brasília"}, ["福塔萊薩"] = {container = "塞阿拉州", wp = "Fortaleza"}, ["薩爾瓦多"] = {container = "巴伊亞", wp = "Salvador, Bahia"}, ["庫里蒂巴"] = {container = "巴拉那州", wp = "Curitiba"}, ["坎皮納斯"] = {container = "聖保羅州", wp = "Campinas"}, ["戈亞尼亞"] = {container = "戈亞斯州", wp = "Goiânia"}, ["瑪瑙斯"] = {container = "亞馬遜州", wp = "Manaus"}, ["伯利恆"] = {container = "帕拉州", wp = "Belém, Pará"}, ["維多利亞"] = {container = "聖埃斯皮里圖州", wp = "Vitória, Espírito Santo"}, ["聖路易斯"] = {container = "馬拉尼昂州", wp = "São Luís"}, ["納塔爾"] = {container = "北里奧格蘭德州", wp = "Natal, Rio Grande do Norte"}, ["弗洛里亞諾波利斯"] = {container = "聖卡塔琳娜州", wp = "Florianópolis"}, ["馬塞約"] = {container = "阿拉戈亞斯州", wp = "Maceió"}, ["若昂佩索阿"] = {container = "帕拉伊巴州", wp = "João Pessoa"}, ["特雷齊納"] = {container = "皮奧伊州", wp = "Teresina"}, ["隆德里納"] = {container = "巴拉那州", wp = "Londrina"}, } export.brazil_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "巴西", default_placetype = "city", default_is_city = true, data = export.brazil_cities, } export.canada_cities = { ["多倫多"] = {container = "安大略", wp = "Toronto"}, ["蒙特婁"] = {container = "魁北克", wp = "Montreal"}, ["溫哥華"] = {container = "英屬哥倫比亞", wp = "Vancouver"}, ["卡加里"] = {container = "亞伯達", wp = "Calgary"}, ["愛民頓"] = {container = "亞伯達", wp = "Edmonton"}, ["渥太華"] = {container = "安大略", wp = "Ottawa"}, ["魁北克城"] = {container = "魁北克", wp = "Quebec City"}, ["溫尼伯"] = {container = "馬尼托巴", wp = "Winnipeg"}, ["漢密爾頓"] = {container = "安大略", wp = "Hamilton, Ontario"}, } export.canada_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "加拿大", default_placetype = "city", default_is_city = true, data = export.canada_cities, } export.france_cities = { ["巴黎"] = {container = "法蘭西島大區", wp = "Paris"}, ["里昂"] = {container = "奧弗涅-隆河-阿爾卑斯大區", wp = "Lyon"}, ["馬賽"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Marseille"}, ["里爾"] = {container = "上法蘭西大區", wp = "Lille"}, ["波爾多"] = {container = "新阿基坦大區", wp = "Bordeaux"}, ["圖盧茲"] = {container = "奧克西塔尼大區", wp = "Toulouse"}, ["尼斯"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Nice"}, ["南特"] = {container = "盧瓦爾河地區大區", wp = "Nantes"}, ["史特拉斯堡"] = {container = "大東部大區", wp = "Strasbourg"}, ["雷恩"] = {container = "布列塔尼大區", wp = "Rennes"}, } export.france_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "法國", default_placetype = "city", default_is_city = true, data = export.france_cities, } export.germany_cities = { ["科隆"] = {container = "北萊茵-威斯特法倫", wp = "Cologne"}, ["杜塞爾多夫"] = {container = "北萊茵-威斯特法倫", wp = "Düsseldorf"}, ["多特蒙德"] = {container = "北萊茵-威斯特法倫", wp = "Dortmund"}, ["埃森"] = {container = "北萊茵-威斯特法倫", wp = "Essen"}, ["柏林"] = {wp = "Berlin"}, ["法蘭克福"] = {container = "黑森", wp = "Frankfurt"}, ["漢堡"] = {wp = "Hamburg"}, ["慕尼黑"] = {container = "巴伐利亞", wp = "Munich"}, ["斯圖加特"] = {container = "巴登-符騰堡", wp = "Stuttgart"}, ["曼海姆"] = {container = "巴登-符騰堡", wp = "Mannheim"}, ["紐倫堡"] = {container = "巴伐利亞", wp = "Nuremberg"}, ["漢諾威"] = {container = "下薩克森", wp = "Hanover"}, ["比勒費爾德"] = {container = "北萊茵-威斯特法倫", wp = "Bielefeld"}, ["萊比錫"] = {container = "薩克森", wp = "Leipzig"}, ["亞琛"] = {container = "北萊茵-威斯特法倫", wp = "Aachen"}, ["不來梅"] = {wp = "Bremen"}, } export.germany_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "德國", default_placetype = "city", default_is_city = true, data = export.germany_cities, } export.india_cities = { ["德里"] = {container = {key = "德里", placetype = "union territory"}, wp = "Delhi"}, ["孟買"] = {container = "馬哈拉施特拉邦", wp = "Mumbai"}, ["加爾各答"] = {container = "西孟加拉邦", wp = "Kolkata"}, ["班加羅爾"] = {container = "卡納塔克邦", wp = "Bengaluru"}, ["金奈"] = {container = "泰米爾納德邦", wp = "Chennai"}, ["海德拉巴"] = {container = "特倫甘納邦", wp = "Hyderabad"}, ["艾哈邁達巴德"] = {container = "古吉拉特邦", wp = "Ahmedabad"}, ["浦那"] = {container = "馬哈拉施特拉邦", wp = "Pune"}, ["蘇拉特"] = {container = "古吉拉特邦", wp = "Surat"}, ["勒克瑙"] = {container = "北方邦", wp = "Lucknow"}, ["齋浦爾"] = {container = "拉賈斯坦邦", wp = "Jaipur"}, ["坎普爾"] = {container = "北方邦", wp = "Kanpur"}, ["那格浦爾"] = {container = "馬哈拉施特拉邦", wp = "Nagpur"}, ["巴特那"] = {container = "比哈爾邦", wp = "Patna"}, ["瓦拉納西"] = {container = "北方邦", wp = "Varanasi"}, ["印多爾"] = {container = "中央邦", wp = "Indore"}, ["博帕爾"] = {container = "中央邦", wp = "Bhopal"}, ["阿格拉"] = {container = "北方邦", wp = "Agra"}, ["科欽"] = {container = "喀拉拉邦", wp = "Kochi"}, ["維沙卡帕特南"] = {container = "安得拉邦", wp = "Visakhapatnam"}, ["齋普爾"] = {alias_of = "齋浦爾"}, } export.india_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "印度", default_placetype = "city", default_is_city = true, data = export.india_cities, } export.indonesia_cities = { ["雅加達"] = {container = "雅加達首都特區", wp = "Jakarta"}, ["泗水"] = {container = "東爪哇省", wp = "Surabaya"}, ["勿加泗"] = {container = "西爪哇省", wp = "Bekasi"}, ["萬隆"] = {container = "西爪哇省", wp = "Bandung"}, ["棉蘭"] = {container = "北蘇門答臘省", wp = "Medan"}, ["德波"] = {container = "西爪哇省", wp = "Depok"}, ["萬丹市"] = {container = "萬丹省", wp = "Tangerang"}, ["巨港"] = {container = "南蘇門答臘省", wp = "Palembang"}, ["三寶壟"] = {container = "中爪哇省", wp = "Semarang"}, ["望加錫"] = {container = "南蘇拉威西省", wp = "Makassar"}, ["武端"] = {container = "廖內群島省", wp = "Batam"}, ["茂物"] = {container = "西爪哇省", wp = "Bogor"}, ["北干巴魯"] = {container = "廖內省", wp = "Pekanbaru"}, ["班達爾楠榜"] = {container = "楠榜省", wp = "Bandar Lampung"}, ["巴東"] = {container = "西蘇門答臘省", wp = "Padang"}, ["薩馬林達"] = {container = "東加里曼丹省", wp = "Samarinda"}, ["瑪琅"] = {container = "東爪哇省", wp = "Malang"}, ["日惹"] = {container = "日惹特區", wp = "Yogyakarta"}, ["登巴薩"] = {container = "峇里省", wp = "Denpasar"}, ["哲勒貢"] = {container = "西爪哇省", wp = "Cirebon"}, ["梭羅"] = {container = "中爪哇省", wp = "Surakarta"}, ["馬辰"] = {container = "南加里曼丹省", wp = "Banjarmasin"}, ["打橫"] = {container = "西爪哇省", wp = "Tasikmalaya"}, } export.indonesia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "印度尼西亞", default_placetype = "city", default_is_city = true, data = export.indonesia_cities, } export.italy_cities = { ["米蘭"] = {container = "倫巴第", wp = "Milan"}, ["那不勒斯"] = {container = "坎帕尼亞", wp = "Naples"}, ["羅馬"] = {container = "拉齊奧", wp = "Rome"}, ["都靈"] = {container = "皮埃蒙特", wp = "Turin"}, ["威尼斯"] = {container = "威尼托", wp = "Venice"}, ["佛羅倫斯"] = {container = "托斯卡納", wp = "Florence"}, ["巴里"] = {container = "普利亞", wp = "Bari"}, ["巴勒莫"] = {container = "西西里", wp = "Palermo"}, ["卡塔尼亞"] = {container = "西西里", wp = "Catania"}, ["布雷西亞"] = {container = "倫巴第", wp = "Brescia"}, ["熱那亞"] = {container = "利古里亞", wp = "Genoa"}, } export.italy_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "意大利", default_placetype = "city", default_is_city = true, data = export.italy_cities, } export.japan_cities = { ["東京"] = {keydesc = "[[東京]]都會區,[[日本]]的[[首都]]和[[都]]級行政區", placetype = {"city", "prefecture"}, divs = { {type = "special wards", container_parent_type = false}, {type = "cities", prep = "in"}, }, }, ["橫濱"] = {container = "神奈川縣", wp = "Yokohama"}, ["大阪"] = {container = "大阪府", wp = "Osaka"}, ["名古屋"] = {container = "愛知縣", wp = "Nagoya"}, ["札幌"] = {container = "北海道", wp = "Sapporo"}, ["福岡"] = {container = "福岡縣", wp = "Fukuoka"}, ["神戶"] = {container = "兵庫縣", wp = "Kobe"}, ["京都"] = {container = "京都府", wp = "Kyoto"}, ["川崎"] = {container = "神奈川縣", wp = "Kawasaki, Kanagawa"}, ["廣島"] = {container = "廣島縣", wp = "Hiroshima"}, ["仙台"] = {container = "宮城縣", wp = "Sendai"}, ["北九州"] = {container = "福岡縣", wp = "Kitakyushu"}, ["新潟"] = {container = "新潟縣", wp = "Niigata (city)"}, ["靜岡"] = {container = "靜岡縣", wp = "Shizuoka (city)"}, ["岡山"] = {container = "岡山縣", wp = "Okayama"}, ["熊本"] = {container = "熊本縣", wp = "Kumamoto"}, ["鹿兒島"] = {container = "鹿兒島縣", wp = "Kagoshima"}, } export.japan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "prefecture"), default_container = "日本", default_placetype = "city", default_is_city = true, data = export.japan_cities, } export.mexico_cities = { ["墨西哥城"] = {wp = "墨西哥城"}, ["蒙特雷"] = {container = "新萊昂州", wp = "Monterrey"}, ["瓜達拉哈拉"] = {container = "哈利斯科州", wp = "Guadalajara"}, ["普埃布拉市"] = {container = "普埃布拉州", wp = "Puebla (city)"}, ["托盧卡"] = {container = "墨西哥州", wp = "Toluca"}, ["蒂華納"] = {container = "下加利福尼亞州", wp = "Tijuana"}, ["萊昂"] = {container = "瓜納華托州", wp = "León, Guanajuato"}, ["克雷塔羅市"] = {container = "克雷塔羅州", wp = "Querétaro (city)"}, ["華雷斯城"] = {container = "奇瓦瓦州", wp = "Ciudad Juárez"}, ["托雷翁"] = {container = "科阿韋拉州", wp = "Torreón"}, ["梅里達"] = {container = "尤卡坦州", wp = "Mérida, Yucatán"}, ["聖路易斯波托西市"] = {container = "聖路易斯波托西州", wp = "San Luis Potosí (city)"}, ["阿瓜斯卡連特斯市"] = {container = "阿瓜斯卡連特斯州", wp = "Aguascalientes (city)"}, ["墨西卡利"] = {container = "下加利福尼亞州", wp = "Mexicali"}, } export.mexico_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "墨西哥", default_placetype = "city", default_is_city = true, data = export.mexico_cities, } export.nigeria_cities = { ["拉各斯"] = {container = "拉各斯州", wp = "Lagos"}, ["卡諾市"] = {container = "卡諾州", wp = "Kano (city)"}, ["伊巴丹"] = {container = "奧約州", wp = "Ibadan"}, ["阿布賈"] = {container = {key = "阿布賈聯邦首都轄區", placetype = "federal territory"}, wp = "Abuja"}, ["哈科特港"] = {container = "河流州", wp = "Port Harcourt"}, ["卡杜納市"] = {container = "卡杜納州", wp = "Kaduna (city)"}, ["貝寧城"] = {container = "埃多州", wp = "Benin City"}, ["阿巴"] = {container = "阿比亞州", wp = "Aba, Nigeria"}, ["奧尼查"] = {container = "阿南布拉州", wp = "Onitsha"}, ["邁杜古里"] = {container = "博爾諾州", wp = "Maiduguri"}, ["伊洛林"] = {container = "誇拉州", wp = "Ilorin"}, ["索科托市"] = {container = "索科托州", wp = "Sokoto (city)"}, ["喬斯"] = {container = "高原州", wp = "Jos"}, ["扎里亞"] = {container = "卡杜納州", wp = "Zaria"}, ["埃努古市"] = {container = "埃努古州", wp = "Enugu (city)"}, } export.nigeria_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "奈及利亞", default_placetype = "city", default_is_city = true, data = export.nigeria_cities, } export.pakistan_cities = { ["卡拉奇"] = {container = "信德省", wp = "Karachi"}, ["拉合爾"] = {container = "旁遮普省(巴基斯坦)", wp = "Lahore"}, ["拉瓦爾品第"] = {container = "旁遮普省(巴基斯坦)", wp = "Rawalpindi"}, ["伊斯蘭馬巴德"] = {container = {key = "伊斯蘭馬巴德首都直轄區", placetype = "federal territory"}, wp = "Islamabad"}, ["費薩拉巴德"] = {container = "旁遮普省(巴基斯坦)", wp = "Faisalabad"}, ["古傑蘭瓦拉"] = {container = "旁遮普省(巴基斯坦)", wp = "Gujranwala"}, ["海德拉巴(巴基斯坦)"] = {container = "信德省", wp = "Hyderabad, Pakistan"}, ["木爾坦"] = {container = "旁遮普省(巴基斯坦)", wp = "Multan"}, ["白沙瓦"] = {container = "開伯爾-普赫圖赫瓦省", wp = "Peshawar"}, ["奎達"] = {container = "俾路支省", wp = "Quetta"}, ["薩戈達"] = {container = "旁遮普省(巴基斯坦)", wp = "Sargodha"}, ["錫亞爾科特"] = {container = "旁遮普省(巴基斯坦)", wp = "Sialkot"}, } export.pakistan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "巴基斯坦", default_placetype = "city", default_is_city = true, data = export.pakistan_cities, } export.philippines_cities = { ["奎松市"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Quezon City"}, ["馬尼拉"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Manila"}, ["達沃市"] = {container = "南達沃省", wp = "Davao City"}, ["卡洛坎"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Caloocan"}, ["三寶顏市"] = {container = "南三寶顏省", wp = "Zamboanga City"}, ["宿霧市"] = {container = "宿霧省", wp = "Cebu City"}, ["安蒂波洛"] = {container = "黎剎省", wp = "Antipolo"}, ["卡加延德奧羅"] = {container = "東米薩米斯省", wp = "Cagayan de Oro"}, ["達斯馬里尼亞斯"] = {container = "甲米地省", wp = "Dasmariñas"}, ["棉蘭老將軍城"] = {container = "南哥打巴托省", wp = "General Santos"}, ["聖何塞德爾蒙特"] = {container = "布拉干省", wp = "San Jose del Monte"}, ["巴科洛德"] = {container = "西內格羅斯省", wp = "Bacolod"}, ["卡蘭巴"] = {container = "拉古納省", wp = "Calamba, Laguna"}, ["天使城"] = {container = "邦板牙省", wp = "Angeles City"}, ["伊洛伊洛市"] = {container = "伊洛伊洛省", wp = "Iloilo City"}, } export.philippines_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "菲律賓", default_placetype = "city", default_is_city = true, data = export.philippines_cities, } export.russia_cities = { ["莫斯科"] = {wp = "Moscow"}, ["聖彼得堡"] = {wp = "Saint Petersburg"}, ["新西伯利亞"] = {container = "新西伯利亞州", wp = "Novosibirsk"}, ["葉卡捷琳堡"] = {container = "斯維爾德洛夫斯克州", wp = "Yekaterinburg"}, ["下諾夫哥羅德"] = {container = "下諾夫哥羅德州", wp = "Nizhny Novgorod"}, ["喀山"] = {container = {key = "韃靼斯坦共和國", placetype = "republic"}, wp = "Kazan"}, ["車裡雅賓斯克市"] = {container = "車裡雅賓斯克州", wp = "Chelyabinsk"}, ["頓河畔羅斯托夫"] = {container = "羅斯托夫州", wp = "Rostov-on-Don"}, ["克拉斯諾達爾市"] = {container = {key = "克拉斯諾達爾邊疆區", placetype = "krai"}, wp = "Krasnodar"}, ["薩馬拉市"] = {container = "薩馬拉州", wp = "Samara"}, ["克拉斯諾亞爾斯克市"] = {container = {key = "克拉斯諾亞爾斯克邊疆區", placetype = "krai"}, wp = "Krasnoyarsk"}, ["烏法"] = {container = {key = "巴什科爾托斯坦共和國", placetype = "republic"}, wp = "Ufa"}, ["薩拉托夫市"] = {container = "薩拉托夫州", wp = "Saratov"}, ["鄂木斯克市"] = {container = "鄂木斯克州", wp = "Omsk"}, ["沃羅涅日市"] = {container = "沃羅涅日州", wp = "Voronezh"}, ["伏爾加格勒市"] = {container = "伏爾加格勒州", wp = "Volgograd"}, ["彼爾姆市"] = {container = {key = "彼爾姆邊疆區", placetype = "krai"}, wp = "Perm, Russia"}, } export.russia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "oblast"), default_container = "俄羅斯", default_placetype = "city", default_is_city = true, data = export.russia_cities, } export.saudi_arabia_cities = { ["利雅得"] = {container = "利雅得省", wp = "Riyadh"}, ["吉達"] = {container = "麥加省", wp = "Jeddah"}, ["達曼"] = {container = "東部省(沙特)", wp = "Dammam"}, ["麥加"] = {container = "麥加省", wp = "Mecca"}, ["麥地那"] = {container = "麥地那省", wp = "Medina"}, ["霍夫夫"] = {container = "東部省(沙特)", wp = "Hofuf"}, ["哈米斯穆沙伊特"] = {container = "阿西爾省", wp = "Khamis Mushait"}, } export.saudi_arabia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "沙烏地阿拉伯", default_placetype = "city", default_is_city = true, data = export.saudi_arabia_cities, } export.south_korea_cities = { ["首爾"] = {wp = "Seoul"}, ["釜山"] = {wp = "Busan"}, ["仁川"] = {wp = "Incheon"}, ["大邱"] = {wp = "Daegu"}, ["大田"] = {wp = "Daejeon"}, ["光州"] = {wp = "Gwangju"}, ["蔚山"] = {wp = "Ulsan"}, } export.south_korea_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "南韓", default_placetype = "city", default_is_city = true, data = export.south_korea_cities, } export.spain_cities = { ["馬德里"] = {container = "馬德里自治區", wp = "Madrid"}, ["巴塞羅那"] = {container = "加泰羅尼亞", wp = "Barcelona"}, ["瓦倫西亞"] = {container = "巴倫西亞", wp = "Valencia"}, ["塞維利亞"] = {container = "安達盧西亞", wp = "Seville"}, ["畢爾包"] = {container = "巴斯克", wp = "Bilbao"}, } export.spain_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "autonomous community"), default_container = "西班牙", default_placetype = "city", default_is_city = true, data = export.spain_cities, } export.taiwan_cities = { -- Special municipalities (province-level) ["臺北市"] = {placetype = "special municipality", wp = "臺北市"}, ["新北市"] = {placetype = "special municipality", wp = "新北市"}, ["桃園市"] = {placetype = "special municipality", wp = "桃園市"}, ["臺中市"] = {placetype = "special municipality", wp = "臺中市"}, ["臺南市"] = {placetype = "special municipality", wp = "臺南市"}, ["高雄市"] = {placetype = "special municipality", wp = "高雄市"}, -- these last three are not special municipalities ["嘉義市"] = {placetype = "city", wp = "嘉義市"}, ["新竹市"] = {placetype = "city", wp = "新竹市"}, ["基隆市"] = {placetype = "city", wp = "基隆市"}, } export.taiwan_cities_group = { key_to_placename = make_key_to_placename(nil, "市$"), placename_to_key = make_placename_to_key("市"), default_container = "臺灣", default_placetype = {"special municipality", "city"}, default_is_city = true, data = export.taiwan_cities, } export.united_kingdom_cities = { ["倫敦"] = {container = {key = "大倫敦", placetype = "county"}, wp = "London"}, ["曼徹斯特"] = {container = {key = "大曼徹斯特", placetype = "county"}, wp = "Manchester"}, ["伯明翰"] = {container = {key = "西密德蘭", placetype = "county"}, wp = "Birmingham"}, ["利物浦"] = {container = {key = "默西賽德郡", placetype = "county"}, wp = "Liverpool"}, ["格拉斯哥"] = {container = {key = "Glasgow市", placetype = "council area"}, wp = "Glasgow"}, ["利茲"] = {container = {key = "西約克郡", placetype = "county"}, wp = "Leeds"}, ["布里斯托"] = {container = {key = "英格蘭", placetype = "constituent country"}, wp = "Bristol"}, ["卡地夫"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Cardiff"}, ["愛丁堡"] = {container = {key = "Edinburgh市", placetype = "council area"}, wp = "Edinburgh"}, ["斯旺西"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Swansea"}, ["紐波特"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Newport, Wales"}, } export.united_kingdom_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "county"), default_container = "英國", default_placetype = "city", default_is_city = true, data = export.united_kingdom_cities, } export.united_states_cities = { ["紐約市"] = {container = "紐約", wp = "New York City"}, ["洛杉磯"] = {container = "加利福尼亞", wp = "Los Angeles"}, ["芝加哥"] = {container = "伊利諾伊", wp = "Chicago"}, ["華盛頓特區"] = {wp = "Washington, D.C."}, ["巴爾的摩"] = {container = "馬里蘭", wp = "Baltimore"}, ["聖荷西"] = {container = "加利福尼亞", wp = "San Jose, California"}, ["舊金山"] = {container = "加利福尼亞", wp = "San Francisco"}, ["波士頓"] = {container = "麻薩諸塞", wp = "Boston"}, ["達拉斯"] = {container = "德克薩斯", wp = "Dallas"}, ["費城"] = {container = "賓夕法尼亞", wp = "Philadelphia"}, ["休士頓"] = {container = "德克薩斯", wp = "Houston"}, ["邁阿密"] = {container = "佛羅里達", wp = "Miami"}, ["亞特蘭大"] = {container = "喬治亞", wp = "Atlanta"}, ["底特律"] = {container = "密西根", wp = "Detroit"}, ["鳳凰城"] = {container = "亞利桑那", wp = "Phoenix"}, ["西雅圖"] = {container = "華盛頓州", wp = "Seattle"}, ["明尼阿波利斯"] = {container = "明尼蘇達", wp = "Minneapolis"}, ["克里夫蘭"] = {container = "俄亥俄", wp = "Cleveland"}, ["丹佛"] = {container = "科羅拉多", wp = "Denver"}, ["聖地牙哥(美國)"] = {container = "加利福尼亞", wp = "San Diego"}, ["波特蘭(俄勒岡)"] = {container = "俄勒岡", wp = "Portland"}, ["聖路易斯"] = {container = "密蘇里", wp = "St. Louis"}, ["夏洛特"] = {container = "北卡羅來納", wp = "Charlotte"}, ["薩克拉門托"] = {container = "加利福尼亞", wp = "Sacramento"}, ["匹茲堡"] = {container = "賓夕法尼亞", wp = "Pittsburgh"}, ["鹽湖城"] = {container = "猶他", wp = "Salt Lake City"}, ["聖安東尼奧"] = {container = "德克薩斯", wp = "San Antonio"}, ["哥倫布"] = {container = "俄亥俄", wp = "Columbus"}, ["堪薩斯城"] = {container = "密蘇里", wp = "Kansas City metropolitan area"}, ["印第安納波利斯"] = {container = "印第安納", wp = "Indianapolis"}, ["拉斯維加斯"] = {container = "內華達", wp = "Las Vegas"}, ["辛辛那提"] = {container = "俄亥俄", wp = "Cincinnati"}, ["奧斯汀"] = {container = "德克薩斯", wp = "Austin"}, ["密爾沃基"] = {container = "威斯康辛", wp = "Milwaukee"}, ["羅利"] = {container = "北卡羅來納", wp = "Raleigh"}, ["納什維爾"] = {container = "田納西", wp = "Nashville"}, ["傑克遜維爾"] = {container = "佛羅里達", wp = "Jacksonville"}, ["新奧爾良"] = {container = "路易斯安那", wp = "New Orleans"}, ["路易斯維爾"] = {container = "肯塔基", wp = "Louisville"}, ["奧克拉荷馬城"] = {container = "奧克拉荷馬", wp = "Oklahoma City"}, ["孟菲斯"] = {container = "田納西", wp = "Memphis"}, ["伯明翰(美國)"] = {container = "阿拉巴馬", wp = "Birmingham, Alabama"}, ["弗雷斯諾"] = {container = "加利福尼亞", wp = "Fresno"}, ["里奇蒙"] = {container = "弗吉尼亞", wp = "Richmond"}, ["水牛城"] = {container = "紐約", wp = "Buffalo"}, ["艾爾帕索"] = {container = "德克薩斯", wp = "El Paso"}, ["阿爾伯克基"] = {container = "新墨西哥", wp = "Albuquerque"}, ["塔森"] = {container = "亞利桑那", wp = "Tucson"}, ["科羅拉多斯普林斯"] = {container = "科羅拉多", wp = "Colorado Springs"}, ["奧馬哈"] = {container = "內布拉斯加", wp = "Omaha"}, ["塔爾薩"] = {container = "奧克拉荷馬", wp = "Tulsa"}, } export.united_states_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "美國", default_placetype = "city", default_is_city = true, data = export.united_states_cities, } export.vietnam_cities = { ["胡志明市"] = {wp = "Ho Chi Minh City"}, ["西貢"] = {alias_of = "胡志明市"}, ["河內"] = {wp = "Hanoi"}, ["峴港"] = {wp = "Da Nang"}, ["海防"] = {wp = "Haiphong"}, ["邊和"] = {container = "同奈省", wp = "Biên Hòa", placetype = "city"}, ["芹苴"] = {wp = "Cần Thơ"}, ["順化"] = {wp = "Huế"}, } export.vietnam_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "越南", default_placetype = {"municipality", "city"}, default_is_city = true, data = export.vietnam_cities, } ----------------------------------------------------------------------------------- -- locations list -- ----------------------------------------------------------------------------------- export.locations = { export.continents_group, export.countries_group, export.country_like_entities_group, export.former_countries_group, export.united_states_group, export.united_kingdom_group, export.scotland_group, export.england_group, export.northern_ireland_group, export.ireland_group, export.wales_group, export.china_group, export.china_prefecture_level_cities_group, export.taiwan_group, export.canada_group, export.australia_group, export.india_group, export.japan_group, export.brazil_group, export.france_group, export.france_departments_group, export.germany_group, export.italy_group, export.spain_group, export.austria_group, export.bangladesh_group, export.egypt_group, export.finland_group, export.greece_group, export.indonesia_group, export.lebanon_group, export.malaysia_group, export.malta_group, export.mexico_group, export.moldova_group, export.morocco_group, export.netherlands_group, export.new_zealand_group, export.norway_group, export.pakistan_group, export.philippines_group, export.poland_group, export.portugal_group, export.romania_group, export.bulgaria_group, export.iran_group, export.russia_group, export.saudi_arabia_group, export.south_africa_group, export.laos_group, export.north_korea_group, export.south_korea_group, export.thailand_group, export.turkey_group, export.ukraine_group, export.vietnam_group, export.nigeria_group, export.new_york_boroughs_group, export.australia_cities_group, export.brazil_cities_group, export.canada_cities_group, export.france_cities_group, export.germany_cities_group, export.india_cities_group, export.indonesia_cities_group, export.italy_cities_group, export.japan_cities_group, export.mexico_cities_group, export.nigeria_cities_group, export.pakistan_cities_group, export.philippines_cities_group, export.russia_cities_group, export.saudi_arabia_cities_group, export.south_korea_cities_group, export.spain_cities_group, export.taiwan_cities_group, export.united_kingdom_cities_group, export.united_states_cities_group, export.vietnam_cities_group, export.misc_cities_group, } return export qvsvhvt7p4r5twmk2r8bbm0b5eheym1 9759513 9759445 2026-05-14T20:59:55Z TongcyDai 53191 9759513 Scribunto text/plain local export = {} export.force_cat = false local m_table = require("Module:table") local insert = table.insert local concat = table.concat local dump = mw.dumpObject local unpack = unpack or table.unpack --[==[ Chinese Wiktionary localization of [[Module:place/locations]]. All canonical location keys are in Chinese, matching what editors write in holonym parameters (e.g. {{place|zh|城市|s/中央邦|c/印度}}). English Wikipedia article names are stored in the `wp` field for cross-reference. The `the`, `british_spelling` and English-suffix-detection fields from enwikt are omitted as they are not applicable in Chinese. The helper functions (process_error through construct_linked_placename) are kept intact from enwikt's Module:place/locations to maintain API compatibility with Module:place/placetypes. ]==] ----------------------------------------------------------------------------------- -- Helper functions -- ----------------------------------------------------------------------------------- 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 function export.internal_error(fmt, ...) export.process_error("Internal error: " .. fmt, ...) end local internal_error = export.internal_error 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 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 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 == "country" or defcon.placetype == "constituent country") then return placename .. ", " .. defcon.key else return placename end end end 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 = "country"} 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", "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 spec.is_city = value_with_default(spec.is_city, group.default_placetype == "city") spec.initialized = true end 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 local placetype = spec.placetype or resolved_spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s", key) 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 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 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 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 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 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 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 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) -- Chinese has no articles; `the` field is unused but kept for API compatibility. return linked_placename end ----------------------------------------------------------------------------------- -- Local data helper factories -- ----------------------------------------------------------------------------------- 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 _, pat in ipairs(container_patterns) do local nsubs full_placename, nsubs = full_placename:gsub(pat, "") if nsubs > 0 then break end end end local elliptical_placename = full_placename if divtype_patterns then for _, pat in ipairs(divtype_patterns) do local nsubs elliptical_placename, nsubs = elliptical_placename:gsub(pat, "") if nsubs > 0 then break end end end return full_placename, elliptical_placename end end 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 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 -- Canonicalize a continent container key (string) to canonical container form. 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_container`", key) end ----------------------------------------------------------------------------------- -- Top-level tables -- ----------------------------------------------------------------------------------- export.continents = { ["地球"] = {placetype = "planet", addl_parents = {"nature"}, fulldesc = "=the planet [[Earth]] and the features found on it", wp = "Earth"}, ["非洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Africa"}, ["北非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "North Africa"}, ["中非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "Central Africa"}, ["南非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "Southern Africa"}, ["東非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "East Africa"}, ["西非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "West Africa"}, ["漠南非洲"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "Sub-Saharan Africa"}, ["漠北非洲"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "North Africa"}, ["美洲"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Americas"}, ["北美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "North America"}, ["加勒比地區"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Caribbean"}, ["中美洲"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "Central America"}, ["南美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "South America"}, ["南極洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, fulldesc = "=the territory of [[Antarctica]]", wp = "Antarctica"}, ["歐亞大陸"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "Eurasia"}, ["亞洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Asia"}, ["中東"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Middle East"}, ["東南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Southeast Asia"}, ["南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "South Asia"}, ["東亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "East Asia"}, ["中亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Central Asia"}, ["北亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "North Asia"}, ["東北亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "Northeast Asia"}, ["西亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "West Asia"}, ["歐洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "Europe"}, ["西歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Western Europe"}, ["東歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Eastern Europe"}, ["北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Northern Europe"}, ["南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Southern Europe"}, ["中歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Central Europe"}, ["東南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Southeastern Europe"}, ["東北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "Northeastern Europe"}, ["大洋洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "Oceania"}, ["美拉尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Melanesia"}, ["密克羅尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Micronesia"}, ["玻里尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "Polynesia"}, } export.continents_group = { default_overriding_bare_label_parents = {}, default_divs = {{type = "countries", prep = "in"}}, 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, default_no_check_holonym_mismatch = true, data = export.continents, } export.countries = { -- Africa ["阿爾及利亞"] = {container = "非洲", divs = {"provinces", "communes", "districts"}, wp = "阿爾及利亞"}, ["安哥拉"] = {container = "非洲", divs = {"provinces", "municipalities"}, wp = "安哥拉"}, ["貝寧"] = {container = "非洲", wp = "貝寧"}, ["貝南"] = {alias_of = "貝寧"}, ["博茨瓦納"] = {container = "非洲", wp = "博茨瓦納"}, ["波札那"] = {alias_of = "博茨瓦納"}, ["布基納法索"] = {container = "非洲", wp = "布基納法索"}, ["布吉納法索"] = {alias_of = "布基納法索"}, ["布隆迪"] = {container = "非洲", wp = "布隆迪"}, ["蒲隆地"] = {alias_of = "布隆迪"}, ["佛得角"] = {container = "非洲", wp = "佛得角"}, ["維德角"] = {alias_of = "佛得角"}, ["中非共和國"] = {container = "非洲", wp = "中非共和國"}, ["乍得"] = {container = "非洲", wp = "乍得"}, ["查德"] = {alias_of = "乍得"}, ["科摩羅"] = {container = "非洲", wp = "科摩羅"}, ["葛摩"] = {alias_of = "科摩羅"}, ["剛果共和國"] = {container = "非洲", wp = "剛果共和國"}, ["剛果(布)"] = {alias_of = "剛果共和國"}, ["剛果民主共和國"] = {container = "非洲", divs = {"provinces"}, wp = "剛果民主共和國"}, ["剛果(金)"] = {alias_of = "剛果民主共和國"}, ["吉布提"] = {container = "非洲", wp = "吉布提"}, ["吉布地"] = {alias_of = "吉布提"}, ["埃及"] = {container = "非洲", divs = {"governorates"}, wp = "埃及"}, ["赤道幾內亞"] = {container = "非洲", wp = "赤道幾內亞"}, ["厄立特里亞"] = {container = "非洲", wp = "厄立特里亞"}, ["厄利垂亞"] = {alias_of = "厄立特里亞"}, ["斯威士蘭"] = {container = "非洲", wp = "斯威士蘭"}, ["史瓦帝尼"] = {alias_of = "斯威士蘭"}, ["埃塞俄比亞"] = {container = "非洲", divs = {"regions"}, wp = "埃塞俄比亞"}, ["衣索比亞"] = {alias_of = "埃塞俄比亞"}, ["加蓬"] = {container = "非洲", wp = "加蓬"}, ["加彭"] = {alias_of = "加蓬"}, ["岡比亞"] = {container = "非洲", wp = "岡比亞"}, ["甘比亞"] = {alias_of = "岡比亞"}, ["加納"] = {container = "非洲", wp = "加納"}, ["迦納"] = {alias_of = "加納"}, ["幾內亞"] = {container = "非洲", wp = "幾內亞"}, ["幾內亞比紹"] = {container = "非洲", wp = "幾內亞比紹"}, ["幾內亞比索"] = {alias_of = "幾內亞比紹"}, ["科特迪瓦"] = {container = "非洲", wp = "科特迪瓦"}, ["象牙海岸"] = {alias_of = "科特迪瓦"}, ["肯尼亞"] = {container = "非洲", divs = {"counties"}, wp = "肯尼亞"}, ["肯亞"] = {alias_of = "肯尼亞"}, ["萊索托"] = {container = "非洲", wp = "萊索托"}, ["賴索托"] = {alias_of = "萊索托"}, ["利比里亞"] = {container = "非洲", wp = "利比里亞"}, ["賴比瑞亞"] = {alias_of = "利比里亞"}, ["利比亞"] = {container = "非洲", wp = "利比亞"}, ["馬達加斯加"] = {container = "非洲", wp = "馬達加斯加"}, ["馬拉維"] = {container = "非洲", wp = "馬拉維"}, ["馬拉威"] = {alias_of = "馬拉維"}, ["馬里"] = {container = "非洲", wp = "馬里"}, ["馬利"] = {alias_of = "馬里"}, ["毛里塔尼亞"] = {container = "非洲", wp = "毛里塔尼亞"}, ["茅利塔尼亞"] = {alias_of = "毛里塔尼亞"}, ["毛里求斯"] = {container = "非洲", wp = "毛里求斯"}, ["模里西斯"] = {alias_of = "毛里求斯"}, ["摩洛哥"] = {container = "非洲", wp = "摩洛哥"}, ["莫桑比克"] = {container = "非洲", wp = "莫桑比克"}, ["莫三比克"] = {alias_of = "莫桑比克"}, ["納米比亞"] = {container = "非洲", wp = "納米比亞"}, ["尼日爾"] = {container = "非洲", wp = "尼日爾"}, ["尼日"] = {alias_of = "尼日爾"}, ["尼日利亞"] = {container = "非洲", divs = { {type = "states", cat_as = "states and FCT"}, "local government areas", }, wp = "尼日利亞"}, ["奈及利亞"] = {alias_of = "尼日利亞"}, ["盧旺達"] = {container = "非洲", wp = "盧旺達"}, ["盧安達"] = {alias_of = "盧旺達"}, ["聖多美和普林西比"] = {container = "非洲", wp = "聖多美和普林西比"}, ["塞內加爾"] = {container = "非洲", wp = "塞內加爾"}, ["塞舌爾"] = {container = "非洲", wp = "塞舌爾"}, ["塞席爾"] = {alias_of = "塞舌爾"}, ["塞拉利昂"] = {container = "非洲", wp = "塞拉利昂"}, ["獅子山"] = {alias_of = "塞拉利昂"}, ["索馬里"] = {container = "非洲", wp = "索馬里"}, ["索馬利亞"] = {alias_of = "索馬里"}, ["南非"] = {container = "非洲", divs = {"provinces"}, wp = "南非"}, ["南蘇丹"] = {container = "非洲", wp = "南蘇丹"}, ["蘇丹"] = {container = "非洲", wp = "蘇丹"}, ["坦桑尼亞"] = {container = "非洲", wp = "坦桑尼亞"}, ["坦尚尼亞"] = {alias_of = "坦桑尼亞"}, ["多哥"] = {container = "非洲", wp = "多哥"}, ["突尼斯"] = {container = "非洲", wp = "突尼斯"}, ["突尼西亞"] = {alias_of = "突尼斯"}, ["烏干達"] = {container = "非洲", wp = "烏干達"}, ["贊比亞"] = {container = "非洲", wp = "贊比亞"}, ["尚比亞"] = {alias_of = "贊比亞"}, ["津巴布韋"] = {container = "非洲", wp = "津巴布韋"}, ["辛巴威"] = {alias_of = "津巴布韋"}, -- Asia ["阿富汗"] = {container = "亞洲", wp = "阿富汗"}, ["亞美尼亞"] = {container = {"歐洲", "亞洲"}, wp = "亞美尼亞"}, ["阿塞拜疆"] = {container = {"歐洲", "亞洲"}, wp = "阿塞拜疆"}, ["亞塞拜然"] = {alias_of = "阿塞拜疆"}, ["巴林"] = {container = "亞洲", wp = "巴林"}, ["孟加拉國"] = {container = "亞洲", divs = {"divisions", "districts"}, wp = "孟加拉國"}, ["孟加拉"] = {alias_of = "孟加拉國"}, ["不丹"] = {container = "亞洲", wp = "不丹"}, ["文萊"] = {container = "亞洲", wp = "文萊"}, ["汶萊"] = {alias_of = "文萊"}, ["柬埔寨"] = {container = "亞洲", wp = "柬埔寨"}, ["中國"] = {container = "亞洲", divs = { {type = "provinces", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "autonomous regions", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "direct-administered municipalities", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "special administrative regions", cat_as = "special administrative regions"}, }, wp = "中國"}, ["東帝汶"] = {container = "亞洲", wp = "東帝汶"}, ["帝汶島"] = {alias_of = "東帝汶"}, ["印度"] = {container = "亞洲", divs = { {type = "states", cat_as = "states and union territories"}, {type = "union territories", cat_as = "states and union territories"}, }, wp = "印度"}, ["印度尼西亞"] = {container = "亞洲", divs = {"provinces"}, wp = "印度尼西亞"}, ["印尼"] = {alias_of = "印度尼西亞"}, ["伊朗"] = {container = "亞洲", wp = "伊朗"}, ["伊拉克"] = {container = "亞洲", wp = "伊拉克"}, ["以色列"] = {container = "亞洲", wp = "以色列"}, ["日本"] = {container = "亞洲", divs = {"prefectures"}, wp = "日本"}, ["約旦"] = {container = "亞洲", wp = "約旦"}, ["哈薩克斯坦"] = {container = {"歐洲", "亞洲"}, wp = "哈薩克斯坦"}, ["哈薩克"] = {alias_of = "哈薩克斯坦"}, ["朝鮮"] = {container = "亞洲", wp = "朝鮮民主主義人民共和國"}, ["北韓"] = {alias_of = "朝鮮"}, ["韓國"] = {container = "亞洲", divs = {"provinces", "special cities", "metropolitan cities"}, wp = "韓國"}, ["南韓"] = {alias_of = "韓國"}, ["科威特"] = {container = "亞洲", wp = "科威特"}, ["吉爾吉斯斯坦"] = {container = "亞洲", wp = "吉爾吉斯斯坦"}, ["吉爾吉斯"] = {alias_of = "吉爾吉斯斯坦"}, ["老撾"] = {container = "亞洲", wp = "老撾"}, ["寮國"] = {alias_of = "老撾"}, ["黎巴嫩"] = {container = "亞洲", wp = "黎巴嫩"}, ["馬來西亞"] = {container = "亞洲", divs = {"states"}, wp = "馬來西亞"}, ["馬爾代夫"] = {container = "亞洲", wp = "馬爾代夫"}, ["馬爾地夫"] = {alias_of = "馬爾代夫"}, ["蒙古"] = {container = "亞洲", wp = "蒙古"}, ["緬甸"] = {container = "亞洲", wp = "緬甸"}, ["尼泊爾"] = {container = "亞洲", wp = "尼泊爾"}, ["阿曼"] = {container = "亞洲", wp = "阿曼"}, ["巴基斯坦"] = {container = "亞洲", divs = {"provinces"}, wp = "巴基斯坦"}, ["菲律賓"] = {container = "亞洲", divs = {"regions"}, wp = "菲律賓"}, ["卡塔爾"] = {container = "亞洲", wp = "卡塔爾"}, ["卡達"] = {alias_of = "卡塔爾"}, ["俄羅斯"] = {container = {"歐洲", "亞洲"}, divs = {"federal subjects"}, wp = "俄羅斯"}, ["俄國"] = {alias_of = "俄羅斯"}, ["沙特阿拉伯"] = {container = "亞洲", wp = "沙特阿拉伯"}, ["沙烏地阿拉伯"] = {alias_of = "沙特阿拉伯"}, ["新加坡"] = {container = "亞洲", is_city = true, wp = "新加坡"}, ["斯里蘭卡"] = {container = "亞洲", wp = "斯里蘭卡"}, ["敘利亞"] = {container = "亞洲", wp = "敘利亞"}, ["臺灣"] = {container = "亞洲", divs = { "special municipalities", "counties", }, wp = "臺灣"}, ["台灣"] = {alias_of = "臺灣"}, ["塔吉克斯坦"] = {container = "亞洲", wp = "塔吉克斯坦"}, ["塔吉克"] = {alias_of = "塔吉克斯坦"}, ["泰國"] = {container = "亞洲", divs = {"provinces"}, wp = "泰國"}, ["土耳其"] = {container = {"歐洲", "亞洲"}, wp = "土耳其"}, ["土庫曼斯坦"] = {container = "亞洲", wp = "土庫曼斯坦"}, ["土庫曼"] = {alias_of = "土庫曼斯坦"}, ["阿拉伯聯合酋長國"] = {container = "亞洲", wp = "阿拉伯聯合酋長國"}, ["阿拉伯聯合大公國"] = {alias_of = "阿拉伯聯合酋長國"}, ["阿聯酋"] = {alias_of = "阿拉伯聯合酋長國"}, ["烏茲別克斯坦"] = {container = "亞洲", wp = "烏茲別克斯坦"}, ["烏茲別克"] = {alias_of = "烏茲別克斯坦"}, ["越南"] = {container = "亞洲", divs = {"provinces", "municipalities"}, wp = "越南"}, ["也門"] = {container = "亞洲", wp = "也門"}, ["葉門"] = {alias_of = "也門"}, -- Europe ["阿爾巴尼亞"] = {container = "歐洲", wp = "阿爾巴尼亞"}, ["安道爾"] = {container = "歐洲", wp = "安道爾"}, ["奧地利"] = {container = "歐洲", divs = {"states"}, wp = "奧地利"}, ["白俄羅斯"] = {container = "歐洲", divs = {"regions"}, wp = "白俄羅斯"}, ["比利時"] = {container = "歐洲", divs = {"regions", "provinces"}, wp = "比利時"}, ["波斯尼亞和黑塞哥維那"] = {container = "歐洲", wp = "波斯尼亞和黑塞哥維那"}, ["波士尼亞與赫塞哥維納"] = {alias_of = "波斯尼亞和黑塞哥維那"}, ["保加利亞"] = {container = "歐洲", wp = "保加利亞"}, ["克羅地亞"] = {container = "歐洲", wp = "克羅地亞"}, ["克羅埃西亞"] = {alias_of = "克羅地亞"}, ["塞浦路斯"] = {container = "亞洲", addl_parents = {"歐洲"}, wp = "塞浦路斯"}, ["賽普勒斯"] = {alias_of = "塞浦路斯"}, ["捷克"] = {container = "歐洲", wp = "捷克"}, ["丹麥"] = {container = "歐洲", wp = "丹麥"}, ["愛沙尼亞"] = {container = "歐洲", wp = "愛沙尼亞"}, ["芬蘭"] = {container = "歐洲", divs = {"regions"}, wp = "芬蘭"}, ["法國"] = {container = "歐洲", divs = { {type = "regions", cat_as = "metropolitan regions"}, "departments", "communes", }, wp = "法國"}, ["格魯吉亞"] = {container = {"歐洲", "亞洲"}, wp = "格魯吉亞"}, ["喬治亞"] = {alias_of = "格魯吉亞"}, ["德國"] = {container = "歐洲", divs = {"states"}, wp = "德國"}, ["希臘"] = {container = "歐洲", divs = {"regions"}, wp = "希臘"}, ["匈牙利"] = {container = "歐洲", wp = "匈牙利"}, ["冰島"] = {container = "歐洲", wp = "冰島"}, ["愛爾蘭"] = {container = "歐洲", divs = {"provinces", "counties"}, wp = "愛爾蘭"}, ["意大利"] = {container = "歐洲", divs = {"regions"}, wp = "意大利"}, ["義大利"] = {alias_of = "意大利"}, ["科索沃"] = {container = "歐洲", wp = "科索沃"}, ["拉脫維亞"] = {container = "歐洲", wp = "拉脫維亞"}, ["拉托維亞"] = {alias_of = "拉脫維亞"}, ["列支敦士登"] = {container = "歐洲", wp = "列支敦士登"}, ["列支敦斯登"] = {alias_of = "列支敦士登"}, ["立陶宛"] = {container = "歐洲", wp = "立陶宛"}, ["盧森堡"] = {container = "歐洲", wp = "盧森堡"}, ["北馬其頓"] = {container = "歐洲", wp = "北馬其頓"}, ["馬耳他"] = {container = "歐洲", wp = "馬耳他"}, ["馬爾他"] = {alias_of = "馬耳他"}, ["摩爾多瓦"] = {container = "歐洲", wp = "摩爾多瓦"}, ["摩納哥"] = {container = "歐洲", is_city = true, wp = "摩納哥"}, ["黑山"] = {container = "歐洲", wp = "黑山"}, ["蒙特內哥羅"] = {alias_of = "黑山"}, ["荷蘭"] = {container = "歐洲", divs = {"provinces"}, wp = "荷蘭"}, ["尼德蘭"] = {alias_of = "荷蘭"}, ["挪威"] = {container = "歐洲", wp = "挪威"}, ["波蘭"] = {container = "歐洲", divs = {"voivodeships"}, wp = "波蘭"}, ["葡萄牙"] = {container = "歐洲", divs = {"districts"}, wp = "葡萄牙"}, ["羅馬尼亞"] = {container = "歐洲", wp = "羅馬尼亞"}, ["聖馬力諾"] = {container = "歐洲", wp = "聖馬力諾"}, ["聖馬利諾"] = {alias_of = "聖馬力諾"}, ["塞爾維亞"] = {container = "歐洲", wp = "塞爾維亞"}, ["斯洛伐克"] = {container = "歐洲", wp = "斯洛伐克"}, ["斯洛文尼亞"] = {container = "歐洲", wp = "斯洛文尼亞"}, ["斯洛維尼亞"] = {alias_of = "斯洛文尼亞"}, ["西班牙"] = {container = "歐洲", divs = {"autonomous communities"}, wp = "西班牙"}, ["瑞典"] = {container = "歐洲", wp = "瑞典"}, ["瑞士"] = {container = "歐洲", divs = {"cantons"}, wp = "瑞士"}, ["烏克蘭"] = {container = "歐洲", divs = {"oblasts"}, wp = "烏克蘭"}, ["英國"] = {container = "歐洲", divs = { {type = "constituent countries", cat_as = "constituent countries"}, }, wp = "英國"}, -- North America ["加拿大"] = {container = "北美洲", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, }, wp = "加拿大"}, ["墨西哥"] = {container = "北美洲", divs = {"states"}, wp = "墨西哥"}, ["美國"] = {container = "北美洲", divs = {"states"}, wp = "美國"}, -- Central America ["伯利茲"] = {container = "中美洲", wp = "伯利茲"}, ["貝里斯"] = {alias_of = "伯利茲"}, ["哥斯達黎加"] = {container = "中美洲", wp = "哥斯達黎加"}, ["哥斯大黎加"] = {alias_of = "哥斯達黎加"}, ["薩爾瓦多"] = {container = "中美洲", wp = "薩爾瓦多"}, ["危地馬拉"] = {container = "中美洲", wp = "危地馬拉"}, ["瓜地馬拉"] = {alias_of = "危地馬拉"}, ["洪都拉斯"] = {container = "中美洲", wp = "洪都拉斯"}, ["宏都拉斯"] = {alias_of = "洪都拉斯"}, ["尼加拉瓜"] = {container = "中美洲", wp = "尼加拉瓜"}, ["巴拿馬"] = {container = "中美洲", wp = "巴拿馬"}, -- Caribbean ["安提瓜和巴布達"] = {container = "加勒比地區", wp = "安提瓜和巴布達"}, ["安地卡及巴布達"] = {alias_of = "安提瓜和巴布達"}, ["巴哈馬"] = {container = "加勒比地區", wp = "巴哈馬"}, ["巴巴多斯"] = {container = "加勒比地區", wp = "巴巴多斯"}, ["巴貝多"] = {alias_of = "巴巴多斯"}, ["古巴"] = {container = "加勒比地區", wp = "古巴"}, ["多米尼克"] = {container = "加勒比地區", wp = "多米尼克"}, ["多米尼加共和國"] = {container = "加勒比地區", wp = "多米尼加"}, ["多明尼加共和國"] = {alias_of = "多米尼加共和國"}, ["格林納達"] = {container = "加勒比地區", wp = "格林納達"}, ["格瑞那達"] = {alias_of = "格林納達"}, ["海地"] = {container = "加勒比地區", wp = "海地"}, ["牙買加"] = {container = "加勒比地區", wp = "牙買加"}, ["聖基茨和尼維斯"] = {container = "加勒比地區", wp = "聖基茨和尼維斯"}, ["聖克里斯多福及尼維斯"] = {alias_of = "聖基茨和尼維斯"}, ["聖盧西亞"] = {container = "加勒比地區", wp = "聖盧西亞"}, ["聖露西亞"] = {alias_of = "聖盧西亞"}, ["聖文森特和格林納丁斯"] = {container = "加勒比地區", wp = "聖文森特和格林納丁斯"}, ["聖文森及格瑞那丁"] = {alias_of = "聖文森特和格林納丁斯"}, ["特立尼達和多巴哥"] = {container = "加勒比地區", wp = "特立尼達和多巴哥"}, ["千里達及托巴哥"] = {alias_of = "特立尼達和多巴哥"}, -- South America ["阿根廷"] = {container = "南美洲", divs = {"provinces"}, wp = "阿根廷"}, ["玻利維亞"] = {container = "南美洲", wp = "玻利維亞"}, ["巴西"] = {container = "南美洲", divs = {"states"}, wp = "巴西"}, ["智利"] = {container = "南美洲", wp = "智利"}, ["哥倫比亞"] = {container = "南美洲", wp = "哥倫比亞"}, ["厄瓜多爾"] = {container = "南美洲", wp = "厄瓜多爾"}, ["厄瓜多"] = {alias_of = "厄瓜多爾"}, ["圭亞那"] = {container = "南美洲", wp = "圭亞那"}, ["蓋亞那"] = {alias_of = "圭亞那"}, ["巴拉圭"] = {container = "南美洲", wp = "巴拉圭"}, ["秘魯"] = {container = "南美洲", wp = "秘魯"}, ["蘇里南"] = {container = "南美洲", wp = "蘇里南"}, ["蘇利南"] = {alias_of = "蘇里南"}, ["烏拉圭"] = {container = "南美洲", wp = "烏拉圭"}, ["委內瑞拉"] = {container = "南美洲", wp = "委內瑞拉"}, -- Oceania ["澳大利亞"] = {container = "大洋洲", divs = { {type = "states", cat_as = "states and territories"}, {type = "territories", cat_as = "states and territories"}, }, wp = "澳大利亞"}, ["澳洲"] = {alias_of = "澳大利亞"}, ["斐濟"] = {container = "大洋洲", wp = "斐濟"}, ["基里巴斯"] = {container = "大洋洲", wp = "基里巴斯"}, ["吉里巴斯"] = {alias_of = "基里巴斯"}, ["馬紹爾群島"] = {container = "大洋洲", wp = "馬紹爾群島"}, ["密克羅尼西亞聯邦"] = {container = "大洋洲", wp = "密克羅尼西亞聯邦"}, ["瑙魯"] = {container = "大洋洲", wp = "瑙魯"}, ["諾魯"] = {alias_of = "瑙魯"}, ["新西蘭"] = {container = "大洋洲", wp = "新西蘭"}, ["紐西蘭"] = {alias_of = "新西蘭"}, ["帕勞"] = {container = "大洋洲", wp = "帕勞"}, ["帛琉"] = {alias_of = "帕勞"}, ["巴布亞新幾內亞"] = {container = "大洋洲", wp = "巴布亞新幾內亞"}, ["巴布亞紐幾內亞"] = {alias_of = "巴布亞新幾內亞"}, ["薩摩亞"] = {container = "大洋洲", wp = "薩摩亞"}, ["所羅門群島"] = {container = "大洋洲", wp = "所羅門群島"}, ["湯加"] = {container = "大洋洲", wp = "湯加"}, ["東加"] = {alias_of = "湯加"}, ["圖瓦盧"] = {container = "大洋洲", wp = "圖瓦盧"}, ["吐瓦魯"] = {alias_of = "圖瓦盧"}, ["瓦努阿圖"] = {container = "大洋洲", wp = "瓦努阿圖"}, ["萬那杜"] = {alias_of = "瓦努阿圖"}, } export.countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"+++", "countries"}, default_placetype = "country", default_no_container_cat = true, default_no_container_parent = true, default_no_auto_augment_container = true, placename_to_key = false, data = export.countries, } export.country_like_entities = { -- Special administrative regions of China ["香港"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, divs = {"districts"}, wp = "Hong Kong", }, ["澳門"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, wp = "Macau", }, -- Western Sahara ["西撒哈拉"] = { placetype = {"territory", "country"}, container = "非洲", wp = "Western Sahara", }, -- Kosovo (disputed) ["科索沃(部分承認)"] = {alias_of = "科索沃"}, -- Palestinian territories ["巴勒斯坦"] = { placetype = {"country", "territory"}, container = "亞洲", wp = "State of Palestine", }, -- Key overseas territories ["波多黎各"] = { placetype = {"commonwealth", "territory"}, container = "美國", addl_parents = {"加勒比地區"}, wp = "Puerto Rico", }, ["關島"] = { placetype = {"territory"}, container = "美國", addl_parents = {"密克羅尼西亞"}, wp = "Guam", }, ["新喀里多尼亞"] = { placetype = {"territory"}, container = "法國", addl_parents = {"大洋洲"}, wp = "New Caledonia", }, ["法屬圭亞那"] = { placetype = {"territory"}, container = "法國", addl_parents = {"南美洲"}, wp = "French Guiana", }, ["留尼旺"] = { placetype = {"territory"}, container = "法國", addl_parents = {"非洲"}, wp = "Réunion", }, ["馬丁尼克"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Martinique", }, ["瓜德羅普"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Guadeloupe", }, ["格陵蘭"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"北美洲"}, wp = "Greenland", }, ["法羅群島"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"歐洲"}, wp = "Faroe Islands", }, } export.country_like_entities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "country"), default_placetype = "territory", placename_to_key = false, data = export.country_like_entities, } export.former_countries = { ["蘇聯"] = { placetype = {"country"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Soviet Union", }, ["南斯拉夫"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Yugoslavia", }, ["捷克斯洛伐克"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Czechoslovakia", }, ["東德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "East Germany", }, ["西德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "West Germany", }, ["奧匈帝國"] = { placetype = {"empire"}, container = "歐洲", is_former_place = true, wp = "Austria-Hungary", }, ["鄂圖曼帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Ottoman Empire", }, ["奧斯曼帝國"] = {alias_of = "鄂圖曼帝國"}, ["羅馬帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲", "非洲"}, is_former_place = true, wp = "Roman Empire", }, ["大英帝國"] = { placetype = {"empire"}, is_former_place = true, wp = "British Empire", }, ["普魯士"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Prussia", }, } export.former_countries_group = { canonicalize_key_container = canonicalize_continent_container, default_placetype = "country", default_is_former_place = true, placename_to_key = false, data = export.former_countries, } ----------------------------------------------------------------------------------- -- Subpolity tables -- ----------------------------------------------------------------------------------- export.australia_states_and_territories = { ["新南威爾斯"] = {wp = "New South Wales"}, ["維多利亞州"] = {wp = "Victoria (Australia)"}, ["昆士蘭"] = {wp = "Queensland"}, ["南澳大利亞"] = {wp = "South Australia"}, ["西澳大利亞"] = {wp = "Western Australia"}, ["塔斯馬尼亞"] = {wp = "Tasmania"}, ["澳大利亞首都領地"] = {placetype = "territory", wp = "Australian Capital Territory"}, ["北領地"] = {placetype = "territory", wp = "Northern Territory"}, } -- states and territories of Australia export.australia_group = { placename_to_key = false, default_container = "澳大利亞", default_placetype = "state", data = export.australia_states_and_territories, } export.austria_states = { ["維也納州"] = {wp = "Vienna (state)"}, ["下奧地利州"] = {wp = "Lower Austria"}, ["上奧地利州"] = {wp = "Upper Austria"}, ["施泰爾馬克州"] = {wp = "Styria"}, ["蒂羅爾州"] = {wp = "Tyrol (state)"}, ["克恩頓州"] = {wp = "Carinthia"}, ["薩爾茨堡州"] = {wp = "Salzburg (state)"}, ["福拉爾貝格州"] = {wp = "Vorarlberg"}, ["布根蘭州"] = {wp = "Burgenland"}, } -- states of Austria export.austria_group = { placename_to_key = false, default_container = "奧地利", default_placetype = "state", data = export.austria_states, } export.bangladesh_divisions = { ["巴里薩爾專區"] = {wp = "Barisal Division"}, ["吉大港專區"] = {wp = "Chittagong Division"}, ["達卡專區"] = {wp = "Dhaka Division"}, ["庫爾納專區"] = {wp = "Khulna Division"}, ["邁門辛專區"] = {wp = "Mymensingh Division"}, ["拉吉沙希專區"] = {wp = "Rajshahi Division"}, ["朗普爾專區"] = {wp = "Rangpur Division"}, ["錫爾赫特專區"] = {wp = "Sylhet Division"}, } -- divisions of Bangladesh export.bangladesh_group = { placename_to_key = false, default_container = "孟加拉國", default_placetype = "division", data = export.bangladesh_divisions, } export.brazil_states = { ["里約熱內盧州"] = {wp = "Rio de Janeiro (state)"}, ["里約熱內盧"] = {alias_of = "里約熱內盧州"}, ["聖保羅州"] = {wp = "São Paulo (state)"}, ["米納斯吉拉斯"] = {wp = "Minas Gerais"}, ["巴伊亞"] = {wp = "Bahia"}, ["亞馬遜州"] = {wp = "Amazonas (Brazilian state)"}, ["帕拉州"] = {wp = "Pará"}, ["伯南布哥州"] = {wp = "Pernambuco"}, ["南里奧格蘭德州"] = {wp = "Rio Grande do Sul"}, ["巴西聯邦區"] = {wp = "Federal District (Brazil)"}, ["塞阿拉州"] = {wp = "Ceará"}, ["巴拉那州"] = {wp = "Paraná (state)"}, ["戈亞斯州"] = {wp = "Goiás"}, ["聖埃斯皮里圖州"] = {wp = "Espírito Santo"}, ["馬拉尼昂州"] = {wp = "Maranhão"}, ["北里奧格蘭德州"] = {wp = "Rio Grande do Norte"}, ["聖卡塔琳娜州"] = {wp = "Santa Catarina (state)"}, ["阿拉戈亞斯州"] = {wp = "Alagoas"}, ["帕拉伊巴州"] = {wp = "Paraíba"}, ["皮奧伊州"] = {wp = "Piauí"}, ["阿克里州"] = {wp = "Acre (state)"}, ["阿馬帕州"] = {wp = "Amapá"}, ["馬托格羅索州"] = {wp = "Mato Grosso"}, ["南馬托格羅索州"] = {wp = "Mato Grosso do Sul"}, ["朗多尼亞州"] = {wp = "Rondônia"}, ["羅賴馬州"] = {wp = "Roraima"}, ["塞爾希培州"] = {wp = "Sergipe"}, ["托坎廷斯州"] = {wp = "Tocantins"}, } -- states of Brazil export.brazil_group = { placename_to_key = false, default_container = "巴西", default_placetype = "state", data = export.brazil_states, } -- provinces (a.k.a. oblasts) of Bulgaria export.bulgaria_provinces = { ["布拉戈耶夫格勒省"] = {wp = "Blagoevgrad Province"}, ["布爾加斯省"] = {wp = "Burgas Province"}, ["多布里奇省"] = {wp = "Dobrich Province"}, ["加布羅沃省"] = {wp = "Gabrovo Province"}, ["哈斯科沃省"] = {wp = "Haskovo Province"}, ["卡爾扎利省"] = {wp = "Kardzhali Province"}, ["屈斯滕迪爾省"] = {wp = "Kyustendil Province"}, ["洛維奇省"] = {wp = "Lovech Province"}, ["蒙塔納省"] = {wp = "Montana Province"}, ["帕扎爾吉克省"] = {wp = "Pazardzhik Province"}, ["佩爾尼克省"] = {wp = "Pernik Province"}, ["普萊文省"] = {wp = "Pleven Province"}, ["普羅夫迪夫省"] = {wp = "Plovdiv Province"}, ["拉茲格勒省"] = {wp = "Razgrad Province"}, ["魯塞省"] = {wp = "Ruse Province"}, ["舒門省"] = {wp = "Shumen Province"}, ["錫利斯特拉省"] = {wp = "Silistra Province"}, ["斯利文省"] = {wp = "Sliven Province"}, ["斯莫梁省"] = {wp = "Smolyan Province"}, ["索非亞市省"] = {wp = "Sofia City Province"}, ["索非亞省"] = {wp = "Sofia Province"}, ["斯塔拉扎戈拉省"] = {wp = "Stara Zagora Province"}, ["特爾戈維什泰省"] = {wp = "Targovishte Province"}, ["瓦爾納省"] = {wp = "Varna Province"}, ["大特爾諾沃省"] = {wp = "Veliko Tarnovo Province"}, ["維丁省"] = {wp = "Vidin Province"}, ["弗拉察省"] = {wp = "Vratsa Province"}, ["揚博爾省"] = {wp = "Yambol Province"}, } export.bulgaria_group = { placename_to_key = false, default_container = "保加利亞", divs = {"regions", "planning regions", "provinces", "municipalities", "settlements"}, default_placetype = "province", data = export.bulgaria_provinces, } export.canada_provinces_and_territories = { ["亞伯達"] = {wp = "Alberta"}, ["艾伯塔"] = {alias_of = "亞伯達"}, ["英屬哥倫比亞"] = {wp = "British Columbia"}, ["卑詩省"] = {alias_of = "英屬哥倫比亞"}, ["馬尼托巴"] = {wp = "Manitoba"}, ["新不倫瑞克"] = {wp = "New Brunswick"}, ["紐芬蘭與拉布拉多"] = {wp = "Newfoundland and Labrador"}, ["西北地區"] = {placetype = "territory", wp = "Northwest Territories"}, ["新斯科舍"] = {wp = "Nova Scotia"}, ["努納武特"] = {placetype = "territory", wp = "Nunavut"}, ["安大略"] = {divs = {"counties", "regional municipalities"}, wp = "Ontario"}, ["愛德華王子島"] = {wp = "Prince Edward Island"}, ["魁北克"] = {wp = "Quebec"}, ["薩斯喀徹溫"] = {wp = "Saskatchewan"}, ["育空"] = {placetype = "territory", wp = "Yukon"}, } export.canada_group = { placename_to_key = false, default_container = "加拿大", default_placetype = "province", data = export.canada_provinces_and_territories, } export.china_provinces_and_autonomous_regions = { -- Provinces ["安徽"] = {wp = "安徽省"}, ["福建"] = {wp = "福建省"}, ["甘肅"] = {wp = "甘肅省"}, ["廣東"] = {wp = "廣東省"}, ["貴州"] = {wp = "貴州省"}, ["海南"] = {wp = "海南省"}, ["河北"] = {wp = "河北省"}, ["黑龍江"] = {wp = "黑龍江省"}, ["河南"] = {wp = "河南省"}, ["湖北"] = {wp = "湖北省"}, ["湖南"] = {wp = "湖南省"}, ["江蘇"] = {wp = "江蘇省"}, ["江西"] = {wp = "江西省"}, ["吉林"] = {wp = "吉林省"}, ["遼寧"] = {wp = "遼寧省"}, ["青海"] = {wp = "青海省"}, ["陝西"] = {wp = "陝西省"}, ["山東"] = {wp = "山東省"}, ["山西"] = {wp = "山西省"}, ["四川"] = {wp = "四川省"}, ["雲南"] = {wp = "雲南省"}, ["浙江"] = {wp = "浙江省"}, -- Autonomous regions ["廣西"] = {placetype = "autonomous region", wp = "廣西壯族自治區"}, ["廣西壯族自治區"] = {alias_of = "廣西"}, ["內蒙古"] = {placetype = "autonomous region", wp = "內蒙古自治區"}, ["內蒙古自治區"] = {alias_of = "內蒙"}, ["寧夏"] = {placetype = "autonomous region", wp = "寧夏回族自治區"}, ["寧夏回族自治區"] = {alias_of = "寧夏"}, ["西藏"] = {placetype = "autonomous region", wp = "西藏自治區"}, ["西藏自治區"] = {alias_of = "西藏"}, ["新疆"] = {placetype = "autonomous region", wp = "新疆維吾爾自治區"}, ["新疆維吾爾自治區"] = {alias_of = "新疆"}, -- Direct-administered municipalities (treated as province-level for holonym purposes) ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "北京市"}, ["北京市"] = {alias_of = "北京"}, ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "上海市"}, ["上海市"] = {alias_of = "上海"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "天津市"}, ["天津市"] = {alias_of = "天津"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "重慶市"}, ["重慶市"] = {alias_of = "重慶"}, } export.china_group = { placename_to_key = false, default_container = "中國", default_placetype = "province", default_divs = { "prefecture-level cities", "districts", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_provinces_and_autonomous_regions, } export.china_prefecture_level_cities = { -- Guangdong ["廣州"] = {container = "廣東", wp = "Guangzhou"}, ["東莞"] = {container = "廣東", wp = "Dongguan"}, ["佛山"] = {container = "廣東", wp = "Foshan"}, ["惠州"] = {container = "廣東", wp = "Huizhou"}, ["江門"] = {container = "廣東", wp = "Jiangmen"}, ["深圳"] = {container = "廣東", wp = "Shenzhen"}, ["中山"] = {container = "廣東", wp = "Zhongshan"}, ["汕頭"] = {container = "廣東", wp = "Shantou"}, ["潮州"] = {container = "廣東", wp = "Chaozhou"}, ["揭陽"] = {container = "廣東", wp = "Jieyang"}, ["珠海"] = {container = "廣東", wp = "Zhuhai"}, ["湛江"] = {container = "廣東", wp = "Zhanjiang"}, ["茂名"] = {container = "廣東", wp = "Maoming"}, ["清遠"] = {container = "廣東", wp = "Qingyuan"}, ["肇慶"] = {container = "廣東", wp = "Zhaoqing"}, -- Direct-administered municipalities (also in china_provinces; duplicated here for division categorisation) ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Shanghai"}, ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Beijing"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Chongqing"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Tianjin"}, -- Jiangsu ["常熟"] = {container = "江蘇", wp = "Changshu"}, ["常州"] = {container = "江蘇", wp = "Changzhou"}, ["蘇州"] = {container = "江蘇", wp = "Suzhou"}, ["無錫"] = {container = "江蘇", wp = "Wuxi"}, ["南京"] = {container = "江蘇", wp = "Nanjing"}, ["南通"] = {container = "江蘇", wp = "Nantong"}, ["江陰"] = {container = "江蘇", wp = "Jiangyin"}, ["張家港"] = {container = "江蘇", wp = "Zhangjiagang"}, ["徐州"] = {container = "江蘇", wp = "Xuzhou"}, ["揚州"] = {container = "江蘇", wp = "Yangzhou"}, ["鹽城"] = {container = "江蘇", wp = "Yancheng"}, ["淮安"] = {container = "江蘇", wp = "Huai'an"}, ["連雲港"] = {container = "江蘇", wp = "Lianyungang"}, ["宿遷"] = {container = "江蘇", wp = "Suqian"}, ["鎮江"] = {container = "江蘇", wp = "Zhenjiang"}, ["崑山"] = {container = "江蘇", wp = "Kunshan"}, ["泰州"] = {container = "江蘇", wp = "Taizhou, Jiangsu"}, -- distinct from 台州 (Zhejiang) -- Zhejiang ["杭州"] = {container = "浙江", wp = "Hangzhou"}, ["紹興"] = {container = "浙江", wp = "Shaoxing"}, ["寧波"] = {container = "浙江", wp = "Ningbo"}, ["慈溪"] = {container = "浙江", wp = "Cixi"}, ["余姚"] = {container = "浙江", wp = "Yuyao"}, ["溫州"] = {container = "浙江", wp = "Wenzhou"}, ["瑞安"] = {placetype = "county-level city", container = {key = "溫州", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Rui'an"}, ["台州"] = {container = "浙江", wp = "Taizhou, Zhejiang"}, ["義烏"] = {container = "浙江", wp = "Yiwu"}, ["嘉興"] = {container = "浙江", wp = "Jiaxing"}, ["金華"] = {container = "浙江", wp = "Jinhua"}, ["湖州"] = {container = "浙江", wp = "Huzhou"}, ["永康"] = {placetype = "county-level city", container = {key = "金華", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Yongkang, Zhejiang"}, -- Fujian ["廈門"] = {container = "福建", wp = "Xiamen"}, ["晉江"] = {container = "福建", wp = "Jinjiang"}, ["泉州"] = {container = "福建", wp = "Quanzhou"}, ["莆田"] = {container = "福建", wp = "Putian"}, ["福州"] = {container = "福建", wp = "Fuzhou"}, -- Shandong ["青島"] = {container = "山東", wp = "Qingdao"}, ["臨沂"] = {container = "山東", wp = "Linyi"}, ["淄博"] = {container = "山東", wp = "Zibo"}, ["濟南"] = {container = "山東", wp = "Jinan"}, ["濰坊"] = {container = "山東", wp = "Weifang"}, ["煙台"] = {container = "山東", wp = "Yantai"}, ["濟寧"] = {container = "山東", wp = "Jining"}, ["泰安"] = {container = "山東", wp = "Tai'an"}, ["威海"] = {container = "山東", wp = "Weihai"}, ["菏澤"] = {container = "山東", wp = "Heze"}, ["德州"] = {container = "山東", wp = "Dezhou"}, ["日照"] = {container = "山東", wp = "Rizhao"}, ["聊城"] = {container = "山東", wp = "Liaocheng"}, ["棗莊"] = {container = "山東", wp = "Zaozhuang"}, ["滕州"] = {placetype = "county-level city", container = {key = "棗莊", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Tengzhou"}, ["東營"] = {container = "山東", wp = "Dongying"}, -- Henan ["鄭州"] = {container = "河南", wp = "Zhengzhou"}, ["洛陽"] = {container = "河南", wp = "Luoyang"}, ["新鄉"] = {container = "河南", wp = "Xinxiang"}, ["信陽"] = {container = "河南", wp = "Xinyang"}, ["安陽"] = {container = "河南", wp = "Anyang"}, ["開封"] = {container = "河南", wp = "Kaifeng"}, ["許昌"] = {container = "河南", wp = "Xuchang"}, ["濮陽"] = {container = "河南", wp = "Puyang"}, ["商丘"] = {container = "河南", wp = "Shangqiu"}, ["南陽"] = {container = "河南", wp = "Nanyang, Henan"}, ["焦作"] = {container = "河南", wp = "Jiaozuo"}, ["平頂山"] = {container = "河南", wp = "Pingdingshan"}, ["周口"] = {container = "河南", wp = "Zhoukou"}, ["駐馬店"] = {container = "河南", wp = "Zhumadian"}, -- Hubei ["武漢"] = {container = "湖北", wp = "Wuhan"}, ["襄陽"] = {container = "湖北", wp = "Xiangyang"}, ["宜昌"] = {container = "湖北", wp = "Yichang"}, ["鄂州"] = {container = "湖北", wp = "Ezhou"}, ["十堰"] = {container = "湖北", wp = "Shiyan"}, -- Hunan ["長沙"] = {container = "湖南", wp = "Changsha"}, ["株洲"] = {container = "湖南", wp = "Zhuzhou"}, ["衡陽"] = {container = "湖南", wp = "Hengyang"}, ["邵陽"] = {container = "湖南", wp = "Shaoyang"}, ["岳陽"] = {container = "湖南", wp = "Yueyang"}, ["常德"] = {container = "湖南", wp = "Changde"}, ["瀏陽"] = {placetype = "county-level city", container = {key = "長沙", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Liuyang"}, -- Sichuan ["成都"] = {container = "四川", wp = "Chengdu"}, ["綿陽"] = {container = "四川", wp = "Mianyang"}, ["南充"] = {container = "四川", wp = "Nanchong"}, ["達州"] = {container = "四川", wp = "Dazhou"}, ["瀘州"] = {container = "四川", wp = "Luzhou"}, ["宜賓"] = {container = "四川", wp = "Yibin"}, -- Yunnan ["昆明"] = {container = "雲南", wp = "Kunming"}, ["曲靖"] = {container = "雲南", wp = "Qujing"}, -- Guizhou ["貴陽"] = {container = "貴州", wp = "Guiyang"}, ["遵義"] = {container = "貴州", wp = "Zunyi"}, ["六盤水"] = {container = "貴州", wp = "Liupanshui"}, ["畢節"] = {container = "貴州", wp = "Bijie"}, -- Shaanxi ["西安"] = {container = "陝西", wp = "Xi'an"}, ["咸陽"] = {container = "陝西", wp = "Xianyang"}, ["寶雞"] = {container = "陝西", wp = "Baoji"}, -- Heilongjiang ["哈爾濱"] = {container = "黑龍江", wp = "Harbin"}, ["大慶"] = {container = "黑龍江", wp = "Daqing"}, ["齊齊哈爾"] = {container = "黑龍江", wp = "Qiqihar"}, -- Liaoning ["瀋陽"] = {container = "遼寧", wp = "Shenyang"}, ["撫順"] = {container = "遼寧", wp = "Fushun"}, ["大連"] = {container = "遼寧", wp = "Dalian"}, ["鞍山"] = {container = "遼寧", wp = "Anshan"}, ["錦州"] = {container = "遼寧", wp = "Jinzhou"}, ["葫蘆島"] = {container = "遼寧", wp = "Huludao"}, ["盤錦"] = {container = "遼寧", wp = "Panjin"}, -- Jilin ["長春"] = {container = "吉林", wp = "Changchun"}, ["吉林市"] = {container = "吉林", wp = "Jilin City"}, -- distinct from 吉林 (province) -- Anhui ["合肥"] = {container = "安徽", wp = "Hefei"}, ["蚌埠"] = {container = "安徽", wp = "Bengbu"}, ["淮南"] = {container = "安徽", wp = "Huainan"}, ["蕪湖"] = {container = "安徽", wp = "Wuhu"}, ["淮北"] = {container = "安徽", wp = "Huaibei"}, ["滁州"] = {container = "安徽", wp = "Chuzhou"}, ["六安"] = {container = "安徽", wp = "Lu'an"}, ["阜陽"] = {container = "安徽", wp = "Fuyang, Anhui"}, ["宿州"] = {container = "安徽", wp = "Suzhou, Anhui"}, -- distinct from 蘇州 (Jiangsu) -- Hebei ["石家莊"] = {container = "河北", wp = "Shijiazhuang"}, ["邯鄲"] = {container = "河北", wp = "Handan"}, ["唐山"] = {container = "河北", wp = "Tangshan"}, ["秦皇島"] = {container = "河北", wp = "Qinhuangdao"}, ["邢台"] = {container = "河北", wp = "Xingtai"}, ["保定"] = {container = "河北", wp = "Baoding"}, ["張家口"] = {container = "河北", wp = "Zhangjiakou"}, ["衡水"] = {container = "河北", wp = "Hengshui"}, ["滄州"] = {container = "河北", wp = "Cangzhou"}, -- Shanxi ["太原"] = {container = "山西", wp = "Taiyuan"}, ["大同"] = {container = "山西", wp = "Datong"}, ["長治"] = {container = "山西", wp = "Changzhi"}, ["臨汾"] = {container = "山西", wp = "Linfen"}, -- Jiangxi ["南昌"] = {container = "江西", wp = "Nanchang"}, ["贛州"] = {container = "江西", wp = "Ganzhou"}, ["上饒"] = {container = "江西", wp = "Shangrao"}, ["九江"] = {container = "江西", wp = "Jiujiang"}, -- Guangxi (autonomous region) ["南寧"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Nanning"}, ["柳州"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Liuzhou"}, ["桂林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guilin"}, ["玉林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Yulin, Guangxi"}, ["北海"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Beihai"}, ["貴港"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guigang"}, -- Inner Mongolia (autonomous region) ["呼和浩特"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Hohhot"}, ["包頭"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Baotou"}, ["赤峰"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Chifeng"}, -- Xinjiang (autonomous region) ["烏魯木齊"] = {container = {key = "新疆", placetype = "autonomous region"}, wp = "Ürümqi"}, -- Ningxia (autonomous region) ["銀川"] = {container = {key = "寧夏", placetype = "autonomous region"}, wp = "Yinchuan"}, -- Hainan ["海口"] = {container = "海南", wp = "Haikou"}, -- Qinghai ["西寧"] = {container = "青海", wp = "Xining"}, -- Gansu ["蘭州"] = {container = "甘肅", wp = "Lanzhou"}, -- Chongqing subdivision (district 142 miles from Chongqing proper) ["萬州"] = {placetype = "district", container = {key = "重慶", placetype = "direct-administered municipality"}, divs = {"subdistricts", "townships"}, wp = "Wanzhou"}, -- County within Suqian prefecture-level city ["沭陽"] = {placetype = "county", container = {key = "宿遷", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Shuyang County"}, } export.china_prefecture_level_cities_group = { placename_to_key = false, default_placetype = {"prefecture-level city", "city"}, default_divs = { "districts", "subdistricts", "townships", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_prefecture_level_cities, } export.finland_regions = { ["拉普蘭省"] = {wp = "Lapland (Finland)"}, ["北奧斯特博滕省"] = {wp = "North Ostrobothnia"}, ["卡亞尼省"] = {wp = "Kainuu"}, ["北卡累利亞省"] = {wp = "North Karelia"}, ["北薩沃省"] = {wp = "Northern Savonia"}, ["南薩沃省"] = {wp = "Southern Savonia"}, ["南卡累利亞省"] = {wp = "South Karelia"}, ["中芬蘭省"] = {wp = "Central Finland"}, ["南奧斯特博滕省"] = {wp = "South Ostrobothnia"}, ["奧斯特博滕省"] = {wp = "Ostrobothnia (region)"}, ["中奧斯特博滕省"] = {wp = "Central Ostrobothnia"}, ["皮爾卡馬省"] = {wp = "Pirkanmaa"}, ["薩塔昆塔省"] = {wp = "Satakunta"}, ["派亞特哈米省"] = {wp = "Päijät-Häme"}, ["坎塔哈米省"] = {wp = "Tavastia Proper"}, ["屈米河谷省"] = {wp = "Kymenlaakso"}, ["烏西馬省"] = {wp = "Uusimaa"}, ["西南芬蘭省"] = {wp = "Southwest Finland"}, ["奧蘭群島"] = {wp = "Åland", placetype = {"autonomous region", "region"}}, } export.finland_group = { placename_to_key = false, default_container = "芬蘭", default_placetype = "region", data = export.finland_regions, } export.france_administrative_regions = { ["奧弗涅-隆河-阿爾卑斯大區"] = {wp = "Auvergne-Rhône-Alpes"}, ["勃艮第-弗朗什-孔泰大區"] = {wp = "Bourgogne-Franche-Comté"}, ["布列塔尼大區"] = {wp = "Brittany (administrative region)"}, ["中央-羅亞爾河谷大區"] = {wp = "Centre-Val de Loire"}, ["科西嘉大區"] = {wp = "Corsica"}, ["大東部大區"] = {wp = "Grand Est"}, ["上法蘭西大區"] = {wp = "Hauts-de-France"}, ["法蘭西島大區"] = {wp = "Île-de-France"}, ["諾曼底大區"] = {wp = "Normandy"}, ["新阿基坦大區"] = {wp = "Nouvelle-Aquitaine"}, ["奧克西塔尼大區"] = {wp = "Occitanie"}, ["盧瓦爾河地區大區"] = {wp = "Pays de la Loire"}, ["普羅旺斯-阿爾卑斯-蔚藍海岸大區"] = {wp = "Provence-Alpes-Côte d'Azur"}, -- Old region names (pre-2016) as aliases ["北部-加萊海峽大區"] = {wp = "Nord-Pas-de-Calais"}, ["加來海峽大區"] = {alias_of = "北部-加萊海峽大區"}, } export.france_group = { placename_to_key = false, default_container = "法國", default_placetype = "region", data = export.france_administrative_regions, } -- France departments (abbreviated list) export.france_departments = { ["北部省"] = {wp = "Nord (department)", container = "上法蘭西大區"}, ["加來海峽省"] = {wp = "Pas-de-Calais", container = "上法蘭西大區"}, ["巴黎市"] = {wp = "Paris", container = "法蘭西島大區"}, ["上塞納省"] = {wp = "Hauts-de-Seine", container = "法蘭西島大區"}, } export.france_departments_group = { placename_to_key = false, default_container = "法國", default_placetype = "department", data = export.france_departments, } export.germany_states = { ["巴登-符騰堡"] = {wp = "Baden-Württemberg"}, ["巴伐利亞"] = {wp = "Bavaria"}, ["柏林"] = {wp = "Berlin"}, ["布蘭登堡"] = {wp = "Brandenburg"}, ["不來梅"] = {wp = "Bremen"}, ["漢堡"] = {wp = "Hamburg"}, ["黑森"] = {wp = "Hesse"}, ["梅克倫堡-前波美拉尼亞"] = {wp = "Mecklenburg-Vorpommern"}, ["下薩克森"] = {wp = "Lower Saxony"}, ["北萊茵-威斯特法倫"] = {wp = "North Rhine-Westphalia"}, ["萊茵蘭-普法爾茨"] = {wp = "Rhineland-Palatinate"}, ["薩爾"] = {wp = "Saarland"}, ["薩克森"] = {wp = "Saxony"}, ["薩克森-安哈爾特"] = {wp = "Saxony-Anhalt"}, ["石勒蘇益格-荷爾斯泰因"] = {wp = "Schleswig-Holstein"}, ["圖林根"] = {wp = "Thuringia"}, } export.germany_group = { placename_to_key = false, default_container = "德國", default_placetype = "state", data = export.germany_states, } export.greece_regions = { ["阿提卡大區"] = {wp = "Attica (region)"}, ["中希臘大區"] = {wp = "Central Greece (administrative region)"}, ["中馬其頓大區"] = {wp = "Central Macedonia"}, ["克里特大區"] = {wp = "Crete"}, ["東馬其頓和色雷斯大區"] = {wp = "Eastern Macedonia and Thrace"}, ["伊庇魯斯大區"] = {wp = "Epirus (region)"}, ["愛奧尼亞群島大區"] = {wp = "Ionian Islands (region)"}, ["北愛琴大區"] = {wp = "North Aegean"}, ["伯羅奔尼撒大區"] = {wp = "Peloponnese (region)"}, ["南愛琴大區"] = {wp = "South Aegean"}, ["塞薩利大區"] = {wp = "Thessaly"}, ["西希臘大區"] = {wp = "Western Greece"}, ["西馬其頓大區"] = {wp = "Western Macedonia"}, ["阿托斯山"] = {wp = "Monastic community of Mount Athos", placetype = {"autonomous region", "region"}}, } export.greece_group = { placename_to_key = false, default_container = "希臘", default_placetype = "region", data = export.greece_regions, } export.india_states_and_union_territories = { ["安達曼-尼科巴群島"] = {placetype = "union territory", wp = "Andaman and Nicobar Islands"}, ["安得拉邦"] = {wp = "Andhra Pradesh"}, ["阿魯納恰爾邦"] = {wp = "Arunachal Pradesh"}, ["阿薩姆"] = {wp = "Assam"}, ["比哈爾邦"] = {wp = "Bihar"}, ["昌迪加爾"] = {placetype = "union territory", wp = "Chandigarh"}, ["恰蒂斯加爾邦"] = {wp = "Chhattisgarh"}, ["達德拉-納加爾哈維利和達曼-第烏"] = {placetype = "union territory", wp = "Dadra and Nagar Haveli and Daman and Diu"}, ["德里"] = {placetype = "union territory", wp = "Delhi"}, ["果阿"] = {wp = "Goa"}, ["古吉拉特邦"] = {wp = "Gujarat"}, ["哈里亞納邦"] = {wp = "Haryana"}, ["喜馬偕爾邦"] = {wp = "Himachal Pradesh"}, ["查謨和克什米爾"] = {placetype = "union territory", wp = "Jammu and Kashmir (union territory)"}, ["賈坎德邦"] = {wp = "Jharkhand"}, ["卡納塔克邦"] = {wp = "Karnataka"}, ["喀拉拉邦"] = {wp = "Kerala"}, ["拉達克"] = {placetype = "union territory", wp = "Ladakh"}, ["拉克沙群島"] = {placetype = "union territory", wp = "Lakshadweep"}, ["中央邦"] = {wp = "Madhya Pradesh"}, ["馬哈拉施特拉邦"] = {wp = "Maharashtra"}, ["曼尼普爾邦"] = {wp = "Manipur"}, ["梅加拉亞邦"] = {wp = "Meghalaya"}, ["米佐拉姆邦"] = {wp = "Mizoram"}, ["那加蘭邦"] = {wp = "Nagaland"}, ["奧里薩邦"] = {wp = "Odisha"}, ["本地治里"] = {placetype = "union territory", wp = "Puducherry"}, ["旁遮普邦"] = {wp = "Punjab, India"}, ["拉賈斯坦邦"] = {wp = "Rajasthan"}, ["錫金"] = {wp = "Sikkim"}, ["泰米爾納德邦"] = {wp = "Tamil Nadu"}, ["特倫甘納邦"] = {wp = "Telangana"}, ["特里普拉邦"] = {wp = "Tripura"}, ["北方邦"] = {wp = "Uttar Pradesh"}, ["北阿坎德邦"] = {wp = "Uttarakhand"}, ["西孟加拉邦"] = {wp = "West Bengal"}, } export.india_group = { placename_to_key = false, default_container = "印度", default_placetype = "state", default_divs = {"districts"}, data = export.india_states_and_union_territories, } export.indonesia_provinces = { ["亞齊省"] = {wp = "Aceh"}, ["峇里省"] = {wp = "Bali"}, ["邦加勿里洞省"] = {wp = "Bangka Belitung Islands"}, ["萬丹省"] = {wp = "Banten"}, ["明古魯省"] = {wp = "Bengkulu"}, ["中爪哇省"] = {wp = "Central Java"}, ["中加里曼丹省"] = {wp = "Central Kalimantan"}, ["中巴布亞省"] = {wp = "Central Papua"}, ["中蘇拉威西省"] = {wp = "Central Sulawesi"}, ["東爪哇省"] = {wp = "East Java"}, ["東加里曼丹省"] = {wp = "East Kalimantan"}, ["東努沙登加拉省"] = {wp = "East Nusa Tenggara"}, ["哥倫打洛省"] = {wp = "Gorontalo"}, ["巴布亞高地省"] = {wp = "Highland Papua"}, ["雅加達首都特區"] = {wp = "Jakarta"}, ["占碑省"] = {wp = "Jambi"}, ["楠榜省"] = {wp = "Lampung"}, ["馬魯古省"] = {wp = "Maluku"}, ["北加里曼丹省"] = {wp = "North Kalimantan"}, ["北馬魯古省"] = {wp = "North Maluku"}, ["北蘇拉威西省"] = {wp = "North Sulawesi"}, ["北巴布亞省"] = {wp = "North Papua"}, ["北蘇門答臘省"] = {wp = "North Sumatra"}, ["巴布亞省"] = {wp = "Papua (province)"}, ["廖內省"] = {wp = "Riau"}, ["廖內群島省"] = {wp = "Riau Islands"}, ["東南蘇拉威西省"] = {wp = "Southeast Sulawesi"}, ["南加里曼丹省"] = {wp = "South Kalimantan"}, ["南巴布亞省"] = {wp = "South Papua"}, ["南蘇拉威西省"] = {wp = "South Sulawesi"}, ["南蘇門答臘省"] = {wp = "South Sumatra"}, ["西南巴布亞省"] = {wp = "Southwest Papua"}, ["西爪哇省"] = {wp = "West Java"}, ["西加里曼丹省"] = {wp = "West Kalimantan"}, ["西努沙登加拉省"] = {wp = "West Nusa Tenggara"}, ["西巴布亞省"] = {wp = "West Papua (province)"}, ["西蘇拉威西省"] = {wp = "West Sulawesi"}, ["西蘇門答臘省"] = {wp = "West Sumatra"}, ["日惹特區"] = {wp = "Special Region of Yogyakarta"}, } export.indonesia_group = { placename_to_key = false, default_container = "印度尼西亞", default_placetype = "province", data = export.indonesia_provinces, } export.iran_provinces = { ["阿爾博爾茲省"] = {wp = "Alborz Province"}, ["阿爾達比勒省"] = {wp = "Ardabil Province"}, ["布什爾省"] = {wp = "Bushehr Province"}, ["恰哈爾馬哈勒-巴赫蒂亞里省"] = {wp = "Chaharmahal and Bakhtiari Province"}, ["東阿塞拜疆省"] = {wp = "East Azerbaijan Province"}, ["法爾斯省"] = {wp = "Fars Province"}, ["帕爾斯省"] = {alias_of = "法爾斯省"}, ["吉蘭省"] = {wp = "Gilan Province"}, ["戈勒斯坦省"] = {wp = "Golestan Province"}, ["哈馬丹省"] = {wp = "Hamadan Province"}, ["霍爾木茲甘省"] = {wp = "Hormozgan Province"}, ["伊拉姆省"] = {wp = "Ilam Province"}, ["伊斯法罕省"] = {wp = "Isfahan Province"}, ["克爾曼省"] = {wp = "Kerman Province"}, ["克爾曼沙赫省"] = {wp = "Kermanshah Province"}, ["胡齊斯坦省"] = {wp = "Khuzestan Province"}, ["科吉盧耶-博亞赫邁德省"] = {wp = "Kohgiluyeh and Boyer-Ahmad Province"}, ["庫爾德斯坦省"] = {wp = "Kurdistan Province"}, ["洛雷斯坦省"] = {wp = "Lorestan Province"}, ["馬爾卡齊省"] = {wp = "Markazi Province"}, ["馬贊達蘭省"] = {wp = "Mazandaran Province"}, ["北呼羅珊省"] = {wp = "North Khorasan Province"}, ["加茲溫省"] = {wp = "Qazvin Province"}, ["庫姆省"] = {wp = "Qom Province"}, ["拉扎維呼羅珊省"] = {wp = "Razavi Khorasan Province"}, ["森南省"] = {wp = "Semnan Province"}, ["錫斯坦-俾路支斯坦省"] = {wp = "Sistan and Baluchestan Province"}, ["南呼羅珊省"] = {wp = "South Khorasan Province"}, ["德黑蘭省"] = {wp = "Tehran Province"}, ["西阿塞拜疆省"] = {wp = "West Azerbaijan Province"}, ["亞茲德省"] = {wp = "Yazd Province"}, ["贊詹省"] = {wp = "Zanjan Province"}, } export.iran_group = { placename_to_key = false, default_container = "伊朗", default_placetype = "province", data = export.iran_provinces, } export.ireland_counties = { ["卡洛郡"] = {wp = "County Carlow"}, ["卡文郡"] = {wp = "County Cavan"}, ["克萊爾郡"] = {wp = "County Clare"}, ["科克郡"] = {wp = "County Cork"}, ["多尼戈爾郡"] = {wp = "County Donegal"}, ["都柏林郡"] = {wp = "County Dublin"}, ["戈爾韋郡"] = {wp = "County Galway"}, ["克里郡"] = {wp = "County Kerry"}, ["基爾代爾郡"] = {wp = "County Kildare"}, ["基爾肯尼郡"] = {wp = "County Kilkenny"}, ["萊什郡"] = {wp = "County Laois"}, ["利特里姆郡"] = {wp = "County Leitrim"}, ["利默里克郡"] = {wp = "County Limerick"}, ["朗福德郡"] = {wp = "County Longford"}, ["勞斯郡"] = {wp = "County Louth"}, ["梅奧郡"] = {wp = "County Mayo"}, ["米斯郡"] = {wp = "County Meath"}, ["莫納亨郡"] = {wp = "County Monaghan"}, ["奧法利郡"] = {wp = "County Offaly"}, ["羅斯康芒郡"] = {wp = "County Roscommon"}, ["斯萊戈郡"] = {wp = "County Sligo"}, ["蒂珀雷里郡"] = {wp = "County Tipperary"}, ["沃特福德郡"] = {wp = "County Waterford"}, ["西米斯郡"] = {wp = "County Westmeath"}, ["韋克斯福德郡"] = {wp = "County Wexford"}, ["威克洛郡"] = {wp = "County Wicklow"}, } -- 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 = { placename_to_key = false, default_container = "愛爾蘭", default_placetype = "county", data = export.ireland_counties, } export.italy_administrative_regions = { ["阿布魯佐"] = {wp = "Abruzzo"}, ["巴西利卡塔"] = {wp = "Basilicata"}, ["卡拉布里亞"] = {wp = "Calabria"}, ["坎帕尼亞"] = {wp = "Campania"}, ["艾米利亞-羅馬涅"] = {wp = "Emilia-Romagna"}, ["弗留利-威尼斯朱利亞"] = {wp = "Friuli-Venezia Giulia"}, ["拉齊奧"] = {wp = "Lazio"}, ["利古里亞"] = {wp = "Liguria"}, ["倫巴第"] = {wp = "Lombardy"}, ["倫巴底"] = {alias_of = "倫巴第"}, ["馬爾凱"] = {wp = "Marche"}, ["莫利塞"] = {wp = "Molise"}, ["皮埃蒙特"] = {wp = "Piedmont"}, ["普利亞"] = {wp = "Apulia"}, ["阿普利亞"] = {alias_of = "普利亞"}, ["薩丁尼亞"] = {wp = "Sardinia"}, ["西西里"] = {wp = "Sicily"}, ["托斯卡納"] = {wp = "Tuscany"}, ["特倫蒂諾-上阿迪傑"] = {wp = "Trentino-Alto Adige/Südtirol"}, ["翁布里亞"] = {wp = "Umbria"}, ["奧斯塔谷"] = {wp = "Aosta Valley"}, ["威尼托"] = {wp = "Veneto"}, } export.italy_group = { placename_to_key = false, default_container = "意大利", default_placetype = "region", data = export.italy_administrative_regions, } -- table of Japanese prefectures; interpolated into the main 'places' table, but also needed separately export.japan_prefectures = { ["青森縣"] = {wp = "青森縣"}, ["岩手縣"] = {wp = "岩手縣"}, ["宮城縣"] = {wp = "宮城縣"}, ["秋田縣"] = {wp = "秋田縣"}, ["山形縣"] = {wp = "山形縣"}, ["福島縣"] = {wp = "福島縣"}, ["茨城縣"] = {wp = "茨城縣"}, ["栃木縣"] = {wp = "栃木縣"}, ["群馬縣"] = {wp = "群馬縣"}, ["埼玉縣"] = {wp = "埼玉縣"}, ["千葉縣"] = {wp = "千葉縣"}, ["神奈川縣"] = {wp = "神奈川縣"}, ["新潟縣"] = {wp = "新潟縣"}, ["富山縣"] = {wp = "富山縣"}, ["石川縣"] = {wp = "石川縣"}, ["福井縣"] = {wp = "福井縣"}, ["山梨縣"] = {wp = "山梨縣"}, ["長野縣"] = {wp = "長野縣"}, ["岐阜縣"] = {wp = "岐阜縣"}, ["靜岡縣"] = {wp = "靜岡縣"}, ["愛知縣"] = {wp = "愛知縣"}, ["三重縣"] = {wp = "三重縣"}, ["滋賀縣"] = {wp = "滋賀縣"}, ["兵庫縣"] = {wp = "兵庫縣"}, ["奈良縣"] = {wp = "奈良縣"}, ["和歌山縣"] = {wp = "和歌山縣"}, ["鳥取縣"] = {wp = "鳥取縣"}, ["島根縣"] = {wp = "島根縣"}, ["岡山縣"] = {wp = "岡山縣"}, ["廣島縣"] = {wp = "廣島縣"}, ["山口縣"] = {wp = "山口縣"}, ["德島縣"] = {wp = "德島縣"}, ["香川縣"] = {wp = "香川縣"}, ["愛媛縣"] = {wp = "愛媛縣"}, ["高知縣"] = {wp = "高知縣"}, ["福岡縣"] = {wp = "福岡縣"}, ["佐賀縣"] = {wp = "佐賀縣"}, ["長崎縣"] = {wp = "長崎縣"}, ["熊本縣"] = {wp = "熊本縣"}, ["大分縣"] = {wp = "大分縣"}, ["宮崎縣"] = {wp = "宮崎縣"}, ["鹿兒島縣"] = {wp = "鹿兒島縣"}, ["沖繩縣"] = {wp = "沖繩縣"}, ["北海道"] = {divs = {"subprefectures"}, wp = "北海道"}, ["京都府"] = {wp = "京都府"}, ["大阪府"] = {wp = "大阪府"}, } local function japan_placename_to_key(placename) local japan_placename_to_key_map = { -- ["東京"] = "東京都", ["大阪"] = "大阪府", ["京都"] = "京都府", } if placename:find("[都道府縣]$") then return placename -- 已帶後綴,不轉換 end return japan_placename_to_key_map[placename] or (placename .. "縣") end -- prefectures of Japan export.japan_group = { key_to_placename = make_key_to_placename(nil, "[都道府縣]$"), placename_to_key = japan_placename_to_key, default_container = "日本", default_placetype = "prefecture", default_divs = {"cities", "districts"}, data = export.japan_prefectures, } export.laos_provinces = { ["阿塔坡省"] = {wp = "Attapeu Province"}, ["博膠省"] = {wp = "Bokeo Province"}, ["波里坎賽省"] = {wp = "Bolikhamxai Province"}, ["占巴塞省"] = {wp = "Champasak Province"}, ["華潘省"] = {wp = "Houaphanh Province"}, ["甘蒙省"] = {wp = "Khammouane Province"}, ["南塔省"] = {wp = "Luang Namtha Province"}, ["琅勃拉邦省"] = {wp = "Luang Prabang Province"}, ["烏多姆賽省"] = {wp = "Oudomxay Province"}, ["豐沙里省"] = {wp = "Phongsaly Province"}, ["沙拉灣省"] = {wp = "Salavan Province"}, ["沙灣拿吉省"] = {wp = "Savannakhet Province"}, ["萬象省"] = {wp = "Vientiane Province"}, ["萬象直轄市"] = {placetype = "prefecture", wp = "Vientiane Prefecture"}, ["賽亞武里省"] = {wp = "Sainyabuli Province"}, ["塞公省"] = {wp = "Sekong Province"}, ["賽頌本省"] = {wp = "Xaisomboun Province"}, ["川壙省"] = {wp = "Xiangkhouang Province"}, } export.laos_group = { placename_to_key = false, default_container = "老撾", default_placetype = "province", data = export.laos_provinces, } export.lebanon_governorates = { ["阿卡爾省"] = {wp = "Akkar Governorate"}, ["巴勒貝克-赫爾梅勒省"] = {wp = "Baalbek-Hermel Governorate"}, ["貝魯特省"] = {wp = "Beirut Governorate"}, ["貝卡省"] = {wp = "Beqaa Governorate"}, ["克塞旺-裘拜勒省"] = {wp = "Keserwan-Jbeil Governorate"}, ["黎巴嫩山省"] = {wp = "Mount Lebanon Governorate"}, ["納巴蒂耶省"] = {wp = "Nabatieh Governorate"}, ["北部省(黎巴嫩)"] = {wp = "North Governorate (Lebanon)", no_auto_augment_container = true}, ["南部省(黎巴嫩)"] = {wp = "South Governorate (Lebanon)", no_auto_augment_container = true}, } export.lebanon_group = { placename_to_key = false, default_container = "黎巴嫩", default_placetype = "governorate", data = export.lebanon_governorates, } export.malaysia_states = { ["柔佛州"] = {wp = "Johor"}, ["吉打州"] = {wp = "Kedah"}, ["吉蘭丹州"] = {wp = "Kelantan"}, ["馬六甲州"] = {wp = "Malacca"}, ["森美蘭州"] = {wp = "Negeri Sembilan"}, ["彭亨州"] = {wp = "Pahang"}, ["檳城州"] = {wp = "Penang"}, ["霹靂州"] = {wp = "Perak"}, ["玻璃市州"] = {wp = "Perlis"}, ["沙巴州"] = {wp = "Sabah"}, ["砂拉越州"] = {wp = "Sarawak"}, ["雪蘭莪州"] = {wp = "Selangor"}, ["登嘉樓州"] = {wp = "Terengganu"}, } export.malaysia_group = { placename_to_key = false, default_container = "馬來西亞", default_placetype = "state", data = export.malaysia_states, } export.malta_regions = { ["東部區(馬爾他)"] = {wp = "Eastern Region, Malta", no_auto_augment_container = true}, ["戈佐區"] = {wp = "Gozo Region"}, ["北部區(馬爾他)"] = {wp = "Northern Region, Malta", no_auto_augment_container = true}, ["港口區"] = {wp = "Port Region, Malta"}, ["南部區(馬爾他)"] = {wp = "Southern Region, Malta", no_auto_augment_container = true}, ["西部區(馬爾他)"] = {wp = "Western Region, Malta", no_auto_augment_container = true}, } export.malta_group = { placename_to_key = false, default_container = "馬爾他", default_placetype = "region", data = export.malta_regions, } export.mexico_states = { ["阿瓜斯卡連特斯州"] = {wp = "Aguascalientes"}, ["下加利福尼亞州"] = {wp = "Baja California"}, ["南下加利福尼亞州"] = {wp = "Baja California Sur"}, ["坎佩切州"] = {wp = "Campeche"}, ["恰帕斯州"] = {wp = "Chiapas"}, ["奇瓦瓦州"] = {wp = "Chihuahua (state)"}, ["科阿韋拉州"] = {wp = "Coahuila"}, ["科利馬州"] = {wp = "Colima"}, ["杜蘭戈州"] = {wp = "Durango"}, ["瓜納華托州"] = {wp = "Guanajuato"}, ["格雷羅州"] = {wp = "Guerrero"}, ["伊達爾戈州"] = {wp = "Hidalgo (state)"}, ["哈利斯科州"] = {wp = "Jalisco"}, ["墨西哥州"] = {wp = "State of Mexico"}, ["米卻肯州"] = {wp = "Michoacán"}, ["莫雷洛斯州"] = {wp = "Morelos"}, ["納亞里特州"] = {wp = "Nayarit"}, ["新萊昂州"] = {wp = "Nuevo León"}, ["瓦哈卡州"] = {wp = "Oaxaca"}, ["普埃布拉州"] = {wp = "Puebla"}, ["克雷塔羅州"] = {wp = "Querétaro"}, ["金塔納羅奧州"] = {wp = "Quintana Roo"}, ["聖路易斯波托西州"] = {wp = "San Luis Potosí"}, ["錫那羅亞州"] = {wp = "Sinaloa"}, ["索諾拉州"] = {wp = "Sonora"}, ["塔巴斯科州"] = {wp = "Tabasco (state)"}, ["塔毛利帕斯州"] = {wp = "Tamaulipas"}, ["特拉斯卡拉州"] = {wp = "Tlaxcala"}, ["韋拉克魯斯州"] = {wp = "Veracruz"}, ["尤卡坦州"] = {wp = "Yucatán"}, ["薩卡特卡斯州"] = {wp = "Zacatecas"}, } export.mexico_group = { placename_to_key = false, default_container = "墨西哥", default_placetype = "state", data = export.mexico_states, } export.moldova_districts_and_autonomous_territorial_units = { ["阿內尼諾伊區"] = {wp = "Anenii Noi District"}, ["巴薩拉比亞斯卡區"] = {wp = "Basarabeasca District"}, ["布里切尼區"] = {wp = "Briceni District"}, ["卡胡爾區"] = {wp = "Cahul District"}, ["坎特米爾區"] = {wp = "Cantemir District"}, ["克勒拉希區"] = {wp = "Călărași District"}, ["考沙尼區"] = {wp = "Căușeni District"}, ["奇米什利亞區"] = {wp = "Cimișlia District"}, ["克里烏列尼區"] = {wp = "Criuleni District"}, ["東杜沙尼區"] = {wp = "Dondușeni District"}, ["德羅基亞區"] = {wp = "Drochia District"}, ["杜巴薩里區"] = {wp = "Dubăsari District"}, ["埃迪涅茨區"] = {wp = "Edineț District"}, ["法勒什蒂區"] = {wp = "Fălești District"}, ["弗洛雷什蒂區"] = {wp = "Florești District"}, ["格洛德尼區"] = {wp = "Glodeni District"}, ["欣切什蒂區"] = {wp = "Hîncești District"}, ["亞洛韋尼區"] = {wp = "Ialoveni District"}, ["萊奧瓦區"] = {wp = "Leova District"}, ["尼斯波雷尼區"] = {wp = "Nisporeni District"}, ["奧克尼察區"] = {wp = "Ocnița District"}, ["奧爾海伊區"] = {wp = "Orhei District"}, ["雷齊納區"] = {wp = "Rezina District"}, ["雷什卡尼區"] = {wp = "Rîșcani District"}, ["辛格雷伊區"] = {wp = "Sîngerei District"}, ["索羅卡區"] = {wp = "Soroca District"}, ["斯特拉沙尼區"] = {wp = "Strășeni District"}, ["紹爾達涅什蒂區"] = {wp = "Șoldănești District"}, ["斯蒂凡沃達區"] = {wp = "Ștefan Vodă District"}, ["塔拉克利亞區"] = {wp = "Taraclia District"}, ["泰萊涅什蒂區"] = {wp = "Telenești District"}, ["翁格尼區"] = {wp = "Ungheni District"}, ["基希訥烏市"] = {wp = "Chișinău", placetype = "municipality"}, ["巴爾茨市"] = {wp = "Bălți", placetype = "municipality"}, ["加告茲自治領土"] = {wp = "Gagauzia", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, ["本德爾市"] = {wp = "Bender, Moldova", placetype = "municipality"}, ["德涅斯特河沿岸"] = {wp = "Transnistria", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, } export.moldova_group = { placename_to_key = false, default_container = "摩爾多瓦", default_placetype = {"district", "raion"}, data = export.moldova_districts_and_autonomous_territorial_units, } export.morocco_regions = { ["丹吉爾-得土安-霍賽馬大區"] = {wp = "Tangier-Tetouan-Al Hoceima"}, ["東方大區(摩洛哥)"] = {wp = "Oriental, Morocco"}, ["非斯-梅克內斯大區"] = {wp = "Fez-Meknes"}, ["拉巴特-薩累-肯尼特拉大區"] = {wp = "Rabat-Salé-Kénitra"}, ["貝尼梅拉勒-赫尼夫拉大區"] = {wp = "Béni Mellal-Khénifra"}, ["卡薩布蘭卡-塞塔特大區"] = {wp = "Casablanca-Settat"}, ["馬拉喀什-薩菲大區"] = {wp = "Marrakesh-Safi"}, ["德拉阿-塔菲拉勒特大區"] = {wp = "Drâa-Tafilalet"}, ["蘇斯-馬薩大區"] = {wp = "Souss-Massa"}, ["蓋勒明-烏德農大區"] = {wp = "Guelmim-Oued Noun"}, ["拉阿永-薩基亞-哈姆拉大區"] = {wp = "Laâyoune-Sakia El Hamra"}, ["達赫拉-奧以德達赫卜大區"] = {wp = "Dakhla-Oued Ed-Dahab"}, } export.morocco_group = { placename_to_key = false, default_container = "摩洛哥", default_placetype = "region", data = export.morocco_regions, } export.egypt_governorates = { ["開羅省"] = {wp = "Cairo Governorate"}, ["吉薩省"] = {wp = "Giza Governorate"}, ["夏爾基亞省"] = {wp = "Sharqia Governorate"}, ["達卡利亞省"] = {wp = "Dakahlia Governorate"}, ["貝海拉省"] = {wp = "Beheira Governorate"}, ["明亞省"] = {wp = "Minya Governorate"}, ["蓋柳比亞省"] = {wp = "Qalyubia Governorate"}, ["索哈傑省"] = {wp = "Sohag Governorate"}, ["亞歷山大省"] = {wp = "Alexandria Governorate"}, ["加爾比亞省"] = {wp = "Gharbia Governorate"}, ["艾斯尤特省"] = {wp = "Asyut Governorate"}, ["莫諾菲亞省"] = {wp = "Monufia Governorate"}, ["法尤姆省"] = {wp = "Faiyum Governorate"}, ["卡夫爾謝赫省"] = {wp = "Kafr El Sheikh Governorate"}, ["基納省"] = {wp = "Qena Governorate"}, ["本尼蘇威夫省"] = {wp = "Beni Suef Governorate"}, ["達米埃塔省"] = {wp = "Damietta Governorate"}, ["阿斯旺省"] = {wp = "Aswan Governorate"}, ["伊斯梅利亞省"] = {wp = "Ismailia Governorate"}, ["盧克索省"] = {wp = "Luxor Governorate"}, ["蘇伊士省"] = {wp = "Suez Governorate"}, ["塞德港省"] = {wp = "Port Said Governorate"}, ["馬特魯省"] = {wp = "Matrouh Governorate"}, ["北西奈省"] = {wp = "North Sinai Governorate"}, ["紅海省"] = {wp = "Red Sea Governorate"}, ["新河谷省"] = {wp = "New Valley Governorate"}, ["南西奈省"] = {wp = "South Sinai Governorate"}, } export.egypt_group = { placename_to_key = false, default_container = "埃及", default_placetype = "governorate", data = export.egypt_governorates, } export.spain_autonomous_communities = { ["安達盧西亞"] = {wp = "Andalusia"}, ["安達魯西亞"] = {alias_of = "安達盧西亞"}, ["阿拉貢"] = {wp = "Aragon"}, ["阿斯圖里亞斯"] = {wp = "Asturias"}, ["巴利阿里群島"] = {wp = "Balearic Islands"}, ["巴斯克"] = {wp = "Basque Country (autonomous community)"}, ["加那利群島"] = {wp = "Canary Islands"}, ["坎塔布里亞"] = {wp = "Cantabria"}, ["卡斯蒂利亞-拉曼恰"] = {wp = "Castilla-La Mancha"}, ["卡斯蒂利亞-萊昂"] = {wp = "Castilla y León"}, ["加泰羅尼亞"] = {wp = "Catalonia"}, ["加泰隆尼亞"] = {alias_of = "加泰羅尼亞"}, ["埃斯特雷馬杜拉"] = {wp = "Extremadura"}, ["加利西亞"] = {wp = "Galicia (Spain)"}, ["拉里奧哈"] = {wp = "La Rioja (autonomous community)"}, ["馬德里自治區"] = {wp = "Community of Madrid"}, ["穆爾西亞"] = {wp = "Region of Murcia"}, ["納瓦拉"] = {wp = "Navarre"}, ["巴倫西亞"] = {wp = "Valencian Community"}, ["巴倫西亞自治區"] = {alias_of = "巴倫西亞"}, } export.spain_group = { placename_to_key = false, default_container = "西班牙", default_placetype = "autonomous community", data = export.spain_autonomous_communities, } export.taiwan_counties = { ["彰化縣"] = {wp = "彰化縣"}, ["嘉義縣"] = {wp = "嘉義縣"}, ["新竹縣"] = {wp = "新竹縣"}, ["花蓮縣"] = {wp = "花蓮縣"}, ["金門縣"] = {wp = "金門縣"}, ["連江縣"] = {wp = "連江縣"}, ["苗栗縣"] = {wp = "苗栗縣"}, ["南投縣"] = {wp = "南投縣"}, ["屏東縣"] = {wp = "屏東縣"}, ["澎湖縣"] = {wp = "澎湖縣"}, ["宜蘭縣"] = {wp = "宜蘭縣"}, ["雲林縣"] = {wp = "雲林縣"}, } export.taiwan_group = { key_to_placename = make_key_to_placename(nil, "縣$"), placename_to_key = make_placename_to_key("縣"), default_container = "臺灣", default_placetype = "county", default_divs = {"districts", "townships"}, data = export.taiwan_counties, } export.new_york_boroughs = { ["布朗克斯"] = {the = true, wp = "The Bronx"}, ["布魯克林"] = {wp = "Brooklyn"}, ["曼哈頓"] = {wp = "Manhattan"}, ["皇后區"] = {wp = "Queens"}, ["史泰登島"] = {wp = "Staten Island"}, } export.new_york_boroughs_group = { placename_to_key = false, default_container = {key = "紐約市", placetype = "city"}, default_placetype = "borough", default_is_city = true, data = export.new_york_boroughs, } export.romania_counties = { ["阿爾巴縣"] = {wp = "Alba County"}, ["阿拉德縣"] = {wp = "Arad County"}, ["阿爾傑什縣"] = {wp = "Argeș County"}, ["巴考縣"] = {wp = "Bacău County"}, ["比霍爾縣"] = {wp = "Bihor County"}, ["比斯特里察-訥瑟烏德縣"] = {wp = "Bistrița-Năsăud County"}, ["博托沙尼縣"] = {wp = "Botoșani County"}, ["布拉索夫縣"] = {wp = "Brașov County"}, ["布勒伊拉縣"] = {wp = "Brăila County"}, ["布澤烏縣"] = {wp = "Buzău County"}, ["卡拉什-塞韋林縣"] = {wp = "Caraș-Severin County"}, ["克盧日縣"] = {wp = "Cluj County"}, ["康斯坦察縣"] = {wp = "Constanța County"}, ["科瓦斯納縣"] = {wp = "Covasna County"}, ["克勒拉希縣"] = {wp = "Călărași County"}, ["多爾日縣"] = {wp = "Dolj County"}, ["登博維察縣"] = {wp = "Dâmbovița County"}, ["加拉茨縣"] = {wp = "Galați County"}, ["久爾久縣"] = {wp = "Giurgiu County"}, ["戈爾日縣"] = {wp = "Gorj County"}, ["哈爾吉塔縣"] = {wp = "Harghita County"}, ["胡內多阿拉縣"] = {wp = "Hunedoara County"}, ["雅洛米察縣"] = {wp = "Ialomița County"}, ["雅西縣"] = {wp = "Iași County"}, ["伊爾福夫縣"] = {wp = "Ilfov County"}, ["馬拉穆列什縣"] = {wp = "Maramureș County"}, ["梅赫丁茨縣"] = {wp = "Mehedinți County"}, ["穆列什縣"] = {wp = "Mureș County"}, ["尼亞姆茨縣"] = {wp = "Neamț County"}, ["奧爾特縣"] = {wp = "Olt County"}, ["普拉霍瓦縣"] = {wp = "Prahova County"}, ["薩圖馬雷縣"] = {wp = "Satu Mare County"}, ["錫比烏縣"] = {wp = "Sibiu County"}, ["蘇恰瓦縣"] = {wp = "Suceava County"}, ["瑟拉日縣"] = {wp = "Sălaj County"}, ["特列奧爾曼縣"] = {wp = "Teleorman County"}, ["蒂米什縣"] = {wp = "Timiș County"}, ["圖爾恰縣"] = {wp = "Tulcea County"}, ["瓦斯盧伊縣"] = {wp = "Vaslui County"}, ["弗蘭恰縣"] = {wp = "Vrancea County"}, ["沃爾恰縣"] = {wp = "Vâlcea County"}, } export.romania_group = { placename_to_key = false, default_container = "羅馬尼亞", default_placetype = "county", data = export.romania_counties, } export.north_korea_provinces = { ["慈江道"] = {wp = "慈江道"}, ["咸鏡北道"] = {wp = "咸鏡北道"}, ["咸鏡南道"] = {wp = "咸鏡南道"}, ["黃海北道"] = {wp = "黃海北道"}, ["黃海南道"] = {wp = "黃海南道"}, ["江原道(北韓)"] = {wp = "江原道 (朝鮮民主主義人民共和國)"}, ["平安北道"] = {wp = "平安北道"}, ["平安南道"] = {wp = "平安南道"}, ["兩江道"] = {wp = "兩江道"}, } export.north_korea_group = { placename_to_key = false, default_container = "朝鮮", default_placetype = "province", data = export.north_korea_provinces, } export.south_korea_provinces = { ["忠清北道"] = {wp = "忠清北道"}, ["忠清南道"] = {wp = "忠清南道"}, ["江原道(南韓)"] = {wp = "江原特別自治道"}, ["京畿道"] = {wp = "京畿道"}, ["慶尚北道"] = {wp = "慶尚北道"}, ["慶尚南道"] = {wp = "慶尚南道"}, ["全羅北道"] = {wp = "全羅北道"}, ["全羅南道"] = {wp = "全羅南道"}, ["濟州道"] = {wp = "濟州道"}, } export.south_korea_group = { placename_to_key = false, default_container = "韓國", default_placetype = "province", data = export.south_korea_provinces, } export.thailand_provinces = { ["阿姆納特坤府"] = {wp = "Amnat Charoen Province"}, ["紅統府"] = {wp = "Ang Thong Province"}, ["彭侃府"] = {wp = "Bueng Kan Province"}, ["武里南府"] = {wp = "Buriram Province"}, ["北柳府"] = {wp = "Chachoengsao Province"}, ["猜納府"] = {wp = "Chai Nat Province"}, ["猜耶奔府"] = {wp = "Chaiyaphum Province"}, ["尖竹汶府"] = {wp = "Chanthaburi Province"}, ["清邁府"] = {wp = "Chiang Mai Province"}, ["清萊府"] = {wp = "Chiang Rai Province"}, ["春武里府"] = {wp = "Chonburi Province"}, ["春蓬府"] = {wp = "Chumphon Province"}, ["加拉信府"] = {wp = "Kalasin Province"}, ["甘烹碧府"] = {wp = "Kamphaeng Phet Province"}, ["北碧府"] = {wp = "Kanchanaburi Province"}, ["孔敬府"] = {wp = "Khon Kaen Province"}, ["甲米府"] = {wp = "Krabi Province"}, ["南邦府"] = {wp = "Lampang Province"}, ["南奔府"] = {wp = "Lamphun Province"}, ["黎府"] = {wp = "Loei Province"}, ["華富里府"] = {wp = "Lopburi Province"}, ["夜豐頌府"] = {wp = "Mae Hong Son Province"}, ["瑪哈沙拉堪府"] = {wp = "Maha Sarakham Province"}, ["莫達罕府"] = {wp = "Mukdahan Province"}, ["那空那育府"] = {wp = "Nakhon Nayok Province"}, ["佛統府"] = {wp = "Nakhon Pathom Province"}, ["那空帕農府"] = {wp = "Nakhon Phanom Province"}, ["呵叻府"] = {wp = "Nakhon Ratchasima Province"}, ["那空沙旺府"] = {wp = "Nakhon Sawan Province"}, ["洛坤府"] = {wp = "Nakhon Si Thammarat Province"}, ["難府"] = {wp = "Nan Province"}, ["那拉提瓦府"] = {wp = "Narathiwat Province"}, ["農布瓦蘭普府"] = {wp = "Nong Bua Lamphu Province"}, ["廊開府"] = {wp = "Nong Khai Province"}, ["暖武里府"] = {wp = "Nonthaburi Province"}, ["巴吞他尼府"] = {wp = "Pathum Thani Province"}, ["北大年府"] = {wp = "Pattani Province"}, ["攀牙府"] = {wp = "Phang Nga Province"}, ["博他侖府"] = {wp = "Phatthalung Province"}, ["帕堯府"] = {wp = "Phayao Province"}, ["碧差汶府"] = {wp = "Phetchabun Province"}, ["碧武里府"] = {wp = "Phetchaburi Province"}, ["披集府"] = {wp = "Phichit Province"}, ["彭世洛府"] = {wp = "Phitsanulok Province"}, ["大城府"] = {wp = "Phra Nakhon Si Ayutthaya Province"}, ["帕府"] = {wp = "Phrae Province"}, ["普吉府"] = {wp = "Phuket Province"}, ["巴真府"] = {wp = "Prachinburi Province"}, ["巴蜀府"] = {wp = "Prachuap Khiri Khan Province"}, ["拉廊府"] = {wp = "Ranong Province"}, ["叻丕府"] = {wp = "Ratchaburi Province"}, ["羅勇府"] = {wp = "Rayong Province"}, ["黎逸府"] = {wp = "Roi Et Province"}, ["沙繳府"] = {wp = "Sa Kaeo Province"}, ["色軍府"] = {wp = "Sakon Nakhon Province"}, ["北欖府"] = {wp = "Samut Prakan Province"}, ["沙沒沙空府"] = {wp = "Samut Sakhon Province"}, ["沙沒頌堪府"] = {wp = "Samut Songkhram Province"}, ["沙拉武里府"] = {wp = "Saraburi Province"}, ["沙敦府"] = {wp = "Satun Province"}, ["信武里府"] = {wp = "Sing Buri Province"}, ["四色菊府"] = {wp = "Sisaket Province"}, ["宋卡府"] = {wp = "Songkhla Province"}, ["素可泰府"] = {wp = "Sukhothai Province"}, ["素攀武里府"] = {wp = "Suphan Buri Province"}, ["素叻他尼府"] = {wp = "Surat Thani Province"}, ["素林府"] = {wp = "Surin Province"}, ["達府"] = {wp = "Tak Province"}, ["董里府"] = {wp = "Trang Province"}, ["達叻府"] = {wp = "Trat Province"}, ["烏汶府"] = {wp = "Ubon Ratchathani Province"}, ["烏隆府"] = {wp = "Udon Thani Province"}, ["烏泰他尼府"] = {wp = "Uthai Thani Province"}, ["烏達拉勐府"] = {wp = "Uttaradit Province"}, ["惹拉府"] = {wp = "Yala Province"}, ["耶梭通府"] = {wp = "Yasothon Province"}, } export.thailand_group = { placename_to_key = false, default_container = "泰國", default_placetype = "province", data = export.thailand_provinces, } export.turkey_provinces = { ["阿達納省"] = {wp = "Adana Province"}, ["阿德亞曼省"] = {wp = "Adıyaman Province"}, ["阿菲永卡拉希薩爾省"] = {wp = "Afyonkarahisar Province"}, ["阿里省"] = {wp = "Ağrı Province"}, ["阿馬西亞省"] = {wp = "Amasya Province"}, ["安卡拉省"] = {wp = "Ankara Province"}, ["安塔利亞省"] = {wp = "Antalya Province"}, ["阿爾特溫省"] = {wp = "Artvin Province"}, ["艾登省"] = {wp = "Aydın Province"}, ["巴勒克埃西爾省"] = {wp = "Balıkesir Province"}, ["比萊吉克省"] = {wp = "Bilecik Province"}, ["賓格爾省"] = {wp = "Bingöl Province"}, ["比特利斯省"] = {wp = "Bitlis Province"}, ["博盧省"] = {wp = "Bolu Province"}, ["布爾杜爾省"] = {wp = "Burdur Province"}, ["布爾薩省"] = {wp = "Bursa Province"}, ["恰納卡萊省"] = {wp = "Çanakkale Province"}, ["昌克勒省"] = {wp = "Çankırı Province"}, ["喬魯姆省"] = {wp = "Çorum Province"}, ["代尼茲利省"] = {wp = "Denizli Province"}, ["迪亞巴克爾省"] = {wp = "Diyarbakır Province"}, ["埃迪爾內省"] = {wp = "Edirne Province"}, ["埃拉澤省"] = {wp = "Elazığ Province"}, ["埃爾津詹省"] = {wp = "Erzincan Province"}, ["埃爾祖魯姆省"] = {wp = "Erzurum Province"}, ["埃斯基謝希爾省"] = {wp = "Eskişehir Province"}, ["加濟安泰普省"] = {wp = "Gaziantep Province"}, ["吉雷松省"] = {wp = "Giresun Province"}, ["居米什哈內省"] = {wp = "Gümüşhane Province"}, ["哈卡里省"] = {wp = "Hakkâri Province"}, ["哈塔伊省"] = {wp = "Hatay Province"}, ["伊斯帕爾塔省"] = {wp = "Isparta Province"}, ["梅爾辛省"] = {wp = "Mersin Province"}, ["伊茲密爾省"] = {wp = "İzmir Province"}, ["卡爾斯省"] = {wp = "Kars Province"}, ["卡斯塔莫努省"] = {wp = "Kastamonu Province"}, ["開塞利省"] = {wp = "Kayseri Province"}, ["柯克拉雷利省"] = {wp = "Kırklareli Province"}, ["克爾謝希爾省"] = {wp = "Kırşehir Province"}, ["科賈埃利省"] = {wp = "Kocaeli Province"}, ["科尼亞省"] = {wp = "Konya Province"}, ["屈塔希亞省"] = {wp = "Kütahya Province"}, ["馬拉蒂亞省"] = {wp = "Malatya Province"}, ["馬尼薩省"] = {wp = "Manisa Province"}, ["卡赫拉曼馬拉什省"] = {wp = "Kahramanmaraş Province"}, ["馬爾丁省"] = {wp = "Mardin Province"}, ["穆拉省"] = {wp = "Muğla Province"}, ["穆什省"] = {wp = "Muş Province"}, ["內夫謝希爾省"] = {wp = "Nevşehir Province"}, ["尼代省"] = {wp = "Niğde Province"}, ["奧爾杜省"] = {wp = "Ordu Province"}, ["里澤省"] = {wp = "Rize Province"}, ["薩卡里亞省"] = {wp = "Sakarya Province"}, ["薩姆松省"] = {wp = "Samsun Province"}, ["錫爾特省"] = {wp = "Siirt Province"}, ["錫諾普省"] = {wp = "Sinop Province"}, ["錫瓦斯省"] = {wp = "Sivas Province"}, ["泰基爾達省"] = {wp = "Tekirdağ Province"}, ["托卡特省"] = {wp = "Tokat Province"}, ["特拉布宗省"] = {wp = "Trabzon Province"}, ["通傑利省"] = {wp = "Tunceli Province"}, ["尚勒烏爾法省"] = {wp = "Şanlıurfa Province"}, ["烏沙克省"] = {wp = "Uşak Province"}, ["凡省"] = {wp = "Van Province"}, ["約茲加特省"] = {wp = "Yozgat Province"}, ["宗古爾達克省"] = {wp = "Zonguldak Province"}, ["阿克薩賴省"] = {wp = "Aksaray Province"}, ["拜布爾特省"] = {wp = "Bayburt Province"}, ["卡拉曼省"] = {wp = "Karaman Province"}, ["克勒克卡萊省"] = {wp = "Kırıkkale Province"}, ["巴特曼省"] = {wp = "Batman Province"}, ["蘇爾納克省"] = {wp = "Şırnak Province"}, ["巴爾騰省"] = {wp = "Bartın Province"}, ["阿爾達罕省"] = {wp = "Ardahan Province"}, ["伊迪爾省"] = {wp = "Iğdır Province"}, ["亞洛瓦省"] = {wp = "Yalova Province"}, ["卡拉比克省"] = {wp = "Karabük Province"}, ["基利斯省"] = {wp = "Kilis Province"}, ["奧斯曼尼耶省"] = {wp = "Osmaniye Province"}, ["迪茲傑省"] = {wp = "Düzce Province"}, } export.turkey_group = { placename_to_key = false, default_container = "土耳其", default_placetype = "province", data = export.turkey_provinces, } export.vietnam_provinces = { -- Northeast ["北江省"] = {wp = "Bắc Giang Province"}, ["北件省"] = {wp = "Bắc Kạn Province"}, ["高平省"] = {wp = "Cao Bằng Province"}, ["河江省"] = {wp = "Hà Giang Province"}, ["諒山省"] = {wp = "Lạng Sơn Province"}, ["富壽省"] = {wp = "Phú Thọ Province"}, ["廣寧省"] = {wp = "Quảng Ninh Province"}, ["太原省"] = {wp = "Thái Nguyên Province"}, ["宣光省"] = {wp = "Tuyên Quang Province"}, -- Northwest ["老街省"] = {wp = "Lào Cai Province"}, ["安沛省"] = {wp = "Yên Bái Province"}, ["奠邊省"] = {wp = "Điện Biên Province"}, ["和平省"] = {wp = "Hoà Bình Province"}, ["萊州省"] = {wp = "Lai Châu Province"}, ["山羅省"] = {wp = "Sơn La Province"}, -- Red River Delta ["北寧省"] = {wp = "Bắc Ninh Province"}, ["河南省"] = {wp = "Hà Nam Province"}, ["海陽省"] = {wp = "Hải Dương Province"}, ["興安省"] = {wp = "Hưng Yên Province"}, ["南定省"] = {wp = "Nam Định Province"}, ["寧平省"] = {wp = "Ninh Bình Province"}, ["太平省"] = {wp = "Thái Bình Province"}, ["永福省"] = {wp = "Vĩnh Phúc Province"}, -- North Central Coast ["河靜省"] = {wp = "Hà Tĩnh Province"}, ["乂安省"] = {wp = "Nghệ An Province"}, ["廣平省"] = {wp = "Quảng Bình Province"}, ["廣治省"] = {wp = "Quảng Trị Province"}, ["清化省"] = {wp = "Thanh Hoá Province"}, -- Central Highlands ["得樂省"] = {wp = "Đắk Lắk Province"}, ["得農省"] = {wp = "Đăk Nông Province"}, ["嘉萊省"] = {wp = "Gia Lai Province"}, ["崑嵩省"] = {wp = "Kon Tum Province"}, ["林同省"] = {wp = "Lâm Đồng Province"}, -- South Central Coast ["平定省"] = {wp = "Bình Định Province"}, ["平順省"] = {wp = "Bình Thuận Province"}, ["慶和省"] = {wp = "Khánh Hoà Province"}, ["寧順省"] = {wp = "Ninh Thuận Province"}, ["富安省"] = {wp = "Phú Yên Province"}, ["廣南省"] = {wp = "Quảng Nam Province"}, ["廣義省"] = {wp = "Quảng Ngãi Province"}, -- Southeast ["巴地-頭頓省"] = {wp = "Bà Rịa–Vũng Tàu Province"}, ["平陽省"] = {wp = "Bình Dương Province"}, ["平福省"] = {wp = "Bình Phước Province"}, ["同奈省"] = {wp = "Đồng Nai Province"}, ["西寧省"] = {wp = "Tây Ninh Province"}, -- Mekong Delta ["安江省"] = {wp = "An Giang Province"}, ["薄寮省"] = {wp = "Bạc Liêu Province"}, ["檳椥省"] = {wp = "Bến Tre Province"}, ["金甌省"] = {wp = "Cà Mau Province"}, ["同塔省"] = {wp = "Đồng Tháp Province"}, ["後江省"] = {wp = "Hậu Giang Province"}, ["堅江省"] = {wp = "Kiên Giang Province"}, ["龍安省"] = {wp = "Long An Province"}, ["朔莊省"] = {wp = "Sóc Trăng Province"}, ["前江省"] = {wp = "Tiền Giang Province"}, ["茶榮省"] = {wp = "Trà Vinh Province"}, ["永隆省"] = {wp = "Vĩnh Long Province"}, } export.vietnam_group = { placename_to_key = false, default_container = "越南", default_placetype = "province", data = export.vietnam_provinces, } export.united_states_states = { ["阿拉巴馬"] = {wp = "Alabama"}, ["阿拉斯加"] = {wp = "Alaska"}, ["亞利桑那"] = {wp = "Arizona"}, ["阿肯色"] = {wp = "Arkansas"}, ["加利福尼亞"] = {wp = "California"}, ["加州"] = {alias_of = "加利福尼亞"}, ["科羅拉多"] = {wp = "Colorado"}, ["康乃狄克"] = {wp = "Connecticut"}, ["康涅狄格"] = {alias_of = "康乃狄克"}, ["德拉瓦"] = {wp = "Delaware"}, ["佛羅里達"] = {wp = "Florida"}, ["佛罗里达"] = {alias_of = "佛羅里達"}, ["佐治亞"] = {wp = "Georgia (U.S. state)"}, ["夏威夷"] = {addl_parents = {"玻里尼西亞"}, wp = "Hawaii"}, ["愛達荷"] = {wp = "Idaho"}, ["伊利諾伊"] = {wp = "Illinois"}, ["伊利诺伊"] = {alias_of = "伊利諾伊"}, ["印地安那"] = {wp = "Indiana"}, ["印第安納"] = {alias_of = "印地安那"}, ["愛荷華"] = {wp = "Iowa"}, ["堪薩斯"] = {wp = "Kansas"}, ["肯塔基"] = {wp = "Kentucky"}, ["路易斯安那"] = {wp = "Louisiana"}, ["緬因"] = {wp = "Maine"}, ["馬里蘭"] = {wp = "Maryland"}, ["麻薩諸塞"] = {wp = "Massachusetts"}, ["麻薩诸塞"] = {alias_of = "麻薩諸塞"}, ["密西根"] = {wp = "Michigan"}, ["密歇根"] = {alias_of = "密西根"}, ["明尼蘇達"] = {wp = "Minnesota"}, ["明尼苏达"] = {alias_of = "明尼蘇達"}, ["密西西比"] = {wp = "Mississippi"}, ["密蘇里"] = {wp = "Missouri"}, ["蒙大拿"] = {wp = "Montana"}, ["內布拉斯加"] = {wp = "Nebraska"}, ["內華達"] = {wp = "Nevada"}, ["新罕布什爾"] = {wp = "New Hampshire"}, ["新澤西"] = {wp = "New Jersey"}, ["新泽西"] = {alias_of = "新澤西"}, ["新墨西哥"] = {wp = "New Mexico"}, ["紐約"] = {wp = "New York (state)"}, ["纽约"] = {alias_of = "紐約"}, ["北卡羅來納"] = {wp = "North Carolina"}, ["北达科他"] = {alias_of = "北達科他"}, ["北達科他"] = {wp = "North Dakota"}, ["俄亥俄"] = {wp = "Ohio"}, ["奧克拉荷馬"] = {wp = "Oklahoma"}, ["奧勒岡"] = {wp = "Oregon"}, ["俄勒冈"] = {alias_of = "奧勒岡"}, ["賓夕法尼亞"] = {wp = "Pennsylvania"}, ["宾夕法尼亚"] = {alias_of = "賓夕法尼亞"}, ["羅德島"] = {wp = "Rhode Island"}, ["南卡羅來納"] = {wp = "South Carolina"}, ["南達科他"] = {wp = "South Dakota"}, ["田納西"] = {wp = "Tennessee"}, ["田纳西"] = {alias_of = "田納西"}, ["德克薩斯"] = {wp = "Texas"}, ["德州"] = {alias_of = "德克薩斯"}, ["猶他"] = {wp = "Utah"}, ["佛蒙特"] = {wp = "Vermont"}, ["弗吉尼亞"] = {wp = "Virginia"}, ["弗吉尼亚"] = {alias_of = "弗吉尼亞"}, ["維吉尼亞"] = {alias_of = "弗吉尼亞"}, ["華盛頓州"] = {wp = "Washington (state)"}, ["华盛顿州"] = {alias_of = "華盛頓州"}, ["西維吉尼亞"] = {wp = "West Virginia"}, ["西弗吉尼亞"] = {alias_of = "西維吉尼亞"}, ["威斯康辛"] = {wp = "Wisconsin"}, ["懷俄明"] = {wp = "Wyoming"}, -- Washington D.C. (federal district, treated like a state in holonym context) ["華盛頓特區"] = {placetype = {"federal district", "district"}, wp = "Washington, D.C."}, } export.united_states_group = { placename_to_key = false, default_container = "美國", default_placetype = "state", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, }, data = export.united_states_states, } export.united_kingdom_constituent_countries = { ["英格蘭"] = {divs = {"counties", "districts"}, wp = "England"}, ["北愛爾蘭"] = { placetype = {"constituent country", "province", "country"}, divs = {"counties", "districts"}, wp = "Northern Ireland", }, ["蘇格蘭"] = {divs = {{type = "council areas", container_parent_type = false}}, wp = "Scotland"}, ["威爾斯"] = {divs = {"counties"}, wp = "Wales"}, ["威爾士"] = {alias_of = "威爾斯"}, } export.united_kingdom_group = { placename_to_key = false, default_container = "英國", default_placetype = {"constituent country", "country"}, default_no_container_cat = true, data = export.united_kingdom_constituent_countries, } -- Scotland council areas export.scotland_council_areas = { ["Aberdeen市"] = {wp = "Aberdeen"}, ["Aberdeenshire"] = {wp = "Aberdeenshire"}, ["Angus"] = {wp = "Angus, Scotland"}, ["Argyll and Bute"] = {wp = "Argyll and Bute"}, ["Clackmannanshire"] = {wp = "Clackmannanshire"}, ["Dumfries and Galloway"] = {wp = "Dumfries and Galloway"}, ["Dundee市"] = {wp = "Dundee"}, ["East Ayrshire"] = {wp = "East Ayrshire"}, ["East Dunbartonshire"] = {wp = "East Dunbartonshire"}, ["East Lothian"] = {wp = "East Lothian"}, ["East Renfrewshire"] = {wp = "East Renfrewshire"}, ["Edinburgh市"] = {wp = "Edinburgh"}, ["Eilean Siar"] = {wp = "Outer Hebrides"}, ["Falkirk"] = {wp = "Falkirk"}, ["Fife"] = {wp = "Fife"}, ["Glasgow市"] = {wp = "Glasgow"}, ["高地"] = {wp = "Highland council area"}, ["Highland"] = {alias_of = "高地", display = true}, ["Inverclyde"] = {wp = "Inverclyde"}, ["Midlothian"] = {wp = "Midlothian"}, ["Moray"] = {wp = "Moray"}, ["North Ayrshire"] = {wp = "North Ayrshire"}, ["North Lanarkshire"] = {wp = "North Lanarkshire"}, ["Orkney群島"] = {wp = "Orkney"}, ["Perth and Kinross"] = {wp = "Perth and Kinross"}, ["Renfrewshire"] = {wp = "Renfrewshire"}, ["Scottish Borders"] = {wp = "Scottish Borders"}, ["Shetland群島"] = {wp = "Shetland"}, ["South Ayrshire"] = {wp = "South Ayrshire"}, ["South Lanarkshire"] = {wp = "South Lanarkshire"}, ["Stirling"] = {wp = "Stirling (council area)"}, ["West Dunbartonshire"] = {wp = "West Dunbartonshire"}, ["West Lothian"] = {wp = "West Lothian"}, } export.scotland_group = { placename_to_key = false, default_container = "蘇格蘭", default_placetype = "council area", data = export.scotland_council_areas, } -- England counties (ceremonial) export.england_counties = { -- Metropolitan counties ["大倫敦"] = {wp = "Greater London"}, ["大曼徹斯特"] = {wp = "Greater Manchester"}, ["默西賽德郡"] = {wp = "Merseyside"}, ["西密德蘭"] = {wp = "West Midlands (county)"}, ["南約克郡"] = {wp = "South Yorkshire"}, ["西約克郡"] = {wp = "West Yorkshire"}, ["泰恩-威爾郡"] = {wp = "Tyne and Wear"}, -- Non-metropolitan ceremonial counties ["貝德福德郡"] = {wp = "Bedfordshire"}, ["伯克郡"] = {wp = "Berkshire"}, ["白金漢郡"] = {wp = "Buckinghamshire"}, ["劍橋郡"] = {wp = "Cambridgeshire"}, ["柴郡"] = {wp = "Cheshire"}, ["康沃爾郡"] = {wp = "Cornwall"}, ["坎布里亞郡"] = {wp = "Cumbria"}, ["德比郡"] = {wp = "Derbyshire"}, ["德文郡"] = {wp = "Devon"}, ["多塞特郡"] = {wp = "Dorset"}, ["達勒姆郡"] = {wp = "County Durham"}, ["約克郡東區"] = {wp = "East Riding of Yorkshire"}, ["東薩塞克斯郡"] = {wp = "East Sussex"}, ["埃塞克斯郡"] = {wp = "Essex"}, ["格洛斯特郡"] = {wp = "Gloucestershire"}, ["漢普郡"] = {wp = "Hampshire"}, ["赫里福德郡"] = {wp = "Herefordshire"}, ["赫特福德郡"] = {wp = "Hertfordshire"}, ["懷特島"] = {wp = "Isle of Wight"}, ["肯特郡"] = {wp = "Kent"}, ["蘭開夏郡"] = {wp = "Lancashire"}, ["萊斯特郡"] = {wp = "Leicestershire"}, ["林肯郡"] = {wp = "Lincolnshire"}, ["諾福克郡"] = {wp = "Norfolk"}, ["北安普敦郡"] = {wp = "Northamptonshire"}, ["諾森伯蘭郡"] = {wp = "Northumberland"}, ["北約克郡"] = {wp = "North Yorkshire"}, ["諾丁漢郡"] = {wp = "Nottinghamshire"}, ["牛津郡"] = {wp = "Oxfordshire"}, ["拉特蘭郡"] = {wp = "Rutland"}, ["什羅普郡"] = {wp = "Shropshire"}, ["薩默塞特郡"] = {wp = "Somerset"}, ["南亨伯賽德郡"] = {wp = "South Humberside"}, ["斯塔福德郡"] = {wp = "Staffordshire"}, ["薩福克郡"] = {wp = "Suffolk"}, ["薩里郡"] = {wp = "Surrey"}, ["沃里克郡"] = {wp = "Warwickshire"}, ["西薩塞克斯郡"] = {wp = "West Sussex"}, ["威爾特郡"] = {wp = "Wiltshire"}, ["伍斯特郡"] = {wp = "Worcestershire"}, } export.england_group = { placename_to_key = false, default_container = {key = "英格蘭", placetype = "constituent country"}, default_placetype = "county", data = export.england_counties, } -- Counties of Northern Ireland export.northern_ireland_counties = { ["安特里姆郡"] = {wp = "County Antrim"}, ["阿爾馬郡"] = {wp = "County Armagh"}, ["貝爾法斯特市"] = {is_city = true, wp = "Belfast"}, ["唐郡"] = {wp = "County Down"}, ["弗馬納郡"] = {wp = "County Fermanagh"}, ["倫敦德里郡"] = {wp = "County Londonderry"}, ["德里市"] = {is_city = true, wp = "Derry"}, ["泰龍郡"] = {wp = "County Tyrone"}, } export.northern_ireland_group = { placename_to_key = false, default_container = {key = "北愛爾蘭", placetype = "constituent country"}, default_placetype = "county", data = export.northern_ireland_counties, } export.nigeria_states = { ["阿比亞州"] = {wp = "Abia State"}, ["阿達馬瓦州"] = {wp = "Adamawa State"}, ["阿誇伊博姆州"] = {wp = "Akwa Ibom State"}, ["阿南布拉州"] = {wp = "Anambra State"}, ["包奇州"] = {wp = "Bauchi State"}, ["貝耶薩州"] = {wp = "Bayelsa State"}, ["貝努埃州"] = {wp = "Benue State"}, ["博爾諾州"] = {wp = "Borno State"}, ["跨河州"] = {wp = "Cross River State"}, ["三角洲州"] = {wp = "Delta State"}, ["埃博尼州"] = {wp = "Ebonyi State"}, ["埃多州"] = {wp = "Edo State"}, ["埃基蒂州"] = {wp = "Ekiti State"}, ["埃努古州"] = {wp = "Enugu State"}, ["阿布賈聯邦首都轄區"] = {placetype = {"federal territory", "territory", "state"}, the = true, wp = "Federal Capital Territory, Nigeria"}, ["貢貝州"] = {wp = "Gombe State"}, ["伊莫州"] = {wp = "Imo State"}, ["吉加瓦州"] = {wp = "Jigawa State"}, ["卡杜納州"] = {wp = "Kaduna State"}, ["卡諾州"] = {wp = "Kano State"}, ["卡齊納州"] = {wp = "Katsina State"}, ["克比州"] = {wp = "Kebbi State"}, ["科吉州"] = {wp = "Kogi State"}, ["誇拉州"] = {wp = "Kwara State"}, ["拉各斯州"] = {wp = "Lagos State"}, ["納薩拉瓦州"] = {wp = "Nasarawa State"}, ["尼日爾州"] = {wp = "Niger State"}, ["奧貢州"] = {wp = "Ogun State"}, ["翁多州"] = {wp = "Ondo State"}, ["奧順州"] = {wp = "Osun State"}, ["奧約州"] = {wp = "Oyo State"}, ["高原州"] = {wp = "Plateau State"}, ["河流州"] = {wp = "Rivers State"}, ["索科托州"] = {wp = "Sokoto State"}, ["塔拉巴州"] = {wp = "Taraba State"}, ["約貝州"] = {wp = "Yobe State"}, ["贊法拉州"] = {wp = "Zamfara State"}, } export.nigeria_group = { placename_to_key = false, default_container = "奈及利亞", default_placetype = "state", data = export.nigeria_states, } ----------------------------------------------------------------------------------- -- Selected city groups -- ----------------------------------------------------------------------------------- -- Key world cities frequently used as holonyms (entries covered by dedicated city groups removed) export.misc_cities = { -- Americas ["費爾法克斯"] = {container = "弗吉尼亞", placetype = "city", is_city = true, wp = "Fairfax, Virginia"}, ["斯克蘭頓"] = {container = "賓夕法尼亞", placetype = "city", is_city = true, wp = "Scranton, Pennsylvania"}, ["里約熱內盧市"] = {container = "巴西", placetype = "city", is_city = true, wp = "Rio de Janeiro"}, ["布宜諾斯艾利斯"] = {container = "阿根廷", placetype = "city", is_city = true, wp = "Buenos Aires"}, ["聖地牙哥"] = {container = "智利", placetype = "city", is_city = true, wp = "Santiago"}, ["波哥大"] = {container = "哥倫比亞", placetype = "city", is_city = true, wp = "Bogotá"}, ["利馬"] = {container = "秘魯", placetype = "city", is_city = true, wp = "Lima"}, -- Europe ["阿姆斯特丹"] = {container = "荷蘭", placetype = "city", is_city = true, wp = "Amsterdam"}, ["布魯塞爾"] = {container = "比利時", placetype = "city", is_city = true, wp = "Brussels"}, ["維也納"] = {container = "奧地利", placetype = "city", is_city = true, wp = "Vienna"}, ["伊斯坦布爾"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Istanbul"}, ["基輔"] = {container = "烏克蘭", placetype = "city", is_city = true, wp = "Kyiv"}, ["華沙"] = {container = "波蘭", placetype = "city", is_city = true, wp = "Warsaw"}, ["布拉格"] = {container = "捷克", placetype = "city", is_city = true, wp = "Prague"}, ["布達佩斯"] = {container = "匈牙利", placetype = "city", is_city = true, wp = "Budapest"}, ["斯德哥爾摩"] = {container = "瑞典", placetype = "city", is_city = true, wp = "Stockholm"}, ["赫爾辛基"] = {container = "芬蘭", placetype = "city", is_city = true, wp = "Helsinki"}, ["奧斯陸"] = {container = "挪威", placetype = "city", is_city = true, wp = "Oslo"}, ["哥本哈根"] = {container = "丹麥", placetype = "city", is_city = true, wp = "Copenhagen"}, ["里斯本"] = {container = "葡萄牙", placetype = "city", is_city = true, wp = "Lisbon"}, ["雅典"] = {container = "希臘", placetype = "city", is_city = true, wp = "Athens"}, ["蘇黎世"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Zurich"}, ["日內瓦"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Geneva"}, ["第比利斯"] = {container = "格魯吉亞", placetype = "city", is_city = true, wp = "Tbilisi"}, ["貝爾格勒"] = {container = "塞爾維亞", placetype = "city", is_city = true, wp = "Belgrade"}, ["薩格勒布"] = {container = "克羅埃西亞", placetype = "city", is_city = true, wp = "Zagreb"}, ["都柏林"] = {container = "愛爾蘭", placetype = "city", is_city = true, wp = "Dublin"}, -- Asia ["北京市"] = {container = "北京", placetype = "city", is_city = true, wp = "Beijing"}, ["上海市"] = {container = "上海", placetype = "city", is_city = true, wp = "Shanghai"}, ["德里市"] = {container = "德里", placetype = "city", is_city = true, wp = "Delhi"}, ["曼谷"] = {container = "泰國", placetype = "city", is_city = true, wp = "Bangkok"}, ["吉隆坡"] = {container = "馬來西亞", placetype = "city", is_city = true, wp = "Kuala Lumpur"}, ["開羅"] = {container = "埃及", placetype = "city", is_city = true, wp = "Cairo"}, ["德黑蘭"] = {container = "伊朗", placetype = "city", is_city = true, wp = "Tehran"}, ["安卡拉"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Ankara"}, -- Oceania ["奧克蘭"] = {container = "紐西蘭", placetype = "city", is_city = true, wp = "Auckland"}, -- Africa ["開普敦"] = {container = "南非", placetype = "city", is_city = true, wp = "Cape Town"}, ["約翰尼斯堡"] = {container = "南非", placetype = "city", is_city = true, wp = "Johannesburg"}, ["奈洛比"] = {container = "肯亞", placetype = "city", is_city = true, wp = "Nairobi"}, } export.misc_cities_group = { placename_to_key = false, default_placetype = "city", default_is_city = true, data = export.misc_cities, } export.netherlands_provinces = { ["德倫特省"] = {wp = "Drenthe"}, ["弗萊福蘭省"] = {wp = "Flevoland"}, ["弗里斯蘭省"] = {wp = "Friesland"}, ["格爾德蘭省"] = {wp = "Gelderland"}, ["格羅寧根省"] = {wp = "Groningen (province)"}, ["林堡省(荷蘭)"] = {wp = "Limburg (Netherlands)"}, ["北布拉班特省"] = {wp = "North Brabant"}, ["北荷蘭省"] = {wp = "North Holland"}, ["上艾瑟爾省"] = {wp = "Overijssel"}, ["南荷蘭省"] = {wp = "South Holland"}, ["烏特勒支省"] = {wp = "Utrecht (province)"}, ["澤蘭省"] = {wp = "Zeeland"}, } export.netherlands_group = { placename_to_key = false, default_container = "荷蘭", default_placetype = "province", data = export.netherlands_provinces, } export.new_zealand_regions = { ["北地大區"] = {wp = "Northland Region"}, ["奧克蘭大區"] = {wp = "Auckland Region"}, ["懷卡托大區"] = {wp = "Waikato Region"}, ["豐盛灣大區"] = {wp = "Bay of Plenty Region"}, ["吉斯伯恩大區"] = {wp = "Gisborne District", placetype = {"region", "district"}}, ["霍克斯灣大區"] = {wp = "Hawke's Bay Region"}, ["塔拉納基大區"] = {wp = "Taranaki Region"}, ["馬納瓦圖-旺阿努伊大區"] = {wp = "Manawatū-Whanganui Region"}, ["惠靈頓大區"] = {wp = "Wellington Region"}, ["塔斯曼大區"] = {wp = "Tasman District", placetype = {"region", "district"}}, ["納爾遜大區"] = {wp = "Nelson, New Zealand", placetype = {"region", "city"}, is_city = true}, ["馬爾堡大區"] = {wp = "Marlborough District", placetype = {"region", "district"}}, ["西海岸大區"] = {wp = "West Coast Region"}, ["坎特伯雷大區"] = {wp = "Canterbury Region"}, ["奧塔哥大區"] = {wp = "Otago Region"}, ["南地大區"] = {wp = "Southland Region"}, } export.new_zealand_group = { placename_to_key = false, default_container = "紐西蘭", default_placetype = "region", data = export.new_zealand_regions, } export.norwegian_counties = { ["奧斯陸縣"] = {wp = "Oslo"}, ["羅加蘭縣"] = {wp = "Rogaland"}, ["莫雷-羅姆斯達爾縣"] = {wp = "Møre og Romsdal"}, ["諾爾蘭縣"] = {wp = "Nordland"}, ["東福爾縣"] = {wp = "Østfold"}, ["阿克斯胡斯縣"] = {wp = "Akershus"}, ["布斯克呂縣"] = {wp = "Buskerud"}, ["因蘭德縣"] = {wp = "Innlandet"}, ["西福爾縣"] = {wp = "Vestfold"}, ["泰勒馬克縣"] = {wp = "Telemark"}, ["阿格德爾縣"] = {wp = "Agder"}, ["西地縣"] = {wp = "Vestland"}, ["特倫德拉格縣"] = {wp = "Trøndelag"}, ["特羅姆斯縣"] = {wp = "Troms"}, ["芬馬克縣"] = {wp = "Finnmark"}, } export.norway_group = { placename_to_key = false, default_container = "挪威", default_placetype = "county", data = export.norwegian_counties, } export.pakistan_provinces_and_territories = { ["自由克什米爾"] = {wp = "Azad Kashmir", placetype = {"administrative territory", "autonomous territory", "territory"}}, ["俾路支省"] = {wp = "Balochistan, Pakistan"}, ["吉爾吉特-巴爾蒂斯坦"] = {wp = "Gilgit-Baltistan", placetype = {"administrative territory", "territory"}}, ["伊斯蘭馬巴德首都直轄區"] = {wp = "Islamabad Capital Territory", placetype = {"federal territory", "administrative territory", "territory"}}, ["開伯爾-普赫圖赫瓦省"] = {wp = "Khyber Pakhtunkhwa"}, ["旁遮普省(巴基斯坦)"] = {wp = "Punjab, Pakistan"}, ["信德省"] = {wp = "Sindh"}, } export.pakistan_group = { placename_to_key = false, default_container = "巴基斯坦", default_placetype = "province", data = export.pakistan_provinces_and_territories, } export.philippines_provinces = { ["阿布拉省"] = {wp = "Abra (province)"}, ["北阿古桑省"] = {wp = "Agusan del Norte"}, ["南阿古桑省"] = {wp = "Agusan del Sur"}, ["阿克蘭省"] = {wp = "Aklan"}, ["阿爾拜省"] = {wp = "Albay"}, ["安蒂克省"] = {wp = "Antique (province)"}, ["阿帕亞沃省"] = {wp = "Apayao"}, ["奧羅拉省"] = {wp = "Aurora (province)"}, ["巴西蘭省"] = {wp = "Basilan"}, ["巴丹省"] = {wp = "Bataan"}, ["巴達內斯省"] = {wp = "Batanes"}, ["八打雁省"] = {wp = "Batangas"}, ["本格特省"] = {wp = "Benguet"}, ["比利蘭省"] = {wp = "Biliran"}, ["保和省"] = {wp = "Bohol"}, ["布基農省"] = {wp = "Bukidnon"}, ["布拉干省"] = {wp = "Bulacan"}, ["卡加延省"] = {wp = "Cagayan"}, ["北甲馬仁省"] = {wp = "Camarines Norte"}, ["南甲馬仁省"] = {wp = "Camarines Sur"}, ["卡米金省"] = {wp = "Camiguin"}, ["卡皮斯省"] = {wp = "Capiz"}, ["卡坦端內斯省"] = {wp = "Catanduanes"}, ["甲米地省"] = {wp = "Cavite"}, ["宿霧省"] = {wp = "Cebu"}, ["哥打巴托省"] = {wp = "Cotabato"}, ["達沃德奧羅省"] = {wp = "Davao de Oro"}, ["北達沃省"] = {wp = "Davao del Norte"}, ["南達沃省"] = {wp = "Davao del Sur"}, ["西達沃省"] = {wp = "Davao Occidental"}, ["東達沃省"] = {wp = "Davao Oriental"}, ["迪納加特群島省"] = {wp = "Dinagat Islands"}, ["東薩馬省"] = {wp = "Eastern Samar"}, ["吉馬拉斯省"] = {wp = "Guimaras"}, ["伊富高省"] = {wp = "Ifugao"}, ["北伊羅科斯省"] = {wp = "Ilocos Norte"}, ["南伊羅科斯省"] = {wp = "Ilocos Sur"}, ["伊洛伊洛省"] = {wp = "Iloilo"}, ["伊莎貝拉省"] = {wp = "Isabela (province)"}, ["卡林加省"] = {wp = "Kalinga (province)"}, ["拉烏尼翁省"] = {wp = "La Union"}, ["拉古納省"] = {wp = "Laguna (province)"}, ["北拉瑙省"] = {wp = "Lanao del Norte"}, ["南拉瑙省"] = {wp = "Lanao del Sur"}, ["萊特省"] = {wp = "Leyte (province)"}, ["北馬京達瑙省"] = {wp = "Maguindanao del Norte"}, ["南馬京達瑙省"] = {wp = "Maguindanao del Sur"}, ["馬林杜克省"] = {wp = "Marinduque"}, ["馬斯巴特省"] = {wp = "Masbate"}, ["西米薩米斯省"] = {wp = "Misamis Occidental"}, ["東米薩米斯省"] = {wp = "Misamis Oriental"}, ["山岳省"] = {wp = "Mountain Province"}, ["西內格羅斯省"] = {wp = "Negros Occidental"}, ["東內格羅斯省"] = {wp = "Negros Oriental"}, ["北薩馬省"] = {wp = "Northern Samar"}, ["新怡詩夏省"] = {wp = "Nueva Ecija"}, ["新比斯開省"] = {wp = "Nueva Vizcaya"}, ["西民都洛省"] = {wp = "Occidental Mindoro"}, ["東民都洛省"] = {wp = "Oriental Mindoro"}, ["巴拉望省"] = {wp = "Palawan"}, ["邦板牙省"] = {wp = "Pampanga"}, ["邦阿西楠省"] = {wp = "Pangasinan"}, ["奎松省"] = {wp = "Quezon"}, ["基里諾省"] = {wp = "Quirino"}, ["黎剎省"] = {wp = "Rizal (province)"}, ["朗布隆省"] = {wp = "Romblon"}, ["薩馬省"] = {wp = "Samar (province)"}, ["薩蘭加尼省"] = {wp = "Sarangani"}, ["錫基霍爾省"] = {wp = "Siquijor"}, ["索索貢省"] = {wp = "Sorsogon"}, ["南哥打巴托省"] = {wp = "South Cotabato"}, ["南萊特省"] = {wp = "Southern Leyte"}, ["蘇丹庫達拉省"] = {wp = "Sultan Kudarat"}, ["蘇祿省"] = {wp = "Sulu"}, ["北蘇里高省"] = {wp = "Surigao del Norte"}, ["南蘇里高省"] = {wp = "Surigao del Sur"}, ["塔拉克省"] = {wp = "Tarlac"}, ["塔威塔威省"] = {wp = "Tawi-Tawi"}, ["三描禮士省"] = {wp = "Zambales"}, ["北三寶顏省"] = {wp = "Zamboanga del Norte"}, ["南三寶顏省"] = {wp = "Zamboanga del Sur"}, ["三寶顏錫布蓋省"] = {wp = "Zamboanga Sibugay"}, ["馬尼拉都會區"] = {wp = "Metro Manila", placetype = {"region", "province"}}, } export.philippines_group = { placename_to_key = false, default_container = "菲律賓", default_placetype = "province", data = export.philippines_provinces, } export.poland_voivodeships = { ["下西里西亞省"] = {wp = "Lower Silesian Voivodeship"}, ["庫亞維-波美拉尼亞省"] = {wp = "Kuyavian-Pomeranian Voivodeship"}, ["盧布林省"] = {wp = "Lublin Voivodeship"}, ["盧布斯省"] = {wp = "Lubusz Voivodeship"}, ["羅茲省"] = {wp = "Łódź Voivodeship"}, ["小波蘭省"] = {wp = "Lesser Poland Voivodeship"}, ["馬佐夫舍省"] = {wp = "Masovian Voivodeship"}, ["奧波萊省"] = {wp = "Opole Voivodeship"}, ["喀爾巴阡山省"] = {wp = "Subcarpathian Voivodeship"}, ["波德拉謝省"] = {wp = "Podlaskie Voivodeship"}, ["波美拉尼亞省"] = {wp = "Pomeranian Voivodeship"}, ["西里西亞省"] = {wp = "Silesian Voivodeship"}, ["神聖十字省"] = {wp = "Świętokrzyskie Voivodeship"}, ["瓦爾米亞-馬祖里省"] = {wp = "Warmian-Masurian Voivodeship"}, ["大波蘭省"] = {wp = "Greater Poland Voivodeship"}, ["西波美拉尼亞省"] = {wp = "West Pomeranian Voivodeship"}, } export.poland_group = { placename_to_key = false, default_container = "波蘭", default_placetype = "voivodeship", data = export.poland_voivodeships, } export.portugal_districts_and_autonomous_regions = { ["亞速爾群島"] = {wp = "Azores", placetype = {"autonomous region", "region"}}, ["阿維羅區"] = {wp = "Aveiro District"}, ["貝雅區"] = {wp = "Beja District"}, ["布拉加區"] = {wp = "Braga District"}, ["布拉干薩區"] = {wp = "Bragança District"}, ["卡斯特洛布蘭科區"] = {wp = "Castelo Branco District"}, ["科英布拉區"] = {wp = "Coimbra District"}, ["埃武拉區"] = {wp = "Évora District"}, ["法魯區"] = {wp = "Faro District"}, ["瓜達區"] = {wp = "Guarda District"}, ["萊里亞區"] = {wp = "Leiria District"}, ["里斯本區"] = {wp = "Lisbon District"}, ["馬德拉島"] = {wp = "Madeira", placetype = {"autonomous region", "region"}}, ["波塔萊格里區"] = {wp = "Portalegre District"}, ["波爾圖區"] = {wp = "Porto District"}, ["聖塔倫區"] = {wp = "Santarém District"}, ["塞圖巴爾區"] = {wp = "Setúbal District"}, ["維亞納堡區"] = {wp = "Viana do Castelo District"}, ["維拉雷亞爾區"] = {wp = "Vila Real District"}, ["維塞烏區"] = {wp = "Viseu District"}, } export.portugal_group = { placename_to_key = false, default_container = "葡萄牙", default_placetype = "district", data = export.portugal_districts_and_autonomous_regions, } local russia_oblast = {placetype = "oblast"} local russia_krai = {placetype = "krai"} local russia_republic = {placetype = "republic"} local russia_autonomous_okrug = {placetype = {"autonomous okrug", "okrug"}} export.russia_federal_subjects = { -- autonomous oblast ["猶太自治州"] = {placetype = {"autonomous oblast", "oblast"}, wp = "Jewish Autonomous Oblast"}, -- autonomous okrugs ["楚科奇自治區"] = {wp = "Chukotka Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西自治區"] = {wp = "Khanty-Mansi Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西亞"] = {alias_of = "漢特-曼西自治區"}, ["涅涅茨自治區"] = {wp = "Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["亞馬洛-涅涅茨自治區"] = {wp = "Yamalo-Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, -- krais ["阿爾泰邊疆區"] = {wp = "Altai Krai", placetype = "krai"}, ["堪察加邊疆區"] = {wp = "Kamchatka Krai", placetype = "krai"}, ["哈巴羅夫斯克邊疆區"] = {wp = "Khabarovsk Krai", placetype = "krai"}, ["克拉斯諾達爾邊疆區"] = {wp = "Krasnodar Krai", placetype = "krai"}, ["克拉斯諾亞爾斯克邊疆區"] = {wp = "Krasnoyarsk Krai", placetype = "krai"}, ["彼爾姆邊疆區"] = {wp = "Perm Krai", placetype = "krai"}, ["濱海邊疆區"] = {wp = "Primorsky Krai", placetype = "krai"}, ["斯塔夫羅波爾邊疆區"] = {wp = "Stavropol Krai", placetype = "krai"}, ["外貝加爾邊疆區"] = {wp = "Zabaykalsky Krai", placetype = "krai"}, -- oblasts ["阿穆爾州"] = russia_oblast, ["阿爾漢格爾斯克州"] = russia_oblast, ["阿斯特拉罕州"] = russia_oblast, ["別爾哥羅德州"] = russia_oblast, ["布良斯克州"] = russia_oblast, ["車裡雅賓斯克州"] = russia_oblast, ["伊爾庫茨克州"] = russia_oblast, ["伊萬諾沃州"] = russia_oblast, ["加里寧格勒州"] = russia_oblast, ["卡盧加州"] = russia_oblast, ["克麥羅沃州"] = russia_oblast, ["基洛夫州"] = russia_oblast, ["科斯特羅馬州"] = russia_oblast, ["庫爾干州"] = russia_oblast, ["庫爾斯克州"] = russia_oblast, ["列寧格勒州"] = russia_oblast, ["利佩茨克州"] = russia_oblast, ["馬加丹州"] = russia_oblast, ["莫斯科州"] = russia_oblast, ["摩爾曼斯克州"] = russia_oblast, ["下諾夫哥羅德州"] = russia_oblast, ["諾夫哥羅德州"] = russia_oblast, ["新西伯利亞州"] = russia_oblast, ["鄂木斯克州"] = russia_oblast, ["奧倫堡州"] = russia_oblast, ["奧廖爾州"] = russia_oblast, ["奔薩州"] = russia_oblast, ["普斯科夫州"] = russia_oblast, ["羅斯托夫州"] = russia_oblast, ["梁贊州"] = russia_oblast, ["薩哈林州"] = {wp = "Sakhalin Oblast", placetype = "oblast"}, ["薩馬拉州"] = russia_oblast, ["薩拉托夫州"] = russia_oblast, ["斯摩棱斯克州"] = russia_oblast, ["斯維爾德洛夫斯克州"] = russia_oblast, ["坦波夫州"] = russia_oblast, ["托木斯克州"] = russia_oblast, ["圖拉州"] = russia_oblast, ["特維爾州"] = russia_oblast, ["秋明州"] = russia_oblast, ["烏里揚諾夫斯克州"] = russia_oblast, ["弗拉基米爾州"] = russia_oblast, ["伏爾加格勒州"] = russia_oblast, ["沃洛格達州"] = russia_oblast, ["沃羅涅日州"] = russia_oblast, ["雅羅斯拉夫爾州"] = russia_oblast, -- republics ["阿迪格共和國"] = russia_republic, ["巴什科爾托斯坦共和國"] = russia_republic, ["布里亞特共和國"] = russia_republic, ["達吉斯坦共和國"] = russia_republic, ["印古什共和國"] = russia_republic, ["卡爾梅克共和國"] = russia_republic, ["卡累利亞共和國"] = {wp = "Republic of Karelia", placetype = "republic"}, ["哈卡斯共和國"] = russia_republic, ["莫爾多瓦共和國"] = russia_republic, ["北奧塞梯-阿蘭尼亞共和國"] = {wp = "North Ossetia–Alania", placetype = "republic"}, ["北奧塞梯"] = {alias_of = "北奧塞梯-阿蘭尼亞共和國"}, ["韃靼斯坦共和國"] = russia_republic, ["阿爾泰共和國"] = {wp = "Altai Republic", placetype = "republic"}, ["車臣共和國"] = russia_republic, ["楚瓦什共和國"] = russia_republic, ["卡巴爾達-巴爾卡爾共和國"] = russia_republic, ["卡拉恰伊-切爾克斯共和國"] = russia_republic, ["科米共和國"] = {wp = "Komi Republic", placetype = "republic"}, ["馬里埃爾共和國"] = russia_republic, ["薩哈共和國"] = {wp = "Sakha Republic", placetype = "republic"}, ["雅庫特"] = {alias_of = "薩哈共和國"}, ["圖瓦共和國"] = russia_republic, ["烏德穆爾特共和國"] = russia_republic, } export.russia_group = { placename_to_key = false, default_container = "俄羅斯", default_placetype = "oblast", data = export.russia_federal_subjects, } export.saudi_arabia_provinces = { ["利雅得省"] = {wp = "Riyadh Province"}, ["麥加省"] = {wp = "Mecca Province"}, ["東部省(沙特)"] = {wp = "Eastern Province, Saudi Arabia", no_auto_augment_container = true}, ["麥地那省"] = {wp = "Medina Province"}, ["阿西爾省"] = {wp = "Asir"}, ["吉贊省"] = {wp = "Jazan Province"}, ["卡西姆省"] = {wp = "Al-Qassim Province"}, ["塔布克省"] = {wp = "Tabuk Province"}, ["哈伊爾省"] = {wp = "Ha'il Province"}, ["焦夫省"] = {wp = "Al-Jawf Province"}, ["納季蘭省"] = {wp = "Najran Province"}, ["北部邊界省"] = {wp = "Northern Borders Province"}, ["巴哈省"] = {wp = "Al-Bahah Province"}, } export.saudi_arabia_group = { placename_to_key = false, default_container = "沙烏地阿拉伯", default_placetype = "province", data = export.saudi_arabia_provinces, } export.south_africa_provinces = { ["東開普省"] = {wp = "Eastern Cape"}, ["自由邦省"] = {wp = "Free State (South African province)"}, ["豪登省"] = {wp = "Gauteng"}, ["夸祖魯-納塔爾省"] = {wp = "KwaZulu-Natal"}, ["林波波省"] = {wp = "Limpopo"}, ["姆普馬蘭加省"] = {wp = "Mpumalanga"}, ["西北省(南非)"] = {wp = "North West (South African province)"}, ["北開普省"] = {wp = "Northern Cape"}, ["西開普省"] = {wp = "Western Cape"}, } export.south_africa_group = { placename_to_key = false, default_container = "南非", default_placetype = "province", data = export.south_africa_provinces, } export.ukraine_oblasts = { ["切爾卡瑟州"] = {wp = "Cherkasy Oblast"}, ["切爾尼戈夫州"] = {wp = "Chernihiv Oblast"}, ["切爾諾夫策州"] = {wp = "Chernivtsi Oblast"}, ["第聶伯羅彼得羅夫斯克州"] = {wp = "Dnipropetrovsk Oblast"}, ["頓涅茨克州"] = {wp = "Donetsk Oblast"}, ["伊萬諾-弗蘭科夫斯克州"] = {wp = "Ivano-Frankivsk Oblast"}, ["哈爾科夫州"] = {wp = "Kharkiv Oblast"}, ["赫爾松州"] = {wp = "Kherson Oblast"}, ["赫梅利尼茨基州"] = {wp = "Khmelnytskyi Oblast"}, ["基洛夫格勒州"] = {wp = "Kirovohrad Oblast"}, ["基輔州"] = {wp = "Kyiv Oblast"}, ["盧甘斯克州"] = {wp = "Luhansk Oblast"}, ["利沃夫州"] = {wp = "Lviv Oblast"}, ["尼古拉耶夫州"] = {wp = "Mykolaiv Oblast"}, ["敖德薩州"] = {wp = "Odesa Oblast"}, ["波爾塔瓦州"] = {wp = "Poltava Oblast"}, ["羅夫諾州"] = {wp = "Rivne Oblast"}, ["蘇梅州"] = {wp = "Sumy Oblast"}, ["捷爾諾波爾州"] = {wp = "Ternopil Oblast"}, ["文尼察州"] = {wp = "Vinnytsia Oblast"}, ["沃里尼亞州"] = {wp = "Volyn Oblast"}, ["外喀爾巴阡州"] = {wp = "Zakarpattia Oblast"}, ["扎波羅熱州"] = {wp = "Zaporizhzhia Oblast"}, ["日托米爾州"] = {wp = "Zhytomyr Oblast"}, } export.ukraine_group = { placename_to_key = false, default_container = "烏克蘭", default_placetype = "oblast", data = export.ukraine_oblasts, } export.wales_principal_areas = { ["布拉艾諾格溫特"] = {wp = "Blaenau Gwent"}, ["布里真德"] = {wp = "Bridgend County Borough"}, ["卡菲利"] = {wp = "Caerphilly County Borough"}, ["卡馬森郡"] = {wp = "Carmarthenshire", placetype = "county"}, ["克雷地基昂"] = {wp = "Ceredigion", placetype = "county"}, ["科溫"] = {wp = "Conwy County Borough"}, ["登比郡"] = {wp = "Denbighshire", placetype = "county"}, ["弗林特郡"] = {wp = "Flintshire", placetype = "county"}, ["格溫內德"] = {wp = "Gwynedd", placetype = "county"}, ["安格爾西島"] = {wp = "Isle of Anglesey", placetype = "county"}, ["默瑟蒂德菲爾"] = {wp = "Merthyr Tydfil County Borough"}, ["蒙茅斯郡"] = {wp = "Monmouthshire", placetype = "county"}, ["尼斯-波特塔爾博特"] = {wp = "Neath Port Talbot"}, ["彭布羅克郡"] = {wp = "Pembrokeshire", placetype = "county"}, ["波伊斯"] = {wp = "Powys", placetype = "county"}, ["朗達坎農塔夫"] = {wp = "Rhondda Cynon Taf"}, ["托爾范"] = {wp = "Torfaen"}, ["格拉摩根谷"] = {wp = "Vale of Glamorgan"}, ["雷克瑟姆"] = {wp = "Wrexham County Borough"}, } export.wales_group = { placename_to_key = false, default_container = {key = "威爾斯", placetype = "constituent country"}, default_placetype = "county borough", data = export.wales_principal_areas, } ----------------------------------------------------------------------------------- -- City groups -- ----------------------------------------------------------------------------------- export.australia_cities = { ["阿德萊德"] = {container = "南澳大利亞", wp = "Adelaide"}, ["布里斯班"] = {container = "昆士蘭", wp = "Brisbane"}, ["坎培拉"] = {container = "澳大利亞首都領地", wp = "Canberra"}, ["墨爾本"] = {container = "維多利亞州", wp = "Melbourne"}, ["紐卡素"] = {container = "新南威爾斯", wp = "Newcastle, New South Wales"}, ["伯斯"] = {container = "西澳大利亞", wp = "Perth"}, ["悉尼"] = {container = "新南威爾斯", wp = "Sydney"}, } export.australia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "澳大利亞", default_placetype = "city", default_is_city = true, data = export.australia_cities, } export.brazil_cities = { ["聖保羅"] = {container = "聖保羅州", wp = "São Paulo"}, ["里約熱內盧"] = {container = "里約熱內盧州", wp = "Rio de Janeiro"}, ["貝洛奧里藏特"] = {container = "米納斯吉拉斯", wp = "Belo Horizonte"}, ["累西腓"] = {container = "伯南布哥州", wp = "Recife"}, ["阿雷格里港"] = {container = "南里奧格蘭德州", wp = "Porto Alegre"}, ["巴西利亞"] = {container = "巴西聯邦區", wp = "Brasília"}, ["福塔萊薩"] = {container = "塞阿拉州", wp = "Fortaleza"}, ["薩爾瓦多"] = {container = "巴伊亞", wp = "Salvador, Bahia"}, ["庫里蒂巴"] = {container = "巴拉那州", wp = "Curitiba"}, ["坎皮納斯"] = {container = "聖保羅州", wp = "Campinas"}, ["戈亞尼亞"] = {container = "戈亞斯州", wp = "Goiânia"}, ["瑪瑙斯"] = {container = "亞馬遜州", wp = "Manaus"}, ["伯利恆"] = {container = "帕拉州", wp = "Belém, Pará"}, ["維多利亞"] = {container = "聖埃斯皮里圖州", wp = "Vitória, Espírito Santo"}, ["聖路易斯"] = {container = "馬拉尼昂州", wp = "São Luís"}, ["納塔爾"] = {container = "北里奧格蘭德州", wp = "Natal, Rio Grande do Norte"}, ["弗洛里亞諾波利斯"] = {container = "聖卡塔琳娜州", wp = "Florianópolis"}, ["馬塞約"] = {container = "阿拉戈亞斯州", wp = "Maceió"}, ["若昂佩索阿"] = {container = "帕拉伊巴州", wp = "João Pessoa"}, ["特雷齊納"] = {container = "皮奧伊州", wp = "Teresina"}, ["隆德里納"] = {container = "巴拉那州", wp = "Londrina"}, } export.brazil_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "巴西", default_placetype = "city", default_is_city = true, data = export.brazil_cities, } export.canada_cities = { ["多倫多"] = {container = "安大略", wp = "Toronto"}, ["蒙特婁"] = {container = "魁北克", wp = "Montreal"}, ["溫哥華"] = {container = "英屬哥倫比亞", wp = "Vancouver"}, ["卡加里"] = {container = "亞伯達", wp = "Calgary"}, ["愛民頓"] = {container = "亞伯達", wp = "Edmonton"}, ["渥太華"] = {container = "安大略", wp = "Ottawa"}, ["魁北克城"] = {container = "魁北克", wp = "Quebec City"}, ["溫尼伯"] = {container = "馬尼托巴", wp = "Winnipeg"}, ["漢密爾頓"] = {container = "安大略", wp = "Hamilton, Ontario"}, } export.canada_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "加拿大", default_placetype = "city", default_is_city = true, data = export.canada_cities, } export.france_cities = { ["巴黎"] = {container = "法蘭西島大區", wp = "Paris"}, ["里昂"] = {container = "奧弗涅-隆河-阿爾卑斯大區", wp = "Lyon"}, ["馬賽"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Marseille"}, ["里爾"] = {container = "上法蘭西大區", wp = "Lille"}, ["波爾多"] = {container = "新阿基坦大區", wp = "Bordeaux"}, ["圖盧茲"] = {container = "奧克西塔尼大區", wp = "Toulouse"}, ["尼斯"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Nice"}, ["南特"] = {container = "盧瓦爾河地區大區", wp = "Nantes"}, ["史特拉斯堡"] = {container = "大東部大區", wp = "Strasbourg"}, ["雷恩"] = {container = "布列塔尼大區", wp = "Rennes"}, } export.france_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "法國", default_placetype = "city", default_is_city = true, data = export.france_cities, } export.germany_cities = { ["科隆"] = {container = "北萊茵-威斯特法倫", wp = "Cologne"}, ["杜塞爾多夫"] = {container = "北萊茵-威斯特法倫", wp = "Düsseldorf"}, ["多特蒙德"] = {container = "北萊茵-威斯特法倫", wp = "Dortmund"}, ["埃森"] = {container = "北萊茵-威斯特法倫", wp = "Essen"}, ["柏林"] = {wp = "Berlin"}, ["法蘭克福"] = {container = "黑森", wp = "Frankfurt"}, ["漢堡"] = {wp = "Hamburg"}, ["慕尼黑"] = {container = "巴伐利亞", wp = "Munich"}, ["斯圖加特"] = {container = "巴登-符騰堡", wp = "Stuttgart"}, ["曼海姆"] = {container = "巴登-符騰堡", wp = "Mannheim"}, ["紐倫堡"] = {container = "巴伐利亞", wp = "Nuremberg"}, ["漢諾威"] = {container = "下薩克森", wp = "Hanover"}, ["比勒費爾德"] = {container = "北萊茵-威斯特法倫", wp = "Bielefeld"}, ["萊比錫"] = {container = "薩克森", wp = "Leipzig"}, ["亞琛"] = {container = "北萊茵-威斯特法倫", wp = "Aachen"}, ["不來梅"] = {wp = "Bremen"}, } export.germany_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "德國", default_placetype = "city", default_is_city = true, data = export.germany_cities, } export.india_cities = { ["德里"] = {container = {key = "德里", placetype = "union territory"}, wp = "Delhi"}, ["孟買"] = {container = "馬哈拉施特拉邦", wp = "Mumbai"}, ["加爾各答"] = {container = "西孟加拉邦", wp = "Kolkata"}, ["班加羅爾"] = {container = "卡納塔克邦", wp = "Bengaluru"}, ["金奈"] = {container = "泰米爾納德邦", wp = "Chennai"}, ["海德拉巴"] = {container = "特倫甘納邦", wp = "Hyderabad"}, ["艾哈邁達巴德"] = {container = "古吉拉特邦", wp = "Ahmedabad"}, ["浦那"] = {container = "馬哈拉施特拉邦", wp = "Pune"}, ["蘇拉特"] = {container = "古吉拉特邦", wp = "Surat"}, ["勒克瑙"] = {container = "北方邦", wp = "Lucknow"}, ["齋浦爾"] = {container = "拉賈斯坦邦", wp = "Jaipur"}, ["坎普爾"] = {container = "北方邦", wp = "Kanpur"}, ["那格浦爾"] = {container = "馬哈拉施特拉邦", wp = "Nagpur"}, ["巴特那"] = {container = "比哈爾邦", wp = "Patna"}, ["瓦拉納西"] = {container = "北方邦", wp = "Varanasi"}, ["印多爾"] = {container = "中央邦", wp = "Indore"}, ["博帕爾"] = {container = "中央邦", wp = "Bhopal"}, ["阿格拉"] = {container = "北方邦", wp = "Agra"}, ["科欽"] = {container = "喀拉拉邦", wp = "Kochi"}, ["維沙卡帕特南"] = {container = "安得拉邦", wp = "Visakhapatnam"}, ["齋普爾"] = {alias_of = "齋浦爾"}, } export.india_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "印度", default_placetype = "city", default_is_city = true, data = export.india_cities, } export.indonesia_cities = { ["雅加達"] = {container = "雅加達首都特區", wp = "Jakarta"}, ["泗水"] = {container = "東爪哇省", wp = "Surabaya"}, ["勿加泗"] = {container = "西爪哇省", wp = "Bekasi"}, ["萬隆"] = {container = "西爪哇省", wp = "Bandung"}, ["棉蘭"] = {container = "北蘇門答臘省", wp = "Medan"}, ["德波"] = {container = "西爪哇省", wp = "Depok"}, ["萬丹市"] = {container = "萬丹省", wp = "Tangerang"}, ["巨港"] = {container = "南蘇門答臘省", wp = "Palembang"}, ["三寶壟"] = {container = "中爪哇省", wp = "Semarang"}, ["望加錫"] = {container = "南蘇拉威西省", wp = "Makassar"}, ["武端"] = {container = "廖內群島省", wp = "Batam"}, ["茂物"] = {container = "西爪哇省", wp = "Bogor"}, ["北干巴魯"] = {container = "廖內省", wp = "Pekanbaru"}, ["班達爾楠榜"] = {container = "楠榜省", wp = "Bandar Lampung"}, ["巴東"] = {container = "西蘇門答臘省", wp = "Padang"}, ["薩馬林達"] = {container = "東加里曼丹省", wp = "Samarinda"}, ["瑪琅"] = {container = "東爪哇省", wp = "Malang"}, ["日惹"] = {container = "日惹特區", wp = "Yogyakarta"}, ["登巴薩"] = {container = "峇里省", wp = "Denpasar"}, ["哲勒貢"] = {container = "西爪哇省", wp = "Cirebon"}, ["梭羅"] = {container = "中爪哇省", wp = "Surakarta"}, ["馬辰"] = {container = "南加里曼丹省", wp = "Banjarmasin"}, ["打橫"] = {container = "西爪哇省", wp = "Tasikmalaya"}, } export.indonesia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "印度尼西亞", default_placetype = "city", default_is_city = true, data = export.indonesia_cities, } export.italy_cities = { ["米蘭"] = {container = "倫巴第", wp = "Milan"}, ["那不勒斯"] = {container = "坎帕尼亞", wp = "Naples"}, ["羅馬"] = {container = "拉齊奧", wp = "Rome"}, ["都靈"] = {container = "皮埃蒙特", wp = "Turin"}, ["威尼斯"] = {container = "威尼托", wp = "Venice"}, ["佛羅倫斯"] = {container = "托斯卡納", wp = "Florence"}, ["巴里"] = {container = "普利亞", wp = "Bari"}, ["巴勒莫"] = {container = "西西里", wp = "Palermo"}, ["卡塔尼亞"] = {container = "西西里", wp = "Catania"}, ["布雷西亞"] = {container = "倫巴第", wp = "Brescia"}, ["熱那亞"] = {container = "利古里亞", wp = "Genoa"}, } export.italy_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "意大利", default_placetype = "city", default_is_city = true, data = export.italy_cities, } export.japan_cities = { ["東京"] = {keydesc = "[[東京]]都會區,[[日本]]的[[首都]]和[[都]]級行政區", placetype = {"city", "prefecture"}, divs = { {type = "special wards", container_parent_type = false}, {type = "cities", prep = "in"}, }, }, ["橫濱"] = {container = "神奈川縣", wp = "Yokohama"}, ["大阪"] = {container = "大阪府", wp = "Osaka"}, ["名古屋"] = {container = "愛知縣", wp = "Nagoya"}, ["札幌"] = {container = "北海道", wp = "Sapporo"}, ["福岡"] = {container = "福岡縣", wp = "Fukuoka"}, ["神戶"] = {container = "兵庫縣", wp = "Kobe"}, ["京都"] = {container = "京都府", wp = "Kyoto"}, ["川崎"] = {container = "神奈川縣", wp = "Kawasaki, Kanagawa"}, ["廣島"] = {container = "廣島縣", wp = "Hiroshima"}, ["仙台"] = {container = "宮城縣", wp = "Sendai"}, ["北九州"] = {container = "福岡縣", wp = "Kitakyushu"}, ["新潟"] = {container = "新潟縣", wp = "Niigata (city)"}, ["靜岡"] = {container = "靜岡縣", wp = "Shizuoka (city)"}, ["岡山"] = {container = "岡山縣", wp = "Okayama"}, ["熊本"] = {container = "熊本縣", wp = "Kumamoto"}, ["鹿兒島"] = {container = "鹿兒島縣", wp = "Kagoshima"}, } export.japan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "prefecture"), default_container = "日本", default_placetype = "city", default_is_city = true, data = export.japan_cities, } export.mexico_cities = { ["墨西哥城"] = {wp = "墨西哥城"}, ["蒙特雷"] = {container = "新萊昂州", wp = "Monterrey"}, ["瓜達拉哈拉"] = {container = "哈利斯科州", wp = "Guadalajara"}, ["普埃布拉市"] = {container = "普埃布拉州", wp = "Puebla (city)"}, ["托盧卡"] = {container = "墨西哥州", wp = "Toluca"}, ["蒂華納"] = {container = "下加利福尼亞州", wp = "Tijuana"}, ["萊昂"] = {container = "瓜納華托州", wp = "León, Guanajuato"}, ["克雷塔羅市"] = {container = "克雷塔羅州", wp = "Querétaro (city)"}, ["華雷斯城"] = {container = "奇瓦瓦州", wp = "Ciudad Juárez"}, ["托雷翁"] = {container = "科阿韋拉州", wp = "Torreón"}, ["梅里達"] = {container = "尤卡坦州", wp = "Mérida, Yucatán"}, ["聖路易斯波托西市"] = {container = "聖路易斯波托西州", wp = "San Luis Potosí (city)"}, ["阿瓜斯卡連特斯市"] = {container = "阿瓜斯卡連特斯州", wp = "Aguascalientes (city)"}, ["墨西卡利"] = {container = "下加利福尼亞州", wp = "Mexicali"}, } export.mexico_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "墨西哥", default_placetype = "city", default_is_city = true, data = export.mexico_cities, } export.nigeria_cities = { ["拉各斯"] = {container = "拉各斯州", wp = "Lagos"}, ["卡諾市"] = {container = "卡諾州", wp = "Kano (city)"}, ["伊巴丹"] = {container = "奧約州", wp = "Ibadan"}, ["阿布賈"] = {container = {key = "阿布賈聯邦首都轄區", placetype = "federal territory"}, wp = "Abuja"}, ["哈科特港"] = {container = "河流州", wp = "Port Harcourt"}, ["卡杜納市"] = {container = "卡杜納州", wp = "Kaduna (city)"}, ["貝寧城"] = {container = "埃多州", wp = "Benin City"}, ["阿巴"] = {container = "阿比亞州", wp = "Aba, Nigeria"}, ["奧尼查"] = {container = "阿南布拉州", wp = "Onitsha"}, ["邁杜古里"] = {container = "博爾諾州", wp = "Maiduguri"}, ["伊洛林"] = {container = "誇拉州", wp = "Ilorin"}, ["索科托市"] = {container = "索科托州", wp = "Sokoto (city)"}, ["喬斯"] = {container = "高原州", wp = "Jos"}, ["扎里亞"] = {container = "卡杜納州", wp = "Zaria"}, ["埃努古市"] = {container = "埃努古州", wp = "Enugu (city)"}, } export.nigeria_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "奈及利亞", default_placetype = "city", default_is_city = true, data = export.nigeria_cities, } export.pakistan_cities = { ["卡拉奇"] = {container = "信德省", wp = "Karachi"}, ["拉合爾"] = {container = "旁遮普省(巴基斯坦)", wp = "Lahore"}, ["拉瓦爾品第"] = {container = "旁遮普省(巴基斯坦)", wp = "Rawalpindi"}, ["伊斯蘭馬巴德"] = {container = {key = "伊斯蘭馬巴德首都直轄區", placetype = "federal territory"}, wp = "Islamabad"}, ["費薩拉巴德"] = {container = "旁遮普省(巴基斯坦)", wp = "Faisalabad"}, ["古傑蘭瓦拉"] = {container = "旁遮普省(巴基斯坦)", wp = "Gujranwala"}, ["海德拉巴(巴基斯坦)"] = {container = "信德省", wp = "Hyderabad, Pakistan"}, ["木爾坦"] = {container = "旁遮普省(巴基斯坦)", wp = "Multan"}, ["白沙瓦"] = {container = "開伯爾-普赫圖赫瓦省", wp = "Peshawar"}, ["奎達"] = {container = "俾路支省", wp = "Quetta"}, ["薩戈達"] = {container = "旁遮普省(巴基斯坦)", wp = "Sargodha"}, ["錫亞爾科特"] = {container = "旁遮普省(巴基斯坦)", wp = "Sialkot"}, } export.pakistan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "巴基斯坦", default_placetype = "city", default_is_city = true, data = export.pakistan_cities, } export.philippines_cities = { ["奎松市"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Quezon City"}, ["馬尼拉"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Manila"}, ["達沃市"] = {container = "南達沃省", wp = "Davao City"}, ["卡洛坎"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Caloocan"}, ["三寶顏市"] = {container = "南三寶顏省", wp = "Zamboanga City"}, ["宿霧市"] = {container = "宿霧省", wp = "Cebu City"}, ["安蒂波洛"] = {container = "黎剎省", wp = "Antipolo"}, ["卡加延德奧羅"] = {container = "東米薩米斯省", wp = "Cagayan de Oro"}, ["達斯馬里尼亞斯"] = {container = "甲米地省", wp = "Dasmariñas"}, ["棉蘭老將軍城"] = {container = "南哥打巴托省", wp = "General Santos"}, ["聖何塞德爾蒙特"] = {container = "布拉干省", wp = "San Jose del Monte"}, ["巴科洛德"] = {container = "西內格羅斯省", wp = "Bacolod"}, ["卡蘭巴"] = {container = "拉古納省", wp = "Calamba, Laguna"}, ["天使城"] = {container = "邦板牙省", wp = "Angeles City"}, ["伊洛伊洛市"] = {container = "伊洛伊洛省", wp = "Iloilo City"}, } export.philippines_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "菲律賓", default_placetype = "city", default_is_city = true, data = export.philippines_cities, } export.russia_cities = { ["莫斯科"] = {wp = "Moscow"}, ["聖彼得堡"] = {wp = "Saint Petersburg"}, ["新西伯利亞"] = {container = "新西伯利亞州", wp = "Novosibirsk"}, ["葉卡捷琳堡"] = {container = "斯維爾德洛夫斯克州", wp = "Yekaterinburg"}, ["下諾夫哥羅德"] = {container = "下諾夫哥羅德州", wp = "Nizhny Novgorod"}, ["喀山"] = {container = {key = "韃靼斯坦共和國", placetype = "republic"}, wp = "Kazan"}, ["車裡雅賓斯克市"] = {container = "車裡雅賓斯克州", wp = "Chelyabinsk"}, ["頓河畔羅斯托夫"] = {container = "羅斯托夫州", wp = "Rostov-on-Don"}, ["克拉斯諾達爾市"] = {container = {key = "克拉斯諾達爾邊疆區", placetype = "krai"}, wp = "Krasnodar"}, ["薩馬拉市"] = {container = "薩馬拉州", wp = "Samara"}, ["克拉斯諾亞爾斯克市"] = {container = {key = "克拉斯諾亞爾斯克邊疆區", placetype = "krai"}, wp = "Krasnoyarsk"}, ["烏法"] = {container = {key = "巴什科爾托斯坦共和國", placetype = "republic"}, wp = "Ufa"}, ["薩拉托夫市"] = {container = "薩拉托夫州", wp = "Saratov"}, ["鄂木斯克市"] = {container = "鄂木斯克州", wp = "Omsk"}, ["沃羅涅日市"] = {container = "沃羅涅日州", wp = "Voronezh"}, ["伏爾加格勒市"] = {container = "伏爾加格勒州", wp = "Volgograd"}, ["彼爾姆市"] = {container = {key = "彼爾姆邊疆區", placetype = "krai"}, wp = "Perm, Russia"}, } export.russia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "oblast"), default_container = "俄羅斯", default_placetype = "city", default_is_city = true, data = export.russia_cities, } export.saudi_arabia_cities = { ["利雅得"] = {container = "利雅得省", wp = "Riyadh"}, ["吉達"] = {container = "麥加省", wp = "Jeddah"}, ["達曼"] = {container = "東部省(沙特)", wp = "Dammam"}, ["麥加"] = {container = "麥加省", wp = "Mecca"}, ["麥地那"] = {container = "麥地那省", wp = "Medina"}, ["霍夫夫"] = {container = "東部省(沙特)", wp = "Hofuf"}, ["哈米斯穆沙伊特"] = {container = "阿西爾省", wp = "Khamis Mushait"}, } export.saudi_arabia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "沙烏地阿拉伯", default_placetype = "city", default_is_city = true, data = export.saudi_arabia_cities, } export.south_korea_cities = { ["首爾"] = {wp = "Seoul"}, ["釜山"] = {wp = "Busan"}, ["仁川"] = {wp = "Incheon"}, ["大邱"] = {wp = "Daegu"}, ["大田"] = {wp = "Daejeon"}, ["光州"] = {wp = "Gwangju"}, ["蔚山"] = {wp = "Ulsan"}, } export.south_korea_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "南韓", default_placetype = "city", default_is_city = true, data = export.south_korea_cities, } export.spain_cities = { ["馬德里"] = {container = "馬德里自治區", wp = "Madrid"}, ["巴塞羅那"] = {container = "加泰羅尼亞", wp = "Barcelona"}, ["瓦倫西亞"] = {container = "巴倫西亞", wp = "Valencia"}, ["塞維利亞"] = {container = "安達盧西亞", wp = "Seville"}, ["畢爾包"] = {container = "巴斯克", wp = "Bilbao"}, } export.spain_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "autonomous community"), default_container = "西班牙", default_placetype = "city", default_is_city = true, data = export.spain_cities, } export.taiwan_cities = { -- Special municipalities (province-level) ["臺北市"] = {placetype = "special municipality", wp = "臺北市"}, ["新北市"] = {placetype = "special municipality", wp = "新北市"}, ["桃園市"] = {placetype = "special municipality", wp = "桃園市"}, ["臺中市"] = {placetype = "special municipality", wp = "臺中市"}, ["臺南市"] = {placetype = "special municipality", wp = "臺南市"}, ["高雄市"] = {placetype = "special municipality", wp = "高雄市"}, -- these last three are not special municipalities ["嘉義市"] = {placetype = "city", wp = "嘉義市"}, ["新竹市"] = {placetype = "city", wp = "新竹市"}, ["基隆市"] = {placetype = "city", wp = "基隆市"}, } export.taiwan_cities_group = { key_to_placename = make_key_to_placename(nil, "市$"), placename_to_key = make_placename_to_key("市"), default_container = "臺灣", default_placetype = {"special municipality", "city"}, default_is_city = true, data = export.taiwan_cities, } export.united_kingdom_cities = { ["倫敦"] = {container = {key = "大倫敦", placetype = "county"}, wp = "London"}, ["曼徹斯特"] = {container = {key = "大曼徹斯特", placetype = "county"}, wp = "Manchester"}, ["伯明翰"] = {container = {key = "西密德蘭", placetype = "county"}, wp = "Birmingham"}, ["利物浦"] = {container = {key = "默西賽德郡", placetype = "county"}, wp = "Liverpool"}, ["格拉斯哥"] = {container = {key = "Glasgow市", placetype = "council area"}, wp = "Glasgow"}, ["利茲"] = {container = {key = "西約克郡", placetype = "county"}, wp = "Leeds"}, ["布里斯托"] = {container = {key = "英格蘭", placetype = "constituent country"}, wp = "Bristol"}, ["卡地夫"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Cardiff"}, ["愛丁堡"] = {container = {key = "Edinburgh市", placetype = "council area"}, wp = "Edinburgh"}, ["斯旺西"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Swansea"}, ["紐波特"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Newport, Wales"}, } export.united_kingdom_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "county"), default_container = "英國", default_placetype = "city", default_is_city = true, data = export.united_kingdom_cities, } export.united_states_cities = { ["紐約市"] = {container = "紐約", wp = "New York City"}, ["洛杉磯"] = {container = "加利福尼亞", wp = "Los Angeles"}, ["芝加哥"] = {container = "伊利諾伊", wp = "Chicago"}, ["華盛頓特區"] = {wp = "Washington, D.C."}, ["巴爾的摩"] = {container = "馬里蘭", wp = "Baltimore"}, ["聖荷西"] = {container = "加利福尼亞", wp = "San Jose, California"}, ["舊金山"] = {container = "加利福尼亞", wp = "San Francisco"}, ["波士頓"] = {container = "麻薩諸塞", wp = "Boston"}, ["達拉斯"] = {container = "德克薩斯", wp = "Dallas"}, ["費城"] = {container = "賓夕法尼亞", wp = "Philadelphia"}, ["休士頓"] = {container = "德克薩斯", wp = "Houston"}, ["邁阿密"] = {container = "佛羅里達", wp = "Miami"}, ["亞特蘭大"] = {container = "喬治亞", wp = "Atlanta"}, ["底特律"] = {container = "密西根", wp = "Detroit"}, ["鳳凰城"] = {container = "亞利桑那", wp = "Phoenix"}, ["西雅圖"] = {container = "華盛頓州", wp = "Seattle"}, ["明尼阿波利斯"] = {container = "明尼蘇達", wp = "Minneapolis"}, ["克里夫蘭"] = {container = "俄亥俄", wp = "Cleveland"}, ["丹佛"] = {container = "科羅拉多", wp = "Denver"}, ["聖地牙哥(美國)"] = {container = "加利福尼亞", wp = "San Diego"}, ["波特蘭(俄勒岡)"] = {container = "俄勒岡", wp = "Portland"}, ["聖路易斯"] = {container = "密蘇里", wp = "St. Louis"}, ["夏洛特"] = {container = "北卡羅來納", wp = "Charlotte"}, ["薩克拉門托"] = {container = "加利福尼亞", wp = "Sacramento"}, ["匹茲堡"] = {container = "賓夕法尼亞", wp = "Pittsburgh"}, ["鹽湖城"] = {container = "猶他", wp = "Salt Lake City"}, ["聖安東尼奧"] = {container = "德克薩斯", wp = "San Antonio"}, ["哥倫布"] = {container = "俄亥俄", wp = "Columbus"}, ["堪薩斯城"] = {container = "密蘇里", wp = "Kansas City metropolitan area"}, ["印第安納波利斯"] = {container = "印第安納", wp = "Indianapolis"}, ["拉斯維加斯"] = {container = "內華達", wp = "Las Vegas"}, ["辛辛那提"] = {container = "俄亥俄", wp = "Cincinnati"}, ["奧斯汀"] = {container = "德克薩斯", wp = "Austin"}, ["密爾沃基"] = {container = "威斯康辛", wp = "Milwaukee"}, ["羅利"] = {container = "北卡羅來納", wp = "Raleigh"}, ["納什維爾"] = {container = "田納西", wp = "Nashville"}, ["傑克遜維爾"] = {container = "佛羅里達", wp = "Jacksonville"}, ["新奧爾良"] = {container = "路易斯安那", wp = "New Orleans"}, ["路易斯維爾"] = {container = "肯塔基", wp = "Louisville"}, ["奧克拉荷馬城"] = {container = "奧克拉荷馬", wp = "Oklahoma City"}, ["孟菲斯"] = {container = "田納西", wp = "Memphis"}, ["伯明翰(美國)"] = {container = "阿拉巴馬", wp = "Birmingham, Alabama"}, ["弗雷斯諾"] = {container = "加利福尼亞", wp = "Fresno"}, ["里奇蒙"] = {container = "弗吉尼亞", wp = "Richmond"}, ["水牛城"] = {container = "紐約", wp = "Buffalo"}, ["艾爾帕索"] = {container = "德克薩斯", wp = "El Paso"}, ["阿爾伯克基"] = {container = "新墨西哥", wp = "Albuquerque"}, ["塔森"] = {container = "亞利桑那", wp = "Tucson"}, ["科羅拉多斯普林斯"] = {container = "科羅拉多", wp = "Colorado Springs"}, ["奧馬哈"] = {container = "內布拉斯加", wp = "Omaha"}, ["塔爾薩"] = {container = "奧克拉荷馬", wp = "Tulsa"}, } export.united_states_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "美國", default_placetype = "city", default_is_city = true, data = export.united_states_cities, } export.vietnam_cities = { ["胡志明市"] = {wp = "Ho Chi Minh City"}, ["西貢"] = {alias_of = "胡志明市"}, ["河內"] = {wp = "Hanoi"}, ["峴港"] = {wp = "Da Nang"}, ["海防"] = {wp = "Haiphong"}, ["邊和"] = {container = "同奈省", wp = "Biên Hòa", placetype = "city"}, ["芹苴"] = {wp = "Cần Thơ"}, ["順化"] = {wp = "Huế"}, } export.vietnam_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "越南", default_placetype = {"municipality", "city"}, default_is_city = true, data = export.vietnam_cities, } ----------------------------------------------------------------------------------- -- locations list -- ----------------------------------------------------------------------------------- export.locations = { export.continents_group, export.countries_group, export.country_like_entities_group, export.former_countries_group, export.united_states_group, export.united_kingdom_group, export.scotland_group, export.england_group, export.northern_ireland_group, export.ireland_group, export.wales_group, export.china_group, export.china_prefecture_level_cities_group, export.taiwan_group, export.canada_group, export.australia_group, export.india_group, export.japan_group, export.brazil_group, export.france_group, export.france_departments_group, export.germany_group, export.italy_group, export.spain_group, export.austria_group, export.bangladesh_group, export.egypt_group, export.finland_group, export.greece_group, export.indonesia_group, export.lebanon_group, export.malaysia_group, export.malta_group, export.mexico_group, export.moldova_group, export.morocco_group, export.netherlands_group, export.new_zealand_group, export.norway_group, export.pakistan_group, export.philippines_group, export.poland_group, export.portugal_group, export.romania_group, export.bulgaria_group, export.iran_group, export.russia_group, export.saudi_arabia_group, export.south_africa_group, export.laos_group, export.north_korea_group, export.south_korea_group, export.thailand_group, export.turkey_group, export.ukraine_group, export.vietnam_group, export.nigeria_group, export.new_york_boroughs_group, export.australia_cities_group, export.brazil_cities_group, export.canada_cities_group, export.france_cities_group, export.germany_cities_group, export.india_cities_group, export.indonesia_cities_group, export.italy_cities_group, export.japan_cities_group, export.mexico_cities_group, export.nigeria_cities_group, export.pakistan_cities_group, export.philippines_cities_group, export.russia_cities_group, export.saudi_arabia_cities_group, export.south_korea_cities_group, export.spain_cities_group, export.taiwan_cities_group, export.united_kingdom_cities_group, export.united_states_cities_group, export.vietnam_cities_group, export.misc_cities_group, } return export ctrf45rfesdvg06r4q8ogb2r5jfhf49 9759522 9759513 2026-05-14T21:05:26Z TongcyDai 53191 9759522 Scribunto text/plain local export = {} export.force_cat = false local m_table = require("Module:table") local insert = table.insert local concat = table.concat local dump = mw.dumpObject local unpack = unpack or table.unpack --[==[ Chinese Wiktionary localization of [[Module:place/locations]]. All canonical location keys are in Chinese, matching what editors write in holonym parameters (e.g. {{place|zh|城市|s/中央邦|c/印度}}). English Wikipedia article names are stored in the `wp` field for cross-reference. The `the`, `british_spelling` and English-suffix-detection fields from enwikt are omitted as they are not applicable in Chinese. The helper functions (process_error through construct_linked_placename) are kept intact from enwikt's Module:place/locations to maintain API compatibility with Module:place/placetypes. ]==] ----------------------------------------------------------------------------------- -- Helper functions -- ----------------------------------------------------------------------------------- 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 function export.internal_error(fmt, ...) export.process_error("Internal error: " .. fmt, ...) end local internal_error = export.internal_error 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 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 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 == "country" or defcon.placetype == "constituent country") then return placename .. ", " .. defcon.key else return placename end end end 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 = "country"} 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", "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 spec.is_city = value_with_default(spec.is_city, group.default_placetype == "city") spec.initialized = true end 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 local placetype = spec.placetype or resolved_spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s", key) 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 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 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 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 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 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 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 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) -- Chinese has no articles; `the` field is unused but kept for API compatibility. return linked_placename end ----------------------------------------------------------------------------------- -- Local data helper factories -- ----------------------------------------------------------------------------------- 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 _, pat in ipairs(container_patterns) do local nsubs full_placename, nsubs = full_placename:gsub(pat, "") if nsubs > 0 then break end end end local elliptical_placename = full_placename if divtype_patterns then for _, pat in ipairs(divtype_patterns) do local nsubs elliptical_placename, nsubs = elliptical_placename:gsub(pat, "") if nsubs > 0 then break end end end return full_placename, elliptical_placename end end 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 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 -- Canonicalize a continent container key (string) to canonical container form. 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_container`", key) end ----------------------------------------------------------------------------------- -- Top-level tables -- ----------------------------------------------------------------------------------- export.continents = { ["地球"] = {placetype = "planet", addl_parents = {"nature"}, fulldesc = "=the planet [[Earth]] and the features found on it", wp = "地球"}, ["非洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "非洲"}, ["北非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "北非"}, ["中非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "中非"}, ["南非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "南非"}, ["東非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "東非"}, ["西非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "西非"}, ["漠南非洲"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "漠南非洲"}, ["美洲"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "美洲"}, ["北美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "北美洲"}, ["加勒比地區"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "加勒比地區"}, ["中美洲"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "中美洲"}, ["南美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "南美洲"}, ["南極洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, fulldesc = "=the territory of [[Antarctica]]", wp = "南極洲"}, ["歐亞大陸"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "歐亞大陸"}, ["亞洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "亞洲"}, ["中東"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "中東"}, ["東南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "東南亞"}, ["南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "南亞"}, ["東亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "東亞"}, ["中亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "中亞"}, ["北亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "北亞"}, ["東北亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "東北亞"}, ["西亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "西亞"}, ["歐洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "歐洲"}, ["西歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "西歐"}, ["東歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "東歐"}, ["北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "北歐"}, ["南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "南歐"}, ["中歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "中歐"}, ["東南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "東南歐"}, ["東北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "東北歐"}, ["大洋洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "大洋洲"}, ["美拉尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "美拉尼西亞"}, ["密克羅尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "密克羅尼西亞"}, ["玻里尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "玻里尼西亞"}, } export.continents_group = { default_overriding_bare_label_parents = {}, default_divs = {{type = "countries", prep = "in"}}, 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, default_no_check_holonym_mismatch = true, data = export.continents, } export.countries = { -- Africa ["阿爾及利亞"] = {container = "非洲", divs = {"provinces", "communes", "districts"}, wp = "阿爾及利亞"}, ["安哥拉"] = {container = "非洲", divs = {"provinces", "municipalities"}, wp = "安哥拉"}, ["貝寧"] = {container = "非洲", wp = "貝寧"}, ["貝南"] = {alias_of = "貝寧"}, ["博茨瓦納"] = {container = "非洲", wp = "博茨瓦納"}, ["波札那"] = {alias_of = "博茨瓦納"}, ["布基納法索"] = {container = "非洲", wp = "布基納法索"}, ["布吉納法索"] = {alias_of = "布基納法索"}, ["布隆迪"] = {container = "非洲", wp = "布隆迪"}, ["蒲隆地"] = {alias_of = "布隆迪"}, ["佛得角"] = {container = "非洲", wp = "佛得角"}, ["維德角"] = {alias_of = "佛得角"}, ["中非共和國"] = {container = "非洲", wp = "中非共和國"}, ["乍得"] = {container = "非洲", wp = "乍得"}, ["查德"] = {alias_of = "乍得"}, ["科摩羅"] = {container = "非洲", wp = "科摩羅"}, ["葛摩"] = {alias_of = "科摩羅"}, ["剛果共和國"] = {container = "非洲", wp = "剛果共和國"}, ["剛果(布)"] = {alias_of = "剛果共和國"}, ["剛果民主共和國"] = {container = "非洲", divs = {"provinces"}, wp = "剛果民主共和國"}, ["剛果(金)"] = {alias_of = "剛果民主共和國"}, ["吉布提"] = {container = "非洲", wp = "吉布提"}, ["吉布地"] = {alias_of = "吉布提"}, ["埃及"] = {container = "非洲", divs = {"governorates"}, wp = "埃及"}, ["赤道幾內亞"] = {container = "非洲", wp = "赤道幾內亞"}, ["厄立特里亞"] = {container = "非洲", wp = "厄立特里亞"}, ["厄利垂亞"] = {alias_of = "厄立特里亞"}, ["斯威士蘭"] = {container = "非洲", wp = "斯威士蘭"}, ["史瓦帝尼"] = {alias_of = "斯威士蘭"}, ["埃塞俄比亞"] = {container = "非洲", divs = {"regions"}, wp = "埃塞俄比亞"}, ["衣索比亞"] = {alias_of = "埃塞俄比亞"}, ["加蓬"] = {container = "非洲", wp = "加蓬"}, ["加彭"] = {alias_of = "加蓬"}, ["岡比亞"] = {container = "非洲", wp = "岡比亞"}, ["甘比亞"] = {alias_of = "岡比亞"}, ["加納"] = {container = "非洲", wp = "加納"}, ["迦納"] = {alias_of = "加納"}, ["幾內亞"] = {container = "非洲", wp = "幾內亞"}, ["幾內亞比紹"] = {container = "非洲", wp = "幾內亞比紹"}, ["幾內亞比索"] = {alias_of = "幾內亞比紹"}, ["科特迪瓦"] = {container = "非洲", wp = "科特迪瓦"}, ["象牙海岸"] = {alias_of = "科特迪瓦"}, ["肯尼亞"] = {container = "非洲", divs = {"counties"}, wp = "肯尼亞"}, ["肯亞"] = {alias_of = "肯尼亞"}, ["萊索托"] = {container = "非洲", wp = "萊索托"}, ["賴索托"] = {alias_of = "萊索托"}, ["利比里亞"] = {container = "非洲", wp = "利比里亞"}, ["賴比瑞亞"] = {alias_of = "利比里亞"}, ["利比亞"] = {container = "非洲", wp = "利比亞"}, ["馬達加斯加"] = {container = "非洲", wp = "馬達加斯加"}, ["馬拉維"] = {container = "非洲", wp = "馬拉維"}, ["馬拉威"] = {alias_of = "馬拉維"}, ["馬里"] = {container = "非洲", wp = "馬里"}, ["馬利"] = {alias_of = "馬里"}, ["毛里塔尼亞"] = {container = "非洲", wp = "毛里塔尼亞"}, ["茅利塔尼亞"] = {alias_of = "毛里塔尼亞"}, ["毛里求斯"] = {container = "非洲", wp = "毛里求斯"}, ["模里西斯"] = {alias_of = "毛里求斯"}, ["摩洛哥"] = {container = "非洲", wp = "摩洛哥"}, ["莫桑比克"] = {container = "非洲", wp = "莫桑比克"}, ["莫三比克"] = {alias_of = "莫桑比克"}, ["納米比亞"] = {container = "非洲", wp = "納米比亞"}, ["尼日爾"] = {container = "非洲", wp = "尼日爾"}, ["尼日"] = {alias_of = "尼日爾"}, ["尼日利亞"] = {container = "非洲", divs = { {type = "states", cat_as = "states and FCT"}, "local government areas", }, wp = "尼日利亞"}, ["奈及利亞"] = {alias_of = "尼日利亞"}, ["盧旺達"] = {container = "非洲", wp = "盧旺達"}, ["盧安達"] = {alias_of = "盧旺達"}, ["聖多美和普林西比"] = {container = "非洲", wp = "聖多美和普林西比"}, ["塞內加爾"] = {container = "非洲", wp = "塞內加爾"}, ["塞舌爾"] = {container = "非洲", wp = "塞舌爾"}, ["塞席爾"] = {alias_of = "塞舌爾"}, ["塞拉利昂"] = {container = "非洲", wp = "塞拉利昂"}, ["獅子山"] = {alias_of = "塞拉利昂"}, ["索馬里"] = {container = "非洲", wp = "索馬里"}, ["索馬利亞"] = {alias_of = "索馬里"}, ["南非"] = {container = "非洲", divs = {"provinces"}, wp = "南非"}, ["南蘇丹"] = {container = "非洲", wp = "南蘇丹"}, ["蘇丹"] = {container = "非洲", wp = "蘇丹"}, ["坦桑尼亞"] = {container = "非洲", wp = "坦桑尼亞"}, ["坦尚尼亞"] = {alias_of = "坦桑尼亞"}, ["多哥"] = {container = "非洲", wp = "多哥"}, ["突尼斯"] = {container = "非洲", wp = "突尼斯"}, ["突尼西亞"] = {alias_of = "突尼斯"}, ["烏干達"] = {container = "非洲", wp = "烏干達"}, ["贊比亞"] = {container = "非洲", wp = "贊比亞"}, ["尚比亞"] = {alias_of = "贊比亞"}, ["津巴布韋"] = {container = "非洲", wp = "津巴布韋"}, ["辛巴威"] = {alias_of = "津巴布韋"}, -- Asia ["阿富汗"] = {container = "亞洲", wp = "阿富汗"}, ["亞美尼亞"] = {container = {"歐洲", "亞洲"}, wp = "亞美尼亞"}, ["阿塞拜疆"] = {container = {"歐洲", "亞洲"}, wp = "阿塞拜疆"}, ["亞塞拜然"] = {alias_of = "阿塞拜疆"}, ["巴林"] = {container = "亞洲", wp = "巴林"}, ["孟加拉國"] = {container = "亞洲", divs = {"divisions", "districts"}, wp = "孟加拉國"}, ["孟加拉"] = {alias_of = "孟加拉國"}, ["不丹"] = {container = "亞洲", wp = "不丹"}, ["文萊"] = {container = "亞洲", wp = "文萊"}, ["汶萊"] = {alias_of = "文萊"}, ["柬埔寨"] = {container = "亞洲", wp = "柬埔寨"}, ["中國"] = {container = "亞洲", divs = { {type = "provinces", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "autonomous regions", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "direct-administered municipalities", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "special administrative regions", cat_as = "special administrative regions"}, }, wp = "中國"}, ["東帝汶"] = {container = "亞洲", wp = "東帝汶"}, ["帝汶島"] = {alias_of = "東帝汶"}, ["印度"] = {container = "亞洲", divs = { {type = "states", cat_as = "states and union territories"}, {type = "union territories", cat_as = "states and union territories"}, }, wp = "印度"}, ["印度尼西亞"] = {container = "亞洲", divs = {"provinces"}, wp = "印度尼西亞"}, ["印尼"] = {alias_of = "印度尼西亞"}, ["伊朗"] = {container = "亞洲", wp = "伊朗"}, ["伊拉克"] = {container = "亞洲", wp = "伊拉克"}, ["以色列"] = {container = "亞洲", wp = "以色列"}, ["日本"] = {container = "亞洲", divs = {"prefectures"}, wp = "日本"}, ["約旦"] = {container = "亞洲", wp = "約旦"}, ["哈薩克斯坦"] = {container = {"歐洲", "亞洲"}, wp = "哈薩克斯坦"}, ["哈薩克"] = {alias_of = "哈薩克斯坦"}, ["朝鮮"] = {container = "亞洲", wp = "朝鮮民主主義人民共和國"}, ["北韓"] = {alias_of = "朝鮮"}, ["韓國"] = {container = "亞洲", divs = {"provinces", "special cities", "metropolitan cities"}, wp = "韓國"}, ["南韓"] = {alias_of = "韓國"}, ["科威特"] = {container = "亞洲", wp = "科威特"}, ["吉爾吉斯斯坦"] = {container = "亞洲", wp = "吉爾吉斯斯坦"}, ["吉爾吉斯"] = {alias_of = "吉爾吉斯斯坦"}, ["老撾"] = {container = "亞洲", wp = "老撾"}, ["寮國"] = {alias_of = "老撾"}, ["黎巴嫩"] = {container = "亞洲", wp = "黎巴嫩"}, ["馬來西亞"] = {container = "亞洲", divs = {"states"}, wp = "馬來西亞"}, ["馬爾代夫"] = {container = "亞洲", wp = "馬爾代夫"}, ["馬爾地夫"] = {alias_of = "馬爾代夫"}, ["蒙古"] = {container = "亞洲", wp = "蒙古"}, ["緬甸"] = {container = "亞洲", wp = "緬甸"}, ["尼泊爾"] = {container = "亞洲", wp = "尼泊爾"}, ["阿曼"] = {container = "亞洲", wp = "阿曼"}, ["巴基斯坦"] = {container = "亞洲", divs = {"provinces"}, wp = "巴基斯坦"}, ["菲律賓"] = {container = "亞洲", divs = {"regions"}, wp = "菲律賓"}, ["卡塔爾"] = {container = "亞洲", wp = "卡塔爾"}, ["卡達"] = {alias_of = "卡塔爾"}, ["俄羅斯"] = {container = {"歐洲", "亞洲"}, divs = {"federal subjects"}, wp = "俄羅斯"}, ["俄國"] = {alias_of = "俄羅斯"}, ["沙特阿拉伯"] = {container = "亞洲", wp = "沙特阿拉伯"}, ["沙烏地阿拉伯"] = {alias_of = "沙特阿拉伯"}, ["新加坡"] = {container = "亞洲", is_city = true, wp = "新加坡"}, ["斯里蘭卡"] = {container = "亞洲", wp = "斯里蘭卡"}, ["敘利亞"] = {container = "亞洲", wp = "敘利亞"}, ["臺灣"] = {container = "亞洲", divs = { "special municipalities", "counties", }, wp = "臺灣"}, ["台灣"] = {alias_of = "臺灣"}, ["塔吉克斯坦"] = {container = "亞洲", wp = "塔吉克斯坦"}, ["塔吉克"] = {alias_of = "塔吉克斯坦"}, ["泰國"] = {container = "亞洲", divs = {"provinces"}, wp = "泰國"}, ["土耳其"] = {container = {"歐洲", "亞洲"}, wp = "土耳其"}, ["土庫曼斯坦"] = {container = "亞洲", wp = "土庫曼斯坦"}, ["土庫曼"] = {alias_of = "土庫曼斯坦"}, ["阿拉伯聯合酋長國"] = {container = "亞洲", wp = "阿拉伯聯合酋長國"}, ["阿拉伯聯合大公國"] = {alias_of = "阿拉伯聯合酋長國"}, ["阿聯酋"] = {alias_of = "阿拉伯聯合酋長國"}, ["烏茲別克斯坦"] = {container = "亞洲", wp = "烏茲別克斯坦"}, ["烏茲別克"] = {alias_of = "烏茲別克斯坦"}, ["越南"] = {container = "亞洲", divs = {"provinces", "municipalities"}, wp = "越南"}, ["也門"] = {container = "亞洲", wp = "也門"}, ["葉門"] = {alias_of = "也門"}, -- Europe ["阿爾巴尼亞"] = {container = "歐洲", wp = "阿爾巴尼亞"}, ["安道爾"] = {container = "歐洲", wp = "安道爾"}, ["奧地利"] = {container = "歐洲", divs = {"states"}, wp = "奧地利"}, ["白俄羅斯"] = {container = "歐洲", divs = {"regions"}, wp = "白俄羅斯"}, ["比利時"] = {container = "歐洲", divs = {"regions", "provinces"}, wp = "比利時"}, ["波斯尼亞和黑塞哥維那"] = {container = "歐洲", wp = "波斯尼亞和黑塞哥維那"}, ["波士尼亞與赫塞哥維納"] = {alias_of = "波斯尼亞和黑塞哥維那"}, ["保加利亞"] = {container = "歐洲", wp = "保加利亞"}, ["克羅地亞"] = {container = "歐洲", wp = "克羅地亞"}, ["克羅埃西亞"] = {alias_of = "克羅地亞"}, ["塞浦路斯"] = {container = "亞洲", addl_parents = {"歐洲"}, wp = "塞浦路斯"}, ["賽普勒斯"] = {alias_of = "塞浦路斯"}, ["捷克"] = {container = "歐洲", wp = "捷克"}, ["丹麥"] = {container = "歐洲", wp = "丹麥"}, ["愛沙尼亞"] = {container = "歐洲", wp = "愛沙尼亞"}, ["芬蘭"] = {container = "歐洲", divs = {"regions"}, wp = "芬蘭"}, ["法國"] = {container = "歐洲", divs = { {type = "regions", cat_as = "metropolitan regions"}, "departments", "communes", }, wp = "法國"}, ["格魯吉亞"] = {container = {"歐洲", "亞洲"}, wp = "格魯吉亞"}, ["喬治亞"] = {alias_of = "格魯吉亞"}, ["德國"] = {container = "歐洲", divs = {"states"}, wp = "德國"}, ["希臘"] = {container = "歐洲", divs = {"regions"}, wp = "希臘"}, ["匈牙利"] = {container = "歐洲", wp = "匈牙利"}, ["冰島"] = {container = "歐洲", wp = "冰島"}, ["愛爾蘭"] = {container = "歐洲", divs = {"provinces", "counties"}, wp = "愛爾蘭"}, ["意大利"] = {container = "歐洲", divs = {"regions"}, wp = "意大利"}, ["義大利"] = {alias_of = "意大利"}, ["科索沃"] = {container = "歐洲", wp = "科索沃"}, ["拉脫維亞"] = {container = "歐洲", wp = "拉脫維亞"}, ["拉托維亞"] = {alias_of = "拉脫維亞"}, ["列支敦士登"] = {container = "歐洲", wp = "列支敦士登"}, ["列支敦斯登"] = {alias_of = "列支敦士登"}, ["立陶宛"] = {container = "歐洲", wp = "立陶宛"}, ["盧森堡"] = {container = "歐洲", wp = "盧森堡"}, ["北馬其頓"] = {container = "歐洲", wp = "北馬其頓"}, ["馬耳他"] = {container = "歐洲", wp = "馬耳他"}, ["馬爾他"] = {alias_of = "馬耳他"}, ["摩爾多瓦"] = {container = "歐洲", wp = "摩爾多瓦"}, ["摩納哥"] = {container = "歐洲", is_city = true, wp = "摩納哥"}, ["黑山"] = {container = "歐洲", wp = "黑山"}, ["蒙特內哥羅"] = {alias_of = "黑山"}, ["荷蘭"] = {container = "歐洲", divs = {"provinces"}, wp = "荷蘭"}, ["尼德蘭"] = {alias_of = "荷蘭"}, ["挪威"] = {container = "歐洲", wp = "挪威"}, ["波蘭"] = {container = "歐洲", divs = {"voivodeships"}, wp = "波蘭"}, ["葡萄牙"] = {container = "歐洲", divs = {"districts"}, wp = "葡萄牙"}, ["羅馬尼亞"] = {container = "歐洲", wp = "羅馬尼亞"}, ["聖馬力諾"] = {container = "歐洲", wp = "聖馬力諾"}, ["聖馬利諾"] = {alias_of = "聖馬力諾"}, ["塞爾維亞"] = {container = "歐洲", wp = "塞爾維亞"}, ["斯洛伐克"] = {container = "歐洲", wp = "斯洛伐克"}, ["斯洛文尼亞"] = {container = "歐洲", wp = "斯洛文尼亞"}, ["斯洛維尼亞"] = {alias_of = "斯洛文尼亞"}, ["西班牙"] = {container = "歐洲", divs = {"autonomous communities"}, wp = "西班牙"}, ["瑞典"] = {container = "歐洲", wp = "瑞典"}, ["瑞士"] = {container = "歐洲", divs = {"cantons"}, wp = "瑞士"}, ["烏克蘭"] = {container = "歐洲", divs = {"oblasts"}, wp = "烏克蘭"}, ["英國"] = {container = "歐洲", divs = { {type = "constituent countries", cat_as = "constituent countries"}, }, wp = "英國"}, -- North America ["加拿大"] = {container = "北美洲", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, }, wp = "加拿大"}, ["墨西哥"] = {container = "北美洲", divs = {"states"}, wp = "墨西哥"}, ["美國"] = {container = "北美洲", divs = {"states"}, wp = "美國"}, -- Central America ["伯利茲"] = {container = "中美洲", wp = "伯利茲"}, ["貝里斯"] = {alias_of = "伯利茲"}, ["哥斯達黎加"] = {container = "中美洲", wp = "哥斯達黎加"}, ["哥斯大黎加"] = {alias_of = "哥斯達黎加"}, ["薩爾瓦多"] = {container = "中美洲", wp = "薩爾瓦多"}, ["危地馬拉"] = {container = "中美洲", wp = "危地馬拉"}, ["瓜地馬拉"] = {alias_of = "危地馬拉"}, ["洪都拉斯"] = {container = "中美洲", wp = "洪都拉斯"}, ["宏都拉斯"] = {alias_of = "洪都拉斯"}, ["尼加拉瓜"] = {container = "中美洲", wp = "尼加拉瓜"}, ["巴拿馬"] = {container = "中美洲", wp = "巴拿馬"}, -- Caribbean ["安提瓜和巴布達"] = {container = "加勒比地區", wp = "安提瓜和巴布達"}, ["安地卡及巴布達"] = {alias_of = "安提瓜和巴布達"}, ["巴哈馬"] = {container = "加勒比地區", wp = "巴哈馬"}, ["巴巴多斯"] = {container = "加勒比地區", wp = "巴巴多斯"}, ["巴貝多"] = {alias_of = "巴巴多斯"}, ["古巴"] = {container = "加勒比地區", wp = "古巴"}, ["多米尼克"] = {container = "加勒比地區", wp = "多米尼克"}, ["多米尼加共和國"] = {container = "加勒比地區", wp = "多米尼加"}, ["多明尼加共和國"] = {alias_of = "多米尼加共和國"}, ["格林納達"] = {container = "加勒比地區", wp = "格林納達"}, ["格瑞那達"] = {alias_of = "格林納達"}, ["海地"] = {container = "加勒比地區", wp = "海地"}, ["牙買加"] = {container = "加勒比地區", wp = "牙買加"}, ["聖基茨和尼維斯"] = {container = "加勒比地區", wp = "聖基茨和尼維斯"}, ["聖克里斯多福及尼維斯"] = {alias_of = "聖基茨和尼維斯"}, ["聖盧西亞"] = {container = "加勒比地區", wp = "聖盧西亞"}, ["聖露西亞"] = {alias_of = "聖盧西亞"}, ["聖文森特和格林納丁斯"] = {container = "加勒比地區", wp = "聖文森特和格林納丁斯"}, ["聖文森及格瑞那丁"] = {alias_of = "聖文森特和格林納丁斯"}, ["特立尼達和多巴哥"] = {container = "加勒比地區", wp = "特立尼達和多巴哥"}, ["千里達及托巴哥"] = {alias_of = "特立尼達和多巴哥"}, -- South America ["阿根廷"] = {container = "南美洲", divs = {"provinces"}, wp = "阿根廷"}, ["玻利維亞"] = {container = "南美洲", wp = "玻利維亞"}, ["巴西"] = {container = "南美洲", divs = {"states"}, wp = "巴西"}, ["智利"] = {container = "南美洲", wp = "智利"}, ["哥倫比亞"] = {container = "南美洲", wp = "哥倫比亞"}, ["厄瓜多爾"] = {container = "南美洲", wp = "厄瓜多爾"}, ["厄瓜多"] = {alias_of = "厄瓜多爾"}, ["圭亞那"] = {container = "南美洲", wp = "圭亞那"}, ["蓋亞那"] = {alias_of = "圭亞那"}, ["巴拉圭"] = {container = "南美洲", wp = "巴拉圭"}, ["秘魯"] = {container = "南美洲", wp = "秘魯"}, ["蘇里南"] = {container = "南美洲", wp = "蘇里南"}, ["蘇利南"] = {alias_of = "蘇里南"}, ["烏拉圭"] = {container = "南美洲", wp = "烏拉圭"}, ["委內瑞拉"] = {container = "南美洲", wp = "委內瑞拉"}, -- Oceania ["澳大利亞"] = {container = "大洋洲", divs = { {type = "states", cat_as = "states and territories"}, {type = "territories", cat_as = "states and territories"}, }, wp = "澳大利亞"}, ["澳洲"] = {alias_of = "澳大利亞"}, ["斐濟"] = {container = "大洋洲", wp = "斐濟"}, ["基里巴斯"] = {container = "大洋洲", wp = "基里巴斯"}, ["吉里巴斯"] = {alias_of = "基里巴斯"}, ["馬紹爾群島"] = {container = "大洋洲", wp = "馬紹爾群島"}, ["密克羅尼西亞聯邦"] = {container = "大洋洲", wp = "密克羅尼西亞聯邦"}, ["瑙魯"] = {container = "大洋洲", wp = "瑙魯"}, ["諾魯"] = {alias_of = "瑙魯"}, ["新西蘭"] = {container = "大洋洲", wp = "新西蘭"}, ["紐西蘭"] = {alias_of = "新西蘭"}, ["帕勞"] = {container = "大洋洲", wp = "帕勞"}, ["帛琉"] = {alias_of = "帕勞"}, ["巴布亞新幾內亞"] = {container = "大洋洲", wp = "巴布亞新幾內亞"}, ["巴布亞紐幾內亞"] = {alias_of = "巴布亞新幾內亞"}, ["薩摩亞"] = {container = "大洋洲", wp = "薩摩亞"}, ["所羅門群島"] = {container = "大洋洲", wp = "所羅門群島"}, ["湯加"] = {container = "大洋洲", wp = "湯加"}, ["東加"] = {alias_of = "湯加"}, ["圖瓦盧"] = {container = "大洋洲", wp = "圖瓦盧"}, ["吐瓦魯"] = {alias_of = "圖瓦盧"}, ["瓦努阿圖"] = {container = "大洋洲", wp = "瓦努阿圖"}, ["萬那杜"] = {alias_of = "瓦努阿圖"}, } export.countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"+++", "countries"}, default_placetype = "country", default_no_container_cat = true, default_no_container_parent = true, default_no_auto_augment_container = true, placename_to_key = false, data = export.countries, } export.country_like_entities = { -- Special administrative regions of China ["香港"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, divs = {"districts"}, wp = "Hong Kong", }, ["澳門"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, wp = "Macau", }, -- Western Sahara ["西撒哈拉"] = { placetype = {"territory", "country"}, container = "非洲", wp = "Western Sahara", }, -- Kosovo (disputed) ["科索沃(部分承認)"] = {alias_of = "科索沃"}, -- Palestinian territories ["巴勒斯坦"] = { placetype = {"country", "territory"}, container = "亞洲", wp = "State of Palestine", }, -- Key overseas territories ["波多黎各"] = { placetype = {"commonwealth", "territory"}, container = "美國", addl_parents = {"加勒比地區"}, wp = "Puerto Rico", }, ["關島"] = { placetype = {"territory"}, container = "美國", addl_parents = {"密克羅尼西亞"}, wp = "Guam", }, ["新喀里多尼亞"] = { placetype = {"territory"}, container = "法國", addl_parents = {"大洋洲"}, wp = "New Caledonia", }, ["法屬圭亞那"] = { placetype = {"territory"}, container = "法國", addl_parents = {"南美洲"}, wp = "French Guiana", }, ["留尼旺"] = { placetype = {"territory"}, container = "法國", addl_parents = {"非洲"}, wp = "Réunion", }, ["馬丁尼克"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Martinique", }, ["瓜德羅普"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Guadeloupe", }, ["格陵蘭"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"北美洲"}, wp = "Greenland", }, ["法羅群島"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"歐洲"}, wp = "Faroe Islands", }, } export.country_like_entities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "country"), default_placetype = "territory", placename_to_key = false, data = export.country_like_entities, } export.former_countries = { ["蘇聯"] = { placetype = {"country"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Soviet Union", }, ["南斯拉夫"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Yugoslavia", }, ["捷克斯洛伐克"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Czechoslovakia", }, ["東德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "East Germany", }, ["西德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "West Germany", }, ["奧匈帝國"] = { placetype = {"empire"}, container = "歐洲", is_former_place = true, wp = "Austria-Hungary", }, ["鄂圖曼帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Ottoman Empire", }, ["奧斯曼帝國"] = {alias_of = "鄂圖曼帝國"}, ["羅馬帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲", "非洲"}, is_former_place = true, wp = "Roman Empire", }, ["大英帝國"] = { placetype = {"empire"}, is_former_place = true, wp = "British Empire", }, ["普魯士"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Prussia", }, } export.former_countries_group = { canonicalize_key_container = canonicalize_continent_container, default_placetype = "country", default_is_former_place = true, placename_to_key = false, data = export.former_countries, } ----------------------------------------------------------------------------------- -- Subpolity tables -- ----------------------------------------------------------------------------------- export.australia_states_and_territories = { ["新南威爾斯"] = {wp = "New South Wales"}, ["維多利亞州"] = {wp = "Victoria (Australia)"}, ["昆士蘭"] = {wp = "Queensland"}, ["南澳大利亞"] = {wp = "South Australia"}, ["西澳大利亞"] = {wp = "Western Australia"}, ["塔斯馬尼亞"] = {wp = "Tasmania"}, ["澳大利亞首都領地"] = {placetype = "territory", wp = "Australian Capital Territory"}, ["北領地"] = {placetype = "territory", wp = "Northern Territory"}, } -- states and territories of Australia export.australia_group = { placename_to_key = false, default_container = "澳大利亞", default_placetype = "state", data = export.australia_states_and_territories, } export.austria_states = { ["維也納州"] = {wp = "Vienna (state)"}, ["下奧地利州"] = {wp = "Lower Austria"}, ["上奧地利州"] = {wp = "Upper Austria"}, ["施泰爾馬克州"] = {wp = "Styria"}, ["蒂羅爾州"] = {wp = "Tyrol (state)"}, ["克恩頓州"] = {wp = "Carinthia"}, ["薩爾茨堡州"] = {wp = "Salzburg (state)"}, ["福拉爾貝格州"] = {wp = "Vorarlberg"}, ["布根蘭州"] = {wp = "Burgenland"}, } -- states of Austria export.austria_group = { placename_to_key = false, default_container = "奧地利", default_placetype = "state", data = export.austria_states, } export.bangladesh_divisions = { ["巴里薩爾專區"] = {wp = "Barisal Division"}, ["吉大港專區"] = {wp = "Chittagong Division"}, ["達卡專區"] = {wp = "Dhaka Division"}, ["庫爾納專區"] = {wp = "Khulna Division"}, ["邁門辛專區"] = {wp = "Mymensingh Division"}, ["拉吉沙希專區"] = {wp = "Rajshahi Division"}, ["朗普爾專區"] = {wp = "Rangpur Division"}, ["錫爾赫特專區"] = {wp = "Sylhet Division"}, } -- divisions of Bangladesh export.bangladesh_group = { placename_to_key = false, default_container = "孟加拉國", default_placetype = "division", data = export.bangladesh_divisions, } export.brazil_states = { ["里約熱內盧州"] = {wp = "Rio de Janeiro (state)"}, ["里約熱內盧"] = {alias_of = "里約熱內盧州"}, ["聖保羅州"] = {wp = "São Paulo (state)"}, ["米納斯吉拉斯"] = {wp = "Minas Gerais"}, ["巴伊亞"] = {wp = "Bahia"}, ["亞馬遜州"] = {wp = "Amazonas (Brazilian state)"}, ["帕拉州"] = {wp = "Pará"}, ["伯南布哥州"] = {wp = "Pernambuco"}, ["南里奧格蘭德州"] = {wp = "Rio Grande do Sul"}, ["巴西聯邦區"] = {wp = "Federal District (Brazil)"}, ["塞阿拉州"] = {wp = "Ceará"}, ["巴拉那州"] = {wp = "Paraná (state)"}, ["戈亞斯州"] = {wp = "Goiás"}, ["聖埃斯皮里圖州"] = {wp = "Espírito Santo"}, ["馬拉尼昂州"] = {wp = "Maranhão"}, ["北里奧格蘭德州"] = {wp = "Rio Grande do Norte"}, ["聖卡塔琳娜州"] = {wp = "Santa Catarina (state)"}, ["阿拉戈亞斯州"] = {wp = "Alagoas"}, ["帕拉伊巴州"] = {wp = "Paraíba"}, ["皮奧伊州"] = {wp = "Piauí"}, ["阿克里州"] = {wp = "Acre (state)"}, ["阿馬帕州"] = {wp = "Amapá"}, ["馬托格羅索州"] = {wp = "Mato Grosso"}, ["南馬托格羅索州"] = {wp = "Mato Grosso do Sul"}, ["朗多尼亞州"] = {wp = "Rondônia"}, ["羅賴馬州"] = {wp = "Roraima"}, ["塞爾希培州"] = {wp = "Sergipe"}, ["托坎廷斯州"] = {wp = "Tocantins"}, } -- states of Brazil export.brazil_group = { placename_to_key = false, default_container = "巴西", default_placetype = "state", data = export.brazil_states, } -- provinces (a.k.a. oblasts) of Bulgaria export.bulgaria_provinces = { ["布拉戈耶夫格勒省"] = {wp = "Blagoevgrad Province"}, ["布爾加斯省"] = {wp = "Burgas Province"}, ["多布里奇省"] = {wp = "Dobrich Province"}, ["加布羅沃省"] = {wp = "Gabrovo Province"}, ["哈斯科沃省"] = {wp = "Haskovo Province"}, ["卡爾扎利省"] = {wp = "Kardzhali Province"}, ["屈斯滕迪爾省"] = {wp = "Kyustendil Province"}, ["洛維奇省"] = {wp = "Lovech Province"}, ["蒙塔納省"] = {wp = "Montana Province"}, ["帕扎爾吉克省"] = {wp = "Pazardzhik Province"}, ["佩爾尼克省"] = {wp = "Pernik Province"}, ["普萊文省"] = {wp = "Pleven Province"}, ["普羅夫迪夫省"] = {wp = "Plovdiv Province"}, ["拉茲格勒省"] = {wp = "Razgrad Province"}, ["魯塞省"] = {wp = "Ruse Province"}, ["舒門省"] = {wp = "Shumen Province"}, ["錫利斯特拉省"] = {wp = "Silistra Province"}, ["斯利文省"] = {wp = "Sliven Province"}, ["斯莫梁省"] = {wp = "Smolyan Province"}, ["索非亞市省"] = {wp = "Sofia City Province"}, ["索非亞省"] = {wp = "Sofia Province"}, ["斯塔拉扎戈拉省"] = {wp = "Stara Zagora Province"}, ["特爾戈維什泰省"] = {wp = "Targovishte Province"}, ["瓦爾納省"] = {wp = "Varna Province"}, ["大特爾諾沃省"] = {wp = "Veliko Tarnovo Province"}, ["維丁省"] = {wp = "Vidin Province"}, ["弗拉察省"] = {wp = "Vratsa Province"}, ["揚博爾省"] = {wp = "Yambol Province"}, } export.bulgaria_group = { placename_to_key = false, default_container = "保加利亞", divs = {"regions", "planning regions", "provinces", "municipalities", "settlements"}, default_placetype = "province", data = export.bulgaria_provinces, } export.canada_provinces_and_territories = { ["亞伯達"] = {wp = "Alberta"}, ["艾伯塔"] = {alias_of = "亞伯達"}, ["英屬哥倫比亞"] = {wp = "British Columbia"}, ["卑詩省"] = {alias_of = "英屬哥倫比亞"}, ["馬尼托巴"] = {wp = "Manitoba"}, ["新不倫瑞克"] = {wp = "New Brunswick"}, ["紐芬蘭與拉布拉多"] = {wp = "Newfoundland and Labrador"}, ["西北地區"] = {placetype = "territory", wp = "Northwest Territories"}, ["新斯科舍"] = {wp = "Nova Scotia"}, ["努納武特"] = {placetype = "territory", wp = "Nunavut"}, ["安大略"] = {divs = {"counties", "regional municipalities"}, wp = "Ontario"}, ["愛德華王子島"] = {wp = "Prince Edward Island"}, ["魁北克"] = {wp = "Quebec"}, ["薩斯喀徹溫"] = {wp = "Saskatchewan"}, ["育空"] = {placetype = "territory", wp = "Yukon"}, } export.canada_group = { placename_to_key = false, default_container = "加拿大", default_placetype = "province", data = export.canada_provinces_and_territories, } export.china_provinces_and_autonomous_regions = { -- Provinces ["安徽"] = {wp = "安徽省"}, ["福建"] = {wp = "福建省"}, ["甘肅"] = {wp = "甘肅省"}, ["廣東"] = {wp = "廣東省"}, ["貴州"] = {wp = "貴州省"}, ["海南"] = {wp = "海南省"}, ["河北"] = {wp = "河北省"}, ["黑龍江"] = {wp = "黑龍江省"}, ["河南"] = {wp = "河南省"}, ["湖北"] = {wp = "湖北省"}, ["湖南"] = {wp = "湖南省"}, ["江蘇"] = {wp = "江蘇省"}, ["江西"] = {wp = "江西省"}, ["吉林"] = {wp = "吉林省"}, ["遼寧"] = {wp = "遼寧省"}, ["青海"] = {wp = "青海省"}, ["陝西"] = {wp = "陝西省"}, ["山東"] = {wp = "山東省"}, ["山西"] = {wp = "山西省"}, ["四川"] = {wp = "四川省"}, ["雲南"] = {wp = "雲南省"}, ["浙江"] = {wp = "浙江省"}, -- Autonomous regions ["廣西"] = {placetype = "autonomous region", wp = "廣西壯族自治區"}, ["廣西壯族自治區"] = {alias_of = "廣西"}, ["內蒙古"] = {placetype = "autonomous region", wp = "內蒙古自治區"}, ["內蒙古自治區"] = {alias_of = "內蒙"}, ["寧夏"] = {placetype = "autonomous region", wp = "寧夏回族自治區"}, ["寧夏回族自治區"] = {alias_of = "寧夏"}, ["西藏"] = {placetype = "autonomous region", wp = "西藏自治區"}, ["西藏自治區"] = {alias_of = "西藏"}, ["新疆"] = {placetype = "autonomous region", wp = "新疆維吾爾自治區"}, ["新疆維吾爾自治區"] = {alias_of = "新疆"}, -- Direct-administered municipalities (treated as province-level for holonym purposes) ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "北京市"}, ["北京市"] = {alias_of = "北京"}, ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "上海市"}, ["上海市"] = {alias_of = "上海"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "天津市"}, ["天津市"] = {alias_of = "天津"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "重慶市"}, ["重慶市"] = {alias_of = "重慶"}, } export.china_group = { placename_to_key = false, default_container = "中國", default_placetype = "province", default_divs = { "prefecture-level cities", "districts", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_provinces_and_autonomous_regions, } export.china_prefecture_level_cities = { -- Guangdong ["廣州"] = {container = "廣東", wp = "Guangzhou"}, ["東莞"] = {container = "廣東", wp = "Dongguan"}, ["佛山"] = {container = "廣東", wp = "Foshan"}, ["惠州"] = {container = "廣東", wp = "Huizhou"}, ["江門"] = {container = "廣東", wp = "Jiangmen"}, ["深圳"] = {container = "廣東", wp = "Shenzhen"}, ["中山"] = {container = "廣東", wp = "Zhongshan"}, ["汕頭"] = {container = "廣東", wp = "Shantou"}, ["潮州"] = {container = "廣東", wp = "Chaozhou"}, ["揭陽"] = {container = "廣東", wp = "Jieyang"}, ["珠海"] = {container = "廣東", wp = "Zhuhai"}, ["湛江"] = {container = "廣東", wp = "Zhanjiang"}, ["茂名"] = {container = "廣東", wp = "Maoming"}, ["清遠"] = {container = "廣東", wp = "Qingyuan"}, ["肇慶"] = {container = "廣東", wp = "Zhaoqing"}, -- Direct-administered municipalities (also in china_provinces; duplicated here for division categorisation) ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Shanghai"}, ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Beijing"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Chongqing"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Tianjin"}, -- Jiangsu ["常熟"] = {container = "江蘇", wp = "Changshu"}, ["常州"] = {container = "江蘇", wp = "Changzhou"}, ["蘇州"] = {container = "江蘇", wp = "Suzhou"}, ["無錫"] = {container = "江蘇", wp = "Wuxi"}, ["南京"] = {container = "江蘇", wp = "Nanjing"}, ["南通"] = {container = "江蘇", wp = "Nantong"}, ["江陰"] = {container = "江蘇", wp = "Jiangyin"}, ["張家港"] = {container = "江蘇", wp = "Zhangjiagang"}, ["徐州"] = {container = "江蘇", wp = "Xuzhou"}, ["揚州"] = {container = "江蘇", wp = "Yangzhou"}, ["鹽城"] = {container = "江蘇", wp = "Yancheng"}, ["淮安"] = {container = "江蘇", wp = "Huai'an"}, ["連雲港"] = {container = "江蘇", wp = "Lianyungang"}, ["宿遷"] = {container = "江蘇", wp = "Suqian"}, ["鎮江"] = {container = "江蘇", wp = "Zhenjiang"}, ["崑山"] = {container = "江蘇", wp = "Kunshan"}, ["泰州"] = {container = "江蘇", wp = "Taizhou, Jiangsu"}, -- distinct from 台州 (Zhejiang) -- Zhejiang ["杭州"] = {container = "浙江", wp = "Hangzhou"}, ["紹興"] = {container = "浙江", wp = "Shaoxing"}, ["寧波"] = {container = "浙江", wp = "Ningbo"}, ["慈溪"] = {container = "浙江", wp = "Cixi"}, ["余姚"] = {container = "浙江", wp = "Yuyao"}, ["溫州"] = {container = "浙江", wp = "Wenzhou"}, ["瑞安"] = {placetype = "county-level city", container = {key = "溫州", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Rui'an"}, ["台州"] = {container = "浙江", wp = "Taizhou, Zhejiang"}, ["義烏"] = {container = "浙江", wp = "Yiwu"}, ["嘉興"] = {container = "浙江", wp = "Jiaxing"}, ["金華"] = {container = "浙江", wp = "Jinhua"}, ["湖州"] = {container = "浙江", wp = "Huzhou"}, ["永康"] = {placetype = "county-level city", container = {key = "金華", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Yongkang, Zhejiang"}, -- Fujian ["廈門"] = {container = "福建", wp = "Xiamen"}, ["晉江"] = {container = "福建", wp = "Jinjiang"}, ["泉州"] = {container = "福建", wp = "Quanzhou"}, ["莆田"] = {container = "福建", wp = "Putian"}, ["福州"] = {container = "福建", wp = "Fuzhou"}, -- Shandong ["青島"] = {container = "山東", wp = "Qingdao"}, ["臨沂"] = {container = "山東", wp = "Linyi"}, ["淄博"] = {container = "山東", wp = "Zibo"}, ["濟南"] = {container = "山東", wp = "Jinan"}, ["濰坊"] = {container = "山東", wp = "Weifang"}, ["煙台"] = {container = "山東", wp = "Yantai"}, ["濟寧"] = {container = "山東", wp = "Jining"}, ["泰安"] = {container = "山東", wp = "Tai'an"}, ["威海"] = {container = "山東", wp = "Weihai"}, ["菏澤"] = {container = "山東", wp = "Heze"}, ["德州"] = {container = "山東", wp = "Dezhou"}, ["日照"] = {container = "山東", wp = "Rizhao"}, ["聊城"] = {container = "山東", wp = "Liaocheng"}, ["棗莊"] = {container = "山東", wp = "Zaozhuang"}, ["滕州"] = {placetype = "county-level city", container = {key = "棗莊", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Tengzhou"}, ["東營"] = {container = "山東", wp = "Dongying"}, -- Henan ["鄭州"] = {container = "河南", wp = "Zhengzhou"}, ["洛陽"] = {container = "河南", wp = "Luoyang"}, ["新鄉"] = {container = "河南", wp = "Xinxiang"}, ["信陽"] = {container = "河南", wp = "Xinyang"}, ["安陽"] = {container = "河南", wp = "Anyang"}, ["開封"] = {container = "河南", wp = "Kaifeng"}, ["許昌"] = {container = "河南", wp = "Xuchang"}, ["濮陽"] = {container = "河南", wp = "Puyang"}, ["商丘"] = {container = "河南", wp = "Shangqiu"}, ["南陽"] = {container = "河南", wp = "Nanyang, Henan"}, ["焦作"] = {container = "河南", wp = "Jiaozuo"}, ["平頂山"] = {container = "河南", wp = "Pingdingshan"}, ["周口"] = {container = "河南", wp = "Zhoukou"}, ["駐馬店"] = {container = "河南", wp = "Zhumadian"}, -- Hubei ["武漢"] = {container = "湖北", wp = "Wuhan"}, ["襄陽"] = {container = "湖北", wp = "Xiangyang"}, ["宜昌"] = {container = "湖北", wp = "Yichang"}, ["鄂州"] = {container = "湖北", wp = "Ezhou"}, ["十堰"] = {container = "湖北", wp = "Shiyan"}, -- Hunan ["長沙"] = {container = "湖南", wp = "Changsha"}, ["株洲"] = {container = "湖南", wp = "Zhuzhou"}, ["衡陽"] = {container = "湖南", wp = "Hengyang"}, ["邵陽"] = {container = "湖南", wp = "Shaoyang"}, ["岳陽"] = {container = "湖南", wp = "Yueyang"}, ["常德"] = {container = "湖南", wp = "Changde"}, ["瀏陽"] = {placetype = "county-level city", container = {key = "長沙", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Liuyang"}, -- Sichuan ["成都"] = {container = "四川", wp = "Chengdu"}, ["綿陽"] = {container = "四川", wp = "Mianyang"}, ["南充"] = {container = "四川", wp = "Nanchong"}, ["達州"] = {container = "四川", wp = "Dazhou"}, ["瀘州"] = {container = "四川", wp = "Luzhou"}, ["宜賓"] = {container = "四川", wp = "Yibin"}, -- Yunnan ["昆明"] = {container = "雲南", wp = "Kunming"}, ["曲靖"] = {container = "雲南", wp = "Qujing"}, -- Guizhou ["貴陽"] = {container = "貴州", wp = "Guiyang"}, ["遵義"] = {container = "貴州", wp = "Zunyi"}, ["六盤水"] = {container = "貴州", wp = "Liupanshui"}, ["畢節"] = {container = "貴州", wp = "Bijie"}, -- Shaanxi ["西安"] = {container = "陝西", wp = "Xi'an"}, ["咸陽"] = {container = "陝西", wp = "Xianyang"}, ["寶雞"] = {container = "陝西", wp = "Baoji"}, -- Heilongjiang ["哈爾濱"] = {container = "黑龍江", wp = "Harbin"}, ["大慶"] = {container = "黑龍江", wp = "Daqing"}, ["齊齊哈爾"] = {container = "黑龍江", wp = "Qiqihar"}, -- Liaoning ["瀋陽"] = {container = "遼寧", wp = "Shenyang"}, ["撫順"] = {container = "遼寧", wp = "Fushun"}, ["大連"] = {container = "遼寧", wp = "Dalian"}, ["鞍山"] = {container = "遼寧", wp = "Anshan"}, ["錦州"] = {container = "遼寧", wp = "Jinzhou"}, ["葫蘆島"] = {container = "遼寧", wp = "Huludao"}, ["盤錦"] = {container = "遼寧", wp = "Panjin"}, -- Jilin ["長春"] = {container = "吉林", wp = "Changchun"}, ["吉林市"] = {container = "吉林", wp = "Jilin City"}, -- distinct from 吉林 (province) -- Anhui ["合肥"] = {container = "安徽", wp = "Hefei"}, ["蚌埠"] = {container = "安徽", wp = "Bengbu"}, ["淮南"] = {container = "安徽", wp = "Huainan"}, ["蕪湖"] = {container = "安徽", wp = "Wuhu"}, ["淮北"] = {container = "安徽", wp = "Huaibei"}, ["滁州"] = {container = "安徽", wp = "Chuzhou"}, ["六安"] = {container = "安徽", wp = "Lu'an"}, ["阜陽"] = {container = "安徽", wp = "Fuyang, Anhui"}, ["宿州"] = {container = "安徽", wp = "Suzhou, Anhui"}, -- distinct from 蘇州 (Jiangsu) -- Hebei ["石家莊"] = {container = "河北", wp = "Shijiazhuang"}, ["邯鄲"] = {container = "河北", wp = "Handan"}, ["唐山"] = {container = "河北", wp = "Tangshan"}, ["秦皇島"] = {container = "河北", wp = "Qinhuangdao"}, ["邢台"] = {container = "河北", wp = "Xingtai"}, ["保定"] = {container = "河北", wp = "Baoding"}, ["張家口"] = {container = "河北", wp = "Zhangjiakou"}, ["衡水"] = {container = "河北", wp = "Hengshui"}, ["滄州"] = {container = "河北", wp = "Cangzhou"}, -- Shanxi ["太原"] = {container = "山西", wp = "Taiyuan"}, ["大同"] = {container = "山西", wp = "Datong"}, ["長治"] = {container = "山西", wp = "Changzhi"}, ["臨汾"] = {container = "山西", wp = "Linfen"}, -- Jiangxi ["南昌"] = {container = "江西", wp = "Nanchang"}, ["贛州"] = {container = "江西", wp = "Ganzhou"}, ["上饒"] = {container = "江西", wp = "Shangrao"}, ["九江"] = {container = "江西", wp = "Jiujiang"}, -- Guangxi (autonomous region) ["南寧"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Nanning"}, ["柳州"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Liuzhou"}, ["桂林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guilin"}, ["玉林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Yulin, Guangxi"}, ["北海"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Beihai"}, ["貴港"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guigang"}, -- Inner Mongolia (autonomous region) ["呼和浩特"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Hohhot"}, ["包頭"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Baotou"}, ["赤峰"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Chifeng"}, -- Xinjiang (autonomous region) ["烏魯木齊"] = {container = {key = "新疆", placetype = "autonomous region"}, wp = "Ürümqi"}, -- Ningxia (autonomous region) ["銀川"] = {container = {key = "寧夏", placetype = "autonomous region"}, wp = "Yinchuan"}, -- Hainan ["海口"] = {container = "海南", wp = "Haikou"}, -- Qinghai ["西寧"] = {container = "青海", wp = "Xining"}, -- Gansu ["蘭州"] = {container = "甘肅", wp = "Lanzhou"}, -- Chongqing subdivision (district 142 miles from Chongqing proper) ["萬州"] = {placetype = "district", container = {key = "重慶", placetype = "direct-administered municipality"}, divs = {"subdistricts", "townships"}, wp = "Wanzhou"}, -- County within Suqian prefecture-level city ["沭陽"] = {placetype = "county", container = {key = "宿遷", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Shuyang County"}, } export.china_prefecture_level_cities_group = { placename_to_key = false, default_placetype = {"prefecture-level city", "city"}, default_divs = { "districts", "subdistricts", "townships", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_prefecture_level_cities, } export.finland_regions = { ["拉普蘭省"] = {wp = "Lapland (Finland)"}, ["北奧斯特博滕省"] = {wp = "North Ostrobothnia"}, ["卡亞尼省"] = {wp = "Kainuu"}, ["北卡累利亞省"] = {wp = "North Karelia"}, ["北薩沃省"] = {wp = "Northern Savonia"}, ["南薩沃省"] = {wp = "Southern Savonia"}, ["南卡累利亞省"] = {wp = "South Karelia"}, ["中芬蘭省"] = {wp = "Central Finland"}, ["南奧斯特博滕省"] = {wp = "South Ostrobothnia"}, ["奧斯特博滕省"] = {wp = "Ostrobothnia (region)"}, ["中奧斯特博滕省"] = {wp = "Central Ostrobothnia"}, ["皮爾卡馬省"] = {wp = "Pirkanmaa"}, ["薩塔昆塔省"] = {wp = "Satakunta"}, ["派亞特哈米省"] = {wp = "Päijät-Häme"}, ["坎塔哈米省"] = {wp = "Tavastia Proper"}, ["屈米河谷省"] = {wp = "Kymenlaakso"}, ["烏西馬省"] = {wp = "Uusimaa"}, ["西南芬蘭省"] = {wp = "Southwest Finland"}, ["奧蘭群島"] = {wp = "Åland", placetype = {"autonomous region", "region"}}, } export.finland_group = { placename_to_key = false, default_container = "芬蘭", default_placetype = "region", data = export.finland_regions, } export.france_administrative_regions = { ["奧弗涅-隆河-阿爾卑斯大區"] = {wp = "Auvergne-Rhône-Alpes"}, ["勃艮第-弗朗什-孔泰大區"] = {wp = "Bourgogne-Franche-Comté"}, ["布列塔尼大區"] = {wp = "Brittany (administrative region)"}, ["中央-羅亞爾河谷大區"] = {wp = "Centre-Val de Loire"}, ["科西嘉大區"] = {wp = "Corsica"}, ["大東部大區"] = {wp = "Grand Est"}, ["上法蘭西大區"] = {wp = "Hauts-de-France"}, ["法蘭西島大區"] = {wp = "Île-de-France"}, ["諾曼底大區"] = {wp = "Normandy"}, ["新阿基坦大區"] = {wp = "Nouvelle-Aquitaine"}, ["奧克西塔尼大區"] = {wp = "Occitanie"}, ["盧瓦爾河地區大區"] = {wp = "Pays de la Loire"}, ["普羅旺斯-阿爾卑斯-蔚藍海岸大區"] = {wp = "Provence-Alpes-Côte d'Azur"}, -- Old region names (pre-2016) as aliases ["北部-加萊海峽大區"] = {wp = "Nord-Pas-de-Calais"}, ["加來海峽大區"] = {alias_of = "北部-加萊海峽大區"}, } export.france_group = { placename_to_key = false, default_container = "法國", default_placetype = "region", data = export.france_administrative_regions, } -- France departments (abbreviated list) export.france_departments = { ["北部省"] = {wp = "Nord (department)", container = "上法蘭西大區"}, ["加來海峽省"] = {wp = "Pas-de-Calais", container = "上法蘭西大區"}, ["巴黎市"] = {wp = "Paris", container = "法蘭西島大區"}, ["上塞納省"] = {wp = "Hauts-de-Seine", container = "法蘭西島大區"}, } export.france_departments_group = { placename_to_key = false, default_container = "法國", default_placetype = "department", data = export.france_departments, } export.germany_states = { ["巴登-符騰堡"] = {wp = "Baden-Württemberg"}, ["巴伐利亞"] = {wp = "Bavaria"}, ["柏林"] = {wp = "Berlin"}, ["布蘭登堡"] = {wp = "Brandenburg"}, ["不來梅"] = {wp = "Bremen"}, ["漢堡"] = {wp = "Hamburg"}, ["黑森"] = {wp = "Hesse"}, ["梅克倫堡-前波美拉尼亞"] = {wp = "Mecklenburg-Vorpommern"}, ["下薩克森"] = {wp = "Lower Saxony"}, ["北萊茵-威斯特法倫"] = {wp = "North Rhine-Westphalia"}, ["萊茵蘭-普法爾茨"] = {wp = "Rhineland-Palatinate"}, ["薩爾"] = {wp = "Saarland"}, ["薩克森"] = {wp = "Saxony"}, ["薩克森-安哈爾特"] = {wp = "Saxony-Anhalt"}, ["石勒蘇益格-荷爾斯泰因"] = {wp = "Schleswig-Holstein"}, ["圖林根"] = {wp = "Thuringia"}, } export.germany_group = { placename_to_key = false, default_container = "德國", default_placetype = "state", data = export.germany_states, } export.greece_regions = { ["阿提卡大區"] = {wp = "Attica (region)"}, ["中希臘大區"] = {wp = "Central Greece (administrative region)"}, ["中馬其頓大區"] = {wp = "Central Macedonia"}, ["克里特大區"] = {wp = "Crete"}, ["東馬其頓和色雷斯大區"] = {wp = "Eastern Macedonia and Thrace"}, ["伊庇魯斯大區"] = {wp = "Epirus (region)"}, ["愛奧尼亞群島大區"] = {wp = "Ionian Islands (region)"}, ["北愛琴大區"] = {wp = "North Aegean"}, ["伯羅奔尼撒大區"] = {wp = "Peloponnese (region)"}, ["南愛琴大區"] = {wp = "South Aegean"}, ["塞薩利大區"] = {wp = "Thessaly"}, ["西希臘大區"] = {wp = "Western Greece"}, ["西馬其頓大區"] = {wp = "Western Macedonia"}, ["阿托斯山"] = {wp = "Monastic community of Mount Athos", placetype = {"autonomous region", "region"}}, } export.greece_group = { placename_to_key = false, default_container = "希臘", default_placetype = "region", data = export.greece_regions, } export.india_states_and_union_territories = { ["安達曼-尼科巴群島"] = {placetype = "union territory", wp = "Andaman and Nicobar Islands"}, ["安得拉邦"] = {wp = "Andhra Pradesh"}, ["阿魯納恰爾邦"] = {wp = "Arunachal Pradesh"}, ["阿薩姆"] = {wp = "Assam"}, ["比哈爾邦"] = {wp = "Bihar"}, ["昌迪加爾"] = {placetype = "union territory", wp = "Chandigarh"}, ["恰蒂斯加爾邦"] = {wp = "Chhattisgarh"}, ["達德拉-納加爾哈維利和達曼-第烏"] = {placetype = "union territory", wp = "Dadra and Nagar Haveli and Daman and Diu"}, ["德里"] = {placetype = "union territory", wp = "Delhi"}, ["果阿"] = {wp = "Goa"}, ["古吉拉特邦"] = {wp = "Gujarat"}, ["哈里亞納邦"] = {wp = "Haryana"}, ["喜馬偕爾邦"] = {wp = "Himachal Pradesh"}, ["查謨和克什米爾"] = {placetype = "union territory", wp = "Jammu and Kashmir (union territory)"}, ["賈坎德邦"] = {wp = "Jharkhand"}, ["卡納塔克邦"] = {wp = "Karnataka"}, ["喀拉拉邦"] = {wp = "Kerala"}, ["拉達克"] = {placetype = "union territory", wp = "Ladakh"}, ["拉克沙群島"] = {placetype = "union territory", wp = "Lakshadweep"}, ["中央邦"] = {wp = "Madhya Pradesh"}, ["馬哈拉施特拉邦"] = {wp = "Maharashtra"}, ["曼尼普爾邦"] = {wp = "Manipur"}, ["梅加拉亞邦"] = {wp = "Meghalaya"}, ["米佐拉姆邦"] = {wp = "Mizoram"}, ["那加蘭邦"] = {wp = "Nagaland"}, ["奧里薩邦"] = {wp = "Odisha"}, ["本地治里"] = {placetype = "union territory", wp = "Puducherry"}, ["旁遮普邦"] = {wp = "Punjab, India"}, ["拉賈斯坦邦"] = {wp = "Rajasthan"}, ["錫金"] = {wp = "Sikkim"}, ["泰米爾納德邦"] = {wp = "Tamil Nadu"}, ["特倫甘納邦"] = {wp = "Telangana"}, ["特里普拉邦"] = {wp = "Tripura"}, ["北方邦"] = {wp = "Uttar Pradesh"}, ["北阿坎德邦"] = {wp = "Uttarakhand"}, ["西孟加拉邦"] = {wp = "West Bengal"}, } export.india_group = { placename_to_key = false, default_container = "印度", default_placetype = "state", default_divs = {"districts"}, data = export.india_states_and_union_territories, } export.indonesia_provinces = { ["亞齊省"] = {wp = "Aceh"}, ["峇里省"] = {wp = "Bali"}, ["邦加勿里洞省"] = {wp = "Bangka Belitung Islands"}, ["萬丹省"] = {wp = "Banten"}, ["明古魯省"] = {wp = "Bengkulu"}, ["中爪哇省"] = {wp = "Central Java"}, ["中加里曼丹省"] = {wp = "Central Kalimantan"}, ["中巴布亞省"] = {wp = "Central Papua"}, ["中蘇拉威西省"] = {wp = "Central Sulawesi"}, ["東爪哇省"] = {wp = "East Java"}, ["東加里曼丹省"] = {wp = "East Kalimantan"}, ["東努沙登加拉省"] = {wp = "East Nusa Tenggara"}, ["哥倫打洛省"] = {wp = "Gorontalo"}, ["巴布亞高地省"] = {wp = "Highland Papua"}, ["雅加達首都特區"] = {wp = "Jakarta"}, ["占碑省"] = {wp = "Jambi"}, ["楠榜省"] = {wp = "Lampung"}, ["馬魯古省"] = {wp = "Maluku"}, ["北加里曼丹省"] = {wp = "North Kalimantan"}, ["北馬魯古省"] = {wp = "North Maluku"}, ["北蘇拉威西省"] = {wp = "North Sulawesi"}, ["北巴布亞省"] = {wp = "North Papua"}, ["北蘇門答臘省"] = {wp = "North Sumatra"}, ["巴布亞省"] = {wp = "Papua (province)"}, ["廖內省"] = {wp = "Riau"}, ["廖內群島省"] = {wp = "Riau Islands"}, ["東南蘇拉威西省"] = {wp = "Southeast Sulawesi"}, ["南加里曼丹省"] = {wp = "South Kalimantan"}, ["南巴布亞省"] = {wp = "South Papua"}, ["南蘇拉威西省"] = {wp = "South Sulawesi"}, ["南蘇門答臘省"] = {wp = "South Sumatra"}, ["西南巴布亞省"] = {wp = "Southwest Papua"}, ["西爪哇省"] = {wp = "West Java"}, ["西加里曼丹省"] = {wp = "West Kalimantan"}, ["西努沙登加拉省"] = {wp = "West Nusa Tenggara"}, ["西巴布亞省"] = {wp = "West Papua (province)"}, ["西蘇拉威西省"] = {wp = "West Sulawesi"}, ["西蘇門答臘省"] = {wp = "West Sumatra"}, ["日惹特區"] = {wp = "Special Region of Yogyakarta"}, } export.indonesia_group = { placename_to_key = false, default_container = "印度尼西亞", default_placetype = "province", data = export.indonesia_provinces, } export.iran_provinces = { ["阿爾博爾茲省"] = {wp = "Alborz Province"}, ["阿爾達比勒省"] = {wp = "Ardabil Province"}, ["布什爾省"] = {wp = "Bushehr Province"}, ["恰哈爾馬哈勒-巴赫蒂亞里省"] = {wp = "Chaharmahal and Bakhtiari Province"}, ["東阿塞拜疆省"] = {wp = "East Azerbaijan Province"}, ["法爾斯省"] = {wp = "Fars Province"}, ["帕爾斯省"] = {alias_of = "法爾斯省"}, ["吉蘭省"] = {wp = "Gilan Province"}, ["戈勒斯坦省"] = {wp = "Golestan Province"}, ["哈馬丹省"] = {wp = "Hamadan Province"}, ["霍爾木茲甘省"] = {wp = "Hormozgan Province"}, ["伊拉姆省"] = {wp = "Ilam Province"}, ["伊斯法罕省"] = {wp = "Isfahan Province"}, ["克爾曼省"] = {wp = "Kerman Province"}, ["克爾曼沙赫省"] = {wp = "Kermanshah Province"}, ["胡齊斯坦省"] = {wp = "Khuzestan Province"}, ["科吉盧耶-博亞赫邁德省"] = {wp = "Kohgiluyeh and Boyer-Ahmad Province"}, ["庫爾德斯坦省"] = {wp = "Kurdistan Province"}, ["洛雷斯坦省"] = {wp = "Lorestan Province"}, ["馬爾卡齊省"] = {wp = "Markazi Province"}, ["馬贊達蘭省"] = {wp = "Mazandaran Province"}, ["北呼羅珊省"] = {wp = "North Khorasan Province"}, ["加茲溫省"] = {wp = "Qazvin Province"}, ["庫姆省"] = {wp = "Qom Province"}, ["拉扎維呼羅珊省"] = {wp = "Razavi Khorasan Province"}, ["森南省"] = {wp = "Semnan Province"}, ["錫斯坦-俾路支斯坦省"] = {wp = "Sistan and Baluchestan Province"}, ["南呼羅珊省"] = {wp = "South Khorasan Province"}, ["德黑蘭省"] = {wp = "Tehran Province"}, ["西阿塞拜疆省"] = {wp = "West Azerbaijan Province"}, ["亞茲德省"] = {wp = "Yazd Province"}, ["贊詹省"] = {wp = "Zanjan Province"}, } export.iran_group = { placename_to_key = false, default_container = "伊朗", default_placetype = "province", data = export.iran_provinces, } export.ireland_counties = { ["卡洛郡"] = {wp = "County Carlow"}, ["卡文郡"] = {wp = "County Cavan"}, ["克萊爾郡"] = {wp = "County Clare"}, ["科克郡"] = {wp = "County Cork"}, ["多尼戈爾郡"] = {wp = "County Donegal"}, ["都柏林郡"] = {wp = "County Dublin"}, ["戈爾韋郡"] = {wp = "County Galway"}, ["克里郡"] = {wp = "County Kerry"}, ["基爾代爾郡"] = {wp = "County Kildare"}, ["基爾肯尼郡"] = {wp = "County Kilkenny"}, ["萊什郡"] = {wp = "County Laois"}, ["利特里姆郡"] = {wp = "County Leitrim"}, ["利默里克郡"] = {wp = "County Limerick"}, ["朗福德郡"] = {wp = "County Longford"}, ["勞斯郡"] = {wp = "County Louth"}, ["梅奧郡"] = {wp = "County Mayo"}, ["米斯郡"] = {wp = "County Meath"}, ["莫納亨郡"] = {wp = "County Monaghan"}, ["奧法利郡"] = {wp = "County Offaly"}, ["羅斯康芒郡"] = {wp = "County Roscommon"}, ["斯萊戈郡"] = {wp = "County Sligo"}, ["蒂珀雷里郡"] = {wp = "County Tipperary"}, ["沃特福德郡"] = {wp = "County Waterford"}, ["西米斯郡"] = {wp = "County Westmeath"}, ["韋克斯福德郡"] = {wp = "County Wexford"}, ["威克洛郡"] = {wp = "County Wicklow"}, } -- 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 = { placename_to_key = false, default_container = "愛爾蘭", default_placetype = "county", data = export.ireland_counties, } export.italy_administrative_regions = { ["阿布魯佐"] = {wp = "Abruzzo"}, ["巴西利卡塔"] = {wp = "Basilicata"}, ["卡拉布里亞"] = {wp = "Calabria"}, ["坎帕尼亞"] = {wp = "Campania"}, ["艾米利亞-羅馬涅"] = {wp = "Emilia-Romagna"}, ["弗留利-威尼斯朱利亞"] = {wp = "Friuli-Venezia Giulia"}, ["拉齊奧"] = {wp = "Lazio"}, ["利古里亞"] = {wp = "Liguria"}, ["倫巴第"] = {wp = "Lombardy"}, ["倫巴底"] = {alias_of = "倫巴第"}, ["馬爾凱"] = {wp = "Marche"}, ["莫利塞"] = {wp = "Molise"}, ["皮埃蒙特"] = {wp = "Piedmont"}, ["普利亞"] = {wp = "Apulia"}, ["阿普利亞"] = {alias_of = "普利亞"}, ["薩丁尼亞"] = {wp = "Sardinia"}, ["西西里"] = {wp = "Sicily"}, ["托斯卡納"] = {wp = "Tuscany"}, ["特倫蒂諾-上阿迪傑"] = {wp = "Trentino-Alto Adige/Südtirol"}, ["翁布里亞"] = {wp = "Umbria"}, ["奧斯塔谷"] = {wp = "Aosta Valley"}, ["威尼托"] = {wp = "Veneto"}, } export.italy_group = { placename_to_key = false, default_container = "意大利", default_placetype = "region", data = export.italy_administrative_regions, } -- table of Japanese prefectures; interpolated into the main 'places' table, but also needed separately export.japan_prefectures = { ["青森縣"] = {wp = "青森縣"}, ["岩手縣"] = {wp = "岩手縣"}, ["宮城縣"] = {wp = "宮城縣"}, ["秋田縣"] = {wp = "秋田縣"}, ["山形縣"] = {wp = "山形縣"}, ["福島縣"] = {wp = "福島縣"}, ["茨城縣"] = {wp = "茨城縣"}, ["栃木縣"] = {wp = "栃木縣"}, ["群馬縣"] = {wp = "群馬縣"}, ["埼玉縣"] = {wp = "埼玉縣"}, ["千葉縣"] = {wp = "千葉縣"}, ["神奈川縣"] = {wp = "神奈川縣"}, ["新潟縣"] = {wp = "新潟縣"}, ["富山縣"] = {wp = "富山縣"}, ["石川縣"] = {wp = "石川縣"}, ["福井縣"] = {wp = "福井縣"}, ["山梨縣"] = {wp = "山梨縣"}, ["長野縣"] = {wp = "長野縣"}, ["岐阜縣"] = {wp = "岐阜縣"}, ["靜岡縣"] = {wp = "靜岡縣"}, ["愛知縣"] = {wp = "愛知縣"}, ["三重縣"] = {wp = "三重縣"}, ["滋賀縣"] = {wp = "滋賀縣"}, ["兵庫縣"] = {wp = "兵庫縣"}, ["奈良縣"] = {wp = "奈良縣"}, ["和歌山縣"] = {wp = "和歌山縣"}, ["鳥取縣"] = {wp = "鳥取縣"}, ["島根縣"] = {wp = "島根縣"}, ["岡山縣"] = {wp = "岡山縣"}, ["廣島縣"] = {wp = "廣島縣"}, ["山口縣"] = {wp = "山口縣"}, ["德島縣"] = {wp = "德島縣"}, ["香川縣"] = {wp = "香川縣"}, ["愛媛縣"] = {wp = "愛媛縣"}, ["高知縣"] = {wp = "高知縣"}, ["福岡縣"] = {wp = "福岡縣"}, ["佐賀縣"] = {wp = "佐賀縣"}, ["長崎縣"] = {wp = "長崎縣"}, ["熊本縣"] = {wp = "熊本縣"}, ["大分縣"] = {wp = "大分縣"}, ["宮崎縣"] = {wp = "宮崎縣"}, ["鹿兒島縣"] = {wp = "鹿兒島縣"}, ["沖繩縣"] = {wp = "沖繩縣"}, ["北海道"] = {divs = {"subprefectures"}, wp = "北海道"}, ["京都府"] = {wp = "京都府"}, ["大阪府"] = {wp = "大阪府"}, } local function japan_placename_to_key(placename) local japan_placename_to_key_map = { -- ["東京"] = "東京都", ["大阪"] = "大阪府", ["京都"] = "京都府", } if placename:find("[都道府縣]$") then return placename -- 已帶後綴,不轉換 end return japan_placename_to_key_map[placename] or (placename .. "縣") end -- prefectures of Japan export.japan_group = { key_to_placename = make_key_to_placename(nil, "[都道府縣]$"), placename_to_key = japan_placename_to_key, default_container = "日本", default_placetype = "prefecture", default_divs = {"cities", "districts"}, data = export.japan_prefectures, } export.laos_provinces = { ["阿塔坡省"] = {wp = "Attapeu Province"}, ["博膠省"] = {wp = "Bokeo Province"}, ["波里坎賽省"] = {wp = "Bolikhamxai Province"}, ["占巴塞省"] = {wp = "Champasak Province"}, ["華潘省"] = {wp = "Houaphanh Province"}, ["甘蒙省"] = {wp = "Khammouane Province"}, ["南塔省"] = {wp = "Luang Namtha Province"}, ["琅勃拉邦省"] = {wp = "Luang Prabang Province"}, ["烏多姆賽省"] = {wp = "Oudomxay Province"}, ["豐沙里省"] = {wp = "Phongsaly Province"}, ["沙拉灣省"] = {wp = "Salavan Province"}, ["沙灣拿吉省"] = {wp = "Savannakhet Province"}, ["萬象省"] = {wp = "Vientiane Province"}, ["萬象直轄市"] = {placetype = "prefecture", wp = "Vientiane Prefecture"}, ["賽亞武里省"] = {wp = "Sainyabuli Province"}, ["塞公省"] = {wp = "Sekong Province"}, ["賽頌本省"] = {wp = "Xaisomboun Province"}, ["川壙省"] = {wp = "Xiangkhouang Province"}, } export.laos_group = { placename_to_key = false, default_container = "老撾", default_placetype = "province", data = export.laos_provinces, } export.lebanon_governorates = { ["阿卡爾省"] = {wp = "Akkar Governorate"}, ["巴勒貝克-赫爾梅勒省"] = {wp = "Baalbek-Hermel Governorate"}, ["貝魯特省"] = {wp = "Beirut Governorate"}, ["貝卡省"] = {wp = "Beqaa Governorate"}, ["克塞旺-裘拜勒省"] = {wp = "Keserwan-Jbeil Governorate"}, ["黎巴嫩山省"] = {wp = "Mount Lebanon Governorate"}, ["納巴蒂耶省"] = {wp = "Nabatieh Governorate"}, ["北部省(黎巴嫩)"] = {wp = "North Governorate (Lebanon)", no_auto_augment_container = true}, ["南部省(黎巴嫩)"] = {wp = "South Governorate (Lebanon)", no_auto_augment_container = true}, } export.lebanon_group = { placename_to_key = false, default_container = "黎巴嫩", default_placetype = "governorate", data = export.lebanon_governorates, } export.malaysia_states = { ["柔佛州"] = {wp = "Johor"}, ["吉打州"] = {wp = "Kedah"}, ["吉蘭丹州"] = {wp = "Kelantan"}, ["馬六甲州"] = {wp = "Malacca"}, ["森美蘭州"] = {wp = "Negeri Sembilan"}, ["彭亨州"] = {wp = "Pahang"}, ["檳城州"] = {wp = "Penang"}, ["霹靂州"] = {wp = "Perak"}, ["玻璃市州"] = {wp = "Perlis"}, ["沙巴州"] = {wp = "Sabah"}, ["砂拉越州"] = {wp = "Sarawak"}, ["雪蘭莪州"] = {wp = "Selangor"}, ["登嘉樓州"] = {wp = "Terengganu"}, } export.malaysia_group = { placename_to_key = false, default_container = "馬來西亞", default_placetype = "state", data = export.malaysia_states, } export.malta_regions = { ["東部區(馬爾他)"] = {wp = "Eastern Region, Malta", no_auto_augment_container = true}, ["戈佐區"] = {wp = "Gozo Region"}, ["北部區(馬爾他)"] = {wp = "Northern Region, Malta", no_auto_augment_container = true}, ["港口區"] = {wp = "Port Region, Malta"}, ["南部區(馬爾他)"] = {wp = "Southern Region, Malta", no_auto_augment_container = true}, ["西部區(馬爾他)"] = {wp = "Western Region, Malta", no_auto_augment_container = true}, } export.malta_group = { placename_to_key = false, default_container = "馬爾他", default_placetype = "region", data = export.malta_regions, } export.mexico_states = { ["阿瓜斯卡連特斯州"] = {wp = "Aguascalientes"}, ["下加利福尼亞州"] = {wp = "Baja California"}, ["南下加利福尼亞州"] = {wp = "Baja California Sur"}, ["坎佩切州"] = {wp = "Campeche"}, ["恰帕斯州"] = {wp = "Chiapas"}, ["奇瓦瓦州"] = {wp = "Chihuahua (state)"}, ["科阿韋拉州"] = {wp = "Coahuila"}, ["科利馬州"] = {wp = "Colima"}, ["杜蘭戈州"] = {wp = "Durango"}, ["瓜納華托州"] = {wp = "Guanajuato"}, ["格雷羅州"] = {wp = "Guerrero"}, ["伊達爾戈州"] = {wp = "Hidalgo (state)"}, ["哈利斯科州"] = {wp = "Jalisco"}, ["墨西哥州"] = {wp = "State of Mexico"}, ["米卻肯州"] = {wp = "Michoacán"}, ["莫雷洛斯州"] = {wp = "Morelos"}, ["納亞里特州"] = {wp = "Nayarit"}, ["新萊昂州"] = {wp = "Nuevo León"}, ["瓦哈卡州"] = {wp = "Oaxaca"}, ["普埃布拉州"] = {wp = "Puebla"}, ["克雷塔羅州"] = {wp = "Querétaro"}, ["金塔納羅奧州"] = {wp = "Quintana Roo"}, ["聖路易斯波托西州"] = {wp = "San Luis Potosí"}, ["錫那羅亞州"] = {wp = "Sinaloa"}, ["索諾拉州"] = {wp = "Sonora"}, ["塔巴斯科州"] = {wp = "Tabasco (state)"}, ["塔毛利帕斯州"] = {wp = "Tamaulipas"}, ["特拉斯卡拉州"] = {wp = "Tlaxcala"}, ["韋拉克魯斯州"] = {wp = "Veracruz"}, ["尤卡坦州"] = {wp = "Yucatán"}, ["薩卡特卡斯州"] = {wp = "Zacatecas"}, } export.mexico_group = { placename_to_key = false, default_container = "墨西哥", default_placetype = "state", data = export.mexico_states, } export.moldova_districts_and_autonomous_territorial_units = { ["阿內尼諾伊區"] = {wp = "Anenii Noi District"}, ["巴薩拉比亞斯卡區"] = {wp = "Basarabeasca District"}, ["布里切尼區"] = {wp = "Briceni District"}, ["卡胡爾區"] = {wp = "Cahul District"}, ["坎特米爾區"] = {wp = "Cantemir District"}, ["克勒拉希區"] = {wp = "Călărași District"}, ["考沙尼區"] = {wp = "Căușeni District"}, ["奇米什利亞區"] = {wp = "Cimișlia District"}, ["克里烏列尼區"] = {wp = "Criuleni District"}, ["東杜沙尼區"] = {wp = "Dondușeni District"}, ["德羅基亞區"] = {wp = "Drochia District"}, ["杜巴薩里區"] = {wp = "Dubăsari District"}, ["埃迪涅茨區"] = {wp = "Edineț District"}, ["法勒什蒂區"] = {wp = "Fălești District"}, ["弗洛雷什蒂區"] = {wp = "Florești District"}, ["格洛德尼區"] = {wp = "Glodeni District"}, ["欣切什蒂區"] = {wp = "Hîncești District"}, ["亞洛韋尼區"] = {wp = "Ialoveni District"}, ["萊奧瓦區"] = {wp = "Leova District"}, ["尼斯波雷尼區"] = {wp = "Nisporeni District"}, ["奧克尼察區"] = {wp = "Ocnița District"}, ["奧爾海伊區"] = {wp = "Orhei District"}, ["雷齊納區"] = {wp = "Rezina District"}, ["雷什卡尼區"] = {wp = "Rîșcani District"}, ["辛格雷伊區"] = {wp = "Sîngerei District"}, ["索羅卡區"] = {wp = "Soroca District"}, ["斯特拉沙尼區"] = {wp = "Strășeni District"}, ["紹爾達涅什蒂區"] = {wp = "Șoldănești District"}, ["斯蒂凡沃達區"] = {wp = "Ștefan Vodă District"}, ["塔拉克利亞區"] = {wp = "Taraclia District"}, ["泰萊涅什蒂區"] = {wp = "Telenești District"}, ["翁格尼區"] = {wp = "Ungheni District"}, ["基希訥烏市"] = {wp = "Chișinău", placetype = "municipality"}, ["巴爾茨市"] = {wp = "Bălți", placetype = "municipality"}, ["加告茲自治領土"] = {wp = "Gagauzia", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, ["本德爾市"] = {wp = "Bender, Moldova", placetype = "municipality"}, ["德涅斯特河沿岸"] = {wp = "Transnistria", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, } export.moldova_group = { placename_to_key = false, default_container = "摩爾多瓦", default_placetype = {"district", "raion"}, data = export.moldova_districts_and_autonomous_territorial_units, } export.morocco_regions = { ["丹吉爾-得土安-霍賽馬大區"] = {wp = "Tangier-Tetouan-Al Hoceima"}, ["東方大區(摩洛哥)"] = {wp = "Oriental, Morocco"}, ["非斯-梅克內斯大區"] = {wp = "Fez-Meknes"}, ["拉巴特-薩累-肯尼特拉大區"] = {wp = "Rabat-Salé-Kénitra"}, ["貝尼梅拉勒-赫尼夫拉大區"] = {wp = "Béni Mellal-Khénifra"}, ["卡薩布蘭卡-塞塔特大區"] = {wp = "Casablanca-Settat"}, ["馬拉喀什-薩菲大區"] = {wp = "Marrakesh-Safi"}, ["德拉阿-塔菲拉勒特大區"] = {wp = "Drâa-Tafilalet"}, ["蘇斯-馬薩大區"] = {wp = "Souss-Massa"}, ["蓋勒明-烏德農大區"] = {wp = "Guelmim-Oued Noun"}, ["拉阿永-薩基亞-哈姆拉大區"] = {wp = "Laâyoune-Sakia El Hamra"}, ["達赫拉-奧以德達赫卜大區"] = {wp = "Dakhla-Oued Ed-Dahab"}, } export.morocco_group = { placename_to_key = false, default_container = "摩洛哥", default_placetype = "region", data = export.morocco_regions, } export.egypt_governorates = { ["開羅省"] = {wp = "Cairo Governorate"}, ["吉薩省"] = {wp = "Giza Governorate"}, ["夏爾基亞省"] = {wp = "Sharqia Governorate"}, ["達卡利亞省"] = {wp = "Dakahlia Governorate"}, ["貝海拉省"] = {wp = "Beheira Governorate"}, ["明亞省"] = {wp = "Minya Governorate"}, ["蓋柳比亞省"] = {wp = "Qalyubia Governorate"}, ["索哈傑省"] = {wp = "Sohag Governorate"}, ["亞歷山大省"] = {wp = "Alexandria Governorate"}, ["加爾比亞省"] = {wp = "Gharbia Governorate"}, ["艾斯尤特省"] = {wp = "Asyut Governorate"}, ["莫諾菲亞省"] = {wp = "Monufia Governorate"}, ["法尤姆省"] = {wp = "Faiyum Governorate"}, ["卡夫爾謝赫省"] = {wp = "Kafr El Sheikh Governorate"}, ["基納省"] = {wp = "Qena Governorate"}, ["本尼蘇威夫省"] = {wp = "Beni Suef Governorate"}, ["達米埃塔省"] = {wp = "Damietta Governorate"}, ["阿斯旺省"] = {wp = "Aswan Governorate"}, ["伊斯梅利亞省"] = {wp = "Ismailia Governorate"}, ["盧克索省"] = {wp = "Luxor Governorate"}, ["蘇伊士省"] = {wp = "Suez Governorate"}, ["塞德港省"] = {wp = "Port Said Governorate"}, ["馬特魯省"] = {wp = "Matrouh Governorate"}, ["北西奈省"] = {wp = "North Sinai Governorate"}, ["紅海省"] = {wp = "Red Sea Governorate"}, ["新河谷省"] = {wp = "New Valley Governorate"}, ["南西奈省"] = {wp = "South Sinai Governorate"}, } export.egypt_group = { placename_to_key = false, default_container = "埃及", default_placetype = "governorate", data = export.egypt_governorates, } export.spain_autonomous_communities = { ["安達盧西亞"] = {wp = "Andalusia"}, ["安達魯西亞"] = {alias_of = "安達盧西亞"}, ["阿拉貢"] = {wp = "Aragon"}, ["阿斯圖里亞斯"] = {wp = "Asturias"}, ["巴利阿里群島"] = {wp = "Balearic Islands"}, ["巴斯克"] = {wp = "Basque Country (autonomous community)"}, ["加那利群島"] = {wp = "Canary Islands"}, ["坎塔布里亞"] = {wp = "Cantabria"}, ["卡斯蒂利亞-拉曼恰"] = {wp = "Castilla-La Mancha"}, ["卡斯蒂利亞-萊昂"] = {wp = "Castilla y León"}, ["加泰羅尼亞"] = {wp = "Catalonia"}, ["加泰隆尼亞"] = {alias_of = "加泰羅尼亞"}, ["埃斯特雷馬杜拉"] = {wp = "Extremadura"}, ["加利西亞"] = {wp = "Galicia (Spain)"}, ["拉里奧哈"] = {wp = "La Rioja (autonomous community)"}, ["馬德里自治區"] = {wp = "Community of Madrid"}, ["穆爾西亞"] = {wp = "Region of Murcia"}, ["納瓦拉"] = {wp = "Navarre"}, ["巴倫西亞"] = {wp = "Valencian Community"}, ["巴倫西亞自治區"] = {alias_of = "巴倫西亞"}, } export.spain_group = { placename_to_key = false, default_container = "西班牙", default_placetype = "autonomous community", data = export.spain_autonomous_communities, } export.taiwan_counties = { ["彰化縣"] = {wp = "彰化縣"}, ["嘉義縣"] = {wp = "嘉義縣"}, ["新竹縣"] = {wp = "新竹縣"}, ["花蓮縣"] = {wp = "花蓮縣"}, ["金門縣"] = {wp = "金門縣"}, ["連江縣"] = {wp = "連江縣"}, ["苗栗縣"] = {wp = "苗栗縣"}, ["南投縣"] = {wp = "南投縣"}, ["屏東縣"] = {wp = "屏東縣"}, ["澎湖縣"] = {wp = "澎湖縣"}, ["宜蘭縣"] = {wp = "宜蘭縣"}, ["雲林縣"] = {wp = "雲林縣"}, } export.taiwan_group = { key_to_placename = make_key_to_placename(nil, "縣$"), placename_to_key = make_placename_to_key("縣"), default_container = "臺灣", default_placetype = "county", default_divs = {"districts", "townships"}, data = export.taiwan_counties, } export.new_york_boroughs = { ["布朗克斯"] = {the = true, wp = "The Bronx"}, ["布魯克林"] = {wp = "Brooklyn"}, ["曼哈頓"] = {wp = "Manhattan"}, ["皇后區"] = {wp = "Queens"}, ["史泰登島"] = {wp = "Staten Island"}, } export.new_york_boroughs_group = { placename_to_key = false, default_container = {key = "紐約市", placetype = "city"}, default_placetype = "borough", default_is_city = true, data = export.new_york_boroughs, } export.romania_counties = { ["阿爾巴縣"] = {wp = "Alba County"}, ["阿拉德縣"] = {wp = "Arad County"}, ["阿爾傑什縣"] = {wp = "Argeș County"}, ["巴考縣"] = {wp = "Bacău County"}, ["比霍爾縣"] = {wp = "Bihor County"}, ["比斯特里察-訥瑟烏德縣"] = {wp = "Bistrița-Năsăud County"}, ["博托沙尼縣"] = {wp = "Botoșani County"}, ["布拉索夫縣"] = {wp = "Brașov County"}, ["布勒伊拉縣"] = {wp = "Brăila County"}, ["布澤烏縣"] = {wp = "Buzău County"}, ["卡拉什-塞韋林縣"] = {wp = "Caraș-Severin County"}, ["克盧日縣"] = {wp = "Cluj County"}, ["康斯坦察縣"] = {wp = "Constanța County"}, ["科瓦斯納縣"] = {wp = "Covasna County"}, ["克勒拉希縣"] = {wp = "Călărași County"}, ["多爾日縣"] = {wp = "Dolj County"}, ["登博維察縣"] = {wp = "Dâmbovița County"}, ["加拉茨縣"] = {wp = "Galați County"}, ["久爾久縣"] = {wp = "Giurgiu County"}, ["戈爾日縣"] = {wp = "Gorj County"}, ["哈爾吉塔縣"] = {wp = "Harghita County"}, ["胡內多阿拉縣"] = {wp = "Hunedoara County"}, ["雅洛米察縣"] = {wp = "Ialomița County"}, ["雅西縣"] = {wp = "Iași County"}, ["伊爾福夫縣"] = {wp = "Ilfov County"}, ["馬拉穆列什縣"] = {wp = "Maramureș County"}, ["梅赫丁茨縣"] = {wp = "Mehedinți County"}, ["穆列什縣"] = {wp = "Mureș County"}, ["尼亞姆茨縣"] = {wp = "Neamț County"}, ["奧爾特縣"] = {wp = "Olt County"}, ["普拉霍瓦縣"] = {wp = "Prahova County"}, ["薩圖馬雷縣"] = {wp = "Satu Mare County"}, ["錫比烏縣"] = {wp = "Sibiu County"}, ["蘇恰瓦縣"] = {wp = "Suceava County"}, ["瑟拉日縣"] = {wp = "Sălaj County"}, ["特列奧爾曼縣"] = {wp = "Teleorman County"}, ["蒂米什縣"] = {wp = "Timiș County"}, ["圖爾恰縣"] = {wp = "Tulcea County"}, ["瓦斯盧伊縣"] = {wp = "Vaslui County"}, ["弗蘭恰縣"] = {wp = "Vrancea County"}, ["沃爾恰縣"] = {wp = "Vâlcea County"}, } export.romania_group = { placename_to_key = false, default_container = "羅馬尼亞", default_placetype = "county", data = export.romania_counties, } export.north_korea_provinces = { ["慈江道"] = {wp = "慈江道"}, ["咸鏡北道"] = {wp = "咸鏡北道"}, ["咸鏡南道"] = {wp = "咸鏡南道"}, ["黃海北道"] = {wp = "黃海北道"}, ["黃海南道"] = {wp = "黃海南道"}, ["江原道(北韓)"] = {wp = "江原道 (朝鮮民主主義人民共和國)"}, ["平安北道"] = {wp = "平安北道"}, ["平安南道"] = {wp = "平安南道"}, ["兩江道"] = {wp = "兩江道"}, } export.north_korea_group = { placename_to_key = false, default_container = "朝鮮", default_placetype = "province", data = export.north_korea_provinces, } export.south_korea_provinces = { ["忠清北道"] = {wp = "忠清北道"}, ["忠清南道"] = {wp = "忠清南道"}, ["江原道(南韓)"] = {wp = "江原特別自治道"}, ["京畿道"] = {wp = "京畿道"}, ["慶尚北道"] = {wp = "慶尚北道"}, ["慶尚南道"] = {wp = "慶尚南道"}, ["全羅北道"] = {wp = "全羅北道"}, ["全羅南道"] = {wp = "全羅南道"}, ["濟州道"] = {wp = "濟州道"}, } export.south_korea_group = { placename_to_key = false, default_container = "韓國", default_placetype = "province", data = export.south_korea_provinces, } export.thailand_provinces = { ["阿姆納特坤府"] = {wp = "Amnat Charoen Province"}, ["紅統府"] = {wp = "Ang Thong Province"}, ["彭侃府"] = {wp = "Bueng Kan Province"}, ["武里南府"] = {wp = "Buriram Province"}, ["北柳府"] = {wp = "Chachoengsao Province"}, ["猜納府"] = {wp = "Chai Nat Province"}, ["猜耶奔府"] = {wp = "Chaiyaphum Province"}, ["尖竹汶府"] = {wp = "Chanthaburi Province"}, ["清邁府"] = {wp = "Chiang Mai Province"}, ["清萊府"] = {wp = "Chiang Rai Province"}, ["春武里府"] = {wp = "Chonburi Province"}, ["春蓬府"] = {wp = "Chumphon Province"}, ["加拉信府"] = {wp = "Kalasin Province"}, ["甘烹碧府"] = {wp = "Kamphaeng Phet Province"}, ["北碧府"] = {wp = "Kanchanaburi Province"}, ["孔敬府"] = {wp = "Khon Kaen Province"}, ["甲米府"] = {wp = "Krabi Province"}, ["南邦府"] = {wp = "Lampang Province"}, ["南奔府"] = {wp = "Lamphun Province"}, ["黎府"] = {wp = "Loei Province"}, ["華富里府"] = {wp = "Lopburi Province"}, ["夜豐頌府"] = {wp = "Mae Hong Son Province"}, ["瑪哈沙拉堪府"] = {wp = "Maha Sarakham Province"}, ["莫達罕府"] = {wp = "Mukdahan Province"}, ["那空那育府"] = {wp = "Nakhon Nayok Province"}, ["佛統府"] = {wp = "Nakhon Pathom Province"}, ["那空帕農府"] = {wp = "Nakhon Phanom Province"}, ["呵叻府"] = {wp = "Nakhon Ratchasima Province"}, ["那空沙旺府"] = {wp = "Nakhon Sawan Province"}, ["洛坤府"] = {wp = "Nakhon Si Thammarat Province"}, ["難府"] = {wp = "Nan Province"}, ["那拉提瓦府"] = {wp = "Narathiwat Province"}, ["農布瓦蘭普府"] = {wp = "Nong Bua Lamphu Province"}, ["廊開府"] = {wp = "Nong Khai Province"}, ["暖武里府"] = {wp = "Nonthaburi Province"}, ["巴吞他尼府"] = {wp = "Pathum Thani Province"}, ["北大年府"] = {wp = "Pattani Province"}, ["攀牙府"] = {wp = "Phang Nga Province"}, ["博他侖府"] = {wp = "Phatthalung Province"}, ["帕堯府"] = {wp = "Phayao Province"}, ["碧差汶府"] = {wp = "Phetchabun Province"}, ["碧武里府"] = {wp = "Phetchaburi Province"}, ["披集府"] = {wp = "Phichit Province"}, ["彭世洛府"] = {wp = "Phitsanulok Province"}, ["大城府"] = {wp = "Phra Nakhon Si Ayutthaya Province"}, ["帕府"] = {wp = "Phrae Province"}, ["普吉府"] = {wp = "Phuket Province"}, ["巴真府"] = {wp = "Prachinburi Province"}, ["巴蜀府"] = {wp = "Prachuap Khiri Khan Province"}, ["拉廊府"] = {wp = "Ranong Province"}, ["叻丕府"] = {wp = "Ratchaburi Province"}, ["羅勇府"] = {wp = "Rayong Province"}, ["黎逸府"] = {wp = "Roi Et Province"}, ["沙繳府"] = {wp = "Sa Kaeo Province"}, ["色軍府"] = {wp = "Sakon Nakhon Province"}, ["北欖府"] = {wp = "Samut Prakan Province"}, ["沙沒沙空府"] = {wp = "Samut Sakhon Province"}, ["沙沒頌堪府"] = {wp = "Samut Songkhram Province"}, ["沙拉武里府"] = {wp = "Saraburi Province"}, ["沙敦府"] = {wp = "Satun Province"}, ["信武里府"] = {wp = "Sing Buri Province"}, ["四色菊府"] = {wp = "Sisaket Province"}, ["宋卡府"] = {wp = "Songkhla Province"}, ["素可泰府"] = {wp = "Sukhothai Province"}, ["素攀武里府"] = {wp = "Suphan Buri Province"}, ["素叻他尼府"] = {wp = "Surat Thani Province"}, ["素林府"] = {wp = "Surin Province"}, ["達府"] = {wp = "Tak Province"}, ["董里府"] = {wp = "Trang Province"}, ["達叻府"] = {wp = "Trat Province"}, ["烏汶府"] = {wp = "Ubon Ratchathani Province"}, ["烏隆府"] = {wp = "Udon Thani Province"}, ["烏泰他尼府"] = {wp = "Uthai Thani Province"}, ["烏達拉勐府"] = {wp = "Uttaradit Province"}, ["惹拉府"] = {wp = "Yala Province"}, ["耶梭通府"] = {wp = "Yasothon Province"}, } export.thailand_group = { placename_to_key = false, default_container = "泰國", default_placetype = "province", data = export.thailand_provinces, } export.turkey_provinces = { ["阿達納省"] = {wp = "Adana Province"}, ["阿德亞曼省"] = {wp = "Adıyaman Province"}, ["阿菲永卡拉希薩爾省"] = {wp = "Afyonkarahisar Province"}, ["阿里省"] = {wp = "Ağrı Province"}, ["阿馬西亞省"] = {wp = "Amasya Province"}, ["安卡拉省"] = {wp = "Ankara Province"}, ["安塔利亞省"] = {wp = "Antalya Province"}, ["阿爾特溫省"] = {wp = "Artvin Province"}, ["艾登省"] = {wp = "Aydın Province"}, ["巴勒克埃西爾省"] = {wp = "Balıkesir Province"}, ["比萊吉克省"] = {wp = "Bilecik Province"}, ["賓格爾省"] = {wp = "Bingöl Province"}, ["比特利斯省"] = {wp = "Bitlis Province"}, ["博盧省"] = {wp = "Bolu Province"}, ["布爾杜爾省"] = {wp = "Burdur Province"}, ["布爾薩省"] = {wp = "Bursa Province"}, ["恰納卡萊省"] = {wp = "Çanakkale Province"}, ["昌克勒省"] = {wp = "Çankırı Province"}, ["喬魯姆省"] = {wp = "Çorum Province"}, ["代尼茲利省"] = {wp = "Denizli Province"}, ["迪亞巴克爾省"] = {wp = "Diyarbakır Province"}, ["埃迪爾內省"] = {wp = "Edirne Province"}, ["埃拉澤省"] = {wp = "Elazığ Province"}, ["埃爾津詹省"] = {wp = "Erzincan Province"}, ["埃爾祖魯姆省"] = {wp = "Erzurum Province"}, ["埃斯基謝希爾省"] = {wp = "Eskişehir Province"}, ["加濟安泰普省"] = {wp = "Gaziantep Province"}, ["吉雷松省"] = {wp = "Giresun Province"}, ["居米什哈內省"] = {wp = "Gümüşhane Province"}, ["哈卡里省"] = {wp = "Hakkâri Province"}, ["哈塔伊省"] = {wp = "Hatay Province"}, ["伊斯帕爾塔省"] = {wp = "Isparta Province"}, ["梅爾辛省"] = {wp = "Mersin Province"}, ["伊茲密爾省"] = {wp = "İzmir Province"}, ["卡爾斯省"] = {wp = "Kars Province"}, ["卡斯塔莫努省"] = {wp = "Kastamonu Province"}, ["開塞利省"] = {wp = "Kayseri Province"}, ["柯克拉雷利省"] = {wp = "Kırklareli Province"}, ["克爾謝希爾省"] = {wp = "Kırşehir Province"}, ["科賈埃利省"] = {wp = "Kocaeli Province"}, ["科尼亞省"] = {wp = "Konya Province"}, ["屈塔希亞省"] = {wp = "Kütahya Province"}, ["馬拉蒂亞省"] = {wp = "Malatya Province"}, ["馬尼薩省"] = {wp = "Manisa Province"}, ["卡赫拉曼馬拉什省"] = {wp = "Kahramanmaraş Province"}, ["馬爾丁省"] = {wp = "Mardin Province"}, ["穆拉省"] = {wp = "Muğla Province"}, ["穆什省"] = {wp = "Muş Province"}, ["內夫謝希爾省"] = {wp = "Nevşehir Province"}, ["尼代省"] = {wp = "Niğde Province"}, ["奧爾杜省"] = {wp = "Ordu Province"}, ["里澤省"] = {wp = "Rize Province"}, ["薩卡里亞省"] = {wp = "Sakarya Province"}, ["薩姆松省"] = {wp = "Samsun Province"}, ["錫爾特省"] = {wp = "Siirt Province"}, ["錫諾普省"] = {wp = "Sinop Province"}, ["錫瓦斯省"] = {wp = "Sivas Province"}, ["泰基爾達省"] = {wp = "Tekirdağ Province"}, ["托卡特省"] = {wp = "Tokat Province"}, ["特拉布宗省"] = {wp = "Trabzon Province"}, ["通傑利省"] = {wp = "Tunceli Province"}, ["尚勒烏爾法省"] = {wp = "Şanlıurfa Province"}, ["烏沙克省"] = {wp = "Uşak Province"}, ["凡省"] = {wp = "Van Province"}, ["約茲加特省"] = {wp = "Yozgat Province"}, ["宗古爾達克省"] = {wp = "Zonguldak Province"}, ["阿克薩賴省"] = {wp = "Aksaray Province"}, ["拜布爾特省"] = {wp = "Bayburt Province"}, ["卡拉曼省"] = {wp = "Karaman Province"}, ["克勒克卡萊省"] = {wp = "Kırıkkale Province"}, ["巴特曼省"] = {wp = "Batman Province"}, ["蘇爾納克省"] = {wp = "Şırnak Province"}, ["巴爾騰省"] = {wp = "Bartın Province"}, ["阿爾達罕省"] = {wp = "Ardahan Province"}, ["伊迪爾省"] = {wp = "Iğdır Province"}, ["亞洛瓦省"] = {wp = "Yalova Province"}, ["卡拉比克省"] = {wp = "Karabük Province"}, ["基利斯省"] = {wp = "Kilis Province"}, ["奧斯曼尼耶省"] = {wp = "Osmaniye Province"}, ["迪茲傑省"] = {wp = "Düzce Province"}, } export.turkey_group = { placename_to_key = false, default_container = "土耳其", default_placetype = "province", data = export.turkey_provinces, } export.vietnam_provinces = { -- Northeast ["北江省"] = {wp = "Bắc Giang Province"}, ["北件省"] = {wp = "Bắc Kạn Province"}, ["高平省"] = {wp = "Cao Bằng Province"}, ["河江省"] = {wp = "Hà Giang Province"}, ["諒山省"] = {wp = "Lạng Sơn Province"}, ["富壽省"] = {wp = "Phú Thọ Province"}, ["廣寧省"] = {wp = "Quảng Ninh Province"}, ["太原省"] = {wp = "Thái Nguyên Province"}, ["宣光省"] = {wp = "Tuyên Quang Province"}, -- Northwest ["老街省"] = {wp = "Lào Cai Province"}, ["安沛省"] = {wp = "Yên Bái Province"}, ["奠邊省"] = {wp = "Điện Biên Province"}, ["和平省"] = {wp = "Hoà Bình Province"}, ["萊州省"] = {wp = "Lai Châu Province"}, ["山羅省"] = {wp = "Sơn La Province"}, -- Red River Delta ["北寧省"] = {wp = "Bắc Ninh Province"}, ["河南省"] = {wp = "Hà Nam Province"}, ["海陽省"] = {wp = "Hải Dương Province"}, ["興安省"] = {wp = "Hưng Yên Province"}, ["南定省"] = {wp = "Nam Định Province"}, ["寧平省"] = {wp = "Ninh Bình Province"}, ["太平省"] = {wp = "Thái Bình Province"}, ["永福省"] = {wp = "Vĩnh Phúc Province"}, -- North Central Coast ["河靜省"] = {wp = "Hà Tĩnh Province"}, ["乂安省"] = {wp = "Nghệ An Province"}, ["廣平省"] = {wp = "Quảng Bình Province"}, ["廣治省"] = {wp = "Quảng Trị Province"}, ["清化省"] = {wp = "Thanh Hoá Province"}, -- Central Highlands ["得樂省"] = {wp = "Đắk Lắk Province"}, ["得農省"] = {wp = "Đăk Nông Province"}, ["嘉萊省"] = {wp = "Gia Lai Province"}, ["崑嵩省"] = {wp = "Kon Tum Province"}, ["林同省"] = {wp = "Lâm Đồng Province"}, -- South Central Coast ["平定省"] = {wp = "Bình Định Province"}, ["平順省"] = {wp = "Bình Thuận Province"}, ["慶和省"] = {wp = "Khánh Hoà Province"}, ["寧順省"] = {wp = "Ninh Thuận Province"}, ["富安省"] = {wp = "Phú Yên Province"}, ["廣南省"] = {wp = "Quảng Nam Province"}, ["廣義省"] = {wp = "Quảng Ngãi Province"}, -- Southeast ["巴地-頭頓省"] = {wp = "Bà Rịa–Vũng Tàu Province"}, ["平陽省"] = {wp = "Bình Dương Province"}, ["平福省"] = {wp = "Bình Phước Province"}, ["同奈省"] = {wp = "Đồng Nai Province"}, ["西寧省"] = {wp = "Tây Ninh Province"}, -- Mekong Delta ["安江省"] = {wp = "An Giang Province"}, ["薄寮省"] = {wp = "Bạc Liêu Province"}, ["檳椥省"] = {wp = "Bến Tre Province"}, ["金甌省"] = {wp = "Cà Mau Province"}, ["同塔省"] = {wp = "Đồng Tháp Province"}, ["後江省"] = {wp = "Hậu Giang Province"}, ["堅江省"] = {wp = "Kiên Giang Province"}, ["龍安省"] = {wp = "Long An Province"}, ["朔莊省"] = {wp = "Sóc Trăng Province"}, ["前江省"] = {wp = "Tiền Giang Province"}, ["茶榮省"] = {wp = "Trà Vinh Province"}, ["永隆省"] = {wp = "Vĩnh Long Province"}, } export.vietnam_group = { placename_to_key = false, default_container = "越南", default_placetype = "province", data = export.vietnam_provinces, } export.united_states_states = { ["阿拉巴馬"] = {wp = "Alabama"}, ["阿拉斯加"] = {wp = "Alaska"}, ["亞利桑那"] = {wp = "Arizona"}, ["阿肯色"] = {wp = "Arkansas"}, ["加利福尼亞"] = {wp = "California"}, ["加州"] = {alias_of = "加利福尼亞"}, ["科羅拉多"] = {wp = "Colorado"}, ["康乃狄克"] = {wp = "Connecticut"}, ["康涅狄格"] = {alias_of = "康乃狄克"}, ["德拉瓦"] = {wp = "Delaware"}, ["佛羅里達"] = {wp = "Florida"}, ["佛罗里达"] = {alias_of = "佛羅里達"}, ["佐治亞"] = {wp = "Georgia (U.S. state)"}, ["夏威夷"] = {addl_parents = {"玻里尼西亞"}, wp = "Hawaii"}, ["愛達荷"] = {wp = "Idaho"}, ["伊利諾伊"] = {wp = "Illinois"}, ["伊利诺伊"] = {alias_of = "伊利諾伊"}, ["印地安那"] = {wp = "Indiana"}, ["印第安納"] = {alias_of = "印地安那"}, ["愛荷華"] = {wp = "Iowa"}, ["堪薩斯"] = {wp = "Kansas"}, ["肯塔基"] = {wp = "Kentucky"}, ["路易斯安那"] = {wp = "Louisiana"}, ["緬因"] = {wp = "Maine"}, ["馬里蘭"] = {wp = "Maryland"}, ["麻薩諸塞"] = {wp = "Massachusetts"}, ["麻薩诸塞"] = {alias_of = "麻薩諸塞"}, ["密西根"] = {wp = "Michigan"}, ["密歇根"] = {alias_of = "密西根"}, ["明尼蘇達"] = {wp = "Minnesota"}, ["明尼苏达"] = {alias_of = "明尼蘇達"}, ["密西西比"] = {wp = "Mississippi"}, ["密蘇里"] = {wp = "Missouri"}, ["蒙大拿"] = {wp = "Montana"}, ["內布拉斯加"] = {wp = "Nebraska"}, ["內華達"] = {wp = "Nevada"}, ["新罕布什爾"] = {wp = "New Hampshire"}, ["新澤西"] = {wp = "New Jersey"}, ["新泽西"] = {alias_of = "新澤西"}, ["新墨西哥"] = {wp = "New Mexico"}, ["紐約"] = {wp = "New York (state)"}, ["纽约"] = {alias_of = "紐約"}, ["北卡羅來納"] = {wp = "North Carolina"}, ["北达科他"] = {alias_of = "北達科他"}, ["北達科他"] = {wp = "North Dakota"}, ["俄亥俄"] = {wp = "Ohio"}, ["奧克拉荷馬"] = {wp = "Oklahoma"}, ["奧勒岡"] = {wp = "Oregon"}, ["俄勒冈"] = {alias_of = "奧勒岡"}, ["賓夕法尼亞"] = {wp = "Pennsylvania"}, ["宾夕法尼亚"] = {alias_of = "賓夕法尼亞"}, ["羅德島"] = {wp = "Rhode Island"}, ["南卡羅來納"] = {wp = "South Carolina"}, ["南達科他"] = {wp = "South Dakota"}, ["田納西"] = {wp = "Tennessee"}, ["田纳西"] = {alias_of = "田納西"}, ["德克薩斯"] = {wp = "Texas"}, ["德州"] = {alias_of = "德克薩斯"}, ["猶他"] = {wp = "Utah"}, ["佛蒙特"] = {wp = "Vermont"}, ["弗吉尼亞"] = {wp = "Virginia"}, ["弗吉尼亚"] = {alias_of = "弗吉尼亞"}, ["維吉尼亞"] = {alias_of = "弗吉尼亞"}, ["華盛頓州"] = {wp = "Washington (state)"}, ["华盛顿州"] = {alias_of = "華盛頓州"}, ["西維吉尼亞"] = {wp = "West Virginia"}, ["西弗吉尼亞"] = {alias_of = "西維吉尼亞"}, ["威斯康辛"] = {wp = "Wisconsin"}, ["懷俄明"] = {wp = "Wyoming"}, -- Washington D.C. (federal district, treated like a state in holonym context) ["華盛頓特區"] = {placetype = {"federal district", "district"}, wp = "Washington, D.C."}, } export.united_states_group = { placename_to_key = false, default_container = "美國", default_placetype = "state", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, }, data = export.united_states_states, } export.united_kingdom_constituent_countries = { ["英格蘭"] = {divs = {"counties", "districts"}, wp = "England"}, ["北愛爾蘭"] = { placetype = {"constituent country", "province", "country"}, divs = {"counties", "districts"}, wp = "Northern Ireland", }, ["蘇格蘭"] = {divs = {{type = "council areas", container_parent_type = false}}, wp = "Scotland"}, ["威爾斯"] = {divs = {"counties"}, wp = "Wales"}, ["威爾士"] = {alias_of = "威爾斯"}, } export.united_kingdom_group = { placename_to_key = false, default_container = "英國", default_placetype = {"constituent country", "country"}, default_no_container_cat = true, data = export.united_kingdom_constituent_countries, } -- Scotland council areas export.scotland_council_areas = { ["Aberdeen市"] = {wp = "Aberdeen"}, ["Aberdeenshire"] = {wp = "Aberdeenshire"}, ["Angus"] = {wp = "Angus, Scotland"}, ["Argyll and Bute"] = {wp = "Argyll and Bute"}, ["Clackmannanshire"] = {wp = "Clackmannanshire"}, ["Dumfries and Galloway"] = {wp = "Dumfries and Galloway"}, ["Dundee市"] = {wp = "Dundee"}, ["East Ayrshire"] = {wp = "East Ayrshire"}, ["East Dunbartonshire"] = {wp = "East Dunbartonshire"}, ["East Lothian"] = {wp = "East Lothian"}, ["East Renfrewshire"] = {wp = "East Renfrewshire"}, ["Edinburgh市"] = {wp = "Edinburgh"}, ["Eilean Siar"] = {wp = "Outer Hebrides"}, ["Falkirk"] = {wp = "Falkirk"}, ["Fife"] = {wp = "Fife"}, ["Glasgow市"] = {wp = "Glasgow"}, ["高地"] = {wp = "Highland council area"}, ["Highland"] = {alias_of = "高地", display = true}, ["Inverclyde"] = {wp = "Inverclyde"}, ["Midlothian"] = {wp = "Midlothian"}, ["Moray"] = {wp = "Moray"}, ["North Ayrshire"] = {wp = "North Ayrshire"}, ["North Lanarkshire"] = {wp = "North Lanarkshire"}, ["Orkney群島"] = {wp = "Orkney"}, ["Perth and Kinross"] = {wp = "Perth and Kinross"}, ["Renfrewshire"] = {wp = "Renfrewshire"}, ["Scottish Borders"] = {wp = "Scottish Borders"}, ["Shetland群島"] = {wp = "Shetland"}, ["South Ayrshire"] = {wp = "South Ayrshire"}, ["South Lanarkshire"] = {wp = "South Lanarkshire"}, ["Stirling"] = {wp = "Stirling (council area)"}, ["West Dunbartonshire"] = {wp = "West Dunbartonshire"}, ["West Lothian"] = {wp = "West Lothian"}, } export.scotland_group = { placename_to_key = false, default_container = "蘇格蘭", default_placetype = "council area", data = export.scotland_council_areas, } -- England counties (ceremonial) export.england_counties = { -- Metropolitan counties ["大倫敦"] = {wp = "Greater London"}, ["大曼徹斯特"] = {wp = "Greater Manchester"}, ["默西賽德郡"] = {wp = "Merseyside"}, ["西密德蘭"] = {wp = "West Midlands (county)"}, ["南約克郡"] = {wp = "South Yorkshire"}, ["西約克郡"] = {wp = "West Yorkshire"}, ["泰恩-威爾郡"] = {wp = "Tyne and Wear"}, -- Non-metropolitan ceremonial counties ["貝德福德郡"] = {wp = "Bedfordshire"}, ["伯克郡"] = {wp = "Berkshire"}, ["白金漢郡"] = {wp = "Buckinghamshire"}, ["劍橋郡"] = {wp = "Cambridgeshire"}, ["柴郡"] = {wp = "Cheshire"}, ["康沃爾郡"] = {wp = "Cornwall"}, ["坎布里亞郡"] = {wp = "Cumbria"}, ["德比郡"] = {wp = "Derbyshire"}, ["德文郡"] = {wp = "Devon"}, ["多塞特郡"] = {wp = "Dorset"}, ["達勒姆郡"] = {wp = "County Durham"}, ["約克郡東區"] = {wp = "East Riding of Yorkshire"}, ["東薩塞克斯郡"] = {wp = "East Sussex"}, ["埃塞克斯郡"] = {wp = "Essex"}, ["格洛斯特郡"] = {wp = "Gloucestershire"}, ["漢普郡"] = {wp = "Hampshire"}, ["赫里福德郡"] = {wp = "Herefordshire"}, ["赫特福德郡"] = {wp = "Hertfordshire"}, ["懷特島"] = {wp = "Isle of Wight"}, ["肯特郡"] = {wp = "Kent"}, ["蘭開夏郡"] = {wp = "Lancashire"}, ["萊斯特郡"] = {wp = "Leicestershire"}, ["林肯郡"] = {wp = "Lincolnshire"}, ["諾福克郡"] = {wp = "Norfolk"}, ["北安普敦郡"] = {wp = "Northamptonshire"}, ["諾森伯蘭郡"] = {wp = "Northumberland"}, ["北約克郡"] = {wp = "North Yorkshire"}, ["諾丁漢郡"] = {wp = "Nottinghamshire"}, ["牛津郡"] = {wp = "Oxfordshire"}, ["拉特蘭郡"] = {wp = "Rutland"}, ["什羅普郡"] = {wp = "Shropshire"}, ["薩默塞特郡"] = {wp = "Somerset"}, ["南亨伯賽德郡"] = {wp = "South Humberside"}, ["斯塔福德郡"] = {wp = "Staffordshire"}, ["薩福克郡"] = {wp = "Suffolk"}, ["薩里郡"] = {wp = "Surrey"}, ["沃里克郡"] = {wp = "Warwickshire"}, ["西薩塞克斯郡"] = {wp = "West Sussex"}, ["威爾特郡"] = {wp = "Wiltshire"}, ["伍斯特郡"] = {wp = "Worcestershire"}, } export.england_group = { placename_to_key = false, default_container = {key = "英格蘭", placetype = "constituent country"}, default_placetype = "county", data = export.england_counties, } -- Counties of Northern Ireland export.northern_ireland_counties = { ["安特里姆郡"] = {wp = "County Antrim"}, ["阿爾馬郡"] = {wp = "County Armagh"}, ["貝爾法斯特市"] = {is_city = true, wp = "Belfast"}, ["唐郡"] = {wp = "County Down"}, ["弗馬納郡"] = {wp = "County Fermanagh"}, ["倫敦德里郡"] = {wp = "County Londonderry"}, ["德里市"] = {is_city = true, wp = "Derry"}, ["泰龍郡"] = {wp = "County Tyrone"}, } export.northern_ireland_group = { placename_to_key = false, default_container = {key = "北愛爾蘭", placetype = "constituent country"}, default_placetype = "county", data = export.northern_ireland_counties, } export.nigeria_states = { ["阿比亞州"] = {wp = "Abia State"}, ["阿達馬瓦州"] = {wp = "Adamawa State"}, ["阿誇伊博姆州"] = {wp = "Akwa Ibom State"}, ["阿南布拉州"] = {wp = "Anambra State"}, ["包奇州"] = {wp = "Bauchi State"}, ["貝耶薩州"] = {wp = "Bayelsa State"}, ["貝努埃州"] = {wp = "Benue State"}, ["博爾諾州"] = {wp = "Borno State"}, ["跨河州"] = {wp = "Cross River State"}, ["三角洲州"] = {wp = "Delta State"}, ["埃博尼州"] = {wp = "Ebonyi State"}, ["埃多州"] = {wp = "Edo State"}, ["埃基蒂州"] = {wp = "Ekiti State"}, ["埃努古州"] = {wp = "Enugu State"}, ["阿布賈聯邦首都轄區"] = {placetype = {"federal territory", "territory", "state"}, the = true, wp = "Federal Capital Territory, Nigeria"}, ["貢貝州"] = {wp = "Gombe State"}, ["伊莫州"] = {wp = "Imo State"}, ["吉加瓦州"] = {wp = "Jigawa State"}, ["卡杜納州"] = {wp = "Kaduna State"}, ["卡諾州"] = {wp = "Kano State"}, ["卡齊納州"] = {wp = "Katsina State"}, ["克比州"] = {wp = "Kebbi State"}, ["科吉州"] = {wp = "Kogi State"}, ["誇拉州"] = {wp = "Kwara State"}, ["拉各斯州"] = {wp = "Lagos State"}, ["納薩拉瓦州"] = {wp = "Nasarawa State"}, ["尼日爾州"] = {wp = "Niger State"}, ["奧貢州"] = {wp = "Ogun State"}, ["翁多州"] = {wp = "Ondo State"}, ["奧順州"] = {wp = "Osun State"}, ["奧約州"] = {wp = "Oyo State"}, ["高原州"] = {wp = "Plateau State"}, ["河流州"] = {wp = "Rivers State"}, ["索科托州"] = {wp = "Sokoto State"}, ["塔拉巴州"] = {wp = "Taraba State"}, ["約貝州"] = {wp = "Yobe State"}, ["贊法拉州"] = {wp = "Zamfara State"}, } export.nigeria_group = { placename_to_key = false, default_container = "奈及利亞", default_placetype = "state", data = export.nigeria_states, } ----------------------------------------------------------------------------------- -- Selected city groups -- ----------------------------------------------------------------------------------- -- Key world cities frequently used as holonyms (entries covered by dedicated city groups removed) export.misc_cities = { -- Americas ["費爾法克斯"] = {container = "弗吉尼亞", placetype = "city", is_city = true, wp = "Fairfax, Virginia"}, ["斯克蘭頓"] = {container = "賓夕法尼亞", placetype = "city", is_city = true, wp = "Scranton, Pennsylvania"}, ["里約熱內盧市"] = {container = "巴西", placetype = "city", is_city = true, wp = "Rio de Janeiro"}, ["布宜諾斯艾利斯"] = {container = "阿根廷", placetype = "city", is_city = true, wp = "Buenos Aires"}, ["聖地牙哥"] = {container = "智利", placetype = "city", is_city = true, wp = "Santiago"}, ["波哥大"] = {container = "哥倫比亞", placetype = "city", is_city = true, wp = "Bogotá"}, ["利馬"] = {container = "秘魯", placetype = "city", is_city = true, wp = "Lima"}, -- Europe ["阿姆斯特丹"] = {container = "荷蘭", placetype = "city", is_city = true, wp = "Amsterdam"}, ["布魯塞爾"] = {container = "比利時", placetype = "city", is_city = true, wp = "Brussels"}, ["維也納"] = {container = "奧地利", placetype = "city", is_city = true, wp = "Vienna"}, ["伊斯坦布爾"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Istanbul"}, ["基輔"] = {container = "烏克蘭", placetype = "city", is_city = true, wp = "Kyiv"}, ["華沙"] = {container = "波蘭", placetype = "city", is_city = true, wp = "Warsaw"}, ["布拉格"] = {container = "捷克", placetype = "city", is_city = true, wp = "Prague"}, ["布達佩斯"] = {container = "匈牙利", placetype = "city", is_city = true, wp = "Budapest"}, ["斯德哥爾摩"] = {container = "瑞典", placetype = "city", is_city = true, wp = "Stockholm"}, ["赫爾辛基"] = {container = "芬蘭", placetype = "city", is_city = true, wp = "Helsinki"}, ["奧斯陸"] = {container = "挪威", placetype = "city", is_city = true, wp = "Oslo"}, ["哥本哈根"] = {container = "丹麥", placetype = "city", is_city = true, wp = "Copenhagen"}, ["里斯本"] = {container = "葡萄牙", placetype = "city", is_city = true, wp = "Lisbon"}, ["雅典"] = {container = "希臘", placetype = "city", is_city = true, wp = "Athens"}, ["蘇黎世"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Zurich"}, ["日內瓦"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Geneva"}, ["第比利斯"] = {container = "格魯吉亞", placetype = "city", is_city = true, wp = "Tbilisi"}, ["貝爾格勒"] = {container = "塞爾維亞", placetype = "city", is_city = true, wp = "Belgrade"}, ["薩格勒布"] = {container = "克羅埃西亞", placetype = "city", is_city = true, wp = "Zagreb"}, ["都柏林"] = {container = "愛爾蘭", placetype = "city", is_city = true, wp = "Dublin"}, -- Asia ["北京市"] = {container = "北京", placetype = "city", is_city = true, wp = "Beijing"}, ["上海市"] = {container = "上海", placetype = "city", is_city = true, wp = "Shanghai"}, ["德里市"] = {container = "德里", placetype = "city", is_city = true, wp = "Delhi"}, ["曼谷"] = {container = "泰國", placetype = "city", is_city = true, wp = "Bangkok"}, ["吉隆坡"] = {container = "馬來西亞", placetype = "city", is_city = true, wp = "Kuala Lumpur"}, ["開羅"] = {container = "埃及", placetype = "city", is_city = true, wp = "Cairo"}, ["德黑蘭"] = {container = "伊朗", placetype = "city", is_city = true, wp = "Tehran"}, ["安卡拉"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Ankara"}, -- Oceania ["奧克蘭"] = {container = "紐西蘭", placetype = "city", is_city = true, wp = "Auckland"}, -- Africa ["開普敦"] = {container = "南非", placetype = "city", is_city = true, wp = "Cape Town"}, ["約翰尼斯堡"] = {container = "南非", placetype = "city", is_city = true, wp = "Johannesburg"}, ["奈洛比"] = {container = "肯亞", placetype = "city", is_city = true, wp = "Nairobi"}, } export.misc_cities_group = { placename_to_key = false, default_placetype = "city", default_is_city = true, data = export.misc_cities, } export.netherlands_provinces = { ["德倫特省"] = {wp = "Drenthe"}, ["弗萊福蘭省"] = {wp = "Flevoland"}, ["弗里斯蘭省"] = {wp = "Friesland"}, ["格爾德蘭省"] = {wp = "Gelderland"}, ["格羅寧根省"] = {wp = "Groningen (province)"}, ["林堡省(荷蘭)"] = {wp = "Limburg (Netherlands)"}, ["北布拉班特省"] = {wp = "North Brabant"}, ["北荷蘭省"] = {wp = "North Holland"}, ["上艾瑟爾省"] = {wp = "Overijssel"}, ["南荷蘭省"] = {wp = "South Holland"}, ["烏特勒支省"] = {wp = "Utrecht (province)"}, ["澤蘭省"] = {wp = "Zeeland"}, } export.netherlands_group = { placename_to_key = false, default_container = "荷蘭", default_placetype = "province", data = export.netherlands_provinces, } export.new_zealand_regions = { ["北地大區"] = {wp = "Northland Region"}, ["奧克蘭大區"] = {wp = "Auckland Region"}, ["懷卡托大區"] = {wp = "Waikato Region"}, ["豐盛灣大區"] = {wp = "Bay of Plenty Region"}, ["吉斯伯恩大區"] = {wp = "Gisborne District", placetype = {"region", "district"}}, ["霍克斯灣大區"] = {wp = "Hawke's Bay Region"}, ["塔拉納基大區"] = {wp = "Taranaki Region"}, ["馬納瓦圖-旺阿努伊大區"] = {wp = "Manawatū-Whanganui Region"}, ["惠靈頓大區"] = {wp = "Wellington Region"}, ["塔斯曼大區"] = {wp = "Tasman District", placetype = {"region", "district"}}, ["納爾遜大區"] = {wp = "Nelson, New Zealand", placetype = {"region", "city"}, is_city = true}, ["馬爾堡大區"] = {wp = "Marlborough District", placetype = {"region", "district"}}, ["西海岸大區"] = {wp = "West Coast Region"}, ["坎特伯雷大區"] = {wp = "Canterbury Region"}, ["奧塔哥大區"] = {wp = "Otago Region"}, ["南地大區"] = {wp = "Southland Region"}, } export.new_zealand_group = { placename_to_key = false, default_container = "紐西蘭", default_placetype = "region", data = export.new_zealand_regions, } export.norwegian_counties = { ["奧斯陸縣"] = {wp = "Oslo"}, ["羅加蘭縣"] = {wp = "Rogaland"}, ["莫雷-羅姆斯達爾縣"] = {wp = "Møre og Romsdal"}, ["諾爾蘭縣"] = {wp = "Nordland"}, ["東福爾縣"] = {wp = "Østfold"}, ["阿克斯胡斯縣"] = {wp = "Akershus"}, ["布斯克呂縣"] = {wp = "Buskerud"}, ["因蘭德縣"] = {wp = "Innlandet"}, ["西福爾縣"] = {wp = "Vestfold"}, ["泰勒馬克縣"] = {wp = "Telemark"}, ["阿格德爾縣"] = {wp = "Agder"}, ["西地縣"] = {wp = "Vestland"}, ["特倫德拉格縣"] = {wp = "Trøndelag"}, ["特羅姆斯縣"] = {wp = "Troms"}, ["芬馬克縣"] = {wp = "Finnmark"}, } export.norway_group = { placename_to_key = false, default_container = "挪威", default_placetype = "county", data = export.norwegian_counties, } export.pakistan_provinces_and_territories = { ["自由克什米爾"] = {wp = "Azad Kashmir", placetype = {"administrative territory", "autonomous territory", "territory"}}, ["俾路支省"] = {wp = "Balochistan, Pakistan"}, ["吉爾吉特-巴爾蒂斯坦"] = {wp = "Gilgit-Baltistan", placetype = {"administrative territory", "territory"}}, ["伊斯蘭馬巴德首都直轄區"] = {wp = "Islamabad Capital Territory", placetype = {"federal territory", "administrative territory", "territory"}}, ["開伯爾-普赫圖赫瓦省"] = {wp = "Khyber Pakhtunkhwa"}, ["旁遮普省(巴基斯坦)"] = {wp = "Punjab, Pakistan"}, ["信德省"] = {wp = "Sindh"}, } export.pakistan_group = { placename_to_key = false, default_container = "巴基斯坦", default_placetype = "province", data = export.pakistan_provinces_and_territories, } export.philippines_provinces = { ["阿布拉省"] = {wp = "Abra (province)"}, ["北阿古桑省"] = {wp = "Agusan del Norte"}, ["南阿古桑省"] = {wp = "Agusan del Sur"}, ["阿克蘭省"] = {wp = "Aklan"}, ["阿爾拜省"] = {wp = "Albay"}, ["安蒂克省"] = {wp = "Antique (province)"}, ["阿帕亞沃省"] = {wp = "Apayao"}, ["奧羅拉省"] = {wp = "Aurora (province)"}, ["巴西蘭省"] = {wp = "Basilan"}, ["巴丹省"] = {wp = "Bataan"}, ["巴達內斯省"] = {wp = "Batanes"}, ["八打雁省"] = {wp = "Batangas"}, ["本格特省"] = {wp = "Benguet"}, ["比利蘭省"] = {wp = "Biliran"}, ["保和省"] = {wp = "Bohol"}, ["布基農省"] = {wp = "Bukidnon"}, ["布拉干省"] = {wp = "Bulacan"}, ["卡加延省"] = {wp = "Cagayan"}, ["北甲馬仁省"] = {wp = "Camarines Norte"}, ["南甲馬仁省"] = {wp = "Camarines Sur"}, ["卡米金省"] = {wp = "Camiguin"}, ["卡皮斯省"] = {wp = "Capiz"}, ["卡坦端內斯省"] = {wp = "Catanduanes"}, ["甲米地省"] = {wp = "Cavite"}, ["宿霧省"] = {wp = "Cebu"}, ["哥打巴托省"] = {wp = "Cotabato"}, ["達沃德奧羅省"] = {wp = "Davao de Oro"}, ["北達沃省"] = {wp = "Davao del Norte"}, ["南達沃省"] = {wp = "Davao del Sur"}, ["西達沃省"] = {wp = "Davao Occidental"}, ["東達沃省"] = {wp = "Davao Oriental"}, ["迪納加特群島省"] = {wp = "Dinagat Islands"}, ["東薩馬省"] = {wp = "Eastern Samar"}, ["吉馬拉斯省"] = {wp = "Guimaras"}, ["伊富高省"] = {wp = "Ifugao"}, ["北伊羅科斯省"] = {wp = "Ilocos Norte"}, ["南伊羅科斯省"] = {wp = "Ilocos Sur"}, ["伊洛伊洛省"] = {wp = "Iloilo"}, ["伊莎貝拉省"] = {wp = "Isabela (province)"}, ["卡林加省"] = {wp = "Kalinga (province)"}, ["拉烏尼翁省"] = {wp = "La Union"}, ["拉古納省"] = {wp = "Laguna (province)"}, ["北拉瑙省"] = {wp = "Lanao del Norte"}, ["南拉瑙省"] = {wp = "Lanao del Sur"}, ["萊特省"] = {wp = "Leyte (province)"}, ["北馬京達瑙省"] = {wp = "Maguindanao del Norte"}, ["南馬京達瑙省"] = {wp = "Maguindanao del Sur"}, ["馬林杜克省"] = {wp = "Marinduque"}, ["馬斯巴特省"] = {wp = "Masbate"}, ["西米薩米斯省"] = {wp = "Misamis Occidental"}, ["東米薩米斯省"] = {wp = "Misamis Oriental"}, ["山岳省"] = {wp = "Mountain Province"}, ["西內格羅斯省"] = {wp = "Negros Occidental"}, ["東內格羅斯省"] = {wp = "Negros Oriental"}, ["北薩馬省"] = {wp = "Northern Samar"}, ["新怡詩夏省"] = {wp = "Nueva Ecija"}, ["新比斯開省"] = {wp = "Nueva Vizcaya"}, ["西民都洛省"] = {wp = "Occidental Mindoro"}, ["東民都洛省"] = {wp = "Oriental Mindoro"}, ["巴拉望省"] = {wp = "Palawan"}, ["邦板牙省"] = {wp = "Pampanga"}, ["邦阿西楠省"] = {wp = "Pangasinan"}, ["奎松省"] = {wp = "Quezon"}, ["基里諾省"] = {wp = "Quirino"}, ["黎剎省"] = {wp = "Rizal (province)"}, ["朗布隆省"] = {wp = "Romblon"}, ["薩馬省"] = {wp = "Samar (province)"}, ["薩蘭加尼省"] = {wp = "Sarangani"}, ["錫基霍爾省"] = {wp = "Siquijor"}, ["索索貢省"] = {wp = "Sorsogon"}, ["南哥打巴托省"] = {wp = "South Cotabato"}, ["南萊特省"] = {wp = "Southern Leyte"}, ["蘇丹庫達拉省"] = {wp = "Sultan Kudarat"}, ["蘇祿省"] = {wp = "Sulu"}, ["北蘇里高省"] = {wp = "Surigao del Norte"}, ["南蘇里高省"] = {wp = "Surigao del Sur"}, ["塔拉克省"] = {wp = "Tarlac"}, ["塔威塔威省"] = {wp = "Tawi-Tawi"}, ["三描禮士省"] = {wp = "Zambales"}, ["北三寶顏省"] = {wp = "Zamboanga del Norte"}, ["南三寶顏省"] = {wp = "Zamboanga del Sur"}, ["三寶顏錫布蓋省"] = {wp = "Zamboanga Sibugay"}, ["馬尼拉都會區"] = {wp = "Metro Manila", placetype = {"region", "province"}}, } export.philippines_group = { placename_to_key = false, default_container = "菲律賓", default_placetype = "province", data = export.philippines_provinces, } export.poland_voivodeships = { ["下西里西亞省"] = {wp = "Lower Silesian Voivodeship"}, ["庫亞維-波美拉尼亞省"] = {wp = "Kuyavian-Pomeranian Voivodeship"}, ["盧布林省"] = {wp = "Lublin Voivodeship"}, ["盧布斯省"] = {wp = "Lubusz Voivodeship"}, ["羅茲省"] = {wp = "Łódź Voivodeship"}, ["小波蘭省"] = {wp = "Lesser Poland Voivodeship"}, ["馬佐夫舍省"] = {wp = "Masovian Voivodeship"}, ["奧波萊省"] = {wp = "Opole Voivodeship"}, ["喀爾巴阡山省"] = {wp = "Subcarpathian Voivodeship"}, ["波德拉謝省"] = {wp = "Podlaskie Voivodeship"}, ["波美拉尼亞省"] = {wp = "Pomeranian Voivodeship"}, ["西里西亞省"] = {wp = "Silesian Voivodeship"}, ["神聖十字省"] = {wp = "Świętokrzyskie Voivodeship"}, ["瓦爾米亞-馬祖里省"] = {wp = "Warmian-Masurian Voivodeship"}, ["大波蘭省"] = {wp = "Greater Poland Voivodeship"}, ["西波美拉尼亞省"] = {wp = "West Pomeranian Voivodeship"}, } export.poland_group = { placename_to_key = false, default_container = "波蘭", default_placetype = "voivodeship", data = export.poland_voivodeships, } export.portugal_districts_and_autonomous_regions = { ["亞速爾群島"] = {wp = "Azores", placetype = {"autonomous region", "region"}}, ["阿維羅區"] = {wp = "Aveiro District"}, ["貝雅區"] = {wp = "Beja District"}, ["布拉加區"] = {wp = "Braga District"}, ["布拉干薩區"] = {wp = "Bragança District"}, ["卡斯特洛布蘭科區"] = {wp = "Castelo Branco District"}, ["科英布拉區"] = {wp = "Coimbra District"}, ["埃武拉區"] = {wp = "Évora District"}, ["法魯區"] = {wp = "Faro District"}, ["瓜達區"] = {wp = "Guarda District"}, ["萊里亞區"] = {wp = "Leiria District"}, ["里斯本區"] = {wp = "Lisbon District"}, ["馬德拉島"] = {wp = "Madeira", placetype = {"autonomous region", "region"}}, ["波塔萊格里區"] = {wp = "Portalegre District"}, ["波爾圖區"] = {wp = "Porto District"}, ["聖塔倫區"] = {wp = "Santarém District"}, ["塞圖巴爾區"] = {wp = "Setúbal District"}, ["維亞納堡區"] = {wp = "Viana do Castelo District"}, ["維拉雷亞爾區"] = {wp = "Vila Real District"}, ["維塞烏區"] = {wp = "Viseu District"}, } export.portugal_group = { placename_to_key = false, default_container = "葡萄牙", default_placetype = "district", data = export.portugal_districts_and_autonomous_regions, } local russia_oblast = {placetype = "oblast"} local russia_krai = {placetype = "krai"} local russia_republic = {placetype = "republic"} local russia_autonomous_okrug = {placetype = {"autonomous okrug", "okrug"}} export.russia_federal_subjects = { -- autonomous oblast ["猶太自治州"] = {placetype = {"autonomous oblast", "oblast"}, wp = "Jewish Autonomous Oblast"}, -- autonomous okrugs ["楚科奇自治區"] = {wp = "Chukotka Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西自治區"] = {wp = "Khanty-Mansi Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西亞"] = {alias_of = "漢特-曼西自治區"}, ["涅涅茨自治區"] = {wp = "Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["亞馬洛-涅涅茨自治區"] = {wp = "Yamalo-Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, -- krais ["阿爾泰邊疆區"] = {wp = "Altai Krai", placetype = "krai"}, ["堪察加邊疆區"] = {wp = "Kamchatka Krai", placetype = "krai"}, ["哈巴羅夫斯克邊疆區"] = {wp = "Khabarovsk Krai", placetype = "krai"}, ["克拉斯諾達爾邊疆區"] = {wp = "Krasnodar Krai", placetype = "krai"}, ["克拉斯諾亞爾斯克邊疆區"] = {wp = "Krasnoyarsk Krai", placetype = "krai"}, ["彼爾姆邊疆區"] = {wp = "Perm Krai", placetype = "krai"}, ["濱海邊疆區"] = {wp = "Primorsky Krai", placetype = "krai"}, ["斯塔夫羅波爾邊疆區"] = {wp = "Stavropol Krai", placetype = "krai"}, ["外貝加爾邊疆區"] = {wp = "Zabaykalsky Krai", placetype = "krai"}, -- oblasts ["阿穆爾州"] = russia_oblast, ["阿爾漢格爾斯克州"] = russia_oblast, ["阿斯特拉罕州"] = russia_oblast, ["別爾哥羅德州"] = russia_oblast, ["布良斯克州"] = russia_oblast, ["車裡雅賓斯克州"] = russia_oblast, ["伊爾庫茨克州"] = russia_oblast, ["伊萬諾沃州"] = russia_oblast, ["加里寧格勒州"] = russia_oblast, ["卡盧加州"] = russia_oblast, ["克麥羅沃州"] = russia_oblast, ["基洛夫州"] = russia_oblast, ["科斯特羅馬州"] = russia_oblast, ["庫爾干州"] = russia_oblast, ["庫爾斯克州"] = russia_oblast, ["列寧格勒州"] = russia_oblast, ["利佩茨克州"] = russia_oblast, ["馬加丹州"] = russia_oblast, ["莫斯科州"] = russia_oblast, ["摩爾曼斯克州"] = russia_oblast, ["下諾夫哥羅德州"] = russia_oblast, ["諾夫哥羅德州"] = russia_oblast, ["新西伯利亞州"] = russia_oblast, ["鄂木斯克州"] = russia_oblast, ["奧倫堡州"] = russia_oblast, ["奧廖爾州"] = russia_oblast, ["奔薩州"] = russia_oblast, ["普斯科夫州"] = russia_oblast, ["羅斯托夫州"] = russia_oblast, ["梁贊州"] = russia_oblast, ["薩哈林州"] = {wp = "Sakhalin Oblast", placetype = "oblast"}, ["薩馬拉州"] = russia_oblast, ["薩拉托夫州"] = russia_oblast, ["斯摩棱斯克州"] = russia_oblast, ["斯維爾德洛夫斯克州"] = russia_oblast, ["坦波夫州"] = russia_oblast, ["托木斯克州"] = russia_oblast, ["圖拉州"] = russia_oblast, ["特維爾州"] = russia_oblast, ["秋明州"] = russia_oblast, ["烏里揚諾夫斯克州"] = russia_oblast, ["弗拉基米爾州"] = russia_oblast, ["伏爾加格勒州"] = russia_oblast, ["沃洛格達州"] = russia_oblast, ["沃羅涅日州"] = russia_oblast, ["雅羅斯拉夫爾州"] = russia_oblast, -- republics ["阿迪格共和國"] = russia_republic, ["巴什科爾托斯坦共和國"] = russia_republic, ["布里亞特共和國"] = russia_republic, ["達吉斯坦共和國"] = russia_republic, ["印古什共和國"] = russia_republic, ["卡爾梅克共和國"] = russia_republic, ["卡累利亞共和國"] = {wp = "Republic of Karelia", placetype = "republic"}, ["哈卡斯共和國"] = russia_republic, ["莫爾多瓦共和國"] = russia_republic, ["北奧塞梯-阿蘭尼亞共和國"] = {wp = "North Ossetia–Alania", placetype = "republic"}, ["北奧塞梯"] = {alias_of = "北奧塞梯-阿蘭尼亞共和國"}, ["韃靼斯坦共和國"] = russia_republic, ["阿爾泰共和國"] = {wp = "Altai Republic", placetype = "republic"}, ["車臣共和國"] = russia_republic, ["楚瓦什共和國"] = russia_republic, ["卡巴爾達-巴爾卡爾共和國"] = russia_republic, ["卡拉恰伊-切爾克斯共和國"] = russia_republic, ["科米共和國"] = {wp = "Komi Republic", placetype = "republic"}, ["馬里埃爾共和國"] = russia_republic, ["薩哈共和國"] = {wp = "Sakha Republic", placetype = "republic"}, ["雅庫特"] = {alias_of = "薩哈共和國"}, ["圖瓦共和國"] = russia_republic, ["烏德穆爾特共和國"] = russia_republic, } export.russia_group = { placename_to_key = false, default_container = "俄羅斯", default_placetype = "oblast", data = export.russia_federal_subjects, } export.saudi_arabia_provinces = { ["利雅得省"] = {wp = "Riyadh Province"}, ["麥加省"] = {wp = "Mecca Province"}, ["東部省(沙特)"] = {wp = "Eastern Province, Saudi Arabia", no_auto_augment_container = true}, ["麥地那省"] = {wp = "Medina Province"}, ["阿西爾省"] = {wp = "Asir"}, ["吉贊省"] = {wp = "Jazan Province"}, ["卡西姆省"] = {wp = "Al-Qassim Province"}, ["塔布克省"] = {wp = "Tabuk Province"}, ["哈伊爾省"] = {wp = "Ha'il Province"}, ["焦夫省"] = {wp = "Al-Jawf Province"}, ["納季蘭省"] = {wp = "Najran Province"}, ["北部邊界省"] = {wp = "Northern Borders Province"}, ["巴哈省"] = {wp = "Al-Bahah Province"}, } export.saudi_arabia_group = { placename_to_key = false, default_container = "沙烏地阿拉伯", default_placetype = "province", data = export.saudi_arabia_provinces, } export.south_africa_provinces = { ["東開普省"] = {wp = "Eastern Cape"}, ["自由邦省"] = {wp = "Free State (South African province)"}, ["豪登省"] = {wp = "Gauteng"}, ["夸祖魯-納塔爾省"] = {wp = "KwaZulu-Natal"}, ["林波波省"] = {wp = "Limpopo"}, ["姆普馬蘭加省"] = {wp = "Mpumalanga"}, ["西北省(南非)"] = {wp = "North West (South African province)"}, ["北開普省"] = {wp = "Northern Cape"}, ["西開普省"] = {wp = "Western Cape"}, } export.south_africa_group = { placename_to_key = false, default_container = "南非", default_placetype = "province", data = export.south_africa_provinces, } export.ukraine_oblasts = { ["切爾卡瑟州"] = {wp = "Cherkasy Oblast"}, ["切爾尼戈夫州"] = {wp = "Chernihiv Oblast"}, ["切爾諾夫策州"] = {wp = "Chernivtsi Oblast"}, ["第聶伯羅彼得羅夫斯克州"] = {wp = "Dnipropetrovsk Oblast"}, ["頓涅茨克州"] = {wp = "Donetsk Oblast"}, ["伊萬諾-弗蘭科夫斯克州"] = {wp = "Ivano-Frankivsk Oblast"}, ["哈爾科夫州"] = {wp = "Kharkiv Oblast"}, ["赫爾松州"] = {wp = "Kherson Oblast"}, ["赫梅利尼茨基州"] = {wp = "Khmelnytskyi Oblast"}, ["基洛夫格勒州"] = {wp = "Kirovohrad Oblast"}, ["基輔州"] = {wp = "Kyiv Oblast"}, ["盧甘斯克州"] = {wp = "Luhansk Oblast"}, ["利沃夫州"] = {wp = "Lviv Oblast"}, ["尼古拉耶夫州"] = {wp = "Mykolaiv Oblast"}, ["敖德薩州"] = {wp = "Odesa Oblast"}, ["波爾塔瓦州"] = {wp = "Poltava Oblast"}, ["羅夫諾州"] = {wp = "Rivne Oblast"}, ["蘇梅州"] = {wp = "Sumy Oblast"}, ["捷爾諾波爾州"] = {wp = "Ternopil Oblast"}, ["文尼察州"] = {wp = "Vinnytsia Oblast"}, ["沃里尼亞州"] = {wp = "Volyn Oblast"}, ["外喀爾巴阡州"] = {wp = "Zakarpattia Oblast"}, ["扎波羅熱州"] = {wp = "Zaporizhzhia Oblast"}, ["日托米爾州"] = {wp = "Zhytomyr Oblast"}, } export.ukraine_group = { placename_to_key = false, default_container = "烏克蘭", default_placetype = "oblast", data = export.ukraine_oblasts, } export.wales_principal_areas = { ["布拉艾諾格溫特"] = {wp = "Blaenau Gwent"}, ["布里真德"] = {wp = "Bridgend County Borough"}, ["卡菲利"] = {wp = "Caerphilly County Borough"}, ["卡馬森郡"] = {wp = "Carmarthenshire", placetype = "county"}, ["克雷地基昂"] = {wp = "Ceredigion", placetype = "county"}, ["科溫"] = {wp = "Conwy County Borough"}, ["登比郡"] = {wp = "Denbighshire", placetype = "county"}, ["弗林特郡"] = {wp = "Flintshire", placetype = "county"}, ["格溫內德"] = {wp = "Gwynedd", placetype = "county"}, ["安格爾西島"] = {wp = "Isle of Anglesey", placetype = "county"}, ["默瑟蒂德菲爾"] = {wp = "Merthyr Tydfil County Borough"}, ["蒙茅斯郡"] = {wp = "Monmouthshire", placetype = "county"}, ["尼斯-波特塔爾博特"] = {wp = "Neath Port Talbot"}, ["彭布羅克郡"] = {wp = "Pembrokeshire", placetype = "county"}, ["波伊斯"] = {wp = "Powys", placetype = "county"}, ["朗達坎農塔夫"] = {wp = "Rhondda Cynon Taf"}, ["托爾范"] = {wp = "Torfaen"}, ["格拉摩根谷"] = {wp = "Vale of Glamorgan"}, ["雷克瑟姆"] = {wp = "Wrexham County Borough"}, } export.wales_group = { placename_to_key = false, default_container = {key = "威爾斯", placetype = "constituent country"}, default_placetype = "county borough", data = export.wales_principal_areas, } ----------------------------------------------------------------------------------- -- City groups -- ----------------------------------------------------------------------------------- export.australia_cities = { ["阿德萊德"] = {container = "南澳大利亞", wp = "Adelaide"}, ["布里斯班"] = {container = "昆士蘭", wp = "Brisbane"}, ["坎培拉"] = {container = "澳大利亞首都領地", wp = "Canberra"}, ["墨爾本"] = {container = "維多利亞州", wp = "Melbourne"}, ["紐卡素"] = {container = "新南威爾斯", wp = "Newcastle, New South Wales"}, ["伯斯"] = {container = "西澳大利亞", wp = "Perth"}, ["悉尼"] = {container = "新南威爾斯", wp = "Sydney"}, } export.australia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "澳大利亞", default_placetype = "city", default_is_city = true, data = export.australia_cities, } export.brazil_cities = { ["聖保羅"] = {container = "聖保羅州", wp = "São Paulo"}, ["里約熱內盧"] = {container = "里約熱內盧州", wp = "Rio de Janeiro"}, ["貝洛奧里藏特"] = {container = "米納斯吉拉斯", wp = "Belo Horizonte"}, ["累西腓"] = {container = "伯南布哥州", wp = "Recife"}, ["阿雷格里港"] = {container = "南里奧格蘭德州", wp = "Porto Alegre"}, ["巴西利亞"] = {container = "巴西聯邦區", wp = "Brasília"}, ["福塔萊薩"] = {container = "塞阿拉州", wp = "Fortaleza"}, ["薩爾瓦多"] = {container = "巴伊亞", wp = "Salvador, Bahia"}, ["庫里蒂巴"] = {container = "巴拉那州", wp = "Curitiba"}, ["坎皮納斯"] = {container = "聖保羅州", wp = "Campinas"}, ["戈亞尼亞"] = {container = "戈亞斯州", wp = "Goiânia"}, ["瑪瑙斯"] = {container = "亞馬遜州", wp = "Manaus"}, ["伯利恆"] = {container = "帕拉州", wp = "Belém, Pará"}, ["維多利亞"] = {container = "聖埃斯皮里圖州", wp = "Vitória, Espírito Santo"}, ["聖路易斯"] = {container = "馬拉尼昂州", wp = "São Luís"}, ["納塔爾"] = {container = "北里奧格蘭德州", wp = "Natal, Rio Grande do Norte"}, ["弗洛里亞諾波利斯"] = {container = "聖卡塔琳娜州", wp = "Florianópolis"}, ["馬塞約"] = {container = "阿拉戈亞斯州", wp = "Maceió"}, ["若昂佩索阿"] = {container = "帕拉伊巴州", wp = "João Pessoa"}, ["特雷齊納"] = {container = "皮奧伊州", wp = "Teresina"}, ["隆德里納"] = {container = "巴拉那州", wp = "Londrina"}, } export.brazil_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "巴西", default_placetype = "city", default_is_city = true, data = export.brazil_cities, } export.canada_cities = { ["多倫多"] = {container = "安大略", wp = "Toronto"}, ["蒙特婁"] = {container = "魁北克", wp = "Montreal"}, ["溫哥華"] = {container = "英屬哥倫比亞", wp = "Vancouver"}, ["卡加里"] = {container = "亞伯達", wp = "Calgary"}, ["愛民頓"] = {container = "亞伯達", wp = "Edmonton"}, ["渥太華"] = {container = "安大略", wp = "Ottawa"}, ["魁北克城"] = {container = "魁北克", wp = "Quebec City"}, ["溫尼伯"] = {container = "馬尼托巴", wp = "Winnipeg"}, ["漢密爾頓"] = {container = "安大略", wp = "Hamilton, Ontario"}, } export.canada_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "加拿大", default_placetype = "city", default_is_city = true, data = export.canada_cities, } export.france_cities = { ["巴黎"] = {container = "法蘭西島大區", wp = "Paris"}, ["里昂"] = {container = "奧弗涅-隆河-阿爾卑斯大區", wp = "Lyon"}, ["馬賽"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Marseille"}, ["里爾"] = {container = "上法蘭西大區", wp = "Lille"}, ["波爾多"] = {container = "新阿基坦大區", wp = "Bordeaux"}, ["圖盧茲"] = {container = "奧克西塔尼大區", wp = "Toulouse"}, ["尼斯"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Nice"}, ["南特"] = {container = "盧瓦爾河地區大區", wp = "Nantes"}, ["史特拉斯堡"] = {container = "大東部大區", wp = "Strasbourg"}, ["雷恩"] = {container = "布列塔尼大區", wp = "Rennes"}, } export.france_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "法國", default_placetype = "city", default_is_city = true, data = export.france_cities, } export.germany_cities = { ["科隆"] = {container = "北萊茵-威斯特法倫", wp = "Cologne"}, ["杜塞爾多夫"] = {container = "北萊茵-威斯特法倫", wp = "Düsseldorf"}, ["多特蒙德"] = {container = "北萊茵-威斯特法倫", wp = "Dortmund"}, ["埃森"] = {container = "北萊茵-威斯特法倫", wp = "Essen"}, ["柏林"] = {wp = "Berlin"}, ["法蘭克福"] = {container = "黑森", wp = "Frankfurt"}, ["漢堡"] = {wp = "Hamburg"}, ["慕尼黑"] = {container = "巴伐利亞", wp = "Munich"}, ["斯圖加特"] = {container = "巴登-符騰堡", wp = "Stuttgart"}, ["曼海姆"] = {container = "巴登-符騰堡", wp = "Mannheim"}, ["紐倫堡"] = {container = "巴伐利亞", wp = "Nuremberg"}, ["漢諾威"] = {container = "下薩克森", wp = "Hanover"}, ["比勒費爾德"] = {container = "北萊茵-威斯特法倫", wp = "Bielefeld"}, ["萊比錫"] = {container = "薩克森", wp = "Leipzig"}, ["亞琛"] = {container = "北萊茵-威斯特法倫", wp = "Aachen"}, ["不來梅"] = {wp = "Bremen"}, } export.germany_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "德國", default_placetype = "city", default_is_city = true, data = export.germany_cities, } export.india_cities = { ["德里"] = {container = {key = "德里", placetype = "union territory"}, wp = "Delhi"}, ["孟買"] = {container = "馬哈拉施特拉邦", wp = "Mumbai"}, ["加爾各答"] = {container = "西孟加拉邦", wp = "Kolkata"}, ["班加羅爾"] = {container = "卡納塔克邦", wp = "Bengaluru"}, ["金奈"] = {container = "泰米爾納德邦", wp = "Chennai"}, ["海德拉巴"] = {container = "特倫甘納邦", wp = "Hyderabad"}, ["艾哈邁達巴德"] = {container = "古吉拉特邦", wp = "Ahmedabad"}, ["浦那"] = {container = "馬哈拉施特拉邦", wp = "Pune"}, ["蘇拉特"] = {container = "古吉拉特邦", wp = "Surat"}, ["勒克瑙"] = {container = "北方邦", wp = "Lucknow"}, ["齋浦爾"] = {container = "拉賈斯坦邦", wp = "Jaipur"}, ["坎普爾"] = {container = "北方邦", wp = "Kanpur"}, ["那格浦爾"] = {container = "馬哈拉施特拉邦", wp = "Nagpur"}, ["巴特那"] = {container = "比哈爾邦", wp = "Patna"}, ["瓦拉納西"] = {container = "北方邦", wp = "Varanasi"}, ["印多爾"] = {container = "中央邦", wp = "Indore"}, ["博帕爾"] = {container = "中央邦", wp = "Bhopal"}, ["阿格拉"] = {container = "北方邦", wp = "Agra"}, ["科欽"] = {container = "喀拉拉邦", wp = "Kochi"}, ["維沙卡帕特南"] = {container = "安得拉邦", wp = "Visakhapatnam"}, ["齋普爾"] = {alias_of = "齋浦爾"}, } export.india_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "印度", default_placetype = "city", default_is_city = true, data = export.india_cities, } export.indonesia_cities = { ["雅加達"] = {container = "雅加達首都特區", wp = "Jakarta"}, ["泗水"] = {container = "東爪哇省", wp = "Surabaya"}, ["勿加泗"] = {container = "西爪哇省", wp = "Bekasi"}, ["萬隆"] = {container = "西爪哇省", wp = "Bandung"}, ["棉蘭"] = {container = "北蘇門答臘省", wp = "Medan"}, ["德波"] = {container = "西爪哇省", wp = "Depok"}, ["萬丹市"] = {container = "萬丹省", wp = "Tangerang"}, ["巨港"] = {container = "南蘇門答臘省", wp = "Palembang"}, ["三寶壟"] = {container = "中爪哇省", wp = "Semarang"}, ["望加錫"] = {container = "南蘇拉威西省", wp = "Makassar"}, ["武端"] = {container = "廖內群島省", wp = "Batam"}, ["茂物"] = {container = "西爪哇省", wp = "Bogor"}, ["北干巴魯"] = {container = "廖內省", wp = "Pekanbaru"}, ["班達爾楠榜"] = {container = "楠榜省", wp = "Bandar Lampung"}, ["巴東"] = {container = "西蘇門答臘省", wp = "Padang"}, ["薩馬林達"] = {container = "東加里曼丹省", wp = "Samarinda"}, ["瑪琅"] = {container = "東爪哇省", wp = "Malang"}, ["日惹"] = {container = "日惹特區", wp = "Yogyakarta"}, ["登巴薩"] = {container = "峇里省", wp = "Denpasar"}, ["哲勒貢"] = {container = "西爪哇省", wp = "Cirebon"}, ["梭羅"] = {container = "中爪哇省", wp = "Surakarta"}, ["馬辰"] = {container = "南加里曼丹省", wp = "Banjarmasin"}, ["打橫"] = {container = "西爪哇省", wp = "Tasikmalaya"}, } export.indonesia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "印度尼西亞", default_placetype = "city", default_is_city = true, data = export.indonesia_cities, } export.italy_cities = { ["米蘭"] = {container = "倫巴第", wp = "Milan"}, ["那不勒斯"] = {container = "坎帕尼亞", wp = "Naples"}, ["羅馬"] = {container = "拉齊奧", wp = "Rome"}, ["都靈"] = {container = "皮埃蒙特", wp = "Turin"}, ["威尼斯"] = {container = "威尼托", wp = "Venice"}, ["佛羅倫斯"] = {container = "托斯卡納", wp = "Florence"}, ["巴里"] = {container = "普利亞", wp = "Bari"}, ["巴勒莫"] = {container = "西西里", wp = "Palermo"}, ["卡塔尼亞"] = {container = "西西里", wp = "Catania"}, ["布雷西亞"] = {container = "倫巴第", wp = "Brescia"}, ["熱那亞"] = {container = "利古里亞", wp = "Genoa"}, } export.italy_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "意大利", default_placetype = "city", default_is_city = true, data = export.italy_cities, } export.japan_cities = { ["東京"] = {keydesc = "[[東京]]都會區,[[日本]]的[[首都]]和[[都]]級行政區", placetype = {"city", "prefecture"}, divs = { {type = "special wards", container_parent_type = false}, {type = "cities", prep = "in"}, }, }, ["橫濱"] = {container = "神奈川縣", wp = "Yokohama"}, ["大阪"] = {container = "大阪府", wp = "Osaka"}, ["名古屋"] = {container = "愛知縣", wp = "Nagoya"}, ["札幌"] = {container = "北海道", wp = "Sapporo"}, ["福岡"] = {container = "福岡縣", wp = "Fukuoka"}, ["神戶"] = {container = "兵庫縣", wp = "Kobe"}, ["京都"] = {container = "京都府", wp = "Kyoto"}, ["川崎"] = {container = "神奈川縣", wp = "Kawasaki, Kanagawa"}, ["廣島"] = {container = "廣島縣", wp = "Hiroshima"}, ["仙台"] = {container = "宮城縣", wp = "Sendai"}, ["北九州"] = {container = "福岡縣", wp = "Kitakyushu"}, ["新潟"] = {container = "新潟縣", wp = "Niigata (city)"}, ["靜岡"] = {container = "靜岡縣", wp = "Shizuoka (city)"}, ["岡山"] = {container = "岡山縣", wp = "Okayama"}, ["熊本"] = {container = "熊本縣", wp = "Kumamoto"}, ["鹿兒島"] = {container = "鹿兒島縣", wp = "Kagoshima"}, } export.japan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "prefecture"), default_container = "日本", default_placetype = "city", default_is_city = true, data = export.japan_cities, } export.mexico_cities = { ["墨西哥城"] = {wp = "墨西哥城"}, ["蒙特雷"] = {container = "新萊昂州", wp = "Monterrey"}, ["瓜達拉哈拉"] = {container = "哈利斯科州", wp = "Guadalajara"}, ["普埃布拉市"] = {container = "普埃布拉州", wp = "Puebla (city)"}, ["托盧卡"] = {container = "墨西哥州", wp = "Toluca"}, ["蒂華納"] = {container = "下加利福尼亞州", wp = "Tijuana"}, ["萊昂"] = {container = "瓜納華托州", wp = "León, Guanajuato"}, ["克雷塔羅市"] = {container = "克雷塔羅州", wp = "Querétaro (city)"}, ["華雷斯城"] = {container = "奇瓦瓦州", wp = "Ciudad Juárez"}, ["托雷翁"] = {container = "科阿韋拉州", wp = "Torreón"}, ["梅里達"] = {container = "尤卡坦州", wp = "Mérida, Yucatán"}, ["聖路易斯波托西市"] = {container = "聖路易斯波托西州", wp = "San Luis Potosí (city)"}, ["阿瓜斯卡連特斯市"] = {container = "阿瓜斯卡連特斯州", wp = "Aguascalientes (city)"}, ["墨西卡利"] = {container = "下加利福尼亞州", wp = "Mexicali"}, } export.mexico_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "墨西哥", default_placetype = "city", default_is_city = true, data = export.mexico_cities, } export.nigeria_cities = { ["拉各斯"] = {container = "拉各斯州", wp = "Lagos"}, ["卡諾市"] = {container = "卡諾州", wp = "Kano (city)"}, ["伊巴丹"] = {container = "奧約州", wp = "Ibadan"}, ["阿布賈"] = {container = {key = "阿布賈聯邦首都轄區", placetype = "federal territory"}, wp = "Abuja"}, ["哈科特港"] = {container = "河流州", wp = "Port Harcourt"}, ["卡杜納市"] = {container = "卡杜納州", wp = "Kaduna (city)"}, ["貝寧城"] = {container = "埃多州", wp = "Benin City"}, ["阿巴"] = {container = "阿比亞州", wp = "Aba, Nigeria"}, ["奧尼查"] = {container = "阿南布拉州", wp = "Onitsha"}, ["邁杜古里"] = {container = "博爾諾州", wp = "Maiduguri"}, ["伊洛林"] = {container = "誇拉州", wp = "Ilorin"}, ["索科托市"] = {container = "索科托州", wp = "Sokoto (city)"}, ["喬斯"] = {container = "高原州", wp = "Jos"}, ["扎里亞"] = {container = "卡杜納州", wp = "Zaria"}, ["埃努古市"] = {container = "埃努古州", wp = "Enugu (city)"}, } export.nigeria_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "奈及利亞", default_placetype = "city", default_is_city = true, data = export.nigeria_cities, } export.pakistan_cities = { ["卡拉奇"] = {container = "信德省", wp = "Karachi"}, ["拉合爾"] = {container = "旁遮普省(巴基斯坦)", wp = "Lahore"}, ["拉瓦爾品第"] = {container = "旁遮普省(巴基斯坦)", wp = "Rawalpindi"}, ["伊斯蘭馬巴德"] = {container = {key = "伊斯蘭馬巴德首都直轄區", placetype = "federal territory"}, wp = "Islamabad"}, ["費薩拉巴德"] = {container = "旁遮普省(巴基斯坦)", wp = "Faisalabad"}, ["古傑蘭瓦拉"] = {container = "旁遮普省(巴基斯坦)", wp = "Gujranwala"}, ["海德拉巴(巴基斯坦)"] = {container = "信德省", wp = "Hyderabad, Pakistan"}, ["木爾坦"] = {container = "旁遮普省(巴基斯坦)", wp = "Multan"}, ["白沙瓦"] = {container = "開伯爾-普赫圖赫瓦省", wp = "Peshawar"}, ["奎達"] = {container = "俾路支省", wp = "Quetta"}, ["薩戈達"] = {container = "旁遮普省(巴基斯坦)", wp = "Sargodha"}, ["錫亞爾科特"] = {container = "旁遮普省(巴基斯坦)", wp = "Sialkot"}, } export.pakistan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "巴基斯坦", default_placetype = "city", default_is_city = true, data = export.pakistan_cities, } export.philippines_cities = { ["奎松市"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Quezon City"}, ["馬尼拉"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Manila"}, ["達沃市"] = {container = "南達沃省", wp = "Davao City"}, ["卡洛坎"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Caloocan"}, ["三寶顏市"] = {container = "南三寶顏省", wp = "Zamboanga City"}, ["宿霧市"] = {container = "宿霧省", wp = "Cebu City"}, ["安蒂波洛"] = {container = "黎剎省", wp = "Antipolo"}, ["卡加延德奧羅"] = {container = "東米薩米斯省", wp = "Cagayan de Oro"}, ["達斯馬里尼亞斯"] = {container = "甲米地省", wp = "Dasmariñas"}, ["棉蘭老將軍城"] = {container = "南哥打巴托省", wp = "General Santos"}, ["聖何塞德爾蒙特"] = {container = "布拉干省", wp = "San Jose del Monte"}, ["巴科洛德"] = {container = "西內格羅斯省", wp = "Bacolod"}, ["卡蘭巴"] = {container = "拉古納省", wp = "Calamba, Laguna"}, ["天使城"] = {container = "邦板牙省", wp = "Angeles City"}, ["伊洛伊洛市"] = {container = "伊洛伊洛省", wp = "Iloilo City"}, } export.philippines_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "菲律賓", default_placetype = "city", default_is_city = true, data = export.philippines_cities, } export.russia_cities = { ["莫斯科"] = {wp = "Moscow"}, ["聖彼得堡"] = {wp = "Saint Petersburg"}, ["新西伯利亞"] = {container = "新西伯利亞州", wp = "Novosibirsk"}, ["葉卡捷琳堡"] = {container = "斯維爾德洛夫斯克州", wp = "Yekaterinburg"}, ["下諾夫哥羅德"] = {container = "下諾夫哥羅德州", wp = "Nizhny Novgorod"}, ["喀山"] = {container = {key = "韃靼斯坦共和國", placetype = "republic"}, wp = "Kazan"}, ["車裡雅賓斯克市"] = {container = "車裡雅賓斯克州", wp = "Chelyabinsk"}, ["頓河畔羅斯托夫"] = {container = "羅斯托夫州", wp = "Rostov-on-Don"}, ["克拉斯諾達爾市"] = {container = {key = "克拉斯諾達爾邊疆區", placetype = "krai"}, wp = "Krasnodar"}, ["薩馬拉市"] = {container = "薩馬拉州", wp = "Samara"}, ["克拉斯諾亞爾斯克市"] = {container = {key = "克拉斯諾亞爾斯克邊疆區", placetype = "krai"}, wp = "Krasnoyarsk"}, ["烏法"] = {container = {key = "巴什科爾托斯坦共和國", placetype = "republic"}, wp = "Ufa"}, ["薩拉托夫市"] = {container = "薩拉托夫州", wp = "Saratov"}, ["鄂木斯克市"] = {container = "鄂木斯克州", wp = "Omsk"}, ["沃羅涅日市"] = {container = "沃羅涅日州", wp = "Voronezh"}, ["伏爾加格勒市"] = {container = "伏爾加格勒州", wp = "Volgograd"}, ["彼爾姆市"] = {container = {key = "彼爾姆邊疆區", placetype = "krai"}, wp = "Perm, Russia"}, } export.russia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "oblast"), default_container = "俄羅斯", default_placetype = "city", default_is_city = true, data = export.russia_cities, } export.saudi_arabia_cities = { ["利雅得"] = {container = "利雅得省", wp = "Riyadh"}, ["吉達"] = {container = "麥加省", wp = "Jeddah"}, ["達曼"] = {container = "東部省(沙特)", wp = "Dammam"}, ["麥加"] = {container = "麥加省", wp = "Mecca"}, ["麥地那"] = {container = "麥地那省", wp = "Medina"}, ["霍夫夫"] = {container = "東部省(沙特)", wp = "Hofuf"}, ["哈米斯穆沙伊特"] = {container = "阿西爾省", wp = "Khamis Mushait"}, } export.saudi_arabia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "沙烏地阿拉伯", default_placetype = "city", default_is_city = true, data = export.saudi_arabia_cities, } export.south_korea_cities = { ["首爾"] = {wp = "Seoul"}, ["釜山"] = {wp = "Busan"}, ["仁川"] = {wp = "Incheon"}, ["大邱"] = {wp = "Daegu"}, ["大田"] = {wp = "Daejeon"}, ["光州"] = {wp = "Gwangju"}, ["蔚山"] = {wp = "Ulsan"}, } export.south_korea_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "南韓", default_placetype = "city", default_is_city = true, data = export.south_korea_cities, } export.spain_cities = { ["馬德里"] = {container = "馬德里自治區", wp = "Madrid"}, ["巴塞羅那"] = {container = "加泰羅尼亞", wp = "Barcelona"}, ["瓦倫西亞"] = {container = "巴倫西亞", wp = "Valencia"}, ["塞維利亞"] = {container = "安達盧西亞", wp = "Seville"}, ["畢爾包"] = {container = "巴斯克", wp = "Bilbao"}, } export.spain_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "autonomous community"), default_container = "西班牙", default_placetype = "city", default_is_city = true, data = export.spain_cities, } export.taiwan_cities = { -- Special municipalities (province-level) ["臺北市"] = {placetype = "special municipality", wp = "臺北市"}, ["新北市"] = {placetype = "special municipality", wp = "新北市"}, ["桃園市"] = {placetype = "special municipality", wp = "桃園市"}, ["臺中市"] = {placetype = "special municipality", wp = "臺中市"}, ["臺南市"] = {placetype = "special municipality", wp = "臺南市"}, ["高雄市"] = {placetype = "special municipality", wp = "高雄市"}, -- these last three are not special municipalities ["嘉義市"] = {placetype = "city", wp = "嘉義市"}, ["新竹市"] = {placetype = "city", wp = "新竹市"}, ["基隆市"] = {placetype = "city", wp = "基隆市"}, } export.taiwan_cities_group = { key_to_placename = make_key_to_placename(nil, "市$"), placename_to_key = make_placename_to_key("市"), default_container = "臺灣", default_placetype = {"special municipality", "city"}, default_is_city = true, data = export.taiwan_cities, } export.united_kingdom_cities = { ["倫敦"] = {container = {key = "大倫敦", placetype = "county"}, wp = "London"}, ["曼徹斯特"] = {container = {key = "大曼徹斯特", placetype = "county"}, wp = "Manchester"}, ["伯明翰"] = {container = {key = "西密德蘭", placetype = "county"}, wp = "Birmingham"}, ["利物浦"] = {container = {key = "默西賽德郡", placetype = "county"}, wp = "Liverpool"}, ["格拉斯哥"] = {container = {key = "Glasgow市", placetype = "council area"}, wp = "Glasgow"}, ["利茲"] = {container = {key = "西約克郡", placetype = "county"}, wp = "Leeds"}, ["布里斯托"] = {container = {key = "英格蘭", placetype = "constituent country"}, wp = "Bristol"}, ["卡地夫"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Cardiff"}, ["愛丁堡"] = {container = {key = "Edinburgh市", placetype = "council area"}, wp = "Edinburgh"}, ["斯旺西"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Swansea"}, ["紐波特"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Newport, Wales"}, } export.united_kingdom_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "county"), default_container = "英國", default_placetype = "city", default_is_city = true, data = export.united_kingdom_cities, } export.united_states_cities = { ["紐約市"] = {container = "紐約", wp = "New York City"}, ["洛杉磯"] = {container = "加利福尼亞", wp = "Los Angeles"}, ["芝加哥"] = {container = "伊利諾伊", wp = "Chicago"}, ["華盛頓特區"] = {wp = "Washington, D.C."}, ["巴爾的摩"] = {container = "馬里蘭", wp = "Baltimore"}, ["聖荷西"] = {container = "加利福尼亞", wp = "San Jose, California"}, ["舊金山"] = {container = "加利福尼亞", wp = "San Francisco"}, ["波士頓"] = {container = "麻薩諸塞", wp = "Boston"}, ["達拉斯"] = {container = "德克薩斯", wp = "Dallas"}, ["費城"] = {container = "賓夕法尼亞", wp = "Philadelphia"}, ["休士頓"] = {container = "德克薩斯", wp = "Houston"}, ["邁阿密"] = {container = "佛羅里達", wp = "Miami"}, ["亞特蘭大"] = {container = "喬治亞", wp = "Atlanta"}, ["底特律"] = {container = "密西根", wp = "Detroit"}, ["鳳凰城"] = {container = "亞利桑那", wp = "Phoenix"}, ["西雅圖"] = {container = "華盛頓州", wp = "Seattle"}, ["明尼阿波利斯"] = {container = "明尼蘇達", wp = "Minneapolis"}, ["克里夫蘭"] = {container = "俄亥俄", wp = "Cleveland"}, ["丹佛"] = {container = "科羅拉多", wp = "Denver"}, ["聖地牙哥(美國)"] = {container = "加利福尼亞", wp = "San Diego"}, ["波特蘭(俄勒岡)"] = {container = "俄勒岡", wp = "Portland"}, ["聖路易斯"] = {container = "密蘇里", wp = "St. Louis"}, ["夏洛特"] = {container = "北卡羅來納", wp = "Charlotte"}, ["薩克拉門托"] = {container = "加利福尼亞", wp = "Sacramento"}, ["匹茲堡"] = {container = "賓夕法尼亞", wp = "Pittsburgh"}, ["鹽湖城"] = {container = "猶他", wp = "Salt Lake City"}, ["聖安東尼奧"] = {container = "德克薩斯", wp = "San Antonio"}, ["哥倫布"] = {container = "俄亥俄", wp = "Columbus"}, ["堪薩斯城"] = {container = "密蘇里", wp = "Kansas City metropolitan area"}, ["印第安納波利斯"] = {container = "印第安納", wp = "Indianapolis"}, ["拉斯維加斯"] = {container = "內華達", wp = "Las Vegas"}, ["辛辛那提"] = {container = "俄亥俄", wp = "Cincinnati"}, ["奧斯汀"] = {container = "德克薩斯", wp = "Austin"}, ["密爾沃基"] = {container = "威斯康辛", wp = "Milwaukee"}, ["羅利"] = {container = "北卡羅來納", wp = "Raleigh"}, ["納什維爾"] = {container = "田納西", wp = "Nashville"}, ["傑克遜維爾"] = {container = "佛羅里達", wp = "Jacksonville"}, ["新奧爾良"] = {container = "路易斯安那", wp = "New Orleans"}, ["路易斯維爾"] = {container = "肯塔基", wp = "Louisville"}, ["奧克拉荷馬城"] = {container = "奧克拉荷馬", wp = "Oklahoma City"}, ["孟菲斯"] = {container = "田納西", wp = "Memphis"}, ["伯明翰(美國)"] = {container = "阿拉巴馬", wp = "Birmingham, Alabama"}, ["弗雷斯諾"] = {container = "加利福尼亞", wp = "Fresno"}, ["里奇蒙"] = {container = "弗吉尼亞", wp = "Richmond"}, ["水牛城"] = {container = "紐約", wp = "Buffalo"}, ["艾爾帕索"] = {container = "德克薩斯", wp = "El Paso"}, ["阿爾伯克基"] = {container = "新墨西哥", wp = "Albuquerque"}, ["塔森"] = {container = "亞利桑那", wp = "Tucson"}, ["科羅拉多斯普林斯"] = {container = "科羅拉多", wp = "Colorado Springs"}, ["奧馬哈"] = {container = "內布拉斯加", wp = "Omaha"}, ["塔爾薩"] = {container = "奧克拉荷馬", wp = "Tulsa"}, } export.united_states_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "美國", default_placetype = "city", default_is_city = true, data = export.united_states_cities, } export.vietnam_cities = { ["胡志明市"] = {wp = "Ho Chi Minh City"}, ["西貢"] = {alias_of = "胡志明市"}, ["河內"] = {wp = "Hanoi"}, ["峴港"] = {wp = "Da Nang"}, ["海防"] = {wp = "Haiphong"}, ["邊和"] = {container = "同奈省", wp = "Biên Hòa", placetype = "city"}, ["芹苴"] = {wp = "Cần Thơ"}, ["順化"] = {wp = "Huế"}, } export.vietnam_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "越南", default_placetype = {"municipality", "city"}, default_is_city = true, data = export.vietnam_cities, } ----------------------------------------------------------------------------------- -- locations list -- ----------------------------------------------------------------------------------- export.locations = { export.continents_group, export.countries_group, export.country_like_entities_group, export.former_countries_group, export.united_states_group, export.united_kingdom_group, export.scotland_group, export.england_group, export.northern_ireland_group, export.ireland_group, export.wales_group, export.china_group, export.china_prefecture_level_cities_group, export.taiwan_group, export.canada_group, export.australia_group, export.india_group, export.japan_group, export.brazil_group, export.france_group, export.france_departments_group, export.germany_group, export.italy_group, export.spain_group, export.austria_group, export.bangladesh_group, export.egypt_group, export.finland_group, export.greece_group, export.indonesia_group, export.lebanon_group, export.malaysia_group, export.malta_group, export.mexico_group, export.moldova_group, export.morocco_group, export.netherlands_group, export.new_zealand_group, export.norway_group, export.pakistan_group, export.philippines_group, export.poland_group, export.portugal_group, export.romania_group, export.bulgaria_group, export.iran_group, export.russia_group, export.saudi_arabia_group, export.south_africa_group, export.laos_group, export.north_korea_group, export.south_korea_group, export.thailand_group, export.turkey_group, export.ukraine_group, export.vietnam_group, export.nigeria_group, export.new_york_boroughs_group, export.australia_cities_group, export.brazil_cities_group, export.canada_cities_group, export.france_cities_group, export.germany_cities_group, export.india_cities_group, export.indonesia_cities_group, export.italy_cities_group, export.japan_cities_group, export.mexico_cities_group, export.nigeria_cities_group, export.pakistan_cities_group, export.philippines_cities_group, export.russia_cities_group, export.saudi_arabia_cities_group, export.south_korea_cities_group, export.spain_cities_group, export.taiwan_cities_group, export.united_kingdom_cities_group, export.united_states_cities_group, export.vietnam_cities_group, export.misc_cities_group, } return export irdrjqsz6qg3m6ttvlv8qsgbzoqze68 9759523 9759522 2026-05-14T21:16:43Z TongcyDai 53191 9759523 Scribunto text/plain local export = {} export.force_cat = false local m_table = require("Module:table") local insert = table.insert local concat = table.concat local dump = mw.dumpObject local unpack = unpack or table.unpack --[==[ Chinese Wiktionary localization of [[Module:place/locations]]. All canonical location keys are in Chinese, matching what editors write in holonym parameters (e.g. {{place|zh|城市|s/中央邦|c/印度}}). English Wikipedia article names are stored in the `wp` field for cross-reference. The `the`, `british_spelling` and English-suffix-detection fields from enwikt are omitted as they are not applicable in Chinese. The helper functions (process_error through construct_linked_placename) are kept intact from enwikt's Module:place/locations to maintain API compatibility with Module:place/placetypes. ]==] ----------------------------------------------------------------------------------- -- Helper functions -- ----------------------------------------------------------------------------------- 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 function export.internal_error(fmt, ...) export.process_error("Internal error: " .. fmt, ...) end local internal_error = export.internal_error 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 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 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 == "country" or defcon.placetype == "constituent country") then return placename .. ", " .. defcon.key else return placename end end end 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 = "country"} 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", "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 spec.is_city = value_with_default(spec.is_city, group.default_placetype == "city") spec.initialized = true end 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 local placetype = spec.placetype or resolved_spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s", key) 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 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 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 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 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 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 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 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) -- Chinese has no articles; `the` field is unused but kept for API compatibility. return linked_placename end ----------------------------------------------------------------------------------- -- Local data helper factories -- ----------------------------------------------------------------------------------- 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 _, pat in ipairs(container_patterns) do local nsubs full_placename, nsubs = full_placename:gsub(pat, "") if nsubs > 0 then break end end end local elliptical_placename = full_placename if divtype_patterns then for _, pat in ipairs(divtype_patterns) do local nsubs elliptical_placename, nsubs = elliptical_placename:gsub(pat, "") if nsubs > 0 then break end end end return full_placename, elliptical_placename end end 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 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 -- Canonicalize a continent container key (string) to canonical container form. 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_container`", key) end ----------------------------------------------------------------------------------- -- Top-level tables -- ----------------------------------------------------------------------------------- export.continents = { ["地球"] = {placetype = "planet", addl_parents = {"nature"}, fulldesc = "=the planet [[Earth]] and the features found on it", wp = "地球"}, ["非洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "非洲"}, ["美洲"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "美洲"}, ["北美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "北美洲"}, ["加勒比地區"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "加勒比地區"}, ["中美洲"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "中美洲"}, ["南美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "南美洲"}, ["南極洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, fulldesc = "=the territory of [[Antarctica]]", wp = "南極洲"}, ["歐亞大陸"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "歐亞大陸"}, ["亞洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "亞洲"}, ["歐洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "歐洲"}, ["大洋洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "大洋洲"}, ["美拉尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "美拉尼西亞"}, ["密克羅尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "密克羅尼西亞"}, ["玻里尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "玻里尼西亞"}, } export.continents_group = { default_overriding_bare_label_parents = {}, default_divs = {{type = "countries", prep = "in"}}, 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, default_no_check_holonym_mismatch = true, data = export.continents, } export.countries = { -- Africa ["阿爾及利亞"] = {container = "非洲", divs = {"provinces", "communes", "districts"}, wp = "阿爾及利亞"}, ["安哥拉"] = {container = "非洲", divs = {"provinces", "municipalities"}, wp = "安哥拉"}, ["貝寧"] = {container = "非洲", wp = "貝寧"}, ["貝南"] = {alias_of = "貝寧"}, ["博茨瓦納"] = {container = "非洲", wp = "博茨瓦納"}, ["波札那"] = {alias_of = "博茨瓦納"}, ["布基納法索"] = {container = "非洲", wp = "布基納法索"}, ["布吉納法索"] = {alias_of = "布基納法索"}, ["布隆迪"] = {container = "非洲", wp = "布隆迪"}, ["蒲隆地"] = {alias_of = "布隆迪"}, ["佛得角"] = {container = "非洲", wp = "佛得角"}, ["維德角"] = {alias_of = "佛得角"}, ["中非共和國"] = {container = "非洲", wp = "中非共和國"}, ["乍得"] = {container = "非洲", wp = "乍得"}, ["查德"] = {alias_of = "乍得"}, ["科摩羅"] = {container = "非洲", wp = "科摩羅"}, ["葛摩"] = {alias_of = "科摩羅"}, ["剛果共和國"] = {container = "非洲", wp = "剛果共和國"}, ["剛果(布)"] = {alias_of = "剛果共和國"}, ["剛果民主共和國"] = {container = "非洲", divs = {"provinces"}, wp = "剛果民主共和國"}, ["剛果(金)"] = {alias_of = "剛果民主共和國"}, ["吉布提"] = {container = "非洲", wp = "吉布提"}, ["吉布地"] = {alias_of = "吉布提"}, ["埃及"] = {container = "非洲", divs = {"governorates"}, wp = "埃及"}, ["赤道幾內亞"] = {container = "非洲", wp = "赤道幾內亞"}, ["厄立特里亞"] = {container = "非洲", wp = "厄立特里亞"}, ["厄利垂亞"] = {alias_of = "厄立特里亞"}, ["斯威士蘭"] = {container = "非洲", wp = "斯威士蘭"}, ["史瓦帝尼"] = {alias_of = "斯威士蘭"}, ["埃塞俄比亞"] = {container = "非洲", divs = {"regions"}, wp = "埃塞俄比亞"}, ["衣索比亞"] = {alias_of = "埃塞俄比亞"}, ["加蓬"] = {container = "非洲", wp = "加蓬"}, ["加彭"] = {alias_of = "加蓬"}, ["岡比亞"] = {container = "非洲", wp = "岡比亞"}, ["甘比亞"] = {alias_of = "岡比亞"}, ["加納"] = {container = "非洲", wp = "加納"}, ["迦納"] = {alias_of = "加納"}, ["幾內亞"] = {container = "非洲", wp = "幾內亞"}, ["幾內亞比紹"] = {container = "非洲", wp = "幾內亞比紹"}, ["幾內亞比索"] = {alias_of = "幾內亞比紹"}, ["科特迪瓦"] = {container = "非洲", wp = "科特迪瓦"}, ["象牙海岸"] = {alias_of = "科特迪瓦"}, ["肯尼亞"] = {container = "非洲", divs = {"counties"}, wp = "肯尼亞"}, ["肯亞"] = {alias_of = "肯尼亞"}, ["萊索托"] = {container = "非洲", wp = "萊索托"}, ["賴索托"] = {alias_of = "萊索托"}, ["利比里亞"] = {container = "非洲", wp = "利比里亞"}, ["賴比瑞亞"] = {alias_of = "利比里亞"}, ["利比亞"] = {container = "非洲", wp = "利比亞"}, ["馬達加斯加"] = {container = "非洲", wp = "馬達加斯加"}, ["馬拉維"] = {container = "非洲", wp = "馬拉維"}, ["馬拉威"] = {alias_of = "馬拉維"}, ["馬里"] = {container = "非洲", wp = "馬里"}, ["馬利"] = {alias_of = "馬里"}, ["毛里塔尼亞"] = {container = "非洲", wp = "毛里塔尼亞"}, ["茅利塔尼亞"] = {alias_of = "毛里塔尼亞"}, ["毛里求斯"] = {container = "非洲", wp = "毛里求斯"}, ["模里西斯"] = {alias_of = "毛里求斯"}, ["摩洛哥"] = {container = "非洲", wp = "摩洛哥"}, ["莫桑比克"] = {container = "非洲", wp = "莫桑比克"}, ["莫三比克"] = {alias_of = "莫桑比克"}, ["納米比亞"] = {container = "非洲", wp = "納米比亞"}, ["尼日爾"] = {container = "非洲", wp = "尼日爾"}, ["尼日"] = {alias_of = "尼日爾"}, ["尼日利亞"] = {container = "非洲", divs = { {type = "states", cat_as = "states and FCT"}, "local government areas", }, wp = "尼日利亞"}, ["奈及利亞"] = {alias_of = "尼日利亞"}, ["盧旺達"] = {container = "非洲", wp = "盧旺達"}, ["盧安達"] = {alias_of = "盧旺達"}, ["聖多美和普林西比"] = {container = "非洲", wp = "聖多美和普林西比"}, ["塞內加爾"] = {container = "非洲", wp = "塞內加爾"}, ["塞舌爾"] = {container = "非洲", wp = "塞舌爾"}, ["塞席爾"] = {alias_of = "塞舌爾"}, ["塞拉利昂"] = {container = "非洲", wp = "塞拉利昂"}, ["獅子山"] = {alias_of = "塞拉利昂"}, ["索馬里"] = {container = "非洲", wp = "索馬里"}, ["索馬利亞"] = {alias_of = "索馬里"}, ["南非"] = {container = "非洲", divs = {"provinces"}, wp = "南非"}, ["南蘇丹"] = {container = "非洲", wp = "南蘇丹"}, ["蘇丹"] = {container = "非洲", wp = "蘇丹"}, ["坦桑尼亞"] = {container = "非洲", wp = "坦桑尼亞"}, ["坦尚尼亞"] = {alias_of = "坦桑尼亞"}, ["多哥"] = {container = "非洲", wp = "多哥"}, ["突尼斯"] = {container = "非洲", wp = "突尼斯"}, ["突尼西亞"] = {alias_of = "突尼斯"}, ["烏干達"] = {container = "非洲", wp = "烏干達"}, ["贊比亞"] = {container = "非洲", wp = "贊比亞"}, ["尚比亞"] = {alias_of = "贊比亞"}, ["津巴布韋"] = {container = "非洲", wp = "津巴布韋"}, ["辛巴威"] = {alias_of = "津巴布韋"}, -- Asia ["阿富汗"] = {container = "亞洲", wp = "阿富汗"}, ["亞美尼亞"] = {container = {"歐洲", "亞洲"}, wp = "亞美尼亞"}, ["阿塞拜疆"] = {container = {"歐洲", "亞洲"}, wp = "阿塞拜疆"}, ["亞塞拜然"] = {alias_of = "阿塞拜疆"}, ["巴林"] = {container = "亞洲", wp = "巴林"}, ["孟加拉國"] = {container = "亞洲", divs = {"divisions", "districts"}, wp = "孟加拉國"}, ["孟加拉"] = {alias_of = "孟加拉國"}, ["不丹"] = {container = "亞洲", wp = "不丹"}, ["文萊"] = {container = "亞洲", wp = "文萊"}, ["汶萊"] = {alias_of = "文萊"}, ["柬埔寨"] = {container = "亞洲", wp = "柬埔寨"}, ["中國"] = {container = "亞洲", divs = { {type = "provinces", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "autonomous regions", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "direct-administered municipalities", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "special administrative regions", cat_as = "special administrative regions"}, }, wp = "中國"}, ["東帝汶"] = {container = "亞洲", wp = "東帝汶"}, ["帝汶島"] = {alias_of = "東帝汶"}, ["印度"] = {container = "亞洲", divs = { {type = "states", cat_as = "states and union territories"}, {type = "union territories", cat_as = "states and union territories"}, }, wp = "印度"}, ["印度尼西亞"] = {container = "亞洲", divs = {"provinces"}, wp = "印度尼西亞"}, ["印尼"] = {alias_of = "印度尼西亞"}, ["伊朗"] = {container = "亞洲", wp = "伊朗"}, ["伊拉克"] = {container = "亞洲", wp = "伊拉克"}, ["以色列"] = {container = "亞洲", wp = "以色列"}, ["日本"] = {container = "亞洲", divs = {"prefectures"}, wp = "日本"}, ["約旦"] = {container = "亞洲", wp = "約旦"}, ["哈薩克斯坦"] = {container = {"歐洲", "亞洲"}, wp = "哈薩克斯坦"}, ["哈薩克"] = {alias_of = "哈薩克斯坦"}, ["朝鮮"] = {container = "亞洲", wp = "朝鮮民主主義人民共和國"}, ["北韓"] = {alias_of = "朝鮮"}, ["韓國"] = {container = "亞洲", divs = {"provinces", "special cities", "metropolitan cities"}, wp = "韓國"}, ["南韓"] = {alias_of = "韓國"}, ["科威特"] = {container = "亞洲", wp = "科威特"}, ["吉爾吉斯斯坦"] = {container = "亞洲", wp = "吉爾吉斯斯坦"}, ["吉爾吉斯"] = {alias_of = "吉爾吉斯斯坦"}, ["老撾"] = {container = "亞洲", wp = "老撾"}, ["寮國"] = {alias_of = "老撾"}, ["黎巴嫩"] = {container = "亞洲", wp = "黎巴嫩"}, ["馬來西亞"] = {container = "亞洲", divs = {"states"}, wp = "馬來西亞"}, ["馬爾代夫"] = {container = "亞洲", wp = "馬爾代夫"}, ["馬爾地夫"] = {alias_of = "馬爾代夫"}, ["蒙古"] = {container = "亞洲", wp = "蒙古"}, ["緬甸"] = {container = "亞洲", wp = "緬甸"}, ["尼泊爾"] = {container = "亞洲", wp = "尼泊爾"}, ["阿曼"] = {container = "亞洲", wp = "阿曼"}, ["巴基斯坦"] = {container = "亞洲", divs = {"provinces"}, wp = "巴基斯坦"}, ["菲律賓"] = {container = "亞洲", divs = {"regions"}, wp = "菲律賓"}, ["卡塔爾"] = {container = "亞洲", wp = "卡塔爾"}, ["卡達"] = {alias_of = "卡塔爾"}, ["俄羅斯"] = {container = {"歐洲", "亞洲"}, divs = {"federal subjects"}, wp = "俄羅斯"}, ["俄國"] = {alias_of = "俄羅斯"}, ["沙特阿拉伯"] = {container = "亞洲", wp = "沙特阿拉伯"}, ["沙烏地阿拉伯"] = {alias_of = "沙特阿拉伯"}, ["新加坡"] = {container = "亞洲", is_city = true, wp = "新加坡"}, ["斯里蘭卡"] = {container = "亞洲", wp = "斯里蘭卡"}, ["敘利亞"] = {container = "亞洲", wp = "敘利亞"}, ["臺灣"] = {container = "亞洲", divs = { "special municipalities", "counties", }, wp = "臺灣"}, ["台灣"] = {alias_of = "臺灣"}, ["塔吉克斯坦"] = {container = "亞洲", wp = "塔吉克斯坦"}, ["塔吉克"] = {alias_of = "塔吉克斯坦"}, ["泰國"] = {container = "亞洲", divs = {"provinces"}, wp = "泰國"}, ["土耳其"] = {container = {"歐洲", "亞洲"}, wp = "土耳其"}, ["土庫曼斯坦"] = {container = "亞洲", wp = "土庫曼斯坦"}, ["土庫曼"] = {alias_of = "土庫曼斯坦"}, ["阿拉伯聯合酋長國"] = {container = "亞洲", wp = "阿拉伯聯合酋長國"}, ["阿拉伯聯合大公國"] = {alias_of = "阿拉伯聯合酋長國"}, ["阿聯酋"] = {alias_of = "阿拉伯聯合酋長國"}, ["烏茲別克斯坦"] = {container = "亞洲", wp = "烏茲別克斯坦"}, ["烏茲別克"] = {alias_of = "烏茲別克斯坦"}, ["越南"] = {container = "亞洲", divs = {"provinces", "municipalities"}, wp = "越南"}, ["也門"] = {container = "亞洲", wp = "也門"}, ["葉門"] = {alias_of = "也門"}, -- Europe ["阿爾巴尼亞"] = {container = "歐洲", wp = "阿爾巴尼亞"}, ["安道爾"] = {container = "歐洲", wp = "安道爾"}, ["奧地利"] = {container = "歐洲", divs = {"states"}, wp = "奧地利"}, ["白俄羅斯"] = {container = "歐洲", divs = {"regions"}, wp = "白俄羅斯"}, ["比利時"] = {container = "歐洲", divs = {"regions", "provinces"}, wp = "比利時"}, ["波斯尼亞和黑塞哥維那"] = {container = "歐洲", wp = "波斯尼亞和黑塞哥維那"}, ["波士尼亞與赫塞哥維納"] = {alias_of = "波斯尼亞和黑塞哥維那"}, ["保加利亞"] = {container = "歐洲", wp = "保加利亞"}, ["克羅地亞"] = {container = "歐洲", wp = "克羅地亞"}, ["克羅埃西亞"] = {alias_of = "克羅地亞"}, ["塞浦路斯"] = {container = "亞洲", addl_parents = {"歐洲"}, wp = "塞浦路斯"}, ["賽普勒斯"] = {alias_of = "塞浦路斯"}, ["捷克"] = {container = "歐洲", wp = "捷克"}, ["丹麥"] = {container = "歐洲", wp = "丹麥"}, ["愛沙尼亞"] = {container = "歐洲", wp = "愛沙尼亞"}, ["芬蘭"] = {container = "歐洲", divs = {"regions"}, wp = "芬蘭"}, ["法國"] = {container = "歐洲", divs = { {type = "regions", cat_as = "metropolitan regions"}, "departments", "communes", }, wp = "法國"}, ["格魯吉亞"] = {container = {"歐洲", "亞洲"}, wp = "格魯吉亞"}, ["喬治亞"] = {alias_of = "格魯吉亞"}, ["德國"] = {container = "歐洲", divs = {"states"}, wp = "德國"}, ["希臘"] = {container = "歐洲", divs = {"regions"}, wp = "希臘"}, ["匈牙利"] = {container = "歐洲", wp = "匈牙利"}, ["冰島"] = {container = "歐洲", wp = "冰島"}, ["愛爾蘭"] = {container = "歐洲", divs = {"provinces", "counties"}, wp = "愛爾蘭"}, ["意大利"] = {container = "歐洲", divs = {"regions"}, wp = "意大利"}, ["義大利"] = {alias_of = "意大利"}, ["科索沃"] = {container = "歐洲", wp = "科索沃"}, ["拉脫維亞"] = {container = "歐洲", wp = "拉脫維亞"}, ["拉托維亞"] = {alias_of = "拉脫維亞"}, ["列支敦士登"] = {container = "歐洲", wp = "列支敦士登"}, ["列支敦斯登"] = {alias_of = "列支敦士登"}, ["立陶宛"] = {container = "歐洲", wp = "立陶宛"}, ["盧森堡"] = {container = "歐洲", wp = "盧森堡"}, ["北馬其頓"] = {container = "歐洲", wp = "北馬其頓"}, ["馬耳他"] = {container = "歐洲", wp = "馬耳他"}, ["馬爾他"] = {alias_of = "馬耳他"}, ["摩爾多瓦"] = {container = "歐洲", wp = "摩爾多瓦"}, ["摩納哥"] = {container = "歐洲", is_city = true, wp = "摩納哥"}, ["黑山"] = {container = "歐洲", wp = "黑山"}, ["蒙特內哥羅"] = {alias_of = "黑山"}, ["荷蘭"] = {container = "歐洲", divs = {"provinces"}, wp = "荷蘭"}, ["尼德蘭"] = {alias_of = "荷蘭"}, ["挪威"] = {container = "歐洲", wp = "挪威"}, ["波蘭"] = {container = "歐洲", divs = {"voivodeships"}, wp = "波蘭"}, ["葡萄牙"] = {container = "歐洲", divs = {"districts"}, wp = "葡萄牙"}, ["羅馬尼亞"] = {container = "歐洲", wp = "羅馬尼亞"}, ["聖馬力諾"] = {container = "歐洲", wp = "聖馬力諾"}, ["聖馬利諾"] = {alias_of = "聖馬力諾"}, ["塞爾維亞"] = {container = "歐洲", wp = "塞爾維亞"}, ["斯洛伐克"] = {container = "歐洲", wp = "斯洛伐克"}, ["斯洛文尼亞"] = {container = "歐洲", wp = "斯洛文尼亞"}, ["斯洛維尼亞"] = {alias_of = "斯洛文尼亞"}, ["西班牙"] = {container = "歐洲", divs = {"autonomous communities"}, wp = "西班牙"}, ["瑞典"] = {container = "歐洲", wp = "瑞典"}, ["瑞士"] = {container = "歐洲", divs = {"cantons"}, wp = "瑞士"}, ["烏克蘭"] = {container = "歐洲", divs = {"oblasts"}, wp = "烏克蘭"}, ["英國"] = {container = "歐洲", divs = { {type = "constituent countries", cat_as = "constituent countries"}, }, wp = "英國"}, -- North America ["加拿大"] = {container = "北美洲", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, }, wp = "加拿大"}, ["墨西哥"] = {container = "北美洲", divs = {"states"}, wp = "墨西哥"}, ["美國"] = {container = "北美洲", divs = {"states"}, wp = "美國"}, -- Central America ["伯利茲"] = {container = "中美洲", wp = "伯利茲"}, ["貝里斯"] = {alias_of = "伯利茲"}, ["哥斯達黎加"] = {container = "中美洲", wp = "哥斯達黎加"}, ["哥斯大黎加"] = {alias_of = "哥斯達黎加"}, ["薩爾瓦多"] = {container = "中美洲", wp = "薩爾瓦多"}, ["危地馬拉"] = {container = "中美洲", wp = "危地馬拉"}, ["瓜地馬拉"] = {alias_of = "危地馬拉"}, ["洪都拉斯"] = {container = "中美洲", wp = "洪都拉斯"}, ["宏都拉斯"] = {alias_of = "洪都拉斯"}, ["尼加拉瓜"] = {container = "中美洲", wp = "尼加拉瓜"}, ["巴拿馬"] = {container = "中美洲", wp = "巴拿馬"}, -- Caribbean ["安提瓜和巴布達"] = {container = "加勒比地區", wp = "安提瓜和巴布達"}, ["安地卡及巴布達"] = {alias_of = "安提瓜和巴布達"}, ["巴哈馬"] = {container = "加勒比地區", wp = "巴哈馬"}, ["巴巴多斯"] = {container = "加勒比地區", wp = "巴巴多斯"}, ["巴貝多"] = {alias_of = "巴巴多斯"}, ["古巴"] = {container = "加勒比地區", wp = "古巴"}, ["多米尼克"] = {container = "加勒比地區", wp = "多米尼克"}, ["多米尼加共和國"] = {container = "加勒比地區", wp = "多米尼加"}, ["多明尼加共和國"] = {alias_of = "多米尼加共和國"}, ["格林納達"] = {container = "加勒比地區", wp = "格林納達"}, ["格瑞那達"] = {alias_of = "格林納達"}, ["海地"] = {container = "加勒比地區", wp = "海地"}, ["牙買加"] = {container = "加勒比地區", wp = "牙買加"}, ["聖基茨和尼維斯"] = {container = "加勒比地區", wp = "聖基茨和尼維斯"}, ["聖克里斯多福及尼維斯"] = {alias_of = "聖基茨和尼維斯"}, ["聖盧西亞"] = {container = "加勒比地區", wp = "聖盧西亞"}, ["聖露西亞"] = {alias_of = "聖盧西亞"}, ["聖文森特和格林納丁斯"] = {container = "加勒比地區", wp = "聖文森特和格林納丁斯"}, ["聖文森及格瑞那丁"] = {alias_of = "聖文森特和格林納丁斯"}, ["特立尼達和多巴哥"] = {container = "加勒比地區", wp = "特立尼達和多巴哥"}, ["千里達及托巴哥"] = {alias_of = "特立尼達和多巴哥"}, -- South America ["阿根廷"] = {container = "南美洲", divs = {"provinces"}, wp = "阿根廷"}, ["玻利維亞"] = {container = "南美洲", wp = "玻利維亞"}, ["巴西"] = {container = "南美洲", divs = {"states"}, wp = "巴西"}, ["智利"] = {container = "南美洲", wp = "智利"}, ["哥倫比亞"] = {container = "南美洲", wp = "哥倫比亞"}, ["厄瓜多爾"] = {container = "南美洲", wp = "厄瓜多爾"}, ["厄瓜多"] = {alias_of = "厄瓜多爾"}, ["圭亞那"] = {container = "南美洲", wp = "圭亞那"}, ["蓋亞那"] = {alias_of = "圭亞那"}, ["巴拉圭"] = {container = "南美洲", wp = "巴拉圭"}, ["秘魯"] = {container = "南美洲", wp = "秘魯"}, ["蘇里南"] = {container = "南美洲", wp = "蘇里南"}, ["蘇利南"] = {alias_of = "蘇里南"}, ["烏拉圭"] = {container = "南美洲", wp = "烏拉圭"}, ["委內瑞拉"] = {container = "南美洲", wp = "委內瑞拉"}, -- Oceania ["澳大利亞"] = {container = "大洋洲", divs = { {type = "states", cat_as = "states and territories"}, {type = "territories", cat_as = "states and territories"}, }, wp = "澳大利亞"}, ["澳洲"] = {alias_of = "澳大利亞"}, ["斐濟"] = {container = "大洋洲", wp = "斐濟"}, ["基里巴斯"] = {container = "大洋洲", wp = "基里巴斯"}, ["吉里巴斯"] = {alias_of = "基里巴斯"}, ["馬紹爾群島"] = {container = "大洋洲", wp = "馬紹爾群島"}, ["密克羅尼西亞聯邦"] = {container = "大洋洲", wp = "密克羅尼西亞聯邦"}, ["瑙魯"] = {container = "大洋洲", wp = "瑙魯"}, ["諾魯"] = {alias_of = "瑙魯"}, ["新西蘭"] = {container = "大洋洲", wp = "新西蘭"}, ["紐西蘭"] = {alias_of = "新西蘭"}, ["帕勞"] = {container = "大洋洲", wp = "帕勞"}, ["帛琉"] = {alias_of = "帕勞"}, ["巴布亞新幾內亞"] = {container = "大洋洲", wp = "巴布亞新幾內亞"}, ["巴布亞紐幾內亞"] = {alias_of = "巴布亞新幾內亞"}, ["薩摩亞"] = {container = "大洋洲", wp = "薩摩亞"}, ["所羅門群島"] = {container = "大洋洲", wp = "所羅門群島"}, ["湯加"] = {container = "大洋洲", wp = "湯加"}, ["東加"] = {alias_of = "湯加"}, ["圖瓦盧"] = {container = "大洋洲", wp = "圖瓦盧"}, ["吐瓦魯"] = {alias_of = "圖瓦盧"}, ["瓦努阿圖"] = {container = "大洋洲", wp = "瓦努阿圖"}, ["萬那杜"] = {alias_of = "瓦努阿圖"}, } export.countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"+++", "countries"}, default_placetype = "country", default_no_container_cat = true, default_no_container_parent = true, default_no_auto_augment_container = true, placename_to_key = false, data = export.countries, } export.country_like_entities = { -- Special administrative regions of China ["香港"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, divs = {"districts"}, wp = "Hong Kong", }, ["澳門"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, wp = "Macau", }, -- Western Sahara ["西撒哈拉"] = { placetype = {"territory", "country"}, container = "非洲", wp = "Western Sahara", }, -- Kosovo (disputed) ["科索沃(部分承認)"] = {alias_of = "科索沃"}, -- Palestinian territories ["巴勒斯坦"] = { placetype = {"country", "territory"}, container = "亞洲", wp = "State of Palestine", }, -- Key overseas territories ["波多黎各"] = { placetype = {"commonwealth", "territory"}, container = "美國", addl_parents = {"加勒比地區"}, wp = "Puerto Rico", }, ["關島"] = { placetype = {"territory"}, container = "美國", addl_parents = {"密克羅尼西亞"}, wp = "Guam", }, ["新喀里多尼亞"] = { placetype = {"territory"}, container = "法國", addl_parents = {"大洋洲"}, wp = "New Caledonia", }, ["法屬圭亞那"] = { placetype = {"territory"}, container = "法國", addl_parents = {"南美洲"}, wp = "French Guiana", }, ["留尼旺"] = { placetype = {"territory"}, container = "法國", addl_parents = {"非洲"}, wp = "Réunion", }, ["馬丁尼克"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Martinique", }, ["瓜德羅普"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Guadeloupe", }, ["格陵蘭"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"北美洲"}, wp = "Greenland", }, ["法羅群島"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"歐洲"}, wp = "Faroe Islands", }, } export.country_like_entities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "country"), default_placetype = "territory", placename_to_key = false, data = export.country_like_entities, } export.former_countries = { ["蘇聯"] = { placetype = {"country"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Soviet Union", }, ["南斯拉夫"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Yugoslavia", }, ["捷克斯洛伐克"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Czechoslovakia", }, ["東德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "East Germany", }, ["西德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "West Germany", }, ["奧匈帝國"] = { placetype = {"empire"}, container = "歐洲", is_former_place = true, wp = "Austria-Hungary", }, ["鄂圖曼帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Ottoman Empire", }, ["奧斯曼帝國"] = {alias_of = "鄂圖曼帝國"}, ["羅馬帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲", "非洲"}, is_former_place = true, wp = "Roman Empire", }, ["大英帝國"] = { placetype = {"empire"}, is_former_place = true, wp = "British Empire", }, ["普魯士"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Prussia", }, } export.former_countries_group = { canonicalize_key_container = canonicalize_continent_container, default_placetype = "country", default_is_former_place = true, placename_to_key = false, data = export.former_countries, } ----------------------------------------------------------------------------------- -- Subpolity tables -- ----------------------------------------------------------------------------------- export.australia_states_and_territories = { ["新南威爾斯"] = {wp = "New South Wales"}, ["維多利亞州"] = {wp = "Victoria (Australia)"}, ["昆士蘭"] = {wp = "Queensland"}, ["南澳大利亞"] = {wp = "South Australia"}, ["西澳大利亞"] = {wp = "Western Australia"}, ["塔斯馬尼亞"] = {wp = "Tasmania"}, ["澳大利亞首都領地"] = {placetype = "territory", wp = "Australian Capital Territory"}, ["北領地"] = {placetype = "territory", wp = "Northern Territory"}, } -- states and territories of Australia export.australia_group = { placename_to_key = false, default_container = "澳大利亞", default_placetype = "state", data = export.australia_states_and_territories, } export.austria_states = { ["維也納州"] = {wp = "Vienna (state)"}, ["下奧地利州"] = {wp = "Lower Austria"}, ["上奧地利州"] = {wp = "Upper Austria"}, ["施泰爾馬克州"] = {wp = "Styria"}, ["蒂羅爾州"] = {wp = "Tyrol (state)"}, ["克恩頓州"] = {wp = "Carinthia"}, ["薩爾茨堡州"] = {wp = "Salzburg (state)"}, ["福拉爾貝格州"] = {wp = "Vorarlberg"}, ["布根蘭州"] = {wp = "Burgenland"}, } -- states of Austria export.austria_group = { placename_to_key = false, default_container = "奧地利", default_placetype = "state", data = export.austria_states, } export.bangladesh_divisions = { ["巴里薩爾專區"] = {wp = "Barisal Division"}, ["吉大港專區"] = {wp = "Chittagong Division"}, ["達卡專區"] = {wp = "Dhaka Division"}, ["庫爾納專區"] = {wp = "Khulna Division"}, ["邁門辛專區"] = {wp = "Mymensingh Division"}, ["拉吉沙希專區"] = {wp = "Rajshahi Division"}, ["朗普爾專區"] = {wp = "Rangpur Division"}, ["錫爾赫特專區"] = {wp = "Sylhet Division"}, } -- divisions of Bangladesh export.bangladesh_group = { placename_to_key = false, default_container = "孟加拉國", default_placetype = "division", data = export.bangladesh_divisions, } export.brazil_states = { ["里約熱內盧州"] = {wp = "Rio de Janeiro (state)"}, ["里約熱內盧"] = {alias_of = "里約熱內盧州"}, ["聖保羅州"] = {wp = "São Paulo (state)"}, ["米納斯吉拉斯"] = {wp = "Minas Gerais"}, ["巴伊亞"] = {wp = "Bahia"}, ["亞馬遜州"] = {wp = "Amazonas (Brazilian state)"}, ["帕拉州"] = {wp = "Pará"}, ["伯南布哥州"] = {wp = "Pernambuco"}, ["南里奧格蘭德州"] = {wp = "Rio Grande do Sul"}, ["巴西聯邦區"] = {wp = "Federal District (Brazil)"}, ["塞阿拉州"] = {wp = "Ceará"}, ["巴拉那州"] = {wp = "Paraná (state)"}, ["戈亞斯州"] = {wp = "Goiás"}, ["聖埃斯皮里圖州"] = {wp = "Espírito Santo"}, ["馬拉尼昂州"] = {wp = "Maranhão"}, ["北里奧格蘭德州"] = {wp = "Rio Grande do Norte"}, ["聖卡塔琳娜州"] = {wp = "Santa Catarina (state)"}, ["阿拉戈亞斯州"] = {wp = "Alagoas"}, ["帕拉伊巴州"] = {wp = "Paraíba"}, ["皮奧伊州"] = {wp = "Piauí"}, ["阿克里州"] = {wp = "Acre (state)"}, ["阿馬帕州"] = {wp = "Amapá"}, ["馬托格羅索州"] = {wp = "Mato Grosso"}, ["南馬托格羅索州"] = {wp = "Mato Grosso do Sul"}, ["朗多尼亞州"] = {wp = "Rondônia"}, ["羅賴馬州"] = {wp = "Roraima"}, ["塞爾希培州"] = {wp = "Sergipe"}, ["托坎廷斯州"] = {wp = "Tocantins"}, } -- states of Brazil export.brazil_group = { placename_to_key = false, default_container = "巴西", default_placetype = "state", data = export.brazil_states, } -- provinces (a.k.a. oblasts) of Bulgaria export.bulgaria_provinces = { ["布拉戈耶夫格勒省"] = {wp = "Blagoevgrad Province"}, ["布爾加斯省"] = {wp = "Burgas Province"}, ["多布里奇省"] = {wp = "Dobrich Province"}, ["加布羅沃省"] = {wp = "Gabrovo Province"}, ["哈斯科沃省"] = {wp = "Haskovo Province"}, ["卡爾扎利省"] = {wp = "Kardzhali Province"}, ["屈斯滕迪爾省"] = {wp = "Kyustendil Province"}, ["洛維奇省"] = {wp = "Lovech Province"}, ["蒙塔納省"] = {wp = "Montana Province"}, ["帕扎爾吉克省"] = {wp = "Pazardzhik Province"}, ["佩爾尼克省"] = {wp = "Pernik Province"}, ["普萊文省"] = {wp = "Pleven Province"}, ["普羅夫迪夫省"] = {wp = "Plovdiv Province"}, ["拉茲格勒省"] = {wp = "Razgrad Province"}, ["魯塞省"] = {wp = "Ruse Province"}, ["舒門省"] = {wp = "Shumen Province"}, ["錫利斯特拉省"] = {wp = "Silistra Province"}, ["斯利文省"] = {wp = "Sliven Province"}, ["斯莫梁省"] = {wp = "Smolyan Province"}, ["索非亞市省"] = {wp = "Sofia City Province"}, ["索非亞省"] = {wp = "Sofia Province"}, ["斯塔拉扎戈拉省"] = {wp = "Stara Zagora Province"}, ["特爾戈維什泰省"] = {wp = "Targovishte Province"}, ["瓦爾納省"] = {wp = "Varna Province"}, ["大特爾諾沃省"] = {wp = "Veliko Tarnovo Province"}, ["維丁省"] = {wp = "Vidin Province"}, ["弗拉察省"] = {wp = "Vratsa Province"}, ["揚博爾省"] = {wp = "Yambol Province"}, } export.bulgaria_group = { placename_to_key = false, default_container = "保加利亞", divs = {"regions", "planning regions", "provinces", "municipalities", "settlements"}, default_placetype = "province", data = export.bulgaria_provinces, } export.canada_provinces_and_territories = { ["亞伯達"] = {wp = "Alberta"}, ["艾伯塔"] = {alias_of = "亞伯達"}, ["英屬哥倫比亞"] = {wp = "British Columbia"}, ["卑詩省"] = {alias_of = "英屬哥倫比亞"}, ["馬尼托巴"] = {wp = "Manitoba"}, ["新不倫瑞克"] = {wp = "New Brunswick"}, ["紐芬蘭與拉布拉多"] = {wp = "Newfoundland and Labrador"}, ["西北地區"] = {placetype = "territory", wp = "Northwest Territories"}, ["新斯科舍"] = {wp = "Nova Scotia"}, ["努納武特"] = {placetype = "territory", wp = "Nunavut"}, ["安大略"] = {divs = {"counties", "regional municipalities"}, wp = "Ontario"}, ["愛德華王子島"] = {wp = "Prince Edward Island"}, ["魁北克"] = {wp = "Quebec"}, ["薩斯喀徹溫"] = {wp = "Saskatchewan"}, ["育空"] = {placetype = "territory", wp = "Yukon"}, } export.canada_group = { placename_to_key = false, default_container = "加拿大", default_placetype = "province", data = export.canada_provinces_and_territories, } export.china_provinces_and_autonomous_regions = { -- Provinces ["安徽"] = {wp = "安徽省"}, ["福建"] = {wp = "福建省"}, ["甘肅"] = {wp = "甘肅省"}, ["廣東"] = {wp = "廣東省"}, ["貴州"] = {wp = "貴州省"}, ["海南"] = {wp = "海南省"}, ["河北"] = {wp = "河北省"}, ["黑龍江"] = {wp = "黑龍江省"}, ["河南"] = {wp = "河南省"}, ["湖北"] = {wp = "湖北省"}, ["湖南"] = {wp = "湖南省"}, ["江蘇"] = {wp = "江蘇省"}, ["江西"] = {wp = "江西省"}, ["吉林"] = {wp = "吉林省"}, ["遼寧"] = {wp = "遼寧省"}, ["青海"] = {wp = "青海省"}, ["陝西"] = {wp = "陝西省"}, ["山東"] = {wp = "山東省"}, ["山西"] = {wp = "山西省"}, ["四川"] = {wp = "四川省"}, ["雲南"] = {wp = "雲南省"}, ["浙江"] = {wp = "浙江省"}, -- Autonomous regions ["廣西"] = {placetype = "autonomous region", wp = "廣西壯族自治區"}, ["廣西壯族自治區"] = {alias_of = "廣西"}, ["內蒙古"] = {placetype = "autonomous region", wp = "內蒙古自治區"}, ["內蒙古自治區"] = {alias_of = "內蒙"}, ["寧夏"] = {placetype = "autonomous region", wp = "寧夏回族自治區"}, ["寧夏回族自治區"] = {alias_of = "寧夏"}, ["西藏"] = {placetype = "autonomous region", wp = "西藏自治區"}, ["西藏自治區"] = {alias_of = "西藏"}, ["新疆"] = {placetype = "autonomous region", wp = "新疆維吾爾自治區"}, ["新疆維吾爾自治區"] = {alias_of = "新疆"}, -- Direct-administered municipalities (treated as province-level for holonym purposes) ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "北京市"}, ["北京市"] = {alias_of = "北京"}, ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "上海市"}, ["上海市"] = {alias_of = "上海"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "天津市"}, ["天津市"] = {alias_of = "天津"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "重慶市"}, ["重慶市"] = {alias_of = "重慶"}, } export.china_group = { placename_to_key = false, default_container = "中國", default_placetype = "province", default_divs = { "prefecture-level cities", "districts", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_provinces_and_autonomous_regions, } export.china_prefecture_level_cities = { -- Guangdong ["廣州"] = {container = "廣東", wp = "Guangzhou"}, ["東莞"] = {container = "廣東", wp = "Dongguan"}, ["佛山"] = {container = "廣東", wp = "Foshan"}, ["惠州"] = {container = "廣東", wp = "Huizhou"}, ["江門"] = {container = "廣東", wp = "Jiangmen"}, ["深圳"] = {container = "廣東", wp = "Shenzhen"}, ["中山"] = {container = "廣東", wp = "Zhongshan"}, ["汕頭"] = {container = "廣東", wp = "Shantou"}, ["潮州"] = {container = "廣東", wp = "Chaozhou"}, ["揭陽"] = {container = "廣東", wp = "Jieyang"}, ["珠海"] = {container = "廣東", wp = "Zhuhai"}, ["湛江"] = {container = "廣東", wp = "Zhanjiang"}, ["茂名"] = {container = "廣東", wp = "Maoming"}, ["清遠"] = {container = "廣東", wp = "Qingyuan"}, ["肇慶"] = {container = "廣東", wp = "Zhaoqing"}, -- Direct-administered municipalities (also in china_provinces; duplicated here for division categorisation) ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Shanghai"}, ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Beijing"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Chongqing"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Tianjin"}, -- Jiangsu ["常熟"] = {container = "江蘇", wp = "Changshu"}, ["常州"] = {container = "江蘇", wp = "Changzhou"}, ["蘇州"] = {container = "江蘇", wp = "Suzhou"}, ["無錫"] = {container = "江蘇", wp = "Wuxi"}, ["南京"] = {container = "江蘇", wp = "Nanjing"}, ["南通"] = {container = "江蘇", wp = "Nantong"}, ["江陰"] = {container = "江蘇", wp = "Jiangyin"}, ["張家港"] = {container = "江蘇", wp = "Zhangjiagang"}, ["徐州"] = {container = "江蘇", wp = "Xuzhou"}, ["揚州"] = {container = "江蘇", wp = "Yangzhou"}, ["鹽城"] = {container = "江蘇", wp = "Yancheng"}, ["淮安"] = {container = "江蘇", wp = "Huai'an"}, ["連雲港"] = {container = "江蘇", wp = "Lianyungang"}, ["宿遷"] = {container = "江蘇", wp = "Suqian"}, ["鎮江"] = {container = "江蘇", wp = "Zhenjiang"}, ["崑山"] = {container = "江蘇", wp = "Kunshan"}, ["泰州"] = {container = "江蘇", wp = "Taizhou, Jiangsu"}, -- distinct from 台州 (Zhejiang) -- Zhejiang ["杭州"] = {container = "浙江", wp = "Hangzhou"}, ["紹興"] = {container = "浙江", wp = "Shaoxing"}, ["寧波"] = {container = "浙江", wp = "Ningbo"}, ["慈溪"] = {container = "浙江", wp = "Cixi"}, ["余姚"] = {container = "浙江", wp = "Yuyao"}, ["溫州"] = {container = "浙江", wp = "Wenzhou"}, ["瑞安"] = {placetype = "county-level city", container = {key = "溫州", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Rui'an"}, ["台州"] = {container = "浙江", wp = "Taizhou, Zhejiang"}, ["義烏"] = {container = "浙江", wp = "Yiwu"}, ["嘉興"] = {container = "浙江", wp = "Jiaxing"}, ["金華"] = {container = "浙江", wp = "Jinhua"}, ["湖州"] = {container = "浙江", wp = "Huzhou"}, ["永康"] = {placetype = "county-level city", container = {key = "金華", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Yongkang, Zhejiang"}, -- Fujian ["廈門"] = {container = "福建", wp = "Xiamen"}, ["晉江"] = {container = "福建", wp = "Jinjiang"}, ["泉州"] = {container = "福建", wp = "Quanzhou"}, ["莆田"] = {container = "福建", wp = "Putian"}, ["福州"] = {container = "福建", wp = "Fuzhou"}, -- Shandong ["青島"] = {container = "山東", wp = "Qingdao"}, ["臨沂"] = {container = "山東", wp = "Linyi"}, ["淄博"] = {container = "山東", wp = "Zibo"}, ["濟南"] = {container = "山東", wp = "Jinan"}, ["濰坊"] = {container = "山東", wp = "Weifang"}, ["煙台"] = {container = "山東", wp = "Yantai"}, ["濟寧"] = {container = "山東", wp = "Jining"}, ["泰安"] = {container = "山東", wp = "Tai'an"}, ["威海"] = {container = "山東", wp = "Weihai"}, ["菏澤"] = {container = "山東", wp = "Heze"}, ["德州"] = {container = "山東", wp = "Dezhou"}, ["日照"] = {container = "山東", wp = "Rizhao"}, ["聊城"] = {container = "山東", wp = "Liaocheng"}, ["棗莊"] = {container = "山東", wp = "Zaozhuang"}, ["滕州"] = {placetype = "county-level city", container = {key = "棗莊", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Tengzhou"}, ["東營"] = {container = "山東", wp = "Dongying"}, -- Henan ["鄭州"] = {container = "河南", wp = "Zhengzhou"}, ["洛陽"] = {container = "河南", wp = "Luoyang"}, ["新鄉"] = {container = "河南", wp = "Xinxiang"}, ["信陽"] = {container = "河南", wp = "Xinyang"}, ["安陽"] = {container = "河南", wp = "Anyang"}, ["開封"] = {container = "河南", wp = "Kaifeng"}, ["許昌"] = {container = "河南", wp = "Xuchang"}, ["濮陽"] = {container = "河南", wp = "Puyang"}, ["商丘"] = {container = "河南", wp = "Shangqiu"}, ["南陽"] = {container = "河南", wp = "Nanyang, Henan"}, ["焦作"] = {container = "河南", wp = "Jiaozuo"}, ["平頂山"] = {container = "河南", wp = "Pingdingshan"}, ["周口"] = {container = "河南", wp = "Zhoukou"}, ["駐馬店"] = {container = "河南", wp = "Zhumadian"}, -- Hubei ["武漢"] = {container = "湖北", wp = "Wuhan"}, ["襄陽"] = {container = "湖北", wp = "Xiangyang"}, ["宜昌"] = {container = "湖北", wp = "Yichang"}, ["鄂州"] = {container = "湖北", wp = "Ezhou"}, ["十堰"] = {container = "湖北", wp = "Shiyan"}, -- Hunan ["長沙"] = {container = "湖南", wp = "Changsha"}, ["株洲"] = {container = "湖南", wp = "Zhuzhou"}, ["衡陽"] = {container = "湖南", wp = "Hengyang"}, ["邵陽"] = {container = "湖南", wp = "Shaoyang"}, ["岳陽"] = {container = "湖南", wp = "Yueyang"}, ["常德"] = {container = "湖南", wp = "Changde"}, ["瀏陽"] = {placetype = "county-level city", container = {key = "長沙", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Liuyang"}, -- Sichuan ["成都"] = {container = "四川", wp = "Chengdu"}, ["綿陽"] = {container = "四川", wp = "Mianyang"}, ["南充"] = {container = "四川", wp = "Nanchong"}, ["達州"] = {container = "四川", wp = "Dazhou"}, ["瀘州"] = {container = "四川", wp = "Luzhou"}, ["宜賓"] = {container = "四川", wp = "Yibin"}, -- Yunnan ["昆明"] = {container = "雲南", wp = "Kunming"}, ["曲靖"] = {container = "雲南", wp = "Qujing"}, -- Guizhou ["貴陽"] = {container = "貴州", wp = "Guiyang"}, ["遵義"] = {container = "貴州", wp = "Zunyi"}, ["六盤水"] = {container = "貴州", wp = "Liupanshui"}, ["畢節"] = {container = "貴州", wp = "Bijie"}, -- Shaanxi ["西安"] = {container = "陝西", wp = "Xi'an"}, ["咸陽"] = {container = "陝西", wp = "Xianyang"}, ["寶雞"] = {container = "陝西", wp = "Baoji"}, -- Heilongjiang ["哈爾濱"] = {container = "黑龍江", wp = "Harbin"}, ["大慶"] = {container = "黑龍江", wp = "Daqing"}, ["齊齊哈爾"] = {container = "黑龍江", wp = "Qiqihar"}, -- Liaoning ["瀋陽"] = {container = "遼寧", wp = "Shenyang"}, ["撫順"] = {container = "遼寧", wp = "Fushun"}, ["大連"] = {container = "遼寧", wp = "Dalian"}, ["鞍山"] = {container = "遼寧", wp = "Anshan"}, ["錦州"] = {container = "遼寧", wp = "Jinzhou"}, ["葫蘆島"] = {container = "遼寧", wp = "Huludao"}, ["盤錦"] = {container = "遼寧", wp = "Panjin"}, -- Jilin ["長春"] = {container = "吉林", wp = "Changchun"}, ["吉林市"] = {container = "吉林", wp = "Jilin City"}, -- distinct from 吉林 (province) -- Anhui ["合肥"] = {container = "安徽", wp = "Hefei"}, ["蚌埠"] = {container = "安徽", wp = "Bengbu"}, ["淮南"] = {container = "安徽", wp = "Huainan"}, ["蕪湖"] = {container = "安徽", wp = "Wuhu"}, ["淮北"] = {container = "安徽", wp = "Huaibei"}, ["滁州"] = {container = "安徽", wp = "Chuzhou"}, ["六安"] = {container = "安徽", wp = "Lu'an"}, ["阜陽"] = {container = "安徽", wp = "Fuyang, Anhui"}, ["宿州"] = {container = "安徽", wp = "Suzhou, Anhui"}, -- distinct from 蘇州 (Jiangsu) -- Hebei ["石家莊"] = {container = "河北", wp = "Shijiazhuang"}, ["邯鄲"] = {container = "河北", wp = "Handan"}, ["唐山"] = {container = "河北", wp = "Tangshan"}, ["秦皇島"] = {container = "河北", wp = "Qinhuangdao"}, ["邢台"] = {container = "河北", wp = "Xingtai"}, ["保定"] = {container = "河北", wp = "Baoding"}, ["張家口"] = {container = "河北", wp = "Zhangjiakou"}, ["衡水"] = {container = "河北", wp = "Hengshui"}, ["滄州"] = {container = "河北", wp = "Cangzhou"}, -- Shanxi ["太原"] = {container = "山西", wp = "Taiyuan"}, ["大同"] = {container = "山西", wp = "Datong"}, ["長治"] = {container = "山西", wp = "Changzhi"}, ["臨汾"] = {container = "山西", wp = "Linfen"}, -- Jiangxi ["南昌"] = {container = "江西", wp = "Nanchang"}, ["贛州"] = {container = "江西", wp = "Ganzhou"}, ["上饒"] = {container = "江西", wp = "Shangrao"}, ["九江"] = {container = "江西", wp = "Jiujiang"}, -- Guangxi (autonomous region) ["南寧"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Nanning"}, ["柳州"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Liuzhou"}, ["桂林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guilin"}, ["玉林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Yulin, Guangxi"}, ["北海"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Beihai"}, ["貴港"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guigang"}, -- Inner Mongolia (autonomous region) ["呼和浩特"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Hohhot"}, ["包頭"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Baotou"}, ["赤峰"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Chifeng"}, -- Xinjiang (autonomous region) ["烏魯木齊"] = {container = {key = "新疆", placetype = "autonomous region"}, wp = "Ürümqi"}, -- Ningxia (autonomous region) ["銀川"] = {container = {key = "寧夏", placetype = "autonomous region"}, wp = "Yinchuan"}, -- Hainan ["海口"] = {container = "海南", wp = "Haikou"}, -- Qinghai ["西寧"] = {container = "青海", wp = "Xining"}, -- Gansu ["蘭州"] = {container = "甘肅", wp = "Lanzhou"}, -- Chongqing subdivision (district 142 miles from Chongqing proper) ["萬州"] = {placetype = "district", container = {key = "重慶", placetype = "direct-administered municipality"}, divs = {"subdistricts", "townships"}, wp = "Wanzhou"}, -- County within Suqian prefecture-level city ["沭陽"] = {placetype = "county", container = {key = "宿遷", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Shuyang County"}, } export.china_prefecture_level_cities_group = { placename_to_key = false, default_placetype = {"prefecture-level city", "city"}, default_divs = { "districts", "subdistricts", "townships", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_prefecture_level_cities, } export.finland_regions = { ["拉普蘭省"] = {wp = "Lapland (Finland)"}, ["北奧斯特博滕省"] = {wp = "North Ostrobothnia"}, ["卡亞尼省"] = {wp = "Kainuu"}, ["北卡累利亞省"] = {wp = "North Karelia"}, ["北薩沃省"] = {wp = "Northern Savonia"}, ["南薩沃省"] = {wp = "Southern Savonia"}, ["南卡累利亞省"] = {wp = "South Karelia"}, ["中芬蘭省"] = {wp = "Central Finland"}, ["南奧斯特博滕省"] = {wp = "South Ostrobothnia"}, ["奧斯特博滕省"] = {wp = "Ostrobothnia (region)"}, ["中奧斯特博滕省"] = {wp = "Central Ostrobothnia"}, ["皮爾卡馬省"] = {wp = "Pirkanmaa"}, ["薩塔昆塔省"] = {wp = "Satakunta"}, ["派亞特哈米省"] = {wp = "Päijät-Häme"}, ["坎塔哈米省"] = {wp = "Tavastia Proper"}, ["屈米河谷省"] = {wp = "Kymenlaakso"}, ["烏西馬省"] = {wp = "Uusimaa"}, ["西南芬蘭省"] = {wp = "Southwest Finland"}, ["奧蘭群島"] = {wp = "Åland", placetype = {"autonomous region", "region"}}, } export.finland_group = { placename_to_key = false, default_container = "芬蘭", default_placetype = "region", data = export.finland_regions, } export.france_administrative_regions = { ["奧弗涅-隆河-阿爾卑斯大區"] = {wp = "Auvergne-Rhône-Alpes"}, ["勃艮第-弗朗什-孔泰大區"] = {wp = "Bourgogne-Franche-Comté"}, ["布列塔尼大區"] = {wp = "Brittany (administrative region)"}, ["中央-羅亞爾河谷大區"] = {wp = "Centre-Val de Loire"}, ["科西嘉大區"] = {wp = "Corsica"}, ["大東部大區"] = {wp = "Grand Est"}, ["上法蘭西大區"] = {wp = "Hauts-de-France"}, ["法蘭西島大區"] = {wp = "Île-de-France"}, ["諾曼底大區"] = {wp = "Normandy"}, ["新阿基坦大區"] = {wp = "Nouvelle-Aquitaine"}, ["奧克西塔尼大區"] = {wp = "Occitanie"}, ["盧瓦爾河地區大區"] = {wp = "Pays de la Loire"}, ["普羅旺斯-阿爾卑斯-蔚藍海岸大區"] = {wp = "Provence-Alpes-Côte d'Azur"}, -- Old region names (pre-2016) as aliases ["北部-加萊海峽大區"] = {wp = "Nord-Pas-de-Calais"}, ["加來海峽大區"] = {alias_of = "北部-加萊海峽大區"}, } export.france_group = { placename_to_key = false, default_container = "法國", default_placetype = "region", data = export.france_administrative_regions, } -- France departments (abbreviated list) export.france_departments = { ["北部省"] = {wp = "Nord (department)", container = "上法蘭西大區"}, ["加來海峽省"] = {wp = "Pas-de-Calais", container = "上法蘭西大區"}, ["巴黎市"] = {wp = "Paris", container = "法蘭西島大區"}, ["上塞納省"] = {wp = "Hauts-de-Seine", container = "法蘭西島大區"}, } export.france_departments_group = { placename_to_key = false, default_container = "法國", default_placetype = "department", data = export.france_departments, } export.germany_states = { ["巴登-符騰堡"] = {wp = "Baden-Württemberg"}, ["巴伐利亞"] = {wp = "Bavaria"}, ["柏林"] = {wp = "Berlin"}, ["布蘭登堡"] = {wp = "Brandenburg"}, ["不來梅"] = {wp = "Bremen"}, ["漢堡"] = {wp = "Hamburg"}, ["黑森"] = {wp = "Hesse"}, ["梅克倫堡-前波美拉尼亞"] = {wp = "Mecklenburg-Vorpommern"}, ["下薩克森"] = {wp = "Lower Saxony"}, ["北萊茵-威斯特法倫"] = {wp = "North Rhine-Westphalia"}, ["萊茵蘭-普法爾茨"] = {wp = "Rhineland-Palatinate"}, ["薩爾"] = {wp = "Saarland"}, ["薩克森"] = {wp = "Saxony"}, ["薩克森-安哈爾特"] = {wp = "Saxony-Anhalt"}, ["石勒蘇益格-荷爾斯泰因"] = {wp = "Schleswig-Holstein"}, ["圖林根"] = {wp = "Thuringia"}, } export.germany_group = { placename_to_key = false, default_container = "德國", default_placetype = "state", data = export.germany_states, } export.greece_regions = { ["阿提卡大區"] = {wp = "Attica (region)"}, ["中希臘大區"] = {wp = "Central Greece (administrative region)"}, ["中馬其頓大區"] = {wp = "Central Macedonia"}, ["克里特大區"] = {wp = "Crete"}, ["東馬其頓和色雷斯大區"] = {wp = "Eastern Macedonia and Thrace"}, ["伊庇魯斯大區"] = {wp = "Epirus (region)"}, ["愛奧尼亞群島大區"] = {wp = "Ionian Islands (region)"}, ["北愛琴大區"] = {wp = "North Aegean"}, ["伯羅奔尼撒大區"] = {wp = "Peloponnese (region)"}, ["南愛琴大區"] = {wp = "South Aegean"}, ["塞薩利大區"] = {wp = "Thessaly"}, ["西希臘大區"] = {wp = "Western Greece"}, ["西馬其頓大區"] = {wp = "Western Macedonia"}, ["阿托斯山"] = {wp = "Monastic community of Mount Athos", placetype = {"autonomous region", "region"}}, } export.greece_group = { placename_to_key = false, default_container = "希臘", default_placetype = "region", data = export.greece_regions, } export.india_states_and_union_territories = { ["安達曼-尼科巴群島"] = {placetype = "union territory", wp = "Andaman and Nicobar Islands"}, ["安得拉邦"] = {wp = "Andhra Pradesh"}, ["阿魯納恰爾邦"] = {wp = "Arunachal Pradesh"}, ["阿薩姆"] = {wp = "Assam"}, ["比哈爾邦"] = {wp = "Bihar"}, ["昌迪加爾"] = {placetype = "union territory", wp = "Chandigarh"}, ["恰蒂斯加爾邦"] = {wp = "Chhattisgarh"}, ["達德拉-納加爾哈維利和達曼-第烏"] = {placetype = "union territory", wp = "Dadra and Nagar Haveli and Daman and Diu"}, ["德里"] = {placetype = "union territory", wp = "Delhi"}, ["果阿"] = {wp = "Goa"}, ["古吉拉特邦"] = {wp = "Gujarat"}, ["哈里亞納邦"] = {wp = "Haryana"}, ["喜馬偕爾邦"] = {wp = "Himachal Pradesh"}, ["查謨和克什米爾"] = {placetype = "union territory", wp = "Jammu and Kashmir (union territory)"}, ["賈坎德邦"] = {wp = "Jharkhand"}, ["卡納塔克邦"] = {wp = "Karnataka"}, ["喀拉拉邦"] = {wp = "Kerala"}, ["拉達克"] = {placetype = "union territory", wp = "Ladakh"}, ["拉克沙群島"] = {placetype = "union territory", wp = "Lakshadweep"}, ["中央邦"] = {wp = "Madhya Pradesh"}, ["馬哈拉施特拉邦"] = {wp = "Maharashtra"}, ["曼尼普爾邦"] = {wp = "Manipur"}, ["梅加拉亞邦"] = {wp = "Meghalaya"}, ["米佐拉姆邦"] = {wp = "Mizoram"}, ["那加蘭邦"] = {wp = "Nagaland"}, ["奧里薩邦"] = {wp = "Odisha"}, ["本地治里"] = {placetype = "union territory", wp = "Puducherry"}, ["旁遮普邦"] = {wp = "Punjab, India"}, ["拉賈斯坦邦"] = {wp = "Rajasthan"}, ["錫金"] = {wp = "Sikkim"}, ["泰米爾納德邦"] = {wp = "Tamil Nadu"}, ["特倫甘納邦"] = {wp = "Telangana"}, ["特里普拉邦"] = {wp = "Tripura"}, ["北方邦"] = {wp = "Uttar Pradesh"}, ["北阿坎德邦"] = {wp = "Uttarakhand"}, ["西孟加拉邦"] = {wp = "West Bengal"}, } export.india_group = { placename_to_key = false, default_container = "印度", default_placetype = "state", default_divs = {"districts"}, data = export.india_states_and_union_territories, } export.indonesia_provinces = { ["亞齊省"] = {wp = "Aceh"}, ["峇里省"] = {wp = "Bali"}, ["邦加勿里洞省"] = {wp = "Bangka Belitung Islands"}, ["萬丹省"] = {wp = "Banten"}, ["明古魯省"] = {wp = "Bengkulu"}, ["中爪哇省"] = {wp = "Central Java"}, ["中加里曼丹省"] = {wp = "Central Kalimantan"}, ["中巴布亞省"] = {wp = "Central Papua"}, ["中蘇拉威西省"] = {wp = "Central Sulawesi"}, ["東爪哇省"] = {wp = "East Java"}, ["東加里曼丹省"] = {wp = "East Kalimantan"}, ["東努沙登加拉省"] = {wp = "East Nusa Tenggara"}, ["哥倫打洛省"] = {wp = "Gorontalo"}, ["巴布亞高地省"] = {wp = "Highland Papua"}, ["雅加達首都特區"] = {wp = "Jakarta"}, ["占碑省"] = {wp = "Jambi"}, ["楠榜省"] = {wp = "Lampung"}, ["馬魯古省"] = {wp = "Maluku"}, ["北加里曼丹省"] = {wp = "North Kalimantan"}, ["北馬魯古省"] = {wp = "North Maluku"}, ["北蘇拉威西省"] = {wp = "North Sulawesi"}, ["北巴布亞省"] = {wp = "North Papua"}, ["北蘇門答臘省"] = {wp = "North Sumatra"}, ["巴布亞省"] = {wp = "Papua (province)"}, ["廖內省"] = {wp = "Riau"}, ["廖內群島省"] = {wp = "Riau Islands"}, ["東南蘇拉威西省"] = {wp = "Southeast Sulawesi"}, ["南加里曼丹省"] = {wp = "South Kalimantan"}, ["南巴布亞省"] = {wp = "South Papua"}, ["南蘇拉威西省"] = {wp = "South Sulawesi"}, ["南蘇門答臘省"] = {wp = "South Sumatra"}, ["西南巴布亞省"] = {wp = "Southwest Papua"}, ["西爪哇省"] = {wp = "West Java"}, ["西加里曼丹省"] = {wp = "West Kalimantan"}, ["西努沙登加拉省"] = {wp = "West Nusa Tenggara"}, ["西巴布亞省"] = {wp = "West Papua (province)"}, ["西蘇拉威西省"] = {wp = "West Sulawesi"}, ["西蘇門答臘省"] = {wp = "West Sumatra"}, ["日惹特區"] = {wp = "Special Region of Yogyakarta"}, } export.indonesia_group = { placename_to_key = false, default_container = "印度尼西亞", default_placetype = "province", data = export.indonesia_provinces, } export.iran_provinces = { ["阿爾博爾茲省"] = {wp = "Alborz Province"}, ["阿爾達比勒省"] = {wp = "Ardabil Province"}, ["布什爾省"] = {wp = "Bushehr Province"}, ["恰哈爾馬哈勒-巴赫蒂亞里省"] = {wp = "Chaharmahal and Bakhtiari Province"}, ["東阿塞拜疆省"] = {wp = "East Azerbaijan Province"}, ["法爾斯省"] = {wp = "Fars Province"}, ["帕爾斯省"] = {alias_of = "法爾斯省"}, ["吉蘭省"] = {wp = "Gilan Province"}, ["戈勒斯坦省"] = {wp = "Golestan Province"}, ["哈馬丹省"] = {wp = "Hamadan Province"}, ["霍爾木茲甘省"] = {wp = "Hormozgan Province"}, ["伊拉姆省"] = {wp = "Ilam Province"}, ["伊斯法罕省"] = {wp = "Isfahan Province"}, ["克爾曼省"] = {wp = "Kerman Province"}, ["克爾曼沙赫省"] = {wp = "Kermanshah Province"}, ["胡齊斯坦省"] = {wp = "Khuzestan Province"}, ["科吉盧耶-博亞赫邁德省"] = {wp = "Kohgiluyeh and Boyer-Ahmad Province"}, ["庫爾德斯坦省"] = {wp = "Kurdistan Province"}, ["洛雷斯坦省"] = {wp = "Lorestan Province"}, ["馬爾卡齊省"] = {wp = "Markazi Province"}, ["馬贊達蘭省"] = {wp = "Mazandaran Province"}, ["北呼羅珊省"] = {wp = "North Khorasan Province"}, ["加茲溫省"] = {wp = "Qazvin Province"}, ["庫姆省"] = {wp = "Qom Province"}, ["拉扎維呼羅珊省"] = {wp = "Razavi Khorasan Province"}, ["森南省"] = {wp = "Semnan Province"}, ["錫斯坦-俾路支斯坦省"] = {wp = "Sistan and Baluchestan Province"}, ["南呼羅珊省"] = {wp = "South Khorasan Province"}, ["德黑蘭省"] = {wp = "Tehran Province"}, ["西阿塞拜疆省"] = {wp = "West Azerbaijan Province"}, ["亞茲德省"] = {wp = "Yazd Province"}, ["贊詹省"] = {wp = "Zanjan Province"}, } export.iran_group = { placename_to_key = false, default_container = "伊朗", default_placetype = "province", data = export.iran_provinces, } export.ireland_counties = { ["卡洛郡"] = {wp = "County Carlow"}, ["卡文郡"] = {wp = "County Cavan"}, ["克萊爾郡"] = {wp = "County Clare"}, ["科克郡"] = {wp = "County Cork"}, ["多尼戈爾郡"] = {wp = "County Donegal"}, ["都柏林郡"] = {wp = "County Dublin"}, ["戈爾韋郡"] = {wp = "County Galway"}, ["克里郡"] = {wp = "County Kerry"}, ["基爾代爾郡"] = {wp = "County Kildare"}, ["基爾肯尼郡"] = {wp = "County Kilkenny"}, ["萊什郡"] = {wp = "County Laois"}, ["利特里姆郡"] = {wp = "County Leitrim"}, ["利默里克郡"] = {wp = "County Limerick"}, ["朗福德郡"] = {wp = "County Longford"}, ["勞斯郡"] = {wp = "County Louth"}, ["梅奧郡"] = {wp = "County Mayo"}, ["米斯郡"] = {wp = "County Meath"}, ["莫納亨郡"] = {wp = "County Monaghan"}, ["奧法利郡"] = {wp = "County Offaly"}, ["羅斯康芒郡"] = {wp = "County Roscommon"}, ["斯萊戈郡"] = {wp = "County Sligo"}, ["蒂珀雷里郡"] = {wp = "County Tipperary"}, ["沃特福德郡"] = {wp = "County Waterford"}, ["西米斯郡"] = {wp = "County Westmeath"}, ["韋克斯福德郡"] = {wp = "County Wexford"}, ["威克洛郡"] = {wp = "County Wicklow"}, } -- 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 = { placename_to_key = false, default_container = "愛爾蘭", default_placetype = "county", data = export.ireland_counties, } export.italy_administrative_regions = { ["阿布魯佐"] = {wp = "Abruzzo"}, ["巴西利卡塔"] = {wp = "Basilicata"}, ["卡拉布里亞"] = {wp = "Calabria"}, ["坎帕尼亞"] = {wp = "Campania"}, ["艾米利亞-羅馬涅"] = {wp = "Emilia-Romagna"}, ["弗留利-威尼斯朱利亞"] = {wp = "Friuli-Venezia Giulia"}, ["拉齊奧"] = {wp = "Lazio"}, ["利古里亞"] = {wp = "Liguria"}, ["倫巴第"] = {wp = "Lombardy"}, ["倫巴底"] = {alias_of = "倫巴第"}, ["馬爾凱"] = {wp = "Marche"}, ["莫利塞"] = {wp = "Molise"}, ["皮埃蒙特"] = {wp = "Piedmont"}, ["普利亞"] = {wp = "Apulia"}, ["阿普利亞"] = {alias_of = "普利亞"}, ["薩丁尼亞"] = {wp = "Sardinia"}, ["西西里"] = {wp = "Sicily"}, ["托斯卡納"] = {wp = "Tuscany"}, ["特倫蒂諾-上阿迪傑"] = {wp = "Trentino-Alto Adige/Südtirol"}, ["翁布里亞"] = {wp = "Umbria"}, ["奧斯塔谷"] = {wp = "Aosta Valley"}, ["威尼托"] = {wp = "Veneto"}, } export.italy_group = { placename_to_key = false, default_container = "意大利", default_placetype = "region", data = export.italy_administrative_regions, } -- table of Japanese prefectures; interpolated into the main 'places' table, but also needed separately export.japan_prefectures = { ["青森縣"] = {wp = "青森縣"}, ["岩手縣"] = {wp = "岩手縣"}, ["宮城縣"] = {wp = "宮城縣"}, ["秋田縣"] = {wp = "秋田縣"}, ["山形縣"] = {wp = "山形縣"}, ["福島縣"] = {wp = "福島縣"}, ["茨城縣"] = {wp = "茨城縣"}, ["栃木縣"] = {wp = "栃木縣"}, ["群馬縣"] = {wp = "群馬縣"}, ["埼玉縣"] = {wp = "埼玉縣"}, ["千葉縣"] = {wp = "千葉縣"}, ["神奈川縣"] = {wp = "神奈川縣"}, ["新潟縣"] = {wp = "新潟縣"}, ["富山縣"] = {wp = "富山縣"}, ["石川縣"] = {wp = "石川縣"}, ["福井縣"] = {wp = "福井縣"}, ["山梨縣"] = {wp = "山梨縣"}, ["長野縣"] = {wp = "長野縣"}, ["岐阜縣"] = {wp = "岐阜縣"}, ["靜岡縣"] = {wp = "靜岡縣"}, ["愛知縣"] = {wp = "愛知縣"}, ["三重縣"] = {wp = "三重縣"}, ["滋賀縣"] = {wp = "滋賀縣"}, ["兵庫縣"] = {wp = "兵庫縣"}, ["奈良縣"] = {wp = "奈良縣"}, ["和歌山縣"] = {wp = "和歌山縣"}, ["鳥取縣"] = {wp = "鳥取縣"}, ["島根縣"] = {wp = "島根縣"}, ["岡山縣"] = {wp = "岡山縣"}, ["廣島縣"] = {wp = "廣島縣"}, ["山口縣"] = {wp = "山口縣"}, ["德島縣"] = {wp = "德島縣"}, ["香川縣"] = {wp = "香川縣"}, ["愛媛縣"] = {wp = "愛媛縣"}, ["高知縣"] = {wp = "高知縣"}, ["福岡縣"] = {wp = "福岡縣"}, ["佐賀縣"] = {wp = "佐賀縣"}, ["長崎縣"] = {wp = "長崎縣"}, ["熊本縣"] = {wp = "熊本縣"}, ["大分縣"] = {wp = "大分縣"}, ["宮崎縣"] = {wp = "宮崎縣"}, ["鹿兒島縣"] = {wp = "鹿兒島縣"}, ["沖繩縣"] = {wp = "沖繩縣"}, ["北海道"] = {divs = {"subprefectures"}, wp = "北海道"}, ["京都府"] = {wp = "京都府"}, ["大阪府"] = {wp = "大阪府"}, } local function japan_placename_to_key(placename) local japan_placename_to_key_map = { -- ["東京"] = "東京都", ["大阪"] = "大阪府", ["京都"] = "京都府", } if placename:find("[都道府縣]$") then return placename -- 已帶後綴,不轉換 end return japan_placename_to_key_map[placename] or (placename .. "縣") end -- prefectures of Japan export.japan_group = { key_to_placename = make_key_to_placename(nil, "[都道府縣]$"), placename_to_key = japan_placename_to_key, default_container = "日本", default_placetype = "prefecture", default_divs = {"cities", "districts"}, data = export.japan_prefectures, } export.laos_provinces = { ["阿塔坡省"] = {wp = "Attapeu Province"}, ["博膠省"] = {wp = "Bokeo Province"}, ["波里坎賽省"] = {wp = "Bolikhamxai Province"}, ["占巴塞省"] = {wp = "Champasak Province"}, ["華潘省"] = {wp = "Houaphanh Province"}, ["甘蒙省"] = {wp = "Khammouane Province"}, ["南塔省"] = {wp = "Luang Namtha Province"}, ["琅勃拉邦省"] = {wp = "Luang Prabang Province"}, ["烏多姆賽省"] = {wp = "Oudomxay Province"}, ["豐沙里省"] = {wp = "Phongsaly Province"}, ["沙拉灣省"] = {wp = "Salavan Province"}, ["沙灣拿吉省"] = {wp = "Savannakhet Province"}, ["萬象省"] = {wp = "Vientiane Province"}, ["萬象直轄市"] = {placetype = "prefecture", wp = "Vientiane Prefecture"}, ["賽亞武里省"] = {wp = "Sainyabuli Province"}, ["塞公省"] = {wp = "Sekong Province"}, ["賽頌本省"] = {wp = "Xaisomboun Province"}, ["川壙省"] = {wp = "Xiangkhouang Province"}, } export.laos_group = { placename_to_key = false, default_container = "老撾", default_placetype = "province", data = export.laos_provinces, } export.lebanon_governorates = { ["阿卡爾省"] = {wp = "Akkar Governorate"}, ["巴勒貝克-赫爾梅勒省"] = {wp = "Baalbek-Hermel Governorate"}, ["貝魯特省"] = {wp = "Beirut Governorate"}, ["貝卡省"] = {wp = "Beqaa Governorate"}, ["克塞旺-裘拜勒省"] = {wp = "Keserwan-Jbeil Governorate"}, ["黎巴嫩山省"] = {wp = "Mount Lebanon Governorate"}, ["納巴蒂耶省"] = {wp = "Nabatieh Governorate"}, ["北部省(黎巴嫩)"] = {wp = "North Governorate (Lebanon)", no_auto_augment_container = true}, ["南部省(黎巴嫩)"] = {wp = "South Governorate (Lebanon)", no_auto_augment_container = true}, } export.lebanon_group = { placename_to_key = false, default_container = "黎巴嫩", default_placetype = "governorate", data = export.lebanon_governorates, } export.malaysia_states = { ["柔佛州"] = {wp = "Johor"}, ["吉打州"] = {wp = "Kedah"}, ["吉蘭丹州"] = {wp = "Kelantan"}, ["馬六甲州"] = {wp = "Malacca"}, ["森美蘭州"] = {wp = "Negeri Sembilan"}, ["彭亨州"] = {wp = "Pahang"}, ["檳城州"] = {wp = "Penang"}, ["霹靂州"] = {wp = "Perak"}, ["玻璃市州"] = {wp = "Perlis"}, ["沙巴州"] = {wp = "Sabah"}, ["砂拉越州"] = {wp = "Sarawak"}, ["雪蘭莪州"] = {wp = "Selangor"}, ["登嘉樓州"] = {wp = "Terengganu"}, } export.malaysia_group = { placename_to_key = false, default_container = "馬來西亞", default_placetype = "state", data = export.malaysia_states, } export.malta_regions = { ["東部區(馬爾他)"] = {wp = "Eastern Region, Malta", no_auto_augment_container = true}, ["戈佐區"] = {wp = "Gozo Region"}, ["北部區(馬爾他)"] = {wp = "Northern Region, Malta", no_auto_augment_container = true}, ["港口區"] = {wp = "Port Region, Malta"}, ["南部區(馬爾他)"] = {wp = "Southern Region, Malta", no_auto_augment_container = true}, ["西部區(馬爾他)"] = {wp = "Western Region, Malta", no_auto_augment_container = true}, } export.malta_group = { placename_to_key = false, default_container = "馬爾他", default_placetype = "region", data = export.malta_regions, } export.mexico_states = { ["阿瓜斯卡連特斯州"] = {wp = "Aguascalientes"}, ["下加利福尼亞州"] = {wp = "Baja California"}, ["南下加利福尼亞州"] = {wp = "Baja California Sur"}, ["坎佩切州"] = {wp = "Campeche"}, ["恰帕斯州"] = {wp = "Chiapas"}, ["奇瓦瓦州"] = {wp = "Chihuahua (state)"}, ["科阿韋拉州"] = {wp = "Coahuila"}, ["科利馬州"] = {wp = "Colima"}, ["杜蘭戈州"] = {wp = "Durango"}, ["瓜納華托州"] = {wp = "Guanajuato"}, ["格雷羅州"] = {wp = "Guerrero"}, ["伊達爾戈州"] = {wp = "Hidalgo (state)"}, ["哈利斯科州"] = {wp = "Jalisco"}, ["墨西哥州"] = {wp = "State of Mexico"}, ["米卻肯州"] = {wp = "Michoacán"}, ["莫雷洛斯州"] = {wp = "Morelos"}, ["納亞里特州"] = {wp = "Nayarit"}, ["新萊昂州"] = {wp = "Nuevo León"}, ["瓦哈卡州"] = {wp = "Oaxaca"}, ["普埃布拉州"] = {wp = "Puebla"}, ["克雷塔羅州"] = {wp = "Querétaro"}, ["金塔納羅奧州"] = {wp = "Quintana Roo"}, ["聖路易斯波托西州"] = {wp = "San Luis Potosí"}, ["錫那羅亞州"] = {wp = "Sinaloa"}, ["索諾拉州"] = {wp = "Sonora"}, ["塔巴斯科州"] = {wp = "Tabasco (state)"}, ["塔毛利帕斯州"] = {wp = "Tamaulipas"}, ["特拉斯卡拉州"] = {wp = "Tlaxcala"}, ["韋拉克魯斯州"] = {wp = "Veracruz"}, ["尤卡坦州"] = {wp = "Yucatán"}, ["薩卡特卡斯州"] = {wp = "Zacatecas"}, } export.mexico_group = { placename_to_key = false, default_container = "墨西哥", default_placetype = "state", data = export.mexico_states, } export.moldova_districts_and_autonomous_territorial_units = { ["阿內尼諾伊區"] = {wp = "Anenii Noi District"}, ["巴薩拉比亞斯卡區"] = {wp = "Basarabeasca District"}, ["布里切尼區"] = {wp = "Briceni District"}, ["卡胡爾區"] = {wp = "Cahul District"}, ["坎特米爾區"] = {wp = "Cantemir District"}, ["克勒拉希區"] = {wp = "Călărași District"}, ["考沙尼區"] = {wp = "Căușeni District"}, ["奇米什利亞區"] = {wp = "Cimișlia District"}, ["克里烏列尼區"] = {wp = "Criuleni District"}, ["東杜沙尼區"] = {wp = "Dondușeni District"}, ["德羅基亞區"] = {wp = "Drochia District"}, ["杜巴薩里區"] = {wp = "Dubăsari District"}, ["埃迪涅茨區"] = {wp = "Edineț District"}, ["法勒什蒂區"] = {wp = "Fălești District"}, ["弗洛雷什蒂區"] = {wp = "Florești District"}, ["格洛德尼區"] = {wp = "Glodeni District"}, ["欣切什蒂區"] = {wp = "Hîncești District"}, ["亞洛韋尼區"] = {wp = "Ialoveni District"}, ["萊奧瓦區"] = {wp = "Leova District"}, ["尼斯波雷尼區"] = {wp = "Nisporeni District"}, ["奧克尼察區"] = {wp = "Ocnița District"}, ["奧爾海伊區"] = {wp = "Orhei District"}, ["雷齊納區"] = {wp = "Rezina District"}, ["雷什卡尼區"] = {wp = "Rîșcani District"}, ["辛格雷伊區"] = {wp = "Sîngerei District"}, ["索羅卡區"] = {wp = "Soroca District"}, ["斯特拉沙尼區"] = {wp = "Strășeni District"}, ["紹爾達涅什蒂區"] = {wp = "Șoldănești District"}, ["斯蒂凡沃達區"] = {wp = "Ștefan Vodă District"}, ["塔拉克利亞區"] = {wp = "Taraclia District"}, ["泰萊涅什蒂區"] = {wp = "Telenești District"}, ["翁格尼區"] = {wp = "Ungheni District"}, ["基希訥烏市"] = {wp = "Chișinău", placetype = "municipality"}, ["巴爾茨市"] = {wp = "Bălți", placetype = "municipality"}, ["加告茲自治領土"] = {wp = "Gagauzia", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, ["本德爾市"] = {wp = "Bender, Moldova", placetype = "municipality"}, ["德涅斯特河沿岸"] = {wp = "Transnistria", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, } export.moldova_group = { placename_to_key = false, default_container = "摩爾多瓦", default_placetype = {"district", "raion"}, data = export.moldova_districts_and_autonomous_territorial_units, } export.morocco_regions = { ["丹吉爾-得土安-霍賽馬大區"] = {wp = "Tangier-Tetouan-Al Hoceima"}, ["東方大區(摩洛哥)"] = {wp = "Oriental, Morocco"}, ["非斯-梅克內斯大區"] = {wp = "Fez-Meknes"}, ["拉巴特-薩累-肯尼特拉大區"] = {wp = "Rabat-Salé-Kénitra"}, ["貝尼梅拉勒-赫尼夫拉大區"] = {wp = "Béni Mellal-Khénifra"}, ["卡薩布蘭卡-塞塔特大區"] = {wp = "Casablanca-Settat"}, ["馬拉喀什-薩菲大區"] = {wp = "Marrakesh-Safi"}, ["德拉阿-塔菲拉勒特大區"] = {wp = "Drâa-Tafilalet"}, ["蘇斯-馬薩大區"] = {wp = "Souss-Massa"}, ["蓋勒明-烏德農大區"] = {wp = "Guelmim-Oued Noun"}, ["拉阿永-薩基亞-哈姆拉大區"] = {wp = "Laâyoune-Sakia El Hamra"}, ["達赫拉-奧以德達赫卜大區"] = {wp = "Dakhla-Oued Ed-Dahab"}, } export.morocco_group = { placename_to_key = false, default_container = "摩洛哥", default_placetype = "region", data = export.morocco_regions, } export.egypt_governorates = { ["開羅省"] = {wp = "Cairo Governorate"}, ["吉薩省"] = {wp = "Giza Governorate"}, ["夏爾基亞省"] = {wp = "Sharqia Governorate"}, ["達卡利亞省"] = {wp = "Dakahlia Governorate"}, ["貝海拉省"] = {wp = "Beheira Governorate"}, ["明亞省"] = {wp = "Minya Governorate"}, ["蓋柳比亞省"] = {wp = "Qalyubia Governorate"}, ["索哈傑省"] = {wp = "Sohag Governorate"}, ["亞歷山大省"] = {wp = "Alexandria Governorate"}, ["加爾比亞省"] = {wp = "Gharbia Governorate"}, ["艾斯尤特省"] = {wp = "Asyut Governorate"}, ["莫諾菲亞省"] = {wp = "Monufia Governorate"}, ["法尤姆省"] = {wp = "Faiyum Governorate"}, ["卡夫爾謝赫省"] = {wp = "Kafr El Sheikh Governorate"}, ["基納省"] = {wp = "Qena Governorate"}, ["本尼蘇威夫省"] = {wp = "Beni Suef Governorate"}, ["達米埃塔省"] = {wp = "Damietta Governorate"}, ["阿斯旺省"] = {wp = "Aswan Governorate"}, ["伊斯梅利亞省"] = {wp = "Ismailia Governorate"}, ["盧克索省"] = {wp = "Luxor Governorate"}, ["蘇伊士省"] = {wp = "Suez Governorate"}, ["塞德港省"] = {wp = "Port Said Governorate"}, ["馬特魯省"] = {wp = "Matrouh Governorate"}, ["北西奈省"] = {wp = "North Sinai Governorate"}, ["紅海省"] = {wp = "Red Sea Governorate"}, ["新河谷省"] = {wp = "New Valley Governorate"}, ["南西奈省"] = {wp = "South Sinai Governorate"}, } export.egypt_group = { placename_to_key = false, default_container = "埃及", default_placetype = "governorate", data = export.egypt_governorates, } export.spain_autonomous_communities = { ["安達盧西亞"] = {wp = "Andalusia"}, ["安達魯西亞"] = {alias_of = "安達盧西亞"}, ["阿拉貢"] = {wp = "Aragon"}, ["阿斯圖里亞斯"] = {wp = "Asturias"}, ["巴利阿里群島"] = {wp = "Balearic Islands"}, ["巴斯克"] = {wp = "Basque Country (autonomous community)"}, ["加那利群島"] = {wp = "Canary Islands"}, ["坎塔布里亞"] = {wp = "Cantabria"}, ["卡斯蒂利亞-拉曼恰"] = {wp = "Castilla-La Mancha"}, ["卡斯蒂利亞-萊昂"] = {wp = "Castilla y León"}, ["加泰羅尼亞"] = {wp = "Catalonia"}, ["加泰隆尼亞"] = {alias_of = "加泰羅尼亞"}, ["埃斯特雷馬杜拉"] = {wp = "Extremadura"}, ["加利西亞"] = {wp = "Galicia (Spain)"}, ["拉里奧哈"] = {wp = "La Rioja (autonomous community)"}, ["馬德里自治區"] = {wp = "Community of Madrid"}, ["穆爾西亞"] = {wp = "Region of Murcia"}, ["納瓦拉"] = {wp = "Navarre"}, ["巴倫西亞"] = {wp = "Valencian Community"}, ["巴倫西亞自治區"] = {alias_of = "巴倫西亞"}, } export.spain_group = { placename_to_key = false, default_container = "西班牙", default_placetype = "autonomous community", data = export.spain_autonomous_communities, } export.taiwan_counties = { ["彰化縣"] = {wp = "彰化縣"}, ["嘉義縣"] = {wp = "嘉義縣"}, ["新竹縣"] = {wp = "新竹縣"}, ["花蓮縣"] = {wp = "花蓮縣"}, ["金門縣"] = {wp = "金門縣"}, ["連江縣"] = {wp = "連江縣"}, ["苗栗縣"] = {wp = "苗栗縣"}, ["南投縣"] = {wp = "南投縣"}, ["屏東縣"] = {wp = "屏東縣"}, ["澎湖縣"] = {wp = "澎湖縣"}, ["宜蘭縣"] = {wp = "宜蘭縣"}, ["雲林縣"] = {wp = "雲林縣"}, } export.taiwan_group = { key_to_placename = make_key_to_placename(nil, "縣$"), placename_to_key = make_placename_to_key("縣"), default_container = "臺灣", default_placetype = "county", default_divs = {"districts", "townships"}, data = export.taiwan_counties, } export.new_york_boroughs = { ["布朗克斯"] = {the = true, wp = "The Bronx"}, ["布魯克林"] = {wp = "Brooklyn"}, ["曼哈頓"] = {wp = "Manhattan"}, ["皇后區"] = {wp = "Queens"}, ["史泰登島"] = {wp = "Staten Island"}, } export.new_york_boroughs_group = { placename_to_key = false, default_container = {key = "紐約市", placetype = "city"}, default_placetype = "borough", default_is_city = true, data = export.new_york_boroughs, } export.romania_counties = { ["阿爾巴縣"] = {wp = "Alba County"}, ["阿拉德縣"] = {wp = "Arad County"}, ["阿爾傑什縣"] = {wp = "Argeș County"}, ["巴考縣"] = {wp = "Bacău County"}, ["比霍爾縣"] = {wp = "Bihor County"}, ["比斯特里察-訥瑟烏德縣"] = {wp = "Bistrița-Năsăud County"}, ["博托沙尼縣"] = {wp = "Botoșani County"}, ["布拉索夫縣"] = {wp = "Brașov County"}, ["布勒伊拉縣"] = {wp = "Brăila County"}, ["布澤烏縣"] = {wp = "Buzău County"}, ["卡拉什-塞韋林縣"] = {wp = "Caraș-Severin County"}, ["克盧日縣"] = {wp = "Cluj County"}, ["康斯坦察縣"] = {wp = "Constanța County"}, ["科瓦斯納縣"] = {wp = "Covasna County"}, ["克勒拉希縣"] = {wp = "Călărași County"}, ["多爾日縣"] = {wp = "Dolj County"}, ["登博維察縣"] = {wp = "Dâmbovița County"}, ["加拉茨縣"] = {wp = "Galați County"}, ["久爾久縣"] = {wp = "Giurgiu County"}, ["戈爾日縣"] = {wp = "Gorj County"}, ["哈爾吉塔縣"] = {wp = "Harghita County"}, ["胡內多阿拉縣"] = {wp = "Hunedoara County"}, ["雅洛米察縣"] = {wp = "Ialomița County"}, ["雅西縣"] = {wp = "Iași County"}, ["伊爾福夫縣"] = {wp = "Ilfov County"}, ["馬拉穆列什縣"] = {wp = "Maramureș County"}, ["梅赫丁茨縣"] = {wp = "Mehedinți County"}, ["穆列什縣"] = {wp = "Mureș County"}, ["尼亞姆茨縣"] = {wp = "Neamț County"}, ["奧爾特縣"] = {wp = "Olt County"}, ["普拉霍瓦縣"] = {wp = "Prahova County"}, ["薩圖馬雷縣"] = {wp = "Satu Mare County"}, ["錫比烏縣"] = {wp = "Sibiu County"}, ["蘇恰瓦縣"] = {wp = "Suceava County"}, ["瑟拉日縣"] = {wp = "Sălaj County"}, ["特列奧爾曼縣"] = {wp = "Teleorman County"}, ["蒂米什縣"] = {wp = "Timiș County"}, ["圖爾恰縣"] = {wp = "Tulcea County"}, ["瓦斯盧伊縣"] = {wp = "Vaslui County"}, ["弗蘭恰縣"] = {wp = "Vrancea County"}, ["沃爾恰縣"] = {wp = "Vâlcea County"}, } export.romania_group = { placename_to_key = false, default_container = "羅馬尼亞", default_placetype = "county", data = export.romania_counties, } export.north_korea_provinces = { ["慈江道"] = {wp = "慈江道"}, ["咸鏡北道"] = {wp = "咸鏡北道"}, ["咸鏡南道"] = {wp = "咸鏡南道"}, ["黃海北道"] = {wp = "黃海北道"}, ["黃海南道"] = {wp = "黃海南道"}, ["江原道(北韓)"] = {wp = "江原道 (朝鮮民主主義人民共和國)"}, ["平安北道"] = {wp = "平安北道"}, ["平安南道"] = {wp = "平安南道"}, ["兩江道"] = {wp = "兩江道"}, } export.north_korea_group = { placename_to_key = false, default_container = "朝鮮", default_placetype = "province", data = export.north_korea_provinces, } export.south_korea_provinces = { ["忠清北道"] = {wp = "忠清北道"}, ["忠清南道"] = {wp = "忠清南道"}, ["江原道(南韓)"] = {wp = "江原特別自治道"}, ["京畿道"] = {wp = "京畿道"}, ["慶尚北道"] = {wp = "慶尚北道"}, ["慶尚南道"] = {wp = "慶尚南道"}, ["全羅北道"] = {wp = "全羅北道"}, ["全羅南道"] = {wp = "全羅南道"}, ["濟州道"] = {wp = "濟州道"}, } export.south_korea_group = { placename_to_key = false, default_container = "韓國", default_placetype = "province", data = export.south_korea_provinces, } export.thailand_provinces = { ["阿姆納特坤府"] = {wp = "Amnat Charoen Province"}, ["紅統府"] = {wp = "Ang Thong Province"}, ["彭侃府"] = {wp = "Bueng Kan Province"}, ["武里南府"] = {wp = "Buriram Province"}, ["北柳府"] = {wp = "Chachoengsao Province"}, ["猜納府"] = {wp = "Chai Nat Province"}, ["猜耶奔府"] = {wp = "Chaiyaphum Province"}, ["尖竹汶府"] = {wp = "Chanthaburi Province"}, ["清邁府"] = {wp = "Chiang Mai Province"}, ["清萊府"] = {wp = "Chiang Rai Province"}, ["春武里府"] = {wp = "Chonburi Province"}, ["春蓬府"] = {wp = "Chumphon Province"}, ["加拉信府"] = {wp = "Kalasin Province"}, ["甘烹碧府"] = {wp = "Kamphaeng Phet Province"}, ["北碧府"] = {wp = "Kanchanaburi Province"}, ["孔敬府"] = {wp = "Khon Kaen Province"}, ["甲米府"] = {wp = "Krabi Province"}, ["南邦府"] = {wp = "Lampang Province"}, ["南奔府"] = {wp = "Lamphun Province"}, ["黎府"] = {wp = "Loei Province"}, ["華富里府"] = {wp = "Lopburi Province"}, ["夜豐頌府"] = {wp = "Mae Hong Son Province"}, ["瑪哈沙拉堪府"] = {wp = "Maha Sarakham Province"}, ["莫達罕府"] = {wp = "Mukdahan Province"}, ["那空那育府"] = {wp = "Nakhon Nayok Province"}, ["佛統府"] = {wp = "Nakhon Pathom Province"}, ["那空帕農府"] = {wp = "Nakhon Phanom Province"}, ["呵叻府"] = {wp = "Nakhon Ratchasima Province"}, ["那空沙旺府"] = {wp = "Nakhon Sawan Province"}, ["洛坤府"] = {wp = "Nakhon Si Thammarat Province"}, ["難府"] = {wp = "Nan Province"}, ["那拉提瓦府"] = {wp = "Narathiwat Province"}, ["農布瓦蘭普府"] = {wp = "Nong Bua Lamphu Province"}, ["廊開府"] = {wp = "Nong Khai Province"}, ["暖武里府"] = {wp = "Nonthaburi Province"}, ["巴吞他尼府"] = {wp = "Pathum Thani Province"}, ["北大年府"] = {wp = "Pattani Province"}, ["攀牙府"] = {wp = "Phang Nga Province"}, ["博他侖府"] = {wp = "Phatthalung Province"}, ["帕堯府"] = {wp = "Phayao Province"}, ["碧差汶府"] = {wp = "Phetchabun Province"}, ["碧武里府"] = {wp = "Phetchaburi Province"}, ["披集府"] = {wp = "Phichit Province"}, ["彭世洛府"] = {wp = "Phitsanulok Province"}, ["大城府"] = {wp = "Phra Nakhon Si Ayutthaya Province"}, ["帕府"] = {wp = "Phrae Province"}, ["普吉府"] = {wp = "Phuket Province"}, ["巴真府"] = {wp = "Prachinburi Province"}, ["巴蜀府"] = {wp = "Prachuap Khiri Khan Province"}, ["拉廊府"] = {wp = "Ranong Province"}, ["叻丕府"] = {wp = "Ratchaburi Province"}, ["羅勇府"] = {wp = "Rayong Province"}, ["黎逸府"] = {wp = "Roi Et Province"}, ["沙繳府"] = {wp = "Sa Kaeo Province"}, ["色軍府"] = {wp = "Sakon Nakhon Province"}, ["北欖府"] = {wp = "Samut Prakan Province"}, ["沙沒沙空府"] = {wp = "Samut Sakhon Province"}, ["沙沒頌堪府"] = {wp = "Samut Songkhram Province"}, ["沙拉武里府"] = {wp = "Saraburi Province"}, ["沙敦府"] = {wp = "Satun Province"}, ["信武里府"] = {wp = "Sing Buri Province"}, ["四色菊府"] = {wp = "Sisaket Province"}, ["宋卡府"] = {wp = "Songkhla Province"}, ["素可泰府"] = {wp = "Sukhothai Province"}, ["素攀武里府"] = {wp = "Suphan Buri Province"}, ["素叻他尼府"] = {wp = "Surat Thani Province"}, ["素林府"] = {wp = "Surin Province"}, ["達府"] = {wp = "Tak Province"}, ["董里府"] = {wp = "Trang Province"}, ["達叻府"] = {wp = "Trat Province"}, ["烏汶府"] = {wp = "Ubon Ratchathani Province"}, ["烏隆府"] = {wp = "Udon Thani Province"}, ["烏泰他尼府"] = {wp = "Uthai Thani Province"}, ["烏達拉勐府"] = {wp = "Uttaradit Province"}, ["惹拉府"] = {wp = "Yala Province"}, ["耶梭通府"] = {wp = "Yasothon Province"}, } export.thailand_group = { placename_to_key = false, default_container = "泰國", default_placetype = "province", data = export.thailand_provinces, } export.turkey_provinces = { ["阿達納省"] = {wp = "Adana Province"}, ["阿德亞曼省"] = {wp = "Adıyaman Province"}, ["阿菲永卡拉希薩爾省"] = {wp = "Afyonkarahisar Province"}, ["阿里省"] = {wp = "Ağrı Province"}, ["阿馬西亞省"] = {wp = "Amasya Province"}, ["安卡拉省"] = {wp = "Ankara Province"}, ["安塔利亞省"] = {wp = "Antalya Province"}, ["阿爾特溫省"] = {wp = "Artvin Province"}, ["艾登省"] = {wp = "Aydın Province"}, ["巴勒克埃西爾省"] = {wp = "Balıkesir Province"}, ["比萊吉克省"] = {wp = "Bilecik Province"}, ["賓格爾省"] = {wp = "Bingöl Province"}, ["比特利斯省"] = {wp = "Bitlis Province"}, ["博盧省"] = {wp = "Bolu Province"}, ["布爾杜爾省"] = {wp = "Burdur Province"}, ["布爾薩省"] = {wp = "Bursa Province"}, ["恰納卡萊省"] = {wp = "Çanakkale Province"}, ["昌克勒省"] = {wp = "Çankırı Province"}, ["喬魯姆省"] = {wp = "Çorum Province"}, ["代尼茲利省"] = {wp = "Denizli Province"}, ["迪亞巴克爾省"] = {wp = "Diyarbakır Province"}, ["埃迪爾內省"] = {wp = "Edirne Province"}, ["埃拉澤省"] = {wp = "Elazığ Province"}, ["埃爾津詹省"] = {wp = "Erzincan Province"}, ["埃爾祖魯姆省"] = {wp = "Erzurum Province"}, ["埃斯基謝希爾省"] = {wp = "Eskişehir Province"}, ["加濟安泰普省"] = {wp = "Gaziantep Province"}, ["吉雷松省"] = {wp = "Giresun Province"}, ["居米什哈內省"] = {wp = "Gümüşhane Province"}, ["哈卡里省"] = {wp = "Hakkâri Province"}, ["哈塔伊省"] = {wp = "Hatay Province"}, ["伊斯帕爾塔省"] = {wp = "Isparta Province"}, ["梅爾辛省"] = {wp = "Mersin Province"}, ["伊茲密爾省"] = {wp = "İzmir Province"}, ["卡爾斯省"] = {wp = "Kars Province"}, ["卡斯塔莫努省"] = {wp = "Kastamonu Province"}, ["開塞利省"] = {wp = "Kayseri Province"}, ["柯克拉雷利省"] = {wp = "Kırklareli Province"}, ["克爾謝希爾省"] = {wp = "Kırşehir Province"}, ["科賈埃利省"] = {wp = "Kocaeli Province"}, ["科尼亞省"] = {wp = "Konya Province"}, ["屈塔希亞省"] = {wp = "Kütahya Province"}, ["馬拉蒂亞省"] = {wp = "Malatya Province"}, ["馬尼薩省"] = {wp = "Manisa Province"}, ["卡赫拉曼馬拉什省"] = {wp = "Kahramanmaraş Province"}, ["馬爾丁省"] = {wp = "Mardin Province"}, ["穆拉省"] = {wp = "Muğla Province"}, ["穆什省"] = {wp = "Muş Province"}, ["內夫謝希爾省"] = {wp = "Nevşehir Province"}, ["尼代省"] = {wp = "Niğde Province"}, ["奧爾杜省"] = {wp = "Ordu Province"}, ["里澤省"] = {wp = "Rize Province"}, ["薩卡里亞省"] = {wp = "Sakarya Province"}, ["薩姆松省"] = {wp = "Samsun Province"}, ["錫爾特省"] = {wp = "Siirt Province"}, ["錫諾普省"] = {wp = "Sinop Province"}, ["錫瓦斯省"] = {wp = "Sivas Province"}, ["泰基爾達省"] = {wp = "Tekirdağ Province"}, ["托卡特省"] = {wp = "Tokat Province"}, ["特拉布宗省"] = {wp = "Trabzon Province"}, ["通傑利省"] = {wp = "Tunceli Province"}, ["尚勒烏爾法省"] = {wp = "Şanlıurfa Province"}, ["烏沙克省"] = {wp = "Uşak Province"}, ["凡省"] = {wp = "Van Province"}, ["約茲加特省"] = {wp = "Yozgat Province"}, ["宗古爾達克省"] = {wp = "Zonguldak Province"}, ["阿克薩賴省"] = {wp = "Aksaray Province"}, ["拜布爾特省"] = {wp = "Bayburt Province"}, ["卡拉曼省"] = {wp = "Karaman Province"}, ["克勒克卡萊省"] = {wp = "Kırıkkale Province"}, ["巴特曼省"] = {wp = "Batman Province"}, ["蘇爾納克省"] = {wp = "Şırnak Province"}, ["巴爾騰省"] = {wp = "Bartın Province"}, ["阿爾達罕省"] = {wp = "Ardahan Province"}, ["伊迪爾省"] = {wp = "Iğdır Province"}, ["亞洛瓦省"] = {wp = "Yalova Province"}, ["卡拉比克省"] = {wp = "Karabük Province"}, ["基利斯省"] = {wp = "Kilis Province"}, ["奧斯曼尼耶省"] = {wp = "Osmaniye Province"}, ["迪茲傑省"] = {wp = "Düzce Province"}, } export.turkey_group = { placename_to_key = false, default_container = "土耳其", default_placetype = "province", data = export.turkey_provinces, } export.vietnam_provinces = { -- Northeast ["北江省"] = {wp = "Bắc Giang Province"}, ["北件省"] = {wp = "Bắc Kạn Province"}, ["高平省"] = {wp = "Cao Bằng Province"}, ["河江省"] = {wp = "Hà Giang Province"}, ["諒山省"] = {wp = "Lạng Sơn Province"}, ["富壽省"] = {wp = "Phú Thọ Province"}, ["廣寧省"] = {wp = "Quảng Ninh Province"}, ["太原省"] = {wp = "Thái Nguyên Province"}, ["宣光省"] = {wp = "Tuyên Quang Province"}, -- Northwest ["老街省"] = {wp = "Lào Cai Province"}, ["安沛省"] = {wp = "Yên Bái Province"}, ["奠邊省"] = {wp = "Điện Biên Province"}, ["和平省"] = {wp = "Hoà Bình Province"}, ["萊州省"] = {wp = "Lai Châu Province"}, ["山羅省"] = {wp = "Sơn La Province"}, -- Red River Delta ["北寧省"] = {wp = "Bắc Ninh Province"}, ["河南省"] = {wp = "Hà Nam Province"}, ["海陽省"] = {wp = "Hải Dương Province"}, ["興安省"] = {wp = "Hưng Yên Province"}, ["南定省"] = {wp = "Nam Định Province"}, ["寧平省"] = {wp = "Ninh Bình Province"}, ["太平省"] = {wp = "Thái Bình Province"}, ["永福省"] = {wp = "Vĩnh Phúc Province"}, -- North Central Coast ["河靜省"] = {wp = "Hà Tĩnh Province"}, ["乂安省"] = {wp = "Nghệ An Province"}, ["廣平省"] = {wp = "Quảng Bình Province"}, ["廣治省"] = {wp = "Quảng Trị Province"}, ["清化省"] = {wp = "Thanh Hoá Province"}, -- Central Highlands ["得樂省"] = {wp = "Đắk Lắk Province"}, ["得農省"] = {wp = "Đăk Nông Province"}, ["嘉萊省"] = {wp = "Gia Lai Province"}, ["崑嵩省"] = {wp = "Kon Tum Province"}, ["林同省"] = {wp = "Lâm Đồng Province"}, -- South Central Coast ["平定省"] = {wp = "Bình Định Province"}, ["平順省"] = {wp = "Bình Thuận Province"}, ["慶和省"] = {wp = "Khánh Hoà Province"}, ["寧順省"] = {wp = "Ninh Thuận Province"}, ["富安省"] = {wp = "Phú Yên Province"}, ["廣南省"] = {wp = "Quảng Nam Province"}, ["廣義省"] = {wp = "Quảng Ngãi Province"}, -- Southeast ["巴地-頭頓省"] = {wp = "Bà Rịa–Vũng Tàu Province"}, ["平陽省"] = {wp = "Bình Dương Province"}, ["平福省"] = {wp = "Bình Phước Province"}, ["同奈省"] = {wp = "Đồng Nai Province"}, ["西寧省"] = {wp = "Tây Ninh Province"}, -- Mekong Delta ["安江省"] = {wp = "An Giang Province"}, ["薄寮省"] = {wp = "Bạc Liêu Province"}, ["檳椥省"] = {wp = "Bến Tre Province"}, ["金甌省"] = {wp = "Cà Mau Province"}, ["同塔省"] = {wp = "Đồng Tháp Province"}, ["後江省"] = {wp = "Hậu Giang Province"}, ["堅江省"] = {wp = "Kiên Giang Province"}, ["龍安省"] = {wp = "Long An Province"}, ["朔莊省"] = {wp = "Sóc Trăng Province"}, ["前江省"] = {wp = "Tiền Giang Province"}, ["茶榮省"] = {wp = "Trà Vinh Province"}, ["永隆省"] = {wp = "Vĩnh Long Province"}, } export.vietnam_group = { placename_to_key = false, default_container = "越南", default_placetype = "province", data = export.vietnam_provinces, } export.united_states_states = { ["阿拉巴馬"] = {wp = "Alabama"}, ["阿拉斯加"] = {wp = "Alaska"}, ["亞利桑那"] = {wp = "Arizona"}, ["阿肯色"] = {wp = "Arkansas"}, ["加利福尼亞"] = {wp = "California"}, ["加州"] = {alias_of = "加利福尼亞"}, ["科羅拉多"] = {wp = "Colorado"}, ["康乃狄克"] = {wp = "Connecticut"}, ["康涅狄格"] = {alias_of = "康乃狄克"}, ["德拉瓦"] = {wp = "Delaware"}, ["佛羅里達"] = {wp = "Florida"}, ["佛罗里达"] = {alias_of = "佛羅里達"}, ["佐治亞"] = {wp = "Georgia (U.S. state)"}, ["夏威夷"] = {addl_parents = {"玻里尼西亞"}, wp = "Hawaii"}, ["愛達荷"] = {wp = "Idaho"}, ["伊利諾伊"] = {wp = "Illinois"}, ["伊利诺伊"] = {alias_of = "伊利諾伊"}, ["印地安那"] = {wp = "Indiana"}, ["印第安納"] = {alias_of = "印地安那"}, ["愛荷華"] = {wp = "Iowa"}, ["堪薩斯"] = {wp = "Kansas"}, ["肯塔基"] = {wp = "Kentucky"}, ["路易斯安那"] = {wp = "Louisiana"}, ["緬因"] = {wp = "Maine"}, ["馬里蘭"] = {wp = "Maryland"}, ["麻薩諸塞"] = {wp = "Massachusetts"}, ["麻薩诸塞"] = {alias_of = "麻薩諸塞"}, ["密西根"] = {wp = "Michigan"}, ["密歇根"] = {alias_of = "密西根"}, ["明尼蘇達"] = {wp = "Minnesota"}, ["明尼苏达"] = {alias_of = "明尼蘇達"}, ["密西西比"] = {wp = "Mississippi"}, ["密蘇里"] = {wp = "Missouri"}, ["蒙大拿"] = {wp = "Montana"}, ["內布拉斯加"] = {wp = "Nebraska"}, ["內華達"] = {wp = "Nevada"}, ["新罕布什爾"] = {wp = "New Hampshire"}, ["新澤西"] = {wp = "New Jersey"}, ["新泽西"] = {alias_of = "新澤西"}, ["新墨西哥"] = {wp = "New Mexico"}, ["紐約"] = {wp = "New York (state)"}, ["纽约"] = {alias_of = "紐約"}, ["北卡羅來納"] = {wp = "North Carolina"}, ["北达科他"] = {alias_of = "北達科他"}, ["北達科他"] = {wp = "North Dakota"}, ["俄亥俄"] = {wp = "Ohio"}, ["奧克拉荷馬"] = {wp = "Oklahoma"}, ["奧勒岡"] = {wp = "Oregon"}, ["俄勒冈"] = {alias_of = "奧勒岡"}, ["賓夕法尼亞"] = {wp = "Pennsylvania"}, ["宾夕法尼亚"] = {alias_of = "賓夕法尼亞"}, ["羅德島"] = {wp = "Rhode Island"}, ["南卡羅來納"] = {wp = "South Carolina"}, ["南達科他"] = {wp = "South Dakota"}, ["田納西"] = {wp = "Tennessee"}, ["田纳西"] = {alias_of = "田納西"}, ["德克薩斯"] = {wp = "Texas"}, ["德州"] = {alias_of = "德克薩斯"}, ["猶他"] = {wp = "Utah"}, ["佛蒙特"] = {wp = "Vermont"}, ["弗吉尼亞"] = {wp = "Virginia"}, ["弗吉尼亚"] = {alias_of = "弗吉尼亞"}, ["維吉尼亞"] = {alias_of = "弗吉尼亞"}, ["華盛頓州"] = {wp = "Washington (state)"}, ["华盛顿州"] = {alias_of = "華盛頓州"}, ["西維吉尼亞"] = {wp = "West Virginia"}, ["西弗吉尼亞"] = {alias_of = "西維吉尼亞"}, ["威斯康辛"] = {wp = "Wisconsin"}, ["懷俄明"] = {wp = "Wyoming"}, -- Washington D.C. (federal district, treated like a state in holonym context) ["華盛頓特區"] = {placetype = {"federal district", "district"}, wp = "Washington, D.C."}, } export.united_states_group = { placename_to_key = false, default_container = "美國", default_placetype = "state", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, }, data = export.united_states_states, } export.united_kingdom_constituent_countries = { ["英格蘭"] = {divs = {"counties", "districts"}, wp = "England"}, ["北愛爾蘭"] = { placetype = {"constituent country", "province", "country"}, divs = {"counties", "districts"}, wp = "Northern Ireland", }, ["蘇格蘭"] = {divs = {{type = "council areas", container_parent_type = false}}, wp = "Scotland"}, ["威爾斯"] = {divs = {"counties"}, wp = "Wales"}, ["威爾士"] = {alias_of = "威爾斯"}, } export.united_kingdom_group = { placename_to_key = false, default_container = "英國", default_placetype = {"constituent country", "country"}, default_no_container_cat = true, data = export.united_kingdom_constituent_countries, } -- Scotland council areas export.scotland_council_areas = { ["Aberdeen市"] = {wp = "Aberdeen"}, ["Aberdeenshire"] = {wp = "Aberdeenshire"}, ["Angus"] = {wp = "Angus, Scotland"}, ["Argyll and Bute"] = {wp = "Argyll and Bute"}, ["Clackmannanshire"] = {wp = "Clackmannanshire"}, ["Dumfries and Galloway"] = {wp = "Dumfries and Galloway"}, ["Dundee市"] = {wp = "Dundee"}, ["East Ayrshire"] = {wp = "East Ayrshire"}, ["East Dunbartonshire"] = {wp = "East Dunbartonshire"}, ["East Lothian"] = {wp = "East Lothian"}, ["East Renfrewshire"] = {wp = "East Renfrewshire"}, ["Edinburgh市"] = {wp = "Edinburgh"}, ["Eilean Siar"] = {wp = "Outer Hebrides"}, ["Falkirk"] = {wp = "Falkirk"}, ["Fife"] = {wp = "Fife"}, ["Glasgow市"] = {wp = "Glasgow"}, ["高地"] = {wp = "Highland council area"}, ["Highland"] = {alias_of = "高地", display = true}, ["Inverclyde"] = {wp = "Inverclyde"}, ["Midlothian"] = {wp = "Midlothian"}, ["Moray"] = {wp = "Moray"}, ["North Ayrshire"] = {wp = "North Ayrshire"}, ["North Lanarkshire"] = {wp = "North Lanarkshire"}, ["Orkney群島"] = {wp = "Orkney"}, ["Perth and Kinross"] = {wp = "Perth and Kinross"}, ["Renfrewshire"] = {wp = "Renfrewshire"}, ["Scottish Borders"] = {wp = "Scottish Borders"}, ["Shetland群島"] = {wp = "Shetland"}, ["South Ayrshire"] = {wp = "South Ayrshire"}, ["South Lanarkshire"] = {wp = "South Lanarkshire"}, ["Stirling"] = {wp = "Stirling (council area)"}, ["West Dunbartonshire"] = {wp = "West Dunbartonshire"}, ["West Lothian"] = {wp = "West Lothian"}, } export.scotland_group = { placename_to_key = false, default_container = "蘇格蘭", default_placetype = "council area", data = export.scotland_council_areas, } -- England counties (ceremonial) export.england_counties = { -- Metropolitan counties ["大倫敦"] = {wp = "Greater London"}, ["大曼徹斯特"] = {wp = "Greater Manchester"}, ["默西賽德郡"] = {wp = "Merseyside"}, ["西密德蘭"] = {wp = "West Midlands (county)"}, ["南約克郡"] = {wp = "South Yorkshire"}, ["西約克郡"] = {wp = "West Yorkshire"}, ["泰恩-威爾郡"] = {wp = "Tyne and Wear"}, -- Non-metropolitan ceremonial counties ["貝德福德郡"] = {wp = "Bedfordshire"}, ["伯克郡"] = {wp = "Berkshire"}, ["白金漢郡"] = {wp = "Buckinghamshire"}, ["劍橋郡"] = {wp = "Cambridgeshire"}, ["柴郡"] = {wp = "Cheshire"}, ["康沃爾郡"] = {wp = "Cornwall"}, ["坎布里亞郡"] = {wp = "Cumbria"}, ["德比郡"] = {wp = "Derbyshire"}, ["德文郡"] = {wp = "Devon"}, ["多塞特郡"] = {wp = "Dorset"}, ["達勒姆郡"] = {wp = "County Durham"}, ["約克郡東區"] = {wp = "East Riding of Yorkshire"}, ["東薩塞克斯郡"] = {wp = "East Sussex"}, ["埃塞克斯郡"] = {wp = "Essex"}, ["格洛斯特郡"] = {wp = "Gloucestershire"}, ["漢普郡"] = {wp = "Hampshire"}, ["赫里福德郡"] = {wp = "Herefordshire"}, ["赫特福德郡"] = {wp = "Hertfordshire"}, ["懷特島"] = {wp = "Isle of Wight"}, ["肯特郡"] = {wp = "Kent"}, ["蘭開夏郡"] = {wp = "Lancashire"}, ["萊斯特郡"] = {wp = "Leicestershire"}, ["林肯郡"] = {wp = "Lincolnshire"}, ["諾福克郡"] = {wp = "Norfolk"}, ["北安普敦郡"] = {wp = "Northamptonshire"}, ["諾森伯蘭郡"] = {wp = "Northumberland"}, ["北約克郡"] = {wp = "North Yorkshire"}, ["諾丁漢郡"] = {wp = "Nottinghamshire"}, ["牛津郡"] = {wp = "Oxfordshire"}, ["拉特蘭郡"] = {wp = "Rutland"}, ["什羅普郡"] = {wp = "Shropshire"}, ["薩默塞特郡"] = {wp = "Somerset"}, ["南亨伯賽德郡"] = {wp = "South Humberside"}, ["斯塔福德郡"] = {wp = "Staffordshire"}, ["薩福克郡"] = {wp = "Suffolk"}, ["薩里郡"] = {wp = "Surrey"}, ["沃里克郡"] = {wp = "Warwickshire"}, ["西薩塞克斯郡"] = {wp = "West Sussex"}, ["威爾特郡"] = {wp = "Wiltshire"}, ["伍斯特郡"] = {wp = "Worcestershire"}, } export.england_group = { placename_to_key = false, default_container = {key = "英格蘭", placetype = "constituent country"}, default_placetype = "county", data = export.england_counties, } -- Counties of Northern Ireland export.northern_ireland_counties = { ["安特里姆郡"] = {wp = "County Antrim"}, ["阿爾馬郡"] = {wp = "County Armagh"}, ["貝爾法斯特市"] = {is_city = true, wp = "Belfast"}, ["唐郡"] = {wp = "County Down"}, ["弗馬納郡"] = {wp = "County Fermanagh"}, ["倫敦德里郡"] = {wp = "County Londonderry"}, ["德里市"] = {is_city = true, wp = "Derry"}, ["泰龍郡"] = {wp = "County Tyrone"}, } export.northern_ireland_group = { placename_to_key = false, default_container = {key = "北愛爾蘭", placetype = "constituent country"}, default_placetype = "county", data = export.northern_ireland_counties, } export.nigeria_states = { ["阿比亞州"] = {wp = "Abia State"}, ["阿達馬瓦州"] = {wp = "Adamawa State"}, ["阿誇伊博姆州"] = {wp = "Akwa Ibom State"}, ["阿南布拉州"] = {wp = "Anambra State"}, ["包奇州"] = {wp = "Bauchi State"}, ["貝耶薩州"] = {wp = "Bayelsa State"}, ["貝努埃州"] = {wp = "Benue State"}, ["博爾諾州"] = {wp = "Borno State"}, ["跨河州"] = {wp = "Cross River State"}, ["三角洲州"] = {wp = "Delta State"}, ["埃博尼州"] = {wp = "Ebonyi State"}, ["埃多州"] = {wp = "Edo State"}, ["埃基蒂州"] = {wp = "Ekiti State"}, ["埃努古州"] = {wp = "Enugu State"}, ["阿布賈聯邦首都轄區"] = {placetype = {"federal territory", "territory", "state"}, the = true, wp = "Federal Capital Territory, Nigeria"}, ["貢貝州"] = {wp = "Gombe State"}, ["伊莫州"] = {wp = "Imo State"}, ["吉加瓦州"] = {wp = "Jigawa State"}, ["卡杜納州"] = {wp = "Kaduna State"}, ["卡諾州"] = {wp = "Kano State"}, ["卡齊納州"] = {wp = "Katsina State"}, ["克比州"] = {wp = "Kebbi State"}, ["科吉州"] = {wp = "Kogi State"}, ["誇拉州"] = {wp = "Kwara State"}, ["拉各斯州"] = {wp = "Lagos State"}, ["納薩拉瓦州"] = {wp = "Nasarawa State"}, ["尼日爾州"] = {wp = "Niger State"}, ["奧貢州"] = {wp = "Ogun State"}, ["翁多州"] = {wp = "Ondo State"}, ["奧順州"] = {wp = "Osun State"}, ["奧約州"] = {wp = "Oyo State"}, ["高原州"] = {wp = "Plateau State"}, ["河流州"] = {wp = "Rivers State"}, ["索科托州"] = {wp = "Sokoto State"}, ["塔拉巴州"] = {wp = "Taraba State"}, ["約貝州"] = {wp = "Yobe State"}, ["贊法拉州"] = {wp = "Zamfara State"}, } export.nigeria_group = { placename_to_key = false, default_container = "奈及利亞", default_placetype = "state", data = export.nigeria_states, } ----------------------------------------------------------------------------------- -- Selected city groups -- ----------------------------------------------------------------------------------- -- Key world cities frequently used as holonyms (entries covered by dedicated city groups removed) export.misc_cities = { -- Americas ["費爾法克斯"] = {container = "弗吉尼亞", placetype = "city", is_city = true, wp = "Fairfax, Virginia"}, ["斯克蘭頓"] = {container = "賓夕法尼亞", placetype = "city", is_city = true, wp = "Scranton, Pennsylvania"}, ["里約熱內盧市"] = {container = "巴西", placetype = "city", is_city = true, wp = "Rio de Janeiro"}, ["布宜諾斯艾利斯"] = {container = "阿根廷", placetype = "city", is_city = true, wp = "Buenos Aires"}, ["聖地牙哥"] = {container = "智利", placetype = "city", is_city = true, wp = "Santiago"}, ["波哥大"] = {container = "哥倫比亞", placetype = "city", is_city = true, wp = "Bogotá"}, ["利馬"] = {container = "秘魯", placetype = "city", is_city = true, wp = "Lima"}, -- Europe ["阿姆斯特丹"] = {container = "荷蘭", placetype = "city", is_city = true, wp = "Amsterdam"}, ["布魯塞爾"] = {container = "比利時", placetype = "city", is_city = true, wp = "Brussels"}, ["維也納"] = {container = "奧地利", placetype = "city", is_city = true, wp = "Vienna"}, ["伊斯坦布爾"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Istanbul"}, ["基輔"] = {container = "烏克蘭", placetype = "city", is_city = true, wp = "Kyiv"}, ["華沙"] = {container = "波蘭", placetype = "city", is_city = true, wp = "Warsaw"}, ["布拉格"] = {container = "捷克", placetype = "city", is_city = true, wp = "Prague"}, ["布達佩斯"] = {container = "匈牙利", placetype = "city", is_city = true, wp = "Budapest"}, ["斯德哥爾摩"] = {container = "瑞典", placetype = "city", is_city = true, wp = "Stockholm"}, ["赫爾辛基"] = {container = "芬蘭", placetype = "city", is_city = true, wp = "Helsinki"}, ["奧斯陸"] = {container = "挪威", placetype = "city", is_city = true, wp = "Oslo"}, ["哥本哈根"] = {container = "丹麥", placetype = "city", is_city = true, wp = "Copenhagen"}, ["里斯本"] = {container = "葡萄牙", placetype = "city", is_city = true, wp = "Lisbon"}, ["雅典"] = {container = "希臘", placetype = "city", is_city = true, wp = "Athens"}, ["蘇黎世"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Zurich"}, ["日內瓦"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Geneva"}, ["第比利斯"] = {container = "格魯吉亞", placetype = "city", is_city = true, wp = "Tbilisi"}, ["貝爾格勒"] = {container = "塞爾維亞", placetype = "city", is_city = true, wp = "Belgrade"}, ["薩格勒布"] = {container = "克羅埃西亞", placetype = "city", is_city = true, wp = "Zagreb"}, ["都柏林"] = {container = "愛爾蘭", placetype = "city", is_city = true, wp = "Dublin"}, -- Asia ["北京市"] = {container = "北京", placetype = "city", is_city = true, wp = "Beijing"}, ["上海市"] = {container = "上海", placetype = "city", is_city = true, wp = "Shanghai"}, ["德里市"] = {container = "德里", placetype = "city", is_city = true, wp = "Delhi"}, ["曼谷"] = {container = "泰國", placetype = "city", is_city = true, wp = "Bangkok"}, ["吉隆坡"] = {container = "馬來西亞", placetype = "city", is_city = true, wp = "Kuala Lumpur"}, ["開羅"] = {container = "埃及", placetype = "city", is_city = true, wp = "Cairo"}, ["德黑蘭"] = {container = "伊朗", placetype = "city", is_city = true, wp = "Tehran"}, ["安卡拉"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Ankara"}, -- Oceania ["奧克蘭"] = {container = "紐西蘭", placetype = "city", is_city = true, wp = "Auckland"}, -- Africa ["開普敦"] = {container = "南非", placetype = "city", is_city = true, wp = "Cape Town"}, ["約翰尼斯堡"] = {container = "南非", placetype = "city", is_city = true, wp = "Johannesburg"}, ["奈洛比"] = {container = "肯亞", placetype = "city", is_city = true, wp = "Nairobi"}, } export.misc_cities_group = { placename_to_key = false, default_placetype = "city", default_is_city = true, data = export.misc_cities, } export.netherlands_provinces = { ["德倫特省"] = {wp = "Drenthe"}, ["弗萊福蘭省"] = {wp = "Flevoland"}, ["弗里斯蘭省"] = {wp = "Friesland"}, ["格爾德蘭省"] = {wp = "Gelderland"}, ["格羅寧根省"] = {wp = "Groningen (province)"}, ["林堡省(荷蘭)"] = {wp = "Limburg (Netherlands)"}, ["北布拉班特省"] = {wp = "North Brabant"}, ["北荷蘭省"] = {wp = "North Holland"}, ["上艾瑟爾省"] = {wp = "Overijssel"}, ["南荷蘭省"] = {wp = "South Holland"}, ["烏特勒支省"] = {wp = "Utrecht (province)"}, ["澤蘭省"] = {wp = "Zeeland"}, } export.netherlands_group = { placename_to_key = false, default_container = "荷蘭", default_placetype = "province", data = export.netherlands_provinces, } export.new_zealand_regions = { ["北地大區"] = {wp = "Northland Region"}, ["奧克蘭大區"] = {wp = "Auckland Region"}, ["懷卡托大區"] = {wp = "Waikato Region"}, ["豐盛灣大區"] = {wp = "Bay of Plenty Region"}, ["吉斯伯恩大區"] = {wp = "Gisborne District", placetype = {"region", "district"}}, ["霍克斯灣大區"] = {wp = "Hawke's Bay Region"}, ["塔拉納基大區"] = {wp = "Taranaki Region"}, ["馬納瓦圖-旺阿努伊大區"] = {wp = "Manawatū-Whanganui Region"}, ["惠靈頓大區"] = {wp = "Wellington Region"}, ["塔斯曼大區"] = {wp = "Tasman District", placetype = {"region", "district"}}, ["納爾遜大區"] = {wp = "Nelson, New Zealand", placetype = {"region", "city"}, is_city = true}, ["馬爾堡大區"] = {wp = "Marlborough District", placetype = {"region", "district"}}, ["西海岸大區"] = {wp = "West Coast Region"}, ["坎特伯雷大區"] = {wp = "Canterbury Region"}, ["奧塔哥大區"] = {wp = "Otago Region"}, ["南地大區"] = {wp = "Southland Region"}, } export.new_zealand_group = { placename_to_key = false, default_container = "紐西蘭", default_placetype = "region", data = export.new_zealand_regions, } export.norwegian_counties = { ["奧斯陸縣"] = {wp = "Oslo"}, ["羅加蘭縣"] = {wp = "Rogaland"}, ["莫雷-羅姆斯達爾縣"] = {wp = "Møre og Romsdal"}, ["諾爾蘭縣"] = {wp = "Nordland"}, ["東福爾縣"] = {wp = "Østfold"}, ["阿克斯胡斯縣"] = {wp = "Akershus"}, ["布斯克呂縣"] = {wp = "Buskerud"}, ["因蘭德縣"] = {wp = "Innlandet"}, ["西福爾縣"] = {wp = "Vestfold"}, ["泰勒馬克縣"] = {wp = "Telemark"}, ["阿格德爾縣"] = {wp = "Agder"}, ["西地縣"] = {wp = "Vestland"}, ["特倫德拉格縣"] = {wp = "Trøndelag"}, ["特羅姆斯縣"] = {wp = "Troms"}, ["芬馬克縣"] = {wp = "Finnmark"}, } export.norway_group = { placename_to_key = false, default_container = "挪威", default_placetype = "county", data = export.norwegian_counties, } export.pakistan_provinces_and_territories = { ["自由克什米爾"] = {wp = "Azad Kashmir", placetype = {"administrative territory", "autonomous territory", "territory"}}, ["俾路支省"] = {wp = "Balochistan, Pakistan"}, ["吉爾吉特-巴爾蒂斯坦"] = {wp = "Gilgit-Baltistan", placetype = {"administrative territory", "territory"}}, ["伊斯蘭馬巴德首都直轄區"] = {wp = "Islamabad Capital Territory", placetype = {"federal territory", "administrative territory", "territory"}}, ["開伯爾-普赫圖赫瓦省"] = {wp = "Khyber Pakhtunkhwa"}, ["旁遮普省(巴基斯坦)"] = {wp = "Punjab, Pakistan"}, ["信德省"] = {wp = "Sindh"}, } export.pakistan_group = { placename_to_key = false, default_container = "巴基斯坦", default_placetype = "province", data = export.pakistan_provinces_and_territories, } export.philippines_provinces = { ["阿布拉省"] = {wp = "Abra (province)"}, ["北阿古桑省"] = {wp = "Agusan del Norte"}, ["南阿古桑省"] = {wp = "Agusan del Sur"}, ["阿克蘭省"] = {wp = "Aklan"}, ["阿爾拜省"] = {wp = "Albay"}, ["安蒂克省"] = {wp = "Antique (province)"}, ["阿帕亞沃省"] = {wp = "Apayao"}, ["奧羅拉省"] = {wp = "Aurora (province)"}, ["巴西蘭省"] = {wp = "Basilan"}, ["巴丹省"] = {wp = "Bataan"}, ["巴達內斯省"] = {wp = "Batanes"}, ["八打雁省"] = {wp = "Batangas"}, ["本格特省"] = {wp = "Benguet"}, ["比利蘭省"] = {wp = "Biliran"}, ["保和省"] = {wp = "Bohol"}, ["布基農省"] = {wp = "Bukidnon"}, ["布拉干省"] = {wp = "Bulacan"}, ["卡加延省"] = {wp = "Cagayan"}, ["北甲馬仁省"] = {wp = "Camarines Norte"}, ["南甲馬仁省"] = {wp = "Camarines Sur"}, ["卡米金省"] = {wp = "Camiguin"}, ["卡皮斯省"] = {wp = "Capiz"}, ["卡坦端內斯省"] = {wp = "Catanduanes"}, ["甲米地省"] = {wp = "Cavite"}, ["宿霧省"] = {wp = "Cebu"}, ["哥打巴托省"] = {wp = "Cotabato"}, ["達沃德奧羅省"] = {wp = "Davao de Oro"}, ["北達沃省"] = {wp = "Davao del Norte"}, ["南達沃省"] = {wp = "Davao del Sur"}, ["西達沃省"] = {wp = "Davao Occidental"}, ["東達沃省"] = {wp = "Davao Oriental"}, ["迪納加特群島省"] = {wp = "Dinagat Islands"}, ["東薩馬省"] = {wp = "Eastern Samar"}, ["吉馬拉斯省"] = {wp = "Guimaras"}, ["伊富高省"] = {wp = "Ifugao"}, ["北伊羅科斯省"] = {wp = "Ilocos Norte"}, ["南伊羅科斯省"] = {wp = "Ilocos Sur"}, ["伊洛伊洛省"] = {wp = "Iloilo"}, ["伊莎貝拉省"] = {wp = "Isabela (province)"}, ["卡林加省"] = {wp = "Kalinga (province)"}, ["拉烏尼翁省"] = {wp = "La Union"}, ["拉古納省"] = {wp = "Laguna (province)"}, ["北拉瑙省"] = {wp = "Lanao del Norte"}, ["南拉瑙省"] = {wp = "Lanao del Sur"}, ["萊特省"] = {wp = "Leyte (province)"}, ["北馬京達瑙省"] = {wp = "Maguindanao del Norte"}, ["南馬京達瑙省"] = {wp = "Maguindanao del Sur"}, ["馬林杜克省"] = {wp = "Marinduque"}, ["馬斯巴特省"] = {wp = "Masbate"}, ["西米薩米斯省"] = {wp = "Misamis Occidental"}, ["東米薩米斯省"] = {wp = "Misamis Oriental"}, ["山岳省"] = {wp = "Mountain Province"}, ["西內格羅斯省"] = {wp = "Negros Occidental"}, ["東內格羅斯省"] = {wp = "Negros Oriental"}, ["北薩馬省"] = {wp = "Northern Samar"}, ["新怡詩夏省"] = {wp = "Nueva Ecija"}, ["新比斯開省"] = {wp = "Nueva Vizcaya"}, ["西民都洛省"] = {wp = "Occidental Mindoro"}, ["東民都洛省"] = {wp = "Oriental Mindoro"}, ["巴拉望省"] = {wp = "Palawan"}, ["邦板牙省"] = {wp = "Pampanga"}, ["邦阿西楠省"] = {wp = "Pangasinan"}, ["奎松省"] = {wp = "Quezon"}, ["基里諾省"] = {wp = "Quirino"}, ["黎剎省"] = {wp = "Rizal (province)"}, ["朗布隆省"] = {wp = "Romblon"}, ["薩馬省"] = {wp = "Samar (province)"}, ["薩蘭加尼省"] = {wp = "Sarangani"}, ["錫基霍爾省"] = {wp = "Siquijor"}, ["索索貢省"] = {wp = "Sorsogon"}, ["南哥打巴托省"] = {wp = "South Cotabato"}, ["南萊特省"] = {wp = "Southern Leyte"}, ["蘇丹庫達拉省"] = {wp = "Sultan Kudarat"}, ["蘇祿省"] = {wp = "Sulu"}, ["北蘇里高省"] = {wp = "Surigao del Norte"}, ["南蘇里高省"] = {wp = "Surigao del Sur"}, ["塔拉克省"] = {wp = "Tarlac"}, ["塔威塔威省"] = {wp = "Tawi-Tawi"}, ["三描禮士省"] = {wp = "Zambales"}, ["北三寶顏省"] = {wp = "Zamboanga del Norte"}, ["南三寶顏省"] = {wp = "Zamboanga del Sur"}, ["三寶顏錫布蓋省"] = {wp = "Zamboanga Sibugay"}, ["馬尼拉都會區"] = {wp = "Metro Manila", placetype = {"region", "province"}}, } export.philippines_group = { placename_to_key = false, default_container = "菲律賓", default_placetype = "province", data = export.philippines_provinces, } export.poland_voivodeships = { ["下西里西亞省"] = {wp = "Lower Silesian Voivodeship"}, ["庫亞維-波美拉尼亞省"] = {wp = "Kuyavian-Pomeranian Voivodeship"}, ["盧布林省"] = {wp = "Lublin Voivodeship"}, ["盧布斯省"] = {wp = "Lubusz Voivodeship"}, ["羅茲省"] = {wp = "Łódź Voivodeship"}, ["小波蘭省"] = {wp = "Lesser Poland Voivodeship"}, ["馬佐夫舍省"] = {wp = "Masovian Voivodeship"}, ["奧波萊省"] = {wp = "Opole Voivodeship"}, ["喀爾巴阡山省"] = {wp = "Subcarpathian Voivodeship"}, ["波德拉謝省"] = {wp = "Podlaskie Voivodeship"}, ["波美拉尼亞省"] = {wp = "Pomeranian Voivodeship"}, ["西里西亞省"] = {wp = "Silesian Voivodeship"}, ["神聖十字省"] = {wp = "Świętokrzyskie Voivodeship"}, ["瓦爾米亞-馬祖里省"] = {wp = "Warmian-Masurian Voivodeship"}, ["大波蘭省"] = {wp = "Greater Poland Voivodeship"}, ["西波美拉尼亞省"] = {wp = "West Pomeranian Voivodeship"}, } export.poland_group = { placename_to_key = false, default_container = "波蘭", default_placetype = "voivodeship", data = export.poland_voivodeships, } export.portugal_districts_and_autonomous_regions = { ["亞速爾群島"] = {wp = "Azores", placetype = {"autonomous region", "region"}}, ["阿維羅區"] = {wp = "Aveiro District"}, ["貝雅區"] = {wp = "Beja District"}, ["布拉加區"] = {wp = "Braga District"}, ["布拉干薩區"] = {wp = "Bragança District"}, ["卡斯特洛布蘭科區"] = {wp = "Castelo Branco District"}, ["科英布拉區"] = {wp = "Coimbra District"}, ["埃武拉區"] = {wp = "Évora District"}, ["法魯區"] = {wp = "Faro District"}, ["瓜達區"] = {wp = "Guarda District"}, ["萊里亞區"] = {wp = "Leiria District"}, ["里斯本區"] = {wp = "Lisbon District"}, ["馬德拉島"] = {wp = "Madeira", placetype = {"autonomous region", "region"}}, ["波塔萊格里區"] = {wp = "Portalegre District"}, ["波爾圖區"] = {wp = "Porto District"}, ["聖塔倫區"] = {wp = "Santarém District"}, ["塞圖巴爾區"] = {wp = "Setúbal District"}, ["維亞納堡區"] = {wp = "Viana do Castelo District"}, ["維拉雷亞爾區"] = {wp = "Vila Real District"}, ["維塞烏區"] = {wp = "Viseu District"}, } export.portugal_group = { placename_to_key = false, default_container = "葡萄牙", default_placetype = "district", data = export.portugal_districts_and_autonomous_regions, } local russia_oblast = {placetype = "oblast"} local russia_krai = {placetype = "krai"} local russia_republic = {placetype = "republic"} local russia_autonomous_okrug = {placetype = {"autonomous okrug", "okrug"}} export.russia_federal_subjects = { -- autonomous oblast ["猶太自治州"] = {placetype = {"autonomous oblast", "oblast"}, wp = "Jewish Autonomous Oblast"}, -- autonomous okrugs ["楚科奇自治區"] = {wp = "Chukotka Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西自治區"] = {wp = "Khanty-Mansi Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西亞"] = {alias_of = "漢特-曼西自治區"}, ["涅涅茨自治區"] = {wp = "Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["亞馬洛-涅涅茨自治區"] = {wp = "Yamalo-Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, -- krais ["阿爾泰邊疆區"] = {wp = "Altai Krai", placetype = "krai"}, ["堪察加邊疆區"] = {wp = "Kamchatka Krai", placetype = "krai"}, ["哈巴羅夫斯克邊疆區"] = {wp = "Khabarovsk Krai", placetype = "krai"}, ["克拉斯諾達爾邊疆區"] = {wp = "Krasnodar Krai", placetype = "krai"}, ["克拉斯諾亞爾斯克邊疆區"] = {wp = "Krasnoyarsk Krai", placetype = "krai"}, ["彼爾姆邊疆區"] = {wp = "Perm Krai", placetype = "krai"}, ["濱海邊疆區"] = {wp = "Primorsky Krai", placetype = "krai"}, ["斯塔夫羅波爾邊疆區"] = {wp = "Stavropol Krai", placetype = "krai"}, ["外貝加爾邊疆區"] = {wp = "Zabaykalsky Krai", placetype = "krai"}, -- oblasts ["阿穆爾州"] = russia_oblast, ["阿爾漢格爾斯克州"] = russia_oblast, ["阿斯特拉罕州"] = russia_oblast, ["別爾哥羅德州"] = russia_oblast, ["布良斯克州"] = russia_oblast, ["車裡雅賓斯克州"] = russia_oblast, ["伊爾庫茨克州"] = russia_oblast, ["伊萬諾沃州"] = russia_oblast, ["加里寧格勒州"] = russia_oblast, ["卡盧加州"] = russia_oblast, ["克麥羅沃州"] = russia_oblast, ["基洛夫州"] = russia_oblast, ["科斯特羅馬州"] = russia_oblast, ["庫爾干州"] = russia_oblast, ["庫爾斯克州"] = russia_oblast, ["列寧格勒州"] = russia_oblast, ["利佩茨克州"] = russia_oblast, ["馬加丹州"] = russia_oblast, ["莫斯科州"] = russia_oblast, ["摩爾曼斯克州"] = russia_oblast, ["下諾夫哥羅德州"] = russia_oblast, ["諾夫哥羅德州"] = russia_oblast, ["新西伯利亞州"] = russia_oblast, ["鄂木斯克州"] = russia_oblast, ["奧倫堡州"] = russia_oblast, ["奧廖爾州"] = russia_oblast, ["奔薩州"] = russia_oblast, ["普斯科夫州"] = russia_oblast, ["羅斯托夫州"] = russia_oblast, ["梁贊州"] = russia_oblast, ["薩哈林州"] = {wp = "Sakhalin Oblast", placetype = "oblast"}, ["薩馬拉州"] = russia_oblast, ["薩拉托夫州"] = russia_oblast, ["斯摩棱斯克州"] = russia_oblast, ["斯維爾德洛夫斯克州"] = russia_oblast, ["坦波夫州"] = russia_oblast, ["托木斯克州"] = russia_oblast, ["圖拉州"] = russia_oblast, ["特維爾州"] = russia_oblast, ["秋明州"] = russia_oblast, ["烏里揚諾夫斯克州"] = russia_oblast, ["弗拉基米爾州"] = russia_oblast, ["伏爾加格勒州"] = russia_oblast, ["沃洛格達州"] = russia_oblast, ["沃羅涅日州"] = russia_oblast, ["雅羅斯拉夫爾州"] = russia_oblast, -- republics ["阿迪格共和國"] = russia_republic, ["巴什科爾托斯坦共和國"] = russia_republic, ["布里亞特共和國"] = russia_republic, ["達吉斯坦共和國"] = russia_republic, ["印古什共和國"] = russia_republic, ["卡爾梅克共和國"] = russia_republic, ["卡累利亞共和國"] = {wp = "Republic of Karelia", placetype = "republic"}, ["哈卡斯共和國"] = russia_republic, ["莫爾多瓦共和國"] = russia_republic, ["北奧塞梯-阿蘭尼亞共和國"] = {wp = "North Ossetia–Alania", placetype = "republic"}, ["北奧塞梯"] = {alias_of = "北奧塞梯-阿蘭尼亞共和國"}, ["韃靼斯坦共和國"] = russia_republic, ["阿爾泰共和國"] = {wp = "Altai Republic", placetype = "republic"}, ["車臣共和國"] = russia_republic, ["楚瓦什共和國"] = russia_republic, ["卡巴爾達-巴爾卡爾共和國"] = russia_republic, ["卡拉恰伊-切爾克斯共和國"] = russia_republic, ["科米共和國"] = {wp = "Komi Republic", placetype = "republic"}, ["馬里埃爾共和國"] = russia_republic, ["薩哈共和國"] = {wp = "Sakha Republic", placetype = "republic"}, ["雅庫特"] = {alias_of = "薩哈共和國"}, ["圖瓦共和國"] = russia_republic, ["烏德穆爾特共和國"] = russia_republic, } export.russia_group = { placename_to_key = false, default_container = "俄羅斯", default_placetype = "oblast", data = export.russia_federal_subjects, } export.saudi_arabia_provinces = { ["利雅得省"] = {wp = "Riyadh Province"}, ["麥加省"] = {wp = "Mecca Province"}, ["東部省(沙特)"] = {wp = "Eastern Province, Saudi Arabia", no_auto_augment_container = true}, ["麥地那省"] = {wp = "Medina Province"}, ["阿西爾省"] = {wp = "Asir"}, ["吉贊省"] = {wp = "Jazan Province"}, ["卡西姆省"] = {wp = "Al-Qassim Province"}, ["塔布克省"] = {wp = "Tabuk Province"}, ["哈伊爾省"] = {wp = "Ha'il Province"}, ["焦夫省"] = {wp = "Al-Jawf Province"}, ["納季蘭省"] = {wp = "Najran Province"}, ["北部邊界省"] = {wp = "Northern Borders Province"}, ["巴哈省"] = {wp = "Al-Bahah Province"}, } export.saudi_arabia_group = { placename_to_key = false, default_container = "沙烏地阿拉伯", default_placetype = "province", data = export.saudi_arabia_provinces, } export.south_africa_provinces = { ["東開普省"] = {wp = "Eastern Cape"}, ["自由邦省"] = {wp = "Free State (South African province)"}, ["豪登省"] = {wp = "Gauteng"}, ["夸祖魯-納塔爾省"] = {wp = "KwaZulu-Natal"}, ["林波波省"] = {wp = "Limpopo"}, ["姆普馬蘭加省"] = {wp = "Mpumalanga"}, ["西北省(南非)"] = {wp = "North West (South African province)"}, ["北開普省"] = {wp = "Northern Cape"}, ["西開普省"] = {wp = "Western Cape"}, } export.south_africa_group = { placename_to_key = false, default_container = "南非", default_placetype = "province", data = export.south_africa_provinces, } export.ukraine_oblasts = { ["切爾卡瑟州"] = {wp = "Cherkasy Oblast"}, ["切爾尼戈夫州"] = {wp = "Chernihiv Oblast"}, ["切爾諾夫策州"] = {wp = "Chernivtsi Oblast"}, ["第聶伯羅彼得羅夫斯克州"] = {wp = "Dnipropetrovsk Oblast"}, ["頓涅茨克州"] = {wp = "Donetsk Oblast"}, ["伊萬諾-弗蘭科夫斯克州"] = {wp = "Ivano-Frankivsk Oblast"}, ["哈爾科夫州"] = {wp = "Kharkiv Oblast"}, ["赫爾松州"] = {wp = "Kherson Oblast"}, ["赫梅利尼茨基州"] = {wp = "Khmelnytskyi Oblast"}, ["基洛夫格勒州"] = {wp = "Kirovohrad Oblast"}, ["基輔州"] = {wp = "Kyiv Oblast"}, ["盧甘斯克州"] = {wp = "Luhansk Oblast"}, ["利沃夫州"] = {wp = "Lviv Oblast"}, ["尼古拉耶夫州"] = {wp = "Mykolaiv Oblast"}, ["敖德薩州"] = {wp = "Odesa Oblast"}, ["波爾塔瓦州"] = {wp = "Poltava Oblast"}, ["羅夫諾州"] = {wp = "Rivne Oblast"}, ["蘇梅州"] = {wp = "Sumy Oblast"}, ["捷爾諾波爾州"] = {wp = "Ternopil Oblast"}, ["文尼察州"] = {wp = "Vinnytsia Oblast"}, ["沃里尼亞州"] = {wp = "Volyn Oblast"}, ["外喀爾巴阡州"] = {wp = "Zakarpattia Oblast"}, ["扎波羅熱州"] = {wp = "Zaporizhzhia Oblast"}, ["日托米爾州"] = {wp = "Zhytomyr Oblast"}, } export.ukraine_group = { placename_to_key = false, default_container = "烏克蘭", default_placetype = "oblast", data = export.ukraine_oblasts, } export.wales_principal_areas = { ["布拉艾諾格溫特"] = {wp = "Blaenau Gwent"}, ["布里真德"] = {wp = "Bridgend County Borough"}, ["卡菲利"] = {wp = "Caerphilly County Borough"}, ["卡馬森郡"] = {wp = "Carmarthenshire", placetype = "county"}, ["克雷地基昂"] = {wp = "Ceredigion", placetype = "county"}, ["科溫"] = {wp = "Conwy County Borough"}, ["登比郡"] = {wp = "Denbighshire", placetype = "county"}, ["弗林特郡"] = {wp = "Flintshire", placetype = "county"}, ["格溫內德"] = {wp = "Gwynedd", placetype = "county"}, ["安格爾西島"] = {wp = "Isle of Anglesey", placetype = "county"}, ["默瑟蒂德菲爾"] = {wp = "Merthyr Tydfil County Borough"}, ["蒙茅斯郡"] = {wp = "Monmouthshire", placetype = "county"}, ["尼斯-波特塔爾博特"] = {wp = "Neath Port Talbot"}, ["彭布羅克郡"] = {wp = "Pembrokeshire", placetype = "county"}, ["波伊斯"] = {wp = "Powys", placetype = "county"}, ["朗達坎農塔夫"] = {wp = "Rhondda Cynon Taf"}, ["托爾范"] = {wp = "Torfaen"}, ["格拉摩根谷"] = {wp = "Vale of Glamorgan"}, ["雷克瑟姆"] = {wp = "Wrexham County Borough"}, } export.wales_group = { placename_to_key = false, default_container = {key = "威爾斯", placetype = "constituent country"}, default_placetype = "county borough", data = export.wales_principal_areas, } ----------------------------------------------------------------------------------- -- City groups -- ----------------------------------------------------------------------------------- export.australia_cities = { ["阿德萊德"] = {container = "南澳大利亞", wp = "Adelaide"}, ["布里斯班"] = {container = "昆士蘭", wp = "Brisbane"}, ["坎培拉"] = {container = "澳大利亞首都領地", wp = "Canberra"}, ["墨爾本"] = {container = "維多利亞州", wp = "Melbourne"}, ["紐卡素"] = {container = "新南威爾斯", wp = "Newcastle, New South Wales"}, ["伯斯"] = {container = "西澳大利亞", wp = "Perth"}, ["悉尼"] = {container = "新南威爾斯", wp = "Sydney"}, } export.australia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "澳大利亞", default_placetype = "city", default_is_city = true, data = export.australia_cities, } export.brazil_cities = { ["聖保羅"] = {container = "聖保羅州", wp = "São Paulo"}, ["里約熱內盧"] = {container = "里約熱內盧州", wp = "Rio de Janeiro"}, ["貝洛奧里藏特"] = {container = "米納斯吉拉斯", wp = "Belo Horizonte"}, ["累西腓"] = {container = "伯南布哥州", wp = "Recife"}, ["阿雷格里港"] = {container = "南里奧格蘭德州", wp = "Porto Alegre"}, ["巴西利亞"] = {container = "巴西聯邦區", wp = "Brasília"}, ["福塔萊薩"] = {container = "塞阿拉州", wp = "Fortaleza"}, ["薩爾瓦多"] = {container = "巴伊亞", wp = "Salvador, Bahia"}, ["庫里蒂巴"] = {container = "巴拉那州", wp = "Curitiba"}, ["坎皮納斯"] = {container = "聖保羅州", wp = "Campinas"}, ["戈亞尼亞"] = {container = "戈亞斯州", wp = "Goiânia"}, ["瑪瑙斯"] = {container = "亞馬遜州", wp = "Manaus"}, ["伯利恆"] = {container = "帕拉州", wp = "Belém, Pará"}, ["維多利亞"] = {container = "聖埃斯皮里圖州", wp = "Vitória, Espírito Santo"}, ["聖路易斯"] = {container = "馬拉尼昂州", wp = "São Luís"}, ["納塔爾"] = {container = "北里奧格蘭德州", wp = "Natal, Rio Grande do Norte"}, ["弗洛里亞諾波利斯"] = {container = "聖卡塔琳娜州", wp = "Florianópolis"}, ["馬塞約"] = {container = "阿拉戈亞斯州", wp = "Maceió"}, ["若昂佩索阿"] = {container = "帕拉伊巴州", wp = "João Pessoa"}, ["特雷齊納"] = {container = "皮奧伊州", wp = "Teresina"}, ["隆德里納"] = {container = "巴拉那州", wp = "Londrina"}, } export.brazil_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "巴西", default_placetype = "city", default_is_city = true, data = export.brazil_cities, } export.canada_cities = { ["多倫多"] = {container = "安大略", wp = "Toronto"}, ["蒙特婁"] = {container = "魁北克", wp = "Montreal"}, ["溫哥華"] = {container = "英屬哥倫比亞", wp = "Vancouver"}, ["卡加里"] = {container = "亞伯達", wp = "Calgary"}, ["愛民頓"] = {container = "亞伯達", wp = "Edmonton"}, ["渥太華"] = {container = "安大略", wp = "Ottawa"}, ["魁北克城"] = {container = "魁北克", wp = "Quebec City"}, ["溫尼伯"] = {container = "馬尼托巴", wp = "Winnipeg"}, ["漢密爾頓"] = {container = "安大略", wp = "Hamilton, Ontario"}, } export.canada_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "加拿大", default_placetype = "city", default_is_city = true, data = export.canada_cities, } export.france_cities = { ["巴黎"] = {container = "法蘭西島大區", wp = "Paris"}, ["里昂"] = {container = "奧弗涅-隆河-阿爾卑斯大區", wp = "Lyon"}, ["馬賽"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Marseille"}, ["里爾"] = {container = "上法蘭西大區", wp = "Lille"}, ["波爾多"] = {container = "新阿基坦大區", wp = "Bordeaux"}, ["圖盧茲"] = {container = "奧克西塔尼大區", wp = "Toulouse"}, ["尼斯"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Nice"}, ["南特"] = {container = "盧瓦爾河地區大區", wp = "Nantes"}, ["史特拉斯堡"] = {container = "大東部大區", wp = "Strasbourg"}, ["雷恩"] = {container = "布列塔尼大區", wp = "Rennes"}, } export.france_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "法國", default_placetype = "city", default_is_city = true, data = export.france_cities, } export.germany_cities = { ["科隆"] = {container = "北萊茵-威斯特法倫", wp = "Cologne"}, ["杜塞爾多夫"] = {container = "北萊茵-威斯特法倫", wp = "Düsseldorf"}, ["多特蒙德"] = {container = "北萊茵-威斯特法倫", wp = "Dortmund"}, ["埃森"] = {container = "北萊茵-威斯特法倫", wp = "Essen"}, ["柏林"] = {wp = "Berlin"}, ["法蘭克福"] = {container = "黑森", wp = "Frankfurt"}, ["漢堡"] = {wp = "Hamburg"}, ["慕尼黑"] = {container = "巴伐利亞", wp = "Munich"}, ["斯圖加特"] = {container = "巴登-符騰堡", wp = "Stuttgart"}, ["曼海姆"] = {container = "巴登-符騰堡", wp = "Mannheim"}, ["紐倫堡"] = {container = "巴伐利亞", wp = "Nuremberg"}, ["漢諾威"] = {container = "下薩克森", wp = "Hanover"}, ["比勒費爾德"] = {container = "北萊茵-威斯特法倫", wp = "Bielefeld"}, ["萊比錫"] = {container = "薩克森", wp = "Leipzig"}, ["亞琛"] = {container = "北萊茵-威斯特法倫", wp = "Aachen"}, ["不來梅"] = {wp = "Bremen"}, } export.germany_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "德國", default_placetype = "city", default_is_city = true, data = export.germany_cities, } export.india_cities = { ["德里"] = {container = {key = "德里", placetype = "union territory"}, wp = "Delhi"}, ["孟買"] = {container = "馬哈拉施特拉邦", wp = "Mumbai"}, ["加爾各答"] = {container = "西孟加拉邦", wp = "Kolkata"}, ["班加羅爾"] = {container = "卡納塔克邦", wp = "Bengaluru"}, ["金奈"] = {container = "泰米爾納德邦", wp = "Chennai"}, ["海德拉巴"] = {container = "特倫甘納邦", wp = "Hyderabad"}, ["艾哈邁達巴德"] = {container = "古吉拉特邦", wp = "Ahmedabad"}, ["浦那"] = {container = "馬哈拉施特拉邦", wp = "Pune"}, ["蘇拉特"] = {container = "古吉拉特邦", wp = "Surat"}, ["勒克瑙"] = {container = "北方邦", wp = "Lucknow"}, ["齋浦爾"] = {container = "拉賈斯坦邦", wp = "Jaipur"}, ["坎普爾"] = {container = "北方邦", wp = "Kanpur"}, ["那格浦爾"] = {container = "馬哈拉施特拉邦", wp = "Nagpur"}, ["巴特那"] = {container = "比哈爾邦", wp = "Patna"}, ["瓦拉納西"] = {container = "北方邦", wp = "Varanasi"}, ["印多爾"] = {container = "中央邦", wp = "Indore"}, ["博帕爾"] = {container = "中央邦", wp = "Bhopal"}, ["阿格拉"] = {container = "北方邦", wp = "Agra"}, ["科欽"] = {container = "喀拉拉邦", wp = "Kochi"}, ["維沙卡帕特南"] = {container = "安得拉邦", wp = "Visakhapatnam"}, ["齋普爾"] = {alias_of = "齋浦爾"}, } export.india_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "印度", default_placetype = "city", default_is_city = true, data = export.india_cities, } export.indonesia_cities = { ["雅加達"] = {container = "雅加達首都特區", wp = "Jakarta"}, ["泗水"] = {container = "東爪哇省", wp = "Surabaya"}, ["勿加泗"] = {container = "西爪哇省", wp = "Bekasi"}, ["萬隆"] = {container = "西爪哇省", wp = "Bandung"}, ["棉蘭"] = {container = "北蘇門答臘省", wp = "Medan"}, ["德波"] = {container = "西爪哇省", wp = "Depok"}, ["萬丹市"] = {container = "萬丹省", wp = "Tangerang"}, ["巨港"] = {container = "南蘇門答臘省", wp = "Palembang"}, ["三寶壟"] = {container = "中爪哇省", wp = "Semarang"}, ["望加錫"] = {container = "南蘇拉威西省", wp = "Makassar"}, ["武端"] = {container = "廖內群島省", wp = "Batam"}, ["茂物"] = {container = "西爪哇省", wp = "Bogor"}, ["北干巴魯"] = {container = "廖內省", wp = "Pekanbaru"}, ["班達爾楠榜"] = {container = "楠榜省", wp = "Bandar Lampung"}, ["巴東"] = {container = "西蘇門答臘省", wp = "Padang"}, ["薩馬林達"] = {container = "東加里曼丹省", wp = "Samarinda"}, ["瑪琅"] = {container = "東爪哇省", wp = "Malang"}, ["日惹"] = {container = "日惹特區", wp = "Yogyakarta"}, ["登巴薩"] = {container = "峇里省", wp = "Denpasar"}, ["哲勒貢"] = {container = "西爪哇省", wp = "Cirebon"}, ["梭羅"] = {container = "中爪哇省", wp = "Surakarta"}, ["馬辰"] = {container = "南加里曼丹省", wp = "Banjarmasin"}, ["打橫"] = {container = "西爪哇省", wp = "Tasikmalaya"}, } export.indonesia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "印度尼西亞", default_placetype = "city", default_is_city = true, data = export.indonesia_cities, } export.italy_cities = { ["米蘭"] = {container = "倫巴第", wp = "Milan"}, ["那不勒斯"] = {container = "坎帕尼亞", wp = "Naples"}, ["羅馬"] = {container = "拉齊奧", wp = "Rome"}, ["都靈"] = {container = "皮埃蒙特", wp = "Turin"}, ["威尼斯"] = {container = "威尼托", wp = "Venice"}, ["佛羅倫斯"] = {container = "托斯卡納", wp = "Florence"}, ["巴里"] = {container = "普利亞", wp = "Bari"}, ["巴勒莫"] = {container = "西西里", wp = "Palermo"}, ["卡塔尼亞"] = {container = "西西里", wp = "Catania"}, ["布雷西亞"] = {container = "倫巴第", wp = "Brescia"}, ["熱那亞"] = {container = "利古里亞", wp = "Genoa"}, } export.italy_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "意大利", default_placetype = "city", default_is_city = true, data = export.italy_cities, } export.japan_cities = { ["東京"] = {keydesc = "[[東京]]都會區,[[日本]]的[[首都]]和[[都]]級行政區", placetype = {"city", "prefecture"}, divs = { {type = "special wards", container_parent_type = false}, {type = "cities", prep = "in"}, }, }, ["橫濱"] = {container = "神奈川縣", wp = "Yokohama"}, ["大阪"] = {container = "大阪府", wp = "Osaka"}, ["名古屋"] = {container = "愛知縣", wp = "Nagoya"}, ["札幌"] = {container = "北海道", wp = "Sapporo"}, ["福岡"] = {container = "福岡縣", wp = "Fukuoka"}, ["神戶"] = {container = "兵庫縣", wp = "Kobe"}, ["京都"] = {container = "京都府", wp = "Kyoto"}, ["川崎"] = {container = "神奈川縣", wp = "Kawasaki, Kanagawa"}, ["廣島"] = {container = "廣島縣", wp = "Hiroshima"}, ["仙台"] = {container = "宮城縣", wp = "Sendai"}, ["北九州"] = {container = "福岡縣", wp = "Kitakyushu"}, ["新潟"] = {container = "新潟縣", wp = "Niigata (city)"}, ["靜岡"] = {container = "靜岡縣", wp = "Shizuoka (city)"}, ["岡山"] = {container = "岡山縣", wp = "Okayama"}, ["熊本"] = {container = "熊本縣", wp = "Kumamoto"}, ["鹿兒島"] = {container = "鹿兒島縣", wp = "Kagoshima"}, } export.japan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "prefecture"), default_container = "日本", default_placetype = "city", default_is_city = true, data = export.japan_cities, } export.mexico_cities = { ["墨西哥城"] = {wp = "墨西哥城"}, ["蒙特雷"] = {container = "新萊昂州", wp = "Monterrey"}, ["瓜達拉哈拉"] = {container = "哈利斯科州", wp = "Guadalajara"}, ["普埃布拉市"] = {container = "普埃布拉州", wp = "Puebla (city)"}, ["托盧卡"] = {container = "墨西哥州", wp = "Toluca"}, ["蒂華納"] = {container = "下加利福尼亞州", wp = "Tijuana"}, ["萊昂"] = {container = "瓜納華托州", wp = "León, Guanajuato"}, ["克雷塔羅市"] = {container = "克雷塔羅州", wp = "Querétaro (city)"}, ["華雷斯城"] = {container = "奇瓦瓦州", wp = "Ciudad Juárez"}, ["托雷翁"] = {container = "科阿韋拉州", wp = "Torreón"}, ["梅里達"] = {container = "尤卡坦州", wp = "Mérida, Yucatán"}, ["聖路易斯波托西市"] = {container = "聖路易斯波托西州", wp = "San Luis Potosí (city)"}, ["阿瓜斯卡連特斯市"] = {container = "阿瓜斯卡連特斯州", wp = "Aguascalientes (city)"}, ["墨西卡利"] = {container = "下加利福尼亞州", wp = "Mexicali"}, } export.mexico_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "墨西哥", default_placetype = "city", default_is_city = true, data = export.mexico_cities, } export.nigeria_cities = { ["拉各斯"] = {container = "拉各斯州", wp = "Lagos"}, ["卡諾市"] = {container = "卡諾州", wp = "Kano (city)"}, ["伊巴丹"] = {container = "奧約州", wp = "Ibadan"}, ["阿布賈"] = {container = {key = "阿布賈聯邦首都轄區", placetype = "federal territory"}, wp = "Abuja"}, ["哈科特港"] = {container = "河流州", wp = "Port Harcourt"}, ["卡杜納市"] = {container = "卡杜納州", wp = "Kaduna (city)"}, ["貝寧城"] = {container = "埃多州", wp = "Benin City"}, ["阿巴"] = {container = "阿比亞州", wp = "Aba, Nigeria"}, ["奧尼查"] = {container = "阿南布拉州", wp = "Onitsha"}, ["邁杜古里"] = {container = "博爾諾州", wp = "Maiduguri"}, ["伊洛林"] = {container = "誇拉州", wp = "Ilorin"}, ["索科托市"] = {container = "索科托州", wp = "Sokoto (city)"}, ["喬斯"] = {container = "高原州", wp = "Jos"}, ["扎里亞"] = {container = "卡杜納州", wp = "Zaria"}, ["埃努古市"] = {container = "埃努古州", wp = "Enugu (city)"}, } export.nigeria_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "奈及利亞", default_placetype = "city", default_is_city = true, data = export.nigeria_cities, } export.pakistan_cities = { ["卡拉奇"] = {container = "信德省", wp = "Karachi"}, ["拉合爾"] = {container = "旁遮普省(巴基斯坦)", wp = "Lahore"}, ["拉瓦爾品第"] = {container = "旁遮普省(巴基斯坦)", wp = "Rawalpindi"}, ["伊斯蘭馬巴德"] = {container = {key = "伊斯蘭馬巴德首都直轄區", placetype = "federal territory"}, wp = "Islamabad"}, ["費薩拉巴德"] = {container = "旁遮普省(巴基斯坦)", wp = "Faisalabad"}, ["古傑蘭瓦拉"] = {container = "旁遮普省(巴基斯坦)", wp = "Gujranwala"}, ["海德拉巴(巴基斯坦)"] = {container = "信德省", wp = "Hyderabad, Pakistan"}, ["木爾坦"] = {container = "旁遮普省(巴基斯坦)", wp = "Multan"}, ["白沙瓦"] = {container = "開伯爾-普赫圖赫瓦省", wp = "Peshawar"}, ["奎達"] = {container = "俾路支省", wp = "Quetta"}, ["薩戈達"] = {container = "旁遮普省(巴基斯坦)", wp = "Sargodha"}, ["錫亞爾科特"] = {container = "旁遮普省(巴基斯坦)", wp = "Sialkot"}, } export.pakistan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "巴基斯坦", default_placetype = "city", default_is_city = true, data = export.pakistan_cities, } export.philippines_cities = { ["奎松市"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Quezon City"}, ["馬尼拉"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Manila"}, ["達沃市"] = {container = "南達沃省", wp = "Davao City"}, ["卡洛坎"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Caloocan"}, ["三寶顏市"] = {container = "南三寶顏省", wp = "Zamboanga City"}, ["宿霧市"] = {container = "宿霧省", wp = "Cebu City"}, ["安蒂波洛"] = {container = "黎剎省", wp = "Antipolo"}, ["卡加延德奧羅"] = {container = "東米薩米斯省", wp = "Cagayan de Oro"}, ["達斯馬里尼亞斯"] = {container = "甲米地省", wp = "Dasmariñas"}, ["棉蘭老將軍城"] = {container = "南哥打巴托省", wp = "General Santos"}, ["聖何塞德爾蒙特"] = {container = "布拉干省", wp = "San Jose del Monte"}, ["巴科洛德"] = {container = "西內格羅斯省", wp = "Bacolod"}, ["卡蘭巴"] = {container = "拉古納省", wp = "Calamba, Laguna"}, ["天使城"] = {container = "邦板牙省", wp = "Angeles City"}, ["伊洛伊洛市"] = {container = "伊洛伊洛省", wp = "Iloilo City"}, } export.philippines_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "菲律賓", default_placetype = "city", default_is_city = true, data = export.philippines_cities, } export.russia_cities = { ["莫斯科"] = {wp = "Moscow"}, ["聖彼得堡"] = {wp = "Saint Petersburg"}, ["新西伯利亞"] = {container = "新西伯利亞州", wp = "Novosibirsk"}, ["葉卡捷琳堡"] = {container = "斯維爾德洛夫斯克州", wp = "Yekaterinburg"}, ["下諾夫哥羅德"] = {container = "下諾夫哥羅德州", wp = "Nizhny Novgorod"}, ["喀山"] = {container = {key = "韃靼斯坦共和國", placetype = "republic"}, wp = "Kazan"}, ["車裡雅賓斯克市"] = {container = "車裡雅賓斯克州", wp = "Chelyabinsk"}, ["頓河畔羅斯托夫"] = {container = "羅斯托夫州", wp = "Rostov-on-Don"}, ["克拉斯諾達爾市"] = {container = {key = "克拉斯諾達爾邊疆區", placetype = "krai"}, wp = "Krasnodar"}, ["薩馬拉市"] = {container = "薩馬拉州", wp = "Samara"}, ["克拉斯諾亞爾斯克市"] = {container = {key = "克拉斯諾亞爾斯克邊疆區", placetype = "krai"}, wp = "Krasnoyarsk"}, ["烏法"] = {container = {key = "巴什科爾托斯坦共和國", placetype = "republic"}, wp = "Ufa"}, ["薩拉托夫市"] = {container = "薩拉托夫州", wp = "Saratov"}, ["鄂木斯克市"] = {container = "鄂木斯克州", wp = "Omsk"}, ["沃羅涅日市"] = {container = "沃羅涅日州", wp = "Voronezh"}, ["伏爾加格勒市"] = {container = "伏爾加格勒州", wp = "Volgograd"}, ["彼爾姆市"] = {container = {key = "彼爾姆邊疆區", placetype = "krai"}, wp = "Perm, Russia"}, } export.russia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "oblast"), default_container = "俄羅斯", default_placetype = "city", default_is_city = true, data = export.russia_cities, } export.saudi_arabia_cities = { ["利雅得"] = {container = "利雅得省", wp = "Riyadh"}, ["吉達"] = {container = "麥加省", wp = "Jeddah"}, ["達曼"] = {container = "東部省(沙特)", wp = "Dammam"}, ["麥加"] = {container = "麥加省", wp = "Mecca"}, ["麥地那"] = {container = "麥地那省", wp = "Medina"}, ["霍夫夫"] = {container = "東部省(沙特)", wp = "Hofuf"}, ["哈米斯穆沙伊特"] = {container = "阿西爾省", wp = "Khamis Mushait"}, } export.saudi_arabia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "沙烏地阿拉伯", default_placetype = "city", default_is_city = true, data = export.saudi_arabia_cities, } export.south_korea_cities = { ["首爾"] = {wp = "Seoul"}, ["釜山"] = {wp = "Busan"}, ["仁川"] = {wp = "Incheon"}, ["大邱"] = {wp = "Daegu"}, ["大田"] = {wp = "Daejeon"}, ["光州"] = {wp = "Gwangju"}, ["蔚山"] = {wp = "Ulsan"}, } export.south_korea_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "南韓", default_placetype = "city", default_is_city = true, data = export.south_korea_cities, } export.spain_cities = { ["馬德里"] = {container = "馬德里自治區", wp = "Madrid"}, ["巴塞羅那"] = {container = "加泰羅尼亞", wp = "Barcelona"}, ["瓦倫西亞"] = {container = "巴倫西亞", wp = "Valencia"}, ["塞維利亞"] = {container = "安達盧西亞", wp = "Seville"}, ["畢爾包"] = {container = "巴斯克", wp = "Bilbao"}, } export.spain_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "autonomous community"), default_container = "西班牙", default_placetype = "city", default_is_city = true, data = export.spain_cities, } export.taiwan_cities = { -- Special municipalities (province-level) ["臺北市"] = {placetype = "special municipality", wp = "臺北市"}, ["新北市"] = {placetype = "special municipality", wp = "新北市"}, ["桃園市"] = {placetype = "special municipality", wp = "桃園市"}, ["臺中市"] = {placetype = "special municipality", wp = "臺中市"}, ["臺南市"] = {placetype = "special municipality", wp = "臺南市"}, ["高雄市"] = {placetype = "special municipality", wp = "高雄市"}, -- these last three are not special municipalities ["嘉義市"] = {placetype = "city", wp = "嘉義市"}, ["新竹市"] = {placetype = "city", wp = "新竹市"}, ["基隆市"] = {placetype = "city", wp = "基隆市"}, } export.taiwan_cities_group = { key_to_placename = make_key_to_placename(nil, "市$"), placename_to_key = make_placename_to_key("市"), default_container = "臺灣", default_placetype = {"special municipality", "city"}, default_is_city = true, data = export.taiwan_cities, } export.united_kingdom_cities = { ["倫敦"] = {container = {key = "大倫敦", placetype = "county"}, wp = "London"}, ["曼徹斯特"] = {container = {key = "大曼徹斯特", placetype = "county"}, wp = "Manchester"}, ["伯明翰"] = {container = {key = "西密德蘭", placetype = "county"}, wp = "Birmingham"}, ["利物浦"] = {container = {key = "默西賽德郡", placetype = "county"}, wp = "Liverpool"}, ["格拉斯哥"] = {container = {key = "Glasgow市", placetype = "council area"}, wp = "Glasgow"}, ["利茲"] = {container = {key = "西約克郡", placetype = "county"}, wp = "Leeds"}, ["布里斯托"] = {container = {key = "英格蘭", placetype = "constituent country"}, wp = "Bristol"}, ["卡地夫"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Cardiff"}, ["愛丁堡"] = {container = {key = "Edinburgh市", placetype = "council area"}, wp = "Edinburgh"}, ["斯旺西"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Swansea"}, ["紐波特"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Newport, Wales"}, } export.united_kingdom_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "county"), default_container = "英國", default_placetype = "city", default_is_city = true, data = export.united_kingdom_cities, } export.united_states_cities = { ["紐約市"] = {container = "紐約", wp = "New York City"}, ["洛杉磯"] = {container = "加利福尼亞", wp = "Los Angeles"}, ["芝加哥"] = {container = "伊利諾伊", wp = "Chicago"}, ["華盛頓特區"] = {wp = "Washington, D.C."}, ["巴爾的摩"] = {container = "馬里蘭", wp = "Baltimore"}, ["聖荷西"] = {container = "加利福尼亞", wp = "San Jose, California"}, ["舊金山"] = {container = "加利福尼亞", wp = "San Francisco"}, ["波士頓"] = {container = "麻薩諸塞", wp = "Boston"}, ["達拉斯"] = {container = "德克薩斯", wp = "Dallas"}, ["費城"] = {container = "賓夕法尼亞", wp = "Philadelphia"}, ["休士頓"] = {container = "德克薩斯", wp = "Houston"}, ["邁阿密"] = {container = "佛羅里達", wp = "Miami"}, ["亞特蘭大"] = {container = "喬治亞", wp = "Atlanta"}, ["底特律"] = {container = "密西根", wp = "Detroit"}, ["鳳凰城"] = {container = "亞利桑那", wp = "Phoenix"}, ["西雅圖"] = {container = "華盛頓州", wp = "Seattle"}, ["明尼阿波利斯"] = {container = "明尼蘇達", wp = "Minneapolis"}, ["克里夫蘭"] = {container = "俄亥俄", wp = "Cleveland"}, ["丹佛"] = {container = "科羅拉多", wp = "Denver"}, ["聖地牙哥(美國)"] = {container = "加利福尼亞", wp = "San Diego"}, ["波特蘭(俄勒岡)"] = {container = "俄勒岡", wp = "Portland"}, ["聖路易斯"] = {container = "密蘇里", wp = "St. Louis"}, ["夏洛特"] = {container = "北卡羅來納", wp = "Charlotte"}, ["薩克拉門托"] = {container = "加利福尼亞", wp = "Sacramento"}, ["匹茲堡"] = {container = "賓夕法尼亞", wp = "Pittsburgh"}, ["鹽湖城"] = {container = "猶他", wp = "Salt Lake City"}, ["聖安東尼奧"] = {container = "德克薩斯", wp = "San Antonio"}, ["哥倫布"] = {container = "俄亥俄", wp = "Columbus"}, ["堪薩斯城"] = {container = "密蘇里", wp = "Kansas City metropolitan area"}, ["印第安納波利斯"] = {container = "印第安納", wp = "Indianapolis"}, ["拉斯維加斯"] = {container = "內華達", wp = "Las Vegas"}, ["辛辛那提"] = {container = "俄亥俄", wp = "Cincinnati"}, ["奧斯汀"] = {container = "德克薩斯", wp = "Austin"}, ["密爾沃基"] = {container = "威斯康辛", wp = "Milwaukee"}, ["羅利"] = {container = "北卡羅來納", wp = "Raleigh"}, ["納什維爾"] = {container = "田納西", wp = "Nashville"}, ["傑克遜維爾"] = {container = "佛羅里達", wp = "Jacksonville"}, ["新奧爾良"] = {container = "路易斯安那", wp = "New Orleans"}, ["路易斯維爾"] = {container = "肯塔基", wp = "Louisville"}, ["奧克拉荷馬城"] = {container = "奧克拉荷馬", wp = "Oklahoma City"}, ["孟菲斯"] = {container = "田納西", wp = "Memphis"}, ["伯明翰(美國)"] = {container = "阿拉巴馬", wp = "Birmingham, Alabama"}, ["弗雷斯諾"] = {container = "加利福尼亞", wp = "Fresno"}, ["里奇蒙"] = {container = "弗吉尼亞", wp = "Richmond"}, ["水牛城"] = {container = "紐約", wp = "Buffalo"}, ["艾爾帕索"] = {container = "德克薩斯", wp = "El Paso"}, ["阿爾伯克基"] = {container = "新墨西哥", wp = "Albuquerque"}, ["塔森"] = {container = "亞利桑那", wp = "Tucson"}, ["科羅拉多斯普林斯"] = {container = "科羅拉多", wp = "Colorado Springs"}, ["奧馬哈"] = {container = "內布拉斯加", wp = "Omaha"}, ["塔爾薩"] = {container = "奧克拉荷馬", wp = "Tulsa"}, } export.united_states_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "美國", default_placetype = "city", default_is_city = true, data = export.united_states_cities, } export.vietnam_cities = { ["胡志明市"] = {wp = "Ho Chi Minh City"}, ["西貢"] = {alias_of = "胡志明市"}, ["河內"] = {wp = "Hanoi"}, ["峴港"] = {wp = "Da Nang"}, ["海防"] = {wp = "Haiphong"}, ["邊和"] = {container = "同奈省", wp = "Biên Hòa", placetype = "city"}, ["芹苴"] = {wp = "Cần Thơ"}, ["順化"] = {wp = "Huế"}, } export.vietnam_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "越南", default_placetype = {"municipality", "city"}, default_is_city = true, data = export.vietnam_cities, } ----------------------------------------------------------------------------------- -- locations list -- ----------------------------------------------------------------------------------- export.locations = { export.continents_group, export.countries_group, export.country_like_entities_group, export.former_countries_group, export.united_states_group, export.united_kingdom_group, export.scotland_group, export.england_group, export.northern_ireland_group, export.ireland_group, export.wales_group, export.china_group, export.china_prefecture_level_cities_group, export.taiwan_group, export.canada_group, export.australia_group, export.india_group, export.japan_group, export.brazil_group, export.france_group, export.france_departments_group, export.germany_group, export.italy_group, export.spain_group, export.austria_group, export.bangladesh_group, export.egypt_group, export.finland_group, export.greece_group, export.indonesia_group, export.lebanon_group, export.malaysia_group, export.malta_group, export.mexico_group, export.moldova_group, export.morocco_group, export.netherlands_group, export.new_zealand_group, export.norway_group, export.pakistan_group, export.philippines_group, export.poland_group, export.portugal_group, export.romania_group, export.bulgaria_group, export.iran_group, export.russia_group, export.saudi_arabia_group, export.south_africa_group, export.laos_group, export.north_korea_group, export.south_korea_group, export.thailand_group, export.turkey_group, export.ukraine_group, export.vietnam_group, export.nigeria_group, export.new_york_boroughs_group, export.australia_cities_group, export.brazil_cities_group, export.canada_cities_group, export.france_cities_group, export.germany_cities_group, export.india_cities_group, export.indonesia_cities_group, export.italy_cities_group, export.japan_cities_group, export.mexico_cities_group, export.nigeria_cities_group, export.pakistan_cities_group, export.philippines_cities_group, export.russia_cities_group, export.saudi_arabia_cities_group, export.south_korea_cities_group, export.spain_cities_group, export.taiwan_cities_group, export.united_kingdom_cities_group, export.united_states_cities_group, export.vietnam_cities_group, export.misc_cities_group, } return export fxcxyy0axgrmp1fqvleu3byezwxxzp9 9759525 9759523 2026-05-14T21:37:06Z TongcyDai 53191 9759525 Scribunto text/plain local export = {} export.force_cat = false local m_table = require("Module:table") local insert = table.insert local concat = table.concat local dump = mw.dumpObject local unpack = unpack or table.unpack --[==[ Chinese Wiktionary localization of [[Module:place/locations]]. All canonical location keys are in Chinese, matching what editors write in holonym parameters (e.g. {{place|zh|城市|s/中央邦|c/印度}}). English Wikipedia article names are stored in the `wp` field for cross-reference. The `the`, `british_spelling` and English-suffix-detection fields from enwikt are omitted as they are not applicable in Chinese. The helper functions (process_error through construct_linked_placename) are kept intact from enwikt's Module:place/locations to maintain API compatibility with Module:place/placetypes. ]==] ----------------------------------------------------------------------------------- -- Helper functions -- ----------------------------------------------------------------------------------- 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 function export.internal_error(fmt, ...) export.process_error("Internal error: " .. fmt, ...) end local internal_error = export.internal_error 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 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 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 == "country" or defcon.placetype == "constituent country") then return placename .. ", " .. defcon.key else return placename end end end 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 = "country"} 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", "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 spec.is_city = value_with_default(spec.is_city, group.default_placetype == "city") spec.initialized = true end 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 local placetype = spec.placetype or resolved_spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s", key) 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 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 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 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 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 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 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 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) -- Chinese has no articles; `the` field is unused but kept for API compatibility. return linked_placename end ----------------------------------------------------------------------------------- -- Local data helper factories -- ----------------------------------------------------------------------------------- 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 _, pat in ipairs(container_patterns) do local nsubs full_placename, nsubs = full_placename:gsub(pat, "") if nsubs > 0 then break end end end local elliptical_placename = full_placename if divtype_patterns then for _, pat in ipairs(divtype_patterns) do local nsubs elliptical_placename, nsubs = elliptical_placename:gsub(pat, "") if nsubs > 0 then break end end end return full_placename, elliptical_placename end end 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 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 -- Canonicalize a continent container key (string) to canonical container form. 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_container`", key) end ----------------------------------------------------------------------------------- -- Top-level tables -- ----------------------------------------------------------------------------------- export.continents = { ["地球"] = {placetype = "planet", addl_parents = {"自然"}, fulldesc = "=the planet [[Earth]] and the features found on it", wp = "地球"}, ["非洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "非洲"}, ["北非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "北非"}, ["中非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "中非"}, ["南非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "南非"}, ["東非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "東非"}, ["西非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "西非"}, ["漠南非洲"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "漠南非洲"}, ["美洲"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "美洲"}, ["北美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "北美洲"}, ["加勒比地區"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "加勒比地區"}, ["中美洲"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "中美洲"}, ["南美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "南美洲"}, ["南極洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, fulldesc = "=the territory of [[Antarctica]]", wp = "南極洲"}, ["歐亞大陸"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "歐亞大陸"}, ["亞洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "亞洲"}, ["中東"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "中東"}, ["東南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "東南亞"}, ["南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "南亞"}, ["東亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "東亞"}, ["中亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "中亞"}, ["北亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "北亞"}, ["東北亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "東北亞"}, ["西亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "西亞"}, ["歐洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "歐洲"}, ["西歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "西歐"}, ["東歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "東歐"}, ["北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "北歐"}, ["南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "南歐"}, ["中歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "中歐"}, ["東南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "東南歐"}, ["東北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "東北歐"}, ["大洋洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "大洋洲"}, ["美拉尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "美拉尼西亞"}, ["密克羅尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "密克羅尼西亞"}, ["玻里尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "玻里尼西亞"}, } export.continents_group = { default_overriding_bare_label_parents = {}, default_divs = {{type = "countries", prep = "in"}}, 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, default_no_check_holonym_mismatch = true, data = export.continents, } export.countries = { -- Africa ["阿爾及利亞"] = {container = "非洲", divs = {"provinces", "communes", "districts"}, wp = "阿爾及利亞"}, ["安哥拉"] = {container = "非洲", divs = {"provinces", "municipalities"}, wp = "安哥拉"}, ["貝寧"] = {container = "非洲", wp = "貝寧"}, ["貝南"] = {alias_of = "貝寧"}, ["博茨瓦納"] = {container = "非洲", wp = "博茨瓦納"}, ["波札那"] = {alias_of = "博茨瓦納"}, ["布基納法索"] = {container = "非洲", wp = "布基納法索"}, ["布吉納法索"] = {alias_of = "布基納法索"}, ["布隆迪"] = {container = "非洲", wp = "布隆迪"}, ["蒲隆地"] = {alias_of = "布隆迪"}, ["佛得角"] = {container = "非洲", wp = "佛得角"}, ["維德角"] = {alias_of = "佛得角"}, ["中非共和國"] = {container = "非洲", wp = "中非共和國"}, ["乍得"] = {container = "非洲", wp = "乍得"}, ["查德"] = {alias_of = "乍得"}, ["科摩羅"] = {container = "非洲", wp = "科摩羅"}, ["葛摩"] = {alias_of = "科摩羅"}, ["剛果共和國"] = {container = "非洲", wp = "剛果共和國"}, ["剛果(布)"] = {alias_of = "剛果共和國"}, ["剛果民主共和國"] = {container = "非洲", divs = {"provinces"}, wp = "剛果民主共和國"}, ["剛果(金)"] = {alias_of = "剛果民主共和國"}, ["吉布提"] = {container = "非洲", wp = "吉布提"}, ["吉布地"] = {alias_of = "吉布提"}, ["埃及"] = {container = "非洲", divs = {"governorates"}, wp = "埃及"}, ["赤道幾內亞"] = {container = "非洲", wp = "赤道幾內亞"}, ["厄立特里亞"] = {container = "非洲", wp = "厄立特里亞"}, ["厄利垂亞"] = {alias_of = "厄立特里亞"}, ["斯威士蘭"] = {container = "非洲", wp = "斯威士蘭"}, ["史瓦帝尼"] = {alias_of = "斯威士蘭"}, ["埃塞俄比亞"] = {container = "非洲", divs = {"regions"}, wp = "埃塞俄比亞"}, ["衣索比亞"] = {alias_of = "埃塞俄比亞"}, ["加蓬"] = {container = "非洲", wp = "加蓬"}, ["加彭"] = {alias_of = "加蓬"}, ["岡比亞"] = {container = "非洲", wp = "岡比亞"}, ["甘比亞"] = {alias_of = "岡比亞"}, ["加納"] = {container = "非洲", wp = "加納"}, ["迦納"] = {alias_of = "加納"}, ["幾內亞"] = {container = "非洲", wp = "幾內亞"}, ["幾內亞比紹"] = {container = "非洲", wp = "幾內亞比紹"}, ["幾內亞比索"] = {alias_of = "幾內亞比紹"}, ["科特迪瓦"] = {container = "非洲", wp = "科特迪瓦"}, ["象牙海岸"] = {alias_of = "科特迪瓦"}, ["肯尼亞"] = {container = "非洲", divs = {"counties"}, wp = "肯尼亞"}, ["肯亞"] = {alias_of = "肯尼亞"}, ["萊索托"] = {container = "非洲", wp = "萊索托"}, ["賴索托"] = {alias_of = "萊索托"}, ["利比里亞"] = {container = "非洲", wp = "利比里亞"}, ["賴比瑞亞"] = {alias_of = "利比里亞"}, ["利比亞"] = {container = "非洲", wp = "利比亞"}, ["馬達加斯加"] = {container = "非洲", wp = "馬達加斯加"}, ["馬拉維"] = {container = "非洲", wp = "馬拉維"}, ["馬拉威"] = {alias_of = "馬拉維"}, ["馬里"] = {container = "非洲", wp = "馬里"}, ["馬利"] = {alias_of = "馬里"}, ["毛里塔尼亞"] = {container = "非洲", wp = "毛里塔尼亞"}, ["茅利塔尼亞"] = {alias_of = "毛里塔尼亞"}, ["毛里求斯"] = {container = "非洲", wp = "毛里求斯"}, ["模里西斯"] = {alias_of = "毛里求斯"}, ["摩洛哥"] = {container = "非洲", wp = "摩洛哥"}, ["莫桑比克"] = {container = "非洲", wp = "莫桑比克"}, ["莫三比克"] = {alias_of = "莫桑比克"}, ["納米比亞"] = {container = "非洲", wp = "納米比亞"}, ["尼日爾"] = {container = "非洲", wp = "尼日爾"}, ["尼日"] = {alias_of = "尼日爾"}, ["尼日利亞"] = {container = "非洲", divs = { {type = "states", cat_as = "states and FCT"}, "local government areas", }, wp = "尼日利亞"}, ["奈及利亞"] = {alias_of = "尼日利亞"}, ["盧旺達"] = {container = "非洲", wp = "盧旺達"}, ["盧安達"] = {alias_of = "盧旺達"}, ["聖多美和普林西比"] = {container = "非洲", wp = "聖多美和普林西比"}, ["塞內加爾"] = {container = "非洲", wp = "塞內加爾"}, ["塞舌爾"] = {container = "非洲", wp = "塞舌爾"}, ["塞席爾"] = {alias_of = "塞舌爾"}, ["塞拉利昂"] = {container = "非洲", wp = "塞拉利昂"}, ["獅子山"] = {alias_of = "塞拉利昂"}, ["索馬里"] = {container = "非洲", wp = "索馬里"}, ["索馬利亞"] = {alias_of = "索馬里"}, ["南非"] = {container = "非洲", divs = {"provinces"}, wp = "南非"}, ["南蘇丹"] = {container = "非洲", wp = "南蘇丹"}, ["蘇丹"] = {container = "非洲", wp = "蘇丹"}, ["坦桑尼亞"] = {container = "非洲", wp = "坦桑尼亞"}, ["坦尚尼亞"] = {alias_of = "坦桑尼亞"}, ["多哥"] = {container = "非洲", wp = "多哥"}, ["突尼斯"] = {container = "非洲", wp = "突尼斯"}, ["突尼西亞"] = {alias_of = "突尼斯"}, ["烏干達"] = {container = "非洲", wp = "烏干達"}, ["贊比亞"] = {container = "非洲", wp = "贊比亞"}, ["尚比亞"] = {alias_of = "贊比亞"}, ["津巴布韋"] = {container = "非洲", wp = "津巴布韋"}, ["辛巴威"] = {alias_of = "津巴布韋"}, -- Asia ["阿富汗"] = {container = "亞洲", wp = "阿富汗"}, ["亞美尼亞"] = {container = {"歐洲", "亞洲"}, wp = "亞美尼亞"}, ["阿塞拜疆"] = {container = {"歐洲", "亞洲"}, wp = "阿塞拜疆"}, ["亞塞拜然"] = {alias_of = "阿塞拜疆"}, ["巴林"] = {container = "亞洲", wp = "巴林"}, ["孟加拉國"] = {container = "亞洲", divs = {"divisions", "districts"}, wp = "孟加拉國"}, ["孟加拉"] = {alias_of = "孟加拉國"}, ["不丹"] = {container = "亞洲", wp = "不丹"}, ["文萊"] = {container = "亞洲", wp = "文萊"}, ["汶萊"] = {alias_of = "文萊"}, ["柬埔寨"] = {container = "亞洲", wp = "柬埔寨"}, ["中國"] = {container = "亞洲", divs = { {type = "provinces", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "autonomous regions", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "direct-administered municipalities", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "special administrative regions", cat_as = "special administrative regions"}, }, wp = "中國"}, ["東帝汶"] = {container = "亞洲", wp = "東帝汶"}, ["帝汶島"] = {alias_of = "東帝汶"}, ["印度"] = {container = "亞洲", divs = { {type = "states", cat_as = "states and union territories"}, {type = "union territories", cat_as = "states and union territories"}, }, wp = "印度"}, ["印度尼西亞"] = {container = "亞洲", divs = {"provinces"}, wp = "印度尼西亞"}, ["印尼"] = {alias_of = "印度尼西亞"}, ["伊朗"] = {container = "亞洲", wp = "伊朗"}, ["伊拉克"] = {container = "亞洲", wp = "伊拉克"}, ["以色列"] = {container = "亞洲", wp = "以色列"}, ["日本"] = {container = "亞洲", divs = {"prefectures"}, wp = "日本"}, ["約旦"] = {container = "亞洲", wp = "約旦"}, ["哈薩克斯坦"] = {container = {"歐洲", "亞洲"}, wp = "哈薩克斯坦"}, ["哈薩克"] = {alias_of = "哈薩克斯坦"}, ["朝鮮"] = {container = "亞洲", wp = "朝鮮民主主義人民共和國"}, ["北韓"] = {alias_of = "朝鮮"}, ["韓國"] = {container = "亞洲", divs = {"provinces", "special cities", "metropolitan cities"}, wp = "韓國"}, ["南韓"] = {alias_of = "韓國"}, ["科威特"] = {container = "亞洲", wp = "科威特"}, ["吉爾吉斯斯坦"] = {container = "亞洲", wp = "吉爾吉斯斯坦"}, ["吉爾吉斯"] = {alias_of = "吉爾吉斯斯坦"}, ["老撾"] = {container = "亞洲", wp = "老撾"}, ["寮國"] = {alias_of = "老撾"}, ["黎巴嫩"] = {container = "亞洲", wp = "黎巴嫩"}, ["馬來西亞"] = {container = "亞洲", divs = {"states"}, wp = "馬來西亞"}, ["馬爾代夫"] = {container = "亞洲", wp = "馬爾代夫"}, ["馬爾地夫"] = {alias_of = "馬爾代夫"}, ["蒙古"] = {container = "亞洲", wp = "蒙古"}, ["緬甸"] = {container = "亞洲", wp = "緬甸"}, ["尼泊爾"] = {container = "亞洲", wp = "尼泊爾"}, ["阿曼"] = {container = "亞洲", wp = "阿曼"}, ["巴基斯坦"] = {container = "亞洲", divs = {"provinces"}, wp = "巴基斯坦"}, ["菲律賓"] = {container = "亞洲", divs = {"regions"}, wp = "菲律賓"}, ["卡塔爾"] = {container = "亞洲", wp = "卡塔爾"}, ["卡達"] = {alias_of = "卡塔爾"}, ["俄羅斯"] = {container = {"歐洲", "亞洲"}, divs = {"federal subjects"}, wp = "俄羅斯"}, ["俄國"] = {alias_of = "俄羅斯"}, ["沙特阿拉伯"] = {container = "亞洲", wp = "沙特阿拉伯"}, ["沙烏地阿拉伯"] = {alias_of = "沙特阿拉伯"}, ["新加坡"] = {container = "亞洲", is_city = true, wp = "新加坡"}, ["斯里蘭卡"] = {container = "亞洲", wp = "斯里蘭卡"}, ["敘利亞"] = {container = "亞洲", wp = "敘利亞"}, ["臺灣"] = {container = "亞洲", divs = { "special municipalities", "counties", }, wp = "臺灣"}, ["台灣"] = {alias_of = "臺灣"}, ["塔吉克斯坦"] = {container = "亞洲", wp = "塔吉克斯坦"}, ["塔吉克"] = {alias_of = "塔吉克斯坦"}, ["泰國"] = {container = "亞洲", divs = {"provinces"}, wp = "泰國"}, ["土耳其"] = {container = {"歐洲", "亞洲"}, wp = "土耳其"}, ["土庫曼斯坦"] = {container = "亞洲", wp = "土庫曼斯坦"}, ["土庫曼"] = {alias_of = "土庫曼斯坦"}, ["阿拉伯聯合酋長國"] = {container = "亞洲", wp = "阿拉伯聯合酋長國"}, ["阿拉伯聯合大公國"] = {alias_of = "阿拉伯聯合酋長國"}, ["阿聯酋"] = {alias_of = "阿拉伯聯合酋長國"}, ["烏茲別克斯坦"] = {container = "亞洲", wp = "烏茲別克斯坦"}, ["烏茲別克"] = {alias_of = "烏茲別克斯坦"}, ["越南"] = {container = "亞洲", divs = {"provinces", "municipalities"}, wp = "越南"}, ["也門"] = {container = "亞洲", wp = "也門"}, ["葉門"] = {alias_of = "也門"}, -- Europe ["阿爾巴尼亞"] = {container = "歐洲", wp = "阿爾巴尼亞"}, ["安道爾"] = {container = "歐洲", wp = "安道爾"}, ["奧地利"] = {container = "歐洲", divs = {"states"}, wp = "奧地利"}, ["白俄羅斯"] = {container = "歐洲", divs = {"regions"}, wp = "白俄羅斯"}, ["比利時"] = {container = "歐洲", divs = {"regions", "provinces"}, wp = "比利時"}, ["波斯尼亞和黑塞哥維那"] = {container = "歐洲", wp = "波斯尼亞和黑塞哥維那"}, ["波士尼亞與赫塞哥維納"] = {alias_of = "波斯尼亞和黑塞哥維那"}, ["保加利亞"] = {container = "歐洲", wp = "保加利亞"}, ["克羅地亞"] = {container = "歐洲", wp = "克羅地亞"}, ["克羅埃西亞"] = {alias_of = "克羅地亞"}, ["塞浦路斯"] = {container = "亞洲", addl_parents = {"歐洲"}, wp = "塞浦路斯"}, ["賽普勒斯"] = {alias_of = "塞浦路斯"}, ["捷克"] = {container = "歐洲", wp = "捷克"}, ["丹麥"] = {container = "歐洲", wp = "丹麥"}, ["愛沙尼亞"] = {container = "歐洲", wp = "愛沙尼亞"}, ["芬蘭"] = {container = "歐洲", divs = {"regions"}, wp = "芬蘭"}, ["法國"] = {container = "歐洲", divs = { {type = "regions", cat_as = "metropolitan regions"}, "departments", "communes", }, wp = "法國"}, ["格魯吉亞"] = {container = {"歐洲", "亞洲"}, wp = "格魯吉亞"}, ["喬治亞"] = {alias_of = "格魯吉亞"}, ["德國"] = {container = "歐洲", divs = {"states"}, wp = "德國"}, ["希臘"] = {container = "歐洲", divs = {"regions"}, wp = "希臘"}, ["匈牙利"] = {container = "歐洲", wp = "匈牙利"}, ["冰島"] = {container = "歐洲", wp = "冰島"}, ["愛爾蘭"] = {container = "歐洲", divs = {"provinces", "counties"}, wp = "愛爾蘭"}, ["意大利"] = {container = "歐洲", divs = {"regions"}, wp = "意大利"}, ["義大利"] = {alias_of = "意大利"}, ["科索沃"] = {container = "歐洲", wp = "科索沃"}, ["拉脫維亞"] = {container = "歐洲", wp = "拉脫維亞"}, ["拉托維亞"] = {alias_of = "拉脫維亞"}, ["列支敦士登"] = {container = "歐洲", wp = "列支敦士登"}, ["列支敦斯登"] = {alias_of = "列支敦士登"}, ["立陶宛"] = {container = "歐洲", wp = "立陶宛"}, ["盧森堡"] = {container = "歐洲", wp = "盧森堡"}, ["北馬其頓"] = {container = "歐洲", wp = "北馬其頓"}, ["馬耳他"] = {container = "歐洲", wp = "馬耳他"}, ["馬爾他"] = {alias_of = "馬耳他"}, ["摩爾多瓦"] = {container = "歐洲", wp = "摩爾多瓦"}, ["摩納哥"] = {container = "歐洲", is_city = true, wp = "摩納哥"}, ["黑山"] = {container = "歐洲", wp = "黑山"}, ["蒙特內哥羅"] = {alias_of = "黑山"}, ["荷蘭"] = {container = "歐洲", divs = {"provinces"}, wp = "荷蘭"}, ["尼德蘭"] = {alias_of = "荷蘭"}, ["挪威"] = {container = "歐洲", wp = "挪威"}, ["波蘭"] = {container = "歐洲", divs = {"voivodeships"}, wp = "波蘭"}, ["葡萄牙"] = {container = "歐洲", divs = {"districts"}, wp = "葡萄牙"}, ["羅馬尼亞"] = {container = "歐洲", wp = "羅馬尼亞"}, ["聖馬力諾"] = {container = "歐洲", wp = "聖馬力諾"}, ["聖馬利諾"] = {alias_of = "聖馬力諾"}, ["塞爾維亞"] = {container = "歐洲", wp = "塞爾維亞"}, ["斯洛伐克"] = {container = "歐洲", wp = "斯洛伐克"}, ["斯洛文尼亞"] = {container = "歐洲", wp = "斯洛文尼亞"}, ["斯洛維尼亞"] = {alias_of = "斯洛文尼亞"}, ["西班牙"] = {container = "歐洲", divs = {"autonomous communities"}, wp = "西班牙"}, ["瑞典"] = {container = "歐洲", wp = "瑞典"}, ["瑞士"] = {container = "歐洲", divs = {"cantons"}, wp = "瑞士"}, ["烏克蘭"] = {container = "歐洲", divs = {"oblasts"}, wp = "烏克蘭"}, ["英國"] = {container = "歐洲", divs = { {type = "constituent countries", cat_as = "constituent countries"}, }, wp = "英國"}, -- North America ["加拿大"] = {container = "北美洲", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, }, wp = "加拿大"}, ["墨西哥"] = {container = "北美洲", divs = {"states"}, wp = "墨西哥"}, ["美國"] = {container = "北美洲", divs = {"states"}, wp = "美國"}, -- Central America ["伯利茲"] = {container = "中美洲", wp = "伯利茲"}, ["貝里斯"] = {alias_of = "伯利茲"}, ["哥斯達黎加"] = {container = "中美洲", wp = "哥斯達黎加"}, ["哥斯大黎加"] = {alias_of = "哥斯達黎加"}, ["薩爾瓦多"] = {container = "中美洲", wp = "薩爾瓦多"}, ["危地馬拉"] = {container = "中美洲", wp = "危地馬拉"}, ["瓜地馬拉"] = {alias_of = "危地馬拉"}, ["洪都拉斯"] = {container = "中美洲", wp = "洪都拉斯"}, ["宏都拉斯"] = {alias_of = "洪都拉斯"}, ["尼加拉瓜"] = {container = "中美洲", wp = "尼加拉瓜"}, ["巴拿馬"] = {container = "中美洲", wp = "巴拿馬"}, -- Caribbean ["安提瓜和巴布達"] = {container = "加勒比地區", wp = "安提瓜和巴布達"}, ["安地卡及巴布達"] = {alias_of = "安提瓜和巴布達"}, ["巴哈馬"] = {container = "加勒比地區", wp = "巴哈馬"}, ["巴巴多斯"] = {container = "加勒比地區", wp = "巴巴多斯"}, ["巴貝多"] = {alias_of = "巴巴多斯"}, ["古巴"] = {container = "加勒比地區", wp = "古巴"}, ["多米尼克"] = {container = "加勒比地區", wp = "多米尼克"}, ["多米尼加共和國"] = {container = "加勒比地區", wp = "多米尼加"}, ["多明尼加共和國"] = {alias_of = "多米尼加共和國"}, ["格林納達"] = {container = "加勒比地區", wp = "格林納達"}, ["格瑞那達"] = {alias_of = "格林納達"}, ["海地"] = {container = "加勒比地區", wp = "海地"}, ["牙買加"] = {container = "加勒比地區", wp = "牙買加"}, ["聖基茨和尼維斯"] = {container = "加勒比地區", wp = "聖基茨和尼維斯"}, ["聖克里斯多福及尼維斯"] = {alias_of = "聖基茨和尼維斯"}, ["聖盧西亞"] = {container = "加勒比地區", wp = "聖盧西亞"}, ["聖露西亞"] = {alias_of = "聖盧西亞"}, ["聖文森特和格林納丁斯"] = {container = "加勒比地區", wp = "聖文森特和格林納丁斯"}, ["聖文森及格瑞那丁"] = {alias_of = "聖文森特和格林納丁斯"}, ["特立尼達和多巴哥"] = {container = "加勒比地區", wp = "特立尼達和多巴哥"}, ["千里達及托巴哥"] = {alias_of = "特立尼達和多巴哥"}, -- South America ["阿根廷"] = {container = "南美洲", divs = {"provinces"}, wp = "阿根廷"}, ["玻利維亞"] = {container = "南美洲", wp = "玻利維亞"}, ["巴西"] = {container = "南美洲", divs = {"states"}, wp = "巴西"}, ["智利"] = {container = "南美洲", wp = "智利"}, ["哥倫比亞"] = {container = "南美洲", wp = "哥倫比亞"}, ["厄瓜多爾"] = {container = "南美洲", wp = "厄瓜多爾"}, ["厄瓜多"] = {alias_of = "厄瓜多爾"}, ["圭亞那"] = {container = "南美洲", wp = "圭亞那"}, ["蓋亞那"] = {alias_of = "圭亞那"}, ["巴拉圭"] = {container = "南美洲", wp = "巴拉圭"}, ["秘魯"] = {container = "南美洲", wp = "秘魯"}, ["蘇里南"] = {container = "南美洲", wp = "蘇里南"}, ["蘇利南"] = {alias_of = "蘇里南"}, ["烏拉圭"] = {container = "南美洲", wp = "烏拉圭"}, ["委內瑞拉"] = {container = "南美洲", wp = "委內瑞拉"}, -- Oceania ["澳大利亞"] = {container = "大洋洲", divs = { {type = "states", cat_as = "states and territories"}, {type = "territories", cat_as = "states and territories"}, }, wp = "澳大利亞"}, ["澳洲"] = {alias_of = "澳大利亞"}, ["斐濟"] = {container = "大洋洲", wp = "斐濟"}, ["基里巴斯"] = {container = "大洋洲", wp = "基里巴斯"}, ["吉里巴斯"] = {alias_of = "基里巴斯"}, ["馬紹爾群島"] = {container = "大洋洲", wp = "馬紹爾群島"}, ["密克羅尼西亞聯邦"] = {container = "大洋洲", wp = "密克羅尼西亞聯邦"}, ["瑙魯"] = {container = "大洋洲", wp = "瑙魯"}, ["諾魯"] = {alias_of = "瑙魯"}, ["新西蘭"] = {container = "大洋洲", wp = "新西蘭"}, ["紐西蘭"] = {alias_of = "新西蘭"}, ["帕勞"] = {container = "大洋洲", wp = "帕勞"}, ["帛琉"] = {alias_of = "帕勞"}, ["巴布亞新幾內亞"] = {container = "大洋洲", wp = "巴布亞新幾內亞"}, ["巴布亞紐幾內亞"] = {alias_of = "巴布亞新幾內亞"}, ["薩摩亞"] = {container = "大洋洲", wp = "薩摩亞"}, ["所羅門群島"] = {container = "大洋洲", wp = "所羅門群島"}, ["湯加"] = {container = "大洋洲", wp = "湯加"}, ["東加"] = {alias_of = "湯加"}, ["圖瓦盧"] = {container = "大洋洲", wp = "圖瓦盧"}, ["吐瓦魯"] = {alias_of = "圖瓦盧"}, ["瓦努阿圖"] = {container = "大洋洲", wp = "瓦努阿圖"}, ["萬那杜"] = {alias_of = "瓦努阿圖"}, } export.countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"+++", "國家"}, default_placetype = "country", default_no_container_cat = true, default_no_container_parent = true, default_no_auto_augment_container = true, placename_to_key = false, data = export.countries, } export.country_like_entities = { -- Special administrative regions of China ["香港"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, divs = {"districts"}, wp = "Hong Kong", }, ["澳門"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, wp = "Macau", }, -- Western Sahara ["西撒哈拉"] = { placetype = {"territory", "country"}, container = "非洲", wp = "Western Sahara", }, -- Kosovo (disputed) ["科索沃(部分承認)"] = {alias_of = "科索沃"}, -- Palestinian territories ["巴勒斯坦"] = { placetype = {"country", "territory"}, container = "亞洲", wp = "State of Palestine", }, -- Key overseas territories ["波多黎各"] = { placetype = {"commonwealth", "territory"}, container = "美國", addl_parents = {"加勒比地區"}, wp = "Puerto Rico", }, ["關島"] = { placetype = {"territory"}, container = "美國", addl_parents = {"密克羅尼西亞"}, wp = "Guam", }, ["新喀里多尼亞"] = { placetype = {"territory"}, container = "法國", addl_parents = {"大洋洲"}, wp = "New Caledonia", }, ["法屬圭亞那"] = { placetype = {"territory"}, container = "法國", addl_parents = {"南美洲"}, wp = "French Guiana", }, ["留尼旺"] = { placetype = {"territory"}, container = "法國", addl_parents = {"非洲"}, wp = "Réunion", }, ["馬丁尼克"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Martinique", }, ["瓜德羅普"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Guadeloupe", }, ["格陵蘭"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"北美洲"}, wp = "Greenland", }, ["法羅群島"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"歐洲"}, wp = "Faroe Islands", }, } export.country_like_entities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "country"), default_placetype = "territory", placename_to_key = false, data = export.country_like_entities, } export.former_countries = { ["蘇聯"] = { placetype = {"country"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Soviet Union", }, ["南斯拉夫"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Yugoslavia", }, ["捷克斯洛伐克"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Czechoslovakia", }, ["東德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "East Germany", }, ["西德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "West Germany", }, ["奧匈帝國"] = { placetype = {"empire"}, container = "歐洲", is_former_place = true, wp = "Austria-Hungary", }, ["鄂圖曼帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Ottoman Empire", }, ["奧斯曼帝國"] = {alias_of = "鄂圖曼帝國"}, ["羅馬帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲", "非洲"}, is_former_place = true, wp = "Roman Empire", }, ["大英帝國"] = { placetype = {"empire"}, is_former_place = true, wp = "British Empire", }, ["普魯士"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Prussia", }, } export.former_countries_group = { canonicalize_key_container = canonicalize_continent_container, default_placetype = "country", default_is_former_place = true, placename_to_key = false, data = export.former_countries, } ----------------------------------------------------------------------------------- -- Subpolity tables -- ----------------------------------------------------------------------------------- export.australia_states_and_territories = { ["新南威爾斯"] = {wp = "New South Wales"}, ["維多利亞州"] = {wp = "Victoria (Australia)"}, ["昆士蘭"] = {wp = "Queensland"}, ["南澳大利亞"] = {wp = "South Australia"}, ["西澳大利亞"] = {wp = "Western Australia"}, ["塔斯馬尼亞"] = {wp = "Tasmania"}, ["澳大利亞首都領地"] = {placetype = "territory", wp = "Australian Capital Territory"}, ["北領地"] = {placetype = "territory", wp = "Northern Territory"}, } -- states and territories of Australia export.australia_group = { placename_to_key = false, default_container = "澳大利亞", default_placetype = "state", data = export.australia_states_and_territories, } export.austria_states = { ["維也納州"] = {wp = "Vienna (state)"}, ["下奧地利州"] = {wp = "Lower Austria"}, ["上奧地利州"] = {wp = "Upper Austria"}, ["施泰爾馬克州"] = {wp = "Styria"}, ["蒂羅爾州"] = {wp = "Tyrol (state)"}, ["克恩頓州"] = {wp = "Carinthia"}, ["薩爾茨堡州"] = {wp = "Salzburg (state)"}, ["福拉爾貝格州"] = {wp = "Vorarlberg"}, ["布根蘭州"] = {wp = "Burgenland"}, } -- states of Austria export.austria_group = { placename_to_key = false, default_container = "奧地利", default_placetype = "state", data = export.austria_states, } export.bangladesh_divisions = { ["巴里薩爾專區"] = {wp = "Barisal Division"}, ["吉大港專區"] = {wp = "Chittagong Division"}, ["達卡專區"] = {wp = "Dhaka Division"}, ["庫爾納專區"] = {wp = "Khulna Division"}, ["邁門辛專區"] = {wp = "Mymensingh Division"}, ["拉吉沙希專區"] = {wp = "Rajshahi Division"}, ["朗普爾專區"] = {wp = "Rangpur Division"}, ["錫爾赫特專區"] = {wp = "Sylhet Division"}, } -- divisions of Bangladesh export.bangladesh_group = { placename_to_key = false, default_container = "孟加拉國", default_placetype = "division", data = export.bangladesh_divisions, } export.brazil_states = { ["里約熱內盧州"] = {wp = "Rio de Janeiro (state)"}, ["里約熱內盧"] = {alias_of = "里約熱內盧州"}, ["聖保羅州"] = {wp = "São Paulo (state)"}, ["米納斯吉拉斯"] = {wp = "Minas Gerais"}, ["巴伊亞"] = {wp = "Bahia"}, ["亞馬遜州"] = {wp = "Amazonas (Brazilian state)"}, ["帕拉州"] = {wp = "Pará"}, ["伯南布哥州"] = {wp = "Pernambuco"}, ["南里奧格蘭德州"] = {wp = "Rio Grande do Sul"}, ["巴西聯邦區"] = {wp = "Federal District (Brazil)"}, ["塞阿拉州"] = {wp = "Ceará"}, ["巴拉那州"] = {wp = "Paraná (state)"}, ["戈亞斯州"] = {wp = "Goiás"}, ["聖埃斯皮里圖州"] = {wp = "Espírito Santo"}, ["馬拉尼昂州"] = {wp = "Maranhão"}, ["北里奧格蘭德州"] = {wp = "Rio Grande do Norte"}, ["聖卡塔琳娜州"] = {wp = "Santa Catarina (state)"}, ["阿拉戈亞斯州"] = {wp = "Alagoas"}, ["帕拉伊巴州"] = {wp = "Paraíba"}, ["皮奧伊州"] = {wp = "Piauí"}, ["阿克里州"] = {wp = "Acre (state)"}, ["阿馬帕州"] = {wp = "Amapá"}, ["馬托格羅索州"] = {wp = "Mato Grosso"}, ["南馬托格羅索州"] = {wp = "Mato Grosso do Sul"}, ["朗多尼亞州"] = {wp = "Rondônia"}, ["羅賴馬州"] = {wp = "Roraima"}, ["塞爾希培州"] = {wp = "Sergipe"}, ["托坎廷斯州"] = {wp = "Tocantins"}, } -- states of Brazil export.brazil_group = { placename_to_key = false, default_container = "巴西", default_placetype = "state", data = export.brazil_states, } -- provinces (a.k.a. oblasts) of Bulgaria export.bulgaria_provinces = { ["布拉戈耶夫格勒省"] = {wp = "Blagoevgrad Province"}, ["布爾加斯省"] = {wp = "Burgas Province"}, ["多布里奇省"] = {wp = "Dobrich Province"}, ["加布羅沃省"] = {wp = "Gabrovo Province"}, ["哈斯科沃省"] = {wp = "Haskovo Province"}, ["卡爾扎利省"] = {wp = "Kardzhali Province"}, ["屈斯滕迪爾省"] = {wp = "Kyustendil Province"}, ["洛維奇省"] = {wp = "Lovech Province"}, ["蒙塔納省"] = {wp = "Montana Province"}, ["帕扎爾吉克省"] = {wp = "Pazardzhik Province"}, ["佩爾尼克省"] = {wp = "Pernik Province"}, ["普萊文省"] = {wp = "Pleven Province"}, ["普羅夫迪夫省"] = {wp = "Plovdiv Province"}, ["拉茲格勒省"] = {wp = "Razgrad Province"}, ["魯塞省"] = {wp = "Ruse Province"}, ["舒門省"] = {wp = "Shumen Province"}, ["錫利斯特拉省"] = {wp = "Silistra Province"}, ["斯利文省"] = {wp = "Sliven Province"}, ["斯莫梁省"] = {wp = "Smolyan Province"}, ["索非亞市省"] = {wp = "Sofia City Province"}, ["索非亞省"] = {wp = "Sofia Province"}, ["斯塔拉扎戈拉省"] = {wp = "Stara Zagora Province"}, ["特爾戈維什泰省"] = {wp = "Targovishte Province"}, ["瓦爾納省"] = {wp = "Varna Province"}, ["大特爾諾沃省"] = {wp = "Veliko Tarnovo Province"}, ["維丁省"] = {wp = "Vidin Province"}, ["弗拉察省"] = {wp = "Vratsa Province"}, ["揚博爾省"] = {wp = "Yambol Province"}, } export.bulgaria_group = { placename_to_key = false, default_container = "保加利亞", divs = {"regions", "planning regions", "provinces", "municipalities", "settlements"}, default_placetype = "province", data = export.bulgaria_provinces, } export.canada_provinces_and_territories = { ["亞伯達"] = {wp = "Alberta"}, ["艾伯塔"] = {alias_of = "亞伯達"}, ["英屬哥倫比亞"] = {wp = "British Columbia"}, ["卑詩省"] = {alias_of = "英屬哥倫比亞"}, ["馬尼托巴"] = {wp = "Manitoba"}, ["新不倫瑞克"] = {wp = "New Brunswick"}, ["紐芬蘭與拉布拉多"] = {wp = "Newfoundland and Labrador"}, ["西北地區"] = {placetype = "territory", wp = "Northwest Territories"}, ["新斯科舍"] = {wp = "Nova Scotia"}, ["努納武特"] = {placetype = "territory", wp = "Nunavut"}, ["安大略"] = {divs = {"counties", "regional municipalities"}, wp = "Ontario"}, ["愛德華王子島"] = {wp = "Prince Edward Island"}, ["魁北克"] = {wp = "Quebec"}, ["薩斯喀徹溫"] = {wp = "Saskatchewan"}, ["育空"] = {placetype = "territory", wp = "Yukon"}, } export.canada_group = { placename_to_key = false, default_container = "加拿大", default_placetype = "province", data = export.canada_provinces_and_territories, } export.china_provinces_and_autonomous_regions = { -- Provinces ["安徽"] = {wp = "安徽省"}, ["福建"] = {wp = "福建省"}, ["甘肅"] = {wp = "甘肅省"}, ["廣東"] = {wp = "廣東省"}, ["貴州"] = {wp = "貴州省"}, ["海南"] = {wp = "海南省"}, ["河北"] = {wp = "河北省"}, ["黑龍江"] = {wp = "黑龍江省"}, ["河南"] = {wp = "河南省"}, ["湖北"] = {wp = "湖北省"}, ["湖南"] = {wp = "湖南省"}, ["江蘇"] = {wp = "江蘇省"}, ["江西"] = {wp = "江西省"}, ["吉林"] = {wp = "吉林省"}, ["遼寧"] = {wp = "遼寧省"}, ["青海"] = {wp = "青海省"}, ["陝西"] = {wp = "陝西省"}, ["山東"] = {wp = "山東省"}, ["山西"] = {wp = "山西省"}, ["四川"] = {wp = "四川省"}, ["雲南"] = {wp = "雲南省"}, ["浙江"] = {wp = "浙江省"}, -- Autonomous regions ["廣西"] = {placetype = "autonomous region", wp = "廣西壯族自治區"}, ["廣西壯族自治區"] = {alias_of = "廣西"}, ["內蒙古"] = {placetype = "autonomous region", wp = "內蒙古自治區"}, ["內蒙古自治區"] = {alias_of = "內蒙"}, ["寧夏"] = {placetype = "autonomous region", wp = "寧夏回族自治區"}, ["寧夏回族自治區"] = {alias_of = "寧夏"}, ["西藏"] = {placetype = "autonomous region", wp = "西藏自治區"}, ["西藏自治區"] = {alias_of = "西藏"}, ["新疆"] = {placetype = "autonomous region", wp = "新疆維吾爾自治區"}, ["新疆維吾爾自治區"] = {alias_of = "新疆"}, -- Direct-administered municipalities (treated as province-level for holonym purposes) ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "北京市"}, ["北京市"] = {alias_of = "北京"}, ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "上海市"}, ["上海市"] = {alias_of = "上海"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "天津市"}, ["天津市"] = {alias_of = "天津"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "重慶市"}, ["重慶市"] = {alias_of = "重慶"}, } export.china_group = { placename_to_key = false, default_container = "中國", default_placetype = "province", default_divs = { "prefecture-level cities", "districts", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_provinces_and_autonomous_regions, } export.china_prefecture_level_cities = { -- Guangdong ["廣州"] = {container = "廣東", wp = "Guangzhou"}, ["東莞"] = {container = "廣東", wp = "Dongguan"}, ["佛山"] = {container = "廣東", wp = "Foshan"}, ["惠州"] = {container = "廣東", wp = "Huizhou"}, ["江門"] = {container = "廣東", wp = "Jiangmen"}, ["深圳"] = {container = "廣東", wp = "Shenzhen"}, ["中山"] = {container = "廣東", wp = "Zhongshan"}, ["汕頭"] = {container = "廣東", wp = "Shantou"}, ["潮州"] = {container = "廣東", wp = "Chaozhou"}, ["揭陽"] = {container = "廣東", wp = "Jieyang"}, ["珠海"] = {container = "廣東", wp = "Zhuhai"}, ["湛江"] = {container = "廣東", wp = "Zhanjiang"}, ["茂名"] = {container = "廣東", wp = "Maoming"}, ["清遠"] = {container = "廣東", wp = "Qingyuan"}, ["肇慶"] = {container = "廣東", wp = "Zhaoqing"}, -- Direct-administered municipalities (also in china_provinces; duplicated here for division categorisation) ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Shanghai"}, ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Beijing"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Chongqing"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Tianjin"}, -- Jiangsu ["常熟"] = {container = "江蘇", wp = "Changshu"}, ["常州"] = {container = "江蘇", wp = "Changzhou"}, ["蘇州"] = {container = "江蘇", wp = "Suzhou"}, ["無錫"] = {container = "江蘇", wp = "Wuxi"}, ["南京"] = {container = "江蘇", wp = "Nanjing"}, ["南通"] = {container = "江蘇", wp = "Nantong"}, ["江陰"] = {container = "江蘇", wp = "Jiangyin"}, ["張家港"] = {container = "江蘇", wp = "Zhangjiagang"}, ["徐州"] = {container = "江蘇", wp = "Xuzhou"}, ["揚州"] = {container = "江蘇", wp = "Yangzhou"}, ["鹽城"] = {container = "江蘇", wp = "Yancheng"}, ["淮安"] = {container = "江蘇", wp = "Huai'an"}, ["連雲港"] = {container = "江蘇", wp = "Lianyungang"}, ["宿遷"] = {container = "江蘇", wp = "Suqian"}, ["鎮江"] = {container = "江蘇", wp = "Zhenjiang"}, ["崑山"] = {container = "江蘇", wp = "Kunshan"}, ["泰州"] = {container = "江蘇", wp = "Taizhou, Jiangsu"}, -- distinct from 台州 (Zhejiang) -- Zhejiang ["杭州"] = {container = "浙江", wp = "Hangzhou"}, ["紹興"] = {container = "浙江", wp = "Shaoxing"}, ["寧波"] = {container = "浙江", wp = "Ningbo"}, ["慈溪"] = {container = "浙江", wp = "Cixi"}, ["余姚"] = {container = "浙江", wp = "Yuyao"}, ["溫州"] = {container = "浙江", wp = "Wenzhou"}, ["瑞安"] = {placetype = "county-level city", container = {key = "溫州", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Rui'an"}, ["台州"] = {container = "浙江", wp = "Taizhou, Zhejiang"}, ["義烏"] = {container = "浙江", wp = "Yiwu"}, ["嘉興"] = {container = "浙江", wp = "Jiaxing"}, ["金華"] = {container = "浙江", wp = "Jinhua"}, ["湖州"] = {container = "浙江", wp = "Huzhou"}, ["永康"] = {placetype = "county-level city", container = {key = "金華", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Yongkang, Zhejiang"}, -- Fujian ["廈門"] = {container = "福建", wp = "Xiamen"}, ["晉江"] = {container = "福建", wp = "Jinjiang"}, ["泉州"] = {container = "福建", wp = "Quanzhou"}, ["莆田"] = {container = "福建", wp = "Putian"}, ["福州"] = {container = "福建", wp = "Fuzhou"}, -- Shandong ["青島"] = {container = "山東", wp = "Qingdao"}, ["臨沂"] = {container = "山東", wp = "Linyi"}, ["淄博"] = {container = "山東", wp = "Zibo"}, ["濟南"] = {container = "山東", wp = "Jinan"}, ["濰坊"] = {container = "山東", wp = "Weifang"}, ["煙台"] = {container = "山東", wp = "Yantai"}, ["濟寧"] = {container = "山東", wp = "Jining"}, ["泰安"] = {container = "山東", wp = "Tai'an"}, ["威海"] = {container = "山東", wp = "Weihai"}, ["菏澤"] = {container = "山東", wp = "Heze"}, ["德州"] = {container = "山東", wp = "Dezhou"}, ["日照"] = {container = "山東", wp = "Rizhao"}, ["聊城"] = {container = "山東", wp = "Liaocheng"}, ["棗莊"] = {container = "山東", wp = "Zaozhuang"}, ["滕州"] = {placetype = "county-level city", container = {key = "棗莊", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Tengzhou"}, ["東營"] = {container = "山東", wp = "Dongying"}, -- Henan ["鄭州"] = {container = "河南", wp = "Zhengzhou"}, ["洛陽"] = {container = "河南", wp = "Luoyang"}, ["新鄉"] = {container = "河南", wp = "Xinxiang"}, ["信陽"] = {container = "河南", wp = "Xinyang"}, ["安陽"] = {container = "河南", wp = "Anyang"}, ["開封"] = {container = "河南", wp = "Kaifeng"}, ["許昌"] = {container = "河南", wp = "Xuchang"}, ["濮陽"] = {container = "河南", wp = "Puyang"}, ["商丘"] = {container = "河南", wp = "Shangqiu"}, ["南陽"] = {container = "河南", wp = "Nanyang, Henan"}, ["焦作"] = {container = "河南", wp = "Jiaozuo"}, ["平頂山"] = {container = "河南", wp = "Pingdingshan"}, ["周口"] = {container = "河南", wp = "Zhoukou"}, ["駐馬店"] = {container = "河南", wp = "Zhumadian"}, -- Hubei ["武漢"] = {container = "湖北", wp = "Wuhan"}, ["襄陽"] = {container = "湖北", wp = "Xiangyang"}, ["宜昌"] = {container = "湖北", wp = "Yichang"}, ["鄂州"] = {container = "湖北", wp = "Ezhou"}, ["十堰"] = {container = "湖北", wp = "Shiyan"}, -- Hunan ["長沙"] = {container = "湖南", wp = "Changsha"}, ["株洲"] = {container = "湖南", wp = "Zhuzhou"}, ["衡陽"] = {container = "湖南", wp = "Hengyang"}, ["邵陽"] = {container = "湖南", wp = "Shaoyang"}, ["岳陽"] = {container = "湖南", wp = "Yueyang"}, ["常德"] = {container = "湖南", wp = "Changde"}, ["瀏陽"] = {placetype = "county-level city", container = {key = "長沙", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Liuyang"}, -- Sichuan ["成都"] = {container = "四川", wp = "Chengdu"}, ["綿陽"] = {container = "四川", wp = "Mianyang"}, ["南充"] = {container = "四川", wp = "Nanchong"}, ["達州"] = {container = "四川", wp = "Dazhou"}, ["瀘州"] = {container = "四川", wp = "Luzhou"}, ["宜賓"] = {container = "四川", wp = "Yibin"}, -- Yunnan ["昆明"] = {container = "雲南", wp = "Kunming"}, ["曲靖"] = {container = "雲南", wp = "Qujing"}, -- Guizhou ["貴陽"] = {container = "貴州", wp = "Guiyang"}, ["遵義"] = {container = "貴州", wp = "Zunyi"}, ["六盤水"] = {container = "貴州", wp = "Liupanshui"}, ["畢節"] = {container = "貴州", wp = "Bijie"}, -- Shaanxi ["西安"] = {container = "陝西", wp = "Xi'an"}, ["咸陽"] = {container = "陝西", wp = "Xianyang"}, ["寶雞"] = {container = "陝西", wp = "Baoji"}, -- Heilongjiang ["哈爾濱"] = {container = "黑龍江", wp = "Harbin"}, ["大慶"] = {container = "黑龍江", wp = "Daqing"}, ["齊齊哈爾"] = {container = "黑龍江", wp = "Qiqihar"}, -- Liaoning ["瀋陽"] = {container = "遼寧", wp = "Shenyang"}, ["撫順"] = {container = "遼寧", wp = "Fushun"}, ["大連"] = {container = "遼寧", wp = "Dalian"}, ["鞍山"] = {container = "遼寧", wp = "Anshan"}, ["錦州"] = {container = "遼寧", wp = "Jinzhou"}, ["葫蘆島"] = {container = "遼寧", wp = "Huludao"}, ["盤錦"] = {container = "遼寧", wp = "Panjin"}, -- Jilin ["長春"] = {container = "吉林", wp = "Changchun"}, ["吉林市"] = {container = "吉林", wp = "Jilin City"}, -- distinct from 吉林 (province) -- Anhui ["合肥"] = {container = "安徽", wp = "Hefei"}, ["蚌埠"] = {container = "安徽", wp = "Bengbu"}, ["淮南"] = {container = "安徽", wp = "Huainan"}, ["蕪湖"] = {container = "安徽", wp = "Wuhu"}, ["淮北"] = {container = "安徽", wp = "Huaibei"}, ["滁州"] = {container = "安徽", wp = "Chuzhou"}, ["六安"] = {container = "安徽", wp = "Lu'an"}, ["阜陽"] = {container = "安徽", wp = "Fuyang, Anhui"}, ["宿州"] = {container = "安徽", wp = "Suzhou, Anhui"}, -- distinct from 蘇州 (Jiangsu) -- Hebei ["石家莊"] = {container = "河北", wp = "Shijiazhuang"}, ["邯鄲"] = {container = "河北", wp = "Handan"}, ["唐山"] = {container = "河北", wp = "Tangshan"}, ["秦皇島"] = {container = "河北", wp = "Qinhuangdao"}, ["邢台"] = {container = "河北", wp = "Xingtai"}, ["保定"] = {container = "河北", wp = "Baoding"}, ["張家口"] = {container = "河北", wp = "Zhangjiakou"}, ["衡水"] = {container = "河北", wp = "Hengshui"}, ["滄州"] = {container = "河北", wp = "Cangzhou"}, -- Shanxi ["太原"] = {container = "山西", wp = "Taiyuan"}, ["大同"] = {container = "山西", wp = "Datong"}, ["長治"] = {container = "山西", wp = "Changzhi"}, ["臨汾"] = {container = "山西", wp = "Linfen"}, -- Jiangxi ["南昌"] = {container = "江西", wp = "Nanchang"}, ["贛州"] = {container = "江西", wp = "Ganzhou"}, ["上饒"] = {container = "江西", wp = "Shangrao"}, ["九江"] = {container = "江西", wp = "Jiujiang"}, -- Guangxi (autonomous region) ["南寧"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Nanning"}, ["柳州"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Liuzhou"}, ["桂林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guilin"}, ["玉林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Yulin, Guangxi"}, ["北海"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Beihai"}, ["貴港"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guigang"}, -- Inner Mongolia (autonomous region) ["呼和浩特"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Hohhot"}, ["包頭"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Baotou"}, ["赤峰"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Chifeng"}, -- Xinjiang (autonomous region) ["烏魯木齊"] = {container = {key = "新疆", placetype = "autonomous region"}, wp = "Ürümqi"}, -- Ningxia (autonomous region) ["銀川"] = {container = {key = "寧夏", placetype = "autonomous region"}, wp = "Yinchuan"}, -- Hainan ["海口"] = {container = "海南", wp = "Haikou"}, -- Qinghai ["西寧"] = {container = "青海", wp = "Xining"}, -- Gansu ["蘭州"] = {container = "甘肅", wp = "Lanzhou"}, -- Chongqing subdivision (district 142 miles from Chongqing proper) ["萬州"] = {placetype = "district", container = {key = "重慶", placetype = "direct-administered municipality"}, divs = {"subdistricts", "townships"}, wp = "Wanzhou"}, -- County within Suqian prefecture-level city ["沭陽"] = {placetype = "county", container = {key = "宿遷", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Shuyang County"}, } export.china_prefecture_level_cities_group = { placename_to_key = false, default_placetype = {"prefecture-level city", "city"}, default_divs = { "districts", "subdistricts", "townships", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_prefecture_level_cities, } export.finland_regions = { ["拉普蘭省"] = {wp = "Lapland (Finland)"}, ["北奧斯特博滕省"] = {wp = "North Ostrobothnia"}, ["卡亞尼省"] = {wp = "Kainuu"}, ["北卡累利亞省"] = {wp = "North Karelia"}, ["北薩沃省"] = {wp = "Northern Savonia"}, ["南薩沃省"] = {wp = "Southern Savonia"}, ["南卡累利亞省"] = {wp = "South Karelia"}, ["中芬蘭省"] = {wp = "Central Finland"}, ["南奧斯特博滕省"] = {wp = "South Ostrobothnia"}, ["奧斯特博滕省"] = {wp = "Ostrobothnia (region)"}, ["中奧斯特博滕省"] = {wp = "Central Ostrobothnia"}, ["皮爾卡馬省"] = {wp = "Pirkanmaa"}, ["薩塔昆塔省"] = {wp = "Satakunta"}, ["派亞特哈米省"] = {wp = "Päijät-Häme"}, ["坎塔哈米省"] = {wp = "Tavastia Proper"}, ["屈米河谷省"] = {wp = "Kymenlaakso"}, ["烏西馬省"] = {wp = "Uusimaa"}, ["西南芬蘭省"] = {wp = "Southwest Finland"}, ["奧蘭群島"] = {wp = "Åland", placetype = {"autonomous region", "region"}}, } export.finland_group = { placename_to_key = false, default_container = "芬蘭", default_placetype = "region", data = export.finland_regions, } export.france_administrative_regions = { ["奧弗涅-隆河-阿爾卑斯大區"] = {wp = "Auvergne-Rhône-Alpes"}, ["勃艮第-弗朗什-孔泰大區"] = {wp = "Bourgogne-Franche-Comté"}, ["布列塔尼大區"] = {wp = "Brittany (administrative region)"}, ["中央-羅亞爾河谷大區"] = {wp = "Centre-Val de Loire"}, ["科西嘉大區"] = {wp = "Corsica"}, ["大東部大區"] = {wp = "Grand Est"}, ["上法蘭西大區"] = {wp = "Hauts-de-France"}, ["法蘭西島大區"] = {wp = "Île-de-France"}, ["諾曼底大區"] = {wp = "Normandy"}, ["新阿基坦大區"] = {wp = "Nouvelle-Aquitaine"}, ["奧克西塔尼大區"] = {wp = "Occitanie"}, ["盧瓦爾河地區大區"] = {wp = "Pays de la Loire"}, ["普羅旺斯-阿爾卑斯-蔚藍海岸大區"] = {wp = "Provence-Alpes-Côte d'Azur"}, -- Old region names (pre-2016) as aliases ["北部-加萊海峽大區"] = {wp = "Nord-Pas-de-Calais"}, ["加來海峽大區"] = {alias_of = "北部-加萊海峽大區"}, } export.france_group = { placename_to_key = false, default_container = "法國", default_placetype = "region", data = export.france_administrative_regions, } -- France departments (abbreviated list) export.france_departments = { ["北部省"] = {wp = "Nord (department)", container = "上法蘭西大區"}, ["加來海峽省"] = {wp = "Pas-de-Calais", container = "上法蘭西大區"}, ["巴黎市"] = {wp = "Paris", container = "法蘭西島大區"}, ["上塞納省"] = {wp = "Hauts-de-Seine", container = "法蘭西島大區"}, } export.france_departments_group = { placename_to_key = false, default_container = "法國", default_placetype = "department", data = export.france_departments, } export.germany_states = { ["巴登-符騰堡"] = {wp = "Baden-Württemberg"}, ["巴伐利亞"] = {wp = "Bavaria"}, ["柏林"] = {wp = "Berlin"}, ["布蘭登堡"] = {wp = "Brandenburg"}, ["不來梅"] = {wp = "Bremen"}, ["漢堡"] = {wp = "Hamburg"}, ["黑森"] = {wp = "Hesse"}, ["梅克倫堡-前波美拉尼亞"] = {wp = "Mecklenburg-Vorpommern"}, ["下薩克森"] = {wp = "Lower Saxony"}, ["北萊茵-威斯特法倫"] = {wp = "North Rhine-Westphalia"}, ["萊茵蘭-普法爾茨"] = {wp = "Rhineland-Palatinate"}, ["薩爾"] = {wp = "Saarland"}, ["薩克森"] = {wp = "Saxony"}, ["薩克森-安哈爾特"] = {wp = "Saxony-Anhalt"}, ["石勒蘇益格-荷爾斯泰因"] = {wp = "Schleswig-Holstein"}, ["圖林根"] = {wp = "Thuringia"}, } export.germany_group = { placename_to_key = false, default_container = "德國", default_placetype = "state", data = export.germany_states, } export.greece_regions = { ["阿提卡大區"] = {wp = "Attica (region)"}, ["中希臘大區"] = {wp = "Central Greece (administrative region)"}, ["中馬其頓大區"] = {wp = "Central Macedonia"}, ["克里特大區"] = {wp = "Crete"}, ["東馬其頓和色雷斯大區"] = {wp = "Eastern Macedonia and Thrace"}, ["伊庇魯斯大區"] = {wp = "Epirus (region)"}, ["愛奧尼亞群島大區"] = {wp = "Ionian Islands (region)"}, ["北愛琴大區"] = {wp = "North Aegean"}, ["伯羅奔尼撒大區"] = {wp = "Peloponnese (region)"}, ["南愛琴大區"] = {wp = "South Aegean"}, ["塞薩利大區"] = {wp = "Thessaly"}, ["西希臘大區"] = {wp = "Western Greece"}, ["西馬其頓大區"] = {wp = "Western Macedonia"}, ["阿托斯山"] = {wp = "Monastic community of Mount Athos", placetype = {"autonomous region", "region"}}, } export.greece_group = { placename_to_key = false, default_container = "希臘", default_placetype = "region", data = export.greece_regions, } export.india_states_and_union_territories = { ["安達曼-尼科巴群島"] = {placetype = "union territory", wp = "Andaman and Nicobar Islands"}, ["安得拉邦"] = {wp = "Andhra Pradesh"}, ["阿魯納恰爾邦"] = {wp = "Arunachal Pradesh"}, ["阿薩姆"] = {wp = "Assam"}, ["比哈爾邦"] = {wp = "Bihar"}, ["昌迪加爾"] = {placetype = "union territory", wp = "Chandigarh"}, ["恰蒂斯加爾邦"] = {wp = "Chhattisgarh"}, ["達德拉-納加爾哈維利和達曼-第烏"] = {placetype = "union territory", wp = "Dadra and Nagar Haveli and Daman and Diu"}, ["德里"] = {placetype = "union territory", wp = "Delhi"}, ["果阿"] = {wp = "Goa"}, ["古吉拉特邦"] = {wp = "Gujarat"}, ["哈里亞納邦"] = {wp = "Haryana"}, ["喜馬偕爾邦"] = {wp = "Himachal Pradesh"}, ["查謨和克什米爾"] = {placetype = "union territory", wp = "Jammu and Kashmir (union territory)"}, ["賈坎德邦"] = {wp = "Jharkhand"}, ["卡納塔克邦"] = {wp = "Karnataka"}, ["喀拉拉邦"] = {wp = "Kerala"}, ["拉達克"] = {placetype = "union territory", wp = "Ladakh"}, ["拉克沙群島"] = {placetype = "union territory", wp = "Lakshadweep"}, ["中央邦"] = {wp = "Madhya Pradesh"}, ["馬哈拉施特拉邦"] = {wp = "Maharashtra"}, ["曼尼普爾邦"] = {wp = "Manipur"}, ["梅加拉亞邦"] = {wp = "Meghalaya"}, ["米佐拉姆邦"] = {wp = "Mizoram"}, ["那加蘭邦"] = {wp = "Nagaland"}, ["奧里薩邦"] = {wp = "Odisha"}, ["本地治里"] = {placetype = "union territory", wp = "Puducherry"}, ["旁遮普邦"] = {wp = "Punjab, India"}, ["拉賈斯坦邦"] = {wp = "Rajasthan"}, ["錫金"] = {wp = "Sikkim"}, ["泰米爾納德邦"] = {wp = "Tamil Nadu"}, ["特倫甘納邦"] = {wp = "Telangana"}, ["特里普拉邦"] = {wp = "Tripura"}, ["北方邦"] = {wp = "Uttar Pradesh"}, ["北阿坎德邦"] = {wp = "Uttarakhand"}, ["西孟加拉邦"] = {wp = "West Bengal"}, } export.india_group = { placename_to_key = false, default_container = "印度", default_placetype = "state", default_divs = {"districts"}, data = export.india_states_and_union_territories, } export.indonesia_provinces = { ["亞齊省"] = {wp = "Aceh"}, ["峇里省"] = {wp = "Bali"}, ["邦加勿里洞省"] = {wp = "Bangka Belitung Islands"}, ["萬丹省"] = {wp = "Banten"}, ["明古魯省"] = {wp = "Bengkulu"}, ["中爪哇省"] = {wp = "Central Java"}, ["中加里曼丹省"] = {wp = "Central Kalimantan"}, ["中巴布亞省"] = {wp = "Central Papua"}, ["中蘇拉威西省"] = {wp = "Central Sulawesi"}, ["東爪哇省"] = {wp = "East Java"}, ["東加里曼丹省"] = {wp = "East Kalimantan"}, ["東努沙登加拉省"] = {wp = "East Nusa Tenggara"}, ["哥倫打洛省"] = {wp = "Gorontalo"}, ["巴布亞高地省"] = {wp = "Highland Papua"}, ["雅加達首都特區"] = {wp = "Jakarta"}, ["占碑省"] = {wp = "Jambi"}, ["楠榜省"] = {wp = "Lampung"}, ["馬魯古省"] = {wp = "Maluku"}, ["北加里曼丹省"] = {wp = "North Kalimantan"}, ["北馬魯古省"] = {wp = "North Maluku"}, ["北蘇拉威西省"] = {wp = "North Sulawesi"}, ["北巴布亞省"] = {wp = "North Papua"}, ["北蘇門答臘省"] = {wp = "North Sumatra"}, ["巴布亞省"] = {wp = "Papua (province)"}, ["廖內省"] = {wp = "Riau"}, ["廖內群島省"] = {wp = "Riau Islands"}, ["東南蘇拉威西省"] = {wp = "Southeast Sulawesi"}, ["南加里曼丹省"] = {wp = "South Kalimantan"}, ["南巴布亞省"] = {wp = "South Papua"}, ["南蘇拉威西省"] = {wp = "South Sulawesi"}, ["南蘇門答臘省"] = {wp = "South Sumatra"}, ["西南巴布亞省"] = {wp = "Southwest Papua"}, ["西爪哇省"] = {wp = "West Java"}, ["西加里曼丹省"] = {wp = "West Kalimantan"}, ["西努沙登加拉省"] = {wp = "West Nusa Tenggara"}, ["西巴布亞省"] = {wp = "West Papua (province)"}, ["西蘇拉威西省"] = {wp = "West Sulawesi"}, ["西蘇門答臘省"] = {wp = "West Sumatra"}, ["日惹特區"] = {wp = "Special Region of Yogyakarta"}, } export.indonesia_group = { placename_to_key = false, default_container = "印度尼西亞", default_placetype = "province", data = export.indonesia_provinces, } export.iran_provinces = { ["阿爾博爾茲省"] = {wp = "Alborz Province"}, ["阿爾達比勒省"] = {wp = "Ardabil Province"}, ["布什爾省"] = {wp = "Bushehr Province"}, ["恰哈爾馬哈勒-巴赫蒂亞里省"] = {wp = "Chaharmahal and Bakhtiari Province"}, ["東阿塞拜疆省"] = {wp = "East Azerbaijan Province"}, ["法爾斯省"] = {wp = "Fars Province"}, ["帕爾斯省"] = {alias_of = "法爾斯省"}, ["吉蘭省"] = {wp = "Gilan Province"}, ["戈勒斯坦省"] = {wp = "Golestan Province"}, ["哈馬丹省"] = {wp = "Hamadan Province"}, ["霍爾木茲甘省"] = {wp = "Hormozgan Province"}, ["伊拉姆省"] = {wp = "Ilam Province"}, ["伊斯法罕省"] = {wp = "Isfahan Province"}, ["克爾曼省"] = {wp = "Kerman Province"}, ["克爾曼沙赫省"] = {wp = "Kermanshah Province"}, ["胡齊斯坦省"] = {wp = "Khuzestan Province"}, ["科吉盧耶-博亞赫邁德省"] = {wp = "Kohgiluyeh and Boyer-Ahmad Province"}, ["庫爾德斯坦省"] = {wp = "Kurdistan Province"}, ["洛雷斯坦省"] = {wp = "Lorestan Province"}, ["馬爾卡齊省"] = {wp = "Markazi Province"}, ["馬贊達蘭省"] = {wp = "Mazandaran Province"}, ["北呼羅珊省"] = {wp = "North Khorasan Province"}, ["加茲溫省"] = {wp = "Qazvin Province"}, ["庫姆省"] = {wp = "Qom Province"}, ["拉扎維呼羅珊省"] = {wp = "Razavi Khorasan Province"}, ["森南省"] = {wp = "Semnan Province"}, ["錫斯坦-俾路支斯坦省"] = {wp = "Sistan and Baluchestan Province"}, ["南呼羅珊省"] = {wp = "South Khorasan Province"}, ["德黑蘭省"] = {wp = "Tehran Province"}, ["西阿塞拜疆省"] = {wp = "West Azerbaijan Province"}, ["亞茲德省"] = {wp = "Yazd Province"}, ["贊詹省"] = {wp = "Zanjan Province"}, } export.iran_group = { placename_to_key = false, default_container = "伊朗", default_placetype = "province", data = export.iran_provinces, } export.ireland_counties = { ["卡洛郡"] = {wp = "County Carlow"}, ["卡文郡"] = {wp = "County Cavan"}, ["克萊爾郡"] = {wp = "County Clare"}, ["科克郡"] = {wp = "County Cork"}, ["多尼戈爾郡"] = {wp = "County Donegal"}, ["都柏林郡"] = {wp = "County Dublin"}, ["戈爾韋郡"] = {wp = "County Galway"}, ["克里郡"] = {wp = "County Kerry"}, ["基爾代爾郡"] = {wp = "County Kildare"}, ["基爾肯尼郡"] = {wp = "County Kilkenny"}, ["萊什郡"] = {wp = "County Laois"}, ["利特里姆郡"] = {wp = "County Leitrim"}, ["利默里克郡"] = {wp = "County Limerick"}, ["朗福德郡"] = {wp = "County Longford"}, ["勞斯郡"] = {wp = "County Louth"}, ["梅奧郡"] = {wp = "County Mayo"}, ["米斯郡"] = {wp = "County Meath"}, ["莫納亨郡"] = {wp = "County Monaghan"}, ["奧法利郡"] = {wp = "County Offaly"}, ["羅斯康芒郡"] = {wp = "County Roscommon"}, ["斯萊戈郡"] = {wp = "County Sligo"}, ["蒂珀雷里郡"] = {wp = "County Tipperary"}, ["沃特福德郡"] = {wp = "County Waterford"}, ["西米斯郡"] = {wp = "County Westmeath"}, ["韋克斯福德郡"] = {wp = "County Wexford"}, ["威克洛郡"] = {wp = "County Wicklow"}, } -- 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 = { placename_to_key = false, default_container = "愛爾蘭", default_placetype = "county", data = export.ireland_counties, } export.italy_administrative_regions = { ["阿布魯佐"] = {wp = "Abruzzo"}, ["巴西利卡塔"] = {wp = "Basilicata"}, ["卡拉布里亞"] = {wp = "Calabria"}, ["坎帕尼亞"] = {wp = "Campania"}, ["艾米利亞-羅馬涅"] = {wp = "Emilia-Romagna"}, ["弗留利-威尼斯朱利亞"] = {wp = "Friuli-Venezia Giulia"}, ["拉齊奧"] = {wp = "Lazio"}, ["利古里亞"] = {wp = "Liguria"}, ["倫巴第"] = {wp = "Lombardy"}, ["倫巴底"] = {alias_of = "倫巴第"}, ["馬爾凱"] = {wp = "Marche"}, ["莫利塞"] = {wp = "Molise"}, ["皮埃蒙特"] = {wp = "Piedmont"}, ["普利亞"] = {wp = "Apulia"}, ["阿普利亞"] = {alias_of = "普利亞"}, ["薩丁尼亞"] = {wp = "Sardinia"}, ["西西里"] = {wp = "Sicily"}, ["托斯卡納"] = {wp = "Tuscany"}, ["特倫蒂諾-上阿迪傑"] = {wp = "Trentino-Alto Adige/Südtirol"}, ["翁布里亞"] = {wp = "Umbria"}, ["奧斯塔谷"] = {wp = "Aosta Valley"}, ["威尼托"] = {wp = "Veneto"}, } export.italy_group = { placename_to_key = false, default_container = "意大利", default_placetype = "region", data = export.italy_administrative_regions, } -- table of Japanese prefectures; interpolated into the main 'places' table, but also needed separately export.japan_prefectures = { ["青森縣"] = {wp = "青森縣"}, ["岩手縣"] = {wp = "岩手縣"}, ["宮城縣"] = {wp = "宮城縣"}, ["秋田縣"] = {wp = "秋田縣"}, ["山形縣"] = {wp = "山形縣"}, ["福島縣"] = {wp = "福島縣"}, ["茨城縣"] = {wp = "茨城縣"}, ["栃木縣"] = {wp = "栃木縣"}, ["群馬縣"] = {wp = "群馬縣"}, ["埼玉縣"] = {wp = "埼玉縣"}, ["千葉縣"] = {wp = "千葉縣"}, ["神奈川縣"] = {wp = "神奈川縣"}, ["新潟縣"] = {wp = "新潟縣"}, ["富山縣"] = {wp = "富山縣"}, ["石川縣"] = {wp = "石川縣"}, ["福井縣"] = {wp = "福井縣"}, ["山梨縣"] = {wp = "山梨縣"}, ["長野縣"] = {wp = "長野縣"}, ["岐阜縣"] = {wp = "岐阜縣"}, ["靜岡縣"] = {wp = "靜岡縣"}, ["愛知縣"] = {wp = "愛知縣"}, ["三重縣"] = {wp = "三重縣"}, ["滋賀縣"] = {wp = "滋賀縣"}, ["兵庫縣"] = {wp = "兵庫縣"}, ["奈良縣"] = {wp = "奈良縣"}, ["和歌山縣"] = {wp = "和歌山縣"}, ["鳥取縣"] = {wp = "鳥取縣"}, ["島根縣"] = {wp = "島根縣"}, ["岡山縣"] = {wp = "岡山縣"}, ["廣島縣"] = {wp = "廣島縣"}, ["山口縣"] = {wp = "山口縣"}, ["德島縣"] = {wp = "德島縣"}, ["香川縣"] = {wp = "香川縣"}, ["愛媛縣"] = {wp = "愛媛縣"}, ["高知縣"] = {wp = "高知縣"}, ["福岡縣"] = {wp = "福岡縣"}, ["佐賀縣"] = {wp = "佐賀縣"}, ["長崎縣"] = {wp = "長崎縣"}, ["熊本縣"] = {wp = "熊本縣"}, ["大分縣"] = {wp = "大分縣"}, ["宮崎縣"] = {wp = "宮崎縣"}, ["鹿兒島縣"] = {wp = "鹿兒島縣"}, ["沖繩縣"] = {wp = "沖繩縣"}, ["北海道"] = {divs = {"subprefectures"}, wp = "北海道"}, ["京都府"] = {wp = "京都府"}, ["大阪府"] = {wp = "大阪府"}, } local function japan_placename_to_key(placename) local japan_placename_to_key_map = { -- ["東京"] = "東京都", ["大阪"] = "大阪府", ["京都"] = "京都府", } if placename:find("[都道府縣]$") then return placename -- 已帶後綴,不轉換 end return japan_placename_to_key_map[placename] or (placename .. "縣") end -- prefectures of Japan export.japan_group = { key_to_placename = make_key_to_placename(nil, "[都道府縣]$"), placename_to_key = japan_placename_to_key, default_container = "日本", default_placetype = "prefecture", default_divs = {"cities", "districts"}, data = export.japan_prefectures, } export.laos_provinces = { ["阿塔坡省"] = {wp = "Attapeu Province"}, ["博膠省"] = {wp = "Bokeo Province"}, ["波里坎賽省"] = {wp = "Bolikhamxai Province"}, ["占巴塞省"] = {wp = "Champasak Province"}, ["華潘省"] = {wp = "Houaphanh Province"}, ["甘蒙省"] = {wp = "Khammouane Province"}, ["南塔省"] = {wp = "Luang Namtha Province"}, ["琅勃拉邦省"] = {wp = "Luang Prabang Province"}, ["烏多姆賽省"] = {wp = "Oudomxay Province"}, ["豐沙里省"] = {wp = "Phongsaly Province"}, ["沙拉灣省"] = {wp = "Salavan Province"}, ["沙灣拿吉省"] = {wp = "Savannakhet Province"}, ["萬象省"] = {wp = "Vientiane Province"}, ["萬象直轄市"] = {placetype = "prefecture", wp = "Vientiane Prefecture"}, ["賽亞武里省"] = {wp = "Sainyabuli Province"}, ["塞公省"] = {wp = "Sekong Province"}, ["賽頌本省"] = {wp = "Xaisomboun Province"}, ["川壙省"] = {wp = "Xiangkhouang Province"}, } export.laos_group = { placename_to_key = false, default_container = "老撾", default_placetype = "province", data = export.laos_provinces, } export.lebanon_governorates = { ["阿卡爾省"] = {wp = "Akkar Governorate"}, ["巴勒貝克-赫爾梅勒省"] = {wp = "Baalbek-Hermel Governorate"}, ["貝魯特省"] = {wp = "Beirut Governorate"}, ["貝卡省"] = {wp = "Beqaa Governorate"}, ["克塞旺-裘拜勒省"] = {wp = "Keserwan-Jbeil Governorate"}, ["黎巴嫩山省"] = {wp = "Mount Lebanon Governorate"}, ["納巴蒂耶省"] = {wp = "Nabatieh Governorate"}, ["北部省(黎巴嫩)"] = {wp = "North Governorate (Lebanon)", no_auto_augment_container = true}, ["南部省(黎巴嫩)"] = {wp = "South Governorate (Lebanon)", no_auto_augment_container = true}, } export.lebanon_group = { placename_to_key = false, default_container = "黎巴嫩", default_placetype = "governorate", data = export.lebanon_governorates, } export.malaysia_states = { ["柔佛州"] = {wp = "Johor"}, ["吉打州"] = {wp = "Kedah"}, ["吉蘭丹州"] = {wp = "Kelantan"}, ["馬六甲州"] = {wp = "Malacca"}, ["森美蘭州"] = {wp = "Negeri Sembilan"}, ["彭亨州"] = {wp = "Pahang"}, ["檳城州"] = {wp = "Penang"}, ["霹靂州"] = {wp = "Perak"}, ["玻璃市州"] = {wp = "Perlis"}, ["沙巴州"] = {wp = "Sabah"}, ["砂拉越州"] = {wp = "Sarawak"}, ["雪蘭莪州"] = {wp = "Selangor"}, ["登嘉樓州"] = {wp = "Terengganu"}, } export.malaysia_group = { placename_to_key = false, default_container = "馬來西亞", default_placetype = "state", data = export.malaysia_states, } export.malta_regions = { ["東部區(馬爾他)"] = {wp = "Eastern Region, Malta", no_auto_augment_container = true}, ["戈佐區"] = {wp = "Gozo Region"}, ["北部區(馬爾他)"] = {wp = "Northern Region, Malta", no_auto_augment_container = true}, ["港口區"] = {wp = "Port Region, Malta"}, ["南部區(馬爾他)"] = {wp = "Southern Region, Malta", no_auto_augment_container = true}, ["西部區(馬爾他)"] = {wp = "Western Region, Malta", no_auto_augment_container = true}, } export.malta_group = { placename_to_key = false, default_container = "馬爾他", default_placetype = "region", data = export.malta_regions, } export.mexico_states = { ["阿瓜斯卡連特斯州"] = {wp = "Aguascalientes"}, ["下加利福尼亞州"] = {wp = "Baja California"}, ["南下加利福尼亞州"] = {wp = "Baja California Sur"}, ["坎佩切州"] = {wp = "Campeche"}, ["恰帕斯州"] = {wp = "Chiapas"}, ["奇瓦瓦州"] = {wp = "Chihuahua (state)"}, ["科阿韋拉州"] = {wp = "Coahuila"}, ["科利馬州"] = {wp = "Colima"}, ["杜蘭戈州"] = {wp = "Durango"}, ["瓜納華托州"] = {wp = "Guanajuato"}, ["格雷羅州"] = {wp = "Guerrero"}, ["伊達爾戈州"] = {wp = "Hidalgo (state)"}, ["哈利斯科州"] = {wp = "Jalisco"}, ["墨西哥州"] = {wp = "State of Mexico"}, ["米卻肯州"] = {wp = "Michoacán"}, ["莫雷洛斯州"] = {wp = "Morelos"}, ["納亞里特州"] = {wp = "Nayarit"}, ["新萊昂州"] = {wp = "Nuevo León"}, ["瓦哈卡州"] = {wp = "Oaxaca"}, ["普埃布拉州"] = {wp = "Puebla"}, ["克雷塔羅州"] = {wp = "Querétaro"}, ["金塔納羅奧州"] = {wp = "Quintana Roo"}, ["聖路易斯波托西州"] = {wp = "San Luis Potosí"}, ["錫那羅亞州"] = {wp = "Sinaloa"}, ["索諾拉州"] = {wp = "Sonora"}, ["塔巴斯科州"] = {wp = "Tabasco (state)"}, ["塔毛利帕斯州"] = {wp = "Tamaulipas"}, ["特拉斯卡拉州"] = {wp = "Tlaxcala"}, ["韋拉克魯斯州"] = {wp = "Veracruz"}, ["尤卡坦州"] = {wp = "Yucatán"}, ["薩卡特卡斯州"] = {wp = "Zacatecas"}, } export.mexico_group = { placename_to_key = false, default_container = "墨西哥", default_placetype = "state", data = export.mexico_states, } export.moldova_districts_and_autonomous_territorial_units = { ["阿內尼諾伊區"] = {wp = "Anenii Noi District"}, ["巴薩拉比亞斯卡區"] = {wp = "Basarabeasca District"}, ["布里切尼區"] = {wp = "Briceni District"}, ["卡胡爾區"] = {wp = "Cahul District"}, ["坎特米爾區"] = {wp = "Cantemir District"}, ["克勒拉希區"] = {wp = "Călărași District"}, ["考沙尼區"] = {wp = "Căușeni District"}, ["奇米什利亞區"] = {wp = "Cimișlia District"}, ["克里烏列尼區"] = {wp = "Criuleni District"}, ["東杜沙尼區"] = {wp = "Dondușeni District"}, ["德羅基亞區"] = {wp = "Drochia District"}, ["杜巴薩里區"] = {wp = "Dubăsari District"}, ["埃迪涅茨區"] = {wp = "Edineț District"}, ["法勒什蒂區"] = {wp = "Fălești District"}, ["弗洛雷什蒂區"] = {wp = "Florești District"}, ["格洛德尼區"] = {wp = "Glodeni District"}, ["欣切什蒂區"] = {wp = "Hîncești District"}, ["亞洛韋尼區"] = {wp = "Ialoveni District"}, ["萊奧瓦區"] = {wp = "Leova District"}, ["尼斯波雷尼區"] = {wp = "Nisporeni District"}, ["奧克尼察區"] = {wp = "Ocnița District"}, ["奧爾海伊區"] = {wp = "Orhei District"}, ["雷齊納區"] = {wp = "Rezina District"}, ["雷什卡尼區"] = {wp = "Rîșcani District"}, ["辛格雷伊區"] = {wp = "Sîngerei District"}, ["索羅卡區"] = {wp = "Soroca District"}, ["斯特拉沙尼區"] = {wp = "Strășeni District"}, ["紹爾達涅什蒂區"] = {wp = "Șoldănești District"}, ["斯蒂凡沃達區"] = {wp = "Ștefan Vodă District"}, ["塔拉克利亞區"] = {wp = "Taraclia District"}, ["泰萊涅什蒂區"] = {wp = "Telenești District"}, ["翁格尼區"] = {wp = "Ungheni District"}, ["基希訥烏市"] = {wp = "Chișinău", placetype = "municipality"}, ["巴爾茨市"] = {wp = "Bălți", placetype = "municipality"}, ["加告茲自治領土"] = {wp = "Gagauzia", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, ["本德爾市"] = {wp = "Bender, Moldova", placetype = "municipality"}, ["德涅斯特河沿岸"] = {wp = "Transnistria", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, } export.moldova_group = { placename_to_key = false, default_container = "摩爾多瓦", default_placetype = {"district", "raion"}, data = export.moldova_districts_and_autonomous_territorial_units, } export.morocco_regions = { ["丹吉爾-得土安-霍賽馬大區"] = {wp = "Tangier-Tetouan-Al Hoceima"}, ["東方大區(摩洛哥)"] = {wp = "Oriental, Morocco"}, ["非斯-梅克內斯大區"] = {wp = "Fez-Meknes"}, ["拉巴特-薩累-肯尼特拉大區"] = {wp = "Rabat-Salé-Kénitra"}, ["貝尼梅拉勒-赫尼夫拉大區"] = {wp = "Béni Mellal-Khénifra"}, ["卡薩布蘭卡-塞塔特大區"] = {wp = "Casablanca-Settat"}, ["馬拉喀什-薩菲大區"] = {wp = "Marrakesh-Safi"}, ["德拉阿-塔菲拉勒特大區"] = {wp = "Drâa-Tafilalet"}, ["蘇斯-馬薩大區"] = {wp = "Souss-Massa"}, ["蓋勒明-烏德農大區"] = {wp = "Guelmim-Oued Noun"}, ["拉阿永-薩基亞-哈姆拉大區"] = {wp = "Laâyoune-Sakia El Hamra"}, ["達赫拉-奧以德達赫卜大區"] = {wp = "Dakhla-Oued Ed-Dahab"}, } export.morocco_group = { placename_to_key = false, default_container = "摩洛哥", default_placetype = "region", data = export.morocco_regions, } export.egypt_governorates = { ["開羅省"] = {wp = "Cairo Governorate"}, ["吉薩省"] = {wp = "Giza Governorate"}, ["夏爾基亞省"] = {wp = "Sharqia Governorate"}, ["達卡利亞省"] = {wp = "Dakahlia Governorate"}, ["貝海拉省"] = {wp = "Beheira Governorate"}, ["明亞省"] = {wp = "Minya Governorate"}, ["蓋柳比亞省"] = {wp = "Qalyubia Governorate"}, ["索哈傑省"] = {wp = "Sohag Governorate"}, ["亞歷山大省"] = {wp = "Alexandria Governorate"}, ["加爾比亞省"] = {wp = "Gharbia Governorate"}, ["艾斯尤特省"] = {wp = "Asyut Governorate"}, ["莫諾菲亞省"] = {wp = "Monufia Governorate"}, ["法尤姆省"] = {wp = "Faiyum Governorate"}, ["卡夫爾謝赫省"] = {wp = "Kafr El Sheikh Governorate"}, ["基納省"] = {wp = "Qena Governorate"}, ["本尼蘇威夫省"] = {wp = "Beni Suef Governorate"}, ["達米埃塔省"] = {wp = "Damietta Governorate"}, ["阿斯旺省"] = {wp = "Aswan Governorate"}, ["伊斯梅利亞省"] = {wp = "Ismailia Governorate"}, ["盧克索省"] = {wp = "Luxor Governorate"}, ["蘇伊士省"] = {wp = "Suez Governorate"}, ["塞德港省"] = {wp = "Port Said Governorate"}, ["馬特魯省"] = {wp = "Matrouh Governorate"}, ["北西奈省"] = {wp = "North Sinai Governorate"}, ["紅海省"] = {wp = "Red Sea Governorate"}, ["新河谷省"] = {wp = "New Valley Governorate"}, ["南西奈省"] = {wp = "South Sinai Governorate"}, } export.egypt_group = { placename_to_key = false, default_container = "埃及", default_placetype = "governorate", data = export.egypt_governorates, } export.spain_autonomous_communities = { ["安達盧西亞"] = {wp = "Andalusia"}, ["安達魯西亞"] = {alias_of = "安達盧西亞"}, ["阿拉貢"] = {wp = "Aragon"}, ["阿斯圖里亞斯"] = {wp = "Asturias"}, ["巴利阿里群島"] = {wp = "Balearic Islands"}, ["巴斯克"] = {wp = "Basque Country (autonomous community)"}, ["加那利群島"] = {wp = "Canary Islands"}, ["坎塔布里亞"] = {wp = "Cantabria"}, ["卡斯蒂利亞-拉曼恰"] = {wp = "Castilla-La Mancha"}, ["卡斯蒂利亞-萊昂"] = {wp = "Castilla y León"}, ["加泰羅尼亞"] = {wp = "Catalonia"}, ["加泰隆尼亞"] = {alias_of = "加泰羅尼亞"}, ["埃斯特雷馬杜拉"] = {wp = "Extremadura"}, ["加利西亞"] = {wp = "Galicia (Spain)"}, ["拉里奧哈"] = {wp = "La Rioja (autonomous community)"}, ["馬德里自治區"] = {wp = "Community of Madrid"}, ["穆爾西亞"] = {wp = "Region of Murcia"}, ["納瓦拉"] = {wp = "Navarre"}, ["巴倫西亞"] = {wp = "Valencian Community"}, ["巴倫西亞自治區"] = {alias_of = "巴倫西亞"}, } export.spain_group = { placename_to_key = false, default_container = "西班牙", default_placetype = "autonomous community", data = export.spain_autonomous_communities, } export.taiwan_counties = { ["彰化縣"] = {wp = "彰化縣"}, ["嘉義縣"] = {wp = "嘉義縣"}, ["新竹縣"] = {wp = "新竹縣"}, ["花蓮縣"] = {wp = "花蓮縣"}, ["金門縣"] = {wp = "金門縣"}, ["連江縣"] = {wp = "連江縣"}, ["苗栗縣"] = {wp = "苗栗縣"}, ["南投縣"] = {wp = "南投縣"}, ["屏東縣"] = {wp = "屏東縣"}, ["澎湖縣"] = {wp = "澎湖縣"}, ["宜蘭縣"] = {wp = "宜蘭縣"}, ["雲林縣"] = {wp = "雲林縣"}, } export.taiwan_group = { key_to_placename = make_key_to_placename(nil, "縣$"), placename_to_key = make_placename_to_key("縣"), default_container = "臺灣", default_placetype = "county", default_divs = {"districts", "townships"}, data = export.taiwan_counties, } export.new_york_boroughs = { ["布朗克斯"] = {the = true, wp = "The Bronx"}, ["布魯克林"] = {wp = "Brooklyn"}, ["曼哈頓"] = {wp = "Manhattan"}, ["皇后區"] = {wp = "Queens"}, ["史泰登島"] = {wp = "Staten Island"}, } export.new_york_boroughs_group = { placename_to_key = false, default_container = {key = "紐約市", placetype = "city"}, default_placetype = "borough", default_is_city = true, data = export.new_york_boroughs, } export.romania_counties = { ["阿爾巴縣"] = {wp = "Alba County"}, ["阿拉德縣"] = {wp = "Arad County"}, ["阿爾傑什縣"] = {wp = "Argeș County"}, ["巴考縣"] = {wp = "Bacău County"}, ["比霍爾縣"] = {wp = "Bihor County"}, ["比斯特里察-訥瑟烏德縣"] = {wp = "Bistrița-Năsăud County"}, ["博托沙尼縣"] = {wp = "Botoșani County"}, ["布拉索夫縣"] = {wp = "Brașov County"}, ["布勒伊拉縣"] = {wp = "Brăila County"}, ["布澤烏縣"] = {wp = "Buzău County"}, ["卡拉什-塞韋林縣"] = {wp = "Caraș-Severin County"}, ["克盧日縣"] = {wp = "Cluj County"}, ["康斯坦察縣"] = {wp = "Constanța County"}, ["科瓦斯納縣"] = {wp = "Covasna County"}, ["克勒拉希縣"] = {wp = "Călărași County"}, ["多爾日縣"] = {wp = "Dolj County"}, ["登博維察縣"] = {wp = "Dâmbovița County"}, ["加拉茨縣"] = {wp = "Galați County"}, ["久爾久縣"] = {wp = "Giurgiu County"}, ["戈爾日縣"] = {wp = "Gorj County"}, ["哈爾吉塔縣"] = {wp = "Harghita County"}, ["胡內多阿拉縣"] = {wp = "Hunedoara County"}, ["雅洛米察縣"] = {wp = "Ialomița County"}, ["雅西縣"] = {wp = "Iași County"}, ["伊爾福夫縣"] = {wp = "Ilfov County"}, ["馬拉穆列什縣"] = {wp = "Maramureș County"}, ["梅赫丁茨縣"] = {wp = "Mehedinți County"}, ["穆列什縣"] = {wp = "Mureș County"}, ["尼亞姆茨縣"] = {wp = "Neamț County"}, ["奧爾特縣"] = {wp = "Olt County"}, ["普拉霍瓦縣"] = {wp = "Prahova County"}, ["薩圖馬雷縣"] = {wp = "Satu Mare County"}, ["錫比烏縣"] = {wp = "Sibiu County"}, ["蘇恰瓦縣"] = {wp = "Suceava County"}, ["瑟拉日縣"] = {wp = "Sălaj County"}, ["特列奧爾曼縣"] = {wp = "Teleorman County"}, ["蒂米什縣"] = {wp = "Timiș County"}, ["圖爾恰縣"] = {wp = "Tulcea County"}, ["瓦斯盧伊縣"] = {wp = "Vaslui County"}, ["弗蘭恰縣"] = {wp = "Vrancea County"}, ["沃爾恰縣"] = {wp = "Vâlcea County"}, } export.romania_group = { placename_to_key = false, default_container = "羅馬尼亞", default_placetype = "county", data = export.romania_counties, } export.north_korea_provinces = { ["慈江道"] = {wp = "慈江道"}, ["咸鏡北道"] = {wp = "咸鏡北道"}, ["咸鏡南道"] = {wp = "咸鏡南道"}, ["黃海北道"] = {wp = "黃海北道"}, ["黃海南道"] = {wp = "黃海南道"}, ["江原道(北韓)"] = {wp = "江原道 (朝鮮民主主義人民共和國)"}, ["平安北道"] = {wp = "平安北道"}, ["平安南道"] = {wp = "平安南道"}, ["兩江道"] = {wp = "兩江道"}, } export.north_korea_group = { placename_to_key = false, default_container = "朝鮮", default_placetype = "province", data = export.north_korea_provinces, } export.south_korea_provinces = { ["忠清北道"] = {wp = "忠清北道"}, ["忠清南道"] = {wp = "忠清南道"}, ["江原道(南韓)"] = {wp = "江原特別自治道"}, ["京畿道"] = {wp = "京畿道"}, ["慶尚北道"] = {wp = "慶尚北道"}, ["慶尚南道"] = {wp = "慶尚南道"}, ["全羅北道"] = {wp = "全羅北道"}, ["全羅南道"] = {wp = "全羅南道"}, ["濟州道"] = {wp = "濟州道"}, } export.south_korea_group = { placename_to_key = false, default_container = "韓國", default_placetype = "province", data = export.south_korea_provinces, } export.thailand_provinces = { ["阿姆納特坤府"] = {wp = "Amnat Charoen Province"}, ["紅統府"] = {wp = "Ang Thong Province"}, ["彭侃府"] = {wp = "Bueng Kan Province"}, ["武里南府"] = {wp = "Buriram Province"}, ["北柳府"] = {wp = "Chachoengsao Province"}, ["猜納府"] = {wp = "Chai Nat Province"}, ["猜耶奔府"] = {wp = "Chaiyaphum Province"}, ["尖竹汶府"] = {wp = "Chanthaburi Province"}, ["清邁府"] = {wp = "Chiang Mai Province"}, ["清萊府"] = {wp = "Chiang Rai Province"}, ["春武里府"] = {wp = "Chonburi Province"}, ["春蓬府"] = {wp = "Chumphon Province"}, ["加拉信府"] = {wp = "Kalasin Province"}, ["甘烹碧府"] = {wp = "Kamphaeng Phet Province"}, ["北碧府"] = {wp = "Kanchanaburi Province"}, ["孔敬府"] = {wp = "Khon Kaen Province"}, ["甲米府"] = {wp = "Krabi Province"}, ["南邦府"] = {wp = "Lampang Province"}, ["南奔府"] = {wp = "Lamphun Province"}, ["黎府"] = {wp = "Loei Province"}, ["華富里府"] = {wp = "Lopburi Province"}, ["夜豐頌府"] = {wp = "Mae Hong Son Province"}, ["瑪哈沙拉堪府"] = {wp = "Maha Sarakham Province"}, ["莫達罕府"] = {wp = "Mukdahan Province"}, ["那空那育府"] = {wp = "Nakhon Nayok Province"}, ["佛統府"] = {wp = "Nakhon Pathom Province"}, ["那空帕農府"] = {wp = "Nakhon Phanom Province"}, ["呵叻府"] = {wp = "Nakhon Ratchasima Province"}, ["那空沙旺府"] = {wp = "Nakhon Sawan Province"}, ["洛坤府"] = {wp = "Nakhon Si Thammarat Province"}, ["難府"] = {wp = "Nan Province"}, ["那拉提瓦府"] = {wp = "Narathiwat Province"}, ["農布瓦蘭普府"] = {wp = "Nong Bua Lamphu Province"}, ["廊開府"] = {wp = "Nong Khai Province"}, ["暖武里府"] = {wp = "Nonthaburi Province"}, ["巴吞他尼府"] = {wp = "Pathum Thani Province"}, ["北大年府"] = {wp = "Pattani Province"}, ["攀牙府"] = {wp = "Phang Nga Province"}, ["博他侖府"] = {wp = "Phatthalung Province"}, ["帕堯府"] = {wp = "Phayao Province"}, ["碧差汶府"] = {wp = "Phetchabun Province"}, ["碧武里府"] = {wp = "Phetchaburi Province"}, ["披集府"] = {wp = "Phichit Province"}, ["彭世洛府"] = {wp = "Phitsanulok Province"}, ["大城府"] = {wp = "Phra Nakhon Si Ayutthaya Province"}, ["帕府"] = {wp = "Phrae Province"}, ["普吉府"] = {wp = "Phuket Province"}, ["巴真府"] = {wp = "Prachinburi Province"}, ["巴蜀府"] = {wp = "Prachuap Khiri Khan Province"}, ["拉廊府"] = {wp = "Ranong Province"}, ["叻丕府"] = {wp = "Ratchaburi Province"}, ["羅勇府"] = {wp = "Rayong Province"}, ["黎逸府"] = {wp = "Roi Et Province"}, ["沙繳府"] = {wp = "Sa Kaeo Province"}, ["色軍府"] = {wp = "Sakon Nakhon Province"}, ["北欖府"] = {wp = "Samut Prakan Province"}, ["沙沒沙空府"] = {wp = "Samut Sakhon Province"}, ["沙沒頌堪府"] = {wp = "Samut Songkhram Province"}, ["沙拉武里府"] = {wp = "Saraburi Province"}, ["沙敦府"] = {wp = "Satun Province"}, ["信武里府"] = {wp = "Sing Buri Province"}, ["四色菊府"] = {wp = "Sisaket Province"}, ["宋卡府"] = {wp = "Songkhla Province"}, ["素可泰府"] = {wp = "Sukhothai Province"}, ["素攀武里府"] = {wp = "Suphan Buri Province"}, ["素叻他尼府"] = {wp = "Surat Thani Province"}, ["素林府"] = {wp = "Surin Province"}, ["達府"] = {wp = "Tak Province"}, ["董里府"] = {wp = "Trang Province"}, ["達叻府"] = {wp = "Trat Province"}, ["烏汶府"] = {wp = "Ubon Ratchathani Province"}, ["烏隆府"] = {wp = "Udon Thani Province"}, ["烏泰他尼府"] = {wp = "Uthai Thani Province"}, ["烏達拉勐府"] = {wp = "Uttaradit Province"}, ["惹拉府"] = {wp = "Yala Province"}, ["耶梭通府"] = {wp = "Yasothon Province"}, } export.thailand_group = { placename_to_key = false, default_container = "泰國", default_placetype = "province", data = export.thailand_provinces, } export.turkey_provinces = { ["阿達納省"] = {wp = "Adana Province"}, ["阿德亞曼省"] = {wp = "Adıyaman Province"}, ["阿菲永卡拉希薩爾省"] = {wp = "Afyonkarahisar Province"}, ["阿里省"] = {wp = "Ağrı Province"}, ["阿馬西亞省"] = {wp = "Amasya Province"}, ["安卡拉省"] = {wp = "Ankara Province"}, ["安塔利亞省"] = {wp = "Antalya Province"}, ["阿爾特溫省"] = {wp = "Artvin Province"}, ["艾登省"] = {wp = "Aydın Province"}, ["巴勒克埃西爾省"] = {wp = "Balıkesir Province"}, ["比萊吉克省"] = {wp = "Bilecik Province"}, ["賓格爾省"] = {wp = "Bingöl Province"}, ["比特利斯省"] = {wp = "Bitlis Province"}, ["博盧省"] = {wp = "Bolu Province"}, ["布爾杜爾省"] = {wp = "Burdur Province"}, ["布爾薩省"] = {wp = "Bursa Province"}, ["恰納卡萊省"] = {wp = "Çanakkale Province"}, ["昌克勒省"] = {wp = "Çankırı Province"}, ["喬魯姆省"] = {wp = "Çorum Province"}, ["代尼茲利省"] = {wp = "Denizli Province"}, ["迪亞巴克爾省"] = {wp = "Diyarbakır Province"}, ["埃迪爾內省"] = {wp = "Edirne Province"}, ["埃拉澤省"] = {wp = "Elazığ Province"}, ["埃爾津詹省"] = {wp = "Erzincan Province"}, ["埃爾祖魯姆省"] = {wp = "Erzurum Province"}, ["埃斯基謝希爾省"] = {wp = "Eskişehir Province"}, ["加濟安泰普省"] = {wp = "Gaziantep Province"}, ["吉雷松省"] = {wp = "Giresun Province"}, ["居米什哈內省"] = {wp = "Gümüşhane Province"}, ["哈卡里省"] = {wp = "Hakkâri Province"}, ["哈塔伊省"] = {wp = "Hatay Province"}, ["伊斯帕爾塔省"] = {wp = "Isparta Province"}, ["梅爾辛省"] = {wp = "Mersin Province"}, ["伊茲密爾省"] = {wp = "İzmir Province"}, ["卡爾斯省"] = {wp = "Kars Province"}, ["卡斯塔莫努省"] = {wp = "Kastamonu Province"}, ["開塞利省"] = {wp = "Kayseri Province"}, ["柯克拉雷利省"] = {wp = "Kırklareli Province"}, ["克爾謝希爾省"] = {wp = "Kırşehir Province"}, ["科賈埃利省"] = {wp = "Kocaeli Province"}, ["科尼亞省"] = {wp = "Konya Province"}, ["屈塔希亞省"] = {wp = "Kütahya Province"}, ["馬拉蒂亞省"] = {wp = "Malatya Province"}, ["馬尼薩省"] = {wp = "Manisa Province"}, ["卡赫拉曼馬拉什省"] = {wp = "Kahramanmaraş Province"}, ["馬爾丁省"] = {wp = "Mardin Province"}, ["穆拉省"] = {wp = "Muğla Province"}, ["穆什省"] = {wp = "Muş Province"}, ["內夫謝希爾省"] = {wp = "Nevşehir Province"}, ["尼代省"] = {wp = "Niğde Province"}, ["奧爾杜省"] = {wp = "Ordu Province"}, ["里澤省"] = {wp = "Rize Province"}, ["薩卡里亞省"] = {wp = "Sakarya Province"}, ["薩姆松省"] = {wp = "Samsun Province"}, ["錫爾特省"] = {wp = "Siirt Province"}, ["錫諾普省"] = {wp = "Sinop Province"}, ["錫瓦斯省"] = {wp = "Sivas Province"}, ["泰基爾達省"] = {wp = "Tekirdağ Province"}, ["托卡特省"] = {wp = "Tokat Province"}, ["特拉布宗省"] = {wp = "Trabzon Province"}, ["通傑利省"] = {wp = "Tunceli Province"}, ["尚勒烏爾法省"] = {wp = "Şanlıurfa Province"}, ["烏沙克省"] = {wp = "Uşak Province"}, ["凡省"] = {wp = "Van Province"}, ["約茲加特省"] = {wp = "Yozgat Province"}, ["宗古爾達克省"] = {wp = "Zonguldak Province"}, ["阿克薩賴省"] = {wp = "Aksaray Province"}, ["拜布爾特省"] = {wp = "Bayburt Province"}, ["卡拉曼省"] = {wp = "Karaman Province"}, ["克勒克卡萊省"] = {wp = "Kırıkkale Province"}, ["巴特曼省"] = {wp = "Batman Province"}, ["蘇爾納克省"] = {wp = "Şırnak Province"}, ["巴爾騰省"] = {wp = "Bartın Province"}, ["阿爾達罕省"] = {wp = "Ardahan Province"}, ["伊迪爾省"] = {wp = "Iğdır Province"}, ["亞洛瓦省"] = {wp = "Yalova Province"}, ["卡拉比克省"] = {wp = "Karabük Province"}, ["基利斯省"] = {wp = "Kilis Province"}, ["奧斯曼尼耶省"] = {wp = "Osmaniye Province"}, ["迪茲傑省"] = {wp = "Düzce Province"}, } export.turkey_group = { placename_to_key = false, default_container = "土耳其", default_placetype = "province", data = export.turkey_provinces, } export.vietnam_provinces = { -- Northeast ["北江省"] = {wp = "Bắc Giang Province"}, ["北件省"] = {wp = "Bắc Kạn Province"}, ["高平省"] = {wp = "Cao Bằng Province"}, ["河江省"] = {wp = "Hà Giang Province"}, ["諒山省"] = {wp = "Lạng Sơn Province"}, ["富壽省"] = {wp = "Phú Thọ Province"}, ["廣寧省"] = {wp = "Quảng Ninh Province"}, ["太原省"] = {wp = "Thái Nguyên Province"}, ["宣光省"] = {wp = "Tuyên Quang Province"}, -- Northwest ["老街省"] = {wp = "Lào Cai Province"}, ["安沛省"] = {wp = "Yên Bái Province"}, ["奠邊省"] = {wp = "Điện Biên Province"}, ["和平省"] = {wp = "Hoà Bình Province"}, ["萊州省"] = {wp = "Lai Châu Province"}, ["山羅省"] = {wp = "Sơn La Province"}, -- Red River Delta ["北寧省"] = {wp = "Bắc Ninh Province"}, ["河南省"] = {wp = "Hà Nam Province"}, ["海陽省"] = {wp = "Hải Dương Province"}, ["興安省"] = {wp = "Hưng Yên Province"}, ["南定省"] = {wp = "Nam Định Province"}, ["寧平省"] = {wp = "Ninh Bình Province"}, ["太平省"] = {wp = "Thái Bình Province"}, ["永福省"] = {wp = "Vĩnh Phúc Province"}, -- North Central Coast ["河靜省"] = {wp = "Hà Tĩnh Province"}, ["乂安省"] = {wp = "Nghệ An Province"}, ["廣平省"] = {wp = "Quảng Bình Province"}, ["廣治省"] = {wp = "Quảng Trị Province"}, ["清化省"] = {wp = "Thanh Hoá Province"}, -- Central Highlands ["得樂省"] = {wp = "Đắk Lắk Province"}, ["得農省"] = {wp = "Đăk Nông Province"}, ["嘉萊省"] = {wp = "Gia Lai Province"}, ["崑嵩省"] = {wp = "Kon Tum Province"}, ["林同省"] = {wp = "Lâm Đồng Province"}, -- South Central Coast ["平定省"] = {wp = "Bình Định Province"}, ["平順省"] = {wp = "Bình Thuận Province"}, ["慶和省"] = {wp = "Khánh Hoà Province"}, ["寧順省"] = {wp = "Ninh Thuận Province"}, ["富安省"] = {wp = "Phú Yên Province"}, ["廣南省"] = {wp = "Quảng Nam Province"}, ["廣義省"] = {wp = "Quảng Ngãi Province"}, -- Southeast ["巴地-頭頓省"] = {wp = "Bà Rịa–Vũng Tàu Province"}, ["平陽省"] = {wp = "Bình Dương Province"}, ["平福省"] = {wp = "Bình Phước Province"}, ["同奈省"] = {wp = "Đồng Nai Province"}, ["西寧省"] = {wp = "Tây Ninh Province"}, -- Mekong Delta ["安江省"] = {wp = "An Giang Province"}, ["薄寮省"] = {wp = "Bạc Liêu Province"}, ["檳椥省"] = {wp = "Bến Tre Province"}, ["金甌省"] = {wp = "Cà Mau Province"}, ["同塔省"] = {wp = "Đồng Tháp Province"}, ["後江省"] = {wp = "Hậu Giang Province"}, ["堅江省"] = {wp = "Kiên Giang Province"}, ["龍安省"] = {wp = "Long An Province"}, ["朔莊省"] = {wp = "Sóc Trăng Province"}, ["前江省"] = {wp = "Tiền Giang Province"}, ["茶榮省"] = {wp = "Trà Vinh Province"}, ["永隆省"] = {wp = "Vĩnh Long Province"}, } export.vietnam_group = { placename_to_key = false, default_container = "越南", default_placetype = "province", data = export.vietnam_provinces, } export.united_states_states = { ["阿拉巴馬"] = {wp = "Alabama"}, ["阿拉斯加"] = {wp = "Alaska"}, ["亞利桑那"] = {wp = "Arizona"}, ["阿肯色"] = {wp = "Arkansas"}, ["加利福尼亞"] = {wp = "California"}, ["加州"] = {alias_of = "加利福尼亞"}, ["科羅拉多"] = {wp = "Colorado"}, ["康乃狄克"] = {wp = "Connecticut"}, ["康涅狄格"] = {alias_of = "康乃狄克"}, ["德拉瓦"] = {wp = "Delaware"}, ["佛羅里達"] = {wp = "Florida"}, ["佛罗里达"] = {alias_of = "佛羅里達"}, ["佐治亞"] = {wp = "Georgia (U.S. state)"}, ["夏威夷"] = {addl_parents = {"玻里尼西亞"}, wp = "Hawaii"}, ["愛達荷"] = {wp = "Idaho"}, ["伊利諾伊"] = {wp = "Illinois"}, ["伊利诺伊"] = {alias_of = "伊利諾伊"}, ["印地安那"] = {wp = "Indiana"}, ["印第安納"] = {alias_of = "印地安那"}, ["愛荷華"] = {wp = "Iowa"}, ["堪薩斯"] = {wp = "Kansas"}, ["肯塔基"] = {wp = "Kentucky"}, ["路易斯安那"] = {wp = "Louisiana"}, ["緬因"] = {wp = "Maine"}, ["馬里蘭"] = {wp = "Maryland"}, ["麻薩諸塞"] = {wp = "Massachusetts"}, ["麻薩诸塞"] = {alias_of = "麻薩諸塞"}, ["密西根"] = {wp = "Michigan"}, ["密歇根"] = {alias_of = "密西根"}, ["明尼蘇達"] = {wp = "Minnesota"}, ["明尼苏达"] = {alias_of = "明尼蘇達"}, ["密西西比"] = {wp = "Mississippi"}, ["密蘇里"] = {wp = "Missouri"}, ["蒙大拿"] = {wp = "Montana"}, ["內布拉斯加"] = {wp = "Nebraska"}, ["內華達"] = {wp = "Nevada"}, ["新罕布什爾"] = {wp = "New Hampshire"}, ["新澤西"] = {wp = "New Jersey"}, ["新泽西"] = {alias_of = "新澤西"}, ["新墨西哥"] = {wp = "New Mexico"}, ["紐約"] = {wp = "New York (state)"}, ["纽约"] = {alias_of = "紐約"}, ["北卡羅來納"] = {wp = "North Carolina"}, ["北达科他"] = {alias_of = "北達科他"}, ["北達科他"] = {wp = "North Dakota"}, ["俄亥俄"] = {wp = "Ohio"}, ["奧克拉荷馬"] = {wp = "Oklahoma"}, ["奧勒岡"] = {wp = "Oregon"}, ["俄勒冈"] = {alias_of = "奧勒岡"}, ["賓夕法尼亞"] = {wp = "Pennsylvania"}, ["宾夕法尼亚"] = {alias_of = "賓夕法尼亞"}, ["羅德島"] = {wp = "Rhode Island"}, ["南卡羅來納"] = {wp = "South Carolina"}, ["南達科他"] = {wp = "South Dakota"}, ["田納西"] = {wp = "Tennessee"}, ["田纳西"] = {alias_of = "田納西"}, ["德克薩斯"] = {wp = "Texas"}, ["德州"] = {alias_of = "德克薩斯"}, ["猶他"] = {wp = "Utah"}, ["佛蒙特"] = {wp = "Vermont"}, ["弗吉尼亞"] = {wp = "Virginia"}, ["弗吉尼亚"] = {alias_of = "弗吉尼亞"}, ["維吉尼亞"] = {alias_of = "弗吉尼亞"}, ["華盛頓州"] = {wp = "Washington (state)"}, ["华盛顿州"] = {alias_of = "華盛頓州"}, ["西維吉尼亞"] = {wp = "West Virginia"}, ["西弗吉尼亞"] = {alias_of = "西維吉尼亞"}, ["威斯康辛"] = {wp = "Wisconsin"}, ["懷俄明"] = {wp = "Wyoming"}, -- Washington D.C. (federal district, treated like a state in holonym context) ["華盛頓特區"] = {placetype = {"federal district", "district"}, wp = "Washington, D.C."}, } export.united_states_group = { placename_to_key = false, default_container = "美國", default_placetype = "state", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, }, data = export.united_states_states, } export.united_kingdom_constituent_countries = { ["英格蘭"] = {divs = {"counties", "districts"}, wp = "England"}, ["北愛爾蘭"] = { placetype = {"constituent country", "province", "country"}, divs = {"counties", "districts"}, wp = "Northern Ireland", }, ["蘇格蘭"] = {divs = {{type = "council areas", container_parent_type = false}}, wp = "Scotland"}, ["威爾斯"] = {divs = {"counties"}, wp = "Wales"}, ["威爾士"] = {alias_of = "威爾斯"}, } export.united_kingdom_group = { placename_to_key = false, default_container = "英國", default_placetype = {"constituent country", "country"}, default_no_container_cat = true, data = export.united_kingdom_constituent_countries, } -- Scotland council areas export.scotland_council_areas = { ["Aberdeen市"] = {wp = "Aberdeen"}, ["Aberdeenshire"] = {wp = "Aberdeenshire"}, ["Angus"] = {wp = "Angus, Scotland"}, ["Argyll and Bute"] = {wp = "Argyll and Bute"}, ["Clackmannanshire"] = {wp = "Clackmannanshire"}, ["Dumfries and Galloway"] = {wp = "Dumfries and Galloway"}, ["Dundee市"] = {wp = "Dundee"}, ["East Ayrshire"] = {wp = "East Ayrshire"}, ["East Dunbartonshire"] = {wp = "East Dunbartonshire"}, ["East Lothian"] = {wp = "East Lothian"}, ["East Renfrewshire"] = {wp = "East Renfrewshire"}, ["Edinburgh市"] = {wp = "Edinburgh"}, ["Eilean Siar"] = {wp = "Outer Hebrides"}, ["Falkirk"] = {wp = "Falkirk"}, ["Fife"] = {wp = "Fife"}, ["Glasgow市"] = {wp = "Glasgow"}, ["高地"] = {wp = "Highland council area"}, ["Highland"] = {alias_of = "高地", display = true}, ["Inverclyde"] = {wp = "Inverclyde"}, ["Midlothian"] = {wp = "Midlothian"}, ["Moray"] = {wp = "Moray"}, ["North Ayrshire"] = {wp = "North Ayrshire"}, ["North Lanarkshire"] = {wp = "North Lanarkshire"}, ["Orkney群島"] = {wp = "Orkney"}, ["Perth and Kinross"] = {wp = "Perth and Kinross"}, ["Renfrewshire"] = {wp = "Renfrewshire"}, ["Scottish Borders"] = {wp = "Scottish Borders"}, ["Shetland群島"] = {wp = "Shetland"}, ["South Ayrshire"] = {wp = "South Ayrshire"}, ["South Lanarkshire"] = {wp = "South Lanarkshire"}, ["Stirling"] = {wp = "Stirling (council area)"}, ["West Dunbartonshire"] = {wp = "West Dunbartonshire"}, ["West Lothian"] = {wp = "West Lothian"}, } export.scotland_group = { placename_to_key = false, default_container = "蘇格蘭", default_placetype = "council area", data = export.scotland_council_areas, } -- England counties (ceremonial) export.england_counties = { -- Metropolitan counties ["大倫敦"] = {wp = "Greater London"}, ["大曼徹斯特"] = {wp = "Greater Manchester"}, ["默西賽德郡"] = {wp = "Merseyside"}, ["西密德蘭"] = {wp = "West Midlands (county)"}, ["南約克郡"] = {wp = "South Yorkshire"}, ["西約克郡"] = {wp = "West Yorkshire"}, ["泰恩-威爾郡"] = {wp = "Tyne and Wear"}, -- Non-metropolitan ceremonial counties ["貝德福德郡"] = {wp = "Bedfordshire"}, ["伯克郡"] = {wp = "Berkshire"}, ["白金漢郡"] = {wp = "Buckinghamshire"}, ["劍橋郡"] = {wp = "Cambridgeshire"}, ["柴郡"] = {wp = "Cheshire"}, ["康沃爾郡"] = {wp = "Cornwall"}, ["坎布里亞郡"] = {wp = "Cumbria"}, ["德比郡"] = {wp = "Derbyshire"}, ["德文郡"] = {wp = "Devon"}, ["多塞特郡"] = {wp = "Dorset"}, ["達勒姆郡"] = {wp = "County Durham"}, ["約克郡東區"] = {wp = "East Riding of Yorkshire"}, ["東薩塞克斯郡"] = {wp = "East Sussex"}, ["埃塞克斯郡"] = {wp = "Essex"}, ["格洛斯特郡"] = {wp = "Gloucestershire"}, ["漢普郡"] = {wp = "Hampshire"}, ["赫里福德郡"] = {wp = "Herefordshire"}, ["赫特福德郡"] = {wp = "Hertfordshire"}, ["懷特島"] = {wp = "Isle of Wight"}, ["肯特郡"] = {wp = "Kent"}, ["蘭開夏郡"] = {wp = "Lancashire"}, ["萊斯特郡"] = {wp = "Leicestershire"}, ["林肯郡"] = {wp = "Lincolnshire"}, ["諾福克郡"] = {wp = "Norfolk"}, ["北安普敦郡"] = {wp = "Northamptonshire"}, ["諾森伯蘭郡"] = {wp = "Northumberland"}, ["北約克郡"] = {wp = "North Yorkshire"}, ["諾丁漢郡"] = {wp = "Nottinghamshire"}, ["牛津郡"] = {wp = "Oxfordshire"}, ["拉特蘭郡"] = {wp = "Rutland"}, ["什羅普郡"] = {wp = "Shropshire"}, ["薩默塞特郡"] = {wp = "Somerset"}, ["南亨伯賽德郡"] = {wp = "South Humberside"}, ["斯塔福德郡"] = {wp = "Staffordshire"}, ["薩福克郡"] = {wp = "Suffolk"}, ["薩里郡"] = {wp = "Surrey"}, ["沃里克郡"] = {wp = "Warwickshire"}, ["西薩塞克斯郡"] = {wp = "West Sussex"}, ["威爾特郡"] = {wp = "Wiltshire"}, ["伍斯特郡"] = {wp = "Worcestershire"}, } export.england_group = { placename_to_key = false, default_container = {key = "英格蘭", placetype = "constituent country"}, default_placetype = "county", data = export.england_counties, } -- Counties of Northern Ireland export.northern_ireland_counties = { ["安特里姆郡"] = {wp = "County Antrim"}, ["阿爾馬郡"] = {wp = "County Armagh"}, ["貝爾法斯特市"] = {is_city = true, wp = "Belfast"}, ["唐郡"] = {wp = "County Down"}, ["弗馬納郡"] = {wp = "County Fermanagh"}, ["倫敦德里郡"] = {wp = "County Londonderry"}, ["德里市"] = {is_city = true, wp = "Derry"}, ["泰龍郡"] = {wp = "County Tyrone"}, } export.northern_ireland_group = { placename_to_key = false, default_container = {key = "北愛爾蘭", placetype = "constituent country"}, default_placetype = "county", data = export.northern_ireland_counties, } export.nigeria_states = { ["阿比亞州"] = {wp = "Abia State"}, ["阿達馬瓦州"] = {wp = "Adamawa State"}, ["阿誇伊博姆州"] = {wp = "Akwa Ibom State"}, ["阿南布拉州"] = {wp = "Anambra State"}, ["包奇州"] = {wp = "Bauchi State"}, ["貝耶薩州"] = {wp = "Bayelsa State"}, ["貝努埃州"] = {wp = "Benue State"}, ["博爾諾州"] = {wp = "Borno State"}, ["跨河州"] = {wp = "Cross River State"}, ["三角洲州"] = {wp = "Delta State"}, ["埃博尼州"] = {wp = "Ebonyi State"}, ["埃多州"] = {wp = "Edo State"}, ["埃基蒂州"] = {wp = "Ekiti State"}, ["埃努古州"] = {wp = "Enugu State"}, ["阿布賈聯邦首都轄區"] = {placetype = {"federal territory", "territory", "state"}, the = true, wp = "Federal Capital Territory, Nigeria"}, ["貢貝州"] = {wp = "Gombe State"}, ["伊莫州"] = {wp = "Imo State"}, ["吉加瓦州"] = {wp = "Jigawa State"}, ["卡杜納州"] = {wp = "Kaduna State"}, ["卡諾州"] = {wp = "Kano State"}, ["卡齊納州"] = {wp = "Katsina State"}, ["克比州"] = {wp = "Kebbi State"}, ["科吉州"] = {wp = "Kogi State"}, ["誇拉州"] = {wp = "Kwara State"}, ["拉各斯州"] = {wp = "Lagos State"}, ["納薩拉瓦州"] = {wp = "Nasarawa State"}, ["尼日爾州"] = {wp = "Niger State"}, ["奧貢州"] = {wp = "Ogun State"}, ["翁多州"] = {wp = "Ondo State"}, ["奧順州"] = {wp = "Osun State"}, ["奧約州"] = {wp = "Oyo State"}, ["高原州"] = {wp = "Plateau State"}, ["河流州"] = {wp = "Rivers State"}, ["索科托州"] = {wp = "Sokoto State"}, ["塔拉巴州"] = {wp = "Taraba State"}, ["約貝州"] = {wp = "Yobe State"}, ["贊法拉州"] = {wp = "Zamfara State"}, } export.nigeria_group = { placename_to_key = false, default_container = "奈及利亞", default_placetype = "state", data = export.nigeria_states, } ----------------------------------------------------------------------------------- -- Selected city groups -- ----------------------------------------------------------------------------------- -- Key world cities frequently used as holonyms (entries covered by dedicated city groups removed) export.misc_cities = { -- Americas ["費爾法克斯"] = {container = "弗吉尼亞", placetype = "city", is_city = true, wp = "Fairfax, Virginia"}, ["斯克蘭頓"] = {container = "賓夕法尼亞", placetype = "city", is_city = true, wp = "Scranton, Pennsylvania"}, ["里約熱內盧市"] = {container = "巴西", placetype = "city", is_city = true, wp = "Rio de Janeiro"}, ["布宜諾斯艾利斯"] = {container = "阿根廷", placetype = "city", is_city = true, wp = "Buenos Aires"}, ["聖地牙哥"] = {container = "智利", placetype = "city", is_city = true, wp = "Santiago"}, ["波哥大"] = {container = "哥倫比亞", placetype = "city", is_city = true, wp = "Bogotá"}, ["利馬"] = {container = "秘魯", placetype = "city", is_city = true, wp = "Lima"}, -- Europe ["阿姆斯特丹"] = {container = "荷蘭", placetype = "city", is_city = true, wp = "Amsterdam"}, ["布魯塞爾"] = {container = "比利時", placetype = "city", is_city = true, wp = "Brussels"}, ["維也納"] = {container = "奧地利", placetype = "city", is_city = true, wp = "Vienna"}, ["伊斯坦布爾"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Istanbul"}, ["基輔"] = {container = "烏克蘭", placetype = "city", is_city = true, wp = "Kyiv"}, ["華沙"] = {container = "波蘭", placetype = "city", is_city = true, wp = "Warsaw"}, ["布拉格"] = {container = "捷克", placetype = "city", is_city = true, wp = "Prague"}, ["布達佩斯"] = {container = "匈牙利", placetype = "city", is_city = true, wp = "Budapest"}, ["斯德哥爾摩"] = {container = "瑞典", placetype = "city", is_city = true, wp = "Stockholm"}, ["赫爾辛基"] = {container = "芬蘭", placetype = "city", is_city = true, wp = "Helsinki"}, ["奧斯陸"] = {container = "挪威", placetype = "city", is_city = true, wp = "Oslo"}, ["哥本哈根"] = {container = "丹麥", placetype = "city", is_city = true, wp = "Copenhagen"}, ["里斯本"] = {container = "葡萄牙", placetype = "city", is_city = true, wp = "Lisbon"}, ["雅典"] = {container = "希臘", placetype = "city", is_city = true, wp = "Athens"}, ["蘇黎世"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Zurich"}, ["日內瓦"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Geneva"}, ["第比利斯"] = {container = "格魯吉亞", placetype = "city", is_city = true, wp = "Tbilisi"}, ["貝爾格勒"] = {container = "塞爾維亞", placetype = "city", is_city = true, wp = "Belgrade"}, ["薩格勒布"] = {container = "克羅埃西亞", placetype = "city", is_city = true, wp = "Zagreb"}, ["都柏林"] = {container = "愛爾蘭", placetype = "city", is_city = true, wp = "Dublin"}, -- Asia ["北京市"] = {container = "北京", placetype = "city", is_city = true, wp = "Beijing"}, ["上海市"] = {container = "上海", placetype = "city", is_city = true, wp = "Shanghai"}, ["德里市"] = {container = "德里", placetype = "city", is_city = true, wp = "Delhi"}, ["曼谷"] = {container = "泰國", placetype = "city", is_city = true, wp = "Bangkok"}, ["吉隆坡"] = {container = "馬來西亞", placetype = "city", is_city = true, wp = "Kuala Lumpur"}, ["開羅"] = {container = "埃及", placetype = "city", is_city = true, wp = "Cairo"}, ["德黑蘭"] = {container = "伊朗", placetype = "city", is_city = true, wp = "Tehran"}, ["安卡拉"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Ankara"}, -- Oceania ["奧克蘭"] = {container = "紐西蘭", placetype = "city", is_city = true, wp = "Auckland"}, -- Africa ["開普敦"] = {container = "南非", placetype = "city", is_city = true, wp = "Cape Town"}, ["約翰尼斯堡"] = {container = "南非", placetype = "city", is_city = true, wp = "Johannesburg"}, ["奈洛比"] = {container = "肯亞", placetype = "city", is_city = true, wp = "Nairobi"}, } export.misc_cities_group = { placename_to_key = false, default_placetype = "city", default_is_city = true, data = export.misc_cities, } export.netherlands_provinces = { ["德倫特省"] = {wp = "Drenthe"}, ["弗萊福蘭省"] = {wp = "Flevoland"}, ["弗里斯蘭省"] = {wp = "Friesland"}, ["格爾德蘭省"] = {wp = "Gelderland"}, ["格羅寧根省"] = {wp = "Groningen (province)"}, ["林堡省(荷蘭)"] = {wp = "Limburg (Netherlands)"}, ["北布拉班特省"] = {wp = "North Brabant"}, ["北荷蘭省"] = {wp = "North Holland"}, ["上艾瑟爾省"] = {wp = "Overijssel"}, ["南荷蘭省"] = {wp = "South Holland"}, ["烏特勒支省"] = {wp = "Utrecht (province)"}, ["澤蘭省"] = {wp = "Zeeland"}, } export.netherlands_group = { placename_to_key = false, default_container = "荷蘭", default_placetype = "province", data = export.netherlands_provinces, } export.new_zealand_regions = { ["北地大區"] = {wp = "Northland Region"}, ["奧克蘭大區"] = {wp = "Auckland Region"}, ["懷卡托大區"] = {wp = "Waikato Region"}, ["豐盛灣大區"] = {wp = "Bay of Plenty Region"}, ["吉斯伯恩大區"] = {wp = "Gisborne District", placetype = {"region", "district"}}, ["霍克斯灣大區"] = {wp = "Hawke's Bay Region"}, ["塔拉納基大區"] = {wp = "Taranaki Region"}, ["馬納瓦圖-旺阿努伊大區"] = {wp = "Manawatū-Whanganui Region"}, ["惠靈頓大區"] = {wp = "Wellington Region"}, ["塔斯曼大區"] = {wp = "Tasman District", placetype = {"region", "district"}}, ["納爾遜大區"] = {wp = "Nelson, New Zealand", placetype = {"region", "city"}, is_city = true}, ["馬爾堡大區"] = {wp = "Marlborough District", placetype = {"region", "district"}}, ["西海岸大區"] = {wp = "West Coast Region"}, ["坎特伯雷大區"] = {wp = "Canterbury Region"}, ["奧塔哥大區"] = {wp = "Otago Region"}, ["南地大區"] = {wp = "Southland Region"}, } export.new_zealand_group = { placename_to_key = false, default_container = "紐西蘭", default_placetype = "region", data = export.new_zealand_regions, } export.norwegian_counties = { ["奧斯陸縣"] = {wp = "Oslo"}, ["羅加蘭縣"] = {wp = "Rogaland"}, ["莫雷-羅姆斯達爾縣"] = {wp = "Møre og Romsdal"}, ["諾爾蘭縣"] = {wp = "Nordland"}, ["東福爾縣"] = {wp = "Østfold"}, ["阿克斯胡斯縣"] = {wp = "Akershus"}, ["布斯克呂縣"] = {wp = "Buskerud"}, ["因蘭德縣"] = {wp = "Innlandet"}, ["西福爾縣"] = {wp = "Vestfold"}, ["泰勒馬克縣"] = {wp = "Telemark"}, ["阿格德爾縣"] = {wp = "Agder"}, ["西地縣"] = {wp = "Vestland"}, ["特倫德拉格縣"] = {wp = "Trøndelag"}, ["特羅姆斯縣"] = {wp = "Troms"}, ["芬馬克縣"] = {wp = "Finnmark"}, } export.norway_group = { placename_to_key = false, default_container = "挪威", default_placetype = "county", data = export.norwegian_counties, } export.pakistan_provinces_and_territories = { ["自由克什米爾"] = {wp = "Azad Kashmir", placetype = {"administrative territory", "autonomous territory", "territory"}}, ["俾路支省"] = {wp = "Balochistan, Pakistan"}, ["吉爾吉特-巴爾蒂斯坦"] = {wp = "Gilgit-Baltistan", placetype = {"administrative territory", "territory"}}, ["伊斯蘭馬巴德首都直轄區"] = {wp = "Islamabad Capital Territory", placetype = {"federal territory", "administrative territory", "territory"}}, ["開伯爾-普赫圖赫瓦省"] = {wp = "Khyber Pakhtunkhwa"}, ["旁遮普省(巴基斯坦)"] = {wp = "Punjab, Pakistan"}, ["信德省"] = {wp = "Sindh"}, } export.pakistan_group = { placename_to_key = false, default_container = "巴基斯坦", default_placetype = "province", data = export.pakistan_provinces_and_territories, } export.philippines_provinces = { ["阿布拉省"] = {wp = "Abra (province)"}, ["北阿古桑省"] = {wp = "Agusan del Norte"}, ["南阿古桑省"] = {wp = "Agusan del Sur"}, ["阿克蘭省"] = {wp = "Aklan"}, ["阿爾拜省"] = {wp = "Albay"}, ["安蒂克省"] = {wp = "Antique (province)"}, ["阿帕亞沃省"] = {wp = "Apayao"}, ["奧羅拉省"] = {wp = "Aurora (province)"}, ["巴西蘭省"] = {wp = "Basilan"}, ["巴丹省"] = {wp = "Bataan"}, ["巴達內斯省"] = {wp = "Batanes"}, ["八打雁省"] = {wp = "Batangas"}, ["本格特省"] = {wp = "Benguet"}, ["比利蘭省"] = {wp = "Biliran"}, ["保和省"] = {wp = "Bohol"}, ["布基農省"] = {wp = "Bukidnon"}, ["布拉干省"] = {wp = "Bulacan"}, ["卡加延省"] = {wp = "Cagayan"}, ["北甲馬仁省"] = {wp = "Camarines Norte"}, ["南甲馬仁省"] = {wp = "Camarines Sur"}, ["卡米金省"] = {wp = "Camiguin"}, ["卡皮斯省"] = {wp = "Capiz"}, ["卡坦端內斯省"] = {wp = "Catanduanes"}, ["甲米地省"] = {wp = "Cavite"}, ["宿霧省"] = {wp = "Cebu"}, ["哥打巴托省"] = {wp = "Cotabato"}, ["達沃德奧羅省"] = {wp = "Davao de Oro"}, ["北達沃省"] = {wp = "Davao del Norte"}, ["南達沃省"] = {wp = "Davao del Sur"}, ["西達沃省"] = {wp = "Davao Occidental"}, ["東達沃省"] = {wp = "Davao Oriental"}, ["迪納加特群島省"] = {wp = "Dinagat Islands"}, ["東薩馬省"] = {wp = "Eastern Samar"}, ["吉馬拉斯省"] = {wp = "Guimaras"}, ["伊富高省"] = {wp = "Ifugao"}, ["北伊羅科斯省"] = {wp = "Ilocos Norte"}, ["南伊羅科斯省"] = {wp = "Ilocos Sur"}, ["伊洛伊洛省"] = {wp = "Iloilo"}, ["伊莎貝拉省"] = {wp = "Isabela (province)"}, ["卡林加省"] = {wp = "Kalinga (province)"}, ["拉烏尼翁省"] = {wp = "La Union"}, ["拉古納省"] = {wp = "Laguna (province)"}, ["北拉瑙省"] = {wp = "Lanao del Norte"}, ["南拉瑙省"] = {wp = "Lanao del Sur"}, ["萊特省"] = {wp = "Leyte (province)"}, ["北馬京達瑙省"] = {wp = "Maguindanao del Norte"}, ["南馬京達瑙省"] = {wp = "Maguindanao del Sur"}, ["馬林杜克省"] = {wp = "Marinduque"}, ["馬斯巴特省"] = {wp = "Masbate"}, ["西米薩米斯省"] = {wp = "Misamis Occidental"}, ["東米薩米斯省"] = {wp = "Misamis Oriental"}, ["山岳省"] = {wp = "Mountain Province"}, ["西內格羅斯省"] = {wp = "Negros Occidental"}, ["東內格羅斯省"] = {wp = "Negros Oriental"}, ["北薩馬省"] = {wp = "Northern Samar"}, ["新怡詩夏省"] = {wp = "Nueva Ecija"}, ["新比斯開省"] = {wp = "Nueva Vizcaya"}, ["西民都洛省"] = {wp = "Occidental Mindoro"}, ["東民都洛省"] = {wp = "Oriental Mindoro"}, ["巴拉望省"] = {wp = "Palawan"}, ["邦板牙省"] = {wp = "Pampanga"}, ["邦阿西楠省"] = {wp = "Pangasinan"}, ["奎松省"] = {wp = "Quezon"}, ["基里諾省"] = {wp = "Quirino"}, ["黎剎省"] = {wp = "Rizal (province)"}, ["朗布隆省"] = {wp = "Romblon"}, ["薩馬省"] = {wp = "Samar (province)"}, ["薩蘭加尼省"] = {wp = "Sarangani"}, ["錫基霍爾省"] = {wp = "Siquijor"}, ["索索貢省"] = {wp = "Sorsogon"}, ["南哥打巴托省"] = {wp = "South Cotabato"}, ["南萊特省"] = {wp = "Southern Leyte"}, ["蘇丹庫達拉省"] = {wp = "Sultan Kudarat"}, ["蘇祿省"] = {wp = "Sulu"}, ["北蘇里高省"] = {wp = "Surigao del Norte"}, ["南蘇里高省"] = {wp = "Surigao del Sur"}, ["塔拉克省"] = {wp = "Tarlac"}, ["塔威塔威省"] = {wp = "Tawi-Tawi"}, ["三描禮士省"] = {wp = "Zambales"}, ["北三寶顏省"] = {wp = "Zamboanga del Norte"}, ["南三寶顏省"] = {wp = "Zamboanga del Sur"}, ["三寶顏錫布蓋省"] = {wp = "Zamboanga Sibugay"}, ["馬尼拉都會區"] = {wp = "Metro Manila", placetype = {"region", "province"}}, } export.philippines_group = { placename_to_key = false, default_container = "菲律賓", default_placetype = "province", data = export.philippines_provinces, } export.poland_voivodeships = { ["下西里西亞省"] = {wp = "Lower Silesian Voivodeship"}, ["庫亞維-波美拉尼亞省"] = {wp = "Kuyavian-Pomeranian Voivodeship"}, ["盧布林省"] = {wp = "Lublin Voivodeship"}, ["盧布斯省"] = {wp = "Lubusz Voivodeship"}, ["羅茲省"] = {wp = "Łódź Voivodeship"}, ["小波蘭省"] = {wp = "Lesser Poland Voivodeship"}, ["馬佐夫舍省"] = {wp = "Masovian Voivodeship"}, ["奧波萊省"] = {wp = "Opole Voivodeship"}, ["喀爾巴阡山省"] = {wp = "Subcarpathian Voivodeship"}, ["波德拉謝省"] = {wp = "Podlaskie Voivodeship"}, ["波美拉尼亞省"] = {wp = "Pomeranian Voivodeship"}, ["西里西亞省"] = {wp = "Silesian Voivodeship"}, ["神聖十字省"] = {wp = "Świętokrzyskie Voivodeship"}, ["瓦爾米亞-馬祖里省"] = {wp = "Warmian-Masurian Voivodeship"}, ["大波蘭省"] = {wp = "Greater Poland Voivodeship"}, ["西波美拉尼亞省"] = {wp = "West Pomeranian Voivodeship"}, } export.poland_group = { placename_to_key = false, default_container = "波蘭", default_placetype = "voivodeship", data = export.poland_voivodeships, } export.portugal_districts_and_autonomous_regions = { ["亞速爾群島"] = {wp = "Azores", placetype = {"autonomous region", "region"}}, ["阿維羅區"] = {wp = "Aveiro District"}, ["貝雅區"] = {wp = "Beja District"}, ["布拉加區"] = {wp = "Braga District"}, ["布拉干薩區"] = {wp = "Bragança District"}, ["卡斯特洛布蘭科區"] = {wp = "Castelo Branco District"}, ["科英布拉區"] = {wp = "Coimbra District"}, ["埃武拉區"] = {wp = "Évora District"}, ["法魯區"] = {wp = "Faro District"}, ["瓜達區"] = {wp = "Guarda District"}, ["萊里亞區"] = {wp = "Leiria District"}, ["里斯本區"] = {wp = "Lisbon District"}, ["馬德拉島"] = {wp = "Madeira", placetype = {"autonomous region", "region"}}, ["波塔萊格里區"] = {wp = "Portalegre District"}, ["波爾圖區"] = {wp = "Porto District"}, ["聖塔倫區"] = {wp = "Santarém District"}, ["塞圖巴爾區"] = {wp = "Setúbal District"}, ["維亞納堡區"] = {wp = "Viana do Castelo District"}, ["維拉雷亞爾區"] = {wp = "Vila Real District"}, ["維塞烏區"] = {wp = "Viseu District"}, } export.portugal_group = { placename_to_key = false, default_container = "葡萄牙", default_placetype = "district", data = export.portugal_districts_and_autonomous_regions, } local russia_oblast = {placetype = "oblast"} local russia_krai = {placetype = "krai"} local russia_republic = {placetype = "republic"} local russia_autonomous_okrug = {placetype = {"autonomous okrug", "okrug"}} export.russia_federal_subjects = { -- autonomous oblast ["猶太自治州"] = {placetype = {"autonomous oblast", "oblast"}, wp = "Jewish Autonomous Oblast"}, -- autonomous okrugs ["楚科奇自治區"] = {wp = "Chukotka Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西自治區"] = {wp = "Khanty-Mansi Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西亞"] = {alias_of = "漢特-曼西自治區"}, ["涅涅茨自治區"] = {wp = "Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["亞馬洛-涅涅茨自治區"] = {wp = "Yamalo-Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, -- krais ["阿爾泰邊疆區"] = {wp = "Altai Krai", placetype = "krai"}, ["堪察加邊疆區"] = {wp = "Kamchatka Krai", placetype = "krai"}, ["哈巴羅夫斯克邊疆區"] = {wp = "Khabarovsk Krai", placetype = "krai"}, ["克拉斯諾達爾邊疆區"] = {wp = "Krasnodar Krai", placetype = "krai"}, ["克拉斯諾亞爾斯克邊疆區"] = {wp = "Krasnoyarsk Krai", placetype = "krai"}, ["彼爾姆邊疆區"] = {wp = "Perm Krai", placetype = "krai"}, ["濱海邊疆區"] = {wp = "Primorsky Krai", placetype = "krai"}, ["斯塔夫羅波爾邊疆區"] = {wp = "Stavropol Krai", placetype = "krai"}, ["外貝加爾邊疆區"] = {wp = "Zabaykalsky Krai", placetype = "krai"}, -- oblasts ["阿穆爾州"] = russia_oblast, ["阿爾漢格爾斯克州"] = russia_oblast, ["阿斯特拉罕州"] = russia_oblast, ["別爾哥羅德州"] = russia_oblast, ["布良斯克州"] = russia_oblast, ["車裡雅賓斯克州"] = russia_oblast, ["伊爾庫茨克州"] = russia_oblast, ["伊萬諾沃州"] = russia_oblast, ["加里寧格勒州"] = russia_oblast, ["卡盧加州"] = russia_oblast, ["克麥羅沃州"] = russia_oblast, ["基洛夫州"] = russia_oblast, ["科斯特羅馬州"] = russia_oblast, ["庫爾干州"] = russia_oblast, ["庫爾斯克州"] = russia_oblast, ["列寧格勒州"] = russia_oblast, ["利佩茨克州"] = russia_oblast, ["馬加丹州"] = russia_oblast, ["莫斯科州"] = russia_oblast, ["摩爾曼斯克州"] = russia_oblast, ["下諾夫哥羅德州"] = russia_oblast, ["諾夫哥羅德州"] = russia_oblast, ["新西伯利亞州"] = russia_oblast, ["鄂木斯克州"] = russia_oblast, ["奧倫堡州"] = russia_oblast, ["奧廖爾州"] = russia_oblast, ["奔薩州"] = russia_oblast, ["普斯科夫州"] = russia_oblast, ["羅斯托夫州"] = russia_oblast, ["梁贊州"] = russia_oblast, ["薩哈林州"] = {wp = "Sakhalin Oblast", placetype = "oblast"}, ["薩馬拉州"] = russia_oblast, ["薩拉托夫州"] = russia_oblast, ["斯摩棱斯克州"] = russia_oblast, ["斯維爾德洛夫斯克州"] = russia_oblast, ["坦波夫州"] = russia_oblast, ["托木斯克州"] = russia_oblast, ["圖拉州"] = russia_oblast, ["特維爾州"] = russia_oblast, ["秋明州"] = russia_oblast, ["烏里揚諾夫斯克州"] = russia_oblast, ["弗拉基米爾州"] = russia_oblast, ["伏爾加格勒州"] = russia_oblast, ["沃洛格達州"] = russia_oblast, ["沃羅涅日州"] = russia_oblast, ["雅羅斯拉夫爾州"] = russia_oblast, -- republics ["阿迪格共和國"] = russia_republic, ["巴什科爾托斯坦共和國"] = russia_republic, ["布里亞特共和國"] = russia_republic, ["達吉斯坦共和國"] = russia_republic, ["印古什共和國"] = russia_republic, ["卡爾梅克共和國"] = russia_republic, ["卡累利亞共和國"] = {wp = "Republic of Karelia", placetype = "republic"}, ["哈卡斯共和國"] = russia_republic, ["莫爾多瓦共和國"] = russia_republic, ["北奧塞梯-阿蘭尼亞共和國"] = {wp = "North Ossetia–Alania", placetype = "republic"}, ["北奧塞梯"] = {alias_of = "北奧塞梯-阿蘭尼亞共和國"}, ["韃靼斯坦共和國"] = russia_republic, ["阿爾泰共和國"] = {wp = "Altai Republic", placetype = "republic"}, ["車臣共和國"] = russia_republic, ["楚瓦什共和國"] = russia_republic, ["卡巴爾達-巴爾卡爾共和國"] = russia_republic, ["卡拉恰伊-切爾克斯共和國"] = russia_republic, ["科米共和國"] = {wp = "Komi Republic", placetype = "republic"}, ["馬里埃爾共和國"] = russia_republic, ["薩哈共和國"] = {wp = "Sakha Republic", placetype = "republic"}, ["雅庫特"] = {alias_of = "薩哈共和國"}, ["圖瓦共和國"] = russia_republic, ["烏德穆爾特共和國"] = russia_republic, } export.russia_group = { placename_to_key = false, default_container = "俄羅斯", default_placetype = "oblast", data = export.russia_federal_subjects, } export.saudi_arabia_provinces = { ["利雅得省"] = {wp = "Riyadh Province"}, ["麥加省"] = {wp = "Mecca Province"}, ["東部省(沙特)"] = {wp = "Eastern Province, Saudi Arabia", no_auto_augment_container = true}, ["麥地那省"] = {wp = "Medina Province"}, ["阿西爾省"] = {wp = "Asir"}, ["吉贊省"] = {wp = "Jazan Province"}, ["卡西姆省"] = {wp = "Al-Qassim Province"}, ["塔布克省"] = {wp = "Tabuk Province"}, ["哈伊爾省"] = {wp = "Ha'il Province"}, ["焦夫省"] = {wp = "Al-Jawf Province"}, ["納季蘭省"] = {wp = "Najran Province"}, ["北部邊界省"] = {wp = "Northern Borders Province"}, ["巴哈省"] = {wp = "Al-Bahah Province"}, } export.saudi_arabia_group = { placename_to_key = false, default_container = "沙烏地阿拉伯", default_placetype = "province", data = export.saudi_arabia_provinces, } export.south_africa_provinces = { ["東開普省"] = {wp = "Eastern Cape"}, ["自由邦省"] = {wp = "Free State (South African province)"}, ["豪登省"] = {wp = "Gauteng"}, ["夸祖魯-納塔爾省"] = {wp = "KwaZulu-Natal"}, ["林波波省"] = {wp = "Limpopo"}, ["姆普馬蘭加省"] = {wp = "Mpumalanga"}, ["西北省(南非)"] = {wp = "North West (South African province)"}, ["北開普省"] = {wp = "Northern Cape"}, ["西開普省"] = {wp = "Western Cape"}, } export.south_africa_group = { placename_to_key = false, default_container = "南非", default_placetype = "province", data = export.south_africa_provinces, } export.ukraine_oblasts = { ["切爾卡瑟州"] = {wp = "Cherkasy Oblast"}, ["切爾尼戈夫州"] = {wp = "Chernihiv Oblast"}, ["切爾諾夫策州"] = {wp = "Chernivtsi Oblast"}, ["第聶伯羅彼得羅夫斯克州"] = {wp = "Dnipropetrovsk Oblast"}, ["頓涅茨克州"] = {wp = "Donetsk Oblast"}, ["伊萬諾-弗蘭科夫斯克州"] = {wp = "Ivano-Frankivsk Oblast"}, ["哈爾科夫州"] = {wp = "Kharkiv Oblast"}, ["赫爾松州"] = {wp = "Kherson Oblast"}, ["赫梅利尼茨基州"] = {wp = "Khmelnytskyi Oblast"}, ["基洛夫格勒州"] = {wp = "Kirovohrad Oblast"}, ["基輔州"] = {wp = "Kyiv Oblast"}, ["盧甘斯克州"] = {wp = "Luhansk Oblast"}, ["利沃夫州"] = {wp = "Lviv Oblast"}, ["尼古拉耶夫州"] = {wp = "Mykolaiv Oblast"}, ["敖德薩州"] = {wp = "Odesa Oblast"}, ["波爾塔瓦州"] = {wp = "Poltava Oblast"}, ["羅夫諾州"] = {wp = "Rivne Oblast"}, ["蘇梅州"] = {wp = "Sumy Oblast"}, ["捷爾諾波爾州"] = {wp = "Ternopil Oblast"}, ["文尼察州"] = {wp = "Vinnytsia Oblast"}, ["沃里尼亞州"] = {wp = "Volyn Oblast"}, ["外喀爾巴阡州"] = {wp = "Zakarpattia Oblast"}, ["扎波羅熱州"] = {wp = "Zaporizhzhia Oblast"}, ["日托米爾州"] = {wp = "Zhytomyr Oblast"}, } export.ukraine_group = { placename_to_key = false, default_container = "烏克蘭", default_placetype = "oblast", data = export.ukraine_oblasts, } export.wales_principal_areas = { ["布拉艾諾格溫特"] = {wp = "Blaenau Gwent"}, ["布里真德"] = {wp = "Bridgend County Borough"}, ["卡菲利"] = {wp = "Caerphilly County Borough"}, ["卡馬森郡"] = {wp = "Carmarthenshire", placetype = "county"}, ["克雷地基昂"] = {wp = "Ceredigion", placetype = "county"}, ["科溫"] = {wp = "Conwy County Borough"}, ["登比郡"] = {wp = "Denbighshire", placetype = "county"}, ["弗林特郡"] = {wp = "Flintshire", placetype = "county"}, ["格溫內德"] = {wp = "Gwynedd", placetype = "county"}, ["安格爾西島"] = {wp = "Isle of Anglesey", placetype = "county"}, ["默瑟蒂德菲爾"] = {wp = "Merthyr Tydfil County Borough"}, ["蒙茅斯郡"] = {wp = "Monmouthshire", placetype = "county"}, ["尼斯-波特塔爾博特"] = {wp = "Neath Port Talbot"}, ["彭布羅克郡"] = {wp = "Pembrokeshire", placetype = "county"}, ["波伊斯"] = {wp = "Powys", placetype = "county"}, ["朗達坎農塔夫"] = {wp = "Rhondda Cynon Taf"}, ["托爾范"] = {wp = "Torfaen"}, ["格拉摩根谷"] = {wp = "Vale of Glamorgan"}, ["雷克瑟姆"] = {wp = "Wrexham County Borough"}, } export.wales_group = { placename_to_key = false, default_container = {key = "威爾斯", placetype = "constituent country"}, default_placetype = "county borough", data = export.wales_principal_areas, } ----------------------------------------------------------------------------------- -- City groups -- ----------------------------------------------------------------------------------- export.australia_cities = { ["阿德萊德"] = {container = "南澳大利亞", wp = "Adelaide"}, ["布里斯班"] = {container = "昆士蘭", wp = "Brisbane"}, ["坎培拉"] = {container = "澳大利亞首都領地", wp = "Canberra"}, ["墨爾本"] = {container = "維多利亞州", wp = "Melbourne"}, ["紐卡素"] = {container = "新南威爾斯", wp = "Newcastle, New South Wales"}, ["伯斯"] = {container = "西澳大利亞", wp = "Perth"}, ["悉尼"] = {container = "新南威爾斯", wp = "Sydney"}, } export.australia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "澳大利亞", default_placetype = "city", default_is_city = true, data = export.australia_cities, } export.brazil_cities = { ["聖保羅"] = {container = "聖保羅州", wp = "São Paulo"}, ["里約熱內盧"] = {container = "里約熱內盧州", wp = "Rio de Janeiro"}, ["貝洛奧里藏特"] = {container = "米納斯吉拉斯", wp = "Belo Horizonte"}, ["累西腓"] = {container = "伯南布哥州", wp = "Recife"}, ["阿雷格里港"] = {container = "南里奧格蘭德州", wp = "Porto Alegre"}, ["巴西利亞"] = {container = "巴西聯邦區", wp = "Brasília"}, ["福塔萊薩"] = {container = "塞阿拉州", wp = "Fortaleza"}, ["薩爾瓦多"] = {container = "巴伊亞", wp = "Salvador, Bahia"}, ["庫里蒂巴"] = {container = "巴拉那州", wp = "Curitiba"}, ["坎皮納斯"] = {container = "聖保羅州", wp = "Campinas"}, ["戈亞尼亞"] = {container = "戈亞斯州", wp = "Goiânia"}, ["瑪瑙斯"] = {container = "亞馬遜州", wp = "Manaus"}, ["伯利恆"] = {container = "帕拉州", wp = "Belém, Pará"}, ["維多利亞"] = {container = "聖埃斯皮里圖州", wp = "Vitória, Espírito Santo"}, ["聖路易斯"] = {container = "馬拉尼昂州", wp = "São Luís"}, ["納塔爾"] = {container = "北里奧格蘭德州", wp = "Natal, Rio Grande do Norte"}, ["弗洛里亞諾波利斯"] = {container = "聖卡塔琳娜州", wp = "Florianópolis"}, ["馬塞約"] = {container = "阿拉戈亞斯州", wp = "Maceió"}, ["若昂佩索阿"] = {container = "帕拉伊巴州", wp = "João Pessoa"}, ["特雷齊納"] = {container = "皮奧伊州", wp = "Teresina"}, ["隆德里納"] = {container = "巴拉那州", wp = "Londrina"}, } export.brazil_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "巴西", default_placetype = "city", default_is_city = true, data = export.brazil_cities, } export.canada_cities = { ["多倫多"] = {container = "安大略", wp = "Toronto"}, ["蒙特婁"] = {container = "魁北克", wp = "Montreal"}, ["溫哥華"] = {container = "英屬哥倫比亞", wp = "Vancouver"}, ["卡加里"] = {container = "亞伯達", wp = "Calgary"}, ["愛民頓"] = {container = "亞伯達", wp = "Edmonton"}, ["渥太華"] = {container = "安大略", wp = "Ottawa"}, ["魁北克城"] = {container = "魁北克", wp = "Quebec City"}, ["溫尼伯"] = {container = "馬尼托巴", wp = "Winnipeg"}, ["漢密爾頓"] = {container = "安大略", wp = "Hamilton, Ontario"}, } export.canada_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "加拿大", default_placetype = "city", default_is_city = true, data = export.canada_cities, } export.france_cities = { ["巴黎"] = {container = "法蘭西島大區", wp = "Paris"}, ["里昂"] = {container = "奧弗涅-隆河-阿爾卑斯大區", wp = "Lyon"}, ["馬賽"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Marseille"}, ["里爾"] = {container = "上法蘭西大區", wp = "Lille"}, ["波爾多"] = {container = "新阿基坦大區", wp = "Bordeaux"}, ["圖盧茲"] = {container = "奧克西塔尼大區", wp = "Toulouse"}, ["尼斯"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Nice"}, ["南特"] = {container = "盧瓦爾河地區大區", wp = "Nantes"}, ["史特拉斯堡"] = {container = "大東部大區", wp = "Strasbourg"}, ["雷恩"] = {container = "布列塔尼大區", wp = "Rennes"}, } export.france_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "法國", default_placetype = "city", default_is_city = true, data = export.france_cities, } export.germany_cities = { ["科隆"] = {container = "北萊茵-威斯特法倫", wp = "Cologne"}, ["杜塞爾多夫"] = {container = "北萊茵-威斯特法倫", wp = "Düsseldorf"}, ["多特蒙德"] = {container = "北萊茵-威斯特法倫", wp = "Dortmund"}, ["埃森"] = {container = "北萊茵-威斯特法倫", wp = "Essen"}, ["柏林"] = {wp = "Berlin"}, ["法蘭克福"] = {container = "黑森", wp = "Frankfurt"}, ["漢堡"] = {wp = "Hamburg"}, ["慕尼黑"] = {container = "巴伐利亞", wp = "Munich"}, ["斯圖加特"] = {container = "巴登-符騰堡", wp = "Stuttgart"}, ["曼海姆"] = {container = "巴登-符騰堡", wp = "Mannheim"}, ["紐倫堡"] = {container = "巴伐利亞", wp = "Nuremberg"}, ["漢諾威"] = {container = "下薩克森", wp = "Hanover"}, ["比勒費爾德"] = {container = "北萊茵-威斯特法倫", wp = "Bielefeld"}, ["萊比錫"] = {container = "薩克森", wp = "Leipzig"}, ["亞琛"] = {container = "北萊茵-威斯特法倫", wp = "Aachen"}, ["不來梅"] = {wp = "Bremen"}, } export.germany_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "德國", default_placetype = "city", default_is_city = true, data = export.germany_cities, } export.india_cities = { ["德里"] = {container = {key = "德里", placetype = "union territory"}, wp = "Delhi"}, ["孟買"] = {container = "馬哈拉施特拉邦", wp = "Mumbai"}, ["加爾各答"] = {container = "西孟加拉邦", wp = "Kolkata"}, ["班加羅爾"] = {container = "卡納塔克邦", wp = "Bengaluru"}, ["金奈"] = {container = "泰米爾納德邦", wp = "Chennai"}, ["海德拉巴"] = {container = "特倫甘納邦", wp = "Hyderabad"}, ["艾哈邁達巴德"] = {container = "古吉拉特邦", wp = "Ahmedabad"}, ["浦那"] = {container = "馬哈拉施特拉邦", wp = "Pune"}, ["蘇拉特"] = {container = "古吉拉特邦", wp = "Surat"}, ["勒克瑙"] = {container = "北方邦", wp = "Lucknow"}, ["齋浦爾"] = {container = "拉賈斯坦邦", wp = "Jaipur"}, ["坎普爾"] = {container = "北方邦", wp = "Kanpur"}, ["那格浦爾"] = {container = "馬哈拉施特拉邦", wp = "Nagpur"}, ["巴特那"] = {container = "比哈爾邦", wp = "Patna"}, ["瓦拉納西"] = {container = "北方邦", wp = "Varanasi"}, ["印多爾"] = {container = "中央邦", wp = "Indore"}, ["博帕爾"] = {container = "中央邦", wp = "Bhopal"}, ["阿格拉"] = {container = "北方邦", wp = "Agra"}, ["科欽"] = {container = "喀拉拉邦", wp = "Kochi"}, ["維沙卡帕特南"] = {container = "安得拉邦", wp = "Visakhapatnam"}, ["齋普爾"] = {alias_of = "齋浦爾"}, } export.india_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "印度", default_placetype = "city", default_is_city = true, data = export.india_cities, } export.indonesia_cities = { ["雅加達"] = {container = "雅加達首都特區", wp = "Jakarta"}, ["泗水"] = {container = "東爪哇省", wp = "Surabaya"}, ["勿加泗"] = {container = "西爪哇省", wp = "Bekasi"}, ["萬隆"] = {container = "西爪哇省", wp = "Bandung"}, ["棉蘭"] = {container = "北蘇門答臘省", wp = "Medan"}, ["德波"] = {container = "西爪哇省", wp = "Depok"}, ["萬丹市"] = {container = "萬丹省", wp = "Tangerang"}, ["巨港"] = {container = "南蘇門答臘省", wp = "Palembang"}, ["三寶壟"] = {container = "中爪哇省", wp = "Semarang"}, ["望加錫"] = {container = "南蘇拉威西省", wp = "Makassar"}, ["武端"] = {container = "廖內群島省", wp = "Batam"}, ["茂物"] = {container = "西爪哇省", wp = "Bogor"}, ["北干巴魯"] = {container = "廖內省", wp = "Pekanbaru"}, ["班達爾楠榜"] = {container = "楠榜省", wp = "Bandar Lampung"}, ["巴東"] = {container = "西蘇門答臘省", wp = "Padang"}, ["薩馬林達"] = {container = "東加里曼丹省", wp = "Samarinda"}, ["瑪琅"] = {container = "東爪哇省", wp = "Malang"}, ["日惹"] = {container = "日惹特區", wp = "Yogyakarta"}, ["登巴薩"] = {container = "峇里省", wp = "Denpasar"}, ["哲勒貢"] = {container = "西爪哇省", wp = "Cirebon"}, ["梭羅"] = {container = "中爪哇省", wp = "Surakarta"}, ["馬辰"] = {container = "南加里曼丹省", wp = "Banjarmasin"}, ["打橫"] = {container = "西爪哇省", wp = "Tasikmalaya"}, } export.indonesia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "印度尼西亞", default_placetype = "city", default_is_city = true, data = export.indonesia_cities, } export.italy_cities = { ["米蘭"] = {container = "倫巴第", wp = "Milan"}, ["那不勒斯"] = {container = "坎帕尼亞", wp = "Naples"}, ["羅馬"] = {container = "拉齊奧", wp = "Rome"}, ["都靈"] = {container = "皮埃蒙特", wp = "Turin"}, ["威尼斯"] = {container = "威尼托", wp = "Venice"}, ["佛羅倫斯"] = {container = "托斯卡納", wp = "Florence"}, ["巴里"] = {container = "普利亞", wp = "Bari"}, ["巴勒莫"] = {container = "西西里", wp = "Palermo"}, ["卡塔尼亞"] = {container = "西西里", wp = "Catania"}, ["布雷西亞"] = {container = "倫巴第", wp = "Brescia"}, ["熱那亞"] = {container = "利古里亞", wp = "Genoa"}, } export.italy_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "意大利", default_placetype = "city", default_is_city = true, data = export.italy_cities, } export.japan_cities = { ["東京"] = {keydesc = "[[東京]]都會區,[[日本]]的[[首都]]和[[都]]級行政區", placetype = {"city", "prefecture"}, divs = { {type = "special wards", container_parent_type = false}, {type = "cities", prep = "in"}, }, }, ["橫濱"] = {container = "神奈川縣", wp = "Yokohama"}, ["大阪"] = {container = "大阪府", wp = "Osaka"}, ["名古屋"] = {container = "愛知縣", wp = "Nagoya"}, ["札幌"] = {container = "北海道", wp = "Sapporo"}, ["福岡"] = {container = "福岡縣", wp = "Fukuoka"}, ["神戶"] = {container = "兵庫縣", wp = "Kobe"}, ["京都"] = {container = "京都府", wp = "Kyoto"}, ["川崎"] = {container = "神奈川縣", wp = "Kawasaki, Kanagawa"}, ["廣島"] = {container = "廣島縣", wp = "Hiroshima"}, ["仙台"] = {container = "宮城縣", wp = "Sendai"}, ["北九州"] = {container = "福岡縣", wp = "Kitakyushu"}, ["新潟"] = {container = "新潟縣", wp = "Niigata (city)"}, ["靜岡"] = {container = "靜岡縣", wp = "Shizuoka (city)"}, ["岡山"] = {container = "岡山縣", wp = "Okayama"}, ["熊本"] = {container = "熊本縣", wp = "Kumamoto"}, ["鹿兒島"] = {container = "鹿兒島縣", wp = "Kagoshima"}, } export.japan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "prefecture"), default_container = "日本", default_placetype = "city", default_is_city = true, data = export.japan_cities, } export.mexico_cities = { ["墨西哥城"] = {wp = "墨西哥城"}, ["蒙特雷"] = {container = "新萊昂州", wp = "Monterrey"}, ["瓜達拉哈拉"] = {container = "哈利斯科州", wp = "Guadalajara"}, ["普埃布拉市"] = {container = "普埃布拉州", wp = "Puebla (city)"}, ["托盧卡"] = {container = "墨西哥州", wp = "Toluca"}, ["蒂華納"] = {container = "下加利福尼亞州", wp = "Tijuana"}, ["萊昂"] = {container = "瓜納華托州", wp = "León, Guanajuato"}, ["克雷塔羅市"] = {container = "克雷塔羅州", wp = "Querétaro (city)"}, ["華雷斯城"] = {container = "奇瓦瓦州", wp = "Ciudad Juárez"}, ["托雷翁"] = {container = "科阿韋拉州", wp = "Torreón"}, ["梅里達"] = {container = "尤卡坦州", wp = "Mérida, Yucatán"}, ["聖路易斯波托西市"] = {container = "聖路易斯波托西州", wp = "San Luis Potosí (city)"}, ["阿瓜斯卡連特斯市"] = {container = "阿瓜斯卡連特斯州", wp = "Aguascalientes (city)"}, ["墨西卡利"] = {container = "下加利福尼亞州", wp = "Mexicali"}, } export.mexico_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "墨西哥", default_placetype = "city", default_is_city = true, data = export.mexico_cities, } export.nigeria_cities = { ["拉各斯"] = {container = "拉各斯州", wp = "Lagos"}, ["卡諾市"] = {container = "卡諾州", wp = "Kano (city)"}, ["伊巴丹"] = {container = "奧約州", wp = "Ibadan"}, ["阿布賈"] = {container = {key = "阿布賈聯邦首都轄區", placetype = "federal territory"}, wp = "Abuja"}, ["哈科特港"] = {container = "河流州", wp = "Port Harcourt"}, ["卡杜納市"] = {container = "卡杜納州", wp = "Kaduna (city)"}, ["貝寧城"] = {container = "埃多州", wp = "Benin City"}, ["阿巴"] = {container = "阿比亞州", wp = "Aba, Nigeria"}, ["奧尼查"] = {container = "阿南布拉州", wp = "Onitsha"}, ["邁杜古里"] = {container = "博爾諾州", wp = "Maiduguri"}, ["伊洛林"] = {container = "誇拉州", wp = "Ilorin"}, ["索科托市"] = {container = "索科托州", wp = "Sokoto (city)"}, ["喬斯"] = {container = "高原州", wp = "Jos"}, ["扎里亞"] = {container = "卡杜納州", wp = "Zaria"}, ["埃努古市"] = {container = "埃努古州", wp = "Enugu (city)"}, } export.nigeria_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "奈及利亞", default_placetype = "city", default_is_city = true, data = export.nigeria_cities, } export.pakistan_cities = { ["卡拉奇"] = {container = "信德省", wp = "Karachi"}, ["拉合爾"] = {container = "旁遮普省(巴基斯坦)", wp = "Lahore"}, ["拉瓦爾品第"] = {container = "旁遮普省(巴基斯坦)", wp = "Rawalpindi"}, ["伊斯蘭馬巴德"] = {container = {key = "伊斯蘭馬巴德首都直轄區", placetype = "federal territory"}, wp = "Islamabad"}, ["費薩拉巴德"] = {container = "旁遮普省(巴基斯坦)", wp = "Faisalabad"}, ["古傑蘭瓦拉"] = {container = "旁遮普省(巴基斯坦)", wp = "Gujranwala"}, ["海德拉巴(巴基斯坦)"] = {container = "信德省", wp = "Hyderabad, Pakistan"}, ["木爾坦"] = {container = "旁遮普省(巴基斯坦)", wp = "Multan"}, ["白沙瓦"] = {container = "開伯爾-普赫圖赫瓦省", wp = "Peshawar"}, ["奎達"] = {container = "俾路支省", wp = "Quetta"}, ["薩戈達"] = {container = "旁遮普省(巴基斯坦)", wp = "Sargodha"}, ["錫亞爾科特"] = {container = "旁遮普省(巴基斯坦)", wp = "Sialkot"}, } export.pakistan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "巴基斯坦", default_placetype = "city", default_is_city = true, data = export.pakistan_cities, } export.philippines_cities = { ["奎松市"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Quezon City"}, ["馬尼拉"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Manila"}, ["達沃市"] = {container = "南達沃省", wp = "Davao City"}, ["卡洛坎"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Caloocan"}, ["三寶顏市"] = {container = "南三寶顏省", wp = "Zamboanga City"}, ["宿霧市"] = {container = "宿霧省", wp = "Cebu City"}, ["安蒂波洛"] = {container = "黎剎省", wp = "Antipolo"}, ["卡加延德奧羅"] = {container = "東米薩米斯省", wp = "Cagayan de Oro"}, ["達斯馬里尼亞斯"] = {container = "甲米地省", wp = "Dasmariñas"}, ["棉蘭老將軍城"] = {container = "南哥打巴托省", wp = "General Santos"}, ["聖何塞德爾蒙特"] = {container = "布拉干省", wp = "San Jose del Monte"}, ["巴科洛德"] = {container = "西內格羅斯省", wp = "Bacolod"}, ["卡蘭巴"] = {container = "拉古納省", wp = "Calamba, Laguna"}, ["天使城"] = {container = "邦板牙省", wp = "Angeles City"}, ["伊洛伊洛市"] = {container = "伊洛伊洛省", wp = "Iloilo City"}, } export.philippines_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "菲律賓", default_placetype = "city", default_is_city = true, data = export.philippines_cities, } export.russia_cities = { ["莫斯科"] = {wp = "Moscow"}, ["聖彼得堡"] = {wp = "Saint Petersburg"}, ["新西伯利亞"] = {container = "新西伯利亞州", wp = "Novosibirsk"}, ["葉卡捷琳堡"] = {container = "斯維爾德洛夫斯克州", wp = "Yekaterinburg"}, ["下諾夫哥羅德"] = {container = "下諾夫哥羅德州", wp = "Nizhny Novgorod"}, ["喀山"] = {container = {key = "韃靼斯坦共和國", placetype = "republic"}, wp = "Kazan"}, ["車裡雅賓斯克市"] = {container = "車裡雅賓斯克州", wp = "Chelyabinsk"}, ["頓河畔羅斯托夫"] = {container = "羅斯托夫州", wp = "Rostov-on-Don"}, ["克拉斯諾達爾市"] = {container = {key = "克拉斯諾達爾邊疆區", placetype = "krai"}, wp = "Krasnodar"}, ["薩馬拉市"] = {container = "薩馬拉州", wp = "Samara"}, ["克拉斯諾亞爾斯克市"] = {container = {key = "克拉斯諾亞爾斯克邊疆區", placetype = "krai"}, wp = "Krasnoyarsk"}, ["烏法"] = {container = {key = "巴什科爾托斯坦共和國", placetype = "republic"}, wp = "Ufa"}, ["薩拉托夫市"] = {container = "薩拉托夫州", wp = "Saratov"}, ["鄂木斯克市"] = {container = "鄂木斯克州", wp = "Omsk"}, ["沃羅涅日市"] = {container = "沃羅涅日州", wp = "Voronezh"}, ["伏爾加格勒市"] = {container = "伏爾加格勒州", wp = "Volgograd"}, ["彼爾姆市"] = {container = {key = "彼爾姆邊疆區", placetype = "krai"}, wp = "Perm, Russia"}, } export.russia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "oblast"), default_container = "俄羅斯", default_placetype = "city", default_is_city = true, data = export.russia_cities, } export.saudi_arabia_cities = { ["利雅得"] = {container = "利雅得省", wp = "Riyadh"}, ["吉達"] = {container = "麥加省", wp = "Jeddah"}, ["達曼"] = {container = "東部省(沙特)", wp = "Dammam"}, ["麥加"] = {container = "麥加省", wp = "Mecca"}, ["麥地那"] = {container = "麥地那省", wp = "Medina"}, ["霍夫夫"] = {container = "東部省(沙特)", wp = "Hofuf"}, ["哈米斯穆沙伊特"] = {container = "阿西爾省", wp = "Khamis Mushait"}, } export.saudi_arabia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "沙烏地阿拉伯", default_placetype = "city", default_is_city = true, data = export.saudi_arabia_cities, } export.south_korea_cities = { ["首爾"] = {wp = "Seoul"}, ["釜山"] = {wp = "Busan"}, ["仁川"] = {wp = "Incheon"}, ["大邱"] = {wp = "Daegu"}, ["大田"] = {wp = "Daejeon"}, ["光州"] = {wp = "Gwangju"}, ["蔚山"] = {wp = "Ulsan"}, } export.south_korea_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "南韓", default_placetype = "city", default_is_city = true, data = export.south_korea_cities, } export.spain_cities = { ["馬德里"] = {container = "馬德里自治區", wp = "Madrid"}, ["巴塞羅那"] = {container = "加泰羅尼亞", wp = "Barcelona"}, ["瓦倫西亞"] = {container = "巴倫西亞", wp = "Valencia"}, ["塞維利亞"] = {container = "安達盧西亞", wp = "Seville"}, ["畢爾包"] = {container = "巴斯克", wp = "Bilbao"}, } export.spain_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "autonomous community"), default_container = "西班牙", default_placetype = "city", default_is_city = true, data = export.spain_cities, } export.taiwan_cities = { -- Special municipalities (province-level) ["臺北市"] = {placetype = "special municipality", wp = "臺北市"}, ["新北市"] = {placetype = "special municipality", wp = "新北市"}, ["桃園市"] = {placetype = "special municipality", wp = "桃園市"}, ["臺中市"] = {placetype = "special municipality", wp = "臺中市"}, ["臺南市"] = {placetype = "special municipality", wp = "臺南市"}, ["高雄市"] = {placetype = "special municipality", wp = "高雄市"}, -- these last three are not special municipalities ["嘉義市"] = {placetype = "city", wp = "嘉義市"}, ["新竹市"] = {placetype = "city", wp = "新竹市"}, ["基隆市"] = {placetype = "city", wp = "基隆市"}, } export.taiwan_cities_group = { key_to_placename = make_key_to_placename(nil, "市$"), placename_to_key = make_placename_to_key("市"), default_container = "臺灣", default_placetype = {"special municipality", "city"}, default_is_city = true, data = export.taiwan_cities, } export.united_kingdom_cities = { ["倫敦"] = {container = {key = "大倫敦", placetype = "county"}, wp = "London"}, ["曼徹斯特"] = {container = {key = "大曼徹斯特", placetype = "county"}, wp = "Manchester"}, ["伯明翰"] = {container = {key = "西密德蘭", placetype = "county"}, wp = "Birmingham"}, ["利物浦"] = {container = {key = "默西賽德郡", placetype = "county"}, wp = "Liverpool"}, ["格拉斯哥"] = {container = {key = "Glasgow市", placetype = "council area"}, wp = "Glasgow"}, ["利茲"] = {container = {key = "西約克郡", placetype = "county"}, wp = "Leeds"}, ["布里斯托"] = {container = {key = "英格蘭", placetype = "constituent country"}, wp = "Bristol"}, ["卡地夫"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Cardiff"}, ["愛丁堡"] = {container = {key = "Edinburgh市", placetype = "council area"}, wp = "Edinburgh"}, ["斯旺西"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Swansea"}, ["紐波特"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Newport, Wales"}, } export.united_kingdom_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "county"), default_container = "英國", default_placetype = "city", default_is_city = true, data = export.united_kingdom_cities, } export.united_states_cities = { ["紐約市"] = {container = "紐約", wp = "New York City"}, ["洛杉磯"] = {container = "加利福尼亞", wp = "Los Angeles"}, ["芝加哥"] = {container = "伊利諾伊", wp = "Chicago"}, ["華盛頓特區"] = {wp = "Washington, D.C."}, ["巴爾的摩"] = {container = "馬里蘭", wp = "Baltimore"}, ["聖荷西"] = {container = "加利福尼亞", wp = "San Jose, California"}, ["舊金山"] = {container = "加利福尼亞", wp = "San Francisco"}, ["波士頓"] = {container = "麻薩諸塞", wp = "Boston"}, ["達拉斯"] = {container = "德克薩斯", wp = "Dallas"}, ["費城"] = {container = "賓夕法尼亞", wp = "Philadelphia"}, ["休士頓"] = {container = "德克薩斯", wp = "Houston"}, ["邁阿密"] = {container = "佛羅里達", wp = "Miami"}, ["亞特蘭大"] = {container = "喬治亞", wp = "Atlanta"}, ["底特律"] = {container = "密西根", wp = "Detroit"}, ["鳳凰城"] = {container = "亞利桑那", wp = "Phoenix"}, ["西雅圖"] = {container = "華盛頓州", wp = "Seattle"}, ["明尼阿波利斯"] = {container = "明尼蘇達", wp = "Minneapolis"}, ["克里夫蘭"] = {container = "俄亥俄", wp = "Cleveland"}, ["丹佛"] = {container = "科羅拉多", wp = "Denver"}, ["聖地牙哥(美國)"] = {container = "加利福尼亞", wp = "San Diego"}, ["波特蘭(俄勒岡)"] = {container = "俄勒岡", wp = "Portland"}, ["聖路易斯"] = {container = "密蘇里", wp = "St. Louis"}, ["夏洛特"] = {container = "北卡羅來納", wp = "Charlotte"}, ["薩克拉門托"] = {container = "加利福尼亞", wp = "Sacramento"}, ["匹茲堡"] = {container = "賓夕法尼亞", wp = "Pittsburgh"}, ["鹽湖城"] = {container = "猶他", wp = "Salt Lake City"}, ["聖安東尼奧"] = {container = "德克薩斯", wp = "San Antonio"}, ["哥倫布"] = {container = "俄亥俄", wp = "Columbus"}, ["堪薩斯城"] = {container = "密蘇里", wp = "Kansas City metropolitan area"}, ["印第安納波利斯"] = {container = "印第安納", wp = "Indianapolis"}, ["拉斯維加斯"] = {container = "內華達", wp = "Las Vegas"}, ["辛辛那提"] = {container = "俄亥俄", wp = "Cincinnati"}, ["奧斯汀"] = {container = "德克薩斯", wp = "Austin"}, ["密爾沃基"] = {container = "威斯康辛", wp = "Milwaukee"}, ["羅利"] = {container = "北卡羅來納", wp = "Raleigh"}, ["納什維爾"] = {container = "田納西", wp = "Nashville"}, ["傑克遜維爾"] = {container = "佛羅里達", wp = "Jacksonville"}, ["新奧爾良"] = {container = "路易斯安那", wp = "New Orleans"}, ["路易斯維爾"] = {container = "肯塔基", wp = "Louisville"}, ["奧克拉荷馬城"] = {container = "奧克拉荷馬", wp = "Oklahoma City"}, ["孟菲斯"] = {container = "田納西", wp = "Memphis"}, ["伯明翰(美國)"] = {container = "阿拉巴馬", wp = "Birmingham, Alabama"}, ["弗雷斯諾"] = {container = "加利福尼亞", wp = "Fresno"}, ["里奇蒙"] = {container = "弗吉尼亞", wp = "Richmond"}, ["水牛城"] = {container = "紐約", wp = "Buffalo"}, ["艾爾帕索"] = {container = "德克薩斯", wp = "El Paso"}, ["阿爾伯克基"] = {container = "新墨西哥", wp = "Albuquerque"}, ["塔森"] = {container = "亞利桑那", wp = "Tucson"}, ["科羅拉多斯普林斯"] = {container = "科羅拉多", wp = "Colorado Springs"}, ["奧馬哈"] = {container = "內布拉斯加", wp = "Omaha"}, ["塔爾薩"] = {container = "奧克拉荷馬", wp = "Tulsa"}, } export.united_states_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "美國", default_placetype = "city", default_is_city = true, data = export.united_states_cities, } export.vietnam_cities = { ["胡志明市"] = {wp = "Ho Chi Minh City"}, ["西貢"] = {alias_of = "胡志明市"}, ["河內"] = {wp = "Hanoi"}, ["峴港"] = {wp = "Da Nang"}, ["海防"] = {wp = "Haiphong"}, ["邊和"] = {container = "同奈省", wp = "Biên Hòa", placetype = "city"}, ["芹苴"] = {wp = "Cần Thơ"}, ["順化"] = {wp = "Huế"}, } export.vietnam_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "越南", default_placetype = {"municipality", "city"}, default_is_city = true, data = export.vietnam_cities, } ----------------------------------------------------------------------------------- -- locations list -- ----------------------------------------------------------------------------------- export.locations = { export.continents_group, export.countries_group, export.country_like_entities_group, export.former_countries_group, export.united_states_group, export.united_kingdom_group, export.scotland_group, export.england_group, export.northern_ireland_group, export.ireland_group, export.wales_group, export.china_group, export.china_prefecture_level_cities_group, export.taiwan_group, export.canada_group, export.australia_group, export.india_group, export.japan_group, export.brazil_group, export.france_group, export.france_departments_group, export.germany_group, export.italy_group, export.spain_group, export.austria_group, export.bangladesh_group, export.egypt_group, export.finland_group, export.greece_group, export.indonesia_group, export.lebanon_group, export.malaysia_group, export.malta_group, export.mexico_group, export.moldova_group, export.morocco_group, export.netherlands_group, export.new_zealand_group, export.norway_group, export.pakistan_group, export.philippines_group, export.poland_group, export.portugal_group, export.romania_group, export.bulgaria_group, export.iran_group, export.russia_group, export.saudi_arabia_group, export.south_africa_group, export.laos_group, export.north_korea_group, export.south_korea_group, export.thailand_group, export.turkey_group, export.ukraine_group, export.vietnam_group, export.nigeria_group, export.new_york_boroughs_group, export.australia_cities_group, export.brazil_cities_group, export.canada_cities_group, export.france_cities_group, export.germany_cities_group, export.india_cities_group, export.indonesia_cities_group, export.italy_cities_group, export.japan_cities_group, export.mexico_cities_group, export.nigeria_cities_group, export.pakistan_cities_group, export.philippines_cities_group, export.russia_cities_group, export.saudi_arabia_cities_group, export.south_korea_cities_group, export.spain_cities_group, export.taiwan_cities_group, export.united_kingdom_cities_group, export.united_states_cities_group, export.vietnam_cities_group, export.misc_cities_group, } return export lent8y0rm3vfty02b3c0u3lvv1nnljf 9759567 9759525 2026-05-14T22:26:48Z TongcyDai 53191 // Edit via Wikiplus 9759567 Scribunto text/plain local export = {} export.force_cat = false local m_table = require("Module:table") local insert = table.insert local concat = table.concat local dump = mw.dumpObject local unpack = unpack or table.unpack --[==[ Chinese Wiktionary localization of [[Module:place/locations]]. All canonical location keys are in Chinese, matching what editors write in holonym parameters (e.g. {{place|zh|城市|s/中央邦|c/印度}}). English Wikipedia article names are stored in the `wp` field for cross-reference. The `the`, `british_spelling` and English-suffix-detection fields from enwikt are omitted as they are not applicable in Chinese. The helper functions (process_error through construct_linked_placename) are kept intact from enwikt's Module:place/locations to maintain API compatibility with Module:place/placetypes. ]==] ----------------------------------------------------------------------------------- -- Helper functions -- ----------------------------------------------------------------------------------- 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 function export.internal_error(fmt, ...) export.process_error("Internal error: " .. fmt, ...) end local internal_error = export.internal_error 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 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 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 == "country" or defcon.placetype == "constituent country") then return placename .. ", " .. defcon.key else return placename end end end 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 = "country"} 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", "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 spec.is_city = value_with_default(spec.is_city, group.default_placetype == "city") spec.initialized = true end 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 local placetype = spec.placetype or resolved_spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s", key) 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 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 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 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 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 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 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 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) -- Chinese has no articles; `the` field is unused but kept for API compatibility. return linked_placename end ----------------------------------------------------------------------------------- -- Local data helper factories -- ----------------------------------------------------------------------------------- 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 _, pat in ipairs(container_patterns) do local nsubs full_placename, nsubs = full_placename:gsub(pat, "") if nsubs > 0 then break end end end local elliptical_placename = full_placename if divtype_patterns then for _, pat in ipairs(divtype_patterns) do local nsubs elliptical_placename, nsubs = elliptical_placename:gsub(pat, "") if nsubs > 0 then break end end end return full_placename, elliptical_placename end end 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 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 -- Canonicalize a continent container key (string) to canonical container form. 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_container`", key) end ----------------------------------------------------------------------------------- -- Top-level tables -- ----------------------------------------------------------------------------------- export.continents = { ["地球"] = {placetype = "planet", addl_parents = {"自然"}, fulldesc = "=the planet [[Earth]] and the features found on it", wp = "地球"}, ["非洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "非洲"}, ["北非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "北非"}, ["中非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "中非"}, ["南非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "南非"}, ["東非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "東非"}, ["西非"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "西非"}, ["漠南非洲"] = {placetype = {"continental region", "region"}, container = {key = "非洲", placetype = "continent"}, wp = "漠南非洲"}, ["美洲"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "美洲"}, ["北美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "北美洲"}, ["加勒比地區"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "加勒比地區"}, ["中美洲"] = {placetype = {"continental region", "region"}, container = {key = "北美洲", placetype = "continent"}, wp = "中美洲"}, ["南美洲"] = {placetype = "continent", container = {key = "美洲", placetype = "supercontinent"}, wp = "南美洲"}, ["南極洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, fulldesc = "=the territory of [[Antarctica]]", wp = "南極洲"}, ["歐亞大陸"] = {placetype = {"supercontinent", "continent"}, container = {key = "地球", placetype = "planet"}, wp = "歐亞大陸"}, ["亞洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "亞洲"}, ["中東"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "中東"}, ["東南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "東南亞"}, ["南亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "南亞"}, ["東亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "東亞"}, ["中亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "中亞"}, ["北亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "北亞"}, ["東北亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "東北亞"}, ["西亞"] = {placetype = {"continental region", "region"}, container = {key = "亞洲", placetype = "continent"}, wp = "西亞"}, ["歐洲"] = {placetype = "continent", container = {key = "歐亞大陸", placetype = "supercontinent"}, wp = "歐洲"}, ["西歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "西歐"}, ["東歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "東歐"}, ["北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "北歐"}, ["南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "南歐"}, ["中歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "中歐"}, ["東南歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "東南歐"}, ["東北歐"] = {placetype = {"continental region", "region"}, container = {key = "歐洲", placetype = "continent"}, wp = "東北歐"}, ["大洋洲"] = {placetype = "continent", container = {key = "地球", placetype = "planet"}, wp = "大洋洲"}, ["美拉尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "美拉尼西亞"}, ["密克羅尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "密克羅尼西亞"}, ["玻里尼西亞"] = {placetype = {"continental region", "region"}, container = {key = "大洋洲", placetype = "continent"}, wp = "玻里尼西亞"}, } export.continents_group = { default_overriding_bare_label_parents = {"大洲及大陸地區"}, default_divs = {{type = "countries", prep = "in"}}, 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, default_no_check_holonym_mismatch = true, data = export.continents, } export.countries = { -- Africa ["阿爾及利亞"] = {container = "非洲", divs = {"provinces", "communes", "districts"}, wp = "阿爾及利亞"}, ["安哥拉"] = {container = "非洲", divs = {"provinces", "municipalities"}, wp = "安哥拉"}, ["貝寧"] = {container = "非洲", wp = "貝寧"}, ["貝南"] = {alias_of = "貝寧"}, ["博茨瓦納"] = {container = "非洲", wp = "博茨瓦納"}, ["波札那"] = {alias_of = "博茨瓦納"}, ["布基納法索"] = {container = "非洲", wp = "布基納法索"}, ["布吉納法索"] = {alias_of = "布基納法索"}, ["布隆迪"] = {container = "非洲", wp = "布隆迪"}, ["蒲隆地"] = {alias_of = "布隆迪"}, ["佛得角"] = {container = "非洲", wp = "佛得角"}, ["維德角"] = {alias_of = "佛得角"}, ["中非共和國"] = {container = "非洲", wp = "中非共和國"}, ["乍得"] = {container = "非洲", wp = "乍得"}, ["查德"] = {alias_of = "乍得"}, ["科摩羅"] = {container = "非洲", wp = "科摩羅"}, ["葛摩"] = {alias_of = "科摩羅"}, ["剛果共和國"] = {container = "非洲", wp = "剛果共和國"}, ["剛果(布)"] = {alias_of = "剛果共和國"}, ["剛果民主共和國"] = {container = "非洲", divs = {"provinces"}, wp = "剛果民主共和國"}, ["剛果(金)"] = {alias_of = "剛果民主共和國"}, ["吉布提"] = {container = "非洲", wp = "吉布提"}, ["吉布地"] = {alias_of = "吉布提"}, ["埃及"] = {container = "非洲", divs = {"governorates"}, wp = "埃及"}, ["赤道幾內亞"] = {container = "非洲", wp = "赤道幾內亞"}, ["厄立特里亞"] = {container = "非洲", wp = "厄立特里亞"}, ["厄利垂亞"] = {alias_of = "厄立特里亞"}, ["斯威士蘭"] = {container = "非洲", wp = "斯威士蘭"}, ["史瓦帝尼"] = {alias_of = "斯威士蘭"}, ["埃塞俄比亞"] = {container = "非洲", divs = {"regions"}, wp = "埃塞俄比亞"}, ["衣索比亞"] = {alias_of = "埃塞俄比亞"}, ["加蓬"] = {container = "非洲", wp = "加蓬"}, ["加彭"] = {alias_of = "加蓬"}, ["岡比亞"] = {container = "非洲", wp = "岡比亞"}, ["甘比亞"] = {alias_of = "岡比亞"}, ["加納"] = {container = "非洲", wp = "加納"}, ["迦納"] = {alias_of = "加納"}, ["幾內亞"] = {container = "非洲", wp = "幾內亞"}, ["幾內亞比紹"] = {container = "非洲", wp = "幾內亞比紹"}, ["幾內亞比索"] = {alias_of = "幾內亞比紹"}, ["科特迪瓦"] = {container = "非洲", wp = "科特迪瓦"}, ["象牙海岸"] = {alias_of = "科特迪瓦"}, ["肯尼亞"] = {container = "非洲", divs = {"counties"}, wp = "肯尼亞"}, ["肯亞"] = {alias_of = "肯尼亞"}, ["萊索托"] = {container = "非洲", wp = "萊索托"}, ["賴索托"] = {alias_of = "萊索托"}, ["利比里亞"] = {container = "非洲", wp = "利比里亞"}, ["賴比瑞亞"] = {alias_of = "利比里亞"}, ["利比亞"] = {container = "非洲", wp = "利比亞"}, ["馬達加斯加"] = {container = "非洲", wp = "馬達加斯加"}, ["馬拉維"] = {container = "非洲", wp = "馬拉維"}, ["馬拉威"] = {alias_of = "馬拉維"}, ["馬里"] = {container = "非洲", wp = "馬里"}, ["馬利"] = {alias_of = "馬里"}, ["毛里塔尼亞"] = {container = "非洲", wp = "毛里塔尼亞"}, ["茅利塔尼亞"] = {alias_of = "毛里塔尼亞"}, ["毛里求斯"] = {container = "非洲", wp = "毛里求斯"}, ["模里西斯"] = {alias_of = "毛里求斯"}, ["摩洛哥"] = {container = "非洲", wp = "摩洛哥"}, ["莫桑比克"] = {container = "非洲", wp = "莫桑比克"}, ["莫三比克"] = {alias_of = "莫桑比克"}, ["納米比亞"] = {container = "非洲", wp = "納米比亞"}, ["尼日爾"] = {container = "非洲", wp = "尼日爾"}, ["尼日"] = {alias_of = "尼日爾"}, ["尼日利亞"] = {container = "非洲", divs = { {type = "states", cat_as = "states and FCT"}, "local government areas", }, wp = "尼日利亞"}, ["奈及利亞"] = {alias_of = "尼日利亞"}, ["盧旺達"] = {container = "非洲", wp = "盧旺達"}, ["盧安達"] = {alias_of = "盧旺達"}, ["聖多美和普林西比"] = {container = "非洲", wp = "聖多美和普林西比"}, ["塞內加爾"] = {container = "非洲", wp = "塞內加爾"}, ["塞舌爾"] = {container = "非洲", wp = "塞舌爾"}, ["塞席爾"] = {alias_of = "塞舌爾"}, ["塞拉利昂"] = {container = "非洲", wp = "塞拉利昂"}, ["獅子山"] = {alias_of = "塞拉利昂"}, ["索馬里"] = {container = "非洲", wp = "索馬里"}, ["索馬利亞"] = {alias_of = "索馬里"}, ["南非"] = {container = "非洲", divs = {"provinces"}, wp = "南非"}, ["南蘇丹"] = {container = "非洲", wp = "南蘇丹"}, ["蘇丹"] = {container = "非洲", wp = "蘇丹"}, ["坦桑尼亞"] = {container = "非洲", wp = "坦桑尼亞"}, ["坦尚尼亞"] = {alias_of = "坦桑尼亞"}, ["多哥"] = {container = "非洲", wp = "多哥"}, ["突尼斯"] = {container = "非洲", wp = "突尼斯"}, ["突尼西亞"] = {alias_of = "突尼斯"}, ["烏干達"] = {container = "非洲", wp = "烏干達"}, ["贊比亞"] = {container = "非洲", wp = "贊比亞"}, ["尚比亞"] = {alias_of = "贊比亞"}, ["津巴布韋"] = {container = "非洲", wp = "津巴布韋"}, ["辛巴威"] = {alias_of = "津巴布韋"}, -- Asia ["阿富汗"] = {container = "亞洲", wp = "阿富汗"}, ["亞美尼亞"] = {container = {"歐洲", "亞洲"}, wp = "亞美尼亞"}, ["阿塞拜疆"] = {container = {"歐洲", "亞洲"}, wp = "阿塞拜疆"}, ["亞塞拜然"] = {alias_of = "阿塞拜疆"}, ["巴林"] = {container = "亞洲", wp = "巴林"}, ["孟加拉國"] = {container = "亞洲", divs = {"divisions", "districts"}, wp = "孟加拉國"}, ["孟加拉"] = {alias_of = "孟加拉國"}, ["不丹"] = {container = "亞洲", wp = "不丹"}, ["文萊"] = {container = "亞洲", wp = "文萊"}, ["汶萊"] = {alias_of = "文萊"}, ["柬埔寨"] = {container = "亞洲", wp = "柬埔寨"}, ["中國"] = {container = "亞洲", divs = { {type = "provinces", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "autonomous regions", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "direct-administered municipalities", cat_as = "provinces, autonomous regions, and municipalities"}, {type = "special administrative regions", cat_as = "special administrative regions"}, }, wp = "中國"}, ["東帝汶"] = {container = "亞洲", wp = "東帝汶"}, ["帝汶島"] = {alias_of = "東帝汶"}, ["印度"] = {container = "亞洲", divs = { {type = "states", cat_as = "states and union territories"}, {type = "union territories", cat_as = "states and union territories"}, }, wp = "印度"}, ["印度尼西亞"] = {container = "亞洲", divs = {"provinces"}, wp = "印度尼西亞"}, ["印尼"] = {alias_of = "印度尼西亞"}, ["伊朗"] = {container = "亞洲", wp = "伊朗"}, ["伊拉克"] = {container = "亞洲", wp = "伊拉克"}, ["以色列"] = {container = "亞洲", wp = "以色列"}, ["日本"] = {container = "亞洲", divs = {"prefectures"}, wp = "日本"}, ["約旦"] = {container = "亞洲", wp = "約旦"}, ["哈薩克斯坦"] = {container = {"歐洲", "亞洲"}, wp = "哈薩克斯坦"}, ["哈薩克"] = {alias_of = "哈薩克斯坦"}, ["朝鮮"] = {container = "亞洲", wp = "朝鮮民主主義人民共和國"}, ["北韓"] = {alias_of = "朝鮮"}, ["韓國"] = {container = "亞洲", divs = {"provinces", "special cities", "metropolitan cities"}, wp = "韓國"}, ["南韓"] = {alias_of = "韓國"}, ["科威特"] = {container = "亞洲", wp = "科威特"}, ["吉爾吉斯斯坦"] = {container = "亞洲", wp = "吉爾吉斯斯坦"}, ["吉爾吉斯"] = {alias_of = "吉爾吉斯斯坦"}, ["老撾"] = {container = "亞洲", wp = "老撾"}, ["寮國"] = {alias_of = "老撾"}, ["黎巴嫩"] = {container = "亞洲", wp = "黎巴嫩"}, ["馬來西亞"] = {container = "亞洲", divs = {"states"}, wp = "馬來西亞"}, ["馬爾代夫"] = {container = "亞洲", wp = "馬爾代夫"}, ["馬爾地夫"] = {alias_of = "馬爾代夫"}, ["蒙古"] = {container = "亞洲", wp = "蒙古"}, ["緬甸"] = {container = "亞洲", wp = "緬甸"}, ["尼泊爾"] = {container = "亞洲", wp = "尼泊爾"}, ["阿曼"] = {container = "亞洲", wp = "阿曼"}, ["巴基斯坦"] = {container = "亞洲", divs = {"provinces"}, wp = "巴基斯坦"}, ["菲律賓"] = {container = "亞洲", divs = {"regions"}, wp = "菲律賓"}, ["卡塔爾"] = {container = "亞洲", wp = "卡塔爾"}, ["卡達"] = {alias_of = "卡塔爾"}, ["俄羅斯"] = {container = {"歐洲", "亞洲"}, divs = {"federal subjects"}, wp = "俄羅斯"}, ["俄國"] = {alias_of = "俄羅斯"}, ["沙特阿拉伯"] = {container = "亞洲", wp = "沙特阿拉伯"}, ["沙烏地阿拉伯"] = {alias_of = "沙特阿拉伯"}, ["新加坡"] = {container = "亞洲", is_city = true, wp = "新加坡"}, ["斯里蘭卡"] = {container = "亞洲", wp = "斯里蘭卡"}, ["敘利亞"] = {container = "亞洲", wp = "敘利亞"}, ["臺灣"] = {container = "亞洲", divs = { "special municipalities", "counties", }, wp = "臺灣"}, ["台灣"] = {alias_of = "臺灣"}, ["塔吉克斯坦"] = {container = "亞洲", wp = "塔吉克斯坦"}, ["塔吉克"] = {alias_of = "塔吉克斯坦"}, ["泰國"] = {container = "亞洲", divs = {"provinces"}, wp = "泰國"}, ["土耳其"] = {container = {"歐洲", "亞洲"}, wp = "土耳其"}, ["土庫曼斯坦"] = {container = "亞洲", wp = "土庫曼斯坦"}, ["土庫曼"] = {alias_of = "土庫曼斯坦"}, ["阿拉伯聯合酋長國"] = {container = "亞洲", wp = "阿拉伯聯合酋長國"}, ["阿拉伯聯合大公國"] = {alias_of = "阿拉伯聯合酋長國"}, ["阿聯酋"] = {alias_of = "阿拉伯聯合酋長國"}, ["烏茲別克斯坦"] = {container = "亞洲", wp = "烏茲別克斯坦"}, ["烏茲別克"] = {alias_of = "烏茲別克斯坦"}, ["越南"] = {container = "亞洲", divs = {"provinces", "municipalities"}, wp = "越南"}, ["也門"] = {container = "亞洲", wp = "也門"}, ["葉門"] = {alias_of = "也門"}, -- Europe ["阿爾巴尼亞"] = {container = "歐洲", wp = "阿爾巴尼亞"}, ["安道爾"] = {container = "歐洲", wp = "安道爾"}, ["奧地利"] = {container = "歐洲", divs = {"states"}, wp = "奧地利"}, ["白俄羅斯"] = {container = "歐洲", divs = {"regions"}, wp = "白俄羅斯"}, ["比利時"] = {container = "歐洲", divs = {"regions", "provinces"}, wp = "比利時"}, ["波斯尼亞和黑塞哥維那"] = {container = "歐洲", wp = "波斯尼亞和黑塞哥維那"}, ["波士尼亞與赫塞哥維納"] = {alias_of = "波斯尼亞和黑塞哥維那"}, ["保加利亞"] = {container = "歐洲", wp = "保加利亞"}, ["克羅地亞"] = {container = "歐洲", wp = "克羅地亞"}, ["克羅埃西亞"] = {alias_of = "克羅地亞"}, ["塞浦路斯"] = {container = "亞洲", addl_parents = {"歐洲"}, wp = "塞浦路斯"}, ["賽普勒斯"] = {alias_of = "塞浦路斯"}, ["捷克"] = {container = "歐洲", wp = "捷克"}, ["丹麥"] = {container = "歐洲", wp = "丹麥"}, ["愛沙尼亞"] = {container = "歐洲", wp = "愛沙尼亞"}, ["芬蘭"] = {container = "歐洲", divs = {"regions"}, wp = "芬蘭"}, ["法國"] = {container = "歐洲", divs = { {type = "regions", cat_as = "metropolitan regions"}, "departments", "communes", }, wp = "法國"}, ["格魯吉亞"] = {container = {"歐洲", "亞洲"}, wp = "格魯吉亞"}, ["喬治亞"] = {alias_of = "格魯吉亞"}, ["德國"] = {container = "歐洲", divs = {"states"}, wp = "德國"}, ["希臘"] = {container = "歐洲", divs = {"regions"}, wp = "希臘"}, ["匈牙利"] = {container = "歐洲", wp = "匈牙利"}, ["冰島"] = {container = "歐洲", wp = "冰島"}, ["愛爾蘭"] = {container = "歐洲", divs = {"provinces", "counties"}, wp = "愛爾蘭"}, ["意大利"] = {container = "歐洲", divs = {"regions"}, wp = "意大利"}, ["義大利"] = {alias_of = "意大利"}, ["科索沃"] = {container = "歐洲", wp = "科索沃"}, ["拉脫維亞"] = {container = "歐洲", wp = "拉脫維亞"}, ["拉托維亞"] = {alias_of = "拉脫維亞"}, ["列支敦士登"] = {container = "歐洲", wp = "列支敦士登"}, ["列支敦斯登"] = {alias_of = "列支敦士登"}, ["立陶宛"] = {container = "歐洲", wp = "立陶宛"}, ["盧森堡"] = {container = "歐洲", wp = "盧森堡"}, ["北馬其頓"] = {container = "歐洲", wp = "北馬其頓"}, ["馬耳他"] = {container = "歐洲", wp = "馬耳他"}, ["馬爾他"] = {alias_of = "馬耳他"}, ["摩爾多瓦"] = {container = "歐洲", wp = "摩爾多瓦"}, ["摩納哥"] = {container = "歐洲", is_city = true, wp = "摩納哥"}, ["黑山"] = {container = "歐洲", wp = "黑山"}, ["蒙特內哥羅"] = {alias_of = "黑山"}, ["荷蘭"] = {container = "歐洲", divs = {"provinces"}, wp = "荷蘭"}, ["尼德蘭"] = {alias_of = "荷蘭"}, ["挪威"] = {container = "歐洲", wp = "挪威"}, ["波蘭"] = {container = "歐洲", divs = {"voivodeships"}, wp = "波蘭"}, ["葡萄牙"] = {container = "歐洲", divs = {"districts"}, wp = "葡萄牙"}, ["羅馬尼亞"] = {container = "歐洲", wp = "羅馬尼亞"}, ["聖馬力諾"] = {container = "歐洲", wp = "聖馬力諾"}, ["聖馬利諾"] = {alias_of = "聖馬力諾"}, ["塞爾維亞"] = {container = "歐洲", wp = "塞爾維亞"}, ["斯洛伐克"] = {container = "歐洲", wp = "斯洛伐克"}, ["斯洛文尼亞"] = {container = "歐洲", wp = "斯洛文尼亞"}, ["斯洛維尼亞"] = {alias_of = "斯洛文尼亞"}, ["西班牙"] = {container = "歐洲", divs = {"autonomous communities"}, wp = "西班牙"}, ["瑞典"] = {container = "歐洲", wp = "瑞典"}, ["瑞士"] = {container = "歐洲", divs = {"cantons"}, wp = "瑞士"}, ["烏克蘭"] = {container = "歐洲", divs = {"oblasts"}, wp = "烏克蘭"}, ["英國"] = {container = "歐洲", divs = { {type = "constituent countries", cat_as = "constituent countries"}, }, wp = "英國"}, -- North America ["加拿大"] = {container = "北美洲", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, }, wp = "加拿大"}, ["墨西哥"] = {container = "北美洲", divs = {"states"}, wp = "墨西哥"}, ["美國"] = {container = "北美洲", divs = {"states"}, wp = "美國"}, -- Central America ["伯利茲"] = {container = "中美洲", wp = "伯利茲"}, ["貝里斯"] = {alias_of = "伯利茲"}, ["哥斯達黎加"] = {container = "中美洲", wp = "哥斯達黎加"}, ["哥斯大黎加"] = {alias_of = "哥斯達黎加"}, ["薩爾瓦多"] = {container = "中美洲", wp = "薩爾瓦多"}, ["危地馬拉"] = {container = "中美洲", wp = "危地馬拉"}, ["瓜地馬拉"] = {alias_of = "危地馬拉"}, ["洪都拉斯"] = {container = "中美洲", wp = "洪都拉斯"}, ["宏都拉斯"] = {alias_of = "洪都拉斯"}, ["尼加拉瓜"] = {container = "中美洲", wp = "尼加拉瓜"}, ["巴拿馬"] = {container = "中美洲", wp = "巴拿馬"}, -- Caribbean ["安提瓜和巴布達"] = {container = "加勒比地區", wp = "安提瓜和巴布達"}, ["安地卡及巴布達"] = {alias_of = "安提瓜和巴布達"}, ["巴哈馬"] = {container = "加勒比地區", wp = "巴哈馬"}, ["巴巴多斯"] = {container = "加勒比地區", wp = "巴巴多斯"}, ["巴貝多"] = {alias_of = "巴巴多斯"}, ["古巴"] = {container = "加勒比地區", wp = "古巴"}, ["多米尼克"] = {container = "加勒比地區", wp = "多米尼克"}, ["多米尼加共和國"] = {container = "加勒比地區", wp = "多米尼加"}, ["多明尼加共和國"] = {alias_of = "多米尼加共和國"}, ["格林納達"] = {container = "加勒比地區", wp = "格林納達"}, ["格瑞那達"] = {alias_of = "格林納達"}, ["海地"] = {container = "加勒比地區", wp = "海地"}, ["牙買加"] = {container = "加勒比地區", wp = "牙買加"}, ["聖基茨和尼維斯"] = {container = "加勒比地區", wp = "聖基茨和尼維斯"}, ["聖克里斯多福及尼維斯"] = {alias_of = "聖基茨和尼維斯"}, ["聖盧西亞"] = {container = "加勒比地區", wp = "聖盧西亞"}, ["聖露西亞"] = {alias_of = "聖盧西亞"}, ["聖文森特和格林納丁斯"] = {container = "加勒比地區", wp = "聖文森特和格林納丁斯"}, ["聖文森及格瑞那丁"] = {alias_of = "聖文森特和格林納丁斯"}, ["特立尼達和多巴哥"] = {container = "加勒比地區", wp = "特立尼達和多巴哥"}, ["千里達及托巴哥"] = {alias_of = "特立尼達和多巴哥"}, -- South America ["阿根廷"] = {container = "南美洲", divs = {"provinces"}, wp = "阿根廷"}, ["玻利維亞"] = {container = "南美洲", wp = "玻利維亞"}, ["巴西"] = {container = "南美洲", divs = {"states"}, wp = "巴西"}, ["智利"] = {container = "南美洲", wp = "智利"}, ["哥倫比亞"] = {container = "南美洲", wp = "哥倫比亞"}, ["厄瓜多爾"] = {container = "南美洲", wp = "厄瓜多爾"}, ["厄瓜多"] = {alias_of = "厄瓜多爾"}, ["圭亞那"] = {container = "南美洲", wp = "圭亞那"}, ["蓋亞那"] = {alias_of = "圭亞那"}, ["巴拉圭"] = {container = "南美洲", wp = "巴拉圭"}, ["秘魯"] = {container = "南美洲", wp = "秘魯"}, ["蘇里南"] = {container = "南美洲", wp = "蘇里南"}, ["蘇利南"] = {alias_of = "蘇里南"}, ["烏拉圭"] = {container = "南美洲", wp = "烏拉圭"}, ["委內瑞拉"] = {container = "南美洲", wp = "委內瑞拉"}, -- Oceania ["澳大利亞"] = {container = "大洋洲", divs = { {type = "states", cat_as = "states and territories"}, {type = "territories", cat_as = "states and territories"}, }, wp = "澳大利亞"}, ["澳洲"] = {alias_of = "澳大利亞"}, ["斐濟"] = {container = "大洋洲", wp = "斐濟"}, ["基里巴斯"] = {container = "大洋洲", wp = "基里巴斯"}, ["吉里巴斯"] = {alias_of = "基里巴斯"}, ["馬紹爾群島"] = {container = "大洋洲", wp = "馬紹爾群島"}, ["密克羅尼西亞聯邦"] = {container = "大洋洲", wp = "密克羅尼西亞聯邦"}, ["瑙魯"] = {container = "大洋洲", wp = "瑙魯"}, ["諾魯"] = {alias_of = "瑙魯"}, ["新西蘭"] = {container = "大洋洲", wp = "新西蘭"}, ["紐西蘭"] = {alias_of = "新西蘭"}, ["帕勞"] = {container = "大洋洲", wp = "帕勞"}, ["帛琉"] = {alias_of = "帕勞"}, ["巴布亞新幾內亞"] = {container = "大洋洲", wp = "巴布亞新幾內亞"}, ["巴布亞紐幾內亞"] = {alias_of = "巴布亞新幾內亞"}, ["薩摩亞"] = {container = "大洋洲", wp = "薩摩亞"}, ["所羅門群島"] = {container = "大洋洲", wp = "所羅門群島"}, ["湯加"] = {container = "大洋洲", wp = "湯加"}, ["東加"] = {alias_of = "湯加"}, ["圖瓦盧"] = {container = "大洋洲", wp = "圖瓦盧"}, ["吐瓦魯"] = {alias_of = "圖瓦盧"}, ["瓦努阿圖"] = {container = "大洋洲", wp = "瓦努阿圖"}, ["萬那杜"] = {alias_of = "瓦努阿圖"}, } export.countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"+++", "國家"}, default_placetype = "country", default_no_container_cat = true, default_no_container_parent = true, default_no_auto_augment_container = true, placename_to_key = false, data = export.countries, } export.country_like_entities = { -- Special administrative regions of China ["香港"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, divs = {"districts"}, wp = "Hong Kong", }, ["澳門"] = { placetype = {"special administrative region", "region"}, container = "中國", addl_parents = {"亞洲"}, is_city = true, wp = "Macau", }, -- Western Sahara ["西撒哈拉"] = { placetype = {"territory", "country"}, container = "非洲", wp = "Western Sahara", }, -- Kosovo (disputed) ["科索沃(部分承認)"] = {alias_of = "科索沃"}, -- Palestinian territories ["巴勒斯坦"] = { placetype = {"country", "territory"}, container = "亞洲", wp = "State of Palestine", }, -- Key overseas territories ["波多黎各"] = { placetype = {"commonwealth", "territory"}, container = "美國", addl_parents = {"加勒比地區"}, wp = "Puerto Rico", }, ["關島"] = { placetype = {"territory"}, container = "美國", addl_parents = {"密克羅尼西亞"}, wp = "Guam", }, ["新喀里多尼亞"] = { placetype = {"territory"}, container = "法國", addl_parents = {"大洋洲"}, wp = "New Caledonia", }, ["法屬圭亞那"] = { placetype = {"territory"}, container = "法國", addl_parents = {"南美洲"}, wp = "French Guiana", }, ["留尼旺"] = { placetype = {"territory"}, container = "法國", addl_parents = {"非洲"}, wp = "Réunion", }, ["馬丁尼克"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Martinique", }, ["瓜德羅普"] = { placetype = {"territory"}, container = "法國", addl_parents = {"加勒比地區"}, wp = "Guadeloupe", }, ["格陵蘭"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"北美洲"}, wp = "Greenland", }, ["法羅群島"] = { placetype = {"territory"}, container = "丹麥", addl_parents = {"歐洲"}, wp = "Faroe Islands", }, } export.country_like_entities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "country"), default_placetype = "territory", placename_to_key = false, data = export.country_like_entities, } export.former_countries = { ["蘇聯"] = { placetype = {"country"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Soviet Union", }, ["南斯拉夫"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Yugoslavia", }, ["捷克斯洛伐克"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Czechoslovakia", }, ["東德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "East Germany", }, ["西德"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "West Germany", }, ["奧匈帝國"] = { placetype = {"empire"}, container = "歐洲", is_former_place = true, wp = "Austria-Hungary", }, ["鄂圖曼帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲"}, is_former_place = true, wp = "Ottoman Empire", }, ["奧斯曼帝國"] = {alias_of = "鄂圖曼帝國"}, ["羅馬帝國"] = { placetype = {"empire"}, container = {"歐洲", "亞洲", "非洲"}, is_former_place = true, wp = "Roman Empire", }, ["大英帝國"] = { placetype = {"empire"}, is_former_place = true, wp = "British Empire", }, ["普魯士"] = { placetype = {"country"}, container = "歐洲", is_former_place = true, wp = "Prussia", }, } export.former_countries_group = { canonicalize_key_container = canonicalize_continent_container, default_placetype = "country", default_is_former_place = true, placename_to_key = false, data = export.former_countries, } ----------------------------------------------------------------------------------- -- Subpolity tables -- ----------------------------------------------------------------------------------- export.australia_states_and_territories = { ["新南威爾斯"] = {wp = "New South Wales"}, ["維多利亞州"] = {wp = "Victoria (Australia)"}, ["昆士蘭"] = {wp = "Queensland"}, ["南澳大利亞"] = {wp = "South Australia"}, ["西澳大利亞"] = {wp = "Western Australia"}, ["塔斯馬尼亞"] = {wp = "Tasmania"}, ["澳大利亞首都領地"] = {placetype = "territory", wp = "Australian Capital Territory"}, ["北領地"] = {placetype = "territory", wp = "Northern Territory"}, } -- states and territories of Australia export.australia_group = { placename_to_key = false, default_container = "澳大利亞", default_placetype = "state", data = export.australia_states_and_territories, } export.austria_states = { ["維也納州"] = {wp = "Vienna (state)"}, ["下奧地利州"] = {wp = "Lower Austria"}, ["上奧地利州"] = {wp = "Upper Austria"}, ["施泰爾馬克州"] = {wp = "Styria"}, ["蒂羅爾州"] = {wp = "Tyrol (state)"}, ["克恩頓州"] = {wp = "Carinthia"}, ["薩爾茨堡州"] = {wp = "Salzburg (state)"}, ["福拉爾貝格州"] = {wp = "Vorarlberg"}, ["布根蘭州"] = {wp = "Burgenland"}, } -- states of Austria export.austria_group = { placename_to_key = false, default_container = "奧地利", default_placetype = "state", data = export.austria_states, } export.bangladesh_divisions = { ["巴里薩爾專區"] = {wp = "Barisal Division"}, ["吉大港專區"] = {wp = "Chittagong Division"}, ["達卡專區"] = {wp = "Dhaka Division"}, ["庫爾納專區"] = {wp = "Khulna Division"}, ["邁門辛專區"] = {wp = "Mymensingh Division"}, ["拉吉沙希專區"] = {wp = "Rajshahi Division"}, ["朗普爾專區"] = {wp = "Rangpur Division"}, ["錫爾赫特專區"] = {wp = "Sylhet Division"}, } -- divisions of Bangladesh export.bangladesh_group = { placename_to_key = false, default_container = "孟加拉國", default_placetype = "division", data = export.bangladesh_divisions, } export.brazil_states = { ["里約熱內盧州"] = {wp = "Rio de Janeiro (state)"}, ["里約熱內盧"] = {alias_of = "里約熱內盧州"}, ["聖保羅州"] = {wp = "São Paulo (state)"}, ["米納斯吉拉斯"] = {wp = "Minas Gerais"}, ["巴伊亞"] = {wp = "Bahia"}, ["亞馬遜州"] = {wp = "Amazonas (Brazilian state)"}, ["帕拉州"] = {wp = "Pará"}, ["伯南布哥州"] = {wp = "Pernambuco"}, ["南里奧格蘭德州"] = {wp = "Rio Grande do Sul"}, ["巴西聯邦區"] = {wp = "Federal District (Brazil)"}, ["塞阿拉州"] = {wp = "Ceará"}, ["巴拉那州"] = {wp = "Paraná (state)"}, ["戈亞斯州"] = {wp = "Goiás"}, ["聖埃斯皮里圖州"] = {wp = "Espírito Santo"}, ["馬拉尼昂州"] = {wp = "Maranhão"}, ["北里奧格蘭德州"] = {wp = "Rio Grande do Norte"}, ["聖卡塔琳娜州"] = {wp = "Santa Catarina (state)"}, ["阿拉戈亞斯州"] = {wp = "Alagoas"}, ["帕拉伊巴州"] = {wp = "Paraíba"}, ["皮奧伊州"] = {wp = "Piauí"}, ["阿克里州"] = {wp = "Acre (state)"}, ["阿馬帕州"] = {wp = "Amapá"}, ["馬托格羅索州"] = {wp = "Mato Grosso"}, ["南馬托格羅索州"] = {wp = "Mato Grosso do Sul"}, ["朗多尼亞州"] = {wp = "Rondônia"}, ["羅賴馬州"] = {wp = "Roraima"}, ["塞爾希培州"] = {wp = "Sergipe"}, ["托坎廷斯州"] = {wp = "Tocantins"}, } -- states of Brazil export.brazil_group = { placename_to_key = false, default_container = "巴西", default_placetype = "state", data = export.brazil_states, } -- provinces (a.k.a. oblasts) of Bulgaria export.bulgaria_provinces = { ["布拉戈耶夫格勒省"] = {wp = "Blagoevgrad Province"}, ["布爾加斯省"] = {wp = "Burgas Province"}, ["多布里奇省"] = {wp = "Dobrich Province"}, ["加布羅沃省"] = {wp = "Gabrovo Province"}, ["哈斯科沃省"] = {wp = "Haskovo Province"}, ["卡爾扎利省"] = {wp = "Kardzhali Province"}, ["屈斯滕迪爾省"] = {wp = "Kyustendil Province"}, ["洛維奇省"] = {wp = "Lovech Province"}, ["蒙塔納省"] = {wp = "Montana Province"}, ["帕扎爾吉克省"] = {wp = "Pazardzhik Province"}, ["佩爾尼克省"] = {wp = "Pernik Province"}, ["普萊文省"] = {wp = "Pleven Province"}, ["普羅夫迪夫省"] = {wp = "Plovdiv Province"}, ["拉茲格勒省"] = {wp = "Razgrad Province"}, ["魯塞省"] = {wp = "Ruse Province"}, ["舒門省"] = {wp = "Shumen Province"}, ["錫利斯特拉省"] = {wp = "Silistra Province"}, ["斯利文省"] = {wp = "Sliven Province"}, ["斯莫梁省"] = {wp = "Smolyan Province"}, ["索非亞市省"] = {wp = "Sofia City Province"}, ["索非亞省"] = {wp = "Sofia Province"}, ["斯塔拉扎戈拉省"] = {wp = "Stara Zagora Province"}, ["特爾戈維什泰省"] = {wp = "Targovishte Province"}, ["瓦爾納省"] = {wp = "Varna Province"}, ["大特爾諾沃省"] = {wp = "Veliko Tarnovo Province"}, ["維丁省"] = {wp = "Vidin Province"}, ["弗拉察省"] = {wp = "Vratsa Province"}, ["揚博爾省"] = {wp = "Yambol Province"}, } export.bulgaria_group = { placename_to_key = false, default_container = "保加利亞", divs = {"regions", "planning regions", "provinces", "municipalities", "settlements"}, default_placetype = "province", data = export.bulgaria_provinces, } export.canada_provinces_and_territories = { ["亞伯達"] = {wp = "Alberta"}, ["艾伯塔"] = {alias_of = "亞伯達"}, ["英屬哥倫比亞"] = {wp = "British Columbia"}, ["卑詩省"] = {alias_of = "英屬哥倫比亞"}, ["馬尼托巴"] = {wp = "Manitoba"}, ["新不倫瑞克"] = {wp = "New Brunswick"}, ["紐芬蘭與拉布拉多"] = {wp = "Newfoundland and Labrador"}, ["西北地區"] = {placetype = "territory", wp = "Northwest Territories"}, ["新斯科舍"] = {wp = "Nova Scotia"}, ["努納武特"] = {placetype = "territory", wp = "Nunavut"}, ["安大略"] = {divs = {"counties", "regional municipalities"}, wp = "Ontario"}, ["愛德華王子島"] = {wp = "Prince Edward Island"}, ["魁北克"] = {wp = "Quebec"}, ["薩斯喀徹溫"] = {wp = "Saskatchewan"}, ["育空"] = {placetype = "territory", wp = "Yukon"}, } export.canada_group = { placename_to_key = false, default_container = "加拿大", default_placetype = "province", data = export.canada_provinces_and_territories, } export.china_provinces_and_autonomous_regions = { -- Provinces ["安徽"] = {wp = "安徽省"}, ["福建"] = {wp = "福建省"}, ["甘肅"] = {wp = "甘肅省"}, ["廣東"] = {wp = "廣東省"}, ["貴州"] = {wp = "貴州省"}, ["海南"] = {wp = "海南省"}, ["河北"] = {wp = "河北省"}, ["黑龍江"] = {wp = "黑龍江省"}, ["河南"] = {wp = "河南省"}, ["湖北"] = {wp = "湖北省"}, ["湖南"] = {wp = "湖南省"}, ["江蘇"] = {wp = "江蘇省"}, ["江西"] = {wp = "江西省"}, ["吉林"] = {wp = "吉林省"}, ["遼寧"] = {wp = "遼寧省"}, ["青海"] = {wp = "青海省"}, ["陝西"] = {wp = "陝西省"}, ["山東"] = {wp = "山東省"}, ["山西"] = {wp = "山西省"}, ["四川"] = {wp = "四川省"}, ["雲南"] = {wp = "雲南省"}, ["浙江"] = {wp = "浙江省"}, -- Autonomous regions ["廣西"] = {placetype = "autonomous region", wp = "廣西壯族自治區"}, ["廣西壯族自治區"] = {alias_of = "廣西"}, ["內蒙古"] = {placetype = "autonomous region", wp = "內蒙古自治區"}, ["內蒙古自治區"] = {alias_of = "內蒙"}, ["寧夏"] = {placetype = "autonomous region", wp = "寧夏回族自治區"}, ["寧夏回族自治區"] = {alias_of = "寧夏"}, ["西藏"] = {placetype = "autonomous region", wp = "西藏自治區"}, ["西藏自治區"] = {alias_of = "西藏"}, ["新疆"] = {placetype = "autonomous region", wp = "新疆維吾爾自治區"}, ["新疆維吾爾自治區"] = {alias_of = "新疆"}, -- Direct-administered municipalities (treated as province-level for holonym purposes) ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "北京市"}, ["北京市"] = {alias_of = "北京"}, ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "上海市"}, ["上海市"] = {alias_of = "上海"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "天津市"}, ["天津市"] = {alias_of = "天津"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "重慶市"}, ["重慶市"] = {alias_of = "重慶"}, } export.china_group = { placename_to_key = false, default_container = "中國", default_placetype = "province", default_divs = { "prefecture-level cities", "districts", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_provinces_and_autonomous_regions, } export.china_prefecture_level_cities = { -- Guangdong ["廣州"] = {container = "廣東", wp = "Guangzhou"}, ["東莞"] = {container = "廣東", wp = "Dongguan"}, ["佛山"] = {container = "廣東", wp = "Foshan"}, ["惠州"] = {container = "廣東", wp = "Huizhou"}, ["江門"] = {container = "廣東", wp = "Jiangmen"}, ["深圳"] = {container = "廣東", wp = "Shenzhen"}, ["中山"] = {container = "廣東", wp = "Zhongshan"}, ["汕頭"] = {container = "廣東", wp = "Shantou"}, ["潮州"] = {container = "廣東", wp = "Chaozhou"}, ["揭陽"] = {container = "廣東", wp = "Jieyang"}, ["珠海"] = {container = "廣東", wp = "Zhuhai"}, ["湛江"] = {container = "廣東", wp = "Zhanjiang"}, ["茂名"] = {container = "廣東", wp = "Maoming"}, ["清遠"] = {container = "廣東", wp = "Qingyuan"}, ["肇慶"] = {container = "廣東", wp = "Zhaoqing"}, -- Direct-administered municipalities (also in china_provinces; duplicated here for division categorisation) ["上海"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Shanghai"}, ["北京"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Beijing"}, ["重慶"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Chongqing"}, ["天津"] = {placetype = {"direct-administered municipality", "municipality", "city"}, wp = "Tianjin"}, -- Jiangsu ["常熟"] = {container = "江蘇", wp = "Changshu"}, ["常州"] = {container = "江蘇", wp = "Changzhou"}, ["蘇州"] = {container = "江蘇", wp = "Suzhou"}, ["無錫"] = {container = "江蘇", wp = "Wuxi"}, ["南京"] = {container = "江蘇", wp = "Nanjing"}, ["南通"] = {container = "江蘇", wp = "Nantong"}, ["江陰"] = {container = "江蘇", wp = "Jiangyin"}, ["張家港"] = {container = "江蘇", wp = "Zhangjiagang"}, ["徐州"] = {container = "江蘇", wp = "Xuzhou"}, ["揚州"] = {container = "江蘇", wp = "Yangzhou"}, ["鹽城"] = {container = "江蘇", wp = "Yancheng"}, ["淮安"] = {container = "江蘇", wp = "Huai'an"}, ["連雲港"] = {container = "江蘇", wp = "Lianyungang"}, ["宿遷"] = {container = "江蘇", wp = "Suqian"}, ["鎮江"] = {container = "江蘇", wp = "Zhenjiang"}, ["崑山"] = {container = "江蘇", wp = "Kunshan"}, ["泰州"] = {container = "江蘇", wp = "Taizhou, Jiangsu"}, -- distinct from 台州 (Zhejiang) -- Zhejiang ["杭州"] = {container = "浙江", wp = "Hangzhou"}, ["紹興"] = {container = "浙江", wp = "Shaoxing"}, ["寧波"] = {container = "浙江", wp = "Ningbo"}, ["慈溪"] = {container = "浙江", wp = "Cixi"}, ["余姚"] = {container = "浙江", wp = "Yuyao"}, ["溫州"] = {container = "浙江", wp = "Wenzhou"}, ["瑞安"] = {placetype = "county-level city", container = {key = "溫州", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Rui'an"}, ["台州"] = {container = "浙江", wp = "Taizhou, Zhejiang"}, ["義烏"] = {container = "浙江", wp = "Yiwu"}, ["嘉興"] = {container = "浙江", wp = "Jiaxing"}, ["金華"] = {container = "浙江", wp = "Jinhua"}, ["湖州"] = {container = "浙江", wp = "Huzhou"}, ["永康"] = {placetype = "county-level city", container = {key = "金華", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Yongkang, Zhejiang"}, -- Fujian ["廈門"] = {container = "福建", wp = "Xiamen"}, ["晉江"] = {container = "福建", wp = "Jinjiang"}, ["泉州"] = {container = "福建", wp = "Quanzhou"}, ["莆田"] = {container = "福建", wp = "Putian"}, ["福州"] = {container = "福建", wp = "Fuzhou"}, -- Shandong ["青島"] = {container = "山東", wp = "Qingdao"}, ["臨沂"] = {container = "山東", wp = "Linyi"}, ["淄博"] = {container = "山東", wp = "Zibo"}, ["濟南"] = {container = "山東", wp = "Jinan"}, ["濰坊"] = {container = "山東", wp = "Weifang"}, ["煙台"] = {container = "山東", wp = "Yantai"}, ["濟寧"] = {container = "山東", wp = "Jining"}, ["泰安"] = {container = "山東", wp = "Tai'an"}, ["威海"] = {container = "山東", wp = "Weihai"}, ["菏澤"] = {container = "山東", wp = "Heze"}, ["德州"] = {container = "山東", wp = "Dezhou"}, ["日照"] = {container = "山東", wp = "Rizhao"}, ["聊城"] = {container = "山東", wp = "Liaocheng"}, ["棗莊"] = {container = "山東", wp = "Zaozhuang"}, ["滕州"] = {placetype = "county-level city", container = {key = "棗莊", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Tengzhou"}, ["東營"] = {container = "山東", wp = "Dongying"}, -- Henan ["鄭州"] = {container = "河南", wp = "Zhengzhou"}, ["洛陽"] = {container = "河南", wp = "Luoyang"}, ["新鄉"] = {container = "河南", wp = "Xinxiang"}, ["信陽"] = {container = "河南", wp = "Xinyang"}, ["安陽"] = {container = "河南", wp = "Anyang"}, ["開封"] = {container = "河南", wp = "Kaifeng"}, ["許昌"] = {container = "河南", wp = "Xuchang"}, ["濮陽"] = {container = "河南", wp = "Puyang"}, ["商丘"] = {container = "河南", wp = "Shangqiu"}, ["南陽"] = {container = "河南", wp = "Nanyang, Henan"}, ["焦作"] = {container = "河南", wp = "Jiaozuo"}, ["平頂山"] = {container = "河南", wp = "Pingdingshan"}, ["周口"] = {container = "河南", wp = "Zhoukou"}, ["駐馬店"] = {container = "河南", wp = "Zhumadian"}, -- Hubei ["武漢"] = {container = "湖北", wp = "Wuhan"}, ["襄陽"] = {container = "湖北", wp = "Xiangyang"}, ["宜昌"] = {container = "湖北", wp = "Yichang"}, ["鄂州"] = {container = "湖北", wp = "Ezhou"}, ["十堰"] = {container = "湖北", wp = "Shiyan"}, -- Hunan ["長沙"] = {container = "湖南", wp = "Changsha"}, ["株洲"] = {container = "湖南", wp = "Zhuzhou"}, ["衡陽"] = {container = "湖南", wp = "Hengyang"}, ["邵陽"] = {container = "湖南", wp = "Shaoyang"}, ["岳陽"] = {container = "湖南", wp = "Yueyang"}, ["常德"] = {container = "湖南", wp = "Changde"}, ["瀏陽"] = {placetype = "county-level city", container = {key = "長沙", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Liuyang"}, -- Sichuan ["成都"] = {container = "四川", wp = "Chengdu"}, ["綿陽"] = {container = "四川", wp = "Mianyang"}, ["南充"] = {container = "四川", wp = "Nanchong"}, ["達州"] = {container = "四川", wp = "Dazhou"}, ["瀘州"] = {container = "四川", wp = "Luzhou"}, ["宜賓"] = {container = "四川", wp = "Yibin"}, -- Yunnan ["昆明"] = {container = "雲南", wp = "Kunming"}, ["曲靖"] = {container = "雲南", wp = "Qujing"}, -- Guizhou ["貴陽"] = {container = "貴州", wp = "Guiyang"}, ["遵義"] = {container = "貴州", wp = "Zunyi"}, ["六盤水"] = {container = "貴州", wp = "Liupanshui"}, ["畢節"] = {container = "貴州", wp = "Bijie"}, -- Shaanxi ["西安"] = {container = "陝西", wp = "Xi'an"}, ["咸陽"] = {container = "陝西", wp = "Xianyang"}, ["寶雞"] = {container = "陝西", wp = "Baoji"}, -- Heilongjiang ["哈爾濱"] = {container = "黑龍江", wp = "Harbin"}, ["大慶"] = {container = "黑龍江", wp = "Daqing"}, ["齊齊哈爾"] = {container = "黑龍江", wp = "Qiqihar"}, -- Liaoning ["瀋陽"] = {container = "遼寧", wp = "Shenyang"}, ["撫順"] = {container = "遼寧", wp = "Fushun"}, ["大連"] = {container = "遼寧", wp = "Dalian"}, ["鞍山"] = {container = "遼寧", wp = "Anshan"}, ["錦州"] = {container = "遼寧", wp = "Jinzhou"}, ["葫蘆島"] = {container = "遼寧", wp = "Huludao"}, ["盤錦"] = {container = "遼寧", wp = "Panjin"}, -- Jilin ["長春"] = {container = "吉林", wp = "Changchun"}, ["吉林市"] = {container = "吉林", wp = "Jilin City"}, -- distinct from 吉林 (province) -- Anhui ["合肥"] = {container = "安徽", wp = "Hefei"}, ["蚌埠"] = {container = "安徽", wp = "Bengbu"}, ["淮南"] = {container = "安徽", wp = "Huainan"}, ["蕪湖"] = {container = "安徽", wp = "Wuhu"}, ["淮北"] = {container = "安徽", wp = "Huaibei"}, ["滁州"] = {container = "安徽", wp = "Chuzhou"}, ["六安"] = {container = "安徽", wp = "Lu'an"}, ["阜陽"] = {container = "安徽", wp = "Fuyang, Anhui"}, ["宿州"] = {container = "安徽", wp = "Suzhou, Anhui"}, -- distinct from 蘇州 (Jiangsu) -- Hebei ["石家莊"] = {container = "河北", wp = "Shijiazhuang"}, ["邯鄲"] = {container = "河北", wp = "Handan"}, ["唐山"] = {container = "河北", wp = "Tangshan"}, ["秦皇島"] = {container = "河北", wp = "Qinhuangdao"}, ["邢台"] = {container = "河北", wp = "Xingtai"}, ["保定"] = {container = "河北", wp = "Baoding"}, ["張家口"] = {container = "河北", wp = "Zhangjiakou"}, ["衡水"] = {container = "河北", wp = "Hengshui"}, ["滄州"] = {container = "河北", wp = "Cangzhou"}, -- Shanxi ["太原"] = {container = "山西", wp = "Taiyuan"}, ["大同"] = {container = "山西", wp = "Datong"}, ["長治"] = {container = "山西", wp = "Changzhi"}, ["臨汾"] = {container = "山西", wp = "Linfen"}, -- Jiangxi ["南昌"] = {container = "江西", wp = "Nanchang"}, ["贛州"] = {container = "江西", wp = "Ganzhou"}, ["上饒"] = {container = "江西", wp = "Shangrao"}, ["九江"] = {container = "江西", wp = "Jiujiang"}, -- Guangxi (autonomous region) ["南寧"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Nanning"}, ["柳州"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Liuzhou"}, ["桂林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guilin"}, ["玉林"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Yulin, Guangxi"}, ["北海"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Beihai"}, ["貴港"] = {container = {key = "廣西", placetype = "autonomous region"}, wp = "Guigang"}, -- Inner Mongolia (autonomous region) ["呼和浩特"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Hohhot"}, ["包頭"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Baotou"}, ["赤峰"] = {container = {key = "內蒙古", placetype = "autonomous region"}, wp = "Chifeng"}, -- Xinjiang (autonomous region) ["烏魯木齊"] = {container = {key = "新疆", placetype = "autonomous region"}, wp = "Ürümqi"}, -- Ningxia (autonomous region) ["銀川"] = {container = {key = "寧夏", placetype = "autonomous region"}, wp = "Yinchuan"}, -- Hainan ["海口"] = {container = "海南", wp = "Haikou"}, -- Qinghai ["西寧"] = {container = "青海", wp = "Xining"}, -- Gansu ["蘭州"] = {container = "甘肅", wp = "Lanzhou"}, -- Chongqing subdivision (district 142 miles from Chongqing proper) ["萬州"] = {placetype = "district", container = {key = "重慶", placetype = "direct-administered municipality"}, divs = {"subdistricts", "townships"}, wp = "Wanzhou"}, -- County within Suqian prefecture-level city ["沭陽"] = {placetype = "county", container = {key = "宿遷", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "Shuyang County"}, } export.china_prefecture_level_cities_group = { placename_to_key = false, default_placetype = {"prefecture-level city", "city"}, default_divs = { "districts", "subdistricts", "townships", {type = "counties", cat_as = "縣和縣級市"}, {type = "county-level cities", cat_as = "縣和縣級市"}, }, data = export.china_prefecture_level_cities, } export.finland_regions = { ["拉普蘭省"] = {wp = "Lapland (Finland)"}, ["北奧斯特博滕省"] = {wp = "North Ostrobothnia"}, ["卡亞尼省"] = {wp = "Kainuu"}, ["北卡累利亞省"] = {wp = "North Karelia"}, ["北薩沃省"] = {wp = "Northern Savonia"}, ["南薩沃省"] = {wp = "Southern Savonia"}, ["南卡累利亞省"] = {wp = "South Karelia"}, ["中芬蘭省"] = {wp = "Central Finland"}, ["南奧斯特博滕省"] = {wp = "South Ostrobothnia"}, ["奧斯特博滕省"] = {wp = "Ostrobothnia (region)"}, ["中奧斯特博滕省"] = {wp = "Central Ostrobothnia"}, ["皮爾卡馬省"] = {wp = "Pirkanmaa"}, ["薩塔昆塔省"] = {wp = "Satakunta"}, ["派亞特哈米省"] = {wp = "Päijät-Häme"}, ["坎塔哈米省"] = {wp = "Tavastia Proper"}, ["屈米河谷省"] = {wp = "Kymenlaakso"}, ["烏西馬省"] = {wp = "Uusimaa"}, ["西南芬蘭省"] = {wp = "Southwest Finland"}, ["奧蘭群島"] = {wp = "Åland", placetype = {"autonomous region", "region"}}, } export.finland_group = { placename_to_key = false, default_container = "芬蘭", default_placetype = "region", data = export.finland_regions, } export.france_administrative_regions = { ["奧弗涅-隆河-阿爾卑斯大區"] = {wp = "Auvergne-Rhône-Alpes"}, ["勃艮第-弗朗什-孔泰大區"] = {wp = "Bourgogne-Franche-Comté"}, ["布列塔尼大區"] = {wp = "Brittany (administrative region)"}, ["中央-羅亞爾河谷大區"] = {wp = "Centre-Val de Loire"}, ["科西嘉大區"] = {wp = "Corsica"}, ["大東部大區"] = {wp = "Grand Est"}, ["上法蘭西大區"] = {wp = "Hauts-de-France"}, ["法蘭西島大區"] = {wp = "Île-de-France"}, ["諾曼底大區"] = {wp = "Normandy"}, ["新阿基坦大區"] = {wp = "Nouvelle-Aquitaine"}, ["奧克西塔尼大區"] = {wp = "Occitanie"}, ["盧瓦爾河地區大區"] = {wp = "Pays de la Loire"}, ["普羅旺斯-阿爾卑斯-蔚藍海岸大區"] = {wp = "Provence-Alpes-Côte d'Azur"}, -- Old region names (pre-2016) as aliases ["北部-加萊海峽大區"] = {wp = "Nord-Pas-de-Calais"}, ["加來海峽大區"] = {alias_of = "北部-加萊海峽大區"}, } export.france_group = { placename_to_key = false, default_container = "法國", default_placetype = "region", data = export.france_administrative_regions, } -- France departments (abbreviated list) export.france_departments = { ["北部省"] = {wp = "Nord (department)", container = "上法蘭西大區"}, ["加來海峽省"] = {wp = "Pas-de-Calais", container = "上法蘭西大區"}, ["巴黎市"] = {wp = "Paris", container = "法蘭西島大區"}, ["上塞納省"] = {wp = "Hauts-de-Seine", container = "法蘭西島大區"}, } export.france_departments_group = { placename_to_key = false, default_container = "法國", default_placetype = "department", data = export.france_departments, } export.germany_states = { ["巴登-符騰堡"] = {wp = "Baden-Württemberg"}, ["巴伐利亞"] = {wp = "Bavaria"}, ["柏林"] = {wp = "Berlin"}, ["布蘭登堡"] = {wp = "Brandenburg"}, ["不來梅"] = {wp = "Bremen"}, ["漢堡"] = {wp = "Hamburg"}, ["黑森"] = {wp = "Hesse"}, ["梅克倫堡-前波美拉尼亞"] = {wp = "Mecklenburg-Vorpommern"}, ["下薩克森"] = {wp = "Lower Saxony"}, ["北萊茵-威斯特法倫"] = {wp = "North Rhine-Westphalia"}, ["萊茵蘭-普法爾茨"] = {wp = "Rhineland-Palatinate"}, ["薩爾"] = {wp = "Saarland"}, ["薩克森"] = {wp = "Saxony"}, ["薩克森-安哈爾特"] = {wp = "Saxony-Anhalt"}, ["石勒蘇益格-荷爾斯泰因"] = {wp = "Schleswig-Holstein"}, ["圖林根"] = {wp = "Thuringia"}, } export.germany_group = { placename_to_key = false, default_container = "德國", default_placetype = "state", data = export.germany_states, } export.greece_regions = { ["阿提卡大區"] = {wp = "Attica (region)"}, ["中希臘大區"] = {wp = "Central Greece (administrative region)"}, ["中馬其頓大區"] = {wp = "Central Macedonia"}, ["克里特大區"] = {wp = "Crete"}, ["東馬其頓和色雷斯大區"] = {wp = "Eastern Macedonia and Thrace"}, ["伊庇魯斯大區"] = {wp = "Epirus (region)"}, ["愛奧尼亞群島大區"] = {wp = "Ionian Islands (region)"}, ["北愛琴大區"] = {wp = "North Aegean"}, ["伯羅奔尼撒大區"] = {wp = "Peloponnese (region)"}, ["南愛琴大區"] = {wp = "South Aegean"}, ["塞薩利大區"] = {wp = "Thessaly"}, ["西希臘大區"] = {wp = "Western Greece"}, ["西馬其頓大區"] = {wp = "Western Macedonia"}, ["阿托斯山"] = {wp = "Monastic community of Mount Athos", placetype = {"autonomous region", "region"}}, } export.greece_group = { placename_to_key = false, default_container = "希臘", default_placetype = "region", data = export.greece_regions, } export.india_states_and_union_territories = { ["安達曼-尼科巴群島"] = {placetype = "union territory", wp = "Andaman and Nicobar Islands"}, ["安得拉邦"] = {wp = "Andhra Pradesh"}, ["阿魯納恰爾邦"] = {wp = "Arunachal Pradesh"}, ["阿薩姆"] = {wp = "Assam"}, ["比哈爾邦"] = {wp = "Bihar"}, ["昌迪加爾"] = {placetype = "union territory", wp = "Chandigarh"}, ["恰蒂斯加爾邦"] = {wp = "Chhattisgarh"}, ["達德拉-納加爾哈維利和達曼-第烏"] = {placetype = "union territory", wp = "Dadra and Nagar Haveli and Daman and Diu"}, ["德里"] = {placetype = "union territory", wp = "Delhi"}, ["果阿"] = {wp = "Goa"}, ["古吉拉特邦"] = {wp = "Gujarat"}, ["哈里亞納邦"] = {wp = "Haryana"}, ["喜馬偕爾邦"] = {wp = "Himachal Pradesh"}, ["查謨和克什米爾"] = {placetype = "union territory", wp = "Jammu and Kashmir (union territory)"}, ["賈坎德邦"] = {wp = "Jharkhand"}, ["卡納塔克邦"] = {wp = "Karnataka"}, ["喀拉拉邦"] = {wp = "Kerala"}, ["拉達克"] = {placetype = "union territory", wp = "Ladakh"}, ["拉克沙群島"] = {placetype = "union territory", wp = "Lakshadweep"}, ["中央邦"] = {wp = "Madhya Pradesh"}, ["馬哈拉施特拉邦"] = {wp = "Maharashtra"}, ["曼尼普爾邦"] = {wp = "Manipur"}, ["梅加拉亞邦"] = {wp = "Meghalaya"}, ["米佐拉姆邦"] = {wp = "Mizoram"}, ["那加蘭邦"] = {wp = "Nagaland"}, ["奧里薩邦"] = {wp = "Odisha"}, ["本地治里"] = {placetype = "union territory", wp = "Puducherry"}, ["旁遮普邦"] = {wp = "Punjab, India"}, ["拉賈斯坦邦"] = {wp = "Rajasthan"}, ["錫金"] = {wp = "Sikkim"}, ["泰米爾納德邦"] = {wp = "Tamil Nadu"}, ["特倫甘納邦"] = {wp = "Telangana"}, ["特里普拉邦"] = {wp = "Tripura"}, ["北方邦"] = {wp = "Uttar Pradesh"}, ["北阿坎德邦"] = {wp = "Uttarakhand"}, ["西孟加拉邦"] = {wp = "West Bengal"}, } export.india_group = { placename_to_key = false, default_container = "印度", default_placetype = "state", default_divs = {"districts"}, data = export.india_states_and_union_territories, } export.indonesia_provinces = { ["亞齊省"] = {wp = "Aceh"}, ["峇里省"] = {wp = "Bali"}, ["邦加勿里洞省"] = {wp = "Bangka Belitung Islands"}, ["萬丹省"] = {wp = "Banten"}, ["明古魯省"] = {wp = "Bengkulu"}, ["中爪哇省"] = {wp = "Central Java"}, ["中加里曼丹省"] = {wp = "Central Kalimantan"}, ["中巴布亞省"] = {wp = "Central Papua"}, ["中蘇拉威西省"] = {wp = "Central Sulawesi"}, ["東爪哇省"] = {wp = "East Java"}, ["東加里曼丹省"] = {wp = "East Kalimantan"}, ["東努沙登加拉省"] = {wp = "East Nusa Tenggara"}, ["哥倫打洛省"] = {wp = "Gorontalo"}, ["巴布亞高地省"] = {wp = "Highland Papua"}, ["雅加達首都特區"] = {wp = "Jakarta"}, ["占碑省"] = {wp = "Jambi"}, ["楠榜省"] = {wp = "Lampung"}, ["馬魯古省"] = {wp = "Maluku"}, ["北加里曼丹省"] = {wp = "North Kalimantan"}, ["北馬魯古省"] = {wp = "North Maluku"}, ["北蘇拉威西省"] = {wp = "North Sulawesi"}, ["北巴布亞省"] = {wp = "North Papua"}, ["北蘇門答臘省"] = {wp = "North Sumatra"}, ["巴布亞省"] = {wp = "Papua (province)"}, ["廖內省"] = {wp = "Riau"}, ["廖內群島省"] = {wp = "Riau Islands"}, ["東南蘇拉威西省"] = {wp = "Southeast Sulawesi"}, ["南加里曼丹省"] = {wp = "South Kalimantan"}, ["南巴布亞省"] = {wp = "South Papua"}, ["南蘇拉威西省"] = {wp = "South Sulawesi"}, ["南蘇門答臘省"] = {wp = "South Sumatra"}, ["西南巴布亞省"] = {wp = "Southwest Papua"}, ["西爪哇省"] = {wp = "West Java"}, ["西加里曼丹省"] = {wp = "West Kalimantan"}, ["西努沙登加拉省"] = {wp = "West Nusa Tenggara"}, ["西巴布亞省"] = {wp = "West Papua (province)"}, ["西蘇拉威西省"] = {wp = "West Sulawesi"}, ["西蘇門答臘省"] = {wp = "West Sumatra"}, ["日惹特區"] = {wp = "Special Region of Yogyakarta"}, } export.indonesia_group = { placename_to_key = false, default_container = "印度尼西亞", default_placetype = "province", data = export.indonesia_provinces, } export.iran_provinces = { ["阿爾博爾茲省"] = {wp = "Alborz Province"}, ["阿爾達比勒省"] = {wp = "Ardabil Province"}, ["布什爾省"] = {wp = "Bushehr Province"}, ["恰哈爾馬哈勒-巴赫蒂亞里省"] = {wp = "Chaharmahal and Bakhtiari Province"}, ["東阿塞拜疆省"] = {wp = "East Azerbaijan Province"}, ["法爾斯省"] = {wp = "Fars Province"}, ["帕爾斯省"] = {alias_of = "法爾斯省"}, ["吉蘭省"] = {wp = "Gilan Province"}, ["戈勒斯坦省"] = {wp = "Golestan Province"}, ["哈馬丹省"] = {wp = "Hamadan Province"}, ["霍爾木茲甘省"] = {wp = "Hormozgan Province"}, ["伊拉姆省"] = {wp = "Ilam Province"}, ["伊斯法罕省"] = {wp = "Isfahan Province"}, ["克爾曼省"] = {wp = "Kerman Province"}, ["克爾曼沙赫省"] = {wp = "Kermanshah Province"}, ["胡齊斯坦省"] = {wp = "Khuzestan Province"}, ["科吉盧耶-博亞赫邁德省"] = {wp = "Kohgiluyeh and Boyer-Ahmad Province"}, ["庫爾德斯坦省"] = {wp = "Kurdistan Province"}, ["洛雷斯坦省"] = {wp = "Lorestan Province"}, ["馬爾卡齊省"] = {wp = "Markazi Province"}, ["馬贊達蘭省"] = {wp = "Mazandaran Province"}, ["北呼羅珊省"] = {wp = "North Khorasan Province"}, ["加茲溫省"] = {wp = "Qazvin Province"}, ["庫姆省"] = {wp = "Qom Province"}, ["拉扎維呼羅珊省"] = {wp = "Razavi Khorasan Province"}, ["森南省"] = {wp = "Semnan Province"}, ["錫斯坦-俾路支斯坦省"] = {wp = "Sistan and Baluchestan Province"}, ["南呼羅珊省"] = {wp = "South Khorasan Province"}, ["德黑蘭省"] = {wp = "Tehran Province"}, ["西阿塞拜疆省"] = {wp = "West Azerbaijan Province"}, ["亞茲德省"] = {wp = "Yazd Province"}, ["贊詹省"] = {wp = "Zanjan Province"}, } export.iran_group = { placename_to_key = false, default_container = "伊朗", default_placetype = "province", data = export.iran_provinces, } export.ireland_counties = { ["卡洛郡"] = {wp = "County Carlow"}, ["卡文郡"] = {wp = "County Cavan"}, ["克萊爾郡"] = {wp = "County Clare"}, ["科克郡"] = {wp = "County Cork"}, ["多尼戈爾郡"] = {wp = "County Donegal"}, ["都柏林郡"] = {wp = "County Dublin"}, ["戈爾韋郡"] = {wp = "County Galway"}, ["克里郡"] = {wp = "County Kerry"}, ["基爾代爾郡"] = {wp = "County Kildare"}, ["基爾肯尼郡"] = {wp = "County Kilkenny"}, ["萊什郡"] = {wp = "County Laois"}, ["利特里姆郡"] = {wp = "County Leitrim"}, ["利默里克郡"] = {wp = "County Limerick"}, ["朗福德郡"] = {wp = "County Longford"}, ["勞斯郡"] = {wp = "County Louth"}, ["梅奧郡"] = {wp = "County Mayo"}, ["米斯郡"] = {wp = "County Meath"}, ["莫納亨郡"] = {wp = "County Monaghan"}, ["奧法利郡"] = {wp = "County Offaly"}, ["羅斯康芒郡"] = {wp = "County Roscommon"}, ["斯萊戈郡"] = {wp = "County Sligo"}, ["蒂珀雷里郡"] = {wp = "County Tipperary"}, ["沃特福德郡"] = {wp = "County Waterford"}, ["西米斯郡"] = {wp = "County Westmeath"}, ["韋克斯福德郡"] = {wp = "County Wexford"}, ["威克洛郡"] = {wp = "County Wicklow"}, } -- 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 = { placename_to_key = false, default_container = "愛爾蘭", default_placetype = "county", data = export.ireland_counties, } export.italy_administrative_regions = { ["阿布魯佐"] = {wp = "Abruzzo"}, ["巴西利卡塔"] = {wp = "Basilicata"}, ["卡拉布里亞"] = {wp = "Calabria"}, ["坎帕尼亞"] = {wp = "Campania"}, ["艾米利亞-羅馬涅"] = {wp = "Emilia-Romagna"}, ["弗留利-威尼斯朱利亞"] = {wp = "Friuli-Venezia Giulia"}, ["拉齊奧"] = {wp = "Lazio"}, ["利古里亞"] = {wp = "Liguria"}, ["倫巴第"] = {wp = "Lombardy"}, ["倫巴底"] = {alias_of = "倫巴第"}, ["馬爾凱"] = {wp = "Marche"}, ["莫利塞"] = {wp = "Molise"}, ["皮埃蒙特"] = {wp = "Piedmont"}, ["普利亞"] = {wp = "Apulia"}, ["阿普利亞"] = {alias_of = "普利亞"}, ["薩丁尼亞"] = {wp = "Sardinia"}, ["西西里"] = {wp = "Sicily"}, ["托斯卡納"] = {wp = "Tuscany"}, ["特倫蒂諾-上阿迪傑"] = {wp = "Trentino-Alto Adige/Südtirol"}, ["翁布里亞"] = {wp = "Umbria"}, ["奧斯塔谷"] = {wp = "Aosta Valley"}, ["威尼托"] = {wp = "Veneto"}, } export.italy_group = { placename_to_key = false, default_container = "意大利", default_placetype = "region", data = export.italy_administrative_regions, } -- table of Japanese prefectures; interpolated into the main 'places' table, but also needed separately export.japan_prefectures = { ["青森縣"] = {wp = "青森縣"}, ["岩手縣"] = {wp = "岩手縣"}, ["宮城縣"] = {wp = "宮城縣"}, ["秋田縣"] = {wp = "秋田縣"}, ["山形縣"] = {wp = "山形縣"}, ["福島縣"] = {wp = "福島縣"}, ["茨城縣"] = {wp = "茨城縣"}, ["栃木縣"] = {wp = "栃木縣"}, ["群馬縣"] = {wp = "群馬縣"}, ["埼玉縣"] = {wp = "埼玉縣"}, ["千葉縣"] = {wp = "千葉縣"}, ["神奈川縣"] = {wp = "神奈川縣"}, ["新潟縣"] = {wp = "新潟縣"}, ["富山縣"] = {wp = "富山縣"}, ["石川縣"] = {wp = "石川縣"}, ["福井縣"] = {wp = "福井縣"}, ["山梨縣"] = {wp = "山梨縣"}, ["長野縣"] = {wp = "長野縣"}, ["岐阜縣"] = {wp = "岐阜縣"}, ["靜岡縣"] = {wp = "靜岡縣"}, ["愛知縣"] = {wp = "愛知縣"}, ["三重縣"] = {wp = "三重縣"}, ["滋賀縣"] = {wp = "滋賀縣"}, ["兵庫縣"] = {wp = "兵庫縣"}, ["奈良縣"] = {wp = "奈良縣"}, ["和歌山縣"] = {wp = "和歌山縣"}, ["鳥取縣"] = {wp = "鳥取縣"}, ["島根縣"] = {wp = "島根縣"}, ["岡山縣"] = {wp = "岡山縣"}, ["廣島縣"] = {wp = "廣島縣"}, ["山口縣"] = {wp = "山口縣"}, ["德島縣"] = {wp = "德島縣"}, ["香川縣"] = {wp = "香川縣"}, ["愛媛縣"] = {wp = "愛媛縣"}, ["高知縣"] = {wp = "高知縣"}, ["福岡縣"] = {wp = "福岡縣"}, ["佐賀縣"] = {wp = "佐賀縣"}, ["長崎縣"] = {wp = "長崎縣"}, ["熊本縣"] = {wp = "熊本縣"}, ["大分縣"] = {wp = "大分縣"}, ["宮崎縣"] = {wp = "宮崎縣"}, ["鹿兒島縣"] = {wp = "鹿兒島縣"}, ["沖繩縣"] = {wp = "沖繩縣"}, ["北海道"] = {divs = {"subprefectures"}, wp = "北海道"}, ["京都府"] = {wp = "京都府"}, ["大阪府"] = {wp = "大阪府"}, } local function japan_placename_to_key(placename) local japan_placename_to_key_map = { -- ["東京"] = "東京都", ["大阪"] = "大阪府", ["京都"] = "京都府", } if placename:find("[都道府縣]$") then return placename -- 已帶後綴,不轉換 end return japan_placename_to_key_map[placename] or (placename .. "縣") end -- prefectures of Japan export.japan_group = { key_to_placename = make_key_to_placename(nil, "[都道府縣]$"), placename_to_key = japan_placename_to_key, default_container = "日本", default_placetype = "prefecture", default_divs = {"cities", "districts"}, data = export.japan_prefectures, } export.laos_provinces = { ["阿塔坡省"] = {wp = "Attapeu Province"}, ["博膠省"] = {wp = "Bokeo Province"}, ["波里坎賽省"] = {wp = "Bolikhamxai Province"}, ["占巴塞省"] = {wp = "Champasak Province"}, ["華潘省"] = {wp = "Houaphanh Province"}, ["甘蒙省"] = {wp = "Khammouane Province"}, ["南塔省"] = {wp = "Luang Namtha Province"}, ["琅勃拉邦省"] = {wp = "Luang Prabang Province"}, ["烏多姆賽省"] = {wp = "Oudomxay Province"}, ["豐沙里省"] = {wp = "Phongsaly Province"}, ["沙拉灣省"] = {wp = "Salavan Province"}, ["沙灣拿吉省"] = {wp = "Savannakhet Province"}, ["萬象省"] = {wp = "Vientiane Province"}, ["萬象直轄市"] = {placetype = "prefecture", wp = "Vientiane Prefecture"}, ["賽亞武里省"] = {wp = "Sainyabuli Province"}, ["塞公省"] = {wp = "Sekong Province"}, ["賽頌本省"] = {wp = "Xaisomboun Province"}, ["川壙省"] = {wp = "Xiangkhouang Province"}, } export.laos_group = { placename_to_key = false, default_container = "老撾", default_placetype = "province", data = export.laos_provinces, } export.lebanon_governorates = { ["阿卡爾省"] = {wp = "Akkar Governorate"}, ["巴勒貝克-赫爾梅勒省"] = {wp = "Baalbek-Hermel Governorate"}, ["貝魯特省"] = {wp = "Beirut Governorate"}, ["貝卡省"] = {wp = "Beqaa Governorate"}, ["克塞旺-裘拜勒省"] = {wp = "Keserwan-Jbeil Governorate"}, ["黎巴嫩山省"] = {wp = "Mount Lebanon Governorate"}, ["納巴蒂耶省"] = {wp = "Nabatieh Governorate"}, ["北部省(黎巴嫩)"] = {wp = "North Governorate (Lebanon)", no_auto_augment_container = true}, ["南部省(黎巴嫩)"] = {wp = "South Governorate (Lebanon)", no_auto_augment_container = true}, } export.lebanon_group = { placename_to_key = false, default_container = "黎巴嫩", default_placetype = "governorate", data = export.lebanon_governorates, } export.malaysia_states = { ["柔佛州"] = {wp = "Johor"}, ["吉打州"] = {wp = "Kedah"}, ["吉蘭丹州"] = {wp = "Kelantan"}, ["馬六甲州"] = {wp = "Malacca"}, ["森美蘭州"] = {wp = "Negeri Sembilan"}, ["彭亨州"] = {wp = "Pahang"}, ["檳城州"] = {wp = "Penang"}, ["霹靂州"] = {wp = "Perak"}, ["玻璃市州"] = {wp = "Perlis"}, ["沙巴州"] = {wp = "Sabah"}, ["砂拉越州"] = {wp = "Sarawak"}, ["雪蘭莪州"] = {wp = "Selangor"}, ["登嘉樓州"] = {wp = "Terengganu"}, } export.malaysia_group = { placename_to_key = false, default_container = "馬來西亞", default_placetype = "state", data = export.malaysia_states, } export.malta_regions = { ["東部區(馬爾他)"] = {wp = "Eastern Region, Malta", no_auto_augment_container = true}, ["戈佐區"] = {wp = "Gozo Region"}, ["北部區(馬爾他)"] = {wp = "Northern Region, Malta", no_auto_augment_container = true}, ["港口區"] = {wp = "Port Region, Malta"}, ["南部區(馬爾他)"] = {wp = "Southern Region, Malta", no_auto_augment_container = true}, ["西部區(馬爾他)"] = {wp = "Western Region, Malta", no_auto_augment_container = true}, } export.malta_group = { placename_to_key = false, default_container = "馬爾他", default_placetype = "region", data = export.malta_regions, } export.mexico_states = { ["阿瓜斯卡連特斯州"] = {wp = "Aguascalientes"}, ["下加利福尼亞州"] = {wp = "Baja California"}, ["南下加利福尼亞州"] = {wp = "Baja California Sur"}, ["坎佩切州"] = {wp = "Campeche"}, ["恰帕斯州"] = {wp = "Chiapas"}, ["奇瓦瓦州"] = {wp = "Chihuahua (state)"}, ["科阿韋拉州"] = {wp = "Coahuila"}, ["科利馬州"] = {wp = "Colima"}, ["杜蘭戈州"] = {wp = "Durango"}, ["瓜納華托州"] = {wp = "Guanajuato"}, ["格雷羅州"] = {wp = "Guerrero"}, ["伊達爾戈州"] = {wp = "Hidalgo (state)"}, ["哈利斯科州"] = {wp = "Jalisco"}, ["墨西哥州"] = {wp = "State of Mexico"}, ["米卻肯州"] = {wp = "Michoacán"}, ["莫雷洛斯州"] = {wp = "Morelos"}, ["納亞里特州"] = {wp = "Nayarit"}, ["新萊昂州"] = {wp = "Nuevo León"}, ["瓦哈卡州"] = {wp = "Oaxaca"}, ["普埃布拉州"] = {wp = "Puebla"}, ["克雷塔羅州"] = {wp = "Querétaro"}, ["金塔納羅奧州"] = {wp = "Quintana Roo"}, ["聖路易斯波托西州"] = {wp = "San Luis Potosí"}, ["錫那羅亞州"] = {wp = "Sinaloa"}, ["索諾拉州"] = {wp = "Sonora"}, ["塔巴斯科州"] = {wp = "Tabasco (state)"}, ["塔毛利帕斯州"] = {wp = "Tamaulipas"}, ["特拉斯卡拉州"] = {wp = "Tlaxcala"}, ["韋拉克魯斯州"] = {wp = "Veracruz"}, ["尤卡坦州"] = {wp = "Yucatán"}, ["薩卡特卡斯州"] = {wp = "Zacatecas"}, } export.mexico_group = { placename_to_key = false, default_container = "墨西哥", default_placetype = "state", data = export.mexico_states, } export.moldova_districts_and_autonomous_territorial_units = { ["阿內尼諾伊區"] = {wp = "Anenii Noi District"}, ["巴薩拉比亞斯卡區"] = {wp = "Basarabeasca District"}, ["布里切尼區"] = {wp = "Briceni District"}, ["卡胡爾區"] = {wp = "Cahul District"}, ["坎特米爾區"] = {wp = "Cantemir District"}, ["克勒拉希區"] = {wp = "Călărași District"}, ["考沙尼區"] = {wp = "Căușeni District"}, ["奇米什利亞區"] = {wp = "Cimișlia District"}, ["克里烏列尼區"] = {wp = "Criuleni District"}, ["東杜沙尼區"] = {wp = "Dondușeni District"}, ["德羅基亞區"] = {wp = "Drochia District"}, ["杜巴薩里區"] = {wp = "Dubăsari District"}, ["埃迪涅茨區"] = {wp = "Edineț District"}, ["法勒什蒂區"] = {wp = "Fălești District"}, ["弗洛雷什蒂區"] = {wp = "Florești District"}, ["格洛德尼區"] = {wp = "Glodeni District"}, ["欣切什蒂區"] = {wp = "Hîncești District"}, ["亞洛韋尼區"] = {wp = "Ialoveni District"}, ["萊奧瓦區"] = {wp = "Leova District"}, ["尼斯波雷尼區"] = {wp = "Nisporeni District"}, ["奧克尼察區"] = {wp = "Ocnița District"}, ["奧爾海伊區"] = {wp = "Orhei District"}, ["雷齊納區"] = {wp = "Rezina District"}, ["雷什卡尼區"] = {wp = "Rîșcani District"}, ["辛格雷伊區"] = {wp = "Sîngerei District"}, ["索羅卡區"] = {wp = "Soroca District"}, ["斯特拉沙尼區"] = {wp = "Strășeni District"}, ["紹爾達涅什蒂區"] = {wp = "Șoldănești District"}, ["斯蒂凡沃達區"] = {wp = "Ștefan Vodă District"}, ["塔拉克利亞區"] = {wp = "Taraclia District"}, ["泰萊涅什蒂區"] = {wp = "Telenești District"}, ["翁格尼區"] = {wp = "Ungheni District"}, ["基希訥烏市"] = {wp = "Chișinău", placetype = "municipality"}, ["巴爾茨市"] = {wp = "Bălți", placetype = "municipality"}, ["加告茲自治領土"] = {wp = "Gagauzia", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, ["本德爾市"] = {wp = "Bender, Moldova", placetype = "municipality"}, ["德涅斯特河沿岸"] = {wp = "Transnistria", placetype = {"autonomous territorial unit", "autonomous region", "region"}}, } export.moldova_group = { placename_to_key = false, default_container = "摩爾多瓦", default_placetype = {"district", "raion"}, data = export.moldova_districts_and_autonomous_territorial_units, } export.morocco_regions = { ["丹吉爾-得土安-霍賽馬大區"] = {wp = "Tangier-Tetouan-Al Hoceima"}, ["東方大區(摩洛哥)"] = {wp = "Oriental, Morocco"}, ["非斯-梅克內斯大區"] = {wp = "Fez-Meknes"}, ["拉巴特-薩累-肯尼特拉大區"] = {wp = "Rabat-Salé-Kénitra"}, ["貝尼梅拉勒-赫尼夫拉大區"] = {wp = "Béni Mellal-Khénifra"}, ["卡薩布蘭卡-塞塔特大區"] = {wp = "Casablanca-Settat"}, ["馬拉喀什-薩菲大區"] = {wp = "Marrakesh-Safi"}, ["德拉阿-塔菲拉勒特大區"] = {wp = "Drâa-Tafilalet"}, ["蘇斯-馬薩大區"] = {wp = "Souss-Massa"}, ["蓋勒明-烏德農大區"] = {wp = "Guelmim-Oued Noun"}, ["拉阿永-薩基亞-哈姆拉大區"] = {wp = "Laâyoune-Sakia El Hamra"}, ["達赫拉-奧以德達赫卜大區"] = {wp = "Dakhla-Oued Ed-Dahab"}, } export.morocco_group = { placename_to_key = false, default_container = "摩洛哥", default_placetype = "region", data = export.morocco_regions, } export.egypt_governorates = { ["開羅省"] = {wp = "Cairo Governorate"}, ["吉薩省"] = {wp = "Giza Governorate"}, ["夏爾基亞省"] = {wp = "Sharqia Governorate"}, ["達卡利亞省"] = {wp = "Dakahlia Governorate"}, ["貝海拉省"] = {wp = "Beheira Governorate"}, ["明亞省"] = {wp = "Minya Governorate"}, ["蓋柳比亞省"] = {wp = "Qalyubia Governorate"}, ["索哈傑省"] = {wp = "Sohag Governorate"}, ["亞歷山大省"] = {wp = "Alexandria Governorate"}, ["加爾比亞省"] = {wp = "Gharbia Governorate"}, ["艾斯尤特省"] = {wp = "Asyut Governorate"}, ["莫諾菲亞省"] = {wp = "Monufia Governorate"}, ["法尤姆省"] = {wp = "Faiyum Governorate"}, ["卡夫爾謝赫省"] = {wp = "Kafr El Sheikh Governorate"}, ["基納省"] = {wp = "Qena Governorate"}, ["本尼蘇威夫省"] = {wp = "Beni Suef Governorate"}, ["達米埃塔省"] = {wp = "Damietta Governorate"}, ["阿斯旺省"] = {wp = "Aswan Governorate"}, ["伊斯梅利亞省"] = {wp = "Ismailia Governorate"}, ["盧克索省"] = {wp = "Luxor Governorate"}, ["蘇伊士省"] = {wp = "Suez Governorate"}, ["塞德港省"] = {wp = "Port Said Governorate"}, ["馬特魯省"] = {wp = "Matrouh Governorate"}, ["北西奈省"] = {wp = "North Sinai Governorate"}, ["紅海省"] = {wp = "Red Sea Governorate"}, ["新河谷省"] = {wp = "New Valley Governorate"}, ["南西奈省"] = {wp = "South Sinai Governorate"}, } export.egypt_group = { placename_to_key = false, default_container = "埃及", default_placetype = "governorate", data = export.egypt_governorates, } export.spain_autonomous_communities = { ["安達盧西亞"] = {wp = "Andalusia"}, ["安達魯西亞"] = {alias_of = "安達盧西亞"}, ["阿拉貢"] = {wp = "Aragon"}, ["阿斯圖里亞斯"] = {wp = "Asturias"}, ["巴利阿里群島"] = {wp = "Balearic Islands"}, ["巴斯克"] = {wp = "Basque Country (autonomous community)"}, ["加那利群島"] = {wp = "Canary Islands"}, ["坎塔布里亞"] = {wp = "Cantabria"}, ["卡斯蒂利亞-拉曼恰"] = {wp = "Castilla-La Mancha"}, ["卡斯蒂利亞-萊昂"] = {wp = "Castilla y León"}, ["加泰羅尼亞"] = {wp = "Catalonia"}, ["加泰隆尼亞"] = {alias_of = "加泰羅尼亞"}, ["埃斯特雷馬杜拉"] = {wp = "Extremadura"}, ["加利西亞"] = {wp = "Galicia (Spain)"}, ["拉里奧哈"] = {wp = "La Rioja (autonomous community)"}, ["馬德里自治區"] = {wp = "Community of Madrid"}, ["穆爾西亞"] = {wp = "Region of Murcia"}, ["納瓦拉"] = {wp = "Navarre"}, ["巴倫西亞"] = {wp = "Valencian Community"}, ["巴倫西亞自治區"] = {alias_of = "巴倫西亞"}, } export.spain_group = { placename_to_key = false, default_container = "西班牙", default_placetype = "autonomous community", data = export.spain_autonomous_communities, } export.taiwan_counties = { ["彰化縣"] = {wp = "彰化縣"}, ["嘉義縣"] = {wp = "嘉義縣"}, ["新竹縣"] = {wp = "新竹縣"}, ["花蓮縣"] = {wp = "花蓮縣"}, ["金門縣"] = {wp = "金門縣"}, ["連江縣"] = {wp = "連江縣"}, ["苗栗縣"] = {wp = "苗栗縣"}, ["南投縣"] = {wp = "南投縣"}, ["屏東縣"] = {wp = "屏東縣"}, ["澎湖縣"] = {wp = "澎湖縣"}, ["宜蘭縣"] = {wp = "宜蘭縣"}, ["雲林縣"] = {wp = "雲林縣"}, } export.taiwan_group = { key_to_placename = make_key_to_placename(nil, "縣$"), placename_to_key = make_placename_to_key("縣"), default_container = "臺灣", default_placetype = "county", default_divs = {"districts", "townships"}, data = export.taiwan_counties, } export.new_york_boroughs = { ["布朗克斯"] = {the = true, wp = "The Bronx"}, ["布魯克林"] = {wp = "Brooklyn"}, ["曼哈頓"] = {wp = "Manhattan"}, ["皇后區"] = {wp = "Queens"}, ["史泰登島"] = {wp = "Staten Island"}, } export.new_york_boroughs_group = { placename_to_key = false, default_container = {key = "紐約市", placetype = "city"}, default_placetype = "borough", default_is_city = true, data = export.new_york_boroughs, } export.romania_counties = { ["阿爾巴縣"] = {wp = "Alba County"}, ["阿拉德縣"] = {wp = "Arad County"}, ["阿爾傑什縣"] = {wp = "Argeș County"}, ["巴考縣"] = {wp = "Bacău County"}, ["比霍爾縣"] = {wp = "Bihor County"}, ["比斯特里察-訥瑟烏德縣"] = {wp = "Bistrița-Năsăud County"}, ["博托沙尼縣"] = {wp = "Botoșani County"}, ["布拉索夫縣"] = {wp = "Brașov County"}, ["布勒伊拉縣"] = {wp = "Brăila County"}, ["布澤烏縣"] = {wp = "Buzău County"}, ["卡拉什-塞韋林縣"] = {wp = "Caraș-Severin County"}, ["克盧日縣"] = {wp = "Cluj County"}, ["康斯坦察縣"] = {wp = "Constanța County"}, ["科瓦斯納縣"] = {wp = "Covasna County"}, ["克勒拉希縣"] = {wp = "Călărași County"}, ["多爾日縣"] = {wp = "Dolj County"}, ["登博維察縣"] = {wp = "Dâmbovița County"}, ["加拉茨縣"] = {wp = "Galați County"}, ["久爾久縣"] = {wp = "Giurgiu County"}, ["戈爾日縣"] = {wp = "Gorj County"}, ["哈爾吉塔縣"] = {wp = "Harghita County"}, ["胡內多阿拉縣"] = {wp = "Hunedoara County"}, ["雅洛米察縣"] = {wp = "Ialomița County"}, ["雅西縣"] = {wp = "Iași County"}, ["伊爾福夫縣"] = {wp = "Ilfov County"}, ["馬拉穆列什縣"] = {wp = "Maramureș County"}, ["梅赫丁茨縣"] = {wp = "Mehedinți County"}, ["穆列什縣"] = {wp = "Mureș County"}, ["尼亞姆茨縣"] = {wp = "Neamț County"}, ["奧爾特縣"] = {wp = "Olt County"}, ["普拉霍瓦縣"] = {wp = "Prahova County"}, ["薩圖馬雷縣"] = {wp = "Satu Mare County"}, ["錫比烏縣"] = {wp = "Sibiu County"}, ["蘇恰瓦縣"] = {wp = "Suceava County"}, ["瑟拉日縣"] = {wp = "Sălaj County"}, ["特列奧爾曼縣"] = {wp = "Teleorman County"}, ["蒂米什縣"] = {wp = "Timiș County"}, ["圖爾恰縣"] = {wp = "Tulcea County"}, ["瓦斯盧伊縣"] = {wp = "Vaslui County"}, ["弗蘭恰縣"] = {wp = "Vrancea County"}, ["沃爾恰縣"] = {wp = "Vâlcea County"}, } export.romania_group = { placename_to_key = false, default_container = "羅馬尼亞", default_placetype = "county", data = export.romania_counties, } export.north_korea_provinces = { ["慈江道"] = {wp = "慈江道"}, ["咸鏡北道"] = {wp = "咸鏡北道"}, ["咸鏡南道"] = {wp = "咸鏡南道"}, ["黃海北道"] = {wp = "黃海北道"}, ["黃海南道"] = {wp = "黃海南道"}, ["江原道(北韓)"] = {wp = "江原道 (朝鮮民主主義人民共和國)"}, ["平安北道"] = {wp = "平安北道"}, ["平安南道"] = {wp = "平安南道"}, ["兩江道"] = {wp = "兩江道"}, } export.north_korea_group = { placename_to_key = false, default_container = "朝鮮", default_placetype = "province", data = export.north_korea_provinces, } export.south_korea_provinces = { ["忠清北道"] = {wp = "忠清北道"}, ["忠清南道"] = {wp = "忠清南道"}, ["江原道(南韓)"] = {wp = "江原特別自治道"}, ["京畿道"] = {wp = "京畿道"}, ["慶尚北道"] = {wp = "慶尚北道"}, ["慶尚南道"] = {wp = "慶尚南道"}, ["全羅北道"] = {wp = "全羅北道"}, ["全羅南道"] = {wp = "全羅南道"}, ["濟州道"] = {wp = "濟州道"}, } export.south_korea_group = { placename_to_key = false, default_container = "韓國", default_placetype = "province", data = export.south_korea_provinces, } export.thailand_provinces = { ["阿姆納特坤府"] = {wp = "Amnat Charoen Province"}, ["紅統府"] = {wp = "Ang Thong Province"}, ["彭侃府"] = {wp = "Bueng Kan Province"}, ["武里南府"] = {wp = "Buriram Province"}, ["北柳府"] = {wp = "Chachoengsao Province"}, ["猜納府"] = {wp = "Chai Nat Province"}, ["猜耶奔府"] = {wp = "Chaiyaphum Province"}, ["尖竹汶府"] = {wp = "Chanthaburi Province"}, ["清邁府"] = {wp = "Chiang Mai Province"}, ["清萊府"] = {wp = "Chiang Rai Province"}, ["春武里府"] = {wp = "Chonburi Province"}, ["春蓬府"] = {wp = "Chumphon Province"}, ["加拉信府"] = {wp = "Kalasin Province"}, ["甘烹碧府"] = {wp = "Kamphaeng Phet Province"}, ["北碧府"] = {wp = "Kanchanaburi Province"}, ["孔敬府"] = {wp = "Khon Kaen Province"}, ["甲米府"] = {wp = "Krabi Province"}, ["南邦府"] = {wp = "Lampang Province"}, ["南奔府"] = {wp = "Lamphun Province"}, ["黎府"] = {wp = "Loei Province"}, ["華富里府"] = {wp = "Lopburi Province"}, ["夜豐頌府"] = {wp = "Mae Hong Son Province"}, ["瑪哈沙拉堪府"] = {wp = "Maha Sarakham Province"}, ["莫達罕府"] = {wp = "Mukdahan Province"}, ["那空那育府"] = {wp = "Nakhon Nayok Province"}, ["佛統府"] = {wp = "Nakhon Pathom Province"}, ["那空帕農府"] = {wp = "Nakhon Phanom Province"}, ["呵叻府"] = {wp = "Nakhon Ratchasima Province"}, ["那空沙旺府"] = {wp = "Nakhon Sawan Province"}, ["洛坤府"] = {wp = "Nakhon Si Thammarat Province"}, ["難府"] = {wp = "Nan Province"}, ["那拉提瓦府"] = {wp = "Narathiwat Province"}, ["農布瓦蘭普府"] = {wp = "Nong Bua Lamphu Province"}, ["廊開府"] = {wp = "Nong Khai Province"}, ["暖武里府"] = {wp = "Nonthaburi Province"}, ["巴吞他尼府"] = {wp = "Pathum Thani Province"}, ["北大年府"] = {wp = "Pattani Province"}, ["攀牙府"] = {wp = "Phang Nga Province"}, ["博他侖府"] = {wp = "Phatthalung Province"}, ["帕堯府"] = {wp = "Phayao Province"}, ["碧差汶府"] = {wp = "Phetchabun Province"}, ["碧武里府"] = {wp = "Phetchaburi Province"}, ["披集府"] = {wp = "Phichit Province"}, ["彭世洛府"] = {wp = "Phitsanulok Province"}, ["大城府"] = {wp = "Phra Nakhon Si Ayutthaya Province"}, ["帕府"] = {wp = "Phrae Province"}, ["普吉府"] = {wp = "Phuket Province"}, ["巴真府"] = {wp = "Prachinburi Province"}, ["巴蜀府"] = {wp = "Prachuap Khiri Khan Province"}, ["拉廊府"] = {wp = "Ranong Province"}, ["叻丕府"] = {wp = "Ratchaburi Province"}, ["羅勇府"] = {wp = "Rayong Province"}, ["黎逸府"] = {wp = "Roi Et Province"}, ["沙繳府"] = {wp = "Sa Kaeo Province"}, ["色軍府"] = {wp = "Sakon Nakhon Province"}, ["北欖府"] = {wp = "Samut Prakan Province"}, ["沙沒沙空府"] = {wp = "Samut Sakhon Province"}, ["沙沒頌堪府"] = {wp = "Samut Songkhram Province"}, ["沙拉武里府"] = {wp = "Saraburi Province"}, ["沙敦府"] = {wp = "Satun Province"}, ["信武里府"] = {wp = "Sing Buri Province"}, ["四色菊府"] = {wp = "Sisaket Province"}, ["宋卡府"] = {wp = "Songkhla Province"}, ["素可泰府"] = {wp = "Sukhothai Province"}, ["素攀武里府"] = {wp = "Suphan Buri Province"}, ["素叻他尼府"] = {wp = "Surat Thani Province"}, ["素林府"] = {wp = "Surin Province"}, ["達府"] = {wp = "Tak Province"}, ["董里府"] = {wp = "Trang Province"}, ["達叻府"] = {wp = "Trat Province"}, ["烏汶府"] = {wp = "Ubon Ratchathani Province"}, ["烏隆府"] = {wp = "Udon Thani Province"}, ["烏泰他尼府"] = {wp = "Uthai Thani Province"}, ["烏達拉勐府"] = {wp = "Uttaradit Province"}, ["惹拉府"] = {wp = "Yala Province"}, ["耶梭通府"] = {wp = "Yasothon Province"}, } export.thailand_group = { placename_to_key = false, default_container = "泰國", default_placetype = "province", data = export.thailand_provinces, } export.turkey_provinces = { ["阿達納省"] = {wp = "Adana Province"}, ["阿德亞曼省"] = {wp = "Adıyaman Province"}, ["阿菲永卡拉希薩爾省"] = {wp = "Afyonkarahisar Province"}, ["阿里省"] = {wp = "Ağrı Province"}, ["阿馬西亞省"] = {wp = "Amasya Province"}, ["安卡拉省"] = {wp = "Ankara Province"}, ["安塔利亞省"] = {wp = "Antalya Province"}, ["阿爾特溫省"] = {wp = "Artvin Province"}, ["艾登省"] = {wp = "Aydın Province"}, ["巴勒克埃西爾省"] = {wp = "Balıkesir Province"}, ["比萊吉克省"] = {wp = "Bilecik Province"}, ["賓格爾省"] = {wp = "Bingöl Province"}, ["比特利斯省"] = {wp = "Bitlis Province"}, ["博盧省"] = {wp = "Bolu Province"}, ["布爾杜爾省"] = {wp = "Burdur Province"}, ["布爾薩省"] = {wp = "Bursa Province"}, ["恰納卡萊省"] = {wp = "Çanakkale Province"}, ["昌克勒省"] = {wp = "Çankırı Province"}, ["喬魯姆省"] = {wp = "Çorum Province"}, ["代尼茲利省"] = {wp = "Denizli Province"}, ["迪亞巴克爾省"] = {wp = "Diyarbakır Province"}, ["埃迪爾內省"] = {wp = "Edirne Province"}, ["埃拉澤省"] = {wp = "Elazığ Province"}, ["埃爾津詹省"] = {wp = "Erzincan Province"}, ["埃爾祖魯姆省"] = {wp = "Erzurum Province"}, ["埃斯基謝希爾省"] = {wp = "Eskişehir Province"}, ["加濟安泰普省"] = {wp = "Gaziantep Province"}, ["吉雷松省"] = {wp = "Giresun Province"}, ["居米什哈內省"] = {wp = "Gümüşhane Province"}, ["哈卡里省"] = {wp = "Hakkâri Province"}, ["哈塔伊省"] = {wp = "Hatay Province"}, ["伊斯帕爾塔省"] = {wp = "Isparta Province"}, ["梅爾辛省"] = {wp = "Mersin Province"}, ["伊茲密爾省"] = {wp = "İzmir Province"}, ["卡爾斯省"] = {wp = "Kars Province"}, ["卡斯塔莫努省"] = {wp = "Kastamonu Province"}, ["開塞利省"] = {wp = "Kayseri Province"}, ["柯克拉雷利省"] = {wp = "Kırklareli Province"}, ["克爾謝希爾省"] = {wp = "Kırşehir Province"}, ["科賈埃利省"] = {wp = "Kocaeli Province"}, ["科尼亞省"] = {wp = "Konya Province"}, ["屈塔希亞省"] = {wp = "Kütahya Province"}, ["馬拉蒂亞省"] = {wp = "Malatya Province"}, ["馬尼薩省"] = {wp = "Manisa Province"}, ["卡赫拉曼馬拉什省"] = {wp = "Kahramanmaraş Province"}, ["馬爾丁省"] = {wp = "Mardin Province"}, ["穆拉省"] = {wp = "Muğla Province"}, ["穆什省"] = {wp = "Muş Province"}, ["內夫謝希爾省"] = {wp = "Nevşehir Province"}, ["尼代省"] = {wp = "Niğde Province"}, ["奧爾杜省"] = {wp = "Ordu Province"}, ["里澤省"] = {wp = "Rize Province"}, ["薩卡里亞省"] = {wp = "Sakarya Province"}, ["薩姆松省"] = {wp = "Samsun Province"}, ["錫爾特省"] = {wp = "Siirt Province"}, ["錫諾普省"] = {wp = "Sinop Province"}, ["錫瓦斯省"] = {wp = "Sivas Province"}, ["泰基爾達省"] = {wp = "Tekirdağ Province"}, ["托卡特省"] = {wp = "Tokat Province"}, ["特拉布宗省"] = {wp = "Trabzon Province"}, ["通傑利省"] = {wp = "Tunceli Province"}, ["尚勒烏爾法省"] = {wp = "Şanlıurfa Province"}, ["烏沙克省"] = {wp = "Uşak Province"}, ["凡省"] = {wp = "Van Province"}, ["約茲加特省"] = {wp = "Yozgat Province"}, ["宗古爾達克省"] = {wp = "Zonguldak Province"}, ["阿克薩賴省"] = {wp = "Aksaray Province"}, ["拜布爾特省"] = {wp = "Bayburt Province"}, ["卡拉曼省"] = {wp = "Karaman Province"}, ["克勒克卡萊省"] = {wp = "Kırıkkale Province"}, ["巴特曼省"] = {wp = "Batman Province"}, ["蘇爾納克省"] = {wp = "Şırnak Province"}, ["巴爾騰省"] = {wp = "Bartın Province"}, ["阿爾達罕省"] = {wp = "Ardahan Province"}, ["伊迪爾省"] = {wp = "Iğdır Province"}, ["亞洛瓦省"] = {wp = "Yalova Province"}, ["卡拉比克省"] = {wp = "Karabük Province"}, ["基利斯省"] = {wp = "Kilis Province"}, ["奧斯曼尼耶省"] = {wp = "Osmaniye Province"}, ["迪茲傑省"] = {wp = "Düzce Province"}, } export.turkey_group = { placename_to_key = false, default_container = "土耳其", default_placetype = "province", data = export.turkey_provinces, } export.vietnam_provinces = { -- Northeast ["北江省"] = {wp = "Bắc Giang Province"}, ["北件省"] = {wp = "Bắc Kạn Province"}, ["高平省"] = {wp = "Cao Bằng Province"}, ["河江省"] = {wp = "Hà Giang Province"}, ["諒山省"] = {wp = "Lạng Sơn Province"}, ["富壽省"] = {wp = "Phú Thọ Province"}, ["廣寧省"] = {wp = "Quảng Ninh Province"}, ["太原省"] = {wp = "Thái Nguyên Province"}, ["宣光省"] = {wp = "Tuyên Quang Province"}, -- Northwest ["老街省"] = {wp = "Lào Cai Province"}, ["安沛省"] = {wp = "Yên Bái Province"}, ["奠邊省"] = {wp = "Điện Biên Province"}, ["和平省"] = {wp = "Hoà Bình Province"}, ["萊州省"] = {wp = "Lai Châu Province"}, ["山羅省"] = {wp = "Sơn La Province"}, -- Red River Delta ["北寧省"] = {wp = "Bắc Ninh Province"}, ["河南省"] = {wp = "Hà Nam Province"}, ["海陽省"] = {wp = "Hải Dương Province"}, ["興安省"] = {wp = "Hưng Yên Province"}, ["南定省"] = {wp = "Nam Định Province"}, ["寧平省"] = {wp = "Ninh Bình Province"}, ["太平省"] = {wp = "Thái Bình Province"}, ["永福省"] = {wp = "Vĩnh Phúc Province"}, -- North Central Coast ["河靜省"] = {wp = "Hà Tĩnh Province"}, ["乂安省"] = {wp = "Nghệ An Province"}, ["廣平省"] = {wp = "Quảng Bình Province"}, ["廣治省"] = {wp = "Quảng Trị Province"}, ["清化省"] = {wp = "Thanh Hoá Province"}, -- Central Highlands ["得樂省"] = {wp = "Đắk Lắk Province"}, ["得農省"] = {wp = "Đăk Nông Province"}, ["嘉萊省"] = {wp = "Gia Lai Province"}, ["崑嵩省"] = {wp = "Kon Tum Province"}, ["林同省"] = {wp = "Lâm Đồng Province"}, -- South Central Coast ["平定省"] = {wp = "Bình Định Province"}, ["平順省"] = {wp = "Bình Thuận Province"}, ["慶和省"] = {wp = "Khánh Hoà Province"}, ["寧順省"] = {wp = "Ninh Thuận Province"}, ["富安省"] = {wp = "Phú Yên Province"}, ["廣南省"] = {wp = "Quảng Nam Province"}, ["廣義省"] = {wp = "Quảng Ngãi Province"}, -- Southeast ["巴地-頭頓省"] = {wp = "Bà Rịa–Vũng Tàu Province"}, ["平陽省"] = {wp = "Bình Dương Province"}, ["平福省"] = {wp = "Bình Phước Province"}, ["同奈省"] = {wp = "Đồng Nai Province"}, ["西寧省"] = {wp = "Tây Ninh Province"}, -- Mekong Delta ["安江省"] = {wp = "An Giang Province"}, ["薄寮省"] = {wp = "Bạc Liêu Province"}, ["檳椥省"] = {wp = "Bến Tre Province"}, ["金甌省"] = {wp = "Cà Mau Province"}, ["同塔省"] = {wp = "Đồng Tháp Province"}, ["後江省"] = {wp = "Hậu Giang Province"}, ["堅江省"] = {wp = "Kiên Giang Province"}, ["龍安省"] = {wp = "Long An Province"}, ["朔莊省"] = {wp = "Sóc Trăng Province"}, ["前江省"] = {wp = "Tiền Giang Province"}, ["茶榮省"] = {wp = "Trà Vinh Province"}, ["永隆省"] = {wp = "Vĩnh Long Province"}, } export.vietnam_group = { placename_to_key = false, default_container = "越南", default_placetype = "province", data = export.vietnam_provinces, } export.united_states_states = { ["阿拉巴馬"] = {wp = "Alabama"}, ["阿拉斯加"] = {wp = "Alaska"}, ["亞利桑那"] = {wp = "Arizona"}, ["阿肯色"] = {wp = "Arkansas"}, ["加利福尼亞"] = {wp = "California"}, ["加州"] = {alias_of = "加利福尼亞"}, ["科羅拉多"] = {wp = "Colorado"}, ["康乃狄克"] = {wp = "Connecticut"}, ["康涅狄格"] = {alias_of = "康乃狄克"}, ["德拉瓦"] = {wp = "Delaware"}, ["佛羅里達"] = {wp = "Florida"}, ["佛罗里达"] = {alias_of = "佛羅里達"}, ["佐治亞"] = {wp = "Georgia (U.S. state)"}, ["夏威夷"] = {addl_parents = {"玻里尼西亞"}, wp = "Hawaii"}, ["愛達荷"] = {wp = "Idaho"}, ["伊利諾伊"] = {wp = "Illinois"}, ["伊利诺伊"] = {alias_of = "伊利諾伊"}, ["印地安那"] = {wp = "Indiana"}, ["印第安納"] = {alias_of = "印地安那"}, ["愛荷華"] = {wp = "Iowa"}, ["堪薩斯"] = {wp = "Kansas"}, ["肯塔基"] = {wp = "Kentucky"}, ["路易斯安那"] = {wp = "Louisiana"}, ["緬因"] = {wp = "Maine"}, ["馬里蘭"] = {wp = "Maryland"}, ["麻薩諸塞"] = {wp = "Massachusetts"}, ["麻薩诸塞"] = {alias_of = "麻薩諸塞"}, ["密西根"] = {wp = "Michigan"}, ["密歇根"] = {alias_of = "密西根"}, ["明尼蘇達"] = {wp = "Minnesota"}, ["明尼苏达"] = {alias_of = "明尼蘇達"}, ["密西西比"] = {wp = "Mississippi"}, ["密蘇里"] = {wp = "Missouri"}, ["蒙大拿"] = {wp = "Montana"}, ["內布拉斯加"] = {wp = "Nebraska"}, ["內華達"] = {wp = "Nevada"}, ["新罕布什爾"] = {wp = "New Hampshire"}, ["新澤西"] = {wp = "New Jersey"}, ["新泽西"] = {alias_of = "新澤西"}, ["新墨西哥"] = {wp = "New Mexico"}, ["紐約"] = {wp = "New York (state)"}, ["纽约"] = {alias_of = "紐約"}, ["北卡羅來納"] = {wp = "North Carolina"}, ["北达科他"] = {alias_of = "北達科他"}, ["北達科他"] = {wp = "North Dakota"}, ["俄亥俄"] = {wp = "Ohio"}, ["奧克拉荷馬"] = {wp = "Oklahoma"}, ["奧勒岡"] = {wp = "Oregon"}, ["俄勒冈"] = {alias_of = "奧勒岡"}, ["賓夕法尼亞"] = {wp = "Pennsylvania"}, ["宾夕法尼亚"] = {alias_of = "賓夕法尼亞"}, ["羅德島"] = {wp = "Rhode Island"}, ["南卡羅來納"] = {wp = "South Carolina"}, ["南達科他"] = {wp = "South Dakota"}, ["田納西"] = {wp = "Tennessee"}, ["田纳西"] = {alias_of = "田納西"}, ["德克薩斯"] = {wp = "Texas"}, ["德州"] = {alias_of = "德克薩斯"}, ["猶他"] = {wp = "Utah"}, ["佛蒙特"] = {wp = "Vermont"}, ["弗吉尼亞"] = {wp = "Virginia"}, ["弗吉尼亚"] = {alias_of = "弗吉尼亞"}, ["維吉尼亞"] = {alias_of = "弗吉尼亞"}, ["華盛頓州"] = {wp = "Washington (state)"}, ["华盛顿州"] = {alias_of = "華盛頓州"}, ["西維吉尼亞"] = {wp = "West Virginia"}, ["西弗吉尼亞"] = {alias_of = "西維吉尼亞"}, ["威斯康辛"] = {wp = "Wisconsin"}, ["懷俄明"] = {wp = "Wyoming"}, -- Washington D.C. (federal district, treated like a state in holonym context) ["華盛頓特區"] = {placetype = {"federal district", "district"}, wp = "Washington, D.C."}, } export.united_states_group = { placename_to_key = false, default_container = "美國", default_placetype = "state", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, }, data = export.united_states_states, } export.united_kingdom_constituent_countries = { ["英格蘭"] = {divs = {"counties", "districts"}, wp = "England"}, ["北愛爾蘭"] = { placetype = {"constituent country", "province", "country"}, divs = {"counties", "districts"}, wp = "Northern Ireland", }, ["蘇格蘭"] = {divs = {{type = "council areas", container_parent_type = false}}, wp = "Scotland"}, ["威爾斯"] = {divs = {"counties"}, wp = "Wales"}, ["威爾士"] = {alias_of = "威爾斯"}, } export.united_kingdom_group = { placename_to_key = false, default_container = "英國", default_placetype = {"constituent country", "country"}, default_no_container_cat = true, data = export.united_kingdom_constituent_countries, } -- Scotland council areas export.scotland_council_areas = { ["Aberdeen市"] = {wp = "Aberdeen"}, ["Aberdeenshire"] = {wp = "Aberdeenshire"}, ["Angus"] = {wp = "Angus, Scotland"}, ["Argyll and Bute"] = {wp = "Argyll and Bute"}, ["Clackmannanshire"] = {wp = "Clackmannanshire"}, ["Dumfries and Galloway"] = {wp = "Dumfries and Galloway"}, ["Dundee市"] = {wp = "Dundee"}, ["East Ayrshire"] = {wp = "East Ayrshire"}, ["East Dunbartonshire"] = {wp = "East Dunbartonshire"}, ["East Lothian"] = {wp = "East Lothian"}, ["East Renfrewshire"] = {wp = "East Renfrewshire"}, ["Edinburgh市"] = {wp = "Edinburgh"}, ["Eilean Siar"] = {wp = "Outer Hebrides"}, ["Falkirk"] = {wp = "Falkirk"}, ["Fife"] = {wp = "Fife"}, ["Glasgow市"] = {wp = "Glasgow"}, ["高地"] = {wp = "Highland council area"}, ["Highland"] = {alias_of = "高地", display = true}, ["Inverclyde"] = {wp = "Inverclyde"}, ["Midlothian"] = {wp = "Midlothian"}, ["Moray"] = {wp = "Moray"}, ["North Ayrshire"] = {wp = "North Ayrshire"}, ["North Lanarkshire"] = {wp = "North Lanarkshire"}, ["Orkney群島"] = {wp = "Orkney"}, ["Perth and Kinross"] = {wp = "Perth and Kinross"}, ["Renfrewshire"] = {wp = "Renfrewshire"}, ["Scottish Borders"] = {wp = "Scottish Borders"}, ["Shetland群島"] = {wp = "Shetland"}, ["South Ayrshire"] = {wp = "South Ayrshire"}, ["South Lanarkshire"] = {wp = "South Lanarkshire"}, ["Stirling"] = {wp = "Stirling (council area)"}, ["West Dunbartonshire"] = {wp = "West Dunbartonshire"}, ["West Lothian"] = {wp = "West Lothian"}, } export.scotland_group = { placename_to_key = false, default_container = "蘇格蘭", default_placetype = "council area", data = export.scotland_council_areas, } -- England counties (ceremonial) export.england_counties = { -- Metropolitan counties ["大倫敦"] = {wp = "Greater London"}, ["大曼徹斯特"] = {wp = "Greater Manchester"}, ["默西賽德郡"] = {wp = "Merseyside"}, ["西密德蘭"] = {wp = "West Midlands (county)"}, ["南約克郡"] = {wp = "South Yorkshire"}, ["西約克郡"] = {wp = "West Yorkshire"}, ["泰恩-威爾郡"] = {wp = "Tyne and Wear"}, -- Non-metropolitan ceremonial counties ["貝德福德郡"] = {wp = "Bedfordshire"}, ["伯克郡"] = {wp = "Berkshire"}, ["白金漢郡"] = {wp = "Buckinghamshire"}, ["劍橋郡"] = {wp = "Cambridgeshire"}, ["柴郡"] = {wp = "Cheshire"}, ["康沃爾郡"] = {wp = "Cornwall"}, ["坎布里亞郡"] = {wp = "Cumbria"}, ["德比郡"] = {wp = "Derbyshire"}, ["德文郡"] = {wp = "Devon"}, ["多塞特郡"] = {wp = "Dorset"}, ["達勒姆郡"] = {wp = "County Durham"}, ["約克郡東區"] = {wp = "East Riding of Yorkshire"}, ["東薩塞克斯郡"] = {wp = "East Sussex"}, ["埃塞克斯郡"] = {wp = "Essex"}, ["格洛斯特郡"] = {wp = "Gloucestershire"}, ["漢普郡"] = {wp = "Hampshire"}, ["赫里福德郡"] = {wp = "Herefordshire"}, ["赫特福德郡"] = {wp = "Hertfordshire"}, ["懷特島"] = {wp = "Isle of Wight"}, ["肯特郡"] = {wp = "Kent"}, ["蘭開夏郡"] = {wp = "Lancashire"}, ["萊斯特郡"] = {wp = "Leicestershire"}, ["林肯郡"] = {wp = "Lincolnshire"}, ["諾福克郡"] = {wp = "Norfolk"}, ["北安普敦郡"] = {wp = "Northamptonshire"}, ["諾森伯蘭郡"] = {wp = "Northumberland"}, ["北約克郡"] = {wp = "North Yorkshire"}, ["諾丁漢郡"] = {wp = "Nottinghamshire"}, ["牛津郡"] = {wp = "Oxfordshire"}, ["拉特蘭郡"] = {wp = "Rutland"}, ["什羅普郡"] = {wp = "Shropshire"}, ["薩默塞特郡"] = {wp = "Somerset"}, ["南亨伯賽德郡"] = {wp = "South Humberside"}, ["斯塔福德郡"] = {wp = "Staffordshire"}, ["薩福克郡"] = {wp = "Suffolk"}, ["薩里郡"] = {wp = "Surrey"}, ["沃里克郡"] = {wp = "Warwickshire"}, ["西薩塞克斯郡"] = {wp = "West Sussex"}, ["威爾特郡"] = {wp = "Wiltshire"}, ["伍斯特郡"] = {wp = "Worcestershire"}, } export.england_group = { placename_to_key = false, default_container = {key = "英格蘭", placetype = "constituent country"}, default_placetype = "county", data = export.england_counties, } -- Counties of Northern Ireland export.northern_ireland_counties = { ["安特里姆郡"] = {wp = "County Antrim"}, ["阿爾馬郡"] = {wp = "County Armagh"}, ["貝爾法斯特市"] = {is_city = true, wp = "Belfast"}, ["唐郡"] = {wp = "County Down"}, ["弗馬納郡"] = {wp = "County Fermanagh"}, ["倫敦德里郡"] = {wp = "County Londonderry"}, ["德里市"] = {is_city = true, wp = "Derry"}, ["泰龍郡"] = {wp = "County Tyrone"}, } export.northern_ireland_group = { placename_to_key = false, default_container = {key = "北愛爾蘭", placetype = "constituent country"}, default_placetype = "county", data = export.northern_ireland_counties, } export.nigeria_states = { ["阿比亞州"] = {wp = "Abia State"}, ["阿達馬瓦州"] = {wp = "Adamawa State"}, ["阿誇伊博姆州"] = {wp = "Akwa Ibom State"}, ["阿南布拉州"] = {wp = "Anambra State"}, ["包奇州"] = {wp = "Bauchi State"}, ["貝耶薩州"] = {wp = "Bayelsa State"}, ["貝努埃州"] = {wp = "Benue State"}, ["博爾諾州"] = {wp = "Borno State"}, ["跨河州"] = {wp = "Cross River State"}, ["三角洲州"] = {wp = "Delta State"}, ["埃博尼州"] = {wp = "Ebonyi State"}, ["埃多州"] = {wp = "Edo State"}, ["埃基蒂州"] = {wp = "Ekiti State"}, ["埃努古州"] = {wp = "Enugu State"}, ["阿布賈聯邦首都轄區"] = {placetype = {"federal territory", "territory", "state"}, the = true, wp = "Federal Capital Territory, Nigeria"}, ["貢貝州"] = {wp = "Gombe State"}, ["伊莫州"] = {wp = "Imo State"}, ["吉加瓦州"] = {wp = "Jigawa State"}, ["卡杜納州"] = {wp = "Kaduna State"}, ["卡諾州"] = {wp = "Kano State"}, ["卡齊納州"] = {wp = "Katsina State"}, ["克比州"] = {wp = "Kebbi State"}, ["科吉州"] = {wp = "Kogi State"}, ["誇拉州"] = {wp = "Kwara State"}, ["拉各斯州"] = {wp = "Lagos State"}, ["納薩拉瓦州"] = {wp = "Nasarawa State"}, ["尼日爾州"] = {wp = "Niger State"}, ["奧貢州"] = {wp = "Ogun State"}, ["翁多州"] = {wp = "Ondo State"}, ["奧順州"] = {wp = "Osun State"}, ["奧約州"] = {wp = "Oyo State"}, ["高原州"] = {wp = "Plateau State"}, ["河流州"] = {wp = "Rivers State"}, ["索科托州"] = {wp = "Sokoto State"}, ["塔拉巴州"] = {wp = "Taraba State"}, ["約貝州"] = {wp = "Yobe State"}, ["贊法拉州"] = {wp = "Zamfara State"}, } export.nigeria_group = { placename_to_key = false, default_container = "奈及利亞", default_placetype = "state", data = export.nigeria_states, } ----------------------------------------------------------------------------------- -- Selected city groups -- ----------------------------------------------------------------------------------- -- Key world cities frequently used as holonyms (entries covered by dedicated city groups removed) export.misc_cities = { -- Americas ["費爾法克斯"] = {container = "弗吉尼亞", placetype = "city", is_city = true, wp = "Fairfax, Virginia"}, ["斯克蘭頓"] = {container = "賓夕法尼亞", placetype = "city", is_city = true, wp = "Scranton, Pennsylvania"}, ["里約熱內盧市"] = {container = "巴西", placetype = "city", is_city = true, wp = "Rio de Janeiro"}, ["布宜諾斯艾利斯"] = {container = "阿根廷", placetype = "city", is_city = true, wp = "Buenos Aires"}, ["聖地牙哥"] = {container = "智利", placetype = "city", is_city = true, wp = "Santiago"}, ["波哥大"] = {container = "哥倫比亞", placetype = "city", is_city = true, wp = "Bogotá"}, ["利馬"] = {container = "秘魯", placetype = "city", is_city = true, wp = "Lima"}, -- Europe ["阿姆斯特丹"] = {container = "荷蘭", placetype = "city", is_city = true, wp = "Amsterdam"}, ["布魯塞爾"] = {container = "比利時", placetype = "city", is_city = true, wp = "Brussels"}, ["維也納"] = {container = "奧地利", placetype = "city", is_city = true, wp = "Vienna"}, ["伊斯坦布爾"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Istanbul"}, ["基輔"] = {container = "烏克蘭", placetype = "city", is_city = true, wp = "Kyiv"}, ["華沙"] = {container = "波蘭", placetype = "city", is_city = true, wp = "Warsaw"}, ["布拉格"] = {container = "捷克", placetype = "city", is_city = true, wp = "Prague"}, ["布達佩斯"] = {container = "匈牙利", placetype = "city", is_city = true, wp = "Budapest"}, ["斯德哥爾摩"] = {container = "瑞典", placetype = "city", is_city = true, wp = "Stockholm"}, ["赫爾辛基"] = {container = "芬蘭", placetype = "city", is_city = true, wp = "Helsinki"}, ["奧斯陸"] = {container = "挪威", placetype = "city", is_city = true, wp = "Oslo"}, ["哥本哈根"] = {container = "丹麥", placetype = "city", is_city = true, wp = "Copenhagen"}, ["里斯本"] = {container = "葡萄牙", placetype = "city", is_city = true, wp = "Lisbon"}, ["雅典"] = {container = "希臘", placetype = "city", is_city = true, wp = "Athens"}, ["蘇黎世"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Zurich"}, ["日內瓦"] = {container = "瑞士", placetype = "city", is_city = true, wp = "Geneva"}, ["第比利斯"] = {container = "格魯吉亞", placetype = "city", is_city = true, wp = "Tbilisi"}, ["貝爾格勒"] = {container = "塞爾維亞", placetype = "city", is_city = true, wp = "Belgrade"}, ["薩格勒布"] = {container = "克羅埃西亞", placetype = "city", is_city = true, wp = "Zagreb"}, ["都柏林"] = {container = "愛爾蘭", placetype = "city", is_city = true, wp = "Dublin"}, -- Asia ["北京市"] = {container = "北京", placetype = "city", is_city = true, wp = "Beijing"}, ["上海市"] = {container = "上海", placetype = "city", is_city = true, wp = "Shanghai"}, ["德里市"] = {container = "德里", placetype = "city", is_city = true, wp = "Delhi"}, ["曼谷"] = {container = "泰國", placetype = "city", is_city = true, wp = "Bangkok"}, ["吉隆坡"] = {container = "馬來西亞", placetype = "city", is_city = true, wp = "Kuala Lumpur"}, ["開羅"] = {container = "埃及", placetype = "city", is_city = true, wp = "Cairo"}, ["德黑蘭"] = {container = "伊朗", placetype = "city", is_city = true, wp = "Tehran"}, ["安卡拉"] = {container = "土耳其", placetype = "city", is_city = true, wp = "Ankara"}, -- Oceania ["奧克蘭"] = {container = "紐西蘭", placetype = "city", is_city = true, wp = "Auckland"}, -- Africa ["開普敦"] = {container = "南非", placetype = "city", is_city = true, wp = "Cape Town"}, ["約翰尼斯堡"] = {container = "南非", placetype = "city", is_city = true, wp = "Johannesburg"}, ["奈洛比"] = {container = "肯亞", placetype = "city", is_city = true, wp = "Nairobi"}, } export.misc_cities_group = { placename_to_key = false, default_placetype = "city", default_is_city = true, data = export.misc_cities, } export.netherlands_provinces = { ["德倫特省"] = {wp = "Drenthe"}, ["弗萊福蘭省"] = {wp = "Flevoland"}, ["弗里斯蘭省"] = {wp = "Friesland"}, ["格爾德蘭省"] = {wp = "Gelderland"}, ["格羅寧根省"] = {wp = "Groningen (province)"}, ["林堡省(荷蘭)"] = {wp = "Limburg (Netherlands)"}, ["北布拉班特省"] = {wp = "North Brabant"}, ["北荷蘭省"] = {wp = "North Holland"}, ["上艾瑟爾省"] = {wp = "Overijssel"}, ["南荷蘭省"] = {wp = "South Holland"}, ["烏特勒支省"] = {wp = "Utrecht (province)"}, ["澤蘭省"] = {wp = "Zeeland"}, } export.netherlands_group = { placename_to_key = false, default_container = "荷蘭", default_placetype = "province", data = export.netherlands_provinces, } export.new_zealand_regions = { ["北地大區"] = {wp = "Northland Region"}, ["奧克蘭大區"] = {wp = "Auckland Region"}, ["懷卡托大區"] = {wp = "Waikato Region"}, ["豐盛灣大區"] = {wp = "Bay of Plenty Region"}, ["吉斯伯恩大區"] = {wp = "Gisborne District", placetype = {"region", "district"}}, ["霍克斯灣大區"] = {wp = "Hawke's Bay Region"}, ["塔拉納基大區"] = {wp = "Taranaki Region"}, ["馬納瓦圖-旺阿努伊大區"] = {wp = "Manawatū-Whanganui Region"}, ["惠靈頓大區"] = {wp = "Wellington Region"}, ["塔斯曼大區"] = {wp = "Tasman District", placetype = {"region", "district"}}, ["納爾遜大區"] = {wp = "Nelson, New Zealand", placetype = {"region", "city"}, is_city = true}, ["馬爾堡大區"] = {wp = "Marlborough District", placetype = {"region", "district"}}, ["西海岸大區"] = {wp = "West Coast Region"}, ["坎特伯雷大區"] = {wp = "Canterbury Region"}, ["奧塔哥大區"] = {wp = "Otago Region"}, ["南地大區"] = {wp = "Southland Region"}, } export.new_zealand_group = { placename_to_key = false, default_container = "紐西蘭", default_placetype = "region", data = export.new_zealand_regions, } export.norwegian_counties = { ["奧斯陸縣"] = {wp = "Oslo"}, ["羅加蘭縣"] = {wp = "Rogaland"}, ["莫雷-羅姆斯達爾縣"] = {wp = "Møre og Romsdal"}, ["諾爾蘭縣"] = {wp = "Nordland"}, ["東福爾縣"] = {wp = "Østfold"}, ["阿克斯胡斯縣"] = {wp = "Akershus"}, ["布斯克呂縣"] = {wp = "Buskerud"}, ["因蘭德縣"] = {wp = "Innlandet"}, ["西福爾縣"] = {wp = "Vestfold"}, ["泰勒馬克縣"] = {wp = "Telemark"}, ["阿格德爾縣"] = {wp = "Agder"}, ["西地縣"] = {wp = "Vestland"}, ["特倫德拉格縣"] = {wp = "Trøndelag"}, ["特羅姆斯縣"] = {wp = "Troms"}, ["芬馬克縣"] = {wp = "Finnmark"}, } export.norway_group = { placename_to_key = false, default_container = "挪威", default_placetype = "county", data = export.norwegian_counties, } export.pakistan_provinces_and_territories = { ["自由克什米爾"] = {wp = "Azad Kashmir", placetype = {"administrative territory", "autonomous territory", "territory"}}, ["俾路支省"] = {wp = "Balochistan, Pakistan"}, ["吉爾吉特-巴爾蒂斯坦"] = {wp = "Gilgit-Baltistan", placetype = {"administrative territory", "territory"}}, ["伊斯蘭馬巴德首都直轄區"] = {wp = "Islamabad Capital Territory", placetype = {"federal territory", "administrative territory", "territory"}}, ["開伯爾-普赫圖赫瓦省"] = {wp = "Khyber Pakhtunkhwa"}, ["旁遮普省(巴基斯坦)"] = {wp = "Punjab, Pakistan"}, ["信德省"] = {wp = "Sindh"}, } export.pakistan_group = { placename_to_key = false, default_container = "巴基斯坦", default_placetype = "province", data = export.pakistan_provinces_and_territories, } export.philippines_provinces = { ["阿布拉省"] = {wp = "Abra (province)"}, ["北阿古桑省"] = {wp = "Agusan del Norte"}, ["南阿古桑省"] = {wp = "Agusan del Sur"}, ["阿克蘭省"] = {wp = "Aklan"}, ["阿爾拜省"] = {wp = "Albay"}, ["安蒂克省"] = {wp = "Antique (province)"}, ["阿帕亞沃省"] = {wp = "Apayao"}, ["奧羅拉省"] = {wp = "Aurora (province)"}, ["巴西蘭省"] = {wp = "Basilan"}, ["巴丹省"] = {wp = "Bataan"}, ["巴達內斯省"] = {wp = "Batanes"}, ["八打雁省"] = {wp = "Batangas"}, ["本格特省"] = {wp = "Benguet"}, ["比利蘭省"] = {wp = "Biliran"}, ["保和省"] = {wp = "Bohol"}, ["布基農省"] = {wp = "Bukidnon"}, ["布拉干省"] = {wp = "Bulacan"}, ["卡加延省"] = {wp = "Cagayan"}, ["北甲馬仁省"] = {wp = "Camarines Norte"}, ["南甲馬仁省"] = {wp = "Camarines Sur"}, ["卡米金省"] = {wp = "Camiguin"}, ["卡皮斯省"] = {wp = "Capiz"}, ["卡坦端內斯省"] = {wp = "Catanduanes"}, ["甲米地省"] = {wp = "Cavite"}, ["宿霧省"] = {wp = "Cebu"}, ["哥打巴托省"] = {wp = "Cotabato"}, ["達沃德奧羅省"] = {wp = "Davao de Oro"}, ["北達沃省"] = {wp = "Davao del Norte"}, ["南達沃省"] = {wp = "Davao del Sur"}, ["西達沃省"] = {wp = "Davao Occidental"}, ["東達沃省"] = {wp = "Davao Oriental"}, ["迪納加特群島省"] = {wp = "Dinagat Islands"}, ["東薩馬省"] = {wp = "Eastern Samar"}, ["吉馬拉斯省"] = {wp = "Guimaras"}, ["伊富高省"] = {wp = "Ifugao"}, ["北伊羅科斯省"] = {wp = "Ilocos Norte"}, ["南伊羅科斯省"] = {wp = "Ilocos Sur"}, ["伊洛伊洛省"] = {wp = "Iloilo"}, ["伊莎貝拉省"] = {wp = "Isabela (province)"}, ["卡林加省"] = {wp = "Kalinga (province)"}, ["拉烏尼翁省"] = {wp = "La Union"}, ["拉古納省"] = {wp = "Laguna (province)"}, ["北拉瑙省"] = {wp = "Lanao del Norte"}, ["南拉瑙省"] = {wp = "Lanao del Sur"}, ["萊特省"] = {wp = "Leyte (province)"}, ["北馬京達瑙省"] = {wp = "Maguindanao del Norte"}, ["南馬京達瑙省"] = {wp = "Maguindanao del Sur"}, ["馬林杜克省"] = {wp = "Marinduque"}, ["馬斯巴特省"] = {wp = "Masbate"}, ["西米薩米斯省"] = {wp = "Misamis Occidental"}, ["東米薩米斯省"] = {wp = "Misamis Oriental"}, ["山岳省"] = {wp = "Mountain Province"}, ["西內格羅斯省"] = {wp = "Negros Occidental"}, ["東內格羅斯省"] = {wp = "Negros Oriental"}, ["北薩馬省"] = {wp = "Northern Samar"}, ["新怡詩夏省"] = {wp = "Nueva Ecija"}, ["新比斯開省"] = {wp = "Nueva Vizcaya"}, ["西民都洛省"] = {wp = "Occidental Mindoro"}, ["東民都洛省"] = {wp = "Oriental Mindoro"}, ["巴拉望省"] = {wp = "Palawan"}, ["邦板牙省"] = {wp = "Pampanga"}, ["邦阿西楠省"] = {wp = "Pangasinan"}, ["奎松省"] = {wp = "Quezon"}, ["基里諾省"] = {wp = "Quirino"}, ["黎剎省"] = {wp = "Rizal (province)"}, ["朗布隆省"] = {wp = "Romblon"}, ["薩馬省"] = {wp = "Samar (province)"}, ["薩蘭加尼省"] = {wp = "Sarangani"}, ["錫基霍爾省"] = {wp = "Siquijor"}, ["索索貢省"] = {wp = "Sorsogon"}, ["南哥打巴托省"] = {wp = "South Cotabato"}, ["南萊特省"] = {wp = "Southern Leyte"}, ["蘇丹庫達拉省"] = {wp = "Sultan Kudarat"}, ["蘇祿省"] = {wp = "Sulu"}, ["北蘇里高省"] = {wp = "Surigao del Norte"}, ["南蘇里高省"] = {wp = "Surigao del Sur"}, ["塔拉克省"] = {wp = "Tarlac"}, ["塔威塔威省"] = {wp = "Tawi-Tawi"}, ["三描禮士省"] = {wp = "Zambales"}, ["北三寶顏省"] = {wp = "Zamboanga del Norte"}, ["南三寶顏省"] = {wp = "Zamboanga del Sur"}, ["三寶顏錫布蓋省"] = {wp = "Zamboanga Sibugay"}, ["馬尼拉都會區"] = {wp = "Metro Manila", placetype = {"region", "province"}}, } export.philippines_group = { placename_to_key = false, default_container = "菲律賓", default_placetype = "province", data = export.philippines_provinces, } export.poland_voivodeships = { ["下西里西亞省"] = {wp = "Lower Silesian Voivodeship"}, ["庫亞維-波美拉尼亞省"] = {wp = "Kuyavian-Pomeranian Voivodeship"}, ["盧布林省"] = {wp = "Lublin Voivodeship"}, ["盧布斯省"] = {wp = "Lubusz Voivodeship"}, ["羅茲省"] = {wp = "Łódź Voivodeship"}, ["小波蘭省"] = {wp = "Lesser Poland Voivodeship"}, ["馬佐夫舍省"] = {wp = "Masovian Voivodeship"}, ["奧波萊省"] = {wp = "Opole Voivodeship"}, ["喀爾巴阡山省"] = {wp = "Subcarpathian Voivodeship"}, ["波德拉謝省"] = {wp = "Podlaskie Voivodeship"}, ["波美拉尼亞省"] = {wp = "Pomeranian Voivodeship"}, ["西里西亞省"] = {wp = "Silesian Voivodeship"}, ["神聖十字省"] = {wp = "Świętokrzyskie Voivodeship"}, ["瓦爾米亞-馬祖里省"] = {wp = "Warmian-Masurian Voivodeship"}, ["大波蘭省"] = {wp = "Greater Poland Voivodeship"}, ["西波美拉尼亞省"] = {wp = "West Pomeranian Voivodeship"}, } export.poland_group = { placename_to_key = false, default_container = "波蘭", default_placetype = "voivodeship", data = export.poland_voivodeships, } export.portugal_districts_and_autonomous_regions = { ["亞速爾群島"] = {wp = "Azores", placetype = {"autonomous region", "region"}}, ["阿維羅區"] = {wp = "Aveiro District"}, ["貝雅區"] = {wp = "Beja District"}, ["布拉加區"] = {wp = "Braga District"}, ["布拉干薩區"] = {wp = "Bragança District"}, ["卡斯特洛布蘭科區"] = {wp = "Castelo Branco District"}, ["科英布拉區"] = {wp = "Coimbra District"}, ["埃武拉區"] = {wp = "Évora District"}, ["法魯區"] = {wp = "Faro District"}, ["瓜達區"] = {wp = "Guarda District"}, ["萊里亞區"] = {wp = "Leiria District"}, ["里斯本區"] = {wp = "Lisbon District"}, ["馬德拉島"] = {wp = "Madeira", placetype = {"autonomous region", "region"}}, ["波塔萊格里區"] = {wp = "Portalegre District"}, ["波爾圖區"] = {wp = "Porto District"}, ["聖塔倫區"] = {wp = "Santarém District"}, ["塞圖巴爾區"] = {wp = "Setúbal District"}, ["維亞納堡區"] = {wp = "Viana do Castelo District"}, ["維拉雷亞爾區"] = {wp = "Vila Real District"}, ["維塞烏區"] = {wp = "Viseu District"}, } export.portugal_group = { placename_to_key = false, default_container = "葡萄牙", default_placetype = "district", data = export.portugal_districts_and_autonomous_regions, } local russia_oblast = {placetype = "oblast"} local russia_krai = {placetype = "krai"} local russia_republic = {placetype = "republic"} local russia_autonomous_okrug = {placetype = {"autonomous okrug", "okrug"}} export.russia_federal_subjects = { -- autonomous oblast ["猶太自治州"] = {placetype = {"autonomous oblast", "oblast"}, wp = "Jewish Autonomous Oblast"}, -- autonomous okrugs ["楚科奇自治區"] = {wp = "Chukotka Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西自治區"] = {wp = "Khanty-Mansi Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["漢特-曼西亞"] = {alias_of = "漢特-曼西自治區"}, ["涅涅茨自治區"] = {wp = "Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, ["亞馬洛-涅涅茨自治區"] = {wp = "Yamalo-Nenets Autonomous Okrug", placetype = {"autonomous okrug", "okrug"}}, -- krais ["阿爾泰邊疆區"] = {wp = "Altai Krai", placetype = "krai"}, ["堪察加邊疆區"] = {wp = "Kamchatka Krai", placetype = "krai"}, ["哈巴羅夫斯克邊疆區"] = {wp = "Khabarovsk Krai", placetype = "krai"}, ["克拉斯諾達爾邊疆區"] = {wp = "Krasnodar Krai", placetype = "krai"}, ["克拉斯諾亞爾斯克邊疆區"] = {wp = "Krasnoyarsk Krai", placetype = "krai"}, ["彼爾姆邊疆區"] = {wp = "Perm Krai", placetype = "krai"}, ["濱海邊疆區"] = {wp = "Primorsky Krai", placetype = "krai"}, ["斯塔夫羅波爾邊疆區"] = {wp = "Stavropol Krai", placetype = "krai"}, ["外貝加爾邊疆區"] = {wp = "Zabaykalsky Krai", placetype = "krai"}, -- oblasts ["阿穆爾州"] = russia_oblast, ["阿爾漢格爾斯克州"] = russia_oblast, ["阿斯特拉罕州"] = russia_oblast, ["別爾哥羅德州"] = russia_oblast, ["布良斯克州"] = russia_oblast, ["車裡雅賓斯克州"] = russia_oblast, ["伊爾庫茨克州"] = russia_oblast, ["伊萬諾沃州"] = russia_oblast, ["加里寧格勒州"] = russia_oblast, ["卡盧加州"] = russia_oblast, ["克麥羅沃州"] = russia_oblast, ["基洛夫州"] = russia_oblast, ["科斯特羅馬州"] = russia_oblast, ["庫爾干州"] = russia_oblast, ["庫爾斯克州"] = russia_oblast, ["列寧格勒州"] = russia_oblast, ["利佩茨克州"] = russia_oblast, ["馬加丹州"] = russia_oblast, ["莫斯科州"] = russia_oblast, ["摩爾曼斯克州"] = russia_oblast, ["下諾夫哥羅德州"] = russia_oblast, ["諾夫哥羅德州"] = russia_oblast, ["新西伯利亞州"] = russia_oblast, ["鄂木斯克州"] = russia_oblast, ["奧倫堡州"] = russia_oblast, ["奧廖爾州"] = russia_oblast, ["奔薩州"] = russia_oblast, ["普斯科夫州"] = russia_oblast, ["羅斯托夫州"] = russia_oblast, ["梁贊州"] = russia_oblast, ["薩哈林州"] = {wp = "Sakhalin Oblast", placetype = "oblast"}, ["薩馬拉州"] = russia_oblast, ["薩拉托夫州"] = russia_oblast, ["斯摩棱斯克州"] = russia_oblast, ["斯維爾德洛夫斯克州"] = russia_oblast, ["坦波夫州"] = russia_oblast, ["托木斯克州"] = russia_oblast, ["圖拉州"] = russia_oblast, ["特維爾州"] = russia_oblast, ["秋明州"] = russia_oblast, ["烏里揚諾夫斯克州"] = russia_oblast, ["弗拉基米爾州"] = russia_oblast, ["伏爾加格勒州"] = russia_oblast, ["沃洛格達州"] = russia_oblast, ["沃羅涅日州"] = russia_oblast, ["雅羅斯拉夫爾州"] = russia_oblast, -- republics ["阿迪格共和國"] = russia_republic, ["巴什科爾托斯坦共和國"] = russia_republic, ["布里亞特共和國"] = russia_republic, ["達吉斯坦共和國"] = russia_republic, ["印古什共和國"] = russia_republic, ["卡爾梅克共和國"] = russia_republic, ["卡累利亞共和國"] = {wp = "Republic of Karelia", placetype = "republic"}, ["哈卡斯共和國"] = russia_republic, ["莫爾多瓦共和國"] = russia_republic, ["北奧塞梯-阿蘭尼亞共和國"] = {wp = "North Ossetia–Alania", placetype = "republic"}, ["北奧塞梯"] = {alias_of = "北奧塞梯-阿蘭尼亞共和國"}, ["韃靼斯坦共和國"] = russia_republic, ["阿爾泰共和國"] = {wp = "Altai Republic", placetype = "republic"}, ["車臣共和國"] = russia_republic, ["楚瓦什共和國"] = russia_republic, ["卡巴爾達-巴爾卡爾共和國"] = russia_republic, ["卡拉恰伊-切爾克斯共和國"] = russia_republic, ["科米共和國"] = {wp = "Komi Republic", placetype = "republic"}, ["馬里埃爾共和國"] = russia_republic, ["薩哈共和國"] = {wp = "Sakha Republic", placetype = "republic"}, ["雅庫特"] = {alias_of = "薩哈共和國"}, ["圖瓦共和國"] = russia_republic, ["烏德穆爾特共和國"] = russia_republic, } export.russia_group = { placename_to_key = false, default_container = "俄羅斯", default_placetype = "oblast", data = export.russia_federal_subjects, } export.saudi_arabia_provinces = { ["利雅得省"] = {wp = "Riyadh Province"}, ["麥加省"] = {wp = "Mecca Province"}, ["東部省(沙特)"] = {wp = "Eastern Province, Saudi Arabia", no_auto_augment_container = true}, ["麥地那省"] = {wp = "Medina Province"}, ["阿西爾省"] = {wp = "Asir"}, ["吉贊省"] = {wp = "Jazan Province"}, ["卡西姆省"] = {wp = "Al-Qassim Province"}, ["塔布克省"] = {wp = "Tabuk Province"}, ["哈伊爾省"] = {wp = "Ha'il Province"}, ["焦夫省"] = {wp = "Al-Jawf Province"}, ["納季蘭省"] = {wp = "Najran Province"}, ["北部邊界省"] = {wp = "Northern Borders Province"}, ["巴哈省"] = {wp = "Al-Bahah Province"}, } export.saudi_arabia_group = { placename_to_key = false, default_container = "沙烏地阿拉伯", default_placetype = "province", data = export.saudi_arabia_provinces, } export.south_africa_provinces = { ["東開普省"] = {wp = "Eastern Cape"}, ["自由邦省"] = {wp = "Free State (South African province)"}, ["豪登省"] = {wp = "Gauteng"}, ["夸祖魯-納塔爾省"] = {wp = "KwaZulu-Natal"}, ["林波波省"] = {wp = "Limpopo"}, ["姆普馬蘭加省"] = {wp = "Mpumalanga"}, ["西北省(南非)"] = {wp = "North West (South African province)"}, ["北開普省"] = {wp = "Northern Cape"}, ["西開普省"] = {wp = "Western Cape"}, } export.south_africa_group = { placename_to_key = false, default_container = "南非", default_placetype = "province", data = export.south_africa_provinces, } export.ukraine_oblasts = { ["切爾卡瑟州"] = {wp = "Cherkasy Oblast"}, ["切爾尼戈夫州"] = {wp = "Chernihiv Oblast"}, ["切爾諾夫策州"] = {wp = "Chernivtsi Oblast"}, ["第聶伯羅彼得羅夫斯克州"] = {wp = "Dnipropetrovsk Oblast"}, ["頓涅茨克州"] = {wp = "Donetsk Oblast"}, ["伊萬諾-弗蘭科夫斯克州"] = {wp = "Ivano-Frankivsk Oblast"}, ["哈爾科夫州"] = {wp = "Kharkiv Oblast"}, ["赫爾松州"] = {wp = "Kherson Oblast"}, ["赫梅利尼茨基州"] = {wp = "Khmelnytskyi Oblast"}, ["基洛夫格勒州"] = {wp = "Kirovohrad Oblast"}, ["基輔州"] = {wp = "Kyiv Oblast"}, ["盧甘斯克州"] = {wp = "Luhansk Oblast"}, ["利沃夫州"] = {wp = "Lviv Oblast"}, ["尼古拉耶夫州"] = {wp = "Mykolaiv Oblast"}, ["敖德薩州"] = {wp = "Odesa Oblast"}, ["波爾塔瓦州"] = {wp = "Poltava Oblast"}, ["羅夫諾州"] = {wp = "Rivne Oblast"}, ["蘇梅州"] = {wp = "Sumy Oblast"}, ["捷爾諾波爾州"] = {wp = "Ternopil Oblast"}, ["文尼察州"] = {wp = "Vinnytsia Oblast"}, ["沃里尼亞州"] = {wp = "Volyn Oblast"}, ["外喀爾巴阡州"] = {wp = "Zakarpattia Oblast"}, ["扎波羅熱州"] = {wp = "Zaporizhzhia Oblast"}, ["日托米爾州"] = {wp = "Zhytomyr Oblast"}, } export.ukraine_group = { placename_to_key = false, default_container = "烏克蘭", default_placetype = "oblast", data = export.ukraine_oblasts, } export.wales_principal_areas = { ["布拉艾諾格溫特"] = {wp = "Blaenau Gwent"}, ["布里真德"] = {wp = "Bridgend County Borough"}, ["卡菲利"] = {wp = "Caerphilly County Borough"}, ["卡馬森郡"] = {wp = "Carmarthenshire", placetype = "county"}, ["克雷地基昂"] = {wp = "Ceredigion", placetype = "county"}, ["科溫"] = {wp = "Conwy County Borough"}, ["登比郡"] = {wp = "Denbighshire", placetype = "county"}, ["弗林特郡"] = {wp = "Flintshire", placetype = "county"}, ["格溫內德"] = {wp = "Gwynedd", placetype = "county"}, ["安格爾西島"] = {wp = "Isle of Anglesey", placetype = "county"}, ["默瑟蒂德菲爾"] = {wp = "Merthyr Tydfil County Borough"}, ["蒙茅斯郡"] = {wp = "Monmouthshire", placetype = "county"}, ["尼斯-波特塔爾博特"] = {wp = "Neath Port Talbot"}, ["彭布羅克郡"] = {wp = "Pembrokeshire", placetype = "county"}, ["波伊斯"] = {wp = "Powys", placetype = "county"}, ["朗達坎農塔夫"] = {wp = "Rhondda Cynon Taf"}, ["托爾范"] = {wp = "Torfaen"}, ["格拉摩根谷"] = {wp = "Vale of Glamorgan"}, ["雷克瑟姆"] = {wp = "Wrexham County Borough"}, } export.wales_group = { placename_to_key = false, default_container = {key = "威爾斯", placetype = "constituent country"}, default_placetype = "county borough", data = export.wales_principal_areas, } ----------------------------------------------------------------------------------- -- City groups -- ----------------------------------------------------------------------------------- export.australia_cities = { ["阿德萊德"] = {container = "南澳大利亞", wp = "Adelaide"}, ["布里斯班"] = {container = "昆士蘭", wp = "Brisbane"}, ["坎培拉"] = {container = "澳大利亞首都領地", wp = "Canberra"}, ["墨爾本"] = {container = "維多利亞州", wp = "Melbourne"}, ["紐卡素"] = {container = "新南威爾斯", wp = "Newcastle, New South Wales"}, ["伯斯"] = {container = "西澳大利亞", wp = "Perth"}, ["悉尼"] = {container = "新南威爾斯", wp = "Sydney"}, } export.australia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "澳大利亞", default_placetype = "city", default_is_city = true, data = export.australia_cities, } export.brazil_cities = { ["聖保羅"] = {container = "聖保羅州", wp = "São Paulo"}, ["里約熱內盧"] = {container = "里約熱內盧州", wp = "Rio de Janeiro"}, ["貝洛奧里藏特"] = {container = "米納斯吉拉斯", wp = "Belo Horizonte"}, ["累西腓"] = {container = "伯南布哥州", wp = "Recife"}, ["阿雷格里港"] = {container = "南里奧格蘭德州", wp = "Porto Alegre"}, ["巴西利亞"] = {container = "巴西聯邦區", wp = "Brasília"}, ["福塔萊薩"] = {container = "塞阿拉州", wp = "Fortaleza"}, ["薩爾瓦多"] = {container = "巴伊亞", wp = "Salvador, Bahia"}, ["庫里蒂巴"] = {container = "巴拉那州", wp = "Curitiba"}, ["坎皮納斯"] = {container = "聖保羅州", wp = "Campinas"}, ["戈亞尼亞"] = {container = "戈亞斯州", wp = "Goiânia"}, ["瑪瑙斯"] = {container = "亞馬遜州", wp = "Manaus"}, ["伯利恆"] = {container = "帕拉州", wp = "Belém, Pará"}, ["維多利亞"] = {container = "聖埃斯皮里圖州", wp = "Vitória, Espírito Santo"}, ["聖路易斯"] = {container = "馬拉尼昂州", wp = "São Luís"}, ["納塔爾"] = {container = "北里奧格蘭德州", wp = "Natal, Rio Grande do Norte"}, ["弗洛里亞諾波利斯"] = {container = "聖卡塔琳娜州", wp = "Florianópolis"}, ["馬塞約"] = {container = "阿拉戈亞斯州", wp = "Maceió"}, ["若昂佩索阿"] = {container = "帕拉伊巴州", wp = "João Pessoa"}, ["特雷齊納"] = {container = "皮奧伊州", wp = "Teresina"}, ["隆德里納"] = {container = "巴拉那州", wp = "Londrina"}, } export.brazil_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "巴西", default_placetype = "city", default_is_city = true, data = export.brazil_cities, } export.canada_cities = { ["多倫多"] = {container = "安大略", wp = "Toronto"}, ["蒙特婁"] = {container = "魁北克", wp = "Montreal"}, ["溫哥華"] = {container = "英屬哥倫比亞", wp = "Vancouver"}, ["卡加里"] = {container = "亞伯達", wp = "Calgary"}, ["愛民頓"] = {container = "亞伯達", wp = "Edmonton"}, ["渥太華"] = {container = "安大略", wp = "Ottawa"}, ["魁北克城"] = {container = "魁北克", wp = "Quebec City"}, ["溫尼伯"] = {container = "馬尼托巴", wp = "Winnipeg"}, ["漢密爾頓"] = {container = "安大略", wp = "Hamilton, Ontario"}, } export.canada_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "加拿大", default_placetype = "city", default_is_city = true, data = export.canada_cities, } export.france_cities = { ["巴黎"] = {container = "法蘭西島大區", wp = "Paris"}, ["里昂"] = {container = "奧弗涅-隆河-阿爾卑斯大區", wp = "Lyon"}, ["馬賽"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Marseille"}, ["里爾"] = {container = "上法蘭西大區", wp = "Lille"}, ["波爾多"] = {container = "新阿基坦大區", wp = "Bordeaux"}, ["圖盧茲"] = {container = "奧克西塔尼大區", wp = "Toulouse"}, ["尼斯"] = {container = "普羅旺斯-阿爾卑斯-蔚藍海岸大區", wp = "Nice"}, ["南特"] = {container = "盧瓦爾河地區大區", wp = "Nantes"}, ["史特拉斯堡"] = {container = "大東部大區", wp = "Strasbourg"}, ["雷恩"] = {container = "布列塔尼大區", wp = "Rennes"}, } export.france_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "法國", default_placetype = "city", default_is_city = true, data = export.france_cities, } export.germany_cities = { ["科隆"] = {container = "北萊茵-威斯特法倫", wp = "Cologne"}, ["杜塞爾多夫"] = {container = "北萊茵-威斯特法倫", wp = "Düsseldorf"}, ["多特蒙德"] = {container = "北萊茵-威斯特法倫", wp = "Dortmund"}, ["埃森"] = {container = "北萊茵-威斯特法倫", wp = "Essen"}, ["柏林"] = {wp = "Berlin"}, ["法蘭克福"] = {container = "黑森", wp = "Frankfurt"}, ["漢堡"] = {wp = "Hamburg"}, ["慕尼黑"] = {container = "巴伐利亞", wp = "Munich"}, ["斯圖加特"] = {container = "巴登-符騰堡", wp = "Stuttgart"}, ["曼海姆"] = {container = "巴登-符騰堡", wp = "Mannheim"}, ["紐倫堡"] = {container = "巴伐利亞", wp = "Nuremberg"}, ["漢諾威"] = {container = "下薩克森", wp = "Hanover"}, ["比勒費爾德"] = {container = "北萊茵-威斯特法倫", wp = "Bielefeld"}, ["萊比錫"] = {container = "薩克森", wp = "Leipzig"}, ["亞琛"] = {container = "北萊茵-威斯特法倫", wp = "Aachen"}, ["不來梅"] = {wp = "Bremen"}, } export.germany_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "德國", default_placetype = "city", default_is_city = true, data = export.germany_cities, } export.india_cities = { ["德里"] = {container = {key = "德里", placetype = "union territory"}, wp = "Delhi"}, ["孟買"] = {container = "馬哈拉施特拉邦", wp = "Mumbai"}, ["加爾各答"] = {container = "西孟加拉邦", wp = "Kolkata"}, ["班加羅爾"] = {container = "卡納塔克邦", wp = "Bengaluru"}, ["金奈"] = {container = "泰米爾納德邦", wp = "Chennai"}, ["海德拉巴"] = {container = "特倫甘納邦", wp = "Hyderabad"}, ["艾哈邁達巴德"] = {container = "古吉拉特邦", wp = "Ahmedabad"}, ["浦那"] = {container = "馬哈拉施特拉邦", wp = "Pune"}, ["蘇拉特"] = {container = "古吉拉特邦", wp = "Surat"}, ["勒克瑙"] = {container = "北方邦", wp = "Lucknow"}, ["齋浦爾"] = {container = "拉賈斯坦邦", wp = "Jaipur"}, ["坎普爾"] = {container = "北方邦", wp = "Kanpur"}, ["那格浦爾"] = {container = "馬哈拉施特拉邦", wp = "Nagpur"}, ["巴特那"] = {container = "比哈爾邦", wp = "Patna"}, ["瓦拉納西"] = {container = "北方邦", wp = "Varanasi"}, ["印多爾"] = {container = "中央邦", wp = "Indore"}, ["博帕爾"] = {container = "中央邦", wp = "Bhopal"}, ["阿格拉"] = {container = "北方邦", wp = "Agra"}, ["科欽"] = {container = "喀拉拉邦", wp = "Kochi"}, ["維沙卡帕特南"] = {container = "安得拉邦", wp = "Visakhapatnam"}, ["齋普爾"] = {alias_of = "齋浦爾"}, } export.india_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "印度", default_placetype = "city", default_is_city = true, data = export.india_cities, } export.indonesia_cities = { ["雅加達"] = {container = "雅加達首都特區", wp = "Jakarta"}, ["泗水"] = {container = "東爪哇省", wp = "Surabaya"}, ["勿加泗"] = {container = "西爪哇省", wp = "Bekasi"}, ["萬隆"] = {container = "西爪哇省", wp = "Bandung"}, ["棉蘭"] = {container = "北蘇門答臘省", wp = "Medan"}, ["德波"] = {container = "西爪哇省", wp = "Depok"}, ["萬丹市"] = {container = "萬丹省", wp = "Tangerang"}, ["巨港"] = {container = "南蘇門答臘省", wp = "Palembang"}, ["三寶壟"] = {container = "中爪哇省", wp = "Semarang"}, ["望加錫"] = {container = "南蘇拉威西省", wp = "Makassar"}, ["武端"] = {container = "廖內群島省", wp = "Batam"}, ["茂物"] = {container = "西爪哇省", wp = "Bogor"}, ["北干巴魯"] = {container = "廖內省", wp = "Pekanbaru"}, ["班達爾楠榜"] = {container = "楠榜省", wp = "Bandar Lampung"}, ["巴東"] = {container = "西蘇門答臘省", wp = "Padang"}, ["薩馬林達"] = {container = "東加里曼丹省", wp = "Samarinda"}, ["瑪琅"] = {container = "東爪哇省", wp = "Malang"}, ["日惹"] = {container = "日惹特區", wp = "Yogyakarta"}, ["登巴薩"] = {container = "峇里省", wp = "Denpasar"}, ["哲勒貢"] = {container = "西爪哇省", wp = "Cirebon"}, ["梭羅"] = {container = "中爪哇省", wp = "Surakarta"}, ["馬辰"] = {container = "南加里曼丹省", wp = "Banjarmasin"}, ["打橫"] = {container = "西爪哇省", wp = "Tasikmalaya"}, } export.indonesia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "印度尼西亞", default_placetype = "city", default_is_city = true, data = export.indonesia_cities, } export.italy_cities = { ["米蘭"] = {container = "倫巴第", wp = "Milan"}, ["那不勒斯"] = {container = "坎帕尼亞", wp = "Naples"}, ["羅馬"] = {container = "拉齊奧", wp = "Rome"}, ["都靈"] = {container = "皮埃蒙特", wp = "Turin"}, ["威尼斯"] = {container = "威尼托", wp = "Venice"}, ["佛羅倫斯"] = {container = "托斯卡納", wp = "Florence"}, ["巴里"] = {container = "普利亞", wp = "Bari"}, ["巴勒莫"] = {container = "西西里", wp = "Palermo"}, ["卡塔尼亞"] = {container = "西西里", wp = "Catania"}, ["布雷西亞"] = {container = "倫巴第", wp = "Brescia"}, ["熱那亞"] = {container = "利古里亞", wp = "Genoa"}, } export.italy_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "region"), default_container = "意大利", default_placetype = "city", default_is_city = true, data = export.italy_cities, } export.japan_cities = { ["東京"] = {keydesc = "[[東京]]都會區,[[日本]]的[[首都]]和[[都]]級行政區", placetype = {"city", "prefecture"}, divs = { {type = "special wards", container_parent_type = false}, {type = "cities", prep = "in"}, }, }, ["橫濱"] = {container = "神奈川縣", wp = "Yokohama"}, ["大阪"] = {container = "大阪府", wp = "Osaka"}, ["名古屋"] = {container = "愛知縣", wp = "Nagoya"}, ["札幌"] = {container = "北海道", wp = "Sapporo"}, ["福岡"] = {container = "福岡縣", wp = "Fukuoka"}, ["神戶"] = {container = "兵庫縣", wp = "Kobe"}, ["京都"] = {container = "京都府", wp = "Kyoto"}, ["川崎"] = {container = "神奈川縣", wp = "Kawasaki, Kanagawa"}, ["廣島"] = {container = "廣島縣", wp = "Hiroshima"}, ["仙台"] = {container = "宮城縣", wp = "Sendai"}, ["北九州"] = {container = "福岡縣", wp = "Kitakyushu"}, ["新潟"] = {container = "新潟縣", wp = "Niigata (city)"}, ["靜岡"] = {container = "靜岡縣", wp = "Shizuoka (city)"}, ["岡山"] = {container = "岡山縣", wp = "Okayama"}, ["熊本"] = {container = "熊本縣", wp = "Kumamoto"}, ["鹿兒島"] = {container = "鹿兒島縣", wp = "Kagoshima"}, } export.japan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "prefecture"), default_container = "日本", default_placetype = "city", default_is_city = true, data = export.japan_cities, } export.mexico_cities = { ["墨西哥城"] = {wp = "墨西哥城"}, ["蒙特雷"] = {container = "新萊昂州", wp = "Monterrey"}, ["瓜達拉哈拉"] = {container = "哈利斯科州", wp = "Guadalajara"}, ["普埃布拉市"] = {container = "普埃布拉州", wp = "Puebla (city)"}, ["托盧卡"] = {container = "墨西哥州", wp = "Toluca"}, ["蒂華納"] = {container = "下加利福尼亞州", wp = "Tijuana"}, ["萊昂"] = {container = "瓜納華托州", wp = "León, Guanajuato"}, ["克雷塔羅市"] = {container = "克雷塔羅州", wp = "Querétaro (city)"}, ["華雷斯城"] = {container = "奇瓦瓦州", wp = "Ciudad Juárez"}, ["托雷翁"] = {container = "科阿韋拉州", wp = "Torreón"}, ["梅里達"] = {container = "尤卡坦州", wp = "Mérida, Yucatán"}, ["聖路易斯波托西市"] = {container = "聖路易斯波托西州", wp = "San Luis Potosí (city)"}, ["阿瓜斯卡連特斯市"] = {container = "阿瓜斯卡連特斯州", wp = "Aguascalientes (city)"}, ["墨西卡利"] = {container = "下加利福尼亞州", wp = "Mexicali"}, } export.mexico_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "墨西哥", default_placetype = "city", default_is_city = true, data = export.mexico_cities, } export.nigeria_cities = { ["拉各斯"] = {container = "拉各斯州", wp = "Lagos"}, ["卡諾市"] = {container = "卡諾州", wp = "Kano (city)"}, ["伊巴丹"] = {container = "奧約州", wp = "Ibadan"}, ["阿布賈"] = {container = {key = "阿布賈聯邦首都轄區", placetype = "federal territory"}, wp = "Abuja"}, ["哈科特港"] = {container = "河流州", wp = "Port Harcourt"}, ["卡杜納市"] = {container = "卡杜納州", wp = "Kaduna (city)"}, ["貝寧城"] = {container = "埃多州", wp = "Benin City"}, ["阿巴"] = {container = "阿比亞州", wp = "Aba, Nigeria"}, ["奧尼查"] = {container = "阿南布拉州", wp = "Onitsha"}, ["邁杜古里"] = {container = "博爾諾州", wp = "Maiduguri"}, ["伊洛林"] = {container = "誇拉州", wp = "Ilorin"}, ["索科托市"] = {container = "索科托州", wp = "Sokoto (city)"}, ["喬斯"] = {container = "高原州", wp = "Jos"}, ["扎里亞"] = {container = "卡杜納州", wp = "Zaria"}, ["埃努古市"] = {container = "埃努古州", wp = "Enugu (city)"}, } export.nigeria_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "奈及利亞", default_placetype = "city", default_is_city = true, data = export.nigeria_cities, } export.pakistan_cities = { ["卡拉奇"] = {container = "信德省", wp = "Karachi"}, ["拉合爾"] = {container = "旁遮普省(巴基斯坦)", wp = "Lahore"}, ["拉瓦爾品第"] = {container = "旁遮普省(巴基斯坦)", wp = "Rawalpindi"}, ["伊斯蘭馬巴德"] = {container = {key = "伊斯蘭馬巴德首都直轄區", placetype = "federal territory"}, wp = "Islamabad"}, ["費薩拉巴德"] = {container = "旁遮普省(巴基斯坦)", wp = "Faisalabad"}, ["古傑蘭瓦拉"] = {container = "旁遮普省(巴基斯坦)", wp = "Gujranwala"}, ["海德拉巴(巴基斯坦)"] = {container = "信德省", wp = "Hyderabad, Pakistan"}, ["木爾坦"] = {container = "旁遮普省(巴基斯坦)", wp = "Multan"}, ["白沙瓦"] = {container = "開伯爾-普赫圖赫瓦省", wp = "Peshawar"}, ["奎達"] = {container = "俾路支省", wp = "Quetta"}, ["薩戈達"] = {container = "旁遮普省(巴基斯坦)", wp = "Sargodha"}, ["錫亞爾科特"] = {container = "旁遮普省(巴基斯坦)", wp = "Sialkot"}, } export.pakistan_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "巴基斯坦", default_placetype = "city", default_is_city = true, data = export.pakistan_cities, } export.philippines_cities = { ["奎松市"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Quezon City"}, ["馬尼拉"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Manila"}, ["達沃市"] = {container = "南達沃省", wp = "Davao City"}, ["卡洛坎"] = {container = {key = "馬尼拉都會區", placetype = "region"}, wp = "Caloocan"}, ["三寶顏市"] = {container = "南三寶顏省", wp = "Zamboanga City"}, ["宿霧市"] = {container = "宿霧省", wp = "Cebu City"}, ["安蒂波洛"] = {container = "黎剎省", wp = "Antipolo"}, ["卡加延德奧羅"] = {container = "東米薩米斯省", wp = "Cagayan de Oro"}, ["達斯馬里尼亞斯"] = {container = "甲米地省", wp = "Dasmariñas"}, ["棉蘭老將軍城"] = {container = "南哥打巴托省", wp = "General Santos"}, ["聖何塞德爾蒙特"] = {container = "布拉干省", wp = "San Jose del Monte"}, ["巴科洛德"] = {container = "西內格羅斯省", wp = "Bacolod"}, ["卡蘭巴"] = {container = "拉古納省", wp = "Calamba, Laguna"}, ["天使城"] = {container = "邦板牙省", wp = "Angeles City"}, ["伊洛伊洛市"] = {container = "伊洛伊洛省", wp = "Iloilo City"}, } export.philippines_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "菲律賓", default_placetype = "city", default_is_city = true, data = export.philippines_cities, } export.russia_cities = { ["莫斯科"] = {wp = "Moscow"}, ["聖彼得堡"] = {wp = "Saint Petersburg"}, ["新西伯利亞"] = {container = "新西伯利亞州", wp = "Novosibirsk"}, ["葉卡捷琳堡"] = {container = "斯維爾德洛夫斯克州", wp = "Yekaterinburg"}, ["下諾夫哥羅德"] = {container = "下諾夫哥羅德州", wp = "Nizhny Novgorod"}, ["喀山"] = {container = {key = "韃靼斯坦共和國", placetype = "republic"}, wp = "Kazan"}, ["車裡雅賓斯克市"] = {container = "車裡雅賓斯克州", wp = "Chelyabinsk"}, ["頓河畔羅斯托夫"] = {container = "羅斯托夫州", wp = "Rostov-on-Don"}, ["克拉斯諾達爾市"] = {container = {key = "克拉斯諾達爾邊疆區", placetype = "krai"}, wp = "Krasnodar"}, ["薩馬拉市"] = {container = "薩馬拉州", wp = "Samara"}, ["克拉斯諾亞爾斯克市"] = {container = {key = "克拉斯諾亞爾斯克邊疆區", placetype = "krai"}, wp = "Krasnoyarsk"}, ["烏法"] = {container = {key = "巴什科爾托斯坦共和國", placetype = "republic"}, wp = "Ufa"}, ["薩拉托夫市"] = {container = "薩拉托夫州", wp = "Saratov"}, ["鄂木斯克市"] = {container = "鄂木斯克州", wp = "Omsk"}, ["沃羅涅日市"] = {container = "沃羅涅日州", wp = "Voronezh"}, ["伏爾加格勒市"] = {container = "伏爾加格勒州", wp = "Volgograd"}, ["彼爾姆市"] = {container = {key = "彼爾姆邊疆區", placetype = "krai"}, wp = "Perm, Russia"}, } export.russia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "oblast"), default_container = "俄羅斯", default_placetype = "city", default_is_city = true, data = export.russia_cities, } export.saudi_arabia_cities = { ["利雅得"] = {container = "利雅得省", wp = "Riyadh"}, ["吉達"] = {container = "麥加省", wp = "Jeddah"}, ["達曼"] = {container = "東部省(沙特)", wp = "Dammam"}, ["麥加"] = {container = "麥加省", wp = "Mecca"}, ["麥地那"] = {container = "麥地那省", wp = "Medina"}, ["霍夫夫"] = {container = "東部省(沙特)", wp = "Hofuf"}, ["哈米斯穆沙伊特"] = {container = "阿西爾省", wp = "Khamis Mushait"}, } export.saudi_arabia_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "沙烏地阿拉伯", default_placetype = "city", default_is_city = true, data = export.saudi_arabia_cities, } export.south_korea_cities = { ["首爾"] = {wp = "Seoul"}, ["釜山"] = {wp = "Busan"}, ["仁川"] = {wp = "Incheon"}, ["大邱"] = {wp = "Daegu"}, ["大田"] = {wp = "Daejeon"}, ["光州"] = {wp = "Gwangju"}, ["蔚山"] = {wp = "Ulsan"}, } export.south_korea_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "南韓", default_placetype = "city", default_is_city = true, data = export.south_korea_cities, } export.spain_cities = { ["馬德里"] = {container = "馬德里自治區", wp = "Madrid"}, ["巴塞羅那"] = {container = "加泰羅尼亞", wp = "Barcelona"}, ["瓦倫西亞"] = {container = "巴倫西亞", wp = "Valencia"}, ["塞維利亞"] = {container = "安達盧西亞", wp = "Seville"}, ["畢爾包"] = {container = "巴斯克", wp = "Bilbao"}, } export.spain_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "autonomous community"), default_container = "西班牙", default_placetype = "city", default_is_city = true, data = export.spain_cities, } export.taiwan_cities = { -- Special municipalities (province-level) ["臺北市"] = {placetype = "special municipality", wp = "臺北市"}, ["新北市"] = {placetype = "special municipality", wp = "新北市"}, ["桃園市"] = {placetype = "special municipality", wp = "桃園市"}, ["臺中市"] = {placetype = "special municipality", wp = "臺中市"}, ["臺南市"] = {placetype = "special municipality", wp = "臺南市"}, ["高雄市"] = {placetype = "special municipality", wp = "高雄市"}, -- these last three are not special municipalities ["嘉義市"] = {placetype = "city", wp = "嘉義市"}, ["新竹市"] = {placetype = "city", wp = "新竹市"}, ["基隆市"] = {placetype = "city", wp = "基隆市"}, } export.taiwan_cities_group = { key_to_placename = make_key_to_placename(nil, "市$"), placename_to_key = make_placename_to_key("市"), default_container = "臺灣", default_placetype = {"special municipality", "city"}, default_is_city = true, data = export.taiwan_cities, } export.united_kingdom_cities = { ["倫敦"] = {container = {key = "大倫敦", placetype = "county"}, wp = "London"}, ["曼徹斯特"] = {container = {key = "大曼徹斯特", placetype = "county"}, wp = "Manchester"}, ["伯明翰"] = {container = {key = "西密德蘭", placetype = "county"}, wp = "Birmingham"}, ["利物浦"] = {container = {key = "默西賽德郡", placetype = "county"}, wp = "Liverpool"}, ["格拉斯哥"] = {container = {key = "Glasgow市", placetype = "council area"}, wp = "Glasgow"}, ["利茲"] = {container = {key = "西約克郡", placetype = "county"}, wp = "Leeds"}, ["布里斯托"] = {container = {key = "英格蘭", placetype = "constituent country"}, wp = "Bristol"}, ["卡地夫"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Cardiff"}, ["愛丁堡"] = {container = {key = "Edinburgh市", placetype = "council area"}, wp = "Edinburgh"}, ["斯旺西"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Swansea"}, ["紐波特"] = {container = {key = "威爾斯", placetype = "constituent country"}, wp = "Newport, Wales"}, } export.united_kingdom_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "county"), default_container = "英國", default_placetype = "city", default_is_city = true, data = export.united_kingdom_cities, } export.united_states_cities = { ["紐約市"] = {container = "紐約", wp = "New York City"}, ["洛杉磯"] = {container = "加利福尼亞", wp = "Los Angeles"}, ["芝加哥"] = {container = "伊利諾伊", wp = "Chicago"}, ["華盛頓特區"] = {wp = "Washington, D.C."}, ["巴爾的摩"] = {container = "馬里蘭", wp = "Baltimore"}, ["聖荷西"] = {container = "加利福尼亞", wp = "San Jose, California"}, ["舊金山"] = {container = "加利福尼亞", wp = "San Francisco"}, ["波士頓"] = {container = "麻薩諸塞", wp = "Boston"}, ["達拉斯"] = {container = "德克薩斯", wp = "Dallas"}, ["費城"] = {container = "賓夕法尼亞", wp = "Philadelphia"}, ["休士頓"] = {container = "德克薩斯", wp = "Houston"}, ["邁阿密"] = {container = "佛羅里達", wp = "Miami"}, ["亞特蘭大"] = {container = "喬治亞", wp = "Atlanta"}, ["底特律"] = {container = "密西根", wp = "Detroit"}, ["鳳凰城"] = {container = "亞利桑那", wp = "Phoenix"}, ["西雅圖"] = {container = "華盛頓州", wp = "Seattle"}, ["明尼阿波利斯"] = {container = "明尼蘇達", wp = "Minneapolis"}, ["克里夫蘭"] = {container = "俄亥俄", wp = "Cleveland"}, ["丹佛"] = {container = "科羅拉多", wp = "Denver"}, ["聖地牙哥(美國)"] = {container = "加利福尼亞", wp = "San Diego"}, ["波特蘭(俄勒岡)"] = {container = "俄勒岡", wp = "Portland"}, ["聖路易斯"] = {container = "密蘇里", wp = "St. Louis"}, ["夏洛特"] = {container = "北卡羅來納", wp = "Charlotte"}, ["薩克拉門托"] = {container = "加利福尼亞", wp = "Sacramento"}, ["匹茲堡"] = {container = "賓夕法尼亞", wp = "Pittsburgh"}, ["鹽湖城"] = {container = "猶他", wp = "Salt Lake City"}, ["聖安東尼奧"] = {container = "德克薩斯", wp = "San Antonio"}, ["哥倫布"] = {container = "俄亥俄", wp = "Columbus"}, ["堪薩斯城"] = {container = "密蘇里", wp = "Kansas City metropolitan area"}, ["印第安納波利斯"] = {container = "印第安納", wp = "Indianapolis"}, ["拉斯維加斯"] = {container = "內華達", wp = "Las Vegas"}, ["辛辛那提"] = {container = "俄亥俄", wp = "Cincinnati"}, ["奧斯汀"] = {container = "德克薩斯", wp = "Austin"}, ["密爾沃基"] = {container = "威斯康辛", wp = "Milwaukee"}, ["羅利"] = {container = "北卡羅來納", wp = "Raleigh"}, ["納什維爾"] = {container = "田納西", wp = "Nashville"}, ["傑克遜維爾"] = {container = "佛羅里達", wp = "Jacksonville"}, ["新奧爾良"] = {container = "路易斯安那", wp = "New Orleans"}, ["路易斯維爾"] = {container = "肯塔基", wp = "Louisville"}, ["奧克拉荷馬城"] = {container = "奧克拉荷馬", wp = "Oklahoma City"}, ["孟菲斯"] = {container = "田納西", wp = "Memphis"}, ["伯明翰(美國)"] = {container = "阿拉巴馬", wp = "Birmingham, Alabama"}, ["弗雷斯諾"] = {container = "加利福尼亞", wp = "Fresno"}, ["里奇蒙"] = {container = "弗吉尼亞", wp = "Richmond"}, ["水牛城"] = {container = "紐約", wp = "Buffalo"}, ["艾爾帕索"] = {container = "德克薩斯", wp = "El Paso"}, ["阿爾伯克基"] = {container = "新墨西哥", wp = "Albuquerque"}, ["塔森"] = {container = "亞利桑那", wp = "Tucson"}, ["科羅拉多斯普林斯"] = {container = "科羅拉多", wp = "Colorado Springs"}, ["奧馬哈"] = {container = "內布拉斯加", wp = "Omaha"}, ["塔爾薩"] = {container = "奧克拉荷馬", wp = "Tulsa"}, } export.united_states_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "state"), default_container = "美國", default_placetype = "city", default_is_city = true, data = export.united_states_cities, } export.vietnam_cities = { ["胡志明市"] = {wp = "Ho Chi Minh City"}, ["西貢"] = {alias_of = "胡志明市"}, ["河內"] = {wp = "Hanoi"}, ["峴港"] = {wp = "Da Nang"}, ["海防"] = {wp = "Haiphong"}, ["邊和"] = {container = "同奈省", wp = "Biên Hòa", placetype = "city"}, ["芹苴"] = {wp = "Cần Thơ"}, ["順化"] = {wp = "Huế"}, } export.vietnam_cities_group = { placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "province"), default_container = "越南", default_placetype = {"municipality", "city"}, default_is_city = true, data = export.vietnam_cities, } ----------------------------------------------------------------------------------- -- locations list -- ----------------------------------------------------------------------------------- export.locations = { export.continents_group, export.countries_group, export.country_like_entities_group, export.former_countries_group, export.united_states_group, export.united_kingdom_group, export.scotland_group, export.england_group, export.northern_ireland_group, export.ireland_group, export.wales_group, export.china_group, export.china_prefecture_level_cities_group, export.taiwan_group, export.canada_group, export.australia_group, export.india_group, export.japan_group, export.brazil_group, export.france_group, export.france_departments_group, export.germany_group, export.italy_group, export.spain_group, export.austria_group, export.bangladesh_group, export.egypt_group, export.finland_group, export.greece_group, export.indonesia_group, export.lebanon_group, export.malaysia_group, export.malta_group, export.mexico_group, export.moldova_group, export.morocco_group, export.netherlands_group, export.new_zealand_group, export.norway_group, export.pakistan_group, export.philippines_group, export.poland_group, export.portugal_group, export.romania_group, export.bulgaria_group, export.iran_group, export.russia_group, export.saudi_arabia_group, export.south_africa_group, export.laos_group, export.north_korea_group, export.south_korea_group, export.thailand_group, export.turkey_group, export.ukraine_group, export.vietnam_group, export.nigeria_group, export.new_york_boroughs_group, export.australia_cities_group, export.brazil_cities_group, export.canada_cities_group, export.france_cities_group, export.germany_cities_group, export.india_cities_group, export.indonesia_cities_group, export.italy_cities_group, export.japan_cities_group, export.mexico_cities_group, export.nigeria_cities_group, export.pakistan_cities_group, export.philippines_cities_group, export.russia_cities_group, export.saudi_arabia_cities_group, export.south_korea_cities_group, export.spain_cities_group, export.taiwan_cities_group, export.united_kingdom_cities_group, export.united_states_cities_group, export.vietnam_cities_group, export.misc_cities_group, } return export qib8iqcjd5ao5apqffc32lpbcoze66h Module:Place/placetypes 828 3437750 9759400 9759347 2026-05-14T13:52:30Z TongcyDai 53191 // Edit via Wikiplus 9759400 Scribunto text/plain local export = {} export.force_cat = false -- set to true for testing local m_locations = require("Module:place/locations") local m_links = require("Module:links") local m_table = require("Module:table") local m_strutils = require("Module:string utilities") local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" -- Chinese localization data (zh_name, zh_suffix, qualifiers, extra-info labels, etc.) local m_zh_data = require("Module:place/data/sandbox") local dump = mw.dumpObject local insert = table.insert local concat = table.concat local internal_error = m_locations.internal_error export.internal_error = internal_error local process_error = m_locations.process_error export.process_error = process_error local unpack = unpack or table.unpack -- Lua 5.2 compatibility local ucfirst = m_strutils.ucfirst local ulower = m_strutils.lower local rmatch = m_strutils.match local split = m_strutils.split --[==[ intro: This module contains placetype data used by [[Module:place]] and {{tl|place}}, along with a significant amount of code to work with both placetypes and locations, as well as some placename-related info (FIXME: Consider moving it to [[Module:place/locations]]). See also [[Module:place/locations]], which has definitions of all known locations. You must currently load this module using {{cd|require()}}, not using {{cd|mw.loadData()}}. In particular, it contains two fundamental and tricky functions: # `get_placetype_equivs`, which finds the equivalent placetypes to look under in order to find a given property, and in the process correctly handles placetypes with qualifiers (including qualifiers that act similar to "type-raising" operators in that they do something non-trivial to the placetype to their right) as well as form-of directives and fallbacks. # `find_matching_holonym_location`, which looks up a holonym to find a matching known location, but in the process checks holonyms to the right to make sure there isn't a clash between the user-specified containing holonyms and the containers of the known location being considered. This is done to prevent overcategorizing when either there are two known locations with the same name (e.g. Birmingham in England and Birmingham, Alabama in the US), or more generally two locations with the same name, one of which is a known location but where the other is not (e.g. we're processing non-known-location Mérida, Spain and don't want it categorized like known location Mérida, Yucatán, Mexico). Both of these functions are invoked repeatedly, and probably are invoked several times on the same inputs and as a result are candidates for memoization to speed up the operation of {{tl|place}}. ]==] ------------------------------------------------------------------------------------------ -- Basic utilities -- ------------------------------------------------------------------------------------------ --[==[ Return true if `force_cat` is set either in this module or in [[Module:place/locations]]. ]==] function export.get_force_cat() return export.force_cat or m_locations.force_cat end -- Add the page to a tracking "category". To see the pages in the "category", -- go to [[Wiktionary:Tracking/place/PAGE]] and click on "What links here". local function track(page) require(debug_track_module)("place/" .. page) return true end function export.remove_links_and_html(text) text = m_links.remove_links(text) return text:gsub("<.->", "") end --[==[ Return the singular version of a maybe-plural placetype, or nil if not plural. This correctly handles placetypes with irregular plurals such as `kibbutzim` plural of `kibbutz` by looking up in a table constructed from the `plural` values specified in `placetype_data`. If a special plural value is not found, the regular singularization algorithm in [[Module:en-utilities]] is invoked, which reverses the y -> ies change after vowels and the 'es' addition after sh/ch/x, and otherwise just subtracts a final 's' (which will incorrectly generate 'passe' for plural 'passes'; FIXME: consider changing this for words ending in '-sses'). If the generated singular is the same as the passed-in value, nil is returned. ]==] function export.maybe_singularize_placetype(placetype) if not placetype then return nil end if export.plural_placetype_to_singular[placetype] then return export.plural_placetype_to_singular[placetype] end local retval = require(en_utilities_module).singularize(placetype) if retval == placetype then return nil end return retval end -- Return the correct plural of a placetype, and (if `do_ucfirst` is given) make the first letter uppercase. We first -- look up the plural in `placetype_data`, falling back to pluralize() in [[Module:en-utilities]], which is almost -- always correct. function export.pluralize_placetype(placetype, do_ucfirst) local ptdata = export.placetype_data[placetype] if ptdata and ptdata.plural then placetype = ptdata.plural else placetype = require(en_utilities_module).pluralize(placetype) end if do_ucfirst then return ucfirst(placetype) else return placetype end end --[==[ Get the data associated with a placetype, which may be in its singular or plural form. If `from_category` is specified, we also look for category-only placetypes (generally plural) followed by `!`. Return three values: (a) the placetype under which the data can be looked up (i.e. in its singular form if the passed-in `placetype` is plural and did not match a category-only placetype followed by `!`); (b) the placetype data structure; (c) the type of `placetype` match that occurred, one of `"direct"` if the canonical placetype is the same as the passed-in `placetype` and also the same as the key under which `ptdata` was looked up, or `"direct-category"` if the `ptdata` was looked up under a key formed from the passed-in `placetype` by adding `!`, or `"plural"` if the `ptdata` was looked up under the singularized version of the plural passed-in `placetype`. ]==] function export.get_placetype_data(placetype, from_category) local ptdata = export.placetype_data[placetype] if ptdata then return placetype, ptdata, "direct" end if from_category then ptdata = export.placetype_data[placetype .. "!"] if ptdata then return placetype .. "!", ptdata, "direct-category" end end local sg_placetype = export.maybe_singularize_placetype(placetype) if sg_placetype then ptdata = export.placetype_data[sg_placetype] if ptdata then return sg_placetype, ptdata, "plural" end end return nil end --[==[ Check for special pseudo-placetypes that should be ignored for categorization purposes. ]==] function export.placetype_is_ignorable(placetype) return placetype == "and" or placetype == "or" or placetype:find("^%(") end function export.resolve_placetype_aliases(placetype) return export.placetype_aliases[placetype] or placetype end --[==[ Return a property from `placetype_data` for a given placetype. If the placetype isn't found in `placetype_data`, or the key isn't found in the placetype's entry in `placetype_data`, return nil. ]==] function export.get_placetype_prop(placetype, key) -- Usually we are called on equivalent placetypes returned from `get_placetype_equivs`, in which case placetype -- aliases have been resolved, but sometimes not, e.g. when fetching the indefinite article in -- get_placetype_article(). `resolve_placetype_aliases` is just a simple lookup and it doesn't hurt to do it twice. placetype = export.resolve_placetype_aliases(placetype) if export.placetype_data[placetype] then return export.placetype_data[placetype][key] else return nil end end --[==[ Given a placetype, split the placetype into one or more potential ''splits'', each consisting of a three-element list { {``prev_qualifiers``, ``this_qualifier``, ``reduced_placetype``}}, i.e. # the concatenation of zero or more previously-recognized qualifiers on the left, normally canonicalized (if there are zero such qualifiers, the value will be nil); # a single recognized qualifier, normally canonicalized (if there is no qualifier, the value will be nil); # the "reduced placetype" on the right. Splitting between the qualifier in (2) and the reduced placetype in (3) happens at each space character, proceeding from left to right, and stops if a qualifier isn't recognized. All placetypes are canonicalized by checking for aliases in `placetype_aliases`, but no other checks are made as to whether the reduced placetype is recognized. Canonicalization of qualifiers does not happen if `no_canon_qualifiers` is specified. For example, given the placetype `"small beachside unincorporated community"`, the return value will be { { {nil, nil, "small beachside unincorporated community"}, {nil, "small", "beachside unincorporated community"}, {"small", "[[beachfront]]", "unincorporated community"}, {"small [[beachfront]]", "[[unincorporated]]", "community"}, }} Here, `"beachside"` is canonicalized to `"[[beachfront]]"` and `"unincorporated"` is canonicalized to `"[[unincorporated]]"`, in both cases according to the entry in `placetype_qualifiers`. On the other hand, if given `"small former haunted community"`, the return value will be { { {nil, nil, "small former haunted community"}, {nil, "small", "former haunted community"}, {"small", "former", "haunted community"}, }} because `"small"` and `"former"` but not `"haunted"` are recognized as qualifiers. Finally, if given `"former adr"`, the return value will be { { {nil, nil, "former adr"}, {nil, "former", "administrative region"}, }} because `"adr"` is a recognized placetype alias for `"administrative region"`. ]==] function export.split_qualifiers_from_placetype(placetype, no_canon_qualifiers) local splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} local prev_qualifier = nil while true do local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if canon == nil then break end local new_qualifier = qualifier if type(canon) == "table" then canon = canon.link end if not no_canon_qualifiers and canon ~= false then if canon == true then new_qualifier = "[[" .. qualifier .. "]]" else new_qualifier = canon end end insert(splits, {prev_qualifier, new_qualifier, export.resolve_placetype_aliases(reduced_placetype)}) prev_qualifier = prev_qualifier and prev_qualifier .. " " .. new_qualifier or new_qualifier placetype = reduced_placetype else break end end return splits end --[==[ Given a `placetype` (which may be pluralized), return an ordered list of equivalent placetypes to look under to find the placetype's properties (such as the category or categories to be inserted). The return value is actually an ordered list of objects of the form `{qualifier=``qualifier``, placetype=``equiv_placetype``}` where ``equiv_placetype`` is a placetype whose properties to look up, derived from the passed-in placetype or from a contiguous subsequence of the words in the passed-in placetype (always including the rightmost word in the placetype, i.e. we successively chop off qualifier words from the left and use the remainder to find equivalent placetypes). ``qualifier`` is the remaining words not part of the subsequence used to find ``equiv_placetype``; or nil if all words in the passed-in placetype were used to find ``equiv_placetype``. (FIXME: This qualifier is not currently used anywhere.) Only placetypes for which there is an entry in `placetype_data` are included. The placetype passed in is always checked first, and will form the first entry if it exists in `placetype_data`. '''NOTE:''' This is a tricky function as it implements handling of (a) qualifiers, (b) fallback logic, (c) "type-raising" qualifiers such as `former`/`ancient`/etc. as well as `fictional` and `mythological`, and (d) form-of directives, which act somewhat similarly to `former`, and allows interaction between more than one of these simultaneously (e.g. official names of former places, which have their own categorization). If {{tl|place}} gets too slow, one potential speedup is to memoize the results of this function, as it appears to be getting called more than once on the same inputs. Another similar potential speedup is to memoize the results of `iterate_matching_holonym_location()`. For example, given the placetype `left tributary`, the following placetype/qualifier combinations are checked in turn: ``` {qualifier = nil, placetype="left tributary"} {qualifier = "left", placetype="tributary"} {qualifier = "left", placetype="river"} ``` and the return value will be { { {qualifier = "left", placetype="tributary"}, {qualifier = "left", placetype="river"}, }} The algorithm first enters the placetype itself into the list, then checks for `left tributary` as a recognized placetype in `placetype_data` and doesn't find it, so it doesn't enter it into the returned list (if it found it, it would add it as well as any fallbacks directly after it). It then splits off the recognized qualifier `left` to form the ''reduced placetype'' `tributary`, which is entered into the list because it is found in `placetype_data`. Then, because it has a fallback `river`, which exists in `placetype_data`, the fallback is entered next. Another example is `small rural fraziones` (where a ''frazione'' is type of subdivision of a ''comune'' or municipality, often specifically an outlying hamlet). the placetype/qualifier combinations checked are: ``` {qualifier = nil, placetype="small rural fraziones"} {qualifier = nil, placetype="small rural frazione"} {qualifier = "small", placetype="rural fraziones"} {qualifier = "small", placetype="rural frazione"} {qualifier = "small [[rural]]", placetype="fraziones"} {qualifier = "small [[rural]]", placetype="frazione"} {qualifier = "small [[rural]]", placetype="hamlet"} {qualifier = "small [[rural]]", placetype="village"} ``` The return value ends up as {qualifier = "small [[rural]]", placetype="frazione"}, {qualifier = "small [[rural]]", placetype="hamlet"}, {qualifier = "small [[rural]]", placetype="village"}, }} Here, because the result of singularizing `fraziones` returns a different value from the placetype itself, that singularized value is checked after the original plural value. Also, in the process of splitting off qualifiers, they are canonicalized if the entry in `placetype_qualifiers` says to do so; in this case, links are placed around `rural`. Finally, `frazione` has `hamlet` as its fallback, which in turn has `village` as its fallback, so both fallbacks end up being returned. `no_fallback`, if set, disables returning equivalent placetypes based on the `fallback` setting for a placetype. This is used in the first of two loops in find_placetype_cat_specs() in [[Module:place]] to prefer exact matches for placetypes such as barangays with later holonyms to matches based on a fallback such as `neighborhood` with an earlier holonym. See the comment in that function in [[Module:place]] for a more detailed explanation of why this is needed. Only the placetype itself, and any reduced placetypes created by chopping off recognized qualifiers at the beginning, are returned; but we do not return reduced placetypes if a containing placetype exists in `placetype_data`. (For example, `"overseas territory"` has a fallback `"dependent territory"`, and `"overseas"` is also a recognized qualifier. When `no_fallback` is in place, without the above proviso, we would return `"overseas territory"` followed by `"territory"` with the incorrect effect of classifying an `"overseas territory"` of the United Kingdom such as `"Gibraltar"` under [[:Category:Territories of the United Kingdom]] instead of [[:Category:Dependent territories of the United Kingdom]].) As an exception, if `historical`, `ancient`, `former` or the like are found, they proceed ignoring `no_fallback`, because it seems tricky to handle them correctly in the presence of `no_fallback`, and historical/former placetypes rarely occur with exact match category specs anyway. `no_split_qualifiers` prevents splitting off recognized qualifiers and returning the remainder of the placetype as an equivalent placetype. Only the passed-in placetype, and any fallbacks, will be returned. This is used in [[Module:category tree/topic cat/data/Places]] when looking up placetypes found in categories. Such placetypes won't have qualifiers and so it doesn't make sense to try and look for them. `from_category`, if set, causes category-only placetypes (those ending in `!`) to also be checked. `form_of_directive`, if set, causes the specified form-of directive (e.g. `FORMER_NAME_OF`) to be prepended to checked placetypes, their directive-specific type (e.g. `FORMER_NAME_OF_type`), and their classes (`class`) to get the appropriate placetypes to check for form-of-directive categories. It falls back to the prepended generic `place` as a placetype, e.g. `FORMER_NAME_OF place`, if nothing else matches. `no_check_for_inherently_former` is used internally to prevent an infinite loop when checking for `inherently_former`. `register_former_as_non_former` is a major hack used in `get_bare_categories` to deal with the mismatch between e.g. known location `Yugoslavia` declaring itself a `country` but definitions of it declaring it a `former country`. It causes the non-former version of the specified placetype to be included in the returned equivalents along with the former placetypes. [FIXME: This should apply only to the entries in `former_countries` but it's tricky to do that now; fix this in the known-location refactor. -- The known-location refactor is already done but we haven't yet fixed this.] ]==] function export.get_placetype_equivs(placetype, props) local no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former local form_of_directive if props then no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former = props.no_fallback, props.no_split_qualifiers, props.no_check_for_inherently_former, props.from_category, props.register_former_as_non_former form_of_directive = props.form_of_directive end local equivs = {} -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. `qualifier` is -- the preceding qualifier to insert into `equivs` along with the placetype (see comment at top of function). If -- `from_category` is given, we also check for a category-specific entry consisting of the placetype followed by -- `!`, and in all cases we also check to see if `placetype` is plural, and if so, insert the singularized version -- along with its fallbacks (if any) in `placetype_data`. `form_of_prefix` is a form-of prefix such as -- `OFFICIAL_NAME_OF`. If specified, we check the fallbacks of `placetype` without the prefix but then insert into -- `equivs` the prefixed placetype. This way, if the user says e.g. {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}}, -- we will correctly categorize into [[:Category:Official names of countries]], rather than only trying to look up -- `OFFICIAL_NAME_OF island country` and failing, falling back ultimately to [[:Category:Official names of places]]. local function insert_placetype_and_fallbacks(qualifier, placetype, form_of_prefix) local function insert_equiv(pt) if form_of_prefix then -- Let's say the user says {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}} and we have -- no entry for `OFFICIAL_NAME_OF island country` but we do for `OFFICIAL_NAME_OF country` (which we end -- up processing because `island country` falls back to `country`), and that entry in turn is defined -- using a fallback. We have to insert that fallback-of-fallback, and the easiest/cleanest way of -- handling this is by calling ourselves recursively. insert_placetype_and_fallbacks(qualifier, form_of_prefix .. " " .. pt) else insert(equivs, {qualifier=qualifier, placetype=pt}) end end -- Insert the placetype, along with any fallbacks. local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if ptdata then insert_equiv(canon_placetype) if no_fallback then return end local first_placetype = #equivs + 1 local prev_placetype = nil while true do local pt_value = export.placetype_data[canon_placetype] if not pt_value then internal_error("Fallback value %s specified for placetype %s but is not in `placetype_data`", canon_placetype, prev_placetype) end if pt_value.fallback then insert_equiv(pt_value.fallback) local last_placetype = #equivs if last_placetype - first_placetype >= 10 then local fallback_loop = {} for i = first_placetype, last_placetype do insert(fallback_loop, equivs[i].placetype) end internal_error("Apparent loop in fallback chain: %s", table.concat(fallback_loop, " -> ")) end prev_placetype = canon_placetype canon_placetype = pt_value.fallback else break end end end end -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. This is a -- wrapper around the more basic `insert_placetype_and_fallbacks()` which handles form-of directives. If there is no -- form-of directive, this function directly calls `insert_placetype_and_fallbacks()`. We do things this way so that -- form-of directives correctly combine with `former`-type qualifiers. Note that we also have special backups for -- form-of directives that check `DIRECTIVE place` (and before that, `DIRECTIVE FORMER/ANCIENT place` is there's a -- `former`-type directive); these backups live outside this function because we want them done once, late, rather -- than in each invocation of `process_and_insert_placetype()`. local function process_and_insert_placetype(qualifier, reduced_placetype) if form_of_directive then -- First check for e.g. `OFFICIAL_NAME_OF island country` and its fallbacks; then we look for fallbacks of -- `island country` and check e.g. `OFFICIAL_NAME_OF country` and its fallbacks. All of this is handled by -- `insert_placetype_and_fallbacks()` with appropriate parameters. After that, check the general class of -- the directive, e.g. `subpolity` if something like `district` is given. (Eventually, we check for -- `OFFICIAL_NAME_OF place` as a backup, but this happens at the end outside the loop over qualifiers.) insert_placetype_and_fallbacks(qualifier, reduced_placetype, form_of_directive) if not no_fallback then local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype) local directive_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, form_of_directive .. "_type") or export.get_placetype_prop(pt, "class") end ) if not directive_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s in conjunction with form-of directive %s, placetype data " .. 'located but directive-specific type property %s missing, and so is "class"; ' .. "placetypes searched are %s", reduced_placetype, form_of_directive, form_of_directive .. "_type", reduced_placetype_equivs) else -- This should be allowed, as we allow unrecognized placetypes in general. end elseif directive_type ~= "!" then insert_placetype_and_fallbacks(qualifier, directive_type, form_of_directive) end end else insert_placetype_and_fallbacks(qualifier, reduced_placetype) end end -- Successively split off recognized qualifiers and loop over successively greater sets of qualifiers from the left -- (unless `no_split_qualifiers` is specified, in which case we don't check for qualifiers). local splits if no_split_qualifiers then splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} else splits = export.split_qualifiers_from_placetype(placetype) end for _, split in ipairs(splits) do local prev_qualifier, this_qualifier, reduced_placetype = unpack(split, 1, 3) -- If a special "former" qualifier like `former` or `historical` isn't present, and -- `no_check_for_inherently_former` is not given (this flag is used to avoid infinite loops), check for -- "inherently former" placetypes like `satrapy` and `treaty port` that always refer to no-longer-existing -- placetypes, and handle accordingly. local unlinked_this_qualifier if this_qualifier and this_qualifier:find("%[") then unlinked_this_qualifier = export.remove_links_and_html(this_qualifier) else unlinked_this_qualifier = this_qualifier end local former_qualifiers = this_qualifier and export.former_qualifiers[unlinked_this_qualifier] or nil if not former_qualifiers and not no_check_for_inherently_former then former_qualifiers = export.get_equiv_placetype_prop(reduced_placetype, function(pt) return export.get_placetype_prop(pt, "inherently_former") end, {no_check_for_inherently_former = true}) end -- If a special "former" qualifier like `former` or `historical` is present, map it to the appropriate internal -- qualifiers (`ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified -- qualifiers), fetch the `former_type` property, and treat the placetype as if a concatenation of the mapped -- qualifier(s) and the value of `former_type`. For example, if `medieval village` is given, we map `medieval` -- to `ANCIENT` and `FORMER`, and `village` to its `former_type` of `settlement`, and enter the placetypes -- `ANCIENT settlement` and `FORMER settlement` (in that order) into `equivs`. If the placetype following the -- "former" qualifier is recognized in `placetype_data` but has no `former_type` and no fallback with a -- `former_type` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like -- `former greenhouse` is specified and we don't have an entry for `greenhouse`), just track the occurrence and -- don't enter anything into `equivs`. if former_qualifiers then -- FIXME: Should we respect `no_fallback` here? My instinct says no. local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype, { no_check_for_inherently_former = true }) local former_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, "former_type") or export.get_placetype_prop(pt, "class") end ) if not former_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s, placetype data located but `former_type` missing; " .. "placetypes searched are %s", reduced_placetype, reduced_placetype_equivs) else -- Enable error when we've verified there aren't any examples. track("bad-former-placetype") track("bad-former-placetype/" .. reduced_placetype) --process_error("For placetype '%s', unrecognized placetype following 'former'-type " .. -- "qualifier; searched placetype(s) %s", reduced_placetype, dump(reduced_placetype_equivs)) end elseif former_type ~= "!" then -- First check directly for `ANCIENT/FORMER` + the original following placetype. This makes it possible -- for (e.g.) former provinces of the Roman empire to be categorized specially. for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. reduced_placetype) end for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. former_type) end -- HACK! See explanation above for `register_former_as_non_former`. if register_former_as_non_former then process_and_insert_placetype(prev_qualifier, reduced_placetype) end -- If we're processing a form-of directive, after doing everything else we do -- `DIRECTIVE ANCIENT/FORMER place` e.g. `OFFICIAL_NAME_OF FORMER place` as a backup. if form_of_directive and not no_fallback then for _, former_qualifier in ipairs(former_qualifiers) do insert_placetype_and_fallbacks(prev_qualifier, form_of_directive .. " " .. former_qualifier .. " place") end end -- Don't continue processing equivs. The reason is probably the same as the `break` below for -- qualifier_to_placetype_equivs[]; categories for `former BLAH` are set using `default`, and -- non-former equivs will otherwise take precedence. break end end -- Then see if the rightmost split-off qualifier is in qualifier_to_placetype_equivs -- (e.g. 'fictional *' -> 'fictional location'). If so, add the mapping. if this_qualifier and export.qualifier_to_placetype_equivs[unlinked_this_qualifier] then insert(equivs, { qualifier=prev_qualifier, placetype=export.qualifier_to_placetype_equivs[unlinked_this_qualifier] }) -- Don't continue processing equivs; otherwise, if we specify 'mythological city', even though the -- equivalent entry for 'mythological location' gets inserted ahead of the entry for 'city', the -- latter ends up generating the category because the category for 'mythological location' is set as -- the default value, which is used only when no non-default category can be found. break end -- Finally, join the rightmost split-off qualifier to the previously split-off qualifiers to form a combined -- qualifier, and add it along with reduced_placetype and any mapping in placetype_data for reduced_placetype. -- NOTE: The first time through this loop, both `prev_qualifier` and `this_qualifier` are nil, and this inserts -- the full placetype into `equivs`. local qualifier = prev_qualifier and prev_qualifier .. " " .. this_qualifier or this_qualifier process_and_insert_placetype(qualifier, reduced_placetype) -- If `no_fallback` and there's an entry in `placetype_data` for this placetype, don't include any reduced -- placetypes to avoid the "overseas territory treated as a territory" issue describe above. if no_fallback then local canon_placetype, ptdata, ptmatch = export.get_placetype_data(reduced_placetype, from_category) if canon_placetype then break end end end -- If we're processing a form-of directive, after doing everything else we do `DIRECTIVE place` e.g. -- `OFFICIAL_NAME_OF place` as a backup; but only if either the placetype as a whole is recognized or the placetype -- begins with a recognized qualifier. This latter check is to avoid categorizing into e.g. -- [[Category:en:Former names of places]] in an invocation like -- {{place|en|@former name of:Democratic Republic of the Congo|country|r/Central Africa|;|used from 1971–1997}}; -- the `used from 1971–1997` gets treated as a placetype and we're called on it. if form_of_directive and not no_fallback and (splits[2] or export.get_placetype_data(placetype, from_category)) then insert_placetype_and_fallbacks(nil, form_of_directive .. " place") end return equivs end function export.get_equiv_placetype_prop_from_equivs(equivs, fun, continue_on_nil_only) for _, equiv in ipairs(equivs) do local retval = fun(equiv.placetype) if continue_on_nil_only and retval ~= nil or not continue_on_nil_only and retval then return retval, equiv end end return nil, nil end --[==[ Given a placetype `placetype` and a function `fun` of one argument, iteratively call the function on equivalent placetypes fetched from `get_placetype_equivs` until the function returns a non-falsy value (i.e. not {nil} or {false}); but if `continue_on_nil_only` is specified, the iterations continue until the function returns non non-{nil} value. FIXME: We should make `continue_on_nil_only` the default; but this requires changing some callers.) When `fun` returns a non-falsy or non-{nil} value, `get_equiv_placetype_prop` returns two values: the value returned by `fun` and the equivalent placetype that triggered the non-falsy (or non-{nil}) return value. If `fun` never returns a non-falsy (or non-{nil}) value, `get_equiv_placetype_prop` returns {nil} for both return values. If `placetype` is passed in as {nil}, the return value is the result of calling `fun` on {nil} (whatever it is) with {nil} for the second return value. ]==] function export.get_equiv_placetype_prop(placetype, fun, props) if not placetype then return fun(nil), nil end return export.get_equiv_placetype_prop_from_equivs(export.get_placetype_equivs(placetype, props), fun, props and props.continue_on_nil_only) end --[==[ Return the article that is used with an entry placetype. We proceed as follows: # See if there is a recognized qualifier at the beginning that specifies an article (including `false` for no article). This takes precedence over anything else, so that e.g. `various capitals` gets no article rather than "`the"`. # Then check the placetype or any equivalent placetype for the `entry_placetype_use_the` property, indicating that `"the"` should be used. # Otherwise we look to see if the placetype itself (not any equivalents, even those involving deleting a qualifier from the beginning) has an entry in `placetype_data` that specifies the indefinite article using `entry_placetype_use_the` (principally for use with placetypes like `union territory`). # Otherwise, we use [[Module:en-utilities]] to apply the standard algorithm to generate `"an"` for words beginning with a vowel and `"a"` otherwise. If `ucfirst` is true, the first letter of the article is made upper-case. ]==] function export.get_placetype_article(placetype, ucfirst) local art local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if type(canon) == "table" then art = canon.article end end if art == false then return art end if art == nil then local placetype_use_the = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "entry_placetype_use_the") end) if placetype_use_the then art = "the" else art = export.get_placetype_prop(placetype, "entry_placetype_indefinite_article") if not art then art = require(en_utilities_module).get_indefinite_article(placetype) end end end if ucfirst then art = m_strutils.ucfirst(art) end return art end --[==[ Return the preposition that should be used after `placetype` when occurring as an entry placetype or in categories (e.g. `city >in< France` but `country >of< South America`). The preposition defaults to `"in"` if not specified. ]==] function export.get_placetype_entry_preposition(placetype) local pt_prep = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "preposition") end ) return pt_prep or "in" end --[==[ Given a place desc (see top of file) and a holonym object (see top of file), add a key/value into the place desc's `holonyms_by_placetype` field corresponding to the placetype and placename of the holonym. For example, corresponding to the holonym "c/Italy", a key "country" with the list value {"Italy"} will be added to the place desc's `holonyms_by_placetype` field. If there is already a key with that place type, the new placename will be added to the end of the value's list. ]==] function export.key_holonym_into_place_desc(place_desc, holonym) if not holonym.placetype then return end -- Key in equivalent placetypes, so that e.g. `cities/San Francisco` gets keyed under `city`; but don't do -- fallbacks, as it doesn't seem correct for the "do other holonyms of the same placetype" algorithm to do holonyms -- of different types just because they have the same fallback. local equiv_placetypes = export.get_placetype_equivs(holonym.placetype, {no_fallback = true}) local unlinked_placename = holonym.unlinked_placename for _, equiv in ipairs(equiv_placetypes) do local placetype = equiv.placetype if not place_desc.holonyms_by_placetype then place_desc.holonyms_by_placetype = {} end if not place_desc.holonyms_by_placetype[placetype] then place_desc.holonyms_by_placetype[placetype] = {unlinked_placename} else insert(place_desc.holonyms_by_placetype[placetype], unlinked_placename) end end end --[=[ Construct a formatted link from the raw link spec `link` given the canonical singular placetype `sg_placetype`. If the placetype was originally plural, `orig_placetype` should contain this plural value; otherwise it should be nil. This will construct the appropriate type of link that displays as `orig_placetype` (or otherwise `sg_placetype`) but links to whatever the `link` spec specifies (which may be `sg_placetype`, a Wikipedia article, etc.). `ptdata` is the placetype data structure for the placetype, and `from_category` indicates that we are generating the description of a category (otherwise we are generating the display form of an entry placetype). ]=] local function make_placetype_link(link, sg_placetype, orig_placetype, ptdata, from_category, noerror) if not from_category and ptdata.disallow_in_entries then if noerror then return "[not meant to be specified directly, with warning: " .. ptdata.disallow_in_entries .. "]" else process_error("Placetype %s is not meant to be specified directly: " .. ptdata.disallow_in_entries, sg_placetype) end end if link == nil then internal_error("Placetype data present for placetype %s but no link= setting given", sg_placetype) elseif link == true then if orig_placetype then return ("[[%s|%s]]"):format(sg_placetype, orig_placetype) else return ("[[%s]]"):format(sg_placetype) end elseif link == false then process_error("Placetype %s is not meant to be specified directly, but is only for internal use", sg_placetype) elseif link == "w" then return ("[[w:%s|%s]]"):format(sg_placetype, orig_placetype or sg_placetype) elseif link == "separately" then if orig_placetype then local sg_words = split(sg_placetype, " ") local orig_words = split(orig_placetype, " ") if #sg_words ~= #orig_words then internal_error("Can't construct 'separately' link for plural placetype %s as original placetype %s " .. "has different number of words", orig_placetype, sg_placetype) else for i = 1, #sg_words do if sg_words[i] == orig_words[i] then sg_words[i] = ("[[%s]]"):format(sg_words[i]) else sg_words[i] = ("[[%s|%s]]"):format(sg_words[i], orig_words[i]) end end return concat(sg_words, " ") end else return (sg_placetype:gsub("([^ ]+)", "[[%1]]")) end elseif link:find("^%+") then link = link:sub(2) -- discard initial + return ("[[%s|%s]]"):format(link, orig_placetype or sg_placetype) elseif not orig_placetype then return link else return require(en_utilities_module).pluralize(link) end end --[==[ Get the display form of a placetype by looking it up in `placetype_data`. If the placetype is recognized, or is the plural of a recognized placetype, the corresponding linked display form is returned (with plural placetypes displaying as plural but linked to the singular form of the placetype). Otherwise, return nil. If we're generating the description of a category, `category_type` should be set to one of `"top-level"` (for top-level categories like [[:Category:Neighborhoods]]), `"noncity"` (for non-city categories like [[:Category:Neighborhoods in Illinois, USA]]) or `"city"` (for city categories like [[:Category:Neighborhoods of Chicago]]). Otherwise, we're generating the description for use in formatting a {{tl|place}} call, and category-only placetypes ending in `!` will be ignored, along with special `category_link*` settings. `return_full` is used along with `category_type` and will preferably return the "full" variant of category link settings, i.e. `full_category_link*`; if they don't exist, the `category_link*` value is prepended with `"names of"`. `noerror` says to not throw an error when encountering entry placetypes that would be disallowed. ]==] function export.get_placetype_display_form(placetype, category_type, return_full, noerror) local from_category = not not category_type local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if canon_placetype then local raw_link local function is_linked_string(str) return type(str) == "string" and str:find("%[%[") end if category_type then local fetched_full local function fetch_maybe_full(prop) local retval = ptdata["full_" .. prop] if retval ~= nil then if return_full then return retval, true else internal_error("Saw full_" .. prop .. "=%s but `return_full` not set, can't handle", retval) end end return ptdata[prop], false end local function maybe_prefix(str) if return_full and not fetched_full then return "names of " .. str else return str end end -- Careful with `false` as possible value. if category_type == "top-level" then raw_link, fetched_full = fetch_maybe_full("category_link_top_level") elseif category_type == "noncity" then raw_link, fetched_full = fetch_maybe_full("category_link_before_noncity") elseif category_type == "city" then raw_link, fetched_full = fetch_maybe_full("category_link_before_city") else internal_error('Unrecognized value for `category_type` %s, should be "top-level", "noncity" or "city"', category_type) end if type(raw_link) == "string" then return maybe_prefix(raw_link), ptdata elseif raw_link ~= nil then return raw_link, ptdata end raw_link, fetched_full = fetch_maybe_full("category_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end if ptmatch == "plural" then raw_link, fetched_full = fetch_maybe_full("plural_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end end if raw_link == nil then raw_link, fetched_full = fetch_maybe_full("link") end if raw_link == false then return raw_link, ptdata end return maybe_prefix(make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror)), ptdata else if ptmatch == "plural" then raw_link = ptdata.plural_link if raw_link == false then process_error("Placetype %s cannot appear plural", placetype) end if is_linked_string(raw_link) then return raw_link, ptdata end end if raw_link == nil then raw_link = ptdata.link end return make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror), ptdata end end return nil end local function resolve_unlinked_placename_display_aliases(placetype, placename) local equiv_placetypes = export.get_placetype_equivs(placetype) for i, equiv in ipairs(equiv_placetypes) do equiv_placetypes[i] = equiv.placetype end local all_display_aliases_found = {} local all_others_found = {} for group, key, spec in m_locations.iterate_matching_location { placetypes = equiv_placetypes, placename = placename, alias_resolution = "display", } do if spec.alias_of and spec.display then insert(all_display_aliases_found, {group, key, spec, spec.display_as_full}) else insert(all_others_found, {group, key, spec}) end end if not all_display_aliases_found[1] then return placename elseif all_display_aliases_found[2] then internal_error("Found multiple matching display aliases for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) elseif all_others_found[1] then internal_error("Found a display alias along with other possible meanings for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) else local group, key, spec, as_full = unpack(all_display_aliases_found[1]) local full, elliptical = m_locations.key_to_placename(group, key) return as_full and full or elliptical end end --[==[ If `placename` of type `placetype` is a display alias, convert it to its canonical form; otherwise, return unchanged. Display aliases transform certain placenames into canonical displayed forms. For example, if any of `country/US`, `country/USA` or `country/United States of America` (or `c/US`, etc.) are given, the result will be displayed as `United States`. '''NOTE''': Display aliases change what is displayed from what the editor wrote in the Wikitext. As a result, they should (a) be non-political in nature, and (b) not involve a change where the word `the` needs to be added or removed. For example, normalizing `US` and `USA` to `United States` for display purposes is OK but normalizing `Burma` to `Myanmar` is not (instead a cat alias should be used) because the terms `Burma` and `Myanmar` have clear political connotations. Similarly, we have a display alias that maps the old name of `Macedonia` as a country (but not a region!) to `North Macedonia`, but `Republic of Macedonia` is mapped to `North Macedonia` only as a cat alias because the two terms differ in their use of `the`. (For example, if we had a display alias mapping `Republic of Macedonia` to `North Macedonia`, the call {{tl|place|en|the <<capital city>> of the <<c/Republic of Macedonia>>}} would wrongly display as `the [[capital city]] of the [[North Macedonia]]`.) Generally, display normalizations tend to involve alternative forms (e.g. abbreviations, ellipses, foreign spellings) where the normalization improves clarity and consistency. ]==] function export.resolve_placename_display_aliases(placetype, placename) -- If the placename is a link, apply the alias inside the link. -- This pattern matches both piped and unpiped links. If the link is not piped, the second capture (linktext) will -- be empty. local link, linktext = rmatch(placename, "^%[%[([^|%[%]]+)|?([^|%[%]]-)%]%]$") if link then if linktext ~= "" then local alias = resolve_unlinked_placename_display_aliases(placetype, linktext) return "[[" .. link .. "|" .. alias .. "]]" else local alias = resolve_unlinked_placename_display_aliases(placetype, link) return "[[" .. alias .. "]]" end else return resolve_unlinked_placename_display_aliases(placetype, placename) end end --[==[ Generate the "prefixed" version of a bare key, i.e. prefix it with `the` if correct for this key. ]==] function export.get_prefixed_key(key, spec) if spec.the then return "the " .. key else return key end end -- Necessary for use by [[Module:place]]. FIXME: Reorganize the modules so this isn't necessary. export.iterate_matching_location = m_locations.iterate_matching_location --[=[ Iterator that iterates over holonyms in `place_desc`. If `first_holonym_index` is given, start iterating at the specified holonym and stop either when there are no more holonyms or a holonym with modifier `:also` is found. If `first_holonym_index` is nil or omitted, iterate over all holonyms regardless. If `include_raw_text_holonyms` is specified, raw text holonyms (those not of the form `placetype/placename`) are returned as well; they can be identified by the fact that the `placetype` field in the holonym structure is nil. Two values are returned at each iteration, the holonym index and holonym structure, similar to `ipairs()`. ]=] function export.get_holonyms_to_check(place_desc, first_holonym_index, include_raw_text_holonyms) local stop_at_also = not not first_holonym_index return function(place_desc, index) while true do index = index + 1 local this_holonym = place_desc.holonyms[index] -- If we were passed in a starting holonym index, go up to but not including a holonym marked with `:also` -- (continue_cat_loop); the categorization code will then restart the loop at that holonym. That holonym -- will have `:also` marked on it, so make sure not to stop immediately if the first holonym is marked with -- `:also`. if not this_holonym or stop_at_also and index > first_holonym_index and this_holonym.continue_cat_loop then return nil end -- If not placetype, we're processing raw text, which we normally want to skip. if include_raw_text_holonyms or this_holonym.placetype then return index, this_holonym end end end, place_desc, first_holonym_index and first_holonym_index - 1 or 0 end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, iterate over all such known locations, returning for each location the corresponding key, spec and group as well as the trail of ancestral containers. Unlike `iterate_matching_location()`, this specifically checks that there is no mismatch between the location's containers at any level and any of the following holonyms in the {{tl|place}} spec. The fields in `data` are: * `holonym_placetype`: The placetype of the holonym. It can actually be a list of possible placetypes, as with `iterate_matching_location()`. * `holonym_placename`: The placename of the holonym. * `holonym_index`: The index of the holonym among the holonyms in `place_desc`, or nil if the holonym is not among the holonyms in `place_desc`. (If a holonym index is given, we check for container mismatches among the holonyms following the specified index, stopping either when encountering a holonym marked with modifier `:also` or, if none exist, when we run out of holonyms. If no holonym index is given, we check all holonyms for container mismatches.) * `place_desc`: Description of the place; used for the holonyms, to check for container mismatches. Returns four values: the location group, the canonical key by which the location is known, the spec object describing the location and the trail of ancestral containers for the location. The first three values are the same as for `iterate_matching_location`. ]==] function export.iterate_matching_holonym_location(data) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc local matching_location_iterator = m_locations.iterate_matching_location { placetypes = holonym_placetype, placename = holonym_placename, } return function() while true do local group, key, spec = matching_location_iterator() if not group then return nil end local container_trail = {} -- For each level of container, check that there are no mismatches (i.e. other location of the same -- placetype) mentioned. We allow a mismatch at a given level if there's also a match with the container -- at that level. For example, in the case of Kansas City, defined in [[Module:place/locations]] as a city -- in Missouri, if we define it as {{tl|place|city|s/Missouri,Kansas}}, we ignore the mismatching state of -- Kansas because the correct state of Missouri was also mentioned. But imagine we are defining Newark, -- Delaware as {{tl|place|city|s/Delaware|c/US}} and (as is the case) we have an entry for Newark, New -- Jersey in [[Module:place/locations]]. Just because the containing location `US` matches isn't enough, -- because Newark, NJ also has New Jersey as a containing location and there's a mismatch at that level. If -- there are no mismatches at any level we assume we're dealing with the right known location. -- -- If at a given level there are multiple containing locations, we count a match if any holonym matches any -- containing location, and a mismatch only if a holonym exists of the same placetype that doesn't match any -- containing location. local containers_mismatch = false for containers in m_locations.iterate_containers(group, key, spec) do insert(container_trail, containers) local match_at_level = false local mismatch_at_level = false for other_holonym_index, other_holonym in export.get_holonyms_to_check(place_desc, holonym_index and holonym_index + 1 or nil) do local other_source_holonym = other_holonym.augmented_from_holonym if other_source_holonym and other_source_holonym.placetype == holonym_placetype and other_source_holonym.unlinked_placename ~= holonym_placename then -- Ignore holonyms added during the augmentation process for other holonyms of the same -- placetype as the placetype of the holonym we're considering. See comment in -- augment_holonyms_with_container() for why we do this. -- continue; grrr, no 'continue' in Lua else local holonym_matches_at_level = false local holonym_exists_with_same_placetype = false for _, container in ipairs(containers) do if not container.spec.no_check_holonym_mismatch then local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) local placetypes = container.spec.placetype if type(placetypes) ~= "table" then placetypes = {placetypes} end local placetype_equivs = {} for _, pt in ipairs(placetypes) do m_table.extend(placetype_equivs, export.get_placetype_equivs(pt)) end local this_holonym_matches = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype and (other_holonym.unlinked_placename == full_container_placename or other_holonym.unlinked_placename == elliptical_container_placename) end ) if this_holonym_matches then holonym_matches_at_level = true break end local this_holonym_exists_with_same_placetype = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype end ) if this_holonym_exists_with_same_placetype then -- We seem to have a mismatch at this level. But before we decide conclusively that this -- is the case, check to see whether the putative mismatch is an alias and matches when -- we resolve the alias. for oh_group, oh_key, oh_spec, oh_container_trail in export.iterate_matching_holonym_location { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = place_desc, } do local oh_full_placename, oh_elliptical_placename = m_locations.key_to_placename(oh_group, oh_key) if oh_full_placename == full_container_placename or oh_elliptical_placename == elliptical_container_placename then -- Alias matched when resolved. this_holonym_matches = true break end end if this_holonym_matches then -- Alias matched above when resolved. holonym_matches_at_level = true break else -- Not an alias, or doesn't match when resolved. We have a true mismatch. holonym_exists_with_same_placetype = true end end end end if holonym_matches_at_level then match_at_level = true break end if holonym_exists_with_same_placetype then mismatch_at_level = true end end end if not match_at_level and mismatch_at_level then containers_mismatch = true break end end if not containers_mismatch then return group, key, spec, container_trail end end end end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, find and return the corresponding key, spec and group as well as the trail of ancestral containers. This is like `iterate_matching_holonym_location()` but throws an error if more than one location matches. (An example where this would happen is {{tl|place|en|neighborhood|city/Newcastle}}, because there are two known locations named Newcastle. To fix this, specify additional following disambiguating holonyms, e.g. {{tl|place|en|neighborhood|city/Newcastle|s/New South Wales}}. ]==] function export.find_matching_holonym_location(data) local all_found = {} for group, key, spec, container_trail in export.iterate_matching_holonym_location(data) do insert(all_found, {group, key, spec, container_trail}) end if not all_found[1] then return nil elseif all_found[2] then local holonym_placetype = data.holonym_placetype if type(holonym_placetype) == "table" then holonym_placetype = concat(holonym_placetype, ",") end local found_keys = {} for _, found in ipairs(all_found) do local _, key, _, _ = unpack(found) insert(found_keys, key) end error(("Found multiple matching locations for holonym '%s/%s'; specify disambiguating context in the " .. "containing holonyms: %s"):format(holonym_placetype, data.holonym_placename, dump(found_keys))) else return unpack(all_found[1]) end end ------------------------------------------------------------------------------------------ -- Placename and placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: This is a map from aliases to their canonical forms. Any placetypes appearing as keys here will be mapped to their canonical forms in all respects, including the display form. Contrast entries in 'placetype_data' with a fallback, which applies to categorization and other processes but not to display. The most important aliases are for holonym placetypes, particularly those that occur often such as "country", "state", "province" and the like. Particularly long placetypes that mostly occur as entry placetypes (e.g. "census-designated place") can be given abbreviations, but it is generally preferred to spell out the entry placetype. Note also that we purposely avoid certain abbreviations that would be ambiguous (e.g. "d", which could variously be interpreted as "department", "district" or "division"). ]==] export.placetype_aliases = { ["acomm"] = "autonomous community", ["adr"] = "administrative region", ["adterr"] = "administrative territory", -- Pakistan ["aobl"] = "autonomous oblast", ["aokr"] = "autonomous okrug", ["ap"] = "autonomous province", ["apref"] = "autonomous prefecture", ["aprov"] = "autonomous province", ["ar"] = "autonomous region", ["arch"] = "archipelago", ["arep"] = "autonomous republic", ["aterr"] = "autonomous territory", ["atu"] = "autonomous territorial unit", ["bor"] = "borough", ["c"] = "country", ["can"] = "canton", ["carea"] = "council area", ["cc"] = "constituent country", ["cdblock"] = "community development block", ["cdep"] = "Crown dependency", ["CDP"] = "census-designated place", ["cdp"] = "census-designated place", ["clcity"] = "county-level city", ["co"] = "county", ["cobor"] = "county borough", ["colcity"] = "county-level city", ["coll"] = "collectivity", ["comm"] = "community", ["cont"] = "continent", ["contr"] = "continental region", ["contregion"] = "continental region", ["cpar"] = "civil parish", ["damun"] = "direct-administered municipality", ["dep"] = "dependency", ["department capital"] = "departmental capital", ["dept"] = "department", ["depterr"] = "dependent territory", ["dist"] = "district", ["distmun"] = "district municipality", ["div"] = "division", ["emp"] = "empire", ["fpref"] = "French prefecture", ["gov"] = "governorate", ["govnat"] = "governorate", ["home-rule city"] = "home rule city", ["home-rule municipality"] = "home rule municipality", ["inner-city area"] = "inner city area", ["ires"] = "Indian reservation", ["isl"] = "island", ["lbor"] = "London borough", ["lga"] = "local government area", ["lgarea"] = "local government area", ["lgd"] = "local government district", ["lgdist"] = "local government district", ["metbor"] = "metropolitan borough", ["metcity"] = "metropolitan city", ["metmun"] = "metropolitan municipality", ["mtn"] = "mountain", ["mun"] = "municipality", ["mundist"] = "municipal district", ["nonmetropolitan county"] = "non-metropolitan county", ["obl"] = "oblast", ["okr"] = "okrug", ["p"] = "province", ["par"] = "parish", ["parmun"] = "parish municipality", ["pen"] = "peninsula", ["plcity"] = "prefecture-level city", ["plcolony"] = "Polish colony", ["pref"] = "prefecture", ["prefcity"] = "prefecture-level city", ["preflcity"] = "prefecture-level city", ["prov"] = "province", ["r"] = "region", ["range"] = "mountain range", ["rcm"] = "regional county municipality", ["rcomun"] = "regional county municipality", ["rdist"] = "regional district", ["rep"] = "republic", ["rhrom"] = "rural hromada", ["riv"] = "river", ["rmun"] = "regional municipality", ["robor"] = "royal borough", ["romp"] = "Roman province", ["runit"] = "regional unit", ["rurmun"] = "rural municipality", ["s"] = "state", ["sar"] = "special administrative region", ["shrom"] = "settlement hromada", ["spref"] = "subprefecture", ["sprefcity"] = "sub-prefectural city", ["sprovcity"] = "subprovincial city", ["submet city"] = "sub-metropolitan city", ["submetropolitan city"] = "sub-metropolitan city", ["sub-prefecture-level city"] = "sub-prefectural city", ["sub-provincial city"] = "subprovincial city", ["sub-provincial district"] = "subprovincial district", ["terr"] = "territory", ["terrauth"] = "territorial authority", ["twp"] = "township", ["twpmun"] = "township municipality", ["uauth"] = "unitary authority", ["ucomm"] = "unincorporated community", ["udist"] = "unitary district", ["uhrom"] = "urban hromada", ["uterr"] = "union territory", ["utwpmun"] = "united township municipality", ["val"] = "valley", ["vdc"] = "village development committee", ["vil"] = "village", ["voi"] = "voivodeship", ["wcomm"] = "Welsh community", -- Chinese capital/seat types ["首都"] = "capital", ["省會"] = "provincial capital", ["首府"] = "regional capital", ["縣治"] = "county seat", -- Chinese placetype name aliases (map to English equivalents so they inherit preposition, display handler, etc.) ["國家"] = "country", ["構成國"] = "constituent country", ["大洲"] = "continent", ["洲"] = "continent", ["大陸"] = "continent", ["帝國"] = "empire", ["共和國"] = "republic", ["邦"] = "state", ["州"] = "state", ["省"] = "province", ["郡"] = "county", ["縣"] = "county", ["城市"] = "city", ["市"] = "city", ["區"] = "district", ["鄉"] = "township", ["鎮"] = "town", ["村"] = "village", ["社區"] = "community", ["島"] = "island", ["島嶼"] = "island", ["群島"] = "archipelago", ["半島"] = "peninsula", ["山"] = "mountain", ["山脈"] = "mountain range", ["河"] = "river", ["河流"] = "river", ["谷"] = "valley", ["山谷"] = "valley", ["特別行政區"] = "special administrative region", ["直轄市"] = "direct-administered municipality", ["地級市"] = "prefecture-level city", ["縣級市"] = "county-level city", ["副省級市"] = "subprovincial city", ["副地級市"] = "sub-prefectural city", ["市轄區"] = "municipal district", ["自治區"] = "autonomous region", ["自治省"] = "autonomous province", ["自治州"] = "autonomous prefecture", ["自治共和國"] = "autonomous republic", ["自治市"] = "borough", ["屬地"] = "dependent territory", ["海外領地"] = "dependent territory", ["領地"] = "territory", ["聯邦屬地"] = "union territory", ["皇家屬地"] = "Crown dependency", ["教區"] = "parish", ["堂區"] = "parish", ["民政教區"] = "civil parish", ["廣域市"] = "metropolitan city", ["非建制地區"] = "unincorporated community", ["人口普查指定地區"] = "census-designated place", ["印第安保留地"] = "Indian reservation", ["羅馬行省"] = "Roman province", ["單一管理區"] = "unitary authority", ["地方行政區"] = "local government area", } local no_link_def_article = {link = false, article = "the"} local no_link_no_article = {link = false, article = false} --[==[ var: These qualifiers can be prepended onto any placetype and will be handled correctly. For example, the placetype `large city` will be displayed as `large <nowiki>[[city]]</nowiki>` and categorized as if `city` were specified. If the value in the following table is a string, the qualifier will display according to the string. If the value is `true`, the qualifier will be linked to its corresponding Wiktionary entry. If the value is `false`, the qualifier will not be linked but will appear as-is. Note that these qualifiers do not override placetypes with entries elsewhere that contain those same qualifiers. For example, the entry for `inland sea` in `placetype_data` will apply in preference to treating `inland sea` as equivalent to `sea`. ]==] export.placetype_qualifiers = { -- generic qualifiers ["huge"] = false, ["tiny"] = false, ["large"] = false, ["big"] = false, ["mid-size"] = false, ["mid-sized"] = false, ["small"] = false, ["sizable"] = false, ["important"] = false, ["long"] = false, ["short"] = false, ["major"] = false, ["minor"] = false, ["high"] = false, ["tall"] = false, ["low"] = false, ["left"] = false, -- left tributary ["right"] = false, -- right tributary ["modern"] = false, -- for use in opposition to "ancient" in another definition -- "former" qualifiers ["abandoned"] = true, ["ancient"] = true, ["deserted"] = true, ["extinct"] = true, ["former"] = false, ["historic"] = "historical", ["historical"] = true, ["medieval"] = true, ["mediaeval"] = true, ["ruined"] = true, ["traditional"] = true, -- sea qualifiers ["coastal"] = true, ["inland"] = true, -- note, we also have an entry in placetype_data for 'inland sea' to get a link to [[inland sea]] ["maritime"] = true, ["overseas"] = true, ["seaside"] = true, ["beachfront"] = true, ["beachside"] = true, ["riverside"] = true, -- lake qualifiers ["freshwater"] = true, ["saltwater"] = true, ["endorheic"] = true, ["oxbow"] = true, ["ox-bow"] = "[[oxbow]]", -- [[ox-bow]] is a red link ["tidal"] = true, -- land qualifiers ["hilltop"] = true, ["hilly"] = true, ["insular"] = true, ["peninsular"] = true, ["chalk"] = true, ["karst"] = true, ["limestone"] = true, ["mountainous"] = true, ["mountaintop"] = true, ["alpine"] = true, ["volcanic"] = true, -- for an island -- political status qualifiers ["autonomous"] = true, ["incorporated"] = true, ["special"] = true, ["unincorporated"] = true, ["coterminous"] = true, -- monetary status/etc. qualifiers ["fashionable"] = true, ["wealthy"] = true, ["affluent"] = true, ["declining"] = true, -- city vs. rural qualifiers ["urban"] = true, ["suburban"] = true, ["exurban"] = true, ["outlying"] = true, ["remote"] = true, ["rural"] = true, ["outback"] = true, ["inner"] = false, ["inner-city"] = true, ["central"] = false, ["outer"] = false, -- land use qualifiers ["residential"] = true, ["agricultural"] = true, ["business"] = true, ["commercial"] = true, ["industrial"] = true, -- business use qualifiers ["railroad"] = true, ["railway"] = true, ["farming"] = true, ["fishing"] = true, ["mining"] = true, ["logging"] = true, ["cattle"] = true, -- tourism use qualifiers ["resort"] = true, -- note, we also have 'resort city' and 'resort town', that take precedecne ["spa"] = true, -- note, we also have 'spa city' and 'spa town', that take precedecne ["ski"] = true, -- note, we also have 'ski resort city' and 'ski resort town', that take precedecne -- religious qualifiers ["holy"] = true, ["sacred"] = true, ["religious"] = true, ["secular"] = true, -- qualifiers for nonexistent places ["claimed"] = false, ["fictional"] = true, ["legendary"] = true, ["mythical"] = true, ["mythological"] = true, -- directional qualifiers ["northern"] = false, ["southern"] = false, ["eastern"] = false, ["western"] = false, ["north"] = false, ["south"] = false, ["east"] = false, ["west"] = false, ["northeastern"] = false, ["southeastern"] = false, ["northwestern"] = false, ["southwestern"] = false, ["northeast"] = false, ["southeast"] = false, ["northwest"] = false, ["southwest"] = false, -- seasonal qualifiers ["summer"] = true, -- e.g. for 'summer capital' ["winter"] = true, -- legal status qualifiers -- FIXME: Two-word qualifiers don't work yet. But you can enter "de-facto" and it's canonicalized to [[de facto]]. ["official"] = true, ["unofficial"] = true, ["de facto"] = true, -- 'de facto capital' ["de-facto"] = "[[de facto]]", -- [[de-facto]] is a red link ["de jure"] = true, -- 'de jure capital' ["de-jure"] = "[[de jure]]", -- [[de-jure]] is a red link -- NOTE: 'unrecognized/unrecognised' are handled as placetypes 'unrecognized country', 'unrecognized state' -- misc. qualifiers ["planned"] = true, ["chartered"] = true, ["landlocked"] = true, ["uninhabited"] = true, -- superlative qualifiers ["first"] = no_link_def_article, ["second"] = no_link_def_article, -- for "second largest" etc. ["third"] = no_link_def_article, ["fourth"] = no_link_def_article, ["last"] = no_link_def_article, ["only"] = no_link_def_article, ["sole"] = no_link_def_article, ["main"] = no_link_def_article, ["largest"] = no_link_def_article, ["biggest"] = no_link_def_article, ["smallest"] = no_link_def_article, ["shortest"] = no_link_def_article, ["longest"] = no_link_def_article, ["tallest"] = no_link_def_article, ["highest"] = no_link_def_article, ["lowest"] = no_link_def_article, ["leftmost"] = no_link_def_article, ["rightmost"] = no_link_def_article, ["innermost"] = no_link_def_article, ["outermost"] = no_link_def_article, ["northernmost"] = no_link_def_article, ["southernmost"] = no_link_def_article, ["westernmost"] = no_link_def_article, ["easternmost"] = no_link_def_article, ["northwesternmost"] = no_link_def_article, ["southwesternmost"] = no_link_def_article, ["northeasternmost"] = no_link_def_article, ["southeasternmost"] = no_link_def_article, -- several/various ["several"] = no_link_no_article, ["various"] = no_link_no_article, ["numerous"] = no_link_no_article, ["multiple"] = no_link_no_article, ["many"] = no_link_no_article, ["other"] = no_link_no_article, } --[==[ var: In this table, the key qualifiers should be treated the same as the value qualifiers for categorization purposes. This is overridden by `placetype_data` and `qualifier_to_placetype_equivs`. ]==] export.former_qualifiers = { ["abandoned"] = {"FORMER"}, ["ancient"] = {"ANCIENT", "FORMER"}, ["former"] = {"FORMER"}, ["extinct"] = {"FORMER"}, ["historic"] = {"FORMER"}, ["historical"] = {"FORMER"}, ["medieval"] = {"ANCIENT", "FORMER"}, ["mediaeval"] = {"ANCIENT", "FORMER"}, ["ruined"] = {"ANCIENT", "FORMER"}, ["traditional"] = {"FORMER"}, } --[==[ var: In this table, any placetypes containing these qualifiers that do not occur in `placetype_data` should be mapped to the specified placetypes for categorization purposes. Entries here are overridden by `placetype_data`. ]==] export.qualifier_to_placetype_equivs = { ["fictional"] = "fictional location", ["legendary"] = "mythological location", ["mythical"] = "mythological location", ["mythological"] = "mythological location", -- For e.g. Taiwan as a "claimed province" of China; parts of Belize as claimed by Guatemala; various islands -- claimed by various parties in East Asia. FIXME: We should conditionalize on what is being claimed since there are -- also claimed capitals, e.g. Israel and Palestine claim Jerusalem as their capital. ["claimed"] = "claimed political division", } --[==[ var: Mapping from placetypes to the corresponding plural category-only placetype for a capital of that placetype. The reverse mapping also exists. ]==] export.placetype_to_capital_cat = { ["autonomous community"] = "autonomous community capitals", ["canton"] = "cantonal capitals", ["comarca"] = "comarca capitals", ["country"] = "national capitals", -- The following are not obviously different from 'county seats' but the latte terminology is used in the US. ["county"] = "county capitals", ["department"] = "departmental capitals", ["district"] = "district capitals", ["division"] = "division capitals", ["emirate"] = "emirate capitals", ["governorate"] = "governorate capitals", ["hromada"] = "hromada capitals", ["krai"] = "krai capitals", ["metropolitan city"] = "metropolitan city capitals", ["municipality"] = "municipal capitals", ["oblast"] = "oblast capitals", ["okrug"] = "okrug capitals", ["prefecture"] = "prefectural capitals", ["province"] = "provincial capitals", ["raion"] = "raion capitals", ["regency"] = "regency capitals", ["region"] = "regional capitals", ["regional unit"] = "regional unit capitals", ["republic"] = "republic capitals", ["state"] = "state capitals", ["territory"] = "territorial capitals", ["voivodeship"] = "voivodeship capitals", } --[==[ var: This contains placenames that should be preceded by an article (almost always "the"). '''NOTE''': There are multiple ways that placenames can come to be preceded by "the": # Listed here. # Given in [[Module:place/locations]] with an initial "the". All such placenames are added to this map by the code just below the map. # The placetype of the placename has `holonym_use_the = true` in its placetype_data. # A regex in placename_the_re matches the placename. Note that "the" is added only before the first holonym in a place description. ]==] export.placename_article = { -- This should only contain info that can't be inferred from [[Module:place/locations]]. ["archipelago"] = { ["Cyclades"] = "the", ["Dodecanese"] = "the", }, ["country"] = { ["Holy Roman Empire"] = "the", }, ["empire"] = { ["Holy Roman Empire"] = "the", }, ["island"] = { ["North Island"] = "the", ["South Island"] = "the", }, ["region"] = { ["Balkans"] = "the", ["Russian Far East"] = "the", ["Caribbean"] = "the", ["Caucasus"] = "the", ["Middle East"] = "the", ["New Territories"] = "the", ["North Caucasus"] = "the", ["South Caucasus"] = "the", ["West Bank"] = "the", ["Gaza Strip"] = "the", }, ["valley"] = { ["San Fernando Valley"] = "the", }, } --[==[ var: Regular expressions to apply to determine whether we need to put 'the' before a holonym. The key "*" applies to all holonyms, otherwise only the regexes for the holonym's placetype apply. ]==] export.placename_the_re = { -- We don't need entries for peninsulas, seas, oceans, gulfs or rivers -- because they have holonym_use_the = true. ["*"] = {"^Isle of ", " Islands$", " Mountains$", " Empire$", " Country$", " Region$", " District$", "^City of "}, ["bay"] = {"^Bay of "}, ["lake"] = {"^Lake of "}, ["country"] = {"^Republic of ", " Republic$"}, ["republic"] = {"^Republic of ", " Republic$"}, ["region"] = {" [Rr]egion$"}, ["river"] = {" River$"}, ["local government area"] = {"^Shire of "}, ["county"] = {"^Shire of "}, ["Indian reservation"] = {" Reservation", " Nation"}, ["tribal jurisdictional area"] = {" Reservation", " Nation"}, } --[==[ var: If any of the following holonyms are present, the associated holonyms are automatically added to the end of the list of holonyms for categorization (but not display) purposes. ]==] export.cat_implications = { ["region"] = { ["Eastern Europe"] = {"continent/Europe"}, ["Central Europe"] = {"continent/Europe"}, ["Western Europe"] = {"continent/Europe"}, ["South Europe"] = {"continent/Europe"}, ["Southern Europe"] = {"continent/Europe"}, ["Northern Europe"] = {"continent/Europe"}, ["Northeast Europe"] = {"continent/Europe"}, ["Northeastern Europe"] = {"continent/Europe"}, ["Southeast Europe"] = {"continent/Europe"}, ["Southeastern Europe"] = {"continent/Europe"}, ["North Caucasus"] = {"continent/Europe"}, ["South Caucasus"] = {"continent/Asia"}, ["South Asia"] = {"continent/Asia"}, ["Southern Asia"] = {"continent/Asia"}, ["East Asia"] = {"continent/Asia"}, ["Eastern Asia"] = {"continent/Asia"}, ["Central Asia"] = {"continent/Asia"}, ["West Asia"] = {"continent/Asia"}, ["Western Asia"] = {"continent/Asia"}, ["Southeast Asia"] = {"continent/Asia"}, ["North Asia"] = {"continent/Asia"}, ["Northern Asia"] = {"continent/Asia"}, ["Anatolia"] = {"continent/Asia"}, ["Asia Minor"] = {"continent/Asia"}, ["Mesopotamia"] = {"continent/Asia"}, ["North Africa"] = {"continent/Africa"}, ["Central Africa"] = {"continent/Africa"}, ["West Africa"] = {"continent/Africa"}, ["East Africa"] = {"continent/Africa"}, ["Southern Africa"] = {"continent/Africa"}, ["Central America"] = {"continent/Central America"}, ["Caribbean"] = {"continent/North America"}, ["Polynesia"] = {"continent/Oceania"}, ["Micronesia"] = {"continent/Oceania"}, ["Melanesia"] = {"continent/Oceania"}, ["Siberia"] = {"country/Russia", "continent/Asia"}, ["Russian Far East"] = {"country/Russia", "continent/Asia"}, ["South Wales"] = {"constituent country/Wales", "continent/Europe"}, ["Balkans"] = {"continent/Europe"}, ["West Bank"] = {"country/Palestine", "continent/Asia"}, ["Gaza"] = {"country/Palestine", "continent/Asia"}, ["Gaza Strip"] = {"country/Palestine", "continent/Asia"}, } } ------------------------------------------------------------------------------------------ -- Category and display handlers -- ------------------------------------------------------------------------------------------ local function city_type_cat_handler(data) local entry_placetype = data.entry_placetype local generic_before_non_cities = export.get_placetype_prop(entry_placetype, "generic_before_non_cities") if not generic_before_non_cities then internal_error("city_type_cat_handler called on placetype %s that doesn't have a `generic_before_non_cities`" .. " setting", entry_placetype) end local plural_entry_placetype = export.pluralize_placetype(entry_placetype) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and not spec.is_city then -- ZH: "法國的城市" (location_key + 的 + zh_placetype_name) local zh_name_raw = export.get_zh_placetype_name(entry_placetype) local zh_entry_name = zh_name_raw and export.format_zh_name(zh_name_raw) or plural_entry_placetype local de = export.zh_strings.de_particle local retcats = {export.get_prefixed_key(key, spec) .. de .. zh_entry_name} if container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_entry_name) end end return retcats end end local function capital_city_cat_handler(data, non_city) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc -- The first time we're called we want to return something; otherwise we will be called for later-mentioned -- holonyms, which can result in wrongly classifying into e.g. `National capitals`. Simulate the loop in -- find_placetype_cat_specs() over holonyms so we get the proper `Cities in ...` categories as well as the capital -- category/categories we add below. local retcats if not non_city and place_desc.holonyms then for h_index, holonym in export.get_holonyms_to_check(place_desc, holonym_index) do local h_placetype, h_placename = holonym.placetype, holonym.unlinked_placename retcats = city_type_cat_handler { entry_placetype = "city", holonym_placetype = h_placetype, holonym_placename = h_placename, holonym_index = h_index, place_desc = place_desc, } if retcats then break end end end if not retcats then retcats = {} end -- Now find the appropriate capital-type category for the placetype of the holonym, e.g. 'State capitals'. If we -- recognize the holonym among the known holonyms in [[Module:place/locations]], also add a category like 'State -- capitals of the United States'. Truncate e.g. 'autonomous region' to 'region', 'union territory' to 'territory' -- when looking up the type of capital category, if we can't find an entry for the holonym placetype itself (there's -- an entry for 'autonomous community'). -- ZH: look up Chinese capital label by holonym placetype ("首都", "省會", "首府", etc.) local zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype] if not zh_capital_name then zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype:gsub("^.* ", "")] end local de = export.zh_strings.de_particle if zh_capital_name then local inserted_specific_variant_cat = false if holonym_index then -- Now find the first recognized holonym location. We don't stop when :also is seen because of the common pattern -- where we use :also to specify that a given city is the capital at multiple surrounding levels. local matching_group, matching_key, matching_spec, matching_container_trail, matching_holonym_index for h_index = holonym_index, #place_desc.holonyms do if place_desc.holonyms[h_index].placetype then matching_group, matching_key, matching_spec, matching_container_trail = export.find_matching_holonym_location { holonym_placetype = place_desc.holonyms[h_index].placetype, holonym_placename = place_desc.holonyms[h_index].unlinked_placename, holonym_index = h_index, place_desc = place_desc, } if matching_group then matching_holonym_index = h_index break end end end if matching_holonym_index == holonym_index then if matching_container_trail[1] and not matching_spec.no_container_cat then for _, container in ipairs(matching_container_trail[1]) do -- ZH: "美國的首都" (location_key + 的 + zh_capital_name) insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_capital_name) inserted_specific_variant_cat = true end end elseif matching_holonym_index then -- Check to make sure that the holonym placetype we were called on is listed among the -- divtypes of the location we found. local function insert_specific_variant_if_possible(key, spec) return export.get_equiv_placetype_prop(holonym_placetype, function(pt) local plural_holonym_placetype = export.pluralize_placetype(pt) local saw_matching_div if spec.divs then local divs = spec.divs if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) ~= "table" then div = {type = div} end if plural_holonym_placetype == div.type then saw_matching_div = true break end end end if saw_matching_div then insert(retcats, export.get_prefixed_key(key, spec) .. de .. zh_capital_name) return true end return false end) end if insert_specific_variant_if_possible(matching_key, matching_spec) then inserted_specific_variant_cat = true elseif not matching_spec.no_container_cat then for _, containers in ipairs(matching_container_trail) do local saw_no_container_cat = false for _, container in ipairs(containers) do if insert_specific_variant_if_possible(container.key, container.spec) then inserted_specific_variant_cat = true break end saw_no_container_cat = saw_no_container_cat or container.spec.no_container_cat end if inserted_specific_variant_cat or saw_no_container_cat then break end end end end else -- This happens when in an invocation like {{place|en|capital city|s/Haryana,Punjab}} for -- [[Chandigarh]]. We fall back to older code that doesn't depend on the holonym index existing. -- FIXME: This may not be necessary. In the example just given, when processing Haryana we add to -- [[:Category:en:State capitals of India]], and nothing extra gets added when processing Punjab. -- Possibly we can just skip this case entirely. local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_capital_name) inserted_specific_variant_cat = true end end end if not inserted_specific_variant_cat then insert(retcats, zh_capital_name) end else -- We didn't recognize the holonym placetype; fall back to generic capital label. insert(retcats, "首都") end return retcats end --[=[ This is invoked specially for all placetypes (see the `*` placetype key at the bottom of `placetype_data`). This is used in two ways: # To add pages to generic holonym categories like [[:Category:en:Places in Merseyside, England]] (and [[:Category:en:Places in England]]) for any pages that have `co/Merseyside` as their holonym. # To categorize demonyms in bare placename categories like [[:Category:en:Merseyside, England]] if the demonym description mentions `co/Merseyside` and doesn't mention a more specific placename that also has a category. (In this case there are none, but we can have demonyms at multiple levels, e.g. in France for individual villages, departments, administrative regions, and for the entire country, and for example we only want to categorize a demonym into [[:Category:France]] if no more specific category applies.) Unlike when invoked from {{tl|place}}, a demonym invocation only adds the most specific holonym category and not the category of any containing polity (hence if we add [[:Category:en:Merseyside, England]] we won't also add [[:Category:England]]). This code also handles cities; e.g. for the first use case above, it would be used to add a page that has `city/Boston` as a holonym to [[:Category:en:Places in Boston]], along with [[:Category:en:Places in Massachusetts, USA]] and [[:Category:en:Places in the United States]]. The city handler tries to deal with the possibility of multiple cities having the same name. For example, the code in [[Module:place/locations]] knows about the city of [[Columbus]], [[Ohio]], which has containing polities `Ohio` (a state) and `the United States` (a country). If either containing polity is mentioned, the handler proceeds to return the key `Columbus` (along with `Ohio, USA` and `the United States`). Otherwise, if any other state or country is mentioned, the handler returns nothing, and otherwise it assumes the mentioned city is the one we're considering and returns `Columbus` etc. This works correctly if the place only mentions Ohio and a holonym for a Columbus in a different country is encountered, because of the function `augment_holonyms_with_container`, which adds the US as a holonym when Ohio is encountered. The single parameter `data` is as in category handlers. The return value is a list of categories (without the preceding language code). ]=] local function generic_place_cat_handler(data) local from_demonym = data.from_demonym local retcats = {} local function insert_retkey(key, spec) if from_demonym then insert(retcats, key) else -- ZH: "法國地名" (location_key + 地名) insert(retcats, export.get_prefixed_key(key, spec) .. "地名") end end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then if not spec.no_generic_place_cat then -- This applies to continents and continental regions. insert_retkey(key, spec) end -- Categorize both in key, and in the larger location(s) that the key is part of, e.g. [[Hirakata]] goes in -- both [[Category:Places in Osaka Prefecture, Japan]] and [[Category:Places in Japan]]. But not when -- no_container_cat is set (e.g. for 'United Kingdom'). if not spec.no_container_cat then for _, container_set in ipairs(container_trail) do local stop_adding_containers = false for _, container in ipairs(container_set) do if not container.spec.no_generic_place_cat then insert_retkey(container.key, container.spec) end if container.spec.no_container_cat then stop_adding_containers = true end end if stop_adding_containers then break end end end return retcats end end --[==[ Special category handler run for all placetypes that checks for specified division placetypes of known locations and categorizes appropriately. ]==] function export.political_division_cat_handler(data) if data.from_demonym then return end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then local divlists = {} if spec.divs then insert(divlists, spec.divs) end if spec.addl_divs then insert(divlists, spec.addl_divs) end for _, divlist in ipairs(divlists) do if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local sgdiv = export.maybe_singularize_placetype(div.type) or div.type local prep = div.prep or "of" local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" then cat_as = {cat_as} end if not export.placetype_data[sgdiv] then internal_error("Placetype %s associated with known location key %s and data %s not found in " .. "`placetype_data`", sgdiv, key, spec) end if sgdiv == data.entry_placetype then -- ZH: "臺灣的縣" format (location_key + 的 + zh_name); ignore cat_as grouping local zh_n_raw = export.get_zh_placetype_name(data.entry_placetype) local zh_n = zh_n_raw and export.format_zh_name(zh_n_raw) or ucfirst(data.entry_placetype) return {export.get_prefixed_key(key, spec) .. export.zh_strings.de_particle .. zh_n} end end end end end --[==[ This is used to add pages to "bare" categories like [[:Category:en:Georgia, USA]] for `[[Georgia]]` and any foreign-language terms that are translations of the state of Georgia. We look at the page title (or its overridden value in {{para|pagename}}) as well as the glosses in {{para|t}}/{{para|t2}} etc., various extra-info values such as the modern names in {{para|modern}}, and any values specified using a form-of directive. We need to pay attention to the entry placetypes specified so we don't overcategorize; e.g. the US state of Georgia is `[[Джорджия]]` in Russian but the country of Georgia is `[[Грузия]]`, and if we just looked for matching names, we'd get both Russian terms categorized into both [[:Category:ru:Georgia, USA]] and [[:Category:ru:Georgia]]. We also need to check the containing holonyms to make sure there isn't a mismatch (so we don't e.g. categorize Newark, Delaware in [[:Category:en:Newark]], which is intended for Newark, New Jersey). ]==] function export.get_bare_categories(args, overall_place_spec) local bare_cats = {} local place_descs = overall_place_spec.descs local possible_placetypes_by_place_desc = {} for i, place_desc in ipairs(place_descs) do possible_placetypes_by_place_desc[i] = {} for _, placetype in ipairs(place_desc.placetypes) do if not export.placetype_is_ignorable(placetype) then local equivs = export.get_placetype_equivs(placetype, {register_former_as_non_former = true}) for _, equiv in ipairs(equivs) do insert(possible_placetypes_by_place_desc[i], equiv.placetype) end end end end local function check_term(term) -- Treat Wikipedia links like local ones. term = term:gsub("%[%[w:", "[["):gsub("%[%[wikipedia:", "[[") term = export.remove_links_and_html(term) term = term:gsub("^the ", "") for i, place_desc in ipairs(place_descs) do -- Iterate over all matching locations in case there are multiple, as with Delhi defined as -- {{place|en|megacity/and/union territory|c/India|containing the national capital [[New Delhi]]}}. for group, key, spec, container_trail in export.iterate_matching_holonym_location { holonym_placetype = possible_placetypes_by_place_desc[i], holonym_placename = term, place_desc = place_desc, } do insert(bare_cats, key) end end end -- FIXME: Should we only do the following if the language is English (requires that the lang is passed in)? -- We should always do it if `pagename` is given (as it is with {{tcl}}) but maybe not otherwise unless 1=en. There -- are cases like [[Ankara]] = English name for capital of Turkey, but also the name in various languages for the -- capital of Ghana (= English [[Accra]]). But this should get caught by mismatching the containing country. The -- advantage of checking when the language isn't English is we catch those places that fail to give an English -- translation but where the translation happens to be the same as the other-language spelling. However, I don't -- know how often this situation occurs. check_term(args.pagename or mw.loadData("Module:headword/data").pagename) for _, t in ipairs(args.t) do check_term(t) end local function check_termobj_list(terms) for _, term in ipairs(terms) do if term.eq then check_term(term.eq) end if term.alt or term.term then check_term(term.alt or term.term) end end end for _, extra_info_terms in ipairs(overall_place_spec.extra_info) do local arg = extra_info_terms.arg if arg == "modern" or arg == "now" or arg == "full" or arg == "short" then check_termobj_list(extra_info_terms.terms) end end for _, directive in ipairs(overall_place_spec.directives) do check_termobj_list(directive.terms) end return bare_cats end --[==[ This is used to augment the holonyms associated with a place description with the containing polities. For example, given the following: `# {{tl|place|en|subprefecture|pref/Hokkaido}}.` We auto-add Japan as another holonym so that the term gets categorized into [[:Category:Subprefectures of Japan]]. To avoid over-categorizing we need to check to make sure no other countries are specified as holonyms. ]==] function export.augment_holonyms_with_container(place_descs) for _, place_desc in ipairs(place_descs) do if place_desc.holonyms then -- This ends up containing a copy of the original holonyms, with the augmented holonyms inserted in their -- appropriate position. We don't just put them at the end because some holonyms have use the `:also` -- modifier, which causes category processing to restart at that point after generating categories for a -- preceding holonym, and we don't want the preceding holonym's augmented holonyms interfering with -- categorization of a later holonym. We proceed from right to left, and each time we augment, we copy -- the holonyms with the augmented holonym(s) inserted appropriately and replace the place description's -- holonyms with the augmented ones before the next iteration. The reason for this is so that e.g. -- {{place|neighborhood|city/Birmingham|co/West Midlands|cc/England}} doesn't throw an error during the -- augmentation process due to 'Birmingham' referring to two known locations (in England and Alabama). If -- we go left to right, we will throw an ambiguity error on `city/Birmingham` because code to exclude -- Birmingham, Alabama needs `c/United Kingdom` present (to cause a mismatch with `c/United States`), -- which isn't yet present as the augmentation code hasn't gotten to `cc/England` yet. For similar -- reasons, we need to include the augmented holonyms in the holonyms considered in the next iteration -- rather than modifying the place description once at athe end. for i = #place_desc.holonyms, 1, -1 do local holonym = place_desc.holonyms[i] if holonym.placetype and not export.placetype_is_ignorable(holonym.placetype) then local group, key, spec, container_trail = export.find_matching_holonym_location { holonym_placetype = holonym.placetype, holonym_placename = holonym.unlinked_placename, holonym_index = i, place_desc = place_desc, } if group and container_trail[1] and not spec.no_auto_augment_container then local augmented_holonyms = {} for j = 1, i do insert(augmented_holonyms, place_desc.holonyms[j]) end for _, containers in ipairs(container_trail) do local any_no_auto_augment_container = false for _, container in ipairs(containers) do any_no_auto_augment_container = any_no_auto_augment_container or container.spec.no_auto_augment_container local containing_type = container.spec.placetype if type(containing_type) == "table" then -- If the containing type is a list, use the first element as the canonical variant. containing_type = containing_type[1] end local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) -- Don't side-effect holonyms while processing them. local new_holonym = { -- By the time we run, the display has already been generated so we don't need to -- set display_placename. placetype = containing_type, -- placename_to_key() for the group should correctly handle both full and elliptical -- placenames, but the full placename seems less likely to be ambiguous. FIXME: We -- should just store the key directly and use it when available to avoid having to -- convert key to placename and back to key. unlinked_placename = full_container_placename, -- Indicate that this is an augmented holonym, and was derived from the specified -- holonym. In iterate_matching_holonym_location(), we ignore augmented holonyms -- derived from holonyms that are different from the holonym we're searching for but -- of the same placetype. This is to correctly handle a situation like -- {{place|river|dept/Ardèche,Gard,Vaucluse,Bouches-du-Rhône|c/France}}. Here, -- `Ardèche` is in `r/Auvergne-Rhône-Alpes`, while `Gard` is in `r/Occitania` and -- the other two are in `r/Provence-Alpes-Côte d'Azur`. Augmenting proceeds from -- right to left, so after it adds `r/Provence-Alpes-Côte d'Azur` to -- `Bouches-du-Rhône`, Vaucluse gets augmented correctly but `Gard` fails to match -- in find_matching_holonym_location() because of the mismatch between augmented -- `r/Provence-Alpes-Côte d'Azur` and actual `r/Occitania`. Similarly, all later -- calls to find_matching_holonym_location() fail to match `Gard` (and likewise -- `Ardèche`) against any known location. To deal with this, we mark augmented -- holoynms as being augmented due to a source holonym, and when processing a given -- holonym, ignore augmented holonyms from other holonyms of the same placetype. -- The restriction to the same placetype is so that `Birmingham` still gets -- correctly disambiguated to Birmingham, England in the example given above near -- the top of this function, using the augmented holonym `c/United Kingdom` added by -- the specified `cc/England` (whose placetype `constituent country` differs from -- the placetype `city` of Birmingham). augmented_from_holonym = holonym, } insert(augmented_holonyms, new_holonym) -- But it is safe to modify other parts of the place_desc. export.key_holonym_into_place_desc(place_desc, new_holonym) end if any_no_auto_augment_container then break end end for j = i + 1, #place_desc.holonyms do insert(augmented_holonyms, place_desc.holonyms[j]) end place_desc.holonyms = augmented_holonyms end end end end end end -- Cat handler for district, areas, neighborhoods and suburbs. Districts are tricky because they can either be political -- divisions or city neighborhoods. Areas similarly can be political divisions (rarely; specifically, in Kuwait), city -- neighborhoods or larger geographical areas/regions. We handle this as follows: -- (1) `placetype_data` cat entries for specific countries or country divisions take precedence over cat_handlers, so if -- the user says {{tl|place|district|s/Maharashtra|c/India}}, we won't even be called because there is an entry that -- categorizes into [[:Category|Districts of Maharashtra, India]]. -- (2) If we're called, we check the holonym we're called on to see if it is a recognized city, e.g. if we're called -- using {{tl|place|district|city/Mumbai|s/Maharashtra|c/India}}. If so, we categorize under e.g. -- [[:Category:Neighbourhoods of Mumbai]]. (Choosing the spelling "neighbourhoods" because we're in India.) -- (3) If we're called and the holonym is not a recognized city, we check if the placetype has has_neighborhoods set. -- If so, it's "city-like" and we categorize under the first containing polity that we recognize. For example, if -- we're called using {{tl|place|district|town/Northampton|co/Hampshire|s/Massachusetts|c/US}}, we should recognize -- town as "city-like" and categorize under [[:Category:Neighborhoods in Massachusetts]]. (Note "in" not "of", and -- note the spelling "neighborhoods" because we're in the US.) -- (4) If the holonym is not city-like, we do nothing. If there's a city or city-like placetype farther up (e.g. we're -- called as {{tl|place|district|ward/Foo|mun/Bar|...}}), we will handle the city-like entity according to (2) or -- (3) when called on that holonym. Otherwise either the categorization in (1) takes place or there's no -- categorization. local function district_neighborhood_cat_handler(data) local function get_plural_entry_placetype(location_spec, container_trail) if data.entry_placetype == "suburb" then return "Suburbs" else -- Check for `british_spelling` setting on the spec itself or any container. local uses_british_spelling = location_spec.british_spelling if uses_british_spelling == nil and container_trail then for _, container_set in ipairs(container_trail) do local must_outer_break = false for _, container in ipairs(container_set) do if container.spec.british_spelling ~= nil then uses_british_spelling = container.spec.british_spelling must_outer_break = true break end end if must_outer_break then break end end end return uses_british_spelling and "Neighbourhoods" or "Neighborhoods" end end -- First check the immediate holonym to see if it's a city or a city-like top-level entity (Hong Kong, Bonaire, -- etc.) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and spec.is_city then return {get_plural_entry_placetype(spec, container_trail) .. " of " .. export.get_prefixed_key(key, spec)} end -- If the entry placetype is neighbo(u)rhood, assume it is a neighborhood even if there isn't a city-like -- entity father up the chain. (E.g. due to a mistaken use of m/ instead of mun/ for municipality.) local has_neighborhoods local entry_placetype = data.entry_placetype if entry_placetype == "neighborhood" or entry_placetype == "neighbourhood" or entry_placetype == "suburb" then has_neighborhoods = true else -- Otherwise, make sure the current holonym is city-like. has_neighborhoods = export.get_equiv_placetype_prop(data.holonym_placetype, function(pt) return export.get_placetype_prop(pt, "has_neighborhoods") end, {continue_on_nil_only = true}) end if has_neighborhoods then -- Loop up the holonyms, looking for city and city-like entities in case of e.g. [[Sepulveda]] written -- {{place|en|neighborhood|valley/San Fernando Valley|city/Los Angeles|s/California|c/USA}} -- but also look for a recognizable poldiv, and if so categorize as "Neighborhoods in POLDIV". We need -- to start with the current holonym, which is especially important for neighborhoods and suburbs that -- may have the first holonym be a recognizable province, etc. but can't hurt otherwise. (Previously -- we skipped the first/current holonym.) for other_holonym_index, other_holonym in export.get_holonyms_to_check(data.place_desc, data.holonym_index) do local other_holonym_data = { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = data.place_desc, } local group, key, spec, container_trail = export.find_matching_holonym_location(other_holonym_data) if group and not spec.is_former_place then return {get_plural_entry_placetype(spec, container_trail) .. (spec.is_city and " of " or " in ") .. export.get_prefixed_key(key, spec)} end end end end function export.check_already_seen_string(holonym_placename, already_seen_strings) local canon_placename = ulower(m_links.remove_links(holonym_placename)) if type(already_seen_strings) ~= "table" then already_seen_strings = {already_seen_strings} end for _, already_seen_string in ipairs(already_seen_strings) do if canon_placename:find(already_seen_string) then return true end end return false end -- Prefix display handler that adds a prefix such as "Metropolitan Borough of " to the display -- form of holonyms. We make sure the holonym doesn't contain the prefix or some variant already. -- We do this by checking if any of the strings in ALREADY_SEEN_STRINGS, either a single string or -- a list of strings, or the prefix if ALREADY_SEEN_STRINGS is omitted, are found in the holonym -- placename, ignoring case and links. If the prefix isn't already present, we create a link that -- uses the raw form as the link destination but the prefixed form as the display form, unless the -- holonym already has a link in it, in which case we just add the prefix. local function prefix_display_handler(prefix, holonym_placename, already_seen_strings) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(prefix)) then return holonym_placename end if holonym_placename:find("%[%[") then return prefix .. " " .. holonym_placename end return prefix .. " [[" .. holonym_placename .. "]]" end -- Suffix display handler that adds a suffix such as " parish" to the display form of holonyms. -- Works identically to prefix_display_handler but for suffixes instead of prefixes. local function suffix_display_handler(suffix, holonym_placename, already_seen_strings, include_suffix_in_link) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(suffix)) then return holonym_placename end if holonym_placename:find("%[%[") then return holonym_placename .. " " .. suffix end if include_suffix_in_link then return "[[" .. holonym_placename .. " " .. suffix .. "]]" else return "[[" .. holonym_placename .. "]] " .. suffix end end -- Display handler for boroughs. New York City boroughs are display as-is. Others are suffixed -- with "borough". local function borough_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.new_york_boroughs[unlinked_placename] then -- Hack: don't display "borough" after the names of NYC boroughs return holonym_placename end return suffix_display_handler("borough", holonym_placename) end local function county_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) -- Display handler for Irish counties. Irish counties are displayed as e.g. "County [[Cork]]". if m_locations.ireland_counties["County " .. unlinked_placename .. ", Ireland"] or m_locations.northern_ireland_counties["County " .. unlinked_placename .. ", Northern Ireland"] then return prefix_display_handler("County", holonym_placename) end -- Display handler for Taiwanese counties. Taiwanese counties are displayed as e.g. "[[Chiayi]] County". if m_locations.taiwan_counties[unlinked_placename .. " County, Taiwan"] then return suffix_display_handler("County", holonym_placename) end -- Display handler for Romanian counties. Romanian counties are displayed as e.g. "[[Cluj]] County". if m_locations.romania_counties[unlinked_placename .. " County, Romania"] then return suffix_display_handler("County", holonym_placename) end -- FIXME, we need the same for US counties but need to key off the country, not the specific county. -- Others are displayed as-is. return holonym_placename end -- Display handler for prefectures. Japanese prefectures are displayed as e.g. "[[Fukushima]] Prefecture". -- Others are displayed as e.g. "[[Fthiotida]] prefecture". local function prefecture_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) local suffix = m_locations.japan_prefectures[unlinked_placename .. " Prefecture, Japan"] and "Prefecture" or "prefecture" return suffix_display_handler(suffix, holonym_placename) end -- Display handler for provinces of Bulgaria, Iran, Laos, North and South Korea, Thailand, Turkey and Vietnam. Recognized -- provinces are displayed as e.g. "[[Gyeonggi]] Province" or "[[Antalya]] Province". Others are displayed as-is. local function province_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.bulgaria_provinces[unlinked_placename .. "Province, Bulgaria"] or m_locations.iran_provinces[unlinked_placename .. " Province, Iran"] or m_locations.laos_provinces[unlinked_placename .. " Province, Laos"] or m_locations.north_korea_provinces[unlinked_placename .. " Province, North Korea"] or m_locations.south_korea_provinces[unlinked_placename .. " Province, South Korea"] or m_locations.thailand_provinces[unlinked_placename .. " Province, Thailand"] or m_locations.turkey_provinces[unlinked_placename .. " Province, Turkey"] or m_locations.vietnam_provinces[unlinked_placename .. " Province, Vietnam"] then return suffix_display_handler("Province", holonym_placename) end return holonym_placename end -- Display handler for Nigerian states. Nigerian states are display as "[[Kano]] State". Others are displayed as-is. local function state_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.nigeria_states[unlinked_placename .. " State, Nigeria"] then return suffix_display_handler("State", holonym_placename) end return holonym_placename end -- Display handler for voivodeships. Display as e.g. [[Subcarpathian Voivodeship]]. local function voivodesip_display_handler(holonym_placetype, holonym_placename) return suffix_display_handler("Voivodeship", holonym_placename, nil, "include_suffix_in_link") end ------------------------------------------------------------------------------------------ -- Placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: Main placetype data structure. This specifies, for each canonicalized placetype, various properties. The keys are placetypes (in the singular, except for category-only placetypes, which are plural and followed by `!`), and the value is a table of properties. The `"*"` key is special and is used for adding "generic" categories of the form `Places in ``location`` `; it runs for all entry placetypes. Keys in the form of plural placetypes followed by `!` are used only in [[Module:category tree/topic cat/data/Places]] for specifying the properties of categories containing the specified placetype, esp. bare categories like [[:Category:States and territories]] (rather than qualified categories like [[:Category:States and territories of Australia]]). Keys under the value table for a given placetype of are two types: ''property keys'' (which specify the value of specific properties) and ''categorization keys'' (which tell how to categorize certain sorts of holonyms if the placetype in question occurs as an entry placetype). Categorization keys are either the special value `default` or are wildcard strings with a slash in them, such as `"country/*"`. Note that only wildcard strings are currently allowed directly in the placetype data; everything else is handled through category handlers, either per-placetype or special (such as `political_division_cat_handler`). The algorithm for how category keys and handlers are used to generate categories is described at the top of [[Module:place]]. There are several recognized property keys, of various types: 1. The following link-related property keys are recognized: * `link`: '''Required''' except in category-only placetypes ending in `!`. Describes how to link and display the placetype in the formatted description when occurring as an entry placetype. Also used for formatting pluralized placetypes (which may occur in entry placetypes, esp. new-format ones, such as `two <<islands>>`) and may occur in categories). The possible values are: *# `true`: Link to the same-named Wiktionary entry. This creates a raw link, e.g. `<nowiki>[[city]]</nowiki>`, which is converted to an English-specific link by JavaScript postprocessing. If the placetype is plural, this creates a two-part raw link e.g. `<nowiki>[[city|cities]]</nowiki>`. *# `"w"`: Link to the same-named Wikipedia entry. This creates a two-part link, e.g. `<nowiki>[[w:census town|census town]]</nowiki>`, or `<nowiki>[[w:census town|census towns]]</nowiki>` if the placetype is given plural. *# `"+..."`: Create a two-part link to the entry following the `+` sign. For example, if `cercle` specifies `"+w:cercles of Mali"`, a two-part link `<nowiki>[[w:cercles of Mali|cercle]]</nowiki>` will be generated, or `<nowiki>[[w:cercles of Mali|cercles]]</nowiki>` if plural `cercles` is specified. *# `"separately"`: Link each word separately. For example, if `administrative territory` specifies `"separately"`, it will be linked as `<nowiki>[[administrative]] [[territory]]</nowiki>`, or as `<nowiki>[[administrative]] [[territory|territories]]</nowiki>` if plural `administrative territories` is given. *# another string: Use that string directly. If the placetype is plural, `pluralize()` in [[Module:en-utilities]] is called on the string, which will correctly pluralize most strings, including those with links in them. (If there are multiple links, the display form of the last link is pluralized.) *# `false`: This placetype is not allowed as an entry placetype. An error will be thrown if this placetype is given as an entry placetype. This is specified for internal-use placetypes, especially placetypes used in conjunction with the qualifiers `former`, `ancient`, `historical` and such. * `plural_link`: If specified and the placetype is plural, use the value in place of generating a pluralized version of the link spec in `link`. Most commonly, this is either a string with links in it (which is used directly) or the value `false`, indicating that the placetype cannot occur plural. (This is used for example by `caplc`, which displays as `<nowiki>[[capital]] and [[large]]st [[city]]</nowiki>`, where a plural version doesn't make sense.) Generally if this is specified, `plural` also needs to be specified to give a special placetype plural; this situation occurs especially with multiword placetypes where something other than the last word is pluralized. An example is `town with bystatus`, whose plural is `towns with bystatus`, which needs to be explicitly given. This example uses `link = <nowiki>"[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>` ({{m|nb|bystatus}}) is a Norwegian Bokmål word, and template calls aren't currently permitted in link strings), along with `plural_link = <nowiki>"[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>`. * `category_link`: Spec indicating how to display the placetype when occurring in category descriptions. Defaults to the value of `link`, and in turn is overridden by more specific `category_link_*` keys; see below. Category-only placetypes (which are plural and end in `!`) usually use `category_link` in preference to `link`. The value of `category_link` can be any of the types of specs given above, but most commonly is a plural string with links in it, spelling out the description; in this case it is used directly. When both `category_link` and `link` are given, the value in `category_link` is typically longer and more descriptive. For example, `polity` uses `link = true`, which just generates a link `<nowiki>[[polity]]</nowiki>` or plural `<nowiki>[[polity|polities]]</nowiki>`, but specifies a separate `category_link = <nowiki>"[[independent]] or [[semi-]][[independent]] [[polity|polities]]"</nowiki>`, which clarifies in the category description what a polity is. * `category_link_top_level`: Spec indicating how to display top-level (bare/unqualified) categories, i.e. categories where the placetype is not followed by `in ``location`` ` or `of ``location`` `. If given, this overrides `category_link` for this type of category. * `category_link_before_noncity`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` does not refer to a city. If given, this overrides `category_link` for this type of category. * `category_link_before_city`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` refer to a city. If given, this overrides `category_link` for this type of category. An example where this is given is `neighborhood`, which uses the following specs:<ol> <li>`link = true`</li> <li>`category_link = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]"</nowiki>`</li> <li>`category_link_before_city = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions"</nowiki>`</li> </ol> This has the effect of making the entry placetype `neighborhood` display as just `<nowiki>[[neighborhood]]</nowiki>`, while e.g. a category like `Neighborhoods of Chicago` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[Chicago]], ...</nowiki>` and a category like `Neighborhoods in Illinois, USA` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]] in [[Illinois]], ...</nowiki>`. * `disallow_in_entries`: If specified, this placetype cannot occur as an entry placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. * `disallow_in_holonyms`: If specified, this placetype cannot occur as a holonym placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. 2. There is currently one fallback-related property key recognized: * `fallback`: If specified, its value is a placetype which will be used for categorization purposes if no categories get added using the placetype itself. As an example, `branch` sets a fallback of `river` but also sets `preposition = "of"`, meaning that {{tl|place|en|branch|riv/Mississippi}} displays as `a branch of the Mississippi` (whereas `river` itself uses the preposition `in`), but otherwise categorizes the same as `river`. A more complex example is `area`, which sets a fallback of `geographic and cultural area` and also sets a category handler that checks for cities or city-like entities (e.g. boroughs) occurring as holonyms and categorizes the toponym under [[:Category:Neighborhoods of CITY]] (for recognized cities) or otherwise [[:Category:Neighborhoods of POLDIV]] (for the nearest containing recognized location). In addition, `area` is set as a political division of Kuwait, meaning if `c/Kuwait` occurs as holonym, the toponym is categorized under [[:Category:Areas of Kuwait]]. If none of these categories trigger, the fallback of `geographic and cultural area` will take effect, and the toponym will be categorized as e.g. [[:Category:Geographic and cultural areas of England]]. 3. There is currently one property to control irregular plurals of placetypes: * `plural`: If specified, its value is the plural of the placetype. Otherwise, the default pluralization algorithm in [[Module:en-utilities]] applies (which correctly pluralizes most words, including those ending in `-y`, `-ch`, `-sh`, `-x`, etc.). The value of `plural` is also used when converting a pluralized placetype into its singular equivalent; for example, since the placetype `kibbutz` has `plural = "kibbutzim"`, the placetype `kibbutzim` will be recognized as a plural and singularized to `kibbutz`. For this reason, it's occasionally necessary to specify a `plural` value even when the default pluralization algorithm works correctly, if the default singularization algorithm won't correctly reverse the pluralization (as with `pass` and other terms ending in `-ss`). 4. The following property keys relate to generating categories for entry placetypes and specifying the parents of those categories: * `class`: The general class of placetype. This is used for various purposes: (a) to categorize placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical` (note that these placetypes are not all treated alike); (b) to determine the parent category of bare placetype categories (e.g. [[:Category:Villages]] for placetype `village`); (c) to determine whether to add a parent category `political divisions of specific countries` to qualified placetype categories (e.g. [[:Category:Villages in Mali]]). The possible values are: *# `polity`: a more-or-less sovereign/independent polity, such as a country, kingdom or empire. *# `subpolity`: a non-sovereign division of a polity, above the level of an individual settlement. *# `settlement`: a city or smaller equivalent, such as a village. This also includes administrative divisions of a settlement, such as wards and barangays. *# `non-admin settlement`: similar to a settlement but without administrative or political significance, such as an unincorporated community, farm or neighborhood. *# `capital`: a settlement that is a capital. A former capital is generally still in existence, just not the capital any more. *# `natural feature`: any non-man-made feature, such as a lake, mountain, island, ocean, etc. *# `man-made structure`: a man-made feature below the level of a neighborhood, such as a house, airport, university, metro station, park or the like. *# `geographic region`: a geographic or cultural region or area that has no administrative significance. These may vary greatly in size but typically have some sort of cultural significance (possibly historical). The `former`, `ancient`, etc. qualifier has no effect on the category of these placetypes. *# `generic place`: a place that isn't further qualified into any specific subtype. * `former_type`: The class of placetype used for categorizing placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical`. The possible values are the same as for `class` but with the addition of `dependent territory` (for colonies, protectorates and the like) and `!` (ignore the historical/former/ancient/etc. qualifier; used e.g. with `fictional location` and `mythological location`). If not specified, the value of `class` is used. When a qualifier such as `former`, `ancient`, `medieval` or `historical` is encountered (specifically, those in `former_qualifiers`), it is mapped using `former_qualifiers` to the appropriate internal qualifier or qualifiers (one or both of `ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified qualifiers), which is prepended to the value of `former_type` or `class` to form a placetype whose properties are looked up to determine how to categorize the toponym in question. For example, if `medieval village` is given, we map `medieval` to `ANCIENT` and `FORMER`, and `village` to its `class` of `settlement`, and enter the placetypes `ANCIENT settlement` and `FORMER settlement` (in that order) into the list of equivalent placetypes returned by `get_placetype_equivs`. In this case, there is an entry in `placetype_data` for `ANCIENT settlement`, so its default category spec `Ancient settlements` is used as the category. If on the other hand `medieval kingdom` is given, where `kingdom` has a `class` value `polity`, we first look up `ANCIENT polity`, see there is no entry in `placetype_data` for it, and then look up `FORMER polity`, which exists and has a default category spec `Former polities`, which is used as the category. Note that if the placetype following the "former" qualifier is recognized in `placetype_data` but has no `former_type` or `class` and no fallback with a `former_type` or `class` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like `former greenhouse` is specified and we don't have an entry for `greenhouse`), we just track the occurrence and end up not categorizing. * `bare_category_parent`: This specifies the first parent category of a bare placetype category named according to the placetype in question (e.g. [[:Category:Atolls]] for placetype `atoll`, or [[:Category:Named buildings]] for placetype `named buildings!`). If not specified, the first parent category is determined by the value of `class`, using the mapping `class_to_bare_category_parent` in [[Module:category tree/topic cat/data/Places]]. * `addl_bare_category_parents`: Extra parent categories to add a bare placetype category to (see `bare_category_parent` just above). * `bare_category_breadcrumb`: Breadcrumb for bare placetype categories. Also used as the sort key of `bare_category_parent` if it is a string. * `inherently_former`: If specified and the given placetype is used as an entry placetype, act as if `former` or `ancient` (depending on the value of `inherently_former`) were prefixed to the placetype. This is for placetypes that always refer to no-longer-existing entities, such as `satrapy` and `treaty port`. The value of `inherently_former` is a list of internal qualifiers (one or more of `ANCIENT` and/or `FORMER`), just as for `former_qualifiers`, and the implementation is the same. * `cat_handler`: Handler used to generate the categories to add a given toponym to, if its entry placetype is the placetype in question. Generally the `cat_handler` function checks the holonyms specified in order to determine which category or categories to generate. For example, `district_neighborhood_cat_handler` handles placetypes `district`, `neighborhood`, `subdivision`, `suburb` and the like, and either adds the toponym to a category like `Neighborhoods of ``city`` ` (if a recognized city is given as a holonym), or otherwise a category like `Neighborhoods in ``location`` ` (for the first recognized non-city location given as a holonym, if an unrecognized city or city-like entity is given before the recognized non-city). The algorithm that runs the category handlers iterates over holonyms from left to right, running the `cat_handler` function on each holonym in turn until one or more categories are returned; see below for more specifics. (Note that countries for which e.g. a `district` is a political division do not get the corresponding category added by the `district_neighborhood_cat_handler` function but by `political_division_cat_handler`.) `cat_handler` functions are called with one argument, `data`, describing the resolved entry placetype (i.e. after resolving placetype aliases and fallbacks) and the holonym being processed. The return value should be a list of category specs (categories minus the langcode prefix, with `+++` standing for the holonym key, or the value `true`, which stands for ` ``Placetypes`` in/of ``Holonym`` `, i.e. the pluralized placetype with the appropriate preposition as specified in `placetype_data`). `data` contains the following fields: ** `entry_placetype`: the resolved entry placetype for the entry placetype being processed (i.e. it will always have an entry in `placetype_data` but may not be the original placetype given by the user); ** `holonym_placetype` and `holonym_placename`: the holonym placetype and placename being processed; ** `holonym_index`: the index of the holonym being processed, or {nil} if we're handling an overriding holonym (FIXME: we will change the overriding holonym algorithm so there will be an index even when processing overriding holonyms); ** `place_desc`: a full description of the {{tl|place}} call, as specified at the top of [[Module:place]]; ** `from_demonym`: If set, we are called from [[Module:demonym]], triggered by {{tl|demonym-adj}} or {{tl|demonym-noun}}, instead of being triggered by {{tl|place}}. * `has_neighborhoods`: If `true`, the specified placetype is city-like. This is used in the `district_neighborhood_cat_handler` to determine whether to add a category such as `Neighborhoods in ``location`` `; see the section just above on `cat_handler`. 5. The following preposition-related property keys are recognized: * `preposition`: The preposition used after this placetype when it occurs as an entry placetype. Defaults to `"in"`. * `generic_before_non_cities`: If specified, the appropriate category description handler in [[Module:category tree/topic cat/data/Places]] will recognize categories of the form ` ``Placetype`` in/of ``location`` ` for the specified placetype and preposition, if ``location`` is a non-city. This is used to generate descriptions for categories added by category handlers and by explicit category specs in the placetype data. All placetypes that specify `generic_before_non_cities` or `generic_before_cities` *MUST* also specify a value for `class` so that the category tree code can determine whether it's a political or non-political division. * `generic_before_cities`: Like `generic_before_non_cities` but for locations referring to cities. 6. The following property keys control the auto-addition of affixes when formatting holonyms of a particular placetype: * `affix_type`: If specified, add the placetype as an affix before or after holonyms of this placetype. Possible values are: *# `"pref"` (the holonym will display as `(the) placetype of Holonym`, where `the` appears when the holonym directly follows an entry placetype); *# `"Pref"` (same as `"pref"` but the placetype is capitalized; each word is capitalized if there are multiple); *# `"suf"` (the holonym will display as `Holonym placetype`); *# `"Suf"` (the holonym will display as `Holonym Placetype`, i.e. same as `"suf"` but the placetype is capitalized). * `suffix`: String to use in place of the placetype itself when the placetype is displayed as a suffix after a holonym. Note that `suffix` can be used independently of `affix_type` because the user can also request a suffix explicitly using a syntax like `adr:suf/Occitania`, which will display as `Occitania region` because the placetype `administrative region` specifies `suffix = "region"`. * `prefix`: Like `suffix` but for use when the placetype is displayed as a prefix before the holonym. * `affix`: Like `suffix` and `prefix` but for use when the placetype is displayed as an affix either before or after the holonym. If both `suffix` or `prefix` and `affix` are given for a single placetype, `suffix` or `prefix` take precedence. * `no_affix_strings`: String or list of strings that, if they occur in the holonym, suppress the addition of any affix requested using `affix_type`. Defaults to the placetype itself. For example, `autonomous okrug` specifies `affix_type = "Suf"` so that `aokr/Nenets` displays as `Nenets Autonomous Okrug`, but also specifies `no_affix_strings = "okrug"` so that `aokr/Nenets Okrug` or `aokr/Nenets Autonomous Okrug` displays as specified, without a redundant `Autonomous Okrug` added. Matching is case-insensitive but whole-word. * `display_handler`: A function of two arguments, `holonym_placetype` and `holonym_placename` (specifying a holonym). Its return value is a string specifying the display form of the holonym. 7. The following property keys control the indefinite and definite articles used before entry placetypes and/or holonyms of the specified placetype. * `entry_placetype_use_the`: Use `"the"` before this placetype when it occurs as an entry placetype. * `entry_placetype_indefinite_article`: Indefinite article used before this placetype when it occurs as an entry placetype (usually `"a"`, specifically for placetypes beginning with u- that don't take the indefinite article `"an"`). Defaults to the appropriate indefinite article (`"a"` or `"an"` depending on whether the placetype begins with a vowel). Overridden by `entry_placetype_use_the`, and unlike for most properties, does not apply to equivalent placetypes (i.e. fallbacks or those formed by removing a qualifier from the beginning); only to the exact placetype specified. * `holonym_use_the`: Use `"the"` before holonyms of this placetype. '''NOTE:''' # The `link` property must be specified on all placetypes, except those ending in `!` (category-only placetypes), which must have either `link` or `category_link` specified. # Either the `class` or `former_type` property must be specified on all placetypes not ending in `!` that do not have a fallback (if a placetype has a fallback and omits the `class` and `former_type` properties, they are taken from the fallback). An internal error will result if a placetype has no `class` or `former_type` property derivable either directly or through a fallback, if an attempt is made to categorize a former/ancient/historical/etc. entity of this placetype. # It is possible to have multiple levels of fallback (e.g. `frazione` falls back to `hamlet`, which falls back to `village`). Fallback loops will cause an internal error. All placetypes specified as fallbacks must exist in `placetype_data` or an internal error occurs. ]==] export.placetype_data = { --[=[ If you need to sort the following, do this (using Vim): 1. Make sure all full-line comments are within the { ... } table, or are moved after and on the same line as single-line entries. 2. Make sure the table uses tabs everywhere for indent, and not spaces. 3. Mark the top of the table with `ma`, go to the bottom and execute the following two lines in sequence: :'a,.s/\n/\\n/g :s/\\n\(\t\[\)/\r\1/g The first command converts every newline to a literal `\n` sequence, so the whole thing becomes a single line, while the second command restores the newlines before the beginning of each entry. The effect is to convert all entries to a single line while not losing any information. (Potentially a negative lookahead could be used to do it all in one command.) 4. Execute the following to sort: :'a,.!perl -pe 's/^(\t\[")(.*?)(".*)$/$2 @@@ $1$2$3/' | sort -f | perl -pe 's/.*? @@@ //' Note that a simple `sort -f` (where `-f` means case-insensitive) would almost work, but it would sort "hill station" before "hill" and "county borough" before "county" because the space after e.g. "hill station" sorts before the quotation mark after e.g. "hill". The above command deals with this by extracting the key, prepending it followed by ` @@@ `, sorting, and then removing key (the classic decorate-sort-undecorate pattern). 5. Put the table back to multi-line format by marking the top of the table with `ma`, going to the bottom and executing :'a,.s/\\n/\r/g Note that for some reason, in order to get a match a newline in the left side of a replacement, you must use \n, but to insert a newline in the right sode of a replacement you must use \r. ]=] ["*"] = { link = false, cat_handler = generic_place_cat_handler, }, ["administrative atoll"] = { -- Maldives link = "+w:administrative divisions of the Maldives", preposition = "of", class = "subpolity", }, ["administrative capital"] = { link = "w", fallback = "capital city", }, ["administrative center"] = { link = "w", fallback = "non-city capital", }, ["administrative centre"] = { link = "w", fallback = "administrative center", }, ["administrative county"] = { link = "w", fallback = "county", }, ["administrative district"] = { link = "w", fallback = "district", }, ["administrative headquarters"] = { link = "separately", fallback = "administrative centre", }, ["administrative region"] = { link = true, preposition = "of", suffix = "region", -- but prefix is still "administrative region (of)" fallback = "region", class = "subpolity", }, ["administrative seat"] = { link = "w", fallback = "administrative centre", }, ["administrative territory"] = { link = "separately", preposition = "of", suffix = "territory", -- but prefix is still "administrative territory (of)" fallback = "territory", class = "subpolity", }, ["administrative unit"] = { -- Grrr, it's difficult to generalize about "administrative units". In Albania, "administrative unit" is an -- official term for a city-level division of municipalities; Wikipedia renders it using the more practical term -- "commune". In Pakistan, "administrative unit" is a collective term used to refer to all the different types -- of first-level divisions (four provinces, one federal territory, and two "disputed territories", i.e. Azad -- Kashmir and Gilgit-Balistan, that are variously described). For this reason, we set no fallback, but we need -- to include this so that it can be used as a placetype for Albania, categorizing as communes. link = "w", class = "subpolity", }, ["administrative village"] = { link = "w", preposition = "of", has_neighborhoods = true, class = "settlement", }, ["aimag"] = { -- used in Mongolia, Russia and China (Inner Mongolia); in Mongolia, equivalent to a province; -- in China, equivalent to a prefecture (below a province); in Russia, equivalent to a municipal district. link = "w", fallback = "prefecture", }, ["airport"] = { link = true, class = "man-made structure", default = {true}, }, ["alliance"] = { link = true, fallback = "confederation", }, ["archipelago"] = { link = true, fallback = "island", }, ["area"] = { link = true, preposition = "of", fallback = "geographic and cultural area", -- Areas can either be administrative divisions (specifically of Kuwait) or geographic areas. Assume the former -- when categorizing 'Areas' but the latter when handling e.g. 'historical area'. class = "subpolity", former_type = "geographic region", cat_handler = district_neighborhood_cat_handler, }, ["arm"] = { link = true, preposition = "of", class = "natural feature", default = {"海"}, }, ["arrondissement"] = { link = true, preposition = "of", -- FIXME!!! Grrrrr!!! In some countries, arrondissements are divisions of cities; in others, they are divisions -- of departments or provinces. Need to conditionalize on the country for both of the following. class = "subpolity", has_neighborhoods = true, }, ["associated province"] = { link = "separately", fallback = "province", }, ["atoll"] = { -- FIXME! Atolls are administrative divisions of the Maldives but natural features elsewhere. Need to -- conditionalize `class` on the country. See also `administrative atoll`. link = true, class = "natural feature", bare_category_parent = "islands", default = {true}, }, ["autonomous city"] = { link = "w", preposition = "of", fallback = "city", has_neighborhoods = true, }, ["autonomous community"] = { -- Spain; refers to regional entities, not village-like entities, as might be expected from "community" link = true, preposition = "of", class = "subpolity", }, ["autonomous island"] = { -- Comoros; seems like an administrative atoll of the Maldives. link = "+w:autonomous islands of Comoros", preposition = "of", class = "subpolity", }, ["autonomous oblast"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "oblast", class = "subpolity", }, ["autonomous okrug"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "okrug", class = "subpolity", }, ["autonomous prefecture"] = { link = true, fallback = "prefecture", }, ["autonomous province"] = { link = "w", fallback = "province", }, ["autonomous region"] = { link = "w", preposition = "of", fallback = "administrative region", -- "administrative region" sets an affix of "region" but we want to display as "Tibet Autonomous Region" -- if the user writes 'ar:Suf/Tibet'. affix = "autonomous region", }, ["autonomous republic"] = { link = "w", preposition = "of", class = "subpolity", }, ["autonomous territorial unit"] = { -- Moldova; only two of them, one for Gagauzia and one for Transnistria. link = "w", preposition = "of", class = "subpolity", }, ["autonomous territory"] = { link = "w", fallback = "dependent territory", }, ["bailiwick"] = { -- Jersey, etc. link = true, fallback = "polity", }, ["barangay"] = { -- Philippines link = true, class = "settlement", -- Barangays are formal administrative divisions of a city rather than informal neighborhoods, but can use -- some of the properties of a neighborhood. fallback = "neighborhood", }, ["barrio"] = { -- Spanish-speaking countries; Philippines link = true, -- FIXME: Not completely correct, in some countries barrios are formal administrative divisions of a city. -- `class` will need to conditionalize on the country to be completely correct. fallback = "neighborhood", }, ["basin"] = { link = true, fallback = "lake", }, ["bay"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["beach"] = { link = true, class = "natural feature", addl_bare_category_parents = {"water"}, default = {true}, }, ["beach resort"] = { link = "w", fallback = "resort town", }, ["bishopric"] = { link = true, fallback = "polity", }, ["bodies of water!"] = { -- FIXME: This is (maybe?) a type category not a name category. There should be an option for this. We need to -- straighten out the type vs. name vs. related-to issue. category_link = "[[body of water|bodies of water]]", class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems", "water"}, }, ["borough"] = { link = true, preposition = "of", display_handler = borough_display_handler, has_neighborhoods = true, -- "former borough" could be a former settlement or a former part of a city but seems more likely to -- be a former subpolity, particularly in England. FIXME, we really need a handler to take care of this -- properly. class = "subpolity", -- Grr, some boroughs are city-like but some (e.g. in Britain) may be larger. }, ["borough seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["branch"] = { link = true, preposition = "of", fallback = "river", }, ["bridge"] = { link = true, class = "man-made structure", default = {"具名橋樑"}, }, ["building"] = { link = true, class = "man-made structure", default = {"具名建築物"}, }, ["built-up area"] = { link = "w", fallback = "area", }, ["burgh"] = { link = true, fallback = "borough", }, ["business park"] = { link = true, fallback = "park", }, ["caliphate"] = { link = true, fallback = "polity", }, ["canton"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["cape"] = { link = true, fallback = "headland", }, ["capital"] = { link = true, fallback = "capital city", }, ["capital city"] = { link = true, category_link = "[[capital city|capital cities]]: the [[seat of government|seats of government]] for a country or [[political]] [[division]] of a country", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", bare_category_parent = "cities", cat_handler = capital_city_cat_handler, default = {true}, -- The following is necessary so that e.g. [[Melbourne]] defined as {{place|en|capital city|s/Victoria|c/Australia}} -- gets categorized in the bare category [[Category:en:Melbourne]]; otherwise placetype 'capital city' wouldn't -- match against the placetype 'city' of Melbourne. fallback = "city", }, ["caplc"] = { link = "[[capital]] and [[large]]st [[city]]", plural_link = false, fallback = "capital city", }, ["captaincy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["caravan city"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"ANCIENT", "FORMER"}, }, ["castle"] = { link = true, fallback = "building", }, ["cathedral city"] = { link = true, fallback = "city", }, ["cattle station"] = { -- Australia link = true, fallback = "farm", }, ["census area"] = { link = true, affix_type = "Suf", has_neighborhoods = true, class = "non-admin settlement", }, ["census-designated place"] = { -- United States link = true, class = "non-admin settlement", }, ["census division"] = { -- Canada link = "w", preposition = "of", class = "subpolity", }, ["census town"] = { link = "w", fallback = "town", }, ["central business district"] = { link = true, fallback = "neighborhood", }, ["cercle"] = { -- Mali link = "+w:cercles of Mali", preposition = "of", class = "subpolity", }, ["ceremonial county"] = { link = true, fallback = "county", }, ["chain of islands"] = { link = "[[chain]] of [[island]]s", plural = "chains of islands", plural_link = "[[chain]]s of [[island]]s", fallback = "island", }, ["channel"] = { link = true, fallback = "strait", }, ["charter community"] = { -- Northwest Territories, Canada link = "w", fallback = "village", }, ["city"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["city-state"] = { link = true, category_link = "[[sovereign]] [[microstate]]s consisting of a single [[city]] and [[w:dependent territory|dependent territories]]", has_neighborhoods = true, class = "settlement", ["continent/*"] = {"城邦", "+++的市", "+++國家", "首都"}, default = {"城邦", "城市", "國家", "首都"}, }, ["civil parish"] = { -- Mostly England; similar to municipalities link = true, preposition = "of", affix_type = "suf", has_neighborhoods = true, class = "subpolity", }, ["claimed political division"] = { link = "[[claim]]ed [[political]] [[division]]", class = "subpolity", default = {true}, }, ["co-capital"] = { link = "[[co-]][[capital]]", fallback = "capital city", }, ["coal city"] = { link = "+w:coal town", fallback = "city", }, ["coal town"] = { link = "w", fallback = "town", }, ["collectivity"] = { link = "w", preposition = "of", -- No default; these are weird one-off governmental divisions in France (esp. for overseas collectivities) class = "subpolity", }, ["colony"] = { link = true, fallback = "dependent territory", }, ["comarca"] = { -- per Wikipedia: traditional region or local administrative division found in Portugal, Spain, and some of -- their former colonies, like Brazil, Nicaragua, and Panama. In the Valencian Community, for example, it -- sits between municipalities and provinces, something like a county or district. link = true, preposition = "of", class = "subpolity", }, ["commandery"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["commonwealth"] = { link = true, preposition = "of", -- No default; applies specifically to Puerto Rico class = "subpolity", }, ["commune"] = { link = true, fallback = "municipality", }, ["community"] = { link = true, category_link = "[[community|communities]] of all sizes", fallback = "village", }, ["community development block"] = { -- in India; appears to be similar to a rural municipality; groups several villages, unclear if there will be -- neighborhoods so I'm not setting `has_neighborhoods` for now link = "w", affix_type = "suf", no_affix_strings = "block", class = "subpolity", }, ["comune"] = { -- Italy, Switzerland link = true, fallback = "municipality", }, ["condominium"] = { link = true, fallback = "polity", }, ["confederacy"] = { link = true, fallback = "confederation", }, ["confederation"] = { link = true, fallback = "polity", }, ["constituency"] = { -- currently we have them as political divisions of Namibia but many countries have them link = true, preposition = "of", class = "subpolity", }, ["constituent country"] = { link = true, preposition = "of", class = "subpolity", }, ["constituent part"] = { link = "separately", preposition = "of", class = "subpolity", }, ["constituent republic"] = { -- Of Russia, Yugoslavia, etc. link = "separately", preposition = "of", class = "subpolity", }, ["counties and county-level cities!"] = { -- This is used when grouping counties and county-level cities under prefecture-level cities in China. category_link = "[[county|counties]] and [[county-level city|county-level cities]]", class = "subpolity", }, ["continent"] = { link = true, category_link = false, -- can't occur as a bare category class = "natural feature", default = {"大洲及大陸地區"}, }, ["continental region"] = { link = "separately", category_link = false, -- can't occur as a bare category class = "geographic region", fallback = "continent", }, ["continents and continental regions!"] = { category_link = "[[continent]]s and [[continent]]-[[level]] [[region]]s (e.g. [[Polynesia]])", class = "geographic region", }, ["council area"] = { link = true, -- in Scotland; similar to a county preposition = "of", affix_type = "suf", class = "subpolity", }, ["country"] = { link = true, class = "polity", ["continent/*"] = {true, "國家"}, default = {true}, }, ["country-like entities!"] = { category_link = "[[polity|polities]] not normally considered [[country|countries]] but treated similarly for categorization purposes; typically, [[unrecognized]] [[de-facto]] countries or [[w:dependent territory|dependent territories]]", class = "polity", }, ["county"] = { link = true, preposition = "of", display_handler = county_display_handler, class = "subpolity", }, ["county borough"] = { link = true, -- in Wales; similar to a county preposition = "of", affix_type = "suf", fallback = "borough", class = "subpolity", }, ["county seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["county town"] = { link = true, entry_placetype_use_the = true, preposition = "of", fallback = "town", has_neighborhoods = true, class = "capital", }, ["county-administered city"] = { -- In Taiwan, per Wikipedia similar to a Taiwanese township or district, which is a small city. -- NOT anything like a "county-level city" in PR China, which is a county masquerading as a city. link = "w", fallback = "city", has_neighborhoods = true, class = "settlement", }, ["county-controlled city"] = { -- Taiwan link = "w", fallback = "county-administered city", }, ["county-level city"] = { -- PR China link = "w", fallback = "prefecture-level city", }, ["crater lake"] = { link = true, fallback = "lake", }, ["creek"] = { link = true, fallback = "stream", }, ["Crown colony"] = { link = "+crown colony", fallback = "crown colony", }, ["crown colony"] = { link = true, fallback = "colony", }, ["Crown dependency"] = { link = true, fallback = "dependent territory", }, ["crown dependency"] = { link = true, fallback = "dependent territory", }, ["cultural area"] = { link = "w", fallback = "geographic and cultural area", }, ["cultural region"] = { link = "w", fallback = "geographic and cultural area", }, ["delegation"] = { -- Tunisia link = "+w:delegations of Tunisia", preposition = "of", class = "subpolity", }, ["department"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["departmental capital"] = { link = "separately", fallback = "capital city", }, ["dependency"] = { link = true, fallback = "dependent territory", }, ["dependent territory"] = { link = "w", preposition = "of", class = "subpolity", former_type = "dependent territory", bare_category_parent = "political divisions", ["country/*"] = {true}, default = {true}, }, ["desert"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems"}, default = {true}, }, ["deserted mediaeval village"] = { link = "w", fallback = "deserted medieval village", }, ["deserted medieval village"] = { link = "w", fallback = "ANCIENT settlement", }, ["direct-administered municipality"] = { -- China link = "+w:direct-administered municipalities of China", fallback = "municipality", }, ["direct-controlled municipality"] = { -- several countries link = "w", fallback = "municipality", }, ["distributary"] = { link = true, preposition = "of", fallback = "river", }, ["district"] = { link = true, preposition = "of", affix_type = "suf", -- Grrr! FIXME! Here is where we need handlers for `class`. Using similar logic to -- district_neighborhood_cat_handler, we need to check if we're below or above a city to determine if the class -- is "settlement" or "subpolity". class = "subpolity", cat_handler = district_neighborhood_cat_handler, -- No default. Countries for which districts are political divisions will get entries. }, ["districts and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Portugal. category_link = "[[district]]s and [[autonomous region]]s", class = "subpolity", }, ["districts and autonomous territorial units!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Moldova. category_link = "[[district]]s and [[w:autonomous territorial unit|autonomous territorial unit]]s", class = "subpolity", }, ["district capital"] = { link = "separately", fallback = "capital city", }, ["district headquarters"] = { link = "separately", fallback = "administrative centre", }, ["district municipality"] = { -- In Canada, a district municipality is equivalent to a rural municipality and won't have neighborhoods; in -- South Africa, district municipalities group local municipalities and hence won't have neighborhoods. link = "w", preposition = "of", affix_type = "suf", no_affix_strings = {"district", "municipality"}, fallback = "municipality", class = "subpolity", }, ["division"] = { link = true, preposition = "of", class = "subpolity", }, ["division capital"] = { link = "separately", fallback = "capital city", }, ["dome"] = { link = true, fallback = "mountain", }, ["dormant volcano"] = { link = true, fallback = "volcano", }, ["duchy"] = { link = true, fallback = "polity", }, ["emirate"] = { link = true, preposition = "of", -- FIXME: Can be subpolities (of the United Arab Emirates). fallback = "polity", }, ["empire"] = { link = true, fallback = "polity", }, ["enclave"] = { link = true, preposition = "of", -- Enclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["entity"] = { -- Bosnia and Herzegovina link = "+w:entities of Bosnia and Herzegovina", preposition = "of", class = "subpolity", }, ["escarpment"] = { link = true, fallback = "mountain", }, ["ethnographic region"] = { -- used in Lithuania link = "+w:ethnographic regions of Lithuania", fallback = "geographic and cultural area", }, ["exclave"] = { link = true, preposition = "of", -- exclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["external territory"] = { link = "separately", fallback = "dependent territory", }, ["farm"] = { link = true, class = "non-admin settlement", default = {"農牧場"}, }, ["farms and ranches!"] = { category_link = "[[farm]]s and [[ranch]]es", class = "non-admin settlement", }, ["federal city"] = { link = "w", preposition = "of", fallback = "city", }, ["federal district"] = { link = true, preposition = "of", -- Might have neighborhoods as federal districts are often cities (e.g. Mexico City) has_neighborhoods = true, class = "settlement", }, ["federal subject"] = { -- In Russia; a generic term for first-level administrative divisions (republics, oblasts, okrugs, krais, -- autonomous okrugs and autonomous oblasts). link = "w", preposition = "of", class = "subpolity", }, ["federal territory"] = { link = "w", fallback = "territory", }, ["fictional location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["First Nations reserve"] = { -- Canada link = "[[First Nations]] [[w:Indian reserve|reserve]]", -- Wikipedia uses "Indian reserve"; presumably that is the legal term fallback = "Indian reserve", class = "subpolity", }, ["fjord"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["footpath"] = { link = true, fallback = "road", }, ["forest"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems", "forestry"}, default = {true}, }, ["fort"] = { link = true, fallback = "building", }, ["fortress"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- fortresses -> fortresse, so put an entry here to ensure we singularize correctly. plural = "fortresses", fallback = "building", }, ["frazione"] = { link = "w", fallback = "hamlet", }, ["freeway"] = { link = true, fallback = "road", }, ["French prefecture"] = { link = "[[w:prefectures in France|prefecture]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["geographic and cultural area"] = { link = "+w:cultural area", -- `generic_before_non_cities` is used when generating the category description of categories of the format -- `Geographic and cultural areas of PLACE`. `preposition` is used when generating {{place}} description and -- categories for any placetype that falls back to `geographic and cultural area`. generic_before_non_cities = "of", preposition = "of", class = "geographic region", bare_category_parent = "places", ["country/*"] = {true}, ["constituent country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["geographic area"] = { link = "+w:geographic region", fallback = "geographic and cultural area", }, ["geographic region"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical area"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical region"] = { link = "w", fallback = "geographic and cultural area", }, ["geopolitical zone"] = { -- Nigeria link = true, preposition = "of", class = "subpolity", }, ["gewog"] = { -- Bhutan link = true, preposition = "of", class = "subpolity", }, ["ghost town"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", bare_category_parent = "former settlements", cat_handler = city_type_cat_handler, default = {true}, }, ["glen"] = { link = true, fallback = "valley", }, ["governorate"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["greater administrative region"] = { -- China (former division) link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["gromada"] = { -- Poland (former division) link = "w", preposition = "of", affix_type = "Pref", class = "subpolity", inherently_former = {"FORMER"}, }, ["group of islands"] = { link = "[[group]] of [[island]]s", plural = "groups of islands", plural_link = "[[group]]s of [[island]]s", fallback = "island group", }, ["gulf"] = { link = true, preposition = "of", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["hamlet"] = { link = true, fallback = "village", }, ["harbor city"] = { link = "separately", fallback = "city", }, ["harbor town"] = { link = "separately", fallback = "town", }, ["harbour city"] = { link = "separately", fallback = "city", }, ["harbour town"] = { link = "separately", fallback = "town", }, ["headland"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["headquarters"] = { link = "w", fallback = "administrative centre", }, ["heath"] = { link = true, fallback = "moor", }, ["hemisphere"] = { link = true, entry_placetype_use_the = true, fallback = "continental region", }, ["highway"] = { link = true, fallback = "road", }, ["hill"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["hill station"] = { link = "w", fallback = "town", }, ["hill town"] = { link = "w", fallback = "town", }, ["historic region"] = { -- provided only for the link link = "+w:historical region", fallback = "FORMER geographic region", }, ["historical county"] = { -- needed for historical counties of England/etc. link = "+w:historic county", fallback = "FORMER subpolity", }, ["historical region"] = { -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["home rule city"] = { link = "w", fallback = "city", }, ["home rule municipality"] = { link = "w", fallback = "municipality", }, ["hot spring"] = { link = true, fallback = "spring", }, ["house"] = { link = true, fallback = "building", }, ["housing estate"] = { -- not the same as a housing project (i.e. public housing) link = true, -- not exactly the case but approximately fallback = "neighborhood", }, ["hromada"] = { -- Ukraine link = "w", disallow_in_entries = "Use placetype 'urban hromada', 'rural hromada' or 'settlement hromada' in place of bare 'hromada'", disallow_in_holonyms = "Use placetype 'urban hromada'/'uhrom', 'rural hromada'/'rhrom' or 'settlement hromada'/'shrom' in place of bare 'hromada'", preposition = "of", affix_type = "suf", class = "subpolity", }, ["inactive volcano"] = { link = "w", fallback = "dormant volcano", }, ["independent city"] = { link = true, fallback = "city", }, ["independent town"] = { link = "+independent city", fallback = "town", }, ["Indian reservation"] = { link = "w", -- In the US. Also known as "Native American reservation" or "domestic dependent nation", and the reservations -- themselves often use the term "nation" in their official name (e.g. the "Navajo Nation"). But Wikipedia puts -- the article at [[w:Indian reservation]] and uses that term when describing e.g. what the Navajo Nation is, -- so this must still be the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["Indian reserve"] = { link = "w", -- In Canada. "First Nations reserve" sounds more modern/PC but Wikipedia uses "Indian reserve"; presumably that -- is still the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["inland sea"] = { -- note, we also have 'inland' as a qualifier link = true, fallback = "sea", }, ["inner city area"] = { link = "[[inner city]] [[area]]", fallback = "neighborhood", }, ["island"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["island country"] = { -- FIXME: The following should map to both 'island' and 'country'. link = "w", fallback = "country", }, ["island group"] = { link = "separately", fallback = "island", }, ["island municipality"] = { link = "w", fallback = "municipality", }, ["islet"] = { link = "w", fallback = "island", }, ["Israeli settlement"] = { link = "w", class = "settlement", default = {true}, }, ["judicial capital"] = { link = "w", fallback = "capital city", }, ["khanate"] = { link = true, fallback = "polity", }, ["kibbutz"] = { link = true, plural = "kibbutzim", class = "non-admin settlement", default = {true}, }, ["kingdom"] = { link = true, fallback = "monarchy", }, ["krai"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["lake"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["landforms!"] = { category_link = "[[landform]]s", bare_category_parent = "places", addl_bare_category_parents = {"地球"}, }, ["largest city"] = { link = "[[large]]st [[city]]", entry_placetype_use_the = true, fallback = "city", has_neighborhoods = true, }, ["league"] = { link = true, fallback = "confederation", }, ["legislative capital"] = { link = "separately", fallback = "capital city", }, ["library"] = { link = true, fallback = "building", }, ["lieutenancy area"] = { -- used in the United Kingdom; per Wikipedia: -- In England, lieutenancy areas are colloquially known as the ceremonial counties, although this phrase does -- not appear in any legislation referring to them. The lieutenancy areas of Scotland are subdivisions of -- Scotland that are more or less based on the counties of Scotland, making use of the major cities as separate -- entities.[2] In Wales, the lieutenancy areas are known as the preserved counties of Wales and are based on -- those used for lieutenancy and local government between 1974 and 1996. The lieutenancy areas of Northern -- Ireland correspond to the six counties and two former county boroughs.[3] link = "w", fallback = "ceremonial county", }, ["local authority district"] = { link = "w", fallback = "local government district", }, ["local government area"] = { -- Australia link = "w", preposition = "of", class = "subpolity", }, ["local council"] = { -- Malta; similar to municipalities link = "+w:local councils of Malta", preposition = "of", fallback = "municipality", }, ["local government district"] = { link = "w", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local government district with borough status"] = { link = "[[w:local government district|local government district]] with [[w:borough status|borough status]]", plural = "local government districts with borough status", plural_link = "[[w:local government district|local government districts]] with [[w:borough status|borough status]]", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local urban district"] = { link = "w", fallback = "unincorporated community", }, ["locality"] = { link = "+w:locality (settlement)", -- not necessarily true, but usually is the case fallback = "village", }, ["London borough"] = { link = "w", preposition = "of", affix_type = "pref", affix = "borough", fallback = "local government district with borough status", has_neighborhoods = true, }, ["macroregion"] = { link = true, fallback = "region", }, ["man-made structures!"] = { category_link = "[[w:geographical feature#Engineered constructs|man-made structures]] such as [[airport]]s, [[university|universities]] and [[metro station]]s", bare_category_parent = "places", }, ["manor"] = { -- FIXME: or is this more like a farm? link = true, fallback = "building", }, ["marginal sea"] = { link = true, preposition = "of", fallback = "sea", }, ["market city"] = { link = "+market town", fallback = "city", }, ["market town"] = { link = true, fallback = "town", }, ["massif"] = { link = true, fallback = "mountain", }, ["megacity"] = { link = true, fallback = "city", }, ["metro station"] = { link = true, class = "man-made structure", }, ["metropolitan borough"] = { link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"borough", "city"}, fallback = "local government district", has_neighborhoods = true, }, ["metropolitan city"] = { -- These exist e.g. in Italy and are more like municipalities or even provinces than cities. link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"metropolitan", "city"}, class = "subpolity", }, ["metropolitan county"] = { link = true, fallback = "county", }, ["metropolitan municipality"] = { -- In South Africa, metropolitan municipalities group local municipalities and are like districts, between -- provinces and municipalities. -- In Turkey, metropolitan municipalities are provinces-level. link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"metropolitan", "municipality"}, fallback = "municipality", class = "subpolity", }, ["microdistrict"] = { -- residential complex in post-Soviet states link = true, fallback = "neighborhood", }, ["micronations!"] = { -- FIXME, merge with microstate category_link = "[[micronation]]s", bare_category_parent = "countries", }, ["microstate"] = { link = true, fallback = "country", }, ["military base"] = { link = "w", class = "settlement", -- or "man-made structure"? default = {true}, }, ["minster town"] = { -- England link = "separately", fallback = "town", }, ["monarchy"] = { link = true, fallback = "polity", }, ["moor"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems"}, default = {true}, }, ["moorland"] = { link = true, fallback = "moor", }, ["motorway"] = { link = true, fallback = "road", }, ["mountain"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["mountain indigenous district"] = { -- Taiwan link = "+w:district (Taiwan)", fallback = "district", }, ["mountain indigenous township"] = { -- Taiwan link = "+w:township (Taiwan)", fallback = "township", }, ["mountain pass"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "mountain passes", class = "natural feature", addl_bare_category_parents = {"mountains"}, default = {true}, }, ["mountain range"] = { link = true, fallback = "mountain", }, ["mountainous region"] = { link = "separately", fallback = "region", }, ["mukim"] = { -- Malaysia, Brunei, Indonesia, Singapore link = true, preposition = "of", class = "subpolity", }, ["municipal district"] = { link = "w", -- meaning varies depending on the country; for now, assume no neighborhoods. -- FIXME: has_neighborhoods might have to be a function that looks at the containing holonyms. preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "municipality", }, ["municipality"] = { link = true, preposition = "of", has_neighborhoods = true, class = "subpolity", }, ["municipality with city status"] = { link = "[[municipality]] with [[w:city status|city status]]", plural = "municipalities with city status", plural_link = "[[municipality|municipalities]] with [[w:city status|city status]]", fallback = "municipality", }, ["museum"] = { link = true, fallback = "building", }, ["mythological location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["named bridges!"] = { category_link = "notable [[bridge]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"bridges"}, }, ["named buildings!"] = { category_link = "notable [[house]]s, [[library|libraries]] and other [[building]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"buildings"}, }, ["named roads!"] = { category_link = "notable [[road]]s, [[highway]]s, [[trail]]s and similar linear structures", bare_category_parent = "man-made structures", addl_bare_category_parents = {"roads"}, }, ["national capital"] = { link = "w", fallback = "capital city", }, ["national park"] = { link = true, fallback = "park", }, ["natural features!"] = { category_link = "[[w:geographical feature#Natural features|natural features]] such as [[lake]]s, [[mountain]]s, [[island]]s and [[ocean]]s", bare_category_parent = "places", }, ["neighborhood"] = { -- The majority of the properties here apply to both `neighborhoods` and `neighbourhoods`; the choice of which -- one to use is made by district_neighborhood_cat_handler() based on the value of `british_spelling` for the -- location (city, political division, etc.) of the holonym that follows the word "neighbo(u)hoods" in the -- category name. It does *NOT* depend on whether the {{place}} call uses "neighborhoods" or "neighbourhoods". -- (In general it can't, because other things like "urban areas", "districts", "subdivisions" and the like also -- categorize as neighbo(u)rhoods.) link = true, -- See below. These are used by category handlers in [[Module:category tree/topic cat/data/Places]]. generic_before_non_cities = "in", generic_before_cities = "of", -- The following text is suitable for the top-level description of a neighborhood as well as categories of the -- form `Neighborhoods in POLDIV` e.g. `Neighborhoods in Illinois, USA` but not for categories of the form -- `Neighborhoods of Chicago`, where we'd get "... and other subportions of [[city|cities]] of [[Chicago]]". category_link = "[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighborhood]]s, [[district]]s and other subportions", -- NOTE: This setting is needed for administrative divisions like barangays that fall back to `neighborhood`, -- when set in [[Module:place/locations]] for a specific country (e.g. the Philippines). The above settings -- for `generic_before_non_cities` and `generic_before_cities` are used by category handlers in -- [[Module:category tree/topic cat/data/Places]] for `Neighborhoods in POLDIV` and `Neighborhoods of CITY` -- categories. In fact, district_neighborhood_cat_handler() does not currently pay attention to them, but -- generates "of" before cities and "in" before non-cities regardless. (FIXME: We should change that.) preposition = "of", class = "non-admin settlement", cat_handler = district_neighborhood_cat_handler, }, ["neighbourhood"] = { link = true, category_link = "[[neighbourhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighbourhood]]s, [[district]]s and other subportions", fallback = "neighborhood", }, ["new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", preposition = "in", class = "subpolity", --? }, ["new town"] = { link = true, fallback = "town", }, ["non-city capital"] = { link = "[[capital]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", cat_handler = function(data) return capital_city_cat_handler(data, "non-city") end, -- FIXME, do we need the following? default = {true}, }, ["non-metropolitan county"] = { link = "w", fallback = "county", }, ["non-metropolitan district"] = { link = "w", fallback = "local government district", }, ["non-sovereign kingdom"] = { -- especially in Africa and Asia link = "+w:non-sovereign monarchy", generic_before_non_cities = "in", class = "subpolity", ["country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["non-sovereign monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["oblast"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["oblasts and autonomous republics!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Ukraine. category_link = "[[oblast]]s and [[w:autonomous republic|autonomous republic]]s", class = "subpolity", }, ["ocean"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"seas", "bodies of water"}, default = {true}, }, ["okrug"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["overseas collectivity"] = { link = "w", fallback = "collectivity", }, ["overseas department"] = { link = "w", fallback = "department", }, ["overseas territory"] = { link = "w", fallback = "dependent territory", }, ["parish"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["parish municipality"] = { -- in Quebec, often similar to a rural village; the famous [[Saint-Louis-du-Ha! Ha!]] is one of them. link = "+w:parish municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, }, ["parish seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", class = "capital", has_neighborhoods = true, }, ["park"] = { link = true, class = "man-made structure", default = {true}, }, ["pass"] = { link = "+mountain pass", -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "passes", fallback = "mountain pass", }, ["path"] = { link = true, fallback = "road", }, ["peak"] = { link = true, fallback = "mountain", }, ["peninsula"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["periphery"] = { link = true, preposition = "of", class = "subpolity", }, ["places!"] = { generic_before_non_cities = "in", generic_before_cities = "in", class = "generic place", category_link = "[[place]]s of all sorts", -- `category_link_top_level` control the description used in the top-level [[Category:Places]] and -- language-specific variants such as [[Category:en:Places]]. The actual text for a language-spefic variant is -- "{{{langname}}} names of [[geographical]] [[place]]s of all sorts; [[toponym]]s." where the "names of" -- portion is automatically generated by the appropriate handler in -- [[Module:category tree/topic cat/data/Places]]. category_link_top_level = "[[geographical]] [[place]]s of all sorts; [[toponym]]s", bare_category_parent = "names", }, ["planned community"] = { -- Include this so we don't categorize 'planned community' into villages, as 'community' does. link = true, class = "settlement", has_neighborhoods = true, }, ["plateau"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, -- FIXME: Should generate both "Plateaus" and the appropriate 'geographic and cultural area' category }, ["Polish colony"] = { link = "[[w:colony (Poland)|colony]]", affix_type = "suf", affix = "colony", fallback = "village", has_neighborhoods = true, }, ["political divisions!"] = { category_link = "[[political]] [[division]]s and [[subdivision]]s, such as [[state]]s, [[province]]s, [[county|counties]] or [[district]]s", bare_category_parent = "places", }, ["polity"] = { link = true, category_link = "[[independent]] or [[semi-]][[independent]] [[polity|polities]]", class = "polity", bare_category_parent = "places", default = {true}, }, ["populated place"] = { link = "+w:populated place", -- not necessarily true, but usually is the case fallback = "village", }, ["port"] = { link = true, class = "man-made structure", default = {true}, }, ["port city"] = { -- FIXME: should categorize into "Ports" as well as "Cities" link = true, fallback = "city", }, ["port town"] = { -- FIXME: should categorize into "Ports" as well as "Towns" link = "w", fallback = "town", }, ["prefecture"] = { -- FIXME! `prefecture` is like a county in Japan and elsewhere but a department capital city in France. -- May need `has_neighborhoods` to be a function. link = true, preposition = "of", display_handler = prefecture_display_handler, class = "subpolity", }, ["prefecture-level city"] = { -- China; they are huge entities with a central city; not cities themselves. link = "w", preposition = "of", class = "subpolity", }, ["preserved county"] = { -- In Wales; they are former counties enshrined in law; there are 8 of them and each consists of one or more -- "principal areas" (styled as "counties" or "county boroughs"), of which there are 22. link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["primary area"] = { -- a grouping of "districts" (neighborhoods) in Gothenburg, Sweden link = "+w:sv:primärområde", fallback = "neighborhood", }, ["principality"] = { link = true, fallback = "monarchy", }, ["promontory"] = { link = true, fallback = "headland", }, ["protectorate"] = { link = true, fallback = "dependent territory", }, ["province"] = { link = true, preposition = "of", display_handler = province_display_handler, class = "subpolity", }, ["provinces and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case China. category_link = "[[province]]s and [[autonomous region]]s", class = "subpolity", }, ["provinces and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Canada and Pakistan. category_link = "[[province]]s and [[territory|territories]]", class = "subpolity", }, ["provincial capital"] = { link = "separately", fallback = "capital city", }, ["raion"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["ranch"] = { link = true, fallback = "farm", }, ["range"] = { -- FIXME: Where is this used? Is it a mountain range? link = true, holonym_use_the = true, class = "natural feature", }, ["regency"] = { link = true, preposition = "of", class = "subpolity", }, ["region"] = { link = true, preposition = "of", -- If 'region' isn't a specific administrative division, fall back to 'geographic and cultural area' fallback = "geographic and cultural area", -- "former region" is a subpolity but traditional/historic(al)/ancient/medieval/etc. is a geographic region class = "geographic region", }, ["regional capital"] = { link = "separately", fallback = "capital city", }, ["regional county municipality"] = { -- Quebec link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"municipality", "county"}, fallback = "municipality", }, ["regional district"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "district", }, ["regional municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", }, ["regional unit"] = { link = "w", preposition = "of", affix_type = "suf", class = "subpolity", }, ["registration county"] = { -- Used in Scotland for land registration purposes; formerly used in England, Wales and Ireland for statistical -- purposes (registration of births, deaths and marriages, and for the output of census information). link = "w", fallback = "county", }, ["republic"] = { -- Of Russia, Yugoslavia, etc. "Republics" in general are sovereign but we use "country" in that case. link = true, fallback = "constituent republic", }, ["research base"] = { link = "+w:research station", fallback = "research station", }, ["research station"] = { link = "w", class = "non-admin settlement", -- or "man-made structure"? default = {true}, }, ["reservoir"] = { link = true, fallback = "lake", }, ["residential area"] = { link = "separately", fallback = "neighborhood", }, ["resort city"] = { link = "w", fallback = "city", }, ["resort town"] = { link = "w", fallback = "town", }, ["river"] = { link = true, generic_before_non_cities = "in", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, cat_handler = city_type_cat_handler, ["continent/*"] = {true}, default = {true}, }, ["river island"] = { link = "w", fallback = "island", }, ["road"] = { link = true, class = "man-made structure", default = {"具名道路"}, }, ["Roman province"] = { -- FIXME! Eliminate this in favor of 'former province|emp/Roman Empire' link = "w", default = {"羅馬帝國行省"}, class = "subpolity", }, ["royal borough"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = {"royal", "borough"}, fallback = "local government district with borough status", has_neighborhoods = true, }, ["royal burgh"] = { link = true, fallback = "borough", }, ["royal capital"] = { link = "w", fallback = "capital city", }, ["rural committee"] = { -- Hong Kong; a group of villages link = "w", affix_type = "Suf", has_neighborhoods = true, class = "settlement", }, ["rural community"] = { -- New Brunswick link = "+w:list of municipalities in New_Brunswick#Rural communities", fallback = "municipality", }, ["rural hromada"] = { link = "[[rural]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["rural municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", has_neighborhoods = true, --? }, ["rural township"] = { -- Taiwan link = "+w:rural township (Taiwan)", fallback = "township", }, ["sanctuary"] = { link = true, fallback = "temple", }, ["satrapy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["sea"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["seaport"] = { link = true, fallback = "port", }, ["seat"] = { link = true, fallback = "administrative centre", }, ["self-administered area"] = { -- Myanmar (groups self-administered divisions and zones) link = "+w:self-administered zone", preposition = "of", class = "subpolity", }, ["self-administered division"] = { -- Myanmar (only one of them: Wa Self-Administered Division) link = "w", fallback = "self-administered area", }, ["self-administered zone"] = { -- Myanmar (five of them) link = "w", fallback = "self-administered area", }, ["separatist state"] = { link = "separately", fallback = "unrecognized country", }, ["settlement"] = { link = true, category_link = "[[settlement]]s such as [[city|cities]], [[village]]s and [[farm]]s", bare_category_parent = "places", -- not necessarily true, but usually is the case fallback = "village", }, ["settlement hromada"] = { link = "[[w:Populated places in Ukraine#Rural settlements|settlement]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["sheading"] = { -- Isle of Man link = true, fallback = "district", }, ["sheep station"] = { -- Australia link = true, fallback = "farm", }, ["shire"] = { link = true, fallback = "county", }, ["shire county"] = { link = "w", fallback = "county", }, ["shire town"] = { link = true, fallback = "county seat", }, ["ski resort city"] = { link = "[[ski resort]] [[city]]", fallback = "city", }, ["ski resort town"] = { link = "[[ski resort]] [[town]]", fallback = "town", }, ["spa city"] = { link = "+w:spa town", fallback = "city", }, ["spa town"] = { link = "w", fallback = "town", }, ["space station"] = { link = true, fallback = "research station", }, ["special administrative region"] = { -- in China; in practice they are city-like (Hong Kong, Macau); also [[Oecusse]] in East Timor is formally a -- "special administrative region"; North Korea had one such region planned (Sinuiju) but abandoned; Indonesia -- has similar "special regions" of Jakarta, Yogyakarta and Aceh; and South Sudan has three "special -- administrative areas" link = "+w:special administrative regions of China", preposition = "of", class = "subpolity", has_neighborhoods = true, --? -- no suffix since places in Hong Kong or Macau are listed without China, except Hong Kong and Macau themselves -- they also contain regions (or areas), e.g. [[Kowloon]], so it would be confusing suffix = "", }, ["special collectivity"] = { link = "w", fallback = "collectivity", }, ["special municipality"] = { -- formerly linked to the Taiwan article but there are also special municipalities of the Netherlands link = "w", fallback = "municipality", }, ["special ward"] = { -- Tokyo link = true, fallback = "municipality", }, ["spit"] = { link = true, fallback = "peninsula", }, ["spring"] = { link = true, class = "natural feature", default = {true}, }, ["star"] = { link = true, class = "natural feature", default = {true}, }, ["state"] = { link = true, preposition = "of", class = "subpolity", -- 'former/historical state' could refer either to a state of a country (a division) or a state = sovereign -- entity. The latter appears more common (e.g. in various "ancient states" of East Asia). former_type = "polity", }, ["states and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Australia. category_link = "[[state]]s and [[territory|territories]]", class = "subpolity", }, ["states and union territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case India. category_link = "[[state]]s and [[union territory|union territories]]", class = "subpolity", }, ["state capital"] = { link = true, fallback = "capital city", }, ["state park"] = { link = true, fallback = "park", }, ["state-level new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", fallback = "new area", }, ["statistical region"] = { -- Slovenia link = true, fallback = "administrative region", }, ["statutory city"] = { link = "w", fallback = "city", }, ["statutory town"] = { link = "w", fallback = "town", }, ["strait"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["stream"] = { link = true, fallback = "river", }, ["street"] = { link = true, fallback = "road", }, ["strip"] = { link = true, fallback = "geographic region", }, ["strip of land"] = { link = "[[strip]] of [[land]]", plural = "strips of land", plural_link = "[[strip]]s of [[land]]", fallback = "geographic region", }, ["sub-metropolitan city"] = { link = "+w:List of cities in Nepal#Sub-metropolitan cities", fallback = "city", }, ["sub-prefectural city"] = { link = "w", fallback = "subprovincial city", }, ["subdistrict"] = { link = true, preposition = "of", has_neighborhoods = true, --? -- FIXME: subdistricts can be neighborhood-like (of Jakarta) or larger (in China); need a handler class = "subpolity", default = {true}, }, ["subdivision"] = { link = true, preposition = "of", affix_type = "suf", -- FIXME: subdivisions can be neighborhood-like or larger; need a handler class = "subpolity", cat_handler = district_neighborhood_cat_handler, }, ["submerged ghost town"] = { -- FIXME: Consider just having "submerged" as a qualifier. link = "[[submerged]] [[ghost town]]", fallback = "ghost town", }, ["subnational kingdom"] = { link = "+w:subnational monarchy", fallback = "non-sovereign kingdom", }, ["subnational monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["subprefecture"] = { link = true, affix_type = "suf", preposition = "of", class = "subpolity", }, ["subprovince"] = { link = true, preposition = "of", class = "subpolity", }, ["subprovincial city"] = { link = "w", -- China; special status given to certain prefecture-level cities fallback = "prefecture-level city", }, ["subprovincial district"] = { link = "w", -- China; special status given to Binhai New Area and Pudong New Area, which are county-level districts preposition = "of", class = "subpolity", }, ["subregion"] = { link = true, fallback = "geographic region", }, ["suburb"] = { link = true, -- The following text is suitable for the top-level description of a suburb as well as categories of the form -- 'Suburbs in POLDIV' e.g. 'Suburbs in Illinois, USA' but not for categories of the form 'Suburbs of Chicago', -- where we'd get "[[suburb]]s of [[city|cities]] of [[Chicago]]". category_link = "[[suburb]]s of [[city|cities]]", category_link_before_city = "[[suburb]]s", -- See comments under "neighborhood" for the following three settings. They are used by -- [[Module:category tree/topic cat/data/Places]] for generating the text of 'Suburbs in/of PLACE' categories -- but currently ignored by district_neighborhood_cat_handler (which actually generates the categories for a -- given page), which hardcodes "in" for non-cities and "of" for cities. (FIXME: Change this.) generic_before_non_cities = "in", generic_before_cities = "of", preposition = "of", has_neighborhoods = true, --? class = "non-admin settlement", --? cat_handler = district_neighborhood_cat_handler, }, ["suburban area"] = { link = "w", fallback = "suburb", }, ["subway station"] = { link = "w", fallback = "metro station", }, ["sum"] = { -- In China, Mongolia, Russia; something like a county in Mongolia but a township in China (Inner Mongolia), -- and equivalent to a [[selsoviet]] in the parts of Russia where it's in use (a rural council, below a raion). link = "+w:sum (administrative division)", -- This fallback is somewha arbitrary. We could use "county" but that has a display handler -- which we don't want to be active (FIXME: If the display handler would be active, that's a bug). fallback = "division", }, ["supercontinent"] = { link = true, fallback = "continent", }, ["tehsil"] = { link = true, affix_type = "suf", no_affix_strings = {"tehsil", "tahsil"}, class = "subpolity", }, ["temple"] = { link = true, fallback = "building", }, ["territorial authority"] = { link = "w", fallback = "district", }, ["territory"] = { link = true, preposition = "of", class = "subpolity", }, ["theme"] = { link = "+w:theme (Byzantine district)", preposition = "of", class = "subpolity", }, ["town"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["town with bystatus"] = { -- can't use templates in links currently link = "[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]", plural = "towns with bystatus", plural_link = "[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]", fallback = "town", }, ["township"] = { link = true, has_neighborhoods = true, class = "settlement", --? default = {true}, }, ["township municipality"] = { -- Quebec link = "+w:township municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["traditional county"] = { link = true, fallback = "county", }, ["traditional region"] = { -- FIXME: Verify this works. Same for 'historic(al) region'. -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["trail"] = { link = true, fallback = "road", }, ["treaty port"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"FORMER"}, }, ["tributary"] = { link = true, preposition = "of", fallback = "river", }, ["underground station"] = { link = "w", fallback = "metro station", }, ["unincorporated area"] = { link = "w", -- I don't know if this fallback makes sense everywhere. fallback = "unincorporated community", }, ["unincorporated community"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", }, ["unincorporated territory"] = { link = "w", fallback = "territory", }, ["union territory"] = { -- India link = true, preposition = "of", entry_placetype_indefinite_article = "a", class = "subpolity", }, ["unitary authority"] = { -- UK, New Zealand link = true, entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["unitary district"] = { link = "w", entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["united township municipality"] = { -- Quebec link = "+w:united township municipality (Quebec)", entry_placetype_indefinite_article = "a", fallback = "township municipality", has_neighborhoods = true, --? }, ["university"] = { link = true, entry_placetype_indefinite_article = "a", class = "man-made structure", default = {true}, }, ["unrecognised country"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized and nearly unrecognized countries!"] = { category_link = "[[de facto]] [[independent]] [[state]]s with little or no {{w|international recognition}}", bare_category_parent = "country-like entities", }, ["unrecognized country"] = { link = "w", class = "polity", default = {"未受國際普遍承認國家"}, }, ["unrecognised state"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized state"] = { link = "w", fallback = "unrecognized country", }, ["urban area"] = { link = "separately", fallback = "neighborhood", }, ["urban hromada"] = { link = "[[urban]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["urban service area"] = { -- A strange beast existing in Alberta; technically a type of hamlet but in practice used for much larger -- cities and treated equivalent to a city. (There are only two of them, [[Fort McMurray]] and [[Sherwood Park]]). link = "w", fallback = "city", }, ["urban township"] = { link = "w", fallback = "township", }, ["urban-type settlement"] = { -- appears to be a particular type of small urban settlement in post-Soviet states, -- had an administrative function. link = "w", fallback = "town", }, ["valley"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "water"}, default = {true}, }, ["viceroyalty"] = { -- in essence, a type of colony link = true, fallback = "dependent territory", }, ["village"] = { link = true, generic_before_non_cities = "in", category_link = "[[village]]s, [[hamlet]]s, and other small [[community|communities]] and [[settlement]]s", class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["village development committee"] = { -- former administrative structure in Nepal; also exists in India but not as a formal unit link = "+w:village development committee (Nepal)", inherently_former = {"FORMER"}, fallback = "village", }, ["village municipality"] = { -- Quebec link = "+w:village municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["voivodeship"] = { -- Poland link = true, display_handler = voivodeship_display_handler, preposition = "of", class = "subpolity", }, ["volcano"] = { link = true, plural = "volcanoes", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true, "山"}, }, ["ward"] = { link = true, class = "settlement", -- Wards are formal administrative divisions of a city but have some properties of neighborhoods. fallback = "neighborhood", }, ["watercourse"] = { link = true, fallback = "channel", }, ["Welsh community"] = { -- Wales link = "[[w:community (Wales)|community]]", preposition = "of", affix_type = "suf", affix = "community", has_neighborhoods = true, class = "settlement", }, ["zone"] = { -- administrative division of Ethiopia, Qatar, Nepal, India link = "+w:zone#Place names", preposition = "of", class = "subpolity", }, ---------------------------------------------------------------------------------------------- -- Categories for former places -- ---------------------------------------------------------------------------------------------- ["ANCIENT capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", -- FIXME: Consider removing 'ancient settlements' here. Ancient capitals, like former capitals, often still -- exist but just aren't the capital any more. Maybe we should have an 'Ancient capitals' category. default = {"古代定居點", "歷史首府"}, }, ["ANCIENT non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "ANCIENT settlement", }, ["ANCIENT settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"古代定居點"}, }, ["ancient settlements!"] = { category_link = "former [[city|cities]], [[town]]s and [[village]]s that existed in [[antiquity]]", bare_category_parent = "former settlements", }, ["FORMER capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", default = {"歷史首府"}, }, ["former capitals!"] = { category_link = "former [[capital]] [[city|cities]] and [[town]]s", bare_category_parent = "settlements", }, ["former counties and county-level cities!"] = { -- For categorizing former counties and county-level cities of China category_link = "no-longer existing [[county|counties]] and [[county-level city|county-level cities]]", bare_category_breadcrumb = "counties and county-level cities", bare_category_parent = "former political divisions", }, ["FORMER county"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["FORMER county-level city"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["former countries and country-like entities!"] = { category_link = "[[country|countries]] and similar [[polity|polities]] that no longer exist", bare_category_breadcrumb = "countries and country-like entities", bare_category_parent = "former polities", }, ["FORMER country"] = { link = false, class = "polity", default = {"Former countries and country-like entities"}, }, ["former dependent territories!"] = { category_link = "[[w:dependent territory|dependent territories]] (colonies, dependencies, protectorates, etc.) that no longer exist", bare_category_breadcrumb = "dependent territories", bare_category_parent = "former political divisions", }, ["FORMER dependent territory"] = { link = false, preposition = "of", class = "subpolity", default = {"Former dependent territories"}, }, ["former districts!"] = { -- For categorizing former districts of China category_link = "no-longer-existing [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "former political divisions", }, ["FORMER district"] = { -- For categorizing former districts of China link = false, fallback = "FORMER subpolity", }, ["FORMER geographic region"] = { link = false, fallback = "geographic and cultural area", }, ["FORMER man-made structure"] = { link = false, class = "man-made structure", default = {"Former man-made structures"}, }, ["former man-made structures!"] = { category_link = "man-made structures such as [[airport]]s and [[park]]s that no longer exist", bare_category_breadcrumb = "man-made structures", bare_category_parent = "former places", }, ["former municipalities!"] = { -- For categorizing former municipalities of the Netherlands category_link = "no-longer-existing [[municipality|municipalities]]", bare_category_breadcrumb = "municipalities", bare_category_parent = "former political divisions", }, ["FORMER municipality"] = { -- For categorizing former municipalities of the Netherlands link = false, fallback = "FORMER subpolity", }, ["FORMER natural feature"] = { link = false, class = "natural feature", default = {"Former natural features"}, }, ["former natural features!"] = { category_link = "natural features such as [[lake]]s, [[river]]s and [[island]]s that no longer exist", bare_category_breadcrumb = "natural features", bare_category_parent = "former places", }, ["FORMER non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "FORMER settlement", }, ["former places!"] = { category_link = "[[place]]s of all sorts that no longer exist", bare_category_breadcrumb = "former", bare_category_parent = "places", }, ["former political divisions!"] = { category_link = "[[political]] [[division]]s (states, provinces, counties, etc.) that no longer exist", bare_category_breadcrumb = "political divisions", bare_category_parent = "former places", }, ["former polities!"] = { category_link = "[[polity|polities]] (countries, kingdoms, empires, etc.) that no longer exist", bare_category_breadcrumb = "polities", bare_category_parent = "former places", }, ["FORMER polity"] = { link = false, class = "polity", default = {"Former polities"}, }, ["former prefectures!"] = { -- For categorizing former prefectures of China category_link = "no-longer-existing [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "former political divisions", }, ["FORMER prefecture"] = { -- For categorizing former prefectures of China link = false, fallback = "FORMER subpolity", }, ["former provinces!"] = { -- For categorizing former provinces of China, etc. category_link = "no-longer-existing [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "former political divisions", }, ["FORMER province"] = { -- For categorizing ancient/historical/former provinces of the Roman Empire link = false, fallback = "FORMER subpolity", }, ["former region"] = { -- A former region is considered a former political division, but not a 'historical/traditional/etc.' region. link = "separately", preposition = "of", inherently_former = {"FORMER"}, class = "subpolity", }, ["FORMER settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"Former settlements"}, }, ["former settlements!"] = { category_link = "[[city|cities]], [[town]]s and [[village]]s that no longer exist or have been merged or reclassified", bare_category_breadcrumb = "settlements", bare_category_parent = "former political divisions", }, ["FORMER subpolity"] = { link = false, preposition = "of", class = "subpolity", default = {"Former political divisions"}, }, ---------------------------------------------------------------------------------------------- -- form-of categories -- ---------------------------------------------------------------------------------------------- ---------- Abbreviations ---------- ["abbreviations of counties!"] = { -- For categorizing abbreviations of counties of e.g. England full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[county|counties]]", bare_category_breadcrumb = "counties", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of places", }, ["abbreviations of departments!"] = { -- For categorizing abbreviations of departments of e.g. France full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[department]]s", bare_category_breadcrumb = "departments", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of districts!"] = { -- For categorizing abbreviations of districts of e.g. ??? full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of divisions!"] = { -- For categorizing abbreviations of divisions of e.g. Bangladesh full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[division]]s", bare_category_breadcrumb = "divisions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of former countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of former places", }, ["abbreviations of former places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "abbreviations", bare_category_parent = "former places", addl_bare_category_parents = {{name = "abbreviations of places", sort = "former"}}, }, ["abbreviations of places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "abbreviations", bare_category_parent = "places", }, ["abbreviations of political divisions!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[political]] [[division]]s", bare_category_breadcrumb = "political divisions", bare_category_parent = "abbreviations of places", }, ["abbreviations of prefectures!"] = { -- For categorizing abbreviations of prefectures of e.g. Japan full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces!"] = { -- For categorizing abbreviations of provinces of e.g. Canada full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s and [[territory|territories]]", bare_category_breadcrumb = "provinces and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of regions!"] = { -- For categorizing abbreviations of regions of e.g. Italy full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[administrative region]]s", bare_category_breadcrumb = "regions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states!"] = { -- For categorizing abbreviations of states of e.g. the United States full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[territory|territories]]", bare_category_breadcrumb = "states and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and union territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[union territory|union territories]]", bare_category_breadcrumb = "states and union territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[territory|territories]]", bare_category_breadcrumb = "territories", bare_category_parent = "abbreviations of political divisions", }, ["ABBREVIATION_OF country"] = { link = false, default = {"Abbreviations of countries"}, }, ["ABBREVIATION_OF county"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF department"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF district"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF division"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF FORMER country"] = { link = false, default = {"Abbreviations of former countries"}, }, ["ABBREVIATION_OF FORMER place"] = { link = false, default = {"Abbreviations of former places"}, }, ["ABBREVIATION_OF place"] = { link = false, default = {"Abbreviations of places"}, }, ["ABBREVIATION_OF prefecture"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF province"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF region"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF state"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF subpolity"] = { link = false, default = {"Abbreviations of political divisions"}, }, ["ABBREVIATION_OF territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF union territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ---------- Archaic forms ---------- ["archaic forms of places!"] = { full_category_link = "{{glossary|archaic}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "archaic forms", bare_category_parent = "places", }, ["ARCHAIC_FORM_OF place"] = { link = false, default = {"Archaic forms of places"}, }, ---------- Clippings ---------- ["clippings of places!"] = { full_category_link = "{{glossary|clipping}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "clippings", bare_category_parent = "places", }, ["CLIPPING_OF place"] = { link = false, default = {"Clippings of places"}, }, ---------- Dated forms ---------- ["dated forms of places!"] = { full_category_link = "{{glossary|dated}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "dated forms", bare_category_parent = "places", }, ["DATED_FORM_OF place"] = { link = false, default = {"Dated forms of places"}, }, ---------- Derogatory names ---------- ["derogatory names for cities!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[city|cities]]", bare_category_breadcrumb = "cities", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["derogatory names for continents!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for continents"}, }, ["derogatory names for countries!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for countries"}, }, ["derogatory names for places!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[place]]s", bare_category_breadcrumb = "derogatory names", bare_category_parent = "nicknames for places", }, ["derogatory names for states!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for states"}, }, ["DEROGATORY_NAME_FOR capital"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR city"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR continent"] = { link = false, default = {"Derogatory names for continents"}, }, ["DEROGATORY_NAME_FOR country"] = { link = false, default = {"Derogatory names for countries"}, }, ["DEROGATORY_NAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR place"] = { link = false, default = {"Derogatory names for places"}, }, ["DEROGATORY_NAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR state"] = { link = false, default = {"Derogatory names for states"}, }, ["DEROGATORY_NAME_FOR town"] = { link = false, default = {"Derogatory names for cities"}, }, ---------- Ellipses ---------- ["ellipses of places!"] = { full_category_link = "{{glossary|ellipsis|ellipses}} of [[name]]s of [[place]]s", bare_category_breadcrumb = "ellipses", bare_category_parent = "places", }, ["ELLIPSIS_OF place"] = { link = false, default = {"Ellipses of places"}, }, ---------- Former long-form names ---------- ["former long-form names of countries!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former long-form names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "long-form"}}, }, ["former long-form names of places!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form", bare_category_parent = "former names of places", }, ["FORMER_LONG_FORM_OF country"] = { link = false, default = {"Former long-form names of countries"}, }, ["FORMER_LONG_FORM_OF place"] = { link = false, default = {"Former long-form names of places"}, }, ---------- Former names ---------- ["former names of capitals!"] = { full_category_link = "[[former]] [[name]]s of [[capital city|capital cities]] that generally still exist but under a different name", bare_category_breadcrumb = "capitals", bare_category_parent = "former names of settlements", }, ["former names of countries!"] = { full_category_link = "[[former]] [[name]]s of [[country|countries]] that generally still exist but under a different name", bare_category_breadcrumb = "countries", bare_category_parent = "former names of places", }, ["former names of places!"] = { full_category_link = "[[former]] [[name]]s of [[place]]s that generally still exist but under a different name", bare_category_breadcrumb = "former names", bare_category_parent = "places", }, ["former names of political divisions!"] = { full_category_link = "[[former]] [[name]]s of [[political]] [[division]]s (states, provinces, counties, etc.) that generally still exist but under a different name", bare_category_breadcrumb = "political divisions", bare_category_parent = "former names of places", }, ["former names of polities!"] = { full_category_link = "[[former]] [[name]]s of [[polity|polities]] (e.g. [[country|countries]]) that generally still exist but under a different name", bare_category_breadcrumb = "polities", bare_category_parent = "former names of places", }, ["former names of settlements!"] = { full_category_link = "[[former]] [[name]]s of [[city|cities]], [[town]]s, [[village]]s, etc. that generally still exist but under a different name", bare_category_breadcrumb = "settlements", bare_category_parent = "former names of political divisions", }, ["FORMER_NAME_OF capital"] = { link = false, default = {"Former names of capitals"}, }, ["FORMER_NAME_OF country"] = { link = false, default = {"Former names of countries"}, }, ["FORMER_NAME_OF place"] = { link = false, default = {"Former names of places"}, }, ["FORMER_NAME_OF polity"] = { link = false, default = {"Former names of polities"}, }, ["FORMER_NAME_OF region"] = { link = false, fallback = "FORMER_NAME_OF subpolity", }, ["FORMER_NAME_OF settlement"] = { link = false, default = {"Former names of settlements"}, }, ["FORMER_NAME_OF subpolity"] = { link = false, default = {"Former names of political divisions"}, }, ---------- Former nicknames ---------- ["former nicknames for cities!"] = { full_category_link = "no-longer-used [[nickname]]s for [[city|cities]], e.g. the [[Eternal City]] for [[Kyoto]] during the {{w|Heian period}} ({{circa2|800–1100|short=yes}} {{AD}})", bare_category_breadcrumb = "cities", bare_category_parent = "former nicknames for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["former nicknames for places!"] = { full_category_link = "no-longer-used [[nickname]]s for [[place]]s", bare_category_breadcrumb = "former", bare_category_parent = "nicknames for places", addl_bare_category_parents = {{name = "former names of places", sort = "nicknames"}}, }, ["FORMER_NICKNAME_FOR capital"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR city"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR place"] = { link = false, default = {"Former nicknames for places"}, }, ["FORMER_NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR town"] = { link = false, default = {"Former nicknames for cities"}, }, ---------- Former official names ---------- ["former official names of countries!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former official names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "official"}}, }, ["former official names of places!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "former names of places", }, ["FORMER_OFFICIAL_NAME_OF country"] = { link = false, default = {"Former official names of countries"}, }, ["FORMER_OFFICIAL_NAME_OF place"] = { link = false, default = {"Former official names of places"}, }, ---------- Long-form names ---------- ["long-form names of countries!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "long-form names of places", }, ["long-form names of places!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form names", bare_category_parent = "places", }, ["LONG_FORM_OF country"] = { link = false, default = {"Long-form names of countries"}, }, ["LONG_FORM_OF place"] = { link = false, default = {"Long-form names of places"}, }, ---------- Nicknames ---------- ["nicknames for cities!"] = { full_category_link = "[[nickname]]s for [[city|cities]], e.g. the [[Big Apple]] for [[New York City]]", bare_category_breadcrumb = "cities", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"cities"}, }, ["nicknames for continents!"] = { full_category_link = "[[nickname]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"continents"}, }, ["nicknames for countries!"] = { full_category_link = "[[nickname]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"countries"}, }, ["nicknames for places!"] = { full_category_link = "[[nickname]]s for [[place]]s", bare_category_breadcrumb = "places", bare_category_parent = "nicknames", addl_bare_category_parents = {"places"}, }, ["nicknames for states!"] = { -- For categorizing nicknames for states of e.g. the United States full_category_link = "[[nicknames]] for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"states"}, }, ["NICKNAME_FOR capital"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR city"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR continent"] = { link = false, default = {"Nicknames for continents"}, }, ["NICKNAME_FOR country"] = { link = false, default = {"Nicknames for countries"}, }, ["NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR place"] = { link = false, default = {"Nicknames for places"}, }, ["NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR state"] = { link = false, default = {"Nicknames for states"}, }, ["NICKNAME_FOR town"] = { link = false, default = {"Nicknames for cities"}, }, ---------- Obsolete forms ---------- ["obsolete forms of places!"] = { full_category_link = "{{glossary|obsolete}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "obsolete forms", bare_category_parent = "places", }, ["OBSOLETE_FORM_OF place"] = { link = false, default = {"Obsolete forms of places"}, }, ---------- Official names ---------- ["official names of countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of places", }, ["official names of former countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of former places", }, ["official names of former places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "official names", bare_category_parent = "former places", addl_bare_category_parents = {{name = "official names of places", sort = "former"}}, }, ["official names of places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official names", bare_category_parent = "places", }, ["OFFICIAL_NAME_OF country"] = { link = false, default = {"Official names of countries"}, }, ["OFFICIAL_NAME_OF FORMER country"] = { link = false, default = {"Official names of former countries"}, }, ["OFFICIAL_NAME_OF FORMER place"] = { link = false, default = {"Official names of former places"}, }, ["OFFICIAL_NAME_OF place"] = { link = false, default = {"Official names of places"}, }, ---------- Official nicknames ---------- ["official nicknames for places!"] = { full_category_link = "[[official]] [[nickname]]s for [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for places", }, ["official nicknames for states!"] = { -- For categorizing official nicknames for states of e.g. the United States full_category_link = "[[official]] [[nicknames]] for [[state]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for states", addl_bare_category_parents = {"states"}, }, ["OFFICIAL_NICKNAME_FOR place"] = { link = false, default = {"Official nicknames for places"}, }, ["OFFICIAL_NICKNAME_FOR state"] = { link = false, default = {"Official nicknames for states"}, }, } export.plural_placetype_to_singular = {} for sg_placetype, spec in pairs(export.placetype_data) do if spec.plural then export.plural_placetype_to_singular[spec.plural] = sg_placetype end end ------------------------------------------------------------------------------------------ -- ZH: Chinese localization functions -- ------------------------------------------------------------------------------------------ --[==[ Get the Chinese display name for a placetype, resolving through the enwikt fallback chain. `holonym_placetype` (optional string) provides context for placetypes like `capital city` whose Chinese term depends on the containing administrative level (country → 首都, province → 省會, state → 首府, etc.). Returns two values: zh_name (string or array of regional variants), zh_suffix (string, array, or nil). Returns nil, nil if no Chinese data is available for the placetype or any of its fallbacks. ]==] function export.get_zh_placetype_name(placetype, holonym_placetype) placetype = export.resolve_placetype_aliases(placetype) local zh_name, zh_suffix, zh_by_holonym = m_zh_data.get_zh_placetype_props(placetype, export) if zh_name then local resolved = m_zh_data.resolve_zh_name(zh_name, zh_by_holonym, holonym_placetype) return resolved, zh_suffix end return nil, nil end --[==[ Get only the Chinese suffix for a placetype. Used when rendering holonym `:pref`/`:suf` modifiers in Chinese: the suffix is appended directly to the holonym name (e.g. `s:suf/New York` → 紐約州; `c:pref/Georgia` → 格魯吉亞國). Returns a string, an array of regional variants, or nil if no suffix is defined. ]==] function export.get_zh_placetype_suffix(placetype) placetype = export.resolve_placetype_aliases(placetype) local _, zh_suffix = m_zh_data.get_zh_placetype_props(placetype, export) return zh_suffix end --[==[ Chinese placetype "pluralization" — a no-op, since Chinese has no grammatical plural. Accepts and returns a string or an array (for multi-variant names) unchanged. Provided so that call sites shared with the English path can call a uniform function. ]==] function export.pluralize_zh_placetype(zh_name) return zh_name end --[==[ Get the entry preposition for Chinese display: "in" or "of". Identical to `get_placetype_entry_preposition` in semantics; the Chinese rendering maps these to different constructions: "in" → 位於 [holonyms] 的 [placetype] "of" → [holonyms] 的 [placetype] (no 位於 prefix) ]==] export.get_zh_entry_preposition = export.get_placetype_entry_preposition -- Re-export Chinese data tables so that [[Module:place]] only needs to require -- this module rather than both this module and [[Module:place/zh-data]] separately. export.zh_strings = m_zh_data.zh_strings export.zh_qualifiers = m_zh_data.zh_qualifiers export.zh_extra_info_labels = m_zh_data.zh_extra_info_labels export.zh_capital_label_by_holonym_type = m_zh_data.zh_capital_label_by_holonym_type export.format_zh_name = m_zh_data.format_zh_name return export isnvcskhzie854cprgiz1s9wv1md33s 9759524 9759400 2026-05-14T21:17:11Z TongcyDai 53191 // Edit via Wikiplus 9759524 Scribunto text/plain local export = {} export.force_cat = false -- set to true for testing local m_locations = require("Module:place/locations") local m_links = require("Module:links") local m_table = require("Module:table") local m_strutils = require("Module:string utilities") local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" -- Chinese localization data (zh_name, zh_suffix, qualifiers, extra-info labels, etc.) local m_zh_data = require("Module:place/data/sandbox") local dump = mw.dumpObject local insert = table.insert local concat = table.concat local internal_error = m_locations.internal_error export.internal_error = internal_error local process_error = m_locations.process_error export.process_error = process_error local unpack = unpack or table.unpack -- Lua 5.2 compatibility local ucfirst = m_strutils.ucfirst local ulower = m_strutils.lower local rmatch = m_strutils.match local split = m_strutils.split --[==[ intro: This module contains placetype data used by [[Module:place]] and {{tl|place}}, along with a significant amount of code to work with both placetypes and locations, as well as some placename-related info (FIXME: Consider moving it to [[Module:place/locations]]). See also [[Module:place/locations]], which has definitions of all known locations. You must currently load this module using {{cd|require()}}, not using {{cd|mw.loadData()}}. In particular, it contains two fundamental and tricky functions: # `get_placetype_equivs`, which finds the equivalent placetypes to look under in order to find a given property, and in the process correctly handles placetypes with qualifiers (including qualifiers that act similar to "type-raising" operators in that they do something non-trivial to the placetype to their right) as well as form-of directives and fallbacks. # `find_matching_holonym_location`, which looks up a holonym to find a matching known location, but in the process checks holonyms to the right to make sure there isn't a clash between the user-specified containing holonyms and the containers of the known location being considered. This is done to prevent overcategorizing when either there are two known locations with the same name (e.g. Birmingham in England and Birmingham, Alabama in the US), or more generally two locations with the same name, one of which is a known location but where the other is not (e.g. we're processing non-known-location Mérida, Spain and don't want it categorized like known location Mérida, Yucatán, Mexico). Both of these functions are invoked repeatedly, and probably are invoked several times on the same inputs and as a result are candidates for memoization to speed up the operation of {{tl|place}}. ]==] ------------------------------------------------------------------------------------------ -- Basic utilities -- ------------------------------------------------------------------------------------------ --[==[ Return true if `force_cat` is set either in this module or in [[Module:place/locations]]. ]==] function export.get_force_cat() return export.force_cat or m_locations.force_cat end -- Add the page to a tracking "category". To see the pages in the "category", -- go to [[Wiktionary:Tracking/place/PAGE]] and click on "What links here". local function track(page) require(debug_track_module)("place/" .. page) return true end function export.remove_links_and_html(text) text = m_links.remove_links(text) return text:gsub("<.->", "") end --[==[ Return the singular version of a maybe-plural placetype, or nil if not plural. This correctly handles placetypes with irregular plurals such as `kibbutzim` plural of `kibbutz` by looking up in a table constructed from the `plural` values specified in `placetype_data`. If a special plural value is not found, the regular singularization algorithm in [[Module:en-utilities]] is invoked, which reverses the y -> ies change after vowels and the 'es' addition after sh/ch/x, and otherwise just subtracts a final 's' (which will incorrectly generate 'passe' for plural 'passes'; FIXME: consider changing this for words ending in '-sses'). If the generated singular is the same as the passed-in value, nil is returned. ]==] function export.maybe_singularize_placetype(placetype) if not placetype then return nil end if export.plural_placetype_to_singular[placetype] then return export.plural_placetype_to_singular[placetype] end local retval = require(en_utilities_module).singularize(placetype) if retval == placetype then return nil end return retval end -- Return the correct plural of a placetype, and (if `do_ucfirst` is given) make the first letter uppercase. We first -- look up the plural in `placetype_data`, falling back to pluralize() in [[Module:en-utilities]], which is almost -- always correct. function export.pluralize_placetype(placetype, do_ucfirst) local ptdata = export.placetype_data[placetype] if ptdata and ptdata.plural then placetype = ptdata.plural else placetype = require(en_utilities_module).pluralize(placetype) end if do_ucfirst then return ucfirst(placetype) else return placetype end end --[==[ Get the data associated with a placetype, which may be in its singular or plural form. If `from_category` is specified, we also look for category-only placetypes (generally plural) followed by `!`. Return three values: (a) the placetype under which the data can be looked up (i.e. in its singular form if the passed-in `placetype` is plural and did not match a category-only placetype followed by `!`); (b) the placetype data structure; (c) the type of `placetype` match that occurred, one of `"direct"` if the canonical placetype is the same as the passed-in `placetype` and also the same as the key under which `ptdata` was looked up, or `"direct-category"` if the `ptdata` was looked up under a key formed from the passed-in `placetype` by adding `!`, or `"plural"` if the `ptdata` was looked up under the singularized version of the plural passed-in `placetype`. ]==] function export.get_placetype_data(placetype, from_category) local ptdata = export.placetype_data[placetype] if ptdata then return placetype, ptdata, "direct" end if from_category then ptdata = export.placetype_data[placetype .. "!"] if ptdata then return placetype .. "!", ptdata, "direct-category" end end local sg_placetype = export.maybe_singularize_placetype(placetype) if sg_placetype then ptdata = export.placetype_data[sg_placetype] if ptdata then return sg_placetype, ptdata, "plural" end end return nil end --[==[ Check for special pseudo-placetypes that should be ignored for categorization purposes. ]==] function export.placetype_is_ignorable(placetype) return placetype == "and" or placetype == "or" or placetype:find("^%(") end function export.resolve_placetype_aliases(placetype) return export.placetype_aliases[placetype] or placetype end --[==[ Return a property from `placetype_data` for a given placetype. If the placetype isn't found in `placetype_data`, or the key isn't found in the placetype's entry in `placetype_data`, return nil. ]==] function export.get_placetype_prop(placetype, key) -- Usually we are called on equivalent placetypes returned from `get_placetype_equivs`, in which case placetype -- aliases have been resolved, but sometimes not, e.g. when fetching the indefinite article in -- get_placetype_article(). `resolve_placetype_aliases` is just a simple lookup and it doesn't hurt to do it twice. placetype = export.resolve_placetype_aliases(placetype) if export.placetype_data[placetype] then return export.placetype_data[placetype][key] else return nil end end --[==[ Given a placetype, split the placetype into one or more potential ''splits'', each consisting of a three-element list { {``prev_qualifiers``, ``this_qualifier``, ``reduced_placetype``}}, i.e. # the concatenation of zero or more previously-recognized qualifiers on the left, normally canonicalized (if there are zero such qualifiers, the value will be nil); # a single recognized qualifier, normally canonicalized (if there is no qualifier, the value will be nil); # the "reduced placetype" on the right. Splitting between the qualifier in (2) and the reduced placetype in (3) happens at each space character, proceeding from left to right, and stops if a qualifier isn't recognized. All placetypes are canonicalized by checking for aliases in `placetype_aliases`, but no other checks are made as to whether the reduced placetype is recognized. Canonicalization of qualifiers does not happen if `no_canon_qualifiers` is specified. For example, given the placetype `"small beachside unincorporated community"`, the return value will be { { {nil, nil, "small beachside unincorporated community"}, {nil, "small", "beachside unincorporated community"}, {"small", "[[beachfront]]", "unincorporated community"}, {"small [[beachfront]]", "[[unincorporated]]", "community"}, }} Here, `"beachside"` is canonicalized to `"[[beachfront]]"` and `"unincorporated"` is canonicalized to `"[[unincorporated]]"`, in both cases according to the entry in `placetype_qualifiers`. On the other hand, if given `"small former haunted community"`, the return value will be { { {nil, nil, "small former haunted community"}, {nil, "small", "former haunted community"}, {"small", "former", "haunted community"}, }} because `"small"` and `"former"` but not `"haunted"` are recognized as qualifiers. Finally, if given `"former adr"`, the return value will be { { {nil, nil, "former adr"}, {nil, "former", "administrative region"}, }} because `"adr"` is a recognized placetype alias for `"administrative region"`. ]==] function export.split_qualifiers_from_placetype(placetype, no_canon_qualifiers) local splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} local prev_qualifier = nil while true do local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if canon == nil then break end local new_qualifier = qualifier if type(canon) == "table" then canon = canon.link end if not no_canon_qualifiers and canon ~= false then if canon == true then new_qualifier = "[[" .. qualifier .. "]]" else new_qualifier = canon end end insert(splits, {prev_qualifier, new_qualifier, export.resolve_placetype_aliases(reduced_placetype)}) prev_qualifier = prev_qualifier and prev_qualifier .. " " .. new_qualifier or new_qualifier placetype = reduced_placetype else break end end return splits end --[==[ Given a `placetype` (which may be pluralized), return an ordered list of equivalent placetypes to look under to find the placetype's properties (such as the category or categories to be inserted). The return value is actually an ordered list of objects of the form `{qualifier=``qualifier``, placetype=``equiv_placetype``}` where ``equiv_placetype`` is a placetype whose properties to look up, derived from the passed-in placetype or from a contiguous subsequence of the words in the passed-in placetype (always including the rightmost word in the placetype, i.e. we successively chop off qualifier words from the left and use the remainder to find equivalent placetypes). ``qualifier`` is the remaining words not part of the subsequence used to find ``equiv_placetype``; or nil if all words in the passed-in placetype were used to find ``equiv_placetype``. (FIXME: This qualifier is not currently used anywhere.) Only placetypes for which there is an entry in `placetype_data` are included. The placetype passed in is always checked first, and will form the first entry if it exists in `placetype_data`. '''NOTE:''' This is a tricky function as it implements handling of (a) qualifiers, (b) fallback logic, (c) "type-raising" qualifiers such as `former`/`ancient`/etc. as well as `fictional` and `mythological`, and (d) form-of directives, which act somewhat similarly to `former`, and allows interaction between more than one of these simultaneously (e.g. official names of former places, which have their own categorization). If {{tl|place}} gets too slow, one potential speedup is to memoize the results of this function, as it appears to be getting called more than once on the same inputs. Another similar potential speedup is to memoize the results of `iterate_matching_holonym_location()`. For example, given the placetype `left tributary`, the following placetype/qualifier combinations are checked in turn: ``` {qualifier = nil, placetype="left tributary"} {qualifier = "left", placetype="tributary"} {qualifier = "left", placetype="river"} ``` and the return value will be { { {qualifier = "left", placetype="tributary"}, {qualifier = "left", placetype="river"}, }} The algorithm first enters the placetype itself into the list, then checks for `left tributary` as a recognized placetype in `placetype_data` and doesn't find it, so it doesn't enter it into the returned list (if it found it, it would add it as well as any fallbacks directly after it). It then splits off the recognized qualifier `left` to form the ''reduced placetype'' `tributary`, which is entered into the list because it is found in `placetype_data`. Then, because it has a fallback `river`, which exists in `placetype_data`, the fallback is entered next. Another example is `small rural fraziones` (where a ''frazione'' is type of subdivision of a ''comune'' or municipality, often specifically an outlying hamlet). the placetype/qualifier combinations checked are: ``` {qualifier = nil, placetype="small rural fraziones"} {qualifier = nil, placetype="small rural frazione"} {qualifier = "small", placetype="rural fraziones"} {qualifier = "small", placetype="rural frazione"} {qualifier = "small [[rural]]", placetype="fraziones"} {qualifier = "small [[rural]]", placetype="frazione"} {qualifier = "small [[rural]]", placetype="hamlet"} {qualifier = "small [[rural]]", placetype="village"} ``` The return value ends up as {qualifier = "small [[rural]]", placetype="frazione"}, {qualifier = "small [[rural]]", placetype="hamlet"}, {qualifier = "small [[rural]]", placetype="village"}, }} Here, because the result of singularizing `fraziones` returns a different value from the placetype itself, that singularized value is checked after the original plural value. Also, in the process of splitting off qualifiers, they are canonicalized if the entry in `placetype_qualifiers` says to do so; in this case, links are placed around `rural`. Finally, `frazione` has `hamlet` as its fallback, which in turn has `village` as its fallback, so both fallbacks end up being returned. `no_fallback`, if set, disables returning equivalent placetypes based on the `fallback` setting for a placetype. This is used in the first of two loops in find_placetype_cat_specs() in [[Module:place]] to prefer exact matches for placetypes such as barangays with later holonyms to matches based on a fallback such as `neighborhood` with an earlier holonym. See the comment in that function in [[Module:place]] for a more detailed explanation of why this is needed. Only the placetype itself, and any reduced placetypes created by chopping off recognized qualifiers at the beginning, are returned; but we do not return reduced placetypes if a containing placetype exists in `placetype_data`. (For example, `"overseas territory"` has a fallback `"dependent territory"`, and `"overseas"` is also a recognized qualifier. When `no_fallback` is in place, without the above proviso, we would return `"overseas territory"` followed by `"territory"` with the incorrect effect of classifying an `"overseas territory"` of the United Kingdom such as `"Gibraltar"` under [[:Category:Territories of the United Kingdom]] instead of [[:Category:Dependent territories of the United Kingdom]].) As an exception, if `historical`, `ancient`, `former` or the like are found, they proceed ignoring `no_fallback`, because it seems tricky to handle them correctly in the presence of `no_fallback`, and historical/former placetypes rarely occur with exact match category specs anyway. `no_split_qualifiers` prevents splitting off recognized qualifiers and returning the remainder of the placetype as an equivalent placetype. Only the passed-in placetype, and any fallbacks, will be returned. This is used in [[Module:category tree/topic cat/data/Places]] when looking up placetypes found in categories. Such placetypes won't have qualifiers and so it doesn't make sense to try and look for them. `from_category`, if set, causes category-only placetypes (those ending in `!`) to also be checked. `form_of_directive`, if set, causes the specified form-of directive (e.g. `FORMER_NAME_OF`) to be prepended to checked placetypes, their directive-specific type (e.g. `FORMER_NAME_OF_type`), and their classes (`class`) to get the appropriate placetypes to check for form-of-directive categories. It falls back to the prepended generic `place` as a placetype, e.g. `FORMER_NAME_OF place`, if nothing else matches. `no_check_for_inherently_former` is used internally to prevent an infinite loop when checking for `inherently_former`. `register_former_as_non_former` is a major hack used in `get_bare_categories` to deal with the mismatch between e.g. known location `Yugoslavia` declaring itself a `country` but definitions of it declaring it a `former country`. It causes the non-former version of the specified placetype to be included in the returned equivalents along with the former placetypes. [FIXME: This should apply only to the entries in `former_countries` but it's tricky to do that now; fix this in the known-location refactor. -- The known-location refactor is already done but we haven't yet fixed this.] ]==] function export.get_placetype_equivs(placetype, props) local no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former local form_of_directive if props then no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former = props.no_fallback, props.no_split_qualifiers, props.no_check_for_inherently_former, props.from_category, props.register_former_as_non_former form_of_directive = props.form_of_directive end local equivs = {} -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. `qualifier` is -- the preceding qualifier to insert into `equivs` along with the placetype (see comment at top of function). If -- `from_category` is given, we also check for a category-specific entry consisting of the placetype followed by -- `!`, and in all cases we also check to see if `placetype` is plural, and if so, insert the singularized version -- along with its fallbacks (if any) in `placetype_data`. `form_of_prefix` is a form-of prefix such as -- `OFFICIAL_NAME_OF`. If specified, we check the fallbacks of `placetype` without the prefix but then insert into -- `equivs` the prefixed placetype. This way, if the user says e.g. {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}}, -- we will correctly categorize into [[:Category:Official names of countries]], rather than only trying to look up -- `OFFICIAL_NAME_OF island country` and failing, falling back ultimately to [[:Category:Official names of places]]. local function insert_placetype_and_fallbacks(qualifier, placetype, form_of_prefix) local function insert_equiv(pt) if form_of_prefix then -- Let's say the user says {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}} and we have -- no entry for `OFFICIAL_NAME_OF island country` but we do for `OFFICIAL_NAME_OF country` (which we end -- up processing because `island country` falls back to `country`), and that entry in turn is defined -- using a fallback. We have to insert that fallback-of-fallback, and the easiest/cleanest way of -- handling this is by calling ourselves recursively. insert_placetype_and_fallbacks(qualifier, form_of_prefix .. " " .. pt) else insert(equivs, {qualifier=qualifier, placetype=pt}) end end -- Insert the placetype, along with any fallbacks. local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if ptdata then insert_equiv(canon_placetype) if no_fallback then return end local first_placetype = #equivs + 1 local prev_placetype = nil while true do local pt_value = export.placetype_data[canon_placetype] if not pt_value then internal_error("Fallback value %s specified for placetype %s but is not in `placetype_data`", canon_placetype, prev_placetype) end if pt_value.fallback then insert_equiv(pt_value.fallback) local last_placetype = #equivs if last_placetype - first_placetype >= 10 then local fallback_loop = {} for i = first_placetype, last_placetype do insert(fallback_loop, equivs[i].placetype) end internal_error("Apparent loop in fallback chain: %s", table.concat(fallback_loop, " -> ")) end prev_placetype = canon_placetype canon_placetype = pt_value.fallback else break end end end end -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. This is a -- wrapper around the more basic `insert_placetype_and_fallbacks()` which handles form-of directives. If there is no -- form-of directive, this function directly calls `insert_placetype_and_fallbacks()`. We do things this way so that -- form-of directives correctly combine with `former`-type qualifiers. Note that we also have special backups for -- form-of directives that check `DIRECTIVE place` (and before that, `DIRECTIVE FORMER/ANCIENT place` is there's a -- `former`-type directive); these backups live outside this function because we want them done once, late, rather -- than in each invocation of `process_and_insert_placetype()`. local function process_and_insert_placetype(qualifier, reduced_placetype) if form_of_directive then -- First check for e.g. `OFFICIAL_NAME_OF island country` and its fallbacks; then we look for fallbacks of -- `island country` and check e.g. `OFFICIAL_NAME_OF country` and its fallbacks. All of this is handled by -- `insert_placetype_and_fallbacks()` with appropriate parameters. After that, check the general class of -- the directive, e.g. `subpolity` if something like `district` is given. (Eventually, we check for -- `OFFICIAL_NAME_OF place` as a backup, but this happens at the end outside the loop over qualifiers.) insert_placetype_and_fallbacks(qualifier, reduced_placetype, form_of_directive) if not no_fallback then local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype) local directive_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, form_of_directive .. "_type") or export.get_placetype_prop(pt, "class") end ) if not directive_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s in conjunction with form-of directive %s, placetype data " .. 'located but directive-specific type property %s missing, and so is "class"; ' .. "placetypes searched are %s", reduced_placetype, form_of_directive, form_of_directive .. "_type", reduced_placetype_equivs) else -- This should be allowed, as we allow unrecognized placetypes in general. end elseif directive_type ~= "!" then insert_placetype_and_fallbacks(qualifier, directive_type, form_of_directive) end end else insert_placetype_and_fallbacks(qualifier, reduced_placetype) end end -- Successively split off recognized qualifiers and loop over successively greater sets of qualifiers from the left -- (unless `no_split_qualifiers` is specified, in which case we don't check for qualifiers). local splits if no_split_qualifiers then splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} else splits = export.split_qualifiers_from_placetype(placetype) end for _, split in ipairs(splits) do local prev_qualifier, this_qualifier, reduced_placetype = unpack(split, 1, 3) -- If a special "former" qualifier like `former` or `historical` isn't present, and -- `no_check_for_inherently_former` is not given (this flag is used to avoid infinite loops), check for -- "inherently former" placetypes like `satrapy` and `treaty port` that always refer to no-longer-existing -- placetypes, and handle accordingly. local unlinked_this_qualifier if this_qualifier and this_qualifier:find("%[") then unlinked_this_qualifier = export.remove_links_and_html(this_qualifier) else unlinked_this_qualifier = this_qualifier end local former_qualifiers = this_qualifier and export.former_qualifiers[unlinked_this_qualifier] or nil if not former_qualifiers and not no_check_for_inherently_former then former_qualifiers = export.get_equiv_placetype_prop(reduced_placetype, function(pt) return export.get_placetype_prop(pt, "inherently_former") end, {no_check_for_inherently_former = true}) end -- If a special "former" qualifier like `former` or `historical` is present, map it to the appropriate internal -- qualifiers (`ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified -- qualifiers), fetch the `former_type` property, and treat the placetype as if a concatenation of the mapped -- qualifier(s) and the value of `former_type`. For example, if `medieval village` is given, we map `medieval` -- to `ANCIENT` and `FORMER`, and `village` to its `former_type` of `settlement`, and enter the placetypes -- `ANCIENT settlement` and `FORMER settlement` (in that order) into `equivs`. If the placetype following the -- "former" qualifier is recognized in `placetype_data` but has no `former_type` and no fallback with a -- `former_type` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like -- `former greenhouse` is specified and we don't have an entry for `greenhouse`), just track the occurrence and -- don't enter anything into `equivs`. if former_qualifiers then -- FIXME: Should we respect `no_fallback` here? My instinct says no. local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype, { no_check_for_inherently_former = true }) local former_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, "former_type") or export.get_placetype_prop(pt, "class") end ) if not former_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s, placetype data located but `former_type` missing; " .. "placetypes searched are %s", reduced_placetype, reduced_placetype_equivs) else -- Enable error when we've verified there aren't any examples. track("bad-former-placetype") track("bad-former-placetype/" .. reduced_placetype) --process_error("For placetype '%s', unrecognized placetype following 'former'-type " .. -- "qualifier; searched placetype(s) %s", reduced_placetype, dump(reduced_placetype_equivs)) end elseif former_type ~= "!" then -- First check directly for `ANCIENT/FORMER` + the original following placetype. This makes it possible -- for (e.g.) former provinces of the Roman empire to be categorized specially. for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. reduced_placetype) end for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. former_type) end -- HACK! See explanation above for `register_former_as_non_former`. if register_former_as_non_former then process_and_insert_placetype(prev_qualifier, reduced_placetype) end -- If we're processing a form-of directive, after doing everything else we do -- `DIRECTIVE ANCIENT/FORMER place` e.g. `OFFICIAL_NAME_OF FORMER place` as a backup. if form_of_directive and not no_fallback then for _, former_qualifier in ipairs(former_qualifiers) do insert_placetype_and_fallbacks(prev_qualifier, form_of_directive .. " " .. former_qualifier .. " place") end end -- Don't continue processing equivs. The reason is probably the same as the `break` below for -- qualifier_to_placetype_equivs[]; categories for `former BLAH` are set using `default`, and -- non-former equivs will otherwise take precedence. break end end -- Then see if the rightmost split-off qualifier is in qualifier_to_placetype_equivs -- (e.g. 'fictional *' -> 'fictional location'). If so, add the mapping. if this_qualifier and export.qualifier_to_placetype_equivs[unlinked_this_qualifier] then insert(equivs, { qualifier=prev_qualifier, placetype=export.qualifier_to_placetype_equivs[unlinked_this_qualifier] }) -- Don't continue processing equivs; otherwise, if we specify 'mythological city', even though the -- equivalent entry for 'mythological location' gets inserted ahead of the entry for 'city', the -- latter ends up generating the category because the category for 'mythological location' is set as -- the default value, which is used only when no non-default category can be found. break end -- Finally, join the rightmost split-off qualifier to the previously split-off qualifiers to form a combined -- qualifier, and add it along with reduced_placetype and any mapping in placetype_data for reduced_placetype. -- NOTE: The first time through this loop, both `prev_qualifier` and `this_qualifier` are nil, and this inserts -- the full placetype into `equivs`. local qualifier = prev_qualifier and prev_qualifier .. " " .. this_qualifier or this_qualifier process_and_insert_placetype(qualifier, reduced_placetype) -- If `no_fallback` and there's an entry in `placetype_data` for this placetype, don't include any reduced -- placetypes to avoid the "overseas territory treated as a territory" issue describe above. if no_fallback then local canon_placetype, ptdata, ptmatch = export.get_placetype_data(reduced_placetype, from_category) if canon_placetype then break end end end -- If we're processing a form-of directive, after doing everything else we do `DIRECTIVE place` e.g. -- `OFFICIAL_NAME_OF place` as a backup; but only if either the placetype as a whole is recognized or the placetype -- begins with a recognized qualifier. This latter check is to avoid categorizing into e.g. -- [[Category:en:Former names of places]] in an invocation like -- {{place|en|@former name of:Democratic Republic of the Congo|country|r/Central Africa|;|used from 1971–1997}}; -- the `used from 1971–1997` gets treated as a placetype and we're called on it. if form_of_directive and not no_fallback and (splits[2] or export.get_placetype_data(placetype, from_category)) then insert_placetype_and_fallbacks(nil, form_of_directive .. " place") end return equivs end function export.get_equiv_placetype_prop_from_equivs(equivs, fun, continue_on_nil_only) for _, equiv in ipairs(equivs) do local retval = fun(equiv.placetype) if continue_on_nil_only and retval ~= nil or not continue_on_nil_only and retval then return retval, equiv end end return nil, nil end --[==[ Given a placetype `placetype` and a function `fun` of one argument, iteratively call the function on equivalent placetypes fetched from `get_placetype_equivs` until the function returns a non-falsy value (i.e. not {nil} or {false}); but if `continue_on_nil_only` is specified, the iterations continue until the function returns non non-{nil} value. FIXME: We should make `continue_on_nil_only` the default; but this requires changing some callers.) When `fun` returns a non-falsy or non-{nil} value, `get_equiv_placetype_prop` returns two values: the value returned by `fun` and the equivalent placetype that triggered the non-falsy (or non-{nil}) return value. If `fun` never returns a non-falsy (or non-{nil}) value, `get_equiv_placetype_prop` returns {nil} for both return values. If `placetype` is passed in as {nil}, the return value is the result of calling `fun` on {nil} (whatever it is) with {nil} for the second return value. ]==] function export.get_equiv_placetype_prop(placetype, fun, props) if not placetype then return fun(nil), nil end return export.get_equiv_placetype_prop_from_equivs(export.get_placetype_equivs(placetype, props), fun, props and props.continue_on_nil_only) end --[==[ Return the article that is used with an entry placetype. We proceed as follows: # See if there is a recognized qualifier at the beginning that specifies an article (including `false` for no article). This takes precedence over anything else, so that e.g. `various capitals` gets no article rather than "`the"`. # Then check the placetype or any equivalent placetype for the `entry_placetype_use_the` property, indicating that `"the"` should be used. # Otherwise we look to see if the placetype itself (not any equivalents, even those involving deleting a qualifier from the beginning) has an entry in `placetype_data` that specifies the indefinite article using `entry_placetype_use_the` (principally for use with placetypes like `union territory`). # Otherwise, we use [[Module:en-utilities]] to apply the standard algorithm to generate `"an"` for words beginning with a vowel and `"a"` otherwise. If `ucfirst` is true, the first letter of the article is made upper-case. ]==] function export.get_placetype_article(placetype, ucfirst) local art local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if type(canon) == "table" then art = canon.article end end if art == false then return art end if art == nil then local placetype_use_the = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "entry_placetype_use_the") end) if placetype_use_the then art = "the" else art = export.get_placetype_prop(placetype, "entry_placetype_indefinite_article") if not art then art = require(en_utilities_module).get_indefinite_article(placetype) end end end if ucfirst then art = m_strutils.ucfirst(art) end return art end --[==[ Return the preposition that should be used after `placetype` when occurring as an entry placetype or in categories (e.g. `city >in< France` but `country >of< South America`). The preposition defaults to `"in"` if not specified. ]==] function export.get_placetype_entry_preposition(placetype) local pt_prep = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "preposition") end ) return pt_prep or "in" end --[==[ Given a place desc (see top of file) and a holonym object (see top of file), add a key/value into the place desc's `holonyms_by_placetype` field corresponding to the placetype and placename of the holonym. For example, corresponding to the holonym "c/Italy", a key "country" with the list value {"Italy"} will be added to the place desc's `holonyms_by_placetype` field. If there is already a key with that place type, the new placename will be added to the end of the value's list. ]==] function export.key_holonym_into_place_desc(place_desc, holonym) if not holonym.placetype then return end -- Key in equivalent placetypes, so that e.g. `cities/San Francisco` gets keyed under `city`; but don't do -- fallbacks, as it doesn't seem correct for the "do other holonyms of the same placetype" algorithm to do holonyms -- of different types just because they have the same fallback. local equiv_placetypes = export.get_placetype_equivs(holonym.placetype, {no_fallback = true}) local unlinked_placename = holonym.unlinked_placename for _, equiv in ipairs(equiv_placetypes) do local placetype = equiv.placetype if not place_desc.holonyms_by_placetype then place_desc.holonyms_by_placetype = {} end if not place_desc.holonyms_by_placetype[placetype] then place_desc.holonyms_by_placetype[placetype] = {unlinked_placename} else insert(place_desc.holonyms_by_placetype[placetype], unlinked_placename) end end end --[=[ Construct a formatted link from the raw link spec `link` given the canonical singular placetype `sg_placetype`. If the placetype was originally plural, `orig_placetype` should contain this plural value; otherwise it should be nil. This will construct the appropriate type of link that displays as `orig_placetype` (or otherwise `sg_placetype`) but links to whatever the `link` spec specifies (which may be `sg_placetype`, a Wikipedia article, etc.). `ptdata` is the placetype data structure for the placetype, and `from_category` indicates that we are generating the description of a category (otherwise we are generating the display form of an entry placetype). ]=] local function make_placetype_link(link, sg_placetype, orig_placetype, ptdata, from_category, noerror) if not from_category and ptdata.disallow_in_entries then if noerror then return "[not meant to be specified directly, with warning: " .. ptdata.disallow_in_entries .. "]" else process_error("Placetype %s is not meant to be specified directly: " .. ptdata.disallow_in_entries, sg_placetype) end end if link == nil then internal_error("Placetype data present for placetype %s but no link= setting given", sg_placetype) elseif link == true then if orig_placetype then return ("[[%s|%s]]"):format(sg_placetype, orig_placetype) else return ("[[%s]]"):format(sg_placetype) end elseif link == false then process_error("Placetype %s is not meant to be specified directly, but is only for internal use", sg_placetype) elseif link == "w" then return ("[[w:%s|%s]]"):format(sg_placetype, orig_placetype or sg_placetype) elseif link == "separately" then if orig_placetype then local sg_words = split(sg_placetype, " ") local orig_words = split(orig_placetype, " ") if #sg_words ~= #orig_words then internal_error("Can't construct 'separately' link for plural placetype %s as original placetype %s " .. "has different number of words", orig_placetype, sg_placetype) else for i = 1, #sg_words do if sg_words[i] == orig_words[i] then sg_words[i] = ("[[%s]]"):format(sg_words[i]) else sg_words[i] = ("[[%s|%s]]"):format(sg_words[i], orig_words[i]) end end return concat(sg_words, " ") end else return (sg_placetype:gsub("([^ ]+)", "[[%1]]")) end elseif link:find("^%+") then link = link:sub(2) -- discard initial + return ("[[%s|%s]]"):format(link, orig_placetype or sg_placetype) elseif not orig_placetype then return link else return require(en_utilities_module).pluralize(link) end end --[==[ Get the display form of a placetype by looking it up in `placetype_data`. If the placetype is recognized, or is the plural of a recognized placetype, the corresponding linked display form is returned (with plural placetypes displaying as plural but linked to the singular form of the placetype). Otherwise, return nil. If we're generating the description of a category, `category_type` should be set to one of `"top-level"` (for top-level categories like [[:Category:Neighborhoods]]), `"noncity"` (for non-city categories like [[:Category:Neighborhoods in Illinois, USA]]) or `"city"` (for city categories like [[:Category:Neighborhoods of Chicago]]). Otherwise, we're generating the description for use in formatting a {{tl|place}} call, and category-only placetypes ending in `!` will be ignored, along with special `category_link*` settings. `return_full` is used along with `category_type` and will preferably return the "full" variant of category link settings, i.e. `full_category_link*`; if they don't exist, the `category_link*` value is prepended with `"names of"`. `noerror` says to not throw an error when encountering entry placetypes that would be disallowed. ]==] function export.get_placetype_display_form(placetype, category_type, return_full, noerror) local from_category = not not category_type local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if canon_placetype then local raw_link local function is_linked_string(str) return type(str) == "string" and str:find("%[%[") end if category_type then local fetched_full local function fetch_maybe_full(prop) local retval = ptdata["full_" .. prop] if retval ~= nil then if return_full then return retval, true else internal_error("Saw full_" .. prop .. "=%s but `return_full` not set, can't handle", retval) end end return ptdata[prop], false end local function maybe_prefix(str) if return_full and not fetched_full then return "names of " .. str else return str end end -- Careful with `false` as possible value. if category_type == "top-level" then raw_link, fetched_full = fetch_maybe_full("category_link_top_level") elseif category_type == "noncity" then raw_link, fetched_full = fetch_maybe_full("category_link_before_noncity") elseif category_type == "city" then raw_link, fetched_full = fetch_maybe_full("category_link_before_city") else internal_error('Unrecognized value for `category_type` %s, should be "top-level", "noncity" or "city"', category_type) end if type(raw_link) == "string" then return maybe_prefix(raw_link), ptdata elseif raw_link ~= nil then return raw_link, ptdata end raw_link, fetched_full = fetch_maybe_full("category_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end if ptmatch == "plural" then raw_link, fetched_full = fetch_maybe_full("plural_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end end if raw_link == nil then raw_link, fetched_full = fetch_maybe_full("link") end if raw_link == false then return raw_link, ptdata end return maybe_prefix(make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror)), ptdata else if ptmatch == "plural" then raw_link = ptdata.plural_link if raw_link == false then process_error("Placetype %s cannot appear plural", placetype) end if is_linked_string(raw_link) then return raw_link, ptdata end end if raw_link == nil then raw_link = ptdata.link end return make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror), ptdata end end return nil end local function resolve_unlinked_placename_display_aliases(placetype, placename) local equiv_placetypes = export.get_placetype_equivs(placetype) for i, equiv in ipairs(equiv_placetypes) do equiv_placetypes[i] = equiv.placetype end local all_display_aliases_found = {} local all_others_found = {} for group, key, spec in m_locations.iterate_matching_location { placetypes = equiv_placetypes, placename = placename, alias_resolution = "display", } do if spec.alias_of and spec.display then insert(all_display_aliases_found, {group, key, spec, spec.display_as_full}) else insert(all_others_found, {group, key, spec}) end end if not all_display_aliases_found[1] then return placename elseif all_display_aliases_found[2] then internal_error("Found multiple matching display aliases for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) elseif all_others_found[1] then internal_error("Found a display alias along with other possible meanings for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) else local group, key, spec, as_full = unpack(all_display_aliases_found[1]) local full, elliptical = m_locations.key_to_placename(group, key) return as_full and full or elliptical end end --[==[ If `placename` of type `placetype` is a display alias, convert it to its canonical form; otherwise, return unchanged. Display aliases transform certain placenames into canonical displayed forms. For example, if any of `country/US`, `country/USA` or `country/United States of America` (or `c/US`, etc.) are given, the result will be displayed as `United States`. '''NOTE''': Display aliases change what is displayed from what the editor wrote in the Wikitext. As a result, they should (a) be non-political in nature, and (b) not involve a change where the word `the` needs to be added or removed. For example, normalizing `US` and `USA` to `United States` for display purposes is OK but normalizing `Burma` to `Myanmar` is not (instead a cat alias should be used) because the terms `Burma` and `Myanmar` have clear political connotations. Similarly, we have a display alias that maps the old name of `Macedonia` as a country (but not a region!) to `North Macedonia`, but `Republic of Macedonia` is mapped to `North Macedonia` only as a cat alias because the two terms differ in their use of `the`. (For example, if we had a display alias mapping `Republic of Macedonia` to `North Macedonia`, the call {{tl|place|en|the <<capital city>> of the <<c/Republic of Macedonia>>}} would wrongly display as `the [[capital city]] of the [[North Macedonia]]`.) Generally, display normalizations tend to involve alternative forms (e.g. abbreviations, ellipses, foreign spellings) where the normalization improves clarity and consistency. ]==] function export.resolve_placename_display_aliases(placetype, placename) -- If the placename is a link, apply the alias inside the link. -- This pattern matches both piped and unpiped links. If the link is not piped, the second capture (linktext) will -- be empty. local link, linktext = rmatch(placename, "^%[%[([^|%[%]]+)|?([^|%[%]]-)%]%]$") if link then if linktext ~= "" then local alias = resolve_unlinked_placename_display_aliases(placetype, linktext) return "[[" .. link .. "|" .. alias .. "]]" else local alias = resolve_unlinked_placename_display_aliases(placetype, link) return "[[" .. alias .. "]]" end else return resolve_unlinked_placename_display_aliases(placetype, placename) end end --[==[ Generate the "prefixed" version of a bare key, i.e. prefix it with `the` if correct for this key. ]==] function export.get_prefixed_key(key, spec) if spec.the then return "the " .. key else return key end end -- Necessary for use by [[Module:place]]. FIXME: Reorganize the modules so this isn't necessary. export.iterate_matching_location = m_locations.iterate_matching_location --[=[ Iterator that iterates over holonyms in `place_desc`. If `first_holonym_index` is given, start iterating at the specified holonym and stop either when there are no more holonyms or a holonym with modifier `:also` is found. If `first_holonym_index` is nil or omitted, iterate over all holonyms regardless. If `include_raw_text_holonyms` is specified, raw text holonyms (those not of the form `placetype/placename`) are returned as well; they can be identified by the fact that the `placetype` field in the holonym structure is nil. Two values are returned at each iteration, the holonym index and holonym structure, similar to `ipairs()`. ]=] function export.get_holonyms_to_check(place_desc, first_holonym_index, include_raw_text_holonyms) local stop_at_also = not not first_holonym_index return function(place_desc, index) while true do index = index + 1 local this_holonym = place_desc.holonyms[index] -- If we were passed in a starting holonym index, go up to but not including a holonym marked with `:also` -- (continue_cat_loop); the categorization code will then restart the loop at that holonym. That holonym -- will have `:also` marked on it, so make sure not to stop immediately if the first holonym is marked with -- `:also`. if not this_holonym or stop_at_also and index > first_holonym_index and this_holonym.continue_cat_loop then return nil end -- If not placetype, we're processing raw text, which we normally want to skip. if include_raw_text_holonyms or this_holonym.placetype then return index, this_holonym end end end, place_desc, first_holonym_index and first_holonym_index - 1 or 0 end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, iterate over all such known locations, returning for each location the corresponding key, spec and group as well as the trail of ancestral containers. Unlike `iterate_matching_location()`, this specifically checks that there is no mismatch between the location's containers at any level and any of the following holonyms in the {{tl|place}} spec. The fields in `data` are: * `holonym_placetype`: The placetype of the holonym. It can actually be a list of possible placetypes, as with `iterate_matching_location()`. * `holonym_placename`: The placename of the holonym. * `holonym_index`: The index of the holonym among the holonyms in `place_desc`, or nil if the holonym is not among the holonyms in `place_desc`. (If a holonym index is given, we check for container mismatches among the holonyms following the specified index, stopping either when encountering a holonym marked with modifier `:also` or, if none exist, when we run out of holonyms. If no holonym index is given, we check all holonyms for container mismatches.) * `place_desc`: Description of the place; used for the holonyms, to check for container mismatches. Returns four values: the location group, the canonical key by which the location is known, the spec object describing the location and the trail of ancestral containers for the location. The first three values are the same as for `iterate_matching_location`. ]==] function export.iterate_matching_holonym_location(data) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc local matching_location_iterator = m_locations.iterate_matching_location { placetypes = holonym_placetype, placename = holonym_placename, } return function() while true do local group, key, spec = matching_location_iterator() if not group then return nil end local container_trail = {} -- For each level of container, check that there are no mismatches (i.e. other location of the same -- placetype) mentioned. We allow a mismatch at a given level if there's also a match with the container -- at that level. For example, in the case of Kansas City, defined in [[Module:place/locations]] as a city -- in Missouri, if we define it as {{tl|place|city|s/Missouri,Kansas}}, we ignore the mismatching state of -- Kansas because the correct state of Missouri was also mentioned. But imagine we are defining Newark, -- Delaware as {{tl|place|city|s/Delaware|c/US}} and (as is the case) we have an entry for Newark, New -- Jersey in [[Module:place/locations]]. Just because the containing location `US` matches isn't enough, -- because Newark, NJ also has New Jersey as a containing location and there's a mismatch at that level. If -- there are no mismatches at any level we assume we're dealing with the right known location. -- -- If at a given level there are multiple containing locations, we count a match if any holonym matches any -- containing location, and a mismatch only if a holonym exists of the same placetype that doesn't match any -- containing location. local containers_mismatch = false for containers in m_locations.iterate_containers(group, key, spec) do insert(container_trail, containers) local match_at_level = false local mismatch_at_level = false for other_holonym_index, other_holonym in export.get_holonyms_to_check(place_desc, holonym_index and holonym_index + 1 or nil) do local other_source_holonym = other_holonym.augmented_from_holonym if other_source_holonym and other_source_holonym.placetype == holonym_placetype and other_source_holonym.unlinked_placename ~= holonym_placename then -- Ignore holonyms added during the augmentation process for other holonyms of the same -- placetype as the placetype of the holonym we're considering. See comment in -- augment_holonyms_with_container() for why we do this. -- continue; grrr, no 'continue' in Lua else local holonym_matches_at_level = false local holonym_exists_with_same_placetype = false for _, container in ipairs(containers) do if not container.spec.no_check_holonym_mismatch then local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) local placetypes = container.spec.placetype if type(placetypes) ~= "table" then placetypes = {placetypes} end local placetype_equivs = {} for _, pt in ipairs(placetypes) do m_table.extend(placetype_equivs, export.get_placetype_equivs(pt)) end local this_holonym_matches = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype and (other_holonym.unlinked_placename == full_container_placename or other_holonym.unlinked_placename == elliptical_container_placename) end ) if this_holonym_matches then holonym_matches_at_level = true break end local this_holonym_exists_with_same_placetype = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype end ) if this_holonym_exists_with_same_placetype then -- We seem to have a mismatch at this level. But before we decide conclusively that this -- is the case, check to see whether the putative mismatch is an alias and matches when -- we resolve the alias. for oh_group, oh_key, oh_spec, oh_container_trail in export.iterate_matching_holonym_location { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = place_desc, } do local oh_full_placename, oh_elliptical_placename = m_locations.key_to_placename(oh_group, oh_key) if oh_full_placename == full_container_placename or oh_elliptical_placename == elliptical_container_placename then -- Alias matched when resolved. this_holonym_matches = true break end end if this_holonym_matches then -- Alias matched above when resolved. holonym_matches_at_level = true break else -- Not an alias, or doesn't match when resolved. We have a true mismatch. holonym_exists_with_same_placetype = true end end end end if holonym_matches_at_level then match_at_level = true break end if holonym_exists_with_same_placetype then mismatch_at_level = true end end end if not match_at_level and mismatch_at_level then containers_mismatch = true break end end if not containers_mismatch then return group, key, spec, container_trail end end end end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, find and return the corresponding key, spec and group as well as the trail of ancestral containers. This is like `iterate_matching_holonym_location()` but throws an error if more than one location matches. (An example where this would happen is {{tl|place|en|neighborhood|city/Newcastle}}, because there are two known locations named Newcastle. To fix this, specify additional following disambiguating holonyms, e.g. {{tl|place|en|neighborhood|city/Newcastle|s/New South Wales}}. ]==] function export.find_matching_holonym_location(data) local all_found = {} for group, key, spec, container_trail in export.iterate_matching_holonym_location(data) do insert(all_found, {group, key, spec, container_trail}) end if not all_found[1] then return nil elseif all_found[2] then local holonym_placetype = data.holonym_placetype if type(holonym_placetype) == "table" then holonym_placetype = concat(holonym_placetype, ",") end local found_keys = {} for _, found in ipairs(all_found) do local _, key, _, _ = unpack(found) insert(found_keys, key) end error(("Found multiple matching locations for holonym '%s/%s'; specify disambiguating context in the " .. "containing holonyms: %s"):format(holonym_placetype, data.holonym_placename, dump(found_keys))) else return unpack(all_found[1]) end end ------------------------------------------------------------------------------------------ -- Placename and placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: This is a map from aliases to their canonical forms. Any placetypes appearing as keys here will be mapped to their canonical forms in all respects, including the display form. Contrast entries in 'placetype_data' with a fallback, which applies to categorization and other processes but not to display. The most important aliases are for holonym placetypes, particularly those that occur often such as "country", "state", "province" and the like. Particularly long placetypes that mostly occur as entry placetypes (e.g. "census-designated place") can be given abbreviations, but it is generally preferred to spell out the entry placetype. Note also that we purposely avoid certain abbreviations that would be ambiguous (e.g. "d", which could variously be interpreted as "department", "district" or "division"). ]==] export.placetype_aliases = { ["acomm"] = "autonomous community", ["adr"] = "administrative region", ["adterr"] = "administrative territory", -- Pakistan ["aobl"] = "autonomous oblast", ["aokr"] = "autonomous okrug", ["ap"] = "autonomous province", ["apref"] = "autonomous prefecture", ["aprov"] = "autonomous province", ["ar"] = "autonomous region", ["arch"] = "archipelago", ["arep"] = "autonomous republic", ["aterr"] = "autonomous territory", ["atu"] = "autonomous territorial unit", ["bor"] = "borough", ["c"] = "country", ["can"] = "canton", ["carea"] = "council area", ["cc"] = "constituent country", ["cdblock"] = "community development block", ["cdep"] = "Crown dependency", ["CDP"] = "census-designated place", ["cdp"] = "census-designated place", ["clcity"] = "county-level city", ["co"] = "county", ["cobor"] = "county borough", ["colcity"] = "county-level city", ["coll"] = "collectivity", ["comm"] = "community", ["cont"] = "continent", ["contr"] = "continental region", ["contregion"] = "continental region", ["cpar"] = "civil parish", ["damun"] = "direct-administered municipality", ["dep"] = "dependency", ["department capital"] = "departmental capital", ["dept"] = "department", ["depterr"] = "dependent territory", ["dist"] = "district", ["distmun"] = "district municipality", ["div"] = "division", ["emp"] = "empire", ["fpref"] = "French prefecture", ["gov"] = "governorate", ["govnat"] = "governorate", ["home-rule city"] = "home rule city", ["home-rule municipality"] = "home rule municipality", ["inner-city area"] = "inner city area", ["ires"] = "Indian reservation", ["isl"] = "island", ["lbor"] = "London borough", ["lga"] = "local government area", ["lgarea"] = "local government area", ["lgd"] = "local government district", ["lgdist"] = "local government district", ["metbor"] = "metropolitan borough", ["metcity"] = "metropolitan city", ["metmun"] = "metropolitan municipality", ["mtn"] = "mountain", ["mun"] = "municipality", ["mundist"] = "municipal district", ["nonmetropolitan county"] = "non-metropolitan county", ["obl"] = "oblast", ["okr"] = "okrug", ["p"] = "province", ["par"] = "parish", ["parmun"] = "parish municipality", ["pen"] = "peninsula", ["plcity"] = "prefecture-level city", ["plcolony"] = "Polish colony", ["pref"] = "prefecture", ["prefcity"] = "prefecture-level city", ["preflcity"] = "prefecture-level city", ["prov"] = "province", ["r"] = "region", ["range"] = "mountain range", ["rcm"] = "regional county municipality", ["rcomun"] = "regional county municipality", ["rdist"] = "regional district", ["rep"] = "republic", ["rhrom"] = "rural hromada", ["riv"] = "river", ["rmun"] = "regional municipality", ["robor"] = "royal borough", ["romp"] = "Roman province", ["runit"] = "regional unit", ["rurmun"] = "rural municipality", ["s"] = "state", ["sar"] = "special administrative region", ["shrom"] = "settlement hromada", ["spref"] = "subprefecture", ["sprefcity"] = "sub-prefectural city", ["sprovcity"] = "subprovincial city", ["submet city"] = "sub-metropolitan city", ["submetropolitan city"] = "sub-metropolitan city", ["sub-prefecture-level city"] = "sub-prefectural city", ["sub-provincial city"] = "subprovincial city", ["sub-provincial district"] = "subprovincial district", ["terr"] = "territory", ["terrauth"] = "territorial authority", ["twp"] = "township", ["twpmun"] = "township municipality", ["uauth"] = "unitary authority", ["ucomm"] = "unincorporated community", ["udist"] = "unitary district", ["uhrom"] = "urban hromada", ["uterr"] = "union territory", ["utwpmun"] = "united township municipality", ["val"] = "valley", ["vdc"] = "village development committee", ["vil"] = "village", ["voi"] = "voivodeship", ["wcomm"] = "Welsh community", -- Chinese capital/seat types ["首都"] = "capital", ["省會"] = "provincial capital", ["首府"] = "regional capital", ["縣治"] = "county seat", -- Chinese placetype name aliases (map to English equivalents so they inherit preposition, display handler, etc.) ["國家"] = "country", ["構成國"] = "constituent country", ["大洲"] = "continent", ["洲"] = "continent", ["大陸"] = "continent", ["帝國"] = "empire", ["共和國"] = "republic", ["邦"] = "state", ["州"] = "state", ["省"] = "province", ["郡"] = "county", ["縣"] = "county", ["城市"] = "city", ["市"] = "city", ["區"] = "district", ["鄉"] = "township", ["鎮"] = "town", ["村"] = "village", ["社區"] = "community", ["島"] = "island", ["島嶼"] = "island", ["群島"] = "archipelago", ["半島"] = "peninsula", ["山"] = "mountain", ["山脈"] = "mountain range", ["河"] = "river", ["河流"] = "river", ["谷"] = "valley", ["山谷"] = "valley", ["特別行政區"] = "special administrative region", ["直轄市"] = "direct-administered municipality", ["地級市"] = "prefecture-level city", ["縣級市"] = "county-level city", ["副省級市"] = "subprovincial city", ["副地級市"] = "sub-prefectural city", ["市轄區"] = "municipal district", ["自治區"] = "autonomous region", ["自治省"] = "autonomous province", ["自治州"] = "autonomous prefecture", ["自治共和國"] = "autonomous republic", ["自治市"] = "borough", ["屬地"] = "dependent territory", ["海外領地"] = "dependent territory", ["領地"] = "territory", ["聯邦屬地"] = "union territory", ["皇家屬地"] = "Crown dependency", ["教區"] = "parish", ["堂區"] = "parish", ["民政教區"] = "civil parish", ["廣域市"] = "metropolitan city", ["非建制地區"] = "unincorporated community", ["人口普查指定地區"] = "census-designated place", ["印第安保留地"] = "Indian reservation", ["羅馬行省"] = "Roman province", ["單一管理區"] = "unitary authority", ["地方行政區"] = "local government area", } local no_link_def_article = {link = false, article = "the"} local no_link_no_article = {link = false, article = false} --[==[ var: These qualifiers can be prepended onto any placetype and will be handled correctly. For example, the placetype `large city` will be displayed as `large <nowiki>[[city]]</nowiki>` and categorized as if `city` were specified. If the value in the following table is a string, the qualifier will display according to the string. If the value is `true`, the qualifier will be linked to its corresponding Wiktionary entry. If the value is `false`, the qualifier will not be linked but will appear as-is. Note that these qualifiers do not override placetypes with entries elsewhere that contain those same qualifiers. For example, the entry for `inland sea` in `placetype_data` will apply in preference to treating `inland sea` as equivalent to `sea`. ]==] export.placetype_qualifiers = { -- generic qualifiers ["huge"] = false, ["tiny"] = false, ["large"] = false, ["big"] = false, ["mid-size"] = false, ["mid-sized"] = false, ["small"] = false, ["sizable"] = false, ["important"] = false, ["long"] = false, ["short"] = false, ["major"] = false, ["minor"] = false, ["high"] = false, ["tall"] = false, ["low"] = false, ["left"] = false, -- left tributary ["right"] = false, -- right tributary ["modern"] = false, -- for use in opposition to "ancient" in another definition -- "former" qualifiers ["abandoned"] = true, ["ancient"] = true, ["deserted"] = true, ["extinct"] = true, ["former"] = false, ["historic"] = "historical", ["historical"] = true, ["medieval"] = true, ["mediaeval"] = true, ["ruined"] = true, ["traditional"] = true, -- sea qualifiers ["coastal"] = true, ["inland"] = true, -- note, we also have an entry in placetype_data for 'inland sea' to get a link to [[inland sea]] ["maritime"] = true, ["overseas"] = true, ["seaside"] = true, ["beachfront"] = true, ["beachside"] = true, ["riverside"] = true, -- lake qualifiers ["freshwater"] = true, ["saltwater"] = true, ["endorheic"] = true, ["oxbow"] = true, ["ox-bow"] = "[[oxbow]]", -- [[ox-bow]] is a red link ["tidal"] = true, -- land qualifiers ["hilltop"] = true, ["hilly"] = true, ["insular"] = true, ["peninsular"] = true, ["chalk"] = true, ["karst"] = true, ["limestone"] = true, ["mountainous"] = true, ["mountaintop"] = true, ["alpine"] = true, ["volcanic"] = true, -- for an island -- political status qualifiers ["autonomous"] = true, ["incorporated"] = true, ["special"] = true, ["unincorporated"] = true, ["coterminous"] = true, -- monetary status/etc. qualifiers ["fashionable"] = true, ["wealthy"] = true, ["affluent"] = true, ["declining"] = true, -- city vs. rural qualifiers ["urban"] = true, ["suburban"] = true, ["exurban"] = true, ["outlying"] = true, ["remote"] = true, ["rural"] = true, ["outback"] = true, ["inner"] = false, ["inner-city"] = true, ["central"] = false, ["outer"] = false, -- land use qualifiers ["residential"] = true, ["agricultural"] = true, ["business"] = true, ["commercial"] = true, ["industrial"] = true, -- business use qualifiers ["railroad"] = true, ["railway"] = true, ["farming"] = true, ["fishing"] = true, ["mining"] = true, ["logging"] = true, ["cattle"] = true, -- tourism use qualifiers ["resort"] = true, -- note, we also have 'resort city' and 'resort town', that take precedecne ["spa"] = true, -- note, we also have 'spa city' and 'spa town', that take precedecne ["ski"] = true, -- note, we also have 'ski resort city' and 'ski resort town', that take precedecne -- religious qualifiers ["holy"] = true, ["sacred"] = true, ["religious"] = true, ["secular"] = true, -- qualifiers for nonexistent places ["claimed"] = false, ["fictional"] = true, ["legendary"] = true, ["mythical"] = true, ["mythological"] = true, -- directional qualifiers ["northern"] = false, ["southern"] = false, ["eastern"] = false, ["western"] = false, ["north"] = false, ["south"] = false, ["east"] = false, ["west"] = false, ["northeastern"] = false, ["southeastern"] = false, ["northwestern"] = false, ["southwestern"] = false, ["northeast"] = false, ["southeast"] = false, ["northwest"] = false, ["southwest"] = false, -- seasonal qualifiers ["summer"] = true, -- e.g. for 'summer capital' ["winter"] = true, -- legal status qualifiers -- FIXME: Two-word qualifiers don't work yet. But you can enter "de-facto" and it's canonicalized to [[de facto]]. ["official"] = true, ["unofficial"] = true, ["de facto"] = true, -- 'de facto capital' ["de-facto"] = "[[de facto]]", -- [[de-facto]] is a red link ["de jure"] = true, -- 'de jure capital' ["de-jure"] = "[[de jure]]", -- [[de-jure]] is a red link -- NOTE: 'unrecognized/unrecognised' are handled as placetypes 'unrecognized country', 'unrecognized state' -- misc. qualifiers ["planned"] = true, ["chartered"] = true, ["landlocked"] = true, ["uninhabited"] = true, -- superlative qualifiers ["first"] = no_link_def_article, ["second"] = no_link_def_article, -- for "second largest" etc. ["third"] = no_link_def_article, ["fourth"] = no_link_def_article, ["last"] = no_link_def_article, ["only"] = no_link_def_article, ["sole"] = no_link_def_article, ["main"] = no_link_def_article, ["largest"] = no_link_def_article, ["biggest"] = no_link_def_article, ["smallest"] = no_link_def_article, ["shortest"] = no_link_def_article, ["longest"] = no_link_def_article, ["tallest"] = no_link_def_article, ["highest"] = no_link_def_article, ["lowest"] = no_link_def_article, ["leftmost"] = no_link_def_article, ["rightmost"] = no_link_def_article, ["innermost"] = no_link_def_article, ["outermost"] = no_link_def_article, ["northernmost"] = no_link_def_article, ["southernmost"] = no_link_def_article, ["westernmost"] = no_link_def_article, ["easternmost"] = no_link_def_article, ["northwesternmost"] = no_link_def_article, ["southwesternmost"] = no_link_def_article, ["northeasternmost"] = no_link_def_article, ["southeasternmost"] = no_link_def_article, -- several/various ["several"] = no_link_no_article, ["various"] = no_link_no_article, ["numerous"] = no_link_no_article, ["multiple"] = no_link_no_article, ["many"] = no_link_no_article, ["other"] = no_link_no_article, } --[==[ var: In this table, the key qualifiers should be treated the same as the value qualifiers for categorization purposes. This is overridden by `placetype_data` and `qualifier_to_placetype_equivs`. ]==] export.former_qualifiers = { ["abandoned"] = {"FORMER"}, ["ancient"] = {"ANCIENT", "FORMER"}, ["former"] = {"FORMER"}, ["extinct"] = {"FORMER"}, ["historic"] = {"FORMER"}, ["historical"] = {"FORMER"}, ["medieval"] = {"ANCIENT", "FORMER"}, ["mediaeval"] = {"ANCIENT", "FORMER"}, ["ruined"] = {"ANCIENT", "FORMER"}, ["traditional"] = {"FORMER"}, } --[==[ var: In this table, any placetypes containing these qualifiers that do not occur in `placetype_data` should be mapped to the specified placetypes for categorization purposes. Entries here are overridden by `placetype_data`. ]==] export.qualifier_to_placetype_equivs = { ["fictional"] = "fictional location", ["legendary"] = "mythological location", ["mythical"] = "mythological location", ["mythological"] = "mythological location", -- For e.g. Taiwan as a "claimed province" of China; parts of Belize as claimed by Guatemala; various islands -- claimed by various parties in East Asia. FIXME: We should conditionalize on what is being claimed since there are -- also claimed capitals, e.g. Israel and Palestine claim Jerusalem as their capital. ["claimed"] = "claimed political division", } --[==[ var: Mapping from placetypes to the corresponding plural category-only placetype for a capital of that placetype. The reverse mapping also exists. ]==] export.placetype_to_capital_cat = { ["autonomous community"] = "autonomous community capitals", ["canton"] = "cantonal capitals", ["comarca"] = "comarca capitals", ["country"] = "national capitals", -- The following are not obviously different from 'county seats' but the latte terminology is used in the US. ["county"] = "county capitals", ["department"] = "departmental capitals", ["district"] = "district capitals", ["division"] = "division capitals", ["emirate"] = "emirate capitals", ["governorate"] = "governorate capitals", ["hromada"] = "hromada capitals", ["krai"] = "krai capitals", ["metropolitan city"] = "metropolitan city capitals", ["municipality"] = "municipal capitals", ["oblast"] = "oblast capitals", ["okrug"] = "okrug capitals", ["prefecture"] = "prefectural capitals", ["province"] = "provincial capitals", ["raion"] = "raion capitals", ["regency"] = "regency capitals", ["region"] = "regional capitals", ["regional unit"] = "regional unit capitals", ["republic"] = "republic capitals", ["state"] = "state capitals", ["territory"] = "territorial capitals", ["voivodeship"] = "voivodeship capitals", } --[==[ var: This contains placenames that should be preceded by an article (almost always "the"). '''NOTE''': There are multiple ways that placenames can come to be preceded by "the": # Listed here. # Given in [[Module:place/locations]] with an initial "the". All such placenames are added to this map by the code just below the map. # The placetype of the placename has `holonym_use_the = true` in its placetype_data. # A regex in placename_the_re matches the placename. Note that "the" is added only before the first holonym in a place description. ]==] export.placename_article = { -- This should only contain info that can't be inferred from [[Module:place/locations]]. ["archipelago"] = { ["Cyclades"] = "the", ["Dodecanese"] = "the", }, ["country"] = { ["Holy Roman Empire"] = "the", }, ["empire"] = { ["Holy Roman Empire"] = "the", }, ["island"] = { ["North Island"] = "the", ["South Island"] = "the", }, ["region"] = { ["Balkans"] = "the", ["Russian Far East"] = "the", ["Caribbean"] = "the", ["Caucasus"] = "the", ["Middle East"] = "the", ["New Territories"] = "the", ["North Caucasus"] = "the", ["South Caucasus"] = "the", ["West Bank"] = "the", ["Gaza Strip"] = "the", }, ["valley"] = { ["San Fernando Valley"] = "the", }, } --[==[ var: Regular expressions to apply to determine whether we need to put 'the' before a holonym. The key "*" applies to all holonyms, otherwise only the regexes for the holonym's placetype apply. ]==] export.placename_the_re = { -- We don't need entries for peninsulas, seas, oceans, gulfs or rivers -- because they have holonym_use_the = true. ["*"] = {"^Isle of ", " Islands$", " Mountains$", " Empire$", " Country$", " Region$", " District$", "^City of "}, ["bay"] = {"^Bay of "}, ["lake"] = {"^Lake of "}, ["country"] = {"^Republic of ", " Republic$"}, ["republic"] = {"^Republic of ", " Republic$"}, ["region"] = {" [Rr]egion$"}, ["river"] = {" River$"}, ["local government area"] = {"^Shire of "}, ["county"] = {"^Shire of "}, ["Indian reservation"] = {" Reservation", " Nation"}, ["tribal jurisdictional area"] = {" Reservation", " Nation"}, } --[==[ var: If any of the following holonyms are present, the associated holonyms are automatically added to the end of the list of holonyms for categorization (but not display) purposes. ]==] export.cat_implications = { ["region"] = { ["東歐"] = {"continent/歐洲"}, ["中歐"] = {"continent/歐洲"}, ["西歐"] = {"continent/歐洲"}, ["南歐"] = {"continent/歐洲"}, ["北歐"] = {"continent/歐洲"}, ["東北歐"] = {"continent/歐洲"}, ["東南歐"] = {"continent/歐洲"}, ["北高加索"] = {"continent/歐洲"}, ["南高加索"] = {"continent/亞洲"}, ["南亞"] = {"continent/亞洲"}, ["東亞"] = {"continent/亞洲"}, ["中亞"] = {"continent/亞洲"}, ["西亞"] = {"continent/亞洲"}, ["東南亞"] = {"continent/亞洲"}, ["北亞"] = {"continent/亞洲"}, ["安納托利亞"] = {"continent/亞洲"}, ["小亞細亞"] = {"continent/亞洲"}, ["美索不達米亞"] = {"continent/亞洲"}, ["北非"] = {"continent/非洲"}, ["中非"] = {"continent/非洲"}, ["西非"] = {"continent/非洲"}, ["東非"] = {"continent/非洲"}, ["南非"] = {"continent/非洲"}, ["中美洲"] = {"continent/中美洲"}, ["加勒比地區"] = {"continent/北美洲"}, ["玻里尼西亞"] = {"continent/大洋洲"}, ["密克羅尼西亞"] = {"continent/大洋洲"}, ["美拉尼西亞"] = {"continent/大洋洲"}, ["西伯利亞"] = {"country/俄羅斯", "continent/亞洲"}, ["俄羅斯遠東地區"] = {"country/俄羅斯", "continent/亞洲"}, ["南威爾斯"] = {"constituent country/威爾斯", "continent/歐洲"}, ["巴爾幹半島"] = {"continent/歐洲"}, ["約旦河西岸"] = {"country/巴勒斯坦", "continent/亞洲"}, ["加薩"] = {"country/巴勒斯坦", "continent/亞洲"}, ["加薩走廊"] = {"country/巴勒斯坦", "continent/亞洲"}, } } ------------------------------------------------------------------------------------------ -- Category and display handlers -- ------------------------------------------------------------------------------------------ local function city_type_cat_handler(data) local entry_placetype = data.entry_placetype local generic_before_non_cities = export.get_placetype_prop(entry_placetype, "generic_before_non_cities") if not generic_before_non_cities then internal_error("city_type_cat_handler called on placetype %s that doesn't have a `generic_before_non_cities`" .. " setting", entry_placetype) end local plural_entry_placetype = export.pluralize_placetype(entry_placetype) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and not spec.is_city then -- ZH: "法國的城市" (location_key + 的 + zh_placetype_name) local zh_name_raw = export.get_zh_placetype_name(entry_placetype) local zh_entry_name = zh_name_raw and export.format_zh_name(zh_name_raw) or plural_entry_placetype local de = export.zh_strings.de_particle local retcats = {export.get_prefixed_key(key, spec) .. de .. zh_entry_name} if container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_entry_name) end end return retcats end end local function capital_city_cat_handler(data, non_city) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc -- The first time we're called we want to return something; otherwise we will be called for later-mentioned -- holonyms, which can result in wrongly classifying into e.g. `National capitals`. Simulate the loop in -- find_placetype_cat_specs() over holonyms so we get the proper `Cities in ...` categories as well as the capital -- category/categories we add below. local retcats if not non_city and place_desc.holonyms then for h_index, holonym in export.get_holonyms_to_check(place_desc, holonym_index) do local h_placetype, h_placename = holonym.placetype, holonym.unlinked_placename retcats = city_type_cat_handler { entry_placetype = "city", holonym_placetype = h_placetype, holonym_placename = h_placename, holonym_index = h_index, place_desc = place_desc, } if retcats then break end end end if not retcats then retcats = {} end -- Now find the appropriate capital-type category for the placetype of the holonym, e.g. 'State capitals'. If we -- recognize the holonym among the known holonyms in [[Module:place/locations]], also add a category like 'State -- capitals of the United States'. Truncate e.g. 'autonomous region' to 'region', 'union territory' to 'territory' -- when looking up the type of capital category, if we can't find an entry for the holonym placetype itself (there's -- an entry for 'autonomous community'). -- ZH: look up Chinese capital label by holonym placetype ("首都", "省會", "首府", etc.) local zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype] if not zh_capital_name then zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype:gsub("^.* ", "")] end local de = export.zh_strings.de_particle if zh_capital_name then local inserted_specific_variant_cat = false if holonym_index then -- Now find the first recognized holonym location. We don't stop when :also is seen because of the common pattern -- where we use :also to specify that a given city is the capital at multiple surrounding levels. local matching_group, matching_key, matching_spec, matching_container_trail, matching_holonym_index for h_index = holonym_index, #place_desc.holonyms do if place_desc.holonyms[h_index].placetype then matching_group, matching_key, matching_spec, matching_container_trail = export.find_matching_holonym_location { holonym_placetype = place_desc.holonyms[h_index].placetype, holonym_placename = place_desc.holonyms[h_index].unlinked_placename, holonym_index = h_index, place_desc = place_desc, } if matching_group then matching_holonym_index = h_index break end end end if matching_holonym_index == holonym_index then if matching_container_trail[1] and not matching_spec.no_container_cat then for _, container in ipairs(matching_container_trail[1]) do -- ZH: "美國的首都" (location_key + 的 + zh_capital_name) insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_capital_name) inserted_specific_variant_cat = true end end elseif matching_holonym_index then -- Check to make sure that the holonym placetype we were called on is listed among the -- divtypes of the location we found. local function insert_specific_variant_if_possible(key, spec) return export.get_equiv_placetype_prop(holonym_placetype, function(pt) local plural_holonym_placetype = export.pluralize_placetype(pt) local saw_matching_div if spec.divs then local divs = spec.divs if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) ~= "table" then div = {type = div} end if plural_holonym_placetype == div.type then saw_matching_div = true break end end end if saw_matching_div then insert(retcats, export.get_prefixed_key(key, spec) .. de .. zh_capital_name) return true end return false end) end if insert_specific_variant_if_possible(matching_key, matching_spec) then inserted_specific_variant_cat = true elseif not matching_spec.no_container_cat then for _, containers in ipairs(matching_container_trail) do local saw_no_container_cat = false for _, container in ipairs(containers) do if insert_specific_variant_if_possible(container.key, container.spec) then inserted_specific_variant_cat = true break end saw_no_container_cat = saw_no_container_cat or container.spec.no_container_cat end if inserted_specific_variant_cat or saw_no_container_cat then break end end end end else -- This happens when in an invocation like {{place|en|capital city|s/Haryana,Punjab}} for -- [[Chandigarh]]. We fall back to older code that doesn't depend on the holonym index existing. -- FIXME: This may not be necessary. In the example just given, when processing Haryana we add to -- [[:Category:en:State capitals of India]], and nothing extra gets added when processing Punjab. -- Possibly we can just skip this case entirely. local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_capital_name) inserted_specific_variant_cat = true end end end if not inserted_specific_variant_cat then insert(retcats, zh_capital_name) end else -- We didn't recognize the holonym placetype; fall back to generic capital label. insert(retcats, "首都") end return retcats end --[=[ This is invoked specially for all placetypes (see the `*` placetype key at the bottom of `placetype_data`). This is used in two ways: # To add pages to generic holonym categories like [[:Category:en:Places in Merseyside, England]] (and [[:Category:en:Places in England]]) for any pages that have `co/Merseyside` as their holonym. # To categorize demonyms in bare placename categories like [[:Category:en:Merseyside, England]] if the demonym description mentions `co/Merseyside` and doesn't mention a more specific placename that also has a category. (In this case there are none, but we can have demonyms at multiple levels, e.g. in France for individual villages, departments, administrative regions, and for the entire country, and for example we only want to categorize a demonym into [[:Category:France]] if no more specific category applies.) Unlike when invoked from {{tl|place}}, a demonym invocation only adds the most specific holonym category and not the category of any containing polity (hence if we add [[:Category:en:Merseyside, England]] we won't also add [[:Category:England]]). This code also handles cities; e.g. for the first use case above, it would be used to add a page that has `city/Boston` as a holonym to [[:Category:en:Places in Boston]], along with [[:Category:en:Places in Massachusetts, USA]] and [[:Category:en:Places in the United States]]. The city handler tries to deal with the possibility of multiple cities having the same name. For example, the code in [[Module:place/locations]] knows about the city of [[Columbus]], [[Ohio]], which has containing polities `Ohio` (a state) and `the United States` (a country). If either containing polity is mentioned, the handler proceeds to return the key `Columbus` (along with `Ohio, USA` and `the United States`). Otherwise, if any other state or country is mentioned, the handler returns nothing, and otherwise it assumes the mentioned city is the one we're considering and returns `Columbus` etc. This works correctly if the place only mentions Ohio and a holonym for a Columbus in a different country is encountered, because of the function `augment_holonyms_with_container`, which adds the US as a holonym when Ohio is encountered. The single parameter `data` is as in category handlers. The return value is a list of categories (without the preceding language code). ]=] local function generic_place_cat_handler(data) local from_demonym = data.from_demonym local retcats = {} local function insert_retkey(key, spec) if from_demonym then insert(retcats, key) else -- ZH: "法國地名" (location_key + 地名) insert(retcats, export.get_prefixed_key(key, spec) .. "地名") end end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then if not spec.no_generic_place_cat then -- This applies to continents and continental regions. insert_retkey(key, spec) end -- Categorize both in key, and in the larger location(s) that the key is part of, e.g. [[Hirakata]] goes in -- both [[Category:Places in Osaka Prefecture, Japan]] and [[Category:Places in Japan]]. But not when -- no_container_cat is set (e.g. for 'United Kingdom'). if not spec.no_container_cat then for _, container_set in ipairs(container_trail) do local stop_adding_containers = false for _, container in ipairs(container_set) do if not container.spec.no_generic_place_cat then insert_retkey(container.key, container.spec) end if container.spec.no_container_cat then stop_adding_containers = true end end if stop_adding_containers then break end end end return retcats end end --[==[ Special category handler run for all placetypes that checks for specified division placetypes of known locations and categorizes appropriately. ]==] function export.political_division_cat_handler(data) if data.from_demonym then return end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then local divlists = {} if spec.divs then insert(divlists, spec.divs) end if spec.addl_divs then insert(divlists, spec.addl_divs) end for _, divlist in ipairs(divlists) do if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local sgdiv = export.maybe_singularize_placetype(div.type) or div.type local prep = div.prep or "of" local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" then cat_as = {cat_as} end if not export.placetype_data[sgdiv] then internal_error("Placetype %s associated with known location key %s and data %s not found in " .. "`placetype_data`", sgdiv, key, spec) end if sgdiv == data.entry_placetype then -- ZH: "臺灣的縣" format (location_key + 的 + zh_name); ignore cat_as grouping local zh_n_raw = export.get_zh_placetype_name(data.entry_placetype) local zh_n = zh_n_raw and export.format_zh_name(zh_n_raw) or ucfirst(data.entry_placetype) return {export.get_prefixed_key(key, spec) .. export.zh_strings.de_particle .. zh_n} end end end end end --[==[ This is used to add pages to "bare" categories like [[:Category:en:Georgia, USA]] for `[[Georgia]]` and any foreign-language terms that are translations of the state of Georgia. We look at the page title (or its overridden value in {{para|pagename}}) as well as the glosses in {{para|t}}/{{para|t2}} etc., various extra-info values such as the modern names in {{para|modern}}, and any values specified using a form-of directive. We need to pay attention to the entry placetypes specified so we don't overcategorize; e.g. the US state of Georgia is `[[Джорджия]]` in Russian but the country of Georgia is `[[Грузия]]`, and if we just looked for matching names, we'd get both Russian terms categorized into both [[:Category:ru:Georgia, USA]] and [[:Category:ru:Georgia]]. We also need to check the containing holonyms to make sure there isn't a mismatch (so we don't e.g. categorize Newark, Delaware in [[:Category:en:Newark]], which is intended for Newark, New Jersey). ]==] function export.get_bare_categories(args, overall_place_spec) local bare_cats = {} local place_descs = overall_place_spec.descs local possible_placetypes_by_place_desc = {} for i, place_desc in ipairs(place_descs) do possible_placetypes_by_place_desc[i] = {} for _, placetype in ipairs(place_desc.placetypes) do if not export.placetype_is_ignorable(placetype) then local equivs = export.get_placetype_equivs(placetype, {register_former_as_non_former = true}) for _, equiv in ipairs(equivs) do insert(possible_placetypes_by_place_desc[i], equiv.placetype) end end end end local function check_term(term) -- Treat Wikipedia links like local ones. term = term:gsub("%[%[w:", "[["):gsub("%[%[wikipedia:", "[[") term = export.remove_links_and_html(term) term = term:gsub("^the ", "") for i, place_desc in ipairs(place_descs) do -- Iterate over all matching locations in case there are multiple, as with Delhi defined as -- {{place|en|megacity/and/union territory|c/India|containing the national capital [[New Delhi]]}}. for group, key, spec, container_trail in export.iterate_matching_holonym_location { holonym_placetype = possible_placetypes_by_place_desc[i], holonym_placename = term, place_desc = place_desc, } do insert(bare_cats, key) end end end -- FIXME: Should we only do the following if the language is English (requires that the lang is passed in)? -- We should always do it if `pagename` is given (as it is with {{tcl}}) but maybe not otherwise unless 1=en. There -- are cases like [[Ankara]] = English name for capital of Turkey, but also the name in various languages for the -- capital of Ghana (= English [[Accra]]). But this should get caught by mismatching the containing country. The -- advantage of checking when the language isn't English is we catch those places that fail to give an English -- translation but where the translation happens to be the same as the other-language spelling. However, I don't -- know how often this situation occurs. check_term(args.pagename or mw.loadData("Module:headword/data").pagename) for _, t in ipairs(args.t) do check_term(t) end local function check_termobj_list(terms) for _, term in ipairs(terms) do if term.eq then check_term(term.eq) end if term.alt or term.term then check_term(term.alt or term.term) end end end for _, extra_info_terms in ipairs(overall_place_spec.extra_info) do local arg = extra_info_terms.arg if arg == "modern" or arg == "now" or arg == "full" or arg == "short" then check_termobj_list(extra_info_terms.terms) end end for _, directive in ipairs(overall_place_spec.directives) do check_termobj_list(directive.terms) end return bare_cats end --[==[ This is used to augment the holonyms associated with a place description with the containing polities. For example, given the following: `# {{tl|place|en|subprefecture|pref/Hokkaido}}.` We auto-add Japan as another holonym so that the term gets categorized into [[:Category:Subprefectures of Japan]]. To avoid over-categorizing we need to check to make sure no other countries are specified as holonyms. ]==] function export.augment_holonyms_with_container(place_descs) for _, place_desc in ipairs(place_descs) do if place_desc.holonyms then -- This ends up containing a copy of the original holonyms, with the augmented holonyms inserted in their -- appropriate position. We don't just put them at the end because some holonyms have use the `:also` -- modifier, which causes category processing to restart at that point after generating categories for a -- preceding holonym, and we don't want the preceding holonym's augmented holonyms interfering with -- categorization of a later holonym. We proceed from right to left, and each time we augment, we copy -- the holonyms with the augmented holonym(s) inserted appropriately and replace the place description's -- holonyms with the augmented ones before the next iteration. The reason for this is so that e.g. -- {{place|neighborhood|city/Birmingham|co/West Midlands|cc/England}} doesn't throw an error during the -- augmentation process due to 'Birmingham' referring to two known locations (in England and Alabama). If -- we go left to right, we will throw an ambiguity error on `city/Birmingham` because code to exclude -- Birmingham, Alabama needs `c/United Kingdom` present (to cause a mismatch with `c/United States`), -- which isn't yet present as the augmentation code hasn't gotten to `cc/England` yet. For similar -- reasons, we need to include the augmented holonyms in the holonyms considered in the next iteration -- rather than modifying the place description once at athe end. for i = #place_desc.holonyms, 1, -1 do local holonym = place_desc.holonyms[i] if holonym.placetype and not export.placetype_is_ignorable(holonym.placetype) then local group, key, spec, container_trail = export.find_matching_holonym_location { holonym_placetype = holonym.placetype, holonym_placename = holonym.unlinked_placename, holonym_index = i, place_desc = place_desc, } if group and container_trail[1] and not spec.no_auto_augment_container then local augmented_holonyms = {} for j = 1, i do insert(augmented_holonyms, place_desc.holonyms[j]) end for _, containers in ipairs(container_trail) do local any_no_auto_augment_container = false for _, container in ipairs(containers) do any_no_auto_augment_container = any_no_auto_augment_container or container.spec.no_auto_augment_container local containing_type = container.spec.placetype if type(containing_type) == "table" then -- If the containing type is a list, use the first element as the canonical variant. containing_type = containing_type[1] end local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) -- Don't side-effect holonyms while processing them. local new_holonym = { -- By the time we run, the display has already been generated so we don't need to -- set display_placename. placetype = containing_type, -- placename_to_key() for the group should correctly handle both full and elliptical -- placenames, but the full placename seems less likely to be ambiguous. FIXME: We -- should just store the key directly and use it when available to avoid having to -- convert key to placename and back to key. unlinked_placename = full_container_placename, -- Indicate that this is an augmented holonym, and was derived from the specified -- holonym. In iterate_matching_holonym_location(), we ignore augmented holonyms -- derived from holonyms that are different from the holonym we're searching for but -- of the same placetype. This is to correctly handle a situation like -- {{place|river|dept/Ardèche,Gard,Vaucluse,Bouches-du-Rhône|c/France}}. Here, -- `Ardèche` is in `r/Auvergne-Rhône-Alpes`, while `Gard` is in `r/Occitania` and -- the other two are in `r/Provence-Alpes-Côte d'Azur`. Augmenting proceeds from -- right to left, so after it adds `r/Provence-Alpes-Côte d'Azur` to -- `Bouches-du-Rhône`, Vaucluse gets augmented correctly but `Gard` fails to match -- in find_matching_holonym_location() because of the mismatch between augmented -- `r/Provence-Alpes-Côte d'Azur` and actual `r/Occitania`. Similarly, all later -- calls to find_matching_holonym_location() fail to match `Gard` (and likewise -- `Ardèche`) against any known location. To deal with this, we mark augmented -- holoynms as being augmented due to a source holonym, and when processing a given -- holonym, ignore augmented holonyms from other holonyms of the same placetype. -- The restriction to the same placetype is so that `Birmingham` still gets -- correctly disambiguated to Birmingham, England in the example given above near -- the top of this function, using the augmented holonym `c/United Kingdom` added by -- the specified `cc/England` (whose placetype `constituent country` differs from -- the placetype `city` of Birmingham). augmented_from_holonym = holonym, } insert(augmented_holonyms, new_holonym) -- But it is safe to modify other parts of the place_desc. export.key_holonym_into_place_desc(place_desc, new_holonym) end if any_no_auto_augment_container then break end end for j = i + 1, #place_desc.holonyms do insert(augmented_holonyms, place_desc.holonyms[j]) end place_desc.holonyms = augmented_holonyms end end end end end end -- Cat handler for district, areas, neighborhoods and suburbs. Districts are tricky because they can either be political -- divisions or city neighborhoods. Areas similarly can be political divisions (rarely; specifically, in Kuwait), city -- neighborhoods or larger geographical areas/regions. We handle this as follows: -- (1) `placetype_data` cat entries for specific countries or country divisions take precedence over cat_handlers, so if -- the user says {{tl|place|district|s/Maharashtra|c/India}}, we won't even be called because there is an entry that -- categorizes into [[:Category|Districts of Maharashtra, India]]. -- (2) If we're called, we check the holonym we're called on to see if it is a recognized city, e.g. if we're called -- using {{tl|place|district|city/Mumbai|s/Maharashtra|c/India}}. If so, we categorize under e.g. -- [[:Category:Neighbourhoods of Mumbai]]. (Choosing the spelling "neighbourhoods" because we're in India.) -- (3) If we're called and the holonym is not a recognized city, we check if the placetype has has_neighborhoods set. -- If so, it's "city-like" and we categorize under the first containing polity that we recognize. For example, if -- we're called using {{tl|place|district|town/Northampton|co/Hampshire|s/Massachusetts|c/US}}, we should recognize -- town as "city-like" and categorize under [[:Category:Neighborhoods in Massachusetts]]. (Note "in" not "of", and -- note the spelling "neighborhoods" because we're in the US.) -- (4) If the holonym is not city-like, we do nothing. If there's a city or city-like placetype farther up (e.g. we're -- called as {{tl|place|district|ward/Foo|mun/Bar|...}}), we will handle the city-like entity according to (2) or -- (3) when called on that holonym. Otherwise either the categorization in (1) takes place or there's no -- categorization. local function district_neighborhood_cat_handler(data) local function get_plural_entry_placetype(location_spec, container_trail) if data.entry_placetype == "suburb" then return "Suburbs" else -- Check for `british_spelling` setting on the spec itself or any container. local uses_british_spelling = location_spec.british_spelling if uses_british_spelling == nil and container_trail then for _, container_set in ipairs(container_trail) do local must_outer_break = false for _, container in ipairs(container_set) do if container.spec.british_spelling ~= nil then uses_british_spelling = container.spec.british_spelling must_outer_break = true break end end if must_outer_break then break end end end return uses_british_spelling and "Neighbourhoods" or "Neighborhoods" end end -- First check the immediate holonym to see if it's a city or a city-like top-level entity (Hong Kong, Bonaire, -- etc.) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and spec.is_city then return {get_plural_entry_placetype(spec, container_trail) .. " of " .. export.get_prefixed_key(key, spec)} end -- If the entry placetype is neighbo(u)rhood, assume it is a neighborhood even if there isn't a city-like -- entity father up the chain. (E.g. due to a mistaken use of m/ instead of mun/ for municipality.) local has_neighborhoods local entry_placetype = data.entry_placetype if entry_placetype == "neighborhood" or entry_placetype == "neighbourhood" or entry_placetype == "suburb" then has_neighborhoods = true else -- Otherwise, make sure the current holonym is city-like. has_neighborhoods = export.get_equiv_placetype_prop(data.holonym_placetype, function(pt) return export.get_placetype_prop(pt, "has_neighborhoods") end, {continue_on_nil_only = true}) end if has_neighborhoods then -- Loop up the holonyms, looking for city and city-like entities in case of e.g. [[Sepulveda]] written -- {{place|en|neighborhood|valley/San Fernando Valley|city/Los Angeles|s/California|c/USA}} -- but also look for a recognizable poldiv, and if so categorize as "Neighborhoods in POLDIV". We need -- to start with the current holonym, which is especially important for neighborhoods and suburbs that -- may have the first holonym be a recognizable province, etc. but can't hurt otherwise. (Previously -- we skipped the first/current holonym.) for other_holonym_index, other_holonym in export.get_holonyms_to_check(data.place_desc, data.holonym_index) do local other_holonym_data = { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = data.place_desc, } local group, key, spec, container_trail = export.find_matching_holonym_location(other_holonym_data) if group and not spec.is_former_place then return {get_plural_entry_placetype(spec, container_trail) .. (spec.is_city and " of " or " in ") .. export.get_prefixed_key(key, spec)} end end end end function export.check_already_seen_string(holonym_placename, already_seen_strings) local canon_placename = ulower(m_links.remove_links(holonym_placename)) if type(already_seen_strings) ~= "table" then already_seen_strings = {already_seen_strings} end for _, already_seen_string in ipairs(already_seen_strings) do if canon_placename:find(already_seen_string) then return true end end return false end -- Prefix display handler that adds a prefix such as "Metropolitan Borough of " to the display -- form of holonyms. We make sure the holonym doesn't contain the prefix or some variant already. -- We do this by checking if any of the strings in ALREADY_SEEN_STRINGS, either a single string or -- a list of strings, or the prefix if ALREADY_SEEN_STRINGS is omitted, are found in the holonym -- placename, ignoring case and links. If the prefix isn't already present, we create a link that -- uses the raw form as the link destination but the prefixed form as the display form, unless the -- holonym already has a link in it, in which case we just add the prefix. local function prefix_display_handler(prefix, holonym_placename, already_seen_strings) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(prefix)) then return holonym_placename end if holonym_placename:find("%[%[") then return prefix .. " " .. holonym_placename end return prefix .. " [[" .. holonym_placename .. "]]" end -- Suffix display handler that adds a suffix such as " parish" to the display form of holonyms. -- Works identically to prefix_display_handler but for suffixes instead of prefixes. local function suffix_display_handler(suffix, holonym_placename, already_seen_strings, include_suffix_in_link) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(suffix)) then return holonym_placename end if holonym_placename:find("%[%[") then return holonym_placename .. " " .. suffix end if include_suffix_in_link then return "[[" .. holonym_placename .. " " .. suffix .. "]]" else return "[[" .. holonym_placename .. "]] " .. suffix end end -- Display handler for boroughs. New York City boroughs are display as-is. Others are suffixed -- with "borough". local function borough_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.new_york_boroughs[unlinked_placename] then -- Hack: don't display "borough" after the names of NYC boroughs return holonym_placename end return suffix_display_handler("borough", holonym_placename) end local function county_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) -- Display handler for Irish counties. Irish counties are displayed as e.g. "County [[Cork]]". if m_locations.ireland_counties["County " .. unlinked_placename .. ", Ireland"] or m_locations.northern_ireland_counties["County " .. unlinked_placename .. ", Northern Ireland"] then return prefix_display_handler("County", holonym_placename) end -- Display handler for Taiwanese counties. Taiwanese counties are displayed as e.g. "[[Chiayi]] County". if m_locations.taiwan_counties[unlinked_placename .. " County, Taiwan"] then return suffix_display_handler("County", holonym_placename) end -- Display handler for Romanian counties. Romanian counties are displayed as e.g. "[[Cluj]] County". if m_locations.romania_counties[unlinked_placename .. " County, Romania"] then return suffix_display_handler("County", holonym_placename) end -- FIXME, we need the same for US counties but need to key off the country, not the specific county. -- Others are displayed as-is. return holonym_placename end -- Display handler for prefectures. Japanese prefectures are displayed as e.g. "[[Fukushima]] Prefecture". -- Others are displayed as e.g. "[[Fthiotida]] prefecture". local function prefecture_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) local suffix = m_locations.japan_prefectures[unlinked_placename .. " Prefecture, Japan"] and "Prefecture" or "prefecture" return suffix_display_handler(suffix, holonym_placename) end -- Display handler for provinces of Bulgaria, Iran, Laos, North and South Korea, Thailand, Turkey and Vietnam. Recognized -- provinces are displayed as e.g. "[[Gyeonggi]] Province" or "[[Antalya]] Province". Others are displayed as-is. local function province_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.bulgaria_provinces[unlinked_placename .. "Province, Bulgaria"] or m_locations.iran_provinces[unlinked_placename .. " Province, Iran"] or m_locations.laos_provinces[unlinked_placename .. " Province, Laos"] or m_locations.north_korea_provinces[unlinked_placename .. " Province, North Korea"] or m_locations.south_korea_provinces[unlinked_placename .. " Province, South Korea"] or m_locations.thailand_provinces[unlinked_placename .. " Province, Thailand"] or m_locations.turkey_provinces[unlinked_placename .. " Province, Turkey"] or m_locations.vietnam_provinces[unlinked_placename .. " Province, Vietnam"] then return suffix_display_handler("Province", holonym_placename) end return holonym_placename end -- Display handler for Nigerian states. Nigerian states are display as "[[Kano]] State". Others are displayed as-is. local function state_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.nigeria_states[unlinked_placename .. " State, Nigeria"] then return suffix_display_handler("State", holonym_placename) end return holonym_placename end -- Display handler for voivodeships. Display as e.g. [[Subcarpathian Voivodeship]]. local function voivodesip_display_handler(holonym_placetype, holonym_placename) return suffix_display_handler("Voivodeship", holonym_placename, nil, "include_suffix_in_link") end ------------------------------------------------------------------------------------------ -- Placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: Main placetype data structure. This specifies, for each canonicalized placetype, various properties. The keys are placetypes (in the singular, except for category-only placetypes, which are plural and followed by `!`), and the value is a table of properties. The `"*"` key is special and is used for adding "generic" categories of the form `Places in ``location`` `; it runs for all entry placetypes. Keys in the form of plural placetypes followed by `!` are used only in [[Module:category tree/topic cat/data/Places]] for specifying the properties of categories containing the specified placetype, esp. bare categories like [[:Category:States and territories]] (rather than qualified categories like [[:Category:States and territories of Australia]]). Keys under the value table for a given placetype of are two types: ''property keys'' (which specify the value of specific properties) and ''categorization keys'' (which tell how to categorize certain sorts of holonyms if the placetype in question occurs as an entry placetype). Categorization keys are either the special value `default` or are wildcard strings with a slash in them, such as `"country/*"`. Note that only wildcard strings are currently allowed directly in the placetype data; everything else is handled through category handlers, either per-placetype or special (such as `political_division_cat_handler`). The algorithm for how category keys and handlers are used to generate categories is described at the top of [[Module:place]]. There are several recognized property keys, of various types: 1. The following link-related property keys are recognized: * `link`: '''Required''' except in category-only placetypes ending in `!`. Describes how to link and display the placetype in the formatted description when occurring as an entry placetype. Also used for formatting pluralized placetypes (which may occur in entry placetypes, esp. new-format ones, such as `two <<islands>>`) and may occur in categories). The possible values are: *# `true`: Link to the same-named Wiktionary entry. This creates a raw link, e.g. `<nowiki>[[city]]</nowiki>`, which is converted to an English-specific link by JavaScript postprocessing. If the placetype is plural, this creates a two-part raw link e.g. `<nowiki>[[city|cities]]</nowiki>`. *# `"w"`: Link to the same-named Wikipedia entry. This creates a two-part link, e.g. `<nowiki>[[w:census town|census town]]</nowiki>`, or `<nowiki>[[w:census town|census towns]]</nowiki>` if the placetype is given plural. *# `"+..."`: Create a two-part link to the entry following the `+` sign. For example, if `cercle` specifies `"+w:cercles of Mali"`, a two-part link `<nowiki>[[w:cercles of Mali|cercle]]</nowiki>` will be generated, or `<nowiki>[[w:cercles of Mali|cercles]]</nowiki>` if plural `cercles` is specified. *# `"separately"`: Link each word separately. For example, if `administrative territory` specifies `"separately"`, it will be linked as `<nowiki>[[administrative]] [[territory]]</nowiki>`, or as `<nowiki>[[administrative]] [[territory|territories]]</nowiki>` if plural `administrative territories` is given. *# another string: Use that string directly. If the placetype is plural, `pluralize()` in [[Module:en-utilities]] is called on the string, which will correctly pluralize most strings, including those with links in them. (If there are multiple links, the display form of the last link is pluralized.) *# `false`: This placetype is not allowed as an entry placetype. An error will be thrown if this placetype is given as an entry placetype. This is specified for internal-use placetypes, especially placetypes used in conjunction with the qualifiers `former`, `ancient`, `historical` and such. * `plural_link`: If specified and the placetype is plural, use the value in place of generating a pluralized version of the link spec in `link`. Most commonly, this is either a string with links in it (which is used directly) or the value `false`, indicating that the placetype cannot occur plural. (This is used for example by `caplc`, which displays as `<nowiki>[[capital]] and [[large]]st [[city]]</nowiki>`, where a plural version doesn't make sense.) Generally if this is specified, `plural` also needs to be specified to give a special placetype plural; this situation occurs especially with multiword placetypes where something other than the last word is pluralized. An example is `town with bystatus`, whose plural is `towns with bystatus`, which needs to be explicitly given. This example uses `link = <nowiki>"[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>` ({{m|nb|bystatus}}) is a Norwegian Bokmål word, and template calls aren't currently permitted in link strings), along with `plural_link = <nowiki>"[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>`. * `category_link`: Spec indicating how to display the placetype when occurring in category descriptions. Defaults to the value of `link`, and in turn is overridden by more specific `category_link_*` keys; see below. Category-only placetypes (which are plural and end in `!`) usually use `category_link` in preference to `link`. The value of `category_link` can be any of the types of specs given above, but most commonly is a plural string with links in it, spelling out the description; in this case it is used directly. When both `category_link` and `link` are given, the value in `category_link` is typically longer and more descriptive. For example, `polity` uses `link = true`, which just generates a link `<nowiki>[[polity]]</nowiki>` or plural `<nowiki>[[polity|polities]]</nowiki>`, but specifies a separate `category_link = <nowiki>"[[independent]] or [[semi-]][[independent]] [[polity|polities]]"</nowiki>`, which clarifies in the category description what a polity is. * `category_link_top_level`: Spec indicating how to display top-level (bare/unqualified) categories, i.e. categories where the placetype is not followed by `in ``location`` ` or `of ``location`` `. If given, this overrides `category_link` for this type of category. * `category_link_before_noncity`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` does not refer to a city. If given, this overrides `category_link` for this type of category. * `category_link_before_city`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` refer to a city. If given, this overrides `category_link` for this type of category. An example where this is given is `neighborhood`, which uses the following specs:<ol> <li>`link = true`</li> <li>`category_link = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]"</nowiki>`</li> <li>`category_link_before_city = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions"</nowiki>`</li> </ol> This has the effect of making the entry placetype `neighborhood` display as just `<nowiki>[[neighborhood]]</nowiki>`, while e.g. a category like `Neighborhoods of Chicago` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[Chicago]], ...</nowiki>` and a category like `Neighborhoods in Illinois, USA` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]] in [[Illinois]], ...</nowiki>`. * `disallow_in_entries`: If specified, this placetype cannot occur as an entry placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. * `disallow_in_holonyms`: If specified, this placetype cannot occur as a holonym placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. 2. There is currently one fallback-related property key recognized: * `fallback`: If specified, its value is a placetype which will be used for categorization purposes if no categories get added using the placetype itself. As an example, `branch` sets a fallback of `river` but also sets `preposition = "of"`, meaning that {{tl|place|en|branch|riv/Mississippi}} displays as `a branch of the Mississippi` (whereas `river` itself uses the preposition `in`), but otherwise categorizes the same as `river`. A more complex example is `area`, which sets a fallback of `geographic and cultural area` and also sets a category handler that checks for cities or city-like entities (e.g. boroughs) occurring as holonyms and categorizes the toponym under [[:Category:Neighborhoods of CITY]] (for recognized cities) or otherwise [[:Category:Neighborhoods of POLDIV]] (for the nearest containing recognized location). In addition, `area` is set as a political division of Kuwait, meaning if `c/Kuwait` occurs as holonym, the toponym is categorized under [[:Category:Areas of Kuwait]]. If none of these categories trigger, the fallback of `geographic and cultural area` will take effect, and the toponym will be categorized as e.g. [[:Category:Geographic and cultural areas of England]]. 3. There is currently one property to control irregular plurals of placetypes: * `plural`: If specified, its value is the plural of the placetype. Otherwise, the default pluralization algorithm in [[Module:en-utilities]] applies (which correctly pluralizes most words, including those ending in `-y`, `-ch`, `-sh`, `-x`, etc.). The value of `plural` is also used when converting a pluralized placetype into its singular equivalent; for example, since the placetype `kibbutz` has `plural = "kibbutzim"`, the placetype `kibbutzim` will be recognized as a plural and singularized to `kibbutz`. For this reason, it's occasionally necessary to specify a `plural` value even when the default pluralization algorithm works correctly, if the default singularization algorithm won't correctly reverse the pluralization (as with `pass` and other terms ending in `-ss`). 4. The following property keys relate to generating categories for entry placetypes and specifying the parents of those categories: * `class`: The general class of placetype. This is used for various purposes: (a) to categorize placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical` (note that these placetypes are not all treated alike); (b) to determine the parent category of bare placetype categories (e.g. [[:Category:Villages]] for placetype `village`); (c) to determine whether to add a parent category `political divisions of specific countries` to qualified placetype categories (e.g. [[:Category:Villages in Mali]]). The possible values are: *# `polity`: a more-or-less sovereign/independent polity, such as a country, kingdom or empire. *# `subpolity`: a non-sovereign division of a polity, above the level of an individual settlement. *# `settlement`: a city or smaller equivalent, such as a village. This also includes administrative divisions of a settlement, such as wards and barangays. *# `non-admin settlement`: similar to a settlement but without administrative or political significance, such as an unincorporated community, farm or neighborhood. *# `capital`: a settlement that is a capital. A former capital is generally still in existence, just not the capital any more. *# `natural feature`: any non-man-made feature, such as a lake, mountain, island, ocean, etc. *# `man-made structure`: a man-made feature below the level of a neighborhood, such as a house, airport, university, metro station, park or the like. *# `geographic region`: a geographic or cultural region or area that has no administrative significance. These may vary greatly in size but typically have some sort of cultural significance (possibly historical). The `former`, `ancient`, etc. qualifier has no effect on the category of these placetypes. *# `generic place`: a place that isn't further qualified into any specific subtype. * `former_type`: The class of placetype used for categorizing placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical`. The possible values are the same as for `class` but with the addition of `dependent territory` (for colonies, protectorates and the like) and `!` (ignore the historical/former/ancient/etc. qualifier; used e.g. with `fictional location` and `mythological location`). If not specified, the value of `class` is used. When a qualifier such as `former`, `ancient`, `medieval` or `historical` is encountered (specifically, those in `former_qualifiers`), it is mapped using `former_qualifiers` to the appropriate internal qualifier or qualifiers (one or both of `ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified qualifiers), which is prepended to the value of `former_type` or `class` to form a placetype whose properties are looked up to determine how to categorize the toponym in question. For example, if `medieval village` is given, we map `medieval` to `ANCIENT` and `FORMER`, and `village` to its `class` of `settlement`, and enter the placetypes `ANCIENT settlement` and `FORMER settlement` (in that order) into the list of equivalent placetypes returned by `get_placetype_equivs`. In this case, there is an entry in `placetype_data` for `ANCIENT settlement`, so its default category spec `Ancient settlements` is used as the category. If on the other hand `medieval kingdom` is given, where `kingdom` has a `class` value `polity`, we first look up `ANCIENT polity`, see there is no entry in `placetype_data` for it, and then look up `FORMER polity`, which exists and has a default category spec `Former polities`, which is used as the category. Note that if the placetype following the "former" qualifier is recognized in `placetype_data` but has no `former_type` or `class` and no fallback with a `former_type` or `class` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like `former greenhouse` is specified and we don't have an entry for `greenhouse`), we just track the occurrence and end up not categorizing. * `bare_category_parent`: This specifies the first parent category of a bare placetype category named according to the placetype in question (e.g. [[:Category:Atolls]] for placetype `atoll`, or [[:Category:Named buildings]] for placetype `named buildings!`). If not specified, the first parent category is determined by the value of `class`, using the mapping `class_to_bare_category_parent` in [[Module:category tree/topic cat/data/Places]]. * `addl_bare_category_parents`: Extra parent categories to add a bare placetype category to (see `bare_category_parent` just above). * `bare_category_breadcrumb`: Breadcrumb for bare placetype categories. Also used as the sort key of `bare_category_parent` if it is a string. * `inherently_former`: If specified and the given placetype is used as an entry placetype, act as if `former` or `ancient` (depending on the value of `inherently_former`) were prefixed to the placetype. This is for placetypes that always refer to no-longer-existing entities, such as `satrapy` and `treaty port`. The value of `inherently_former` is a list of internal qualifiers (one or more of `ANCIENT` and/or `FORMER`), just as for `former_qualifiers`, and the implementation is the same. * `cat_handler`: Handler used to generate the categories to add a given toponym to, if its entry placetype is the placetype in question. Generally the `cat_handler` function checks the holonyms specified in order to determine which category or categories to generate. For example, `district_neighborhood_cat_handler` handles placetypes `district`, `neighborhood`, `subdivision`, `suburb` and the like, and either adds the toponym to a category like `Neighborhoods of ``city`` ` (if a recognized city is given as a holonym), or otherwise a category like `Neighborhoods in ``location`` ` (for the first recognized non-city location given as a holonym, if an unrecognized city or city-like entity is given before the recognized non-city). The algorithm that runs the category handlers iterates over holonyms from left to right, running the `cat_handler` function on each holonym in turn until one or more categories are returned; see below for more specifics. (Note that countries for which e.g. a `district` is a political division do not get the corresponding category added by the `district_neighborhood_cat_handler` function but by `political_division_cat_handler`.) `cat_handler` functions are called with one argument, `data`, describing the resolved entry placetype (i.e. after resolving placetype aliases and fallbacks) and the holonym being processed. The return value should be a list of category specs (categories minus the langcode prefix, with `+++` standing for the holonym key, or the value `true`, which stands for ` ``Placetypes`` in/of ``Holonym`` `, i.e. the pluralized placetype with the appropriate preposition as specified in `placetype_data`). `data` contains the following fields: ** `entry_placetype`: the resolved entry placetype for the entry placetype being processed (i.e. it will always have an entry in `placetype_data` but may not be the original placetype given by the user); ** `holonym_placetype` and `holonym_placename`: the holonym placetype and placename being processed; ** `holonym_index`: the index of the holonym being processed, or {nil} if we're handling an overriding holonym (FIXME: we will change the overriding holonym algorithm so there will be an index even when processing overriding holonyms); ** `place_desc`: a full description of the {{tl|place}} call, as specified at the top of [[Module:place]]; ** `from_demonym`: If set, we are called from [[Module:demonym]], triggered by {{tl|demonym-adj}} or {{tl|demonym-noun}}, instead of being triggered by {{tl|place}}. * `has_neighborhoods`: If `true`, the specified placetype is city-like. This is used in the `district_neighborhood_cat_handler` to determine whether to add a category such as `Neighborhoods in ``location`` `; see the section just above on `cat_handler`. 5. The following preposition-related property keys are recognized: * `preposition`: The preposition used after this placetype when it occurs as an entry placetype. Defaults to `"in"`. * `generic_before_non_cities`: If specified, the appropriate category description handler in [[Module:category tree/topic cat/data/Places]] will recognize categories of the form ` ``Placetype`` in/of ``location`` ` for the specified placetype and preposition, if ``location`` is a non-city. This is used to generate descriptions for categories added by category handlers and by explicit category specs in the placetype data. All placetypes that specify `generic_before_non_cities` or `generic_before_cities` *MUST* also specify a value for `class` so that the category tree code can determine whether it's a political or non-political division. * `generic_before_cities`: Like `generic_before_non_cities` but for locations referring to cities. 6. The following property keys control the auto-addition of affixes when formatting holonyms of a particular placetype: * `affix_type`: If specified, add the placetype as an affix before or after holonyms of this placetype. Possible values are: *# `"pref"` (the holonym will display as `(the) placetype of Holonym`, where `the` appears when the holonym directly follows an entry placetype); *# `"Pref"` (same as `"pref"` but the placetype is capitalized; each word is capitalized if there are multiple); *# `"suf"` (the holonym will display as `Holonym placetype`); *# `"Suf"` (the holonym will display as `Holonym Placetype`, i.e. same as `"suf"` but the placetype is capitalized). * `suffix`: String to use in place of the placetype itself when the placetype is displayed as a suffix after a holonym. Note that `suffix` can be used independently of `affix_type` because the user can also request a suffix explicitly using a syntax like `adr:suf/Occitania`, which will display as `Occitania region` because the placetype `administrative region` specifies `suffix = "region"`. * `prefix`: Like `suffix` but for use when the placetype is displayed as a prefix before the holonym. * `affix`: Like `suffix` and `prefix` but for use when the placetype is displayed as an affix either before or after the holonym. If both `suffix` or `prefix` and `affix` are given for a single placetype, `suffix` or `prefix` take precedence. * `no_affix_strings`: String or list of strings that, if they occur in the holonym, suppress the addition of any affix requested using `affix_type`. Defaults to the placetype itself. For example, `autonomous okrug` specifies `affix_type = "Suf"` so that `aokr/Nenets` displays as `Nenets Autonomous Okrug`, but also specifies `no_affix_strings = "okrug"` so that `aokr/Nenets Okrug` or `aokr/Nenets Autonomous Okrug` displays as specified, without a redundant `Autonomous Okrug` added. Matching is case-insensitive but whole-word. * `display_handler`: A function of two arguments, `holonym_placetype` and `holonym_placename` (specifying a holonym). Its return value is a string specifying the display form of the holonym. 7. The following property keys control the indefinite and definite articles used before entry placetypes and/or holonyms of the specified placetype. * `entry_placetype_use_the`: Use `"the"` before this placetype when it occurs as an entry placetype. * `entry_placetype_indefinite_article`: Indefinite article used before this placetype when it occurs as an entry placetype (usually `"a"`, specifically for placetypes beginning with u- that don't take the indefinite article `"an"`). Defaults to the appropriate indefinite article (`"a"` or `"an"` depending on whether the placetype begins with a vowel). Overridden by `entry_placetype_use_the`, and unlike for most properties, does not apply to equivalent placetypes (i.e. fallbacks or those formed by removing a qualifier from the beginning); only to the exact placetype specified. * `holonym_use_the`: Use `"the"` before holonyms of this placetype. '''NOTE:''' # The `link` property must be specified on all placetypes, except those ending in `!` (category-only placetypes), which must have either `link` or `category_link` specified. # Either the `class` or `former_type` property must be specified on all placetypes not ending in `!` that do not have a fallback (if a placetype has a fallback and omits the `class` and `former_type` properties, they are taken from the fallback). An internal error will result if a placetype has no `class` or `former_type` property derivable either directly or through a fallback, if an attempt is made to categorize a former/ancient/historical/etc. entity of this placetype. # It is possible to have multiple levels of fallback (e.g. `frazione` falls back to `hamlet`, which falls back to `village`). Fallback loops will cause an internal error. All placetypes specified as fallbacks must exist in `placetype_data` or an internal error occurs. ]==] export.placetype_data = { --[=[ If you need to sort the following, do this (using Vim): 1. Make sure all full-line comments are within the { ... } table, or are moved after and on the same line as single-line entries. 2. Make sure the table uses tabs everywhere for indent, and not spaces. 3. Mark the top of the table with `ma`, go to the bottom and execute the following two lines in sequence: :'a,.s/\n/\\n/g :s/\\n\(\t\[\)/\r\1/g The first command converts every newline to a literal `\n` sequence, so the whole thing becomes a single line, while the second command restores the newlines before the beginning of each entry. The effect is to convert all entries to a single line while not losing any information. (Potentially a negative lookahead could be used to do it all in one command.) 4. Execute the following to sort: :'a,.!perl -pe 's/^(\t\[")(.*?)(".*)$/$2 @@@ $1$2$3/' | sort -f | perl -pe 's/.*? @@@ //' Note that a simple `sort -f` (where `-f` means case-insensitive) would almost work, but it would sort "hill station" before "hill" and "county borough" before "county" because the space after e.g. "hill station" sorts before the quotation mark after e.g. "hill". The above command deals with this by extracting the key, prepending it followed by ` @@@ `, sorting, and then removing key (the classic decorate-sort-undecorate pattern). 5. Put the table back to multi-line format by marking the top of the table with `ma`, going to the bottom and executing :'a,.s/\\n/\r/g Note that for some reason, in order to get a match a newline in the left side of a replacement, you must use \n, but to insert a newline in the right sode of a replacement you must use \r. ]=] ["*"] = { link = false, cat_handler = generic_place_cat_handler, }, ["administrative atoll"] = { -- Maldives link = "+w:administrative divisions of the Maldives", preposition = "of", class = "subpolity", }, ["administrative capital"] = { link = "w", fallback = "capital city", }, ["administrative center"] = { link = "w", fallback = "non-city capital", }, ["administrative centre"] = { link = "w", fallback = "administrative center", }, ["administrative county"] = { link = "w", fallback = "county", }, ["administrative district"] = { link = "w", fallback = "district", }, ["administrative headquarters"] = { link = "separately", fallback = "administrative centre", }, ["administrative region"] = { link = true, preposition = "of", suffix = "region", -- but prefix is still "administrative region (of)" fallback = "region", class = "subpolity", }, ["administrative seat"] = { link = "w", fallback = "administrative centre", }, ["administrative territory"] = { link = "separately", preposition = "of", suffix = "territory", -- but prefix is still "administrative territory (of)" fallback = "territory", class = "subpolity", }, ["administrative unit"] = { -- Grrr, it's difficult to generalize about "administrative units". In Albania, "administrative unit" is an -- official term for a city-level division of municipalities; Wikipedia renders it using the more practical term -- "commune". In Pakistan, "administrative unit" is a collective term used to refer to all the different types -- of first-level divisions (four provinces, one federal territory, and two "disputed territories", i.e. Azad -- Kashmir and Gilgit-Balistan, that are variously described). For this reason, we set no fallback, but we need -- to include this so that it can be used as a placetype for Albania, categorizing as communes. link = "w", class = "subpolity", }, ["administrative village"] = { link = "w", preposition = "of", has_neighborhoods = true, class = "settlement", }, ["aimag"] = { -- used in Mongolia, Russia and China (Inner Mongolia); in Mongolia, equivalent to a province; -- in China, equivalent to a prefecture (below a province); in Russia, equivalent to a municipal district. link = "w", fallback = "prefecture", }, ["airport"] = { link = true, class = "man-made structure", default = {true}, }, ["alliance"] = { link = true, fallback = "confederation", }, ["archipelago"] = { link = true, fallback = "island", }, ["area"] = { link = true, preposition = "of", fallback = "geographic and cultural area", -- Areas can either be administrative divisions (specifically of Kuwait) or geographic areas. Assume the former -- when categorizing 'Areas' but the latter when handling e.g. 'historical area'. class = "subpolity", former_type = "geographic region", cat_handler = district_neighborhood_cat_handler, }, ["arm"] = { link = true, preposition = "of", class = "natural feature", default = {"海"}, }, ["arrondissement"] = { link = true, preposition = "of", -- FIXME!!! Grrrrr!!! In some countries, arrondissements are divisions of cities; in others, they are divisions -- of departments or provinces. Need to conditionalize on the country for both of the following. class = "subpolity", has_neighborhoods = true, }, ["associated province"] = { link = "separately", fallback = "province", }, ["atoll"] = { -- FIXME! Atolls are administrative divisions of the Maldives but natural features elsewhere. Need to -- conditionalize `class` on the country. See also `administrative atoll`. link = true, class = "natural feature", bare_category_parent = "islands", default = {true}, }, ["autonomous city"] = { link = "w", preposition = "of", fallback = "city", has_neighborhoods = true, }, ["autonomous community"] = { -- Spain; refers to regional entities, not village-like entities, as might be expected from "community" link = true, preposition = "of", class = "subpolity", }, ["autonomous island"] = { -- Comoros; seems like an administrative atoll of the Maldives. link = "+w:autonomous islands of Comoros", preposition = "of", class = "subpolity", }, ["autonomous oblast"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "oblast", class = "subpolity", }, ["autonomous okrug"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "okrug", class = "subpolity", }, ["autonomous prefecture"] = { link = true, fallback = "prefecture", }, ["autonomous province"] = { link = "w", fallback = "province", }, ["autonomous region"] = { link = "w", preposition = "of", fallback = "administrative region", -- "administrative region" sets an affix of "region" but we want to display as "Tibet Autonomous Region" -- if the user writes 'ar:Suf/Tibet'. affix = "autonomous region", }, ["autonomous republic"] = { link = "w", preposition = "of", class = "subpolity", }, ["autonomous territorial unit"] = { -- Moldova; only two of them, one for Gagauzia and one for Transnistria. link = "w", preposition = "of", class = "subpolity", }, ["autonomous territory"] = { link = "w", fallback = "dependent territory", }, ["bailiwick"] = { -- Jersey, etc. link = true, fallback = "polity", }, ["barangay"] = { -- Philippines link = true, class = "settlement", -- Barangays are formal administrative divisions of a city rather than informal neighborhoods, but can use -- some of the properties of a neighborhood. fallback = "neighborhood", }, ["barrio"] = { -- Spanish-speaking countries; Philippines link = true, -- FIXME: Not completely correct, in some countries barrios are formal administrative divisions of a city. -- `class` will need to conditionalize on the country to be completely correct. fallback = "neighborhood", }, ["basin"] = { link = true, fallback = "lake", }, ["bay"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["beach"] = { link = true, class = "natural feature", addl_bare_category_parents = {"water"}, default = {true}, }, ["beach resort"] = { link = "w", fallback = "resort town", }, ["bishopric"] = { link = true, fallback = "polity", }, ["bodies of water!"] = { -- FIXME: This is (maybe?) a type category not a name category. There should be an option for this. We need to -- straighten out the type vs. name vs. related-to issue. category_link = "[[body of water|bodies of water]]", class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems", "water"}, }, ["borough"] = { link = true, preposition = "of", display_handler = borough_display_handler, has_neighborhoods = true, -- "former borough" could be a former settlement or a former part of a city but seems more likely to -- be a former subpolity, particularly in England. FIXME, we really need a handler to take care of this -- properly. class = "subpolity", -- Grr, some boroughs are city-like but some (e.g. in Britain) may be larger. }, ["borough seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["branch"] = { link = true, preposition = "of", fallback = "river", }, ["bridge"] = { link = true, class = "man-made structure", default = {"具名橋樑"}, }, ["building"] = { link = true, class = "man-made structure", default = {"具名建築物"}, }, ["built-up area"] = { link = "w", fallback = "area", }, ["burgh"] = { link = true, fallback = "borough", }, ["business park"] = { link = true, fallback = "park", }, ["caliphate"] = { link = true, fallback = "polity", }, ["canton"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["cape"] = { link = true, fallback = "headland", }, ["capital"] = { link = true, fallback = "capital city", }, ["capital city"] = { link = true, category_link = "[[capital city|capital cities]]: the [[seat of government|seats of government]] for a country or [[political]] [[division]] of a country", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", bare_category_parent = "cities", cat_handler = capital_city_cat_handler, default = {true}, -- The following is necessary so that e.g. [[Melbourne]] defined as {{place|en|capital city|s/Victoria|c/Australia}} -- gets categorized in the bare category [[Category:en:Melbourne]]; otherwise placetype 'capital city' wouldn't -- match against the placetype 'city' of Melbourne. fallback = "city", }, ["caplc"] = { link = "[[capital]] and [[large]]st [[city]]", plural_link = false, fallback = "capital city", }, ["captaincy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["caravan city"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"ANCIENT", "FORMER"}, }, ["castle"] = { link = true, fallback = "building", }, ["cathedral city"] = { link = true, fallback = "city", }, ["cattle station"] = { -- Australia link = true, fallback = "farm", }, ["census area"] = { link = true, affix_type = "Suf", has_neighborhoods = true, class = "non-admin settlement", }, ["census-designated place"] = { -- United States link = true, class = "non-admin settlement", }, ["census division"] = { -- Canada link = "w", preposition = "of", class = "subpolity", }, ["census town"] = { link = "w", fallback = "town", }, ["central business district"] = { link = true, fallback = "neighborhood", }, ["cercle"] = { -- Mali link = "+w:cercles of Mali", preposition = "of", class = "subpolity", }, ["ceremonial county"] = { link = true, fallback = "county", }, ["chain of islands"] = { link = "[[chain]] of [[island]]s", plural = "chains of islands", plural_link = "[[chain]]s of [[island]]s", fallback = "island", }, ["channel"] = { link = true, fallback = "strait", }, ["charter community"] = { -- Northwest Territories, Canada link = "w", fallback = "village", }, ["city"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["city-state"] = { link = true, category_link = "[[sovereign]] [[microstate]]s consisting of a single [[city]] and [[w:dependent territory|dependent territories]]", has_neighborhoods = true, class = "settlement", ["continent/*"] = {"城邦", "+++的市", "+++國家", "首都"}, default = {"城邦", "城市", "國家", "首都"}, }, ["civil parish"] = { -- Mostly England; similar to municipalities link = true, preposition = "of", affix_type = "suf", has_neighborhoods = true, class = "subpolity", }, ["claimed political division"] = { link = "[[claim]]ed [[political]] [[division]]", class = "subpolity", default = {true}, }, ["co-capital"] = { link = "[[co-]][[capital]]", fallback = "capital city", }, ["coal city"] = { link = "+w:coal town", fallback = "city", }, ["coal town"] = { link = "w", fallback = "town", }, ["collectivity"] = { link = "w", preposition = "of", -- No default; these are weird one-off governmental divisions in France (esp. for overseas collectivities) class = "subpolity", }, ["colony"] = { link = true, fallback = "dependent territory", }, ["comarca"] = { -- per Wikipedia: traditional region or local administrative division found in Portugal, Spain, and some of -- their former colonies, like Brazil, Nicaragua, and Panama. In the Valencian Community, for example, it -- sits between municipalities and provinces, something like a county or district. link = true, preposition = "of", class = "subpolity", }, ["commandery"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["commonwealth"] = { link = true, preposition = "of", -- No default; applies specifically to Puerto Rico class = "subpolity", }, ["commune"] = { link = true, fallback = "municipality", }, ["community"] = { link = true, category_link = "[[community|communities]] of all sizes", fallback = "village", }, ["community development block"] = { -- in India; appears to be similar to a rural municipality; groups several villages, unclear if there will be -- neighborhoods so I'm not setting `has_neighborhoods` for now link = "w", affix_type = "suf", no_affix_strings = "block", class = "subpolity", }, ["comune"] = { -- Italy, Switzerland link = true, fallback = "municipality", }, ["condominium"] = { link = true, fallback = "polity", }, ["confederacy"] = { link = true, fallback = "confederation", }, ["confederation"] = { link = true, fallback = "polity", }, ["constituency"] = { -- currently we have them as political divisions of Namibia but many countries have them link = true, preposition = "of", class = "subpolity", }, ["constituent country"] = { link = true, preposition = "of", class = "subpolity", }, ["constituent part"] = { link = "separately", preposition = "of", class = "subpolity", }, ["constituent republic"] = { -- Of Russia, Yugoslavia, etc. link = "separately", preposition = "of", class = "subpolity", }, ["counties and county-level cities!"] = { -- This is used when grouping counties and county-level cities under prefecture-level cities in China. category_link = "[[county|counties]] and [[county-level city|county-level cities]]", class = "subpolity", }, ["continent"] = { link = true, category_link = false, -- can't occur as a bare category class = "natural feature", default = {"大洲及大陸地區"}, }, ["continental region"] = { link = "separately", category_link = false, -- can't occur as a bare category class = "geographic region", fallback = "continent", }, ["continents and continental regions!"] = { category_link = "[[continent]]s and [[continent]]-[[level]] [[region]]s (e.g. [[Polynesia]])", class = "geographic region", }, ["council area"] = { link = true, -- in Scotland; similar to a county preposition = "of", affix_type = "suf", class = "subpolity", }, ["country"] = { link = true, class = "polity", ["continent/*"] = {true, "國家"}, default = {true}, }, ["country-like entities!"] = { category_link = "[[polity|polities]] not normally considered [[country|countries]] but treated similarly for categorization purposes; typically, [[unrecognized]] [[de-facto]] countries or [[w:dependent territory|dependent territories]]", class = "polity", }, ["county"] = { link = true, preposition = "of", display_handler = county_display_handler, class = "subpolity", }, ["county borough"] = { link = true, -- in Wales; similar to a county preposition = "of", affix_type = "suf", fallback = "borough", class = "subpolity", }, ["county seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["county town"] = { link = true, entry_placetype_use_the = true, preposition = "of", fallback = "town", has_neighborhoods = true, class = "capital", }, ["county-administered city"] = { -- In Taiwan, per Wikipedia similar to a Taiwanese township or district, which is a small city. -- NOT anything like a "county-level city" in PR China, which is a county masquerading as a city. link = "w", fallback = "city", has_neighborhoods = true, class = "settlement", }, ["county-controlled city"] = { -- Taiwan link = "w", fallback = "county-administered city", }, ["county-level city"] = { -- PR China link = "w", fallback = "prefecture-level city", }, ["crater lake"] = { link = true, fallback = "lake", }, ["creek"] = { link = true, fallback = "stream", }, ["Crown colony"] = { link = "+crown colony", fallback = "crown colony", }, ["crown colony"] = { link = true, fallback = "colony", }, ["Crown dependency"] = { link = true, fallback = "dependent territory", }, ["crown dependency"] = { link = true, fallback = "dependent territory", }, ["cultural area"] = { link = "w", fallback = "geographic and cultural area", }, ["cultural region"] = { link = "w", fallback = "geographic and cultural area", }, ["delegation"] = { -- Tunisia link = "+w:delegations of Tunisia", preposition = "of", class = "subpolity", }, ["department"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["departmental capital"] = { link = "separately", fallback = "capital city", }, ["dependency"] = { link = true, fallback = "dependent territory", }, ["dependent territory"] = { link = "w", preposition = "of", class = "subpolity", former_type = "dependent territory", bare_category_parent = "political divisions", ["country/*"] = {true}, default = {true}, }, ["desert"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems"}, default = {true}, }, ["deserted mediaeval village"] = { link = "w", fallback = "deserted medieval village", }, ["deserted medieval village"] = { link = "w", fallback = "ANCIENT settlement", }, ["direct-administered municipality"] = { -- China link = "+w:direct-administered municipalities of China", fallback = "municipality", }, ["direct-controlled municipality"] = { -- several countries link = "w", fallback = "municipality", }, ["distributary"] = { link = true, preposition = "of", fallback = "river", }, ["district"] = { link = true, preposition = "of", affix_type = "suf", -- Grrr! FIXME! Here is where we need handlers for `class`. Using similar logic to -- district_neighborhood_cat_handler, we need to check if we're below or above a city to determine if the class -- is "settlement" or "subpolity". class = "subpolity", cat_handler = district_neighborhood_cat_handler, -- No default. Countries for which districts are political divisions will get entries. }, ["districts and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Portugal. category_link = "[[district]]s and [[autonomous region]]s", class = "subpolity", }, ["districts and autonomous territorial units!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Moldova. category_link = "[[district]]s and [[w:autonomous territorial unit|autonomous territorial unit]]s", class = "subpolity", }, ["district capital"] = { link = "separately", fallback = "capital city", }, ["district headquarters"] = { link = "separately", fallback = "administrative centre", }, ["district municipality"] = { -- In Canada, a district municipality is equivalent to a rural municipality and won't have neighborhoods; in -- South Africa, district municipalities group local municipalities and hence won't have neighborhoods. link = "w", preposition = "of", affix_type = "suf", no_affix_strings = {"district", "municipality"}, fallback = "municipality", class = "subpolity", }, ["division"] = { link = true, preposition = "of", class = "subpolity", }, ["division capital"] = { link = "separately", fallback = "capital city", }, ["dome"] = { link = true, fallback = "mountain", }, ["dormant volcano"] = { link = true, fallback = "volcano", }, ["duchy"] = { link = true, fallback = "polity", }, ["emirate"] = { link = true, preposition = "of", -- FIXME: Can be subpolities (of the United Arab Emirates). fallback = "polity", }, ["empire"] = { link = true, fallback = "polity", }, ["enclave"] = { link = true, preposition = "of", -- Enclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["entity"] = { -- Bosnia and Herzegovina link = "+w:entities of Bosnia and Herzegovina", preposition = "of", class = "subpolity", }, ["escarpment"] = { link = true, fallback = "mountain", }, ["ethnographic region"] = { -- used in Lithuania link = "+w:ethnographic regions of Lithuania", fallback = "geographic and cultural area", }, ["exclave"] = { link = true, preposition = "of", -- exclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["external territory"] = { link = "separately", fallback = "dependent territory", }, ["farm"] = { link = true, class = "non-admin settlement", default = {"農牧場"}, }, ["farms and ranches!"] = { category_link = "[[farm]]s and [[ranch]]es", class = "non-admin settlement", }, ["federal city"] = { link = "w", preposition = "of", fallback = "city", }, ["federal district"] = { link = true, preposition = "of", -- Might have neighborhoods as federal districts are often cities (e.g. Mexico City) has_neighborhoods = true, class = "settlement", }, ["federal subject"] = { -- In Russia; a generic term for first-level administrative divisions (republics, oblasts, okrugs, krais, -- autonomous okrugs and autonomous oblasts). link = "w", preposition = "of", class = "subpolity", }, ["federal territory"] = { link = "w", fallback = "territory", }, ["fictional location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["First Nations reserve"] = { -- Canada link = "[[First Nations]] [[w:Indian reserve|reserve]]", -- Wikipedia uses "Indian reserve"; presumably that is the legal term fallback = "Indian reserve", class = "subpolity", }, ["fjord"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["footpath"] = { link = true, fallback = "road", }, ["forest"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems", "forestry"}, default = {true}, }, ["fort"] = { link = true, fallback = "building", }, ["fortress"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- fortresses -> fortresse, so put an entry here to ensure we singularize correctly. plural = "fortresses", fallback = "building", }, ["frazione"] = { link = "w", fallback = "hamlet", }, ["freeway"] = { link = true, fallback = "road", }, ["French prefecture"] = { link = "[[w:prefectures in France|prefecture]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["geographic and cultural area"] = { link = "+w:cultural area", -- `generic_before_non_cities` is used when generating the category description of categories of the format -- `Geographic and cultural areas of PLACE`. `preposition` is used when generating {{place}} description and -- categories for any placetype that falls back to `geographic and cultural area`. generic_before_non_cities = "of", preposition = "of", class = "geographic region", bare_category_parent = "places", ["country/*"] = {true}, ["constituent country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["geographic area"] = { link = "+w:geographic region", fallback = "geographic and cultural area", }, ["geographic region"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical area"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical region"] = { link = "w", fallback = "geographic and cultural area", }, ["geopolitical zone"] = { -- Nigeria link = true, preposition = "of", class = "subpolity", }, ["gewog"] = { -- Bhutan link = true, preposition = "of", class = "subpolity", }, ["ghost town"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", bare_category_parent = "former settlements", cat_handler = city_type_cat_handler, default = {true}, }, ["glen"] = { link = true, fallback = "valley", }, ["governorate"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["greater administrative region"] = { -- China (former division) link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["gromada"] = { -- Poland (former division) link = "w", preposition = "of", affix_type = "Pref", class = "subpolity", inherently_former = {"FORMER"}, }, ["group of islands"] = { link = "[[group]] of [[island]]s", plural = "groups of islands", plural_link = "[[group]]s of [[island]]s", fallback = "island group", }, ["gulf"] = { link = true, preposition = "of", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["hamlet"] = { link = true, fallback = "village", }, ["harbor city"] = { link = "separately", fallback = "city", }, ["harbor town"] = { link = "separately", fallback = "town", }, ["harbour city"] = { link = "separately", fallback = "city", }, ["harbour town"] = { link = "separately", fallback = "town", }, ["headland"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["headquarters"] = { link = "w", fallback = "administrative centre", }, ["heath"] = { link = true, fallback = "moor", }, ["hemisphere"] = { link = true, entry_placetype_use_the = true, fallback = "continental region", }, ["highway"] = { link = true, fallback = "road", }, ["hill"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["hill station"] = { link = "w", fallback = "town", }, ["hill town"] = { link = "w", fallback = "town", }, ["historic region"] = { -- provided only for the link link = "+w:historical region", fallback = "FORMER geographic region", }, ["historical county"] = { -- needed for historical counties of England/etc. link = "+w:historic county", fallback = "FORMER subpolity", }, ["historical region"] = { -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["home rule city"] = { link = "w", fallback = "city", }, ["home rule municipality"] = { link = "w", fallback = "municipality", }, ["hot spring"] = { link = true, fallback = "spring", }, ["house"] = { link = true, fallback = "building", }, ["housing estate"] = { -- not the same as a housing project (i.e. public housing) link = true, -- not exactly the case but approximately fallback = "neighborhood", }, ["hromada"] = { -- Ukraine link = "w", disallow_in_entries = "Use placetype 'urban hromada', 'rural hromada' or 'settlement hromada' in place of bare 'hromada'", disallow_in_holonyms = "Use placetype 'urban hromada'/'uhrom', 'rural hromada'/'rhrom' or 'settlement hromada'/'shrom' in place of bare 'hromada'", preposition = "of", affix_type = "suf", class = "subpolity", }, ["inactive volcano"] = { link = "w", fallback = "dormant volcano", }, ["independent city"] = { link = true, fallback = "city", }, ["independent town"] = { link = "+independent city", fallback = "town", }, ["Indian reservation"] = { link = "w", -- In the US. Also known as "Native American reservation" or "domestic dependent nation", and the reservations -- themselves often use the term "nation" in their official name (e.g. the "Navajo Nation"). But Wikipedia puts -- the article at [[w:Indian reservation]] and uses that term when describing e.g. what the Navajo Nation is, -- so this must still be the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["Indian reserve"] = { link = "w", -- In Canada. "First Nations reserve" sounds more modern/PC but Wikipedia uses "Indian reserve"; presumably that -- is still the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["inland sea"] = { -- note, we also have 'inland' as a qualifier link = true, fallback = "sea", }, ["inner city area"] = { link = "[[inner city]] [[area]]", fallback = "neighborhood", }, ["island"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["island country"] = { -- FIXME: The following should map to both 'island' and 'country'. link = "w", fallback = "country", }, ["island group"] = { link = "separately", fallback = "island", }, ["island municipality"] = { link = "w", fallback = "municipality", }, ["islet"] = { link = "w", fallback = "island", }, ["Israeli settlement"] = { link = "w", class = "settlement", default = {true}, }, ["judicial capital"] = { link = "w", fallback = "capital city", }, ["khanate"] = { link = true, fallback = "polity", }, ["kibbutz"] = { link = true, plural = "kibbutzim", class = "non-admin settlement", default = {true}, }, ["kingdom"] = { link = true, fallback = "monarchy", }, ["krai"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["lake"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["landforms!"] = { category_link = "[[landform]]s", bare_category_parent = "places", addl_bare_category_parents = {"地球"}, }, ["largest city"] = { link = "[[large]]st [[city]]", entry_placetype_use_the = true, fallback = "city", has_neighborhoods = true, }, ["league"] = { link = true, fallback = "confederation", }, ["legislative capital"] = { link = "separately", fallback = "capital city", }, ["library"] = { link = true, fallback = "building", }, ["lieutenancy area"] = { -- used in the United Kingdom; per Wikipedia: -- In England, lieutenancy areas are colloquially known as the ceremonial counties, although this phrase does -- not appear in any legislation referring to them. The lieutenancy areas of Scotland are subdivisions of -- Scotland that are more or less based on the counties of Scotland, making use of the major cities as separate -- entities.[2] In Wales, the lieutenancy areas are known as the preserved counties of Wales and are based on -- those used for lieutenancy and local government between 1974 and 1996. The lieutenancy areas of Northern -- Ireland correspond to the six counties and two former county boroughs.[3] link = "w", fallback = "ceremonial county", }, ["local authority district"] = { link = "w", fallback = "local government district", }, ["local government area"] = { -- Australia link = "w", preposition = "of", class = "subpolity", }, ["local council"] = { -- Malta; similar to municipalities link = "+w:local councils of Malta", preposition = "of", fallback = "municipality", }, ["local government district"] = { link = "w", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local government district with borough status"] = { link = "[[w:local government district|local government district]] with [[w:borough status|borough status]]", plural = "local government districts with borough status", plural_link = "[[w:local government district|local government districts]] with [[w:borough status|borough status]]", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local urban district"] = { link = "w", fallback = "unincorporated community", }, ["locality"] = { link = "+w:locality (settlement)", -- not necessarily true, but usually is the case fallback = "village", }, ["London borough"] = { link = "w", preposition = "of", affix_type = "pref", affix = "borough", fallback = "local government district with borough status", has_neighborhoods = true, }, ["macroregion"] = { link = true, fallback = "region", }, ["man-made structures!"] = { category_link = "[[w:geographical feature#Engineered constructs|man-made structures]] such as [[airport]]s, [[university|universities]] and [[metro station]]s", bare_category_parent = "places", }, ["manor"] = { -- FIXME: or is this more like a farm? link = true, fallback = "building", }, ["marginal sea"] = { link = true, preposition = "of", fallback = "sea", }, ["market city"] = { link = "+market town", fallback = "city", }, ["market town"] = { link = true, fallback = "town", }, ["massif"] = { link = true, fallback = "mountain", }, ["megacity"] = { link = true, fallback = "city", }, ["metro station"] = { link = true, class = "man-made structure", }, ["metropolitan borough"] = { link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"borough", "city"}, fallback = "local government district", has_neighborhoods = true, }, ["metropolitan city"] = { -- These exist e.g. in Italy and are more like municipalities or even provinces than cities. link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"metropolitan", "city"}, class = "subpolity", }, ["metropolitan county"] = { link = true, fallback = "county", }, ["metropolitan municipality"] = { -- In South Africa, metropolitan municipalities group local municipalities and are like districts, between -- provinces and municipalities. -- In Turkey, metropolitan municipalities are provinces-level. link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"metropolitan", "municipality"}, fallback = "municipality", class = "subpolity", }, ["microdistrict"] = { -- residential complex in post-Soviet states link = true, fallback = "neighborhood", }, ["micronations!"] = { -- FIXME, merge with microstate category_link = "[[micronation]]s", bare_category_parent = "countries", }, ["microstate"] = { link = true, fallback = "country", }, ["military base"] = { link = "w", class = "settlement", -- or "man-made structure"? default = {true}, }, ["minster town"] = { -- England link = "separately", fallback = "town", }, ["monarchy"] = { link = true, fallback = "polity", }, ["moor"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems"}, default = {true}, }, ["moorland"] = { link = true, fallback = "moor", }, ["motorway"] = { link = true, fallback = "road", }, ["mountain"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["mountain indigenous district"] = { -- Taiwan link = "+w:district (Taiwan)", fallback = "district", }, ["mountain indigenous township"] = { -- Taiwan link = "+w:township (Taiwan)", fallback = "township", }, ["mountain pass"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "mountain passes", class = "natural feature", addl_bare_category_parents = {"mountains"}, default = {true}, }, ["mountain range"] = { link = true, fallback = "mountain", }, ["mountainous region"] = { link = "separately", fallback = "region", }, ["mukim"] = { -- Malaysia, Brunei, Indonesia, Singapore link = true, preposition = "of", class = "subpolity", }, ["municipal district"] = { link = "w", -- meaning varies depending on the country; for now, assume no neighborhoods. -- FIXME: has_neighborhoods might have to be a function that looks at the containing holonyms. preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "municipality", }, ["municipality"] = { link = true, preposition = "of", has_neighborhoods = true, class = "subpolity", }, ["municipality with city status"] = { link = "[[municipality]] with [[w:city status|city status]]", plural = "municipalities with city status", plural_link = "[[municipality|municipalities]] with [[w:city status|city status]]", fallback = "municipality", }, ["museum"] = { link = true, fallback = "building", }, ["mythological location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["named bridges!"] = { category_link = "notable [[bridge]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"bridges"}, }, ["named buildings!"] = { category_link = "notable [[house]]s, [[library|libraries]] and other [[building]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"buildings"}, }, ["named roads!"] = { category_link = "notable [[road]]s, [[highway]]s, [[trail]]s and similar linear structures", bare_category_parent = "man-made structures", addl_bare_category_parents = {"roads"}, }, ["national capital"] = { link = "w", fallback = "capital city", }, ["national park"] = { link = true, fallback = "park", }, ["natural features!"] = { category_link = "[[w:geographical feature#Natural features|natural features]] such as [[lake]]s, [[mountain]]s, [[island]]s and [[ocean]]s", bare_category_parent = "places", }, ["neighborhood"] = { -- The majority of the properties here apply to both `neighborhoods` and `neighbourhoods`; the choice of which -- one to use is made by district_neighborhood_cat_handler() based on the value of `british_spelling` for the -- location (city, political division, etc.) of the holonym that follows the word "neighbo(u)hoods" in the -- category name. It does *NOT* depend on whether the {{place}} call uses "neighborhoods" or "neighbourhoods". -- (In general it can't, because other things like "urban areas", "districts", "subdivisions" and the like also -- categorize as neighbo(u)rhoods.) link = true, -- See below. These are used by category handlers in [[Module:category tree/topic cat/data/Places]]. generic_before_non_cities = "in", generic_before_cities = "of", -- The following text is suitable for the top-level description of a neighborhood as well as categories of the -- form `Neighborhoods in POLDIV` e.g. `Neighborhoods in Illinois, USA` but not for categories of the form -- `Neighborhoods of Chicago`, where we'd get "... and other subportions of [[city|cities]] of [[Chicago]]". category_link = "[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighborhood]]s, [[district]]s and other subportions", -- NOTE: This setting is needed for administrative divisions like barangays that fall back to `neighborhood`, -- when set in [[Module:place/locations]] for a specific country (e.g. the Philippines). The above settings -- for `generic_before_non_cities` and `generic_before_cities` are used by category handlers in -- [[Module:category tree/topic cat/data/Places]] for `Neighborhoods in POLDIV` and `Neighborhoods of CITY` -- categories. In fact, district_neighborhood_cat_handler() does not currently pay attention to them, but -- generates "of" before cities and "in" before non-cities regardless. (FIXME: We should change that.) preposition = "of", class = "non-admin settlement", cat_handler = district_neighborhood_cat_handler, }, ["neighbourhood"] = { link = true, category_link = "[[neighbourhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighbourhood]]s, [[district]]s and other subportions", fallback = "neighborhood", }, ["new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", preposition = "in", class = "subpolity", --? }, ["new town"] = { link = true, fallback = "town", }, ["non-city capital"] = { link = "[[capital]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", cat_handler = function(data) return capital_city_cat_handler(data, "non-city") end, -- FIXME, do we need the following? default = {true}, }, ["non-metropolitan county"] = { link = "w", fallback = "county", }, ["non-metropolitan district"] = { link = "w", fallback = "local government district", }, ["non-sovereign kingdom"] = { -- especially in Africa and Asia link = "+w:non-sovereign monarchy", generic_before_non_cities = "in", class = "subpolity", ["country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["non-sovereign monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["oblast"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["oblasts and autonomous republics!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Ukraine. category_link = "[[oblast]]s and [[w:autonomous republic|autonomous republic]]s", class = "subpolity", }, ["ocean"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"seas", "bodies of water"}, default = {true}, }, ["okrug"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["overseas collectivity"] = { link = "w", fallback = "collectivity", }, ["overseas department"] = { link = "w", fallback = "department", }, ["overseas territory"] = { link = "w", fallback = "dependent territory", }, ["parish"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["parish municipality"] = { -- in Quebec, often similar to a rural village; the famous [[Saint-Louis-du-Ha! Ha!]] is one of them. link = "+w:parish municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, }, ["parish seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", class = "capital", has_neighborhoods = true, }, ["park"] = { link = true, class = "man-made structure", default = {true}, }, ["pass"] = { link = "+mountain pass", -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "passes", fallback = "mountain pass", }, ["path"] = { link = true, fallback = "road", }, ["peak"] = { link = true, fallback = "mountain", }, ["peninsula"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["periphery"] = { link = true, preposition = "of", class = "subpolity", }, ["places!"] = { generic_before_non_cities = "in", generic_before_cities = "in", class = "generic place", category_link = "[[place]]s of all sorts", -- `category_link_top_level` control the description used in the top-level [[Category:Places]] and -- language-specific variants such as [[Category:en:Places]]. The actual text for a language-spefic variant is -- "{{{langname}}} names of [[geographical]] [[place]]s of all sorts; [[toponym]]s." where the "names of" -- portion is automatically generated by the appropriate handler in -- [[Module:category tree/topic cat/data/Places]]. category_link_top_level = "[[geographical]] [[place]]s of all sorts; [[toponym]]s", bare_category_parent = "names", }, ["planned community"] = { -- Include this so we don't categorize 'planned community' into villages, as 'community' does. link = true, class = "settlement", has_neighborhoods = true, }, ["plateau"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, -- FIXME: Should generate both "Plateaus" and the appropriate 'geographic and cultural area' category }, ["Polish colony"] = { link = "[[w:colony (Poland)|colony]]", affix_type = "suf", affix = "colony", fallback = "village", has_neighborhoods = true, }, ["political divisions!"] = { category_link = "[[political]] [[division]]s and [[subdivision]]s, such as [[state]]s, [[province]]s, [[county|counties]] or [[district]]s", bare_category_parent = "places", }, ["polity"] = { link = true, category_link = "[[independent]] or [[semi-]][[independent]] [[polity|polities]]", class = "polity", bare_category_parent = "places", default = {true}, }, ["populated place"] = { link = "+w:populated place", -- not necessarily true, but usually is the case fallback = "village", }, ["port"] = { link = true, class = "man-made structure", default = {true}, }, ["port city"] = { -- FIXME: should categorize into "Ports" as well as "Cities" link = true, fallback = "city", }, ["port town"] = { -- FIXME: should categorize into "Ports" as well as "Towns" link = "w", fallback = "town", }, ["prefecture"] = { -- FIXME! `prefecture` is like a county in Japan and elsewhere but a department capital city in France. -- May need `has_neighborhoods` to be a function. link = true, preposition = "of", display_handler = prefecture_display_handler, class = "subpolity", }, ["prefecture-level city"] = { -- China; they are huge entities with a central city; not cities themselves. link = "w", preposition = "of", class = "subpolity", }, ["preserved county"] = { -- In Wales; they are former counties enshrined in law; there are 8 of them and each consists of one or more -- "principal areas" (styled as "counties" or "county boroughs"), of which there are 22. link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["primary area"] = { -- a grouping of "districts" (neighborhoods) in Gothenburg, Sweden link = "+w:sv:primärområde", fallback = "neighborhood", }, ["principality"] = { link = true, fallback = "monarchy", }, ["promontory"] = { link = true, fallback = "headland", }, ["protectorate"] = { link = true, fallback = "dependent territory", }, ["province"] = { link = true, preposition = "of", display_handler = province_display_handler, class = "subpolity", }, ["provinces and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case China. category_link = "[[province]]s and [[autonomous region]]s", class = "subpolity", }, ["provinces and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Canada and Pakistan. category_link = "[[province]]s and [[territory|territories]]", class = "subpolity", }, ["provincial capital"] = { link = "separately", fallback = "capital city", }, ["raion"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["ranch"] = { link = true, fallback = "farm", }, ["range"] = { -- FIXME: Where is this used? Is it a mountain range? link = true, holonym_use_the = true, class = "natural feature", }, ["regency"] = { link = true, preposition = "of", class = "subpolity", }, ["region"] = { link = true, preposition = "of", -- If 'region' isn't a specific administrative division, fall back to 'geographic and cultural area' fallback = "geographic and cultural area", -- "former region" is a subpolity but traditional/historic(al)/ancient/medieval/etc. is a geographic region class = "geographic region", }, ["regional capital"] = { link = "separately", fallback = "capital city", }, ["regional county municipality"] = { -- Quebec link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"municipality", "county"}, fallback = "municipality", }, ["regional district"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "district", }, ["regional municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", }, ["regional unit"] = { link = "w", preposition = "of", affix_type = "suf", class = "subpolity", }, ["registration county"] = { -- Used in Scotland for land registration purposes; formerly used in England, Wales and Ireland for statistical -- purposes (registration of births, deaths and marriages, and for the output of census information). link = "w", fallback = "county", }, ["republic"] = { -- Of Russia, Yugoslavia, etc. "Republics" in general are sovereign but we use "country" in that case. link = true, fallback = "constituent republic", }, ["research base"] = { link = "+w:research station", fallback = "research station", }, ["research station"] = { link = "w", class = "non-admin settlement", -- or "man-made structure"? default = {true}, }, ["reservoir"] = { link = true, fallback = "lake", }, ["residential area"] = { link = "separately", fallback = "neighborhood", }, ["resort city"] = { link = "w", fallback = "city", }, ["resort town"] = { link = "w", fallback = "town", }, ["river"] = { link = true, generic_before_non_cities = "in", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, cat_handler = city_type_cat_handler, ["continent/*"] = {true}, default = {true}, }, ["river island"] = { link = "w", fallback = "island", }, ["road"] = { link = true, class = "man-made structure", default = {"具名道路"}, }, ["Roman province"] = { -- FIXME! Eliminate this in favor of 'former province|emp/Roman Empire' link = "w", default = {"羅馬帝國行省"}, class = "subpolity", }, ["royal borough"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = {"royal", "borough"}, fallback = "local government district with borough status", has_neighborhoods = true, }, ["royal burgh"] = { link = true, fallback = "borough", }, ["royal capital"] = { link = "w", fallback = "capital city", }, ["rural committee"] = { -- Hong Kong; a group of villages link = "w", affix_type = "Suf", has_neighborhoods = true, class = "settlement", }, ["rural community"] = { -- New Brunswick link = "+w:list of municipalities in New_Brunswick#Rural communities", fallback = "municipality", }, ["rural hromada"] = { link = "[[rural]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["rural municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", has_neighborhoods = true, --? }, ["rural township"] = { -- Taiwan link = "+w:rural township (Taiwan)", fallback = "township", }, ["sanctuary"] = { link = true, fallback = "temple", }, ["satrapy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["sea"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["seaport"] = { link = true, fallback = "port", }, ["seat"] = { link = true, fallback = "administrative centre", }, ["self-administered area"] = { -- Myanmar (groups self-administered divisions and zones) link = "+w:self-administered zone", preposition = "of", class = "subpolity", }, ["self-administered division"] = { -- Myanmar (only one of them: Wa Self-Administered Division) link = "w", fallback = "self-administered area", }, ["self-administered zone"] = { -- Myanmar (five of them) link = "w", fallback = "self-administered area", }, ["separatist state"] = { link = "separately", fallback = "unrecognized country", }, ["settlement"] = { link = true, category_link = "[[settlement]]s such as [[city|cities]], [[village]]s and [[farm]]s", bare_category_parent = "places", -- not necessarily true, but usually is the case fallback = "village", }, ["settlement hromada"] = { link = "[[w:Populated places in Ukraine#Rural settlements|settlement]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["sheading"] = { -- Isle of Man link = true, fallback = "district", }, ["sheep station"] = { -- Australia link = true, fallback = "farm", }, ["shire"] = { link = true, fallback = "county", }, ["shire county"] = { link = "w", fallback = "county", }, ["shire town"] = { link = true, fallback = "county seat", }, ["ski resort city"] = { link = "[[ski resort]] [[city]]", fallback = "city", }, ["ski resort town"] = { link = "[[ski resort]] [[town]]", fallback = "town", }, ["spa city"] = { link = "+w:spa town", fallback = "city", }, ["spa town"] = { link = "w", fallback = "town", }, ["space station"] = { link = true, fallback = "research station", }, ["special administrative region"] = { -- in China; in practice they are city-like (Hong Kong, Macau); also [[Oecusse]] in East Timor is formally a -- "special administrative region"; North Korea had one such region planned (Sinuiju) but abandoned; Indonesia -- has similar "special regions" of Jakarta, Yogyakarta and Aceh; and South Sudan has three "special -- administrative areas" link = "+w:special administrative regions of China", preposition = "of", class = "subpolity", has_neighborhoods = true, --? -- no suffix since places in Hong Kong or Macau are listed without China, except Hong Kong and Macau themselves -- they also contain regions (or areas), e.g. [[Kowloon]], so it would be confusing suffix = "", }, ["special collectivity"] = { link = "w", fallback = "collectivity", }, ["special municipality"] = { -- formerly linked to the Taiwan article but there are also special municipalities of the Netherlands link = "w", fallback = "municipality", }, ["special ward"] = { -- Tokyo link = true, fallback = "municipality", }, ["spit"] = { link = true, fallback = "peninsula", }, ["spring"] = { link = true, class = "natural feature", default = {true}, }, ["star"] = { link = true, class = "natural feature", default = {true}, }, ["state"] = { link = true, preposition = "of", class = "subpolity", -- 'former/historical state' could refer either to a state of a country (a division) or a state = sovereign -- entity. The latter appears more common (e.g. in various "ancient states" of East Asia). former_type = "polity", }, ["states and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Australia. category_link = "[[state]]s and [[territory|territories]]", class = "subpolity", }, ["states and union territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case India. category_link = "[[state]]s and [[union territory|union territories]]", class = "subpolity", }, ["state capital"] = { link = true, fallback = "capital city", }, ["state park"] = { link = true, fallback = "park", }, ["state-level new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", fallback = "new area", }, ["statistical region"] = { -- Slovenia link = true, fallback = "administrative region", }, ["statutory city"] = { link = "w", fallback = "city", }, ["statutory town"] = { link = "w", fallback = "town", }, ["strait"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["stream"] = { link = true, fallback = "river", }, ["street"] = { link = true, fallback = "road", }, ["strip"] = { link = true, fallback = "geographic region", }, ["strip of land"] = { link = "[[strip]] of [[land]]", plural = "strips of land", plural_link = "[[strip]]s of [[land]]", fallback = "geographic region", }, ["sub-metropolitan city"] = { link = "+w:List of cities in Nepal#Sub-metropolitan cities", fallback = "city", }, ["sub-prefectural city"] = { link = "w", fallback = "subprovincial city", }, ["subdistrict"] = { link = true, preposition = "of", has_neighborhoods = true, --? -- FIXME: subdistricts can be neighborhood-like (of Jakarta) or larger (in China); need a handler class = "subpolity", default = {true}, }, ["subdivision"] = { link = true, preposition = "of", affix_type = "suf", -- FIXME: subdivisions can be neighborhood-like or larger; need a handler class = "subpolity", cat_handler = district_neighborhood_cat_handler, }, ["submerged ghost town"] = { -- FIXME: Consider just having "submerged" as a qualifier. link = "[[submerged]] [[ghost town]]", fallback = "ghost town", }, ["subnational kingdom"] = { link = "+w:subnational monarchy", fallback = "non-sovereign kingdom", }, ["subnational monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["subprefecture"] = { link = true, affix_type = "suf", preposition = "of", class = "subpolity", }, ["subprovince"] = { link = true, preposition = "of", class = "subpolity", }, ["subprovincial city"] = { link = "w", -- China; special status given to certain prefecture-level cities fallback = "prefecture-level city", }, ["subprovincial district"] = { link = "w", -- China; special status given to Binhai New Area and Pudong New Area, which are county-level districts preposition = "of", class = "subpolity", }, ["subregion"] = { link = true, fallback = "geographic region", }, ["suburb"] = { link = true, -- The following text is suitable for the top-level description of a suburb as well as categories of the form -- 'Suburbs in POLDIV' e.g. 'Suburbs in Illinois, USA' but not for categories of the form 'Suburbs of Chicago', -- where we'd get "[[suburb]]s of [[city|cities]] of [[Chicago]]". category_link = "[[suburb]]s of [[city|cities]]", category_link_before_city = "[[suburb]]s", -- See comments under "neighborhood" for the following three settings. They are used by -- [[Module:category tree/topic cat/data/Places]] for generating the text of 'Suburbs in/of PLACE' categories -- but currently ignored by district_neighborhood_cat_handler (which actually generates the categories for a -- given page), which hardcodes "in" for non-cities and "of" for cities. (FIXME: Change this.) generic_before_non_cities = "in", generic_before_cities = "of", preposition = "of", has_neighborhoods = true, --? class = "non-admin settlement", --? cat_handler = district_neighborhood_cat_handler, }, ["suburban area"] = { link = "w", fallback = "suburb", }, ["subway station"] = { link = "w", fallback = "metro station", }, ["sum"] = { -- In China, Mongolia, Russia; something like a county in Mongolia but a township in China (Inner Mongolia), -- and equivalent to a [[selsoviet]] in the parts of Russia where it's in use (a rural council, below a raion). link = "+w:sum (administrative division)", -- This fallback is somewha arbitrary. We could use "county" but that has a display handler -- which we don't want to be active (FIXME: If the display handler would be active, that's a bug). fallback = "division", }, ["supercontinent"] = { link = true, fallback = "continent", }, ["tehsil"] = { link = true, affix_type = "suf", no_affix_strings = {"tehsil", "tahsil"}, class = "subpolity", }, ["temple"] = { link = true, fallback = "building", }, ["territorial authority"] = { link = "w", fallback = "district", }, ["territory"] = { link = true, preposition = "of", class = "subpolity", }, ["theme"] = { link = "+w:theme (Byzantine district)", preposition = "of", class = "subpolity", }, ["town"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["town with bystatus"] = { -- can't use templates in links currently link = "[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]", plural = "towns with bystatus", plural_link = "[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]", fallback = "town", }, ["township"] = { link = true, has_neighborhoods = true, class = "settlement", --? default = {true}, }, ["township municipality"] = { -- Quebec link = "+w:township municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["traditional county"] = { link = true, fallback = "county", }, ["traditional region"] = { -- FIXME: Verify this works. Same for 'historic(al) region'. -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["trail"] = { link = true, fallback = "road", }, ["treaty port"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"FORMER"}, }, ["tributary"] = { link = true, preposition = "of", fallback = "river", }, ["underground station"] = { link = "w", fallback = "metro station", }, ["unincorporated area"] = { link = "w", -- I don't know if this fallback makes sense everywhere. fallback = "unincorporated community", }, ["unincorporated community"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", }, ["unincorporated territory"] = { link = "w", fallback = "territory", }, ["union territory"] = { -- India link = true, preposition = "of", entry_placetype_indefinite_article = "a", class = "subpolity", }, ["unitary authority"] = { -- UK, New Zealand link = true, entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["unitary district"] = { link = "w", entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["united township municipality"] = { -- Quebec link = "+w:united township municipality (Quebec)", entry_placetype_indefinite_article = "a", fallback = "township municipality", has_neighborhoods = true, --? }, ["university"] = { link = true, entry_placetype_indefinite_article = "a", class = "man-made structure", default = {true}, }, ["unrecognised country"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized and nearly unrecognized countries!"] = { category_link = "[[de facto]] [[independent]] [[state]]s with little or no {{w|international recognition}}", bare_category_parent = "country-like entities", }, ["unrecognized country"] = { link = "w", class = "polity", default = {"未受國際普遍承認國家"}, }, ["unrecognised state"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized state"] = { link = "w", fallback = "unrecognized country", }, ["urban area"] = { link = "separately", fallback = "neighborhood", }, ["urban hromada"] = { link = "[[urban]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["urban service area"] = { -- A strange beast existing in Alberta; technically a type of hamlet but in practice used for much larger -- cities and treated equivalent to a city. (There are only two of them, [[Fort McMurray]] and [[Sherwood Park]]). link = "w", fallback = "city", }, ["urban township"] = { link = "w", fallback = "township", }, ["urban-type settlement"] = { -- appears to be a particular type of small urban settlement in post-Soviet states, -- had an administrative function. link = "w", fallback = "town", }, ["valley"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "water"}, default = {true}, }, ["viceroyalty"] = { -- in essence, a type of colony link = true, fallback = "dependent territory", }, ["village"] = { link = true, generic_before_non_cities = "in", category_link = "[[village]]s, [[hamlet]]s, and other small [[community|communities]] and [[settlement]]s", class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["village development committee"] = { -- former administrative structure in Nepal; also exists in India but not as a formal unit link = "+w:village development committee (Nepal)", inherently_former = {"FORMER"}, fallback = "village", }, ["village municipality"] = { -- Quebec link = "+w:village municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["voivodeship"] = { -- Poland link = true, display_handler = voivodeship_display_handler, preposition = "of", class = "subpolity", }, ["volcano"] = { link = true, plural = "volcanoes", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true, "山"}, }, ["ward"] = { link = true, class = "settlement", -- Wards are formal administrative divisions of a city but have some properties of neighborhoods. fallback = "neighborhood", }, ["watercourse"] = { link = true, fallback = "channel", }, ["Welsh community"] = { -- Wales link = "[[w:community (Wales)|community]]", preposition = "of", affix_type = "suf", affix = "community", has_neighborhoods = true, class = "settlement", }, ["zone"] = { -- administrative division of Ethiopia, Qatar, Nepal, India link = "+w:zone#Place names", preposition = "of", class = "subpolity", }, ---------------------------------------------------------------------------------------------- -- Categories for former places -- ---------------------------------------------------------------------------------------------- ["ANCIENT capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", -- FIXME: Consider removing 'ancient settlements' here. Ancient capitals, like former capitals, often still -- exist but just aren't the capital any more. Maybe we should have an 'Ancient capitals' category. default = {"古代定居點", "歷史首府"}, }, ["ANCIENT non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "ANCIENT settlement", }, ["ANCIENT settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"古代定居點"}, }, ["ancient settlements!"] = { category_link = "former [[city|cities]], [[town]]s and [[village]]s that existed in [[antiquity]]", bare_category_parent = "former settlements", }, ["FORMER capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", default = {"歷史首府"}, }, ["former capitals!"] = { category_link = "former [[capital]] [[city|cities]] and [[town]]s", bare_category_parent = "settlements", }, ["former counties and county-level cities!"] = { -- For categorizing former counties and county-level cities of China category_link = "no-longer existing [[county|counties]] and [[county-level city|county-level cities]]", bare_category_breadcrumb = "counties and county-level cities", bare_category_parent = "former political divisions", }, ["FORMER county"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["FORMER county-level city"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["former countries and country-like entities!"] = { category_link = "[[country|countries]] and similar [[polity|polities]] that no longer exist", bare_category_breadcrumb = "countries and country-like entities", bare_category_parent = "former polities", }, ["FORMER country"] = { link = false, class = "polity", default = {"Former countries and country-like entities"}, }, ["former dependent territories!"] = { category_link = "[[w:dependent territory|dependent territories]] (colonies, dependencies, protectorates, etc.) that no longer exist", bare_category_breadcrumb = "dependent territories", bare_category_parent = "former political divisions", }, ["FORMER dependent territory"] = { link = false, preposition = "of", class = "subpolity", default = {"Former dependent territories"}, }, ["former districts!"] = { -- For categorizing former districts of China category_link = "no-longer-existing [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "former political divisions", }, ["FORMER district"] = { -- For categorizing former districts of China link = false, fallback = "FORMER subpolity", }, ["FORMER geographic region"] = { link = false, fallback = "geographic and cultural area", }, ["FORMER man-made structure"] = { link = false, class = "man-made structure", default = {"Former man-made structures"}, }, ["former man-made structures!"] = { category_link = "man-made structures such as [[airport]]s and [[park]]s that no longer exist", bare_category_breadcrumb = "man-made structures", bare_category_parent = "former places", }, ["former municipalities!"] = { -- For categorizing former municipalities of the Netherlands category_link = "no-longer-existing [[municipality|municipalities]]", bare_category_breadcrumb = "municipalities", bare_category_parent = "former political divisions", }, ["FORMER municipality"] = { -- For categorizing former municipalities of the Netherlands link = false, fallback = "FORMER subpolity", }, ["FORMER natural feature"] = { link = false, class = "natural feature", default = {"Former natural features"}, }, ["former natural features!"] = { category_link = "natural features such as [[lake]]s, [[river]]s and [[island]]s that no longer exist", bare_category_breadcrumb = "natural features", bare_category_parent = "former places", }, ["FORMER non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "FORMER settlement", }, ["former places!"] = { category_link = "[[place]]s of all sorts that no longer exist", bare_category_breadcrumb = "former", bare_category_parent = "places", }, ["former political divisions!"] = { category_link = "[[political]] [[division]]s (states, provinces, counties, etc.) that no longer exist", bare_category_breadcrumb = "political divisions", bare_category_parent = "former places", }, ["former polities!"] = { category_link = "[[polity|polities]] (countries, kingdoms, empires, etc.) that no longer exist", bare_category_breadcrumb = "polities", bare_category_parent = "former places", }, ["FORMER polity"] = { link = false, class = "polity", default = {"Former polities"}, }, ["former prefectures!"] = { -- For categorizing former prefectures of China category_link = "no-longer-existing [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "former political divisions", }, ["FORMER prefecture"] = { -- For categorizing former prefectures of China link = false, fallback = "FORMER subpolity", }, ["former provinces!"] = { -- For categorizing former provinces of China, etc. category_link = "no-longer-existing [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "former political divisions", }, ["FORMER province"] = { -- For categorizing ancient/historical/former provinces of the Roman Empire link = false, fallback = "FORMER subpolity", }, ["former region"] = { -- A former region is considered a former political division, but not a 'historical/traditional/etc.' region. link = "separately", preposition = "of", inherently_former = {"FORMER"}, class = "subpolity", }, ["FORMER settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"Former settlements"}, }, ["former settlements!"] = { category_link = "[[city|cities]], [[town]]s and [[village]]s that no longer exist or have been merged or reclassified", bare_category_breadcrumb = "settlements", bare_category_parent = "former political divisions", }, ["FORMER subpolity"] = { link = false, preposition = "of", class = "subpolity", default = {"Former political divisions"}, }, ---------------------------------------------------------------------------------------------- -- form-of categories -- ---------------------------------------------------------------------------------------------- ---------- Abbreviations ---------- ["abbreviations of counties!"] = { -- For categorizing abbreviations of counties of e.g. England full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[county|counties]]", bare_category_breadcrumb = "counties", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of places", }, ["abbreviations of departments!"] = { -- For categorizing abbreviations of departments of e.g. France full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[department]]s", bare_category_breadcrumb = "departments", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of districts!"] = { -- For categorizing abbreviations of districts of e.g. ??? full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of divisions!"] = { -- For categorizing abbreviations of divisions of e.g. Bangladesh full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[division]]s", bare_category_breadcrumb = "divisions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of former countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of former places", }, ["abbreviations of former places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "abbreviations", bare_category_parent = "former places", addl_bare_category_parents = {{name = "abbreviations of places", sort = "former"}}, }, ["abbreviations of places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "abbreviations", bare_category_parent = "places", }, ["abbreviations of political divisions!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[political]] [[division]]s", bare_category_breadcrumb = "political divisions", bare_category_parent = "abbreviations of places", }, ["abbreviations of prefectures!"] = { -- For categorizing abbreviations of prefectures of e.g. Japan full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces!"] = { -- For categorizing abbreviations of provinces of e.g. Canada full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s and [[territory|territories]]", bare_category_breadcrumb = "provinces and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of regions!"] = { -- For categorizing abbreviations of regions of e.g. Italy full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[administrative region]]s", bare_category_breadcrumb = "regions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states!"] = { -- For categorizing abbreviations of states of e.g. the United States full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[territory|territories]]", bare_category_breadcrumb = "states and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and union territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[union territory|union territories]]", bare_category_breadcrumb = "states and union territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[territory|territories]]", bare_category_breadcrumb = "territories", bare_category_parent = "abbreviations of political divisions", }, ["ABBREVIATION_OF country"] = { link = false, default = {"Abbreviations of countries"}, }, ["ABBREVIATION_OF county"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF department"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF district"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF division"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF FORMER country"] = { link = false, default = {"Abbreviations of former countries"}, }, ["ABBREVIATION_OF FORMER place"] = { link = false, default = {"Abbreviations of former places"}, }, ["ABBREVIATION_OF place"] = { link = false, default = {"Abbreviations of places"}, }, ["ABBREVIATION_OF prefecture"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF province"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF region"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF state"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF subpolity"] = { link = false, default = {"Abbreviations of political divisions"}, }, ["ABBREVIATION_OF territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF union territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ---------- Archaic forms ---------- ["archaic forms of places!"] = { full_category_link = "{{glossary|archaic}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "archaic forms", bare_category_parent = "places", }, ["ARCHAIC_FORM_OF place"] = { link = false, default = {"Archaic forms of places"}, }, ---------- Clippings ---------- ["clippings of places!"] = { full_category_link = "{{glossary|clipping}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "clippings", bare_category_parent = "places", }, ["CLIPPING_OF place"] = { link = false, default = {"Clippings of places"}, }, ---------- Dated forms ---------- ["dated forms of places!"] = { full_category_link = "{{glossary|dated}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "dated forms", bare_category_parent = "places", }, ["DATED_FORM_OF place"] = { link = false, default = {"Dated forms of places"}, }, ---------- Derogatory names ---------- ["derogatory names for cities!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[city|cities]]", bare_category_breadcrumb = "cities", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["derogatory names for continents!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for continents"}, }, ["derogatory names for countries!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for countries"}, }, ["derogatory names for places!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[place]]s", bare_category_breadcrumb = "derogatory names", bare_category_parent = "nicknames for places", }, ["derogatory names for states!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for states"}, }, ["DEROGATORY_NAME_FOR capital"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR city"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR continent"] = { link = false, default = {"Derogatory names for continents"}, }, ["DEROGATORY_NAME_FOR country"] = { link = false, default = {"Derogatory names for countries"}, }, ["DEROGATORY_NAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR place"] = { link = false, default = {"Derogatory names for places"}, }, ["DEROGATORY_NAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR state"] = { link = false, default = {"Derogatory names for states"}, }, ["DEROGATORY_NAME_FOR town"] = { link = false, default = {"Derogatory names for cities"}, }, ---------- Ellipses ---------- ["ellipses of places!"] = { full_category_link = "{{glossary|ellipsis|ellipses}} of [[name]]s of [[place]]s", bare_category_breadcrumb = "ellipses", bare_category_parent = "places", }, ["ELLIPSIS_OF place"] = { link = false, default = {"Ellipses of places"}, }, ---------- Former long-form names ---------- ["former long-form names of countries!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former long-form names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "long-form"}}, }, ["former long-form names of places!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form", bare_category_parent = "former names of places", }, ["FORMER_LONG_FORM_OF country"] = { link = false, default = {"Former long-form names of countries"}, }, ["FORMER_LONG_FORM_OF place"] = { link = false, default = {"Former long-form names of places"}, }, ---------- Former names ---------- ["former names of capitals!"] = { full_category_link = "[[former]] [[name]]s of [[capital city|capital cities]] that generally still exist but under a different name", bare_category_breadcrumb = "capitals", bare_category_parent = "former names of settlements", }, ["former names of countries!"] = { full_category_link = "[[former]] [[name]]s of [[country|countries]] that generally still exist but under a different name", bare_category_breadcrumb = "countries", bare_category_parent = "former names of places", }, ["former names of places!"] = { full_category_link = "[[former]] [[name]]s of [[place]]s that generally still exist but under a different name", bare_category_breadcrumb = "former names", bare_category_parent = "places", }, ["former names of political divisions!"] = { full_category_link = "[[former]] [[name]]s of [[political]] [[division]]s (states, provinces, counties, etc.) that generally still exist but under a different name", bare_category_breadcrumb = "political divisions", bare_category_parent = "former names of places", }, ["former names of polities!"] = { full_category_link = "[[former]] [[name]]s of [[polity|polities]] (e.g. [[country|countries]]) that generally still exist but under a different name", bare_category_breadcrumb = "polities", bare_category_parent = "former names of places", }, ["former names of settlements!"] = { full_category_link = "[[former]] [[name]]s of [[city|cities]], [[town]]s, [[village]]s, etc. that generally still exist but under a different name", bare_category_breadcrumb = "settlements", bare_category_parent = "former names of political divisions", }, ["FORMER_NAME_OF capital"] = { link = false, default = {"Former names of capitals"}, }, ["FORMER_NAME_OF country"] = { link = false, default = {"Former names of countries"}, }, ["FORMER_NAME_OF place"] = { link = false, default = {"Former names of places"}, }, ["FORMER_NAME_OF polity"] = { link = false, default = {"Former names of polities"}, }, ["FORMER_NAME_OF region"] = { link = false, fallback = "FORMER_NAME_OF subpolity", }, ["FORMER_NAME_OF settlement"] = { link = false, default = {"Former names of settlements"}, }, ["FORMER_NAME_OF subpolity"] = { link = false, default = {"Former names of political divisions"}, }, ---------- Former nicknames ---------- ["former nicknames for cities!"] = { full_category_link = "no-longer-used [[nickname]]s for [[city|cities]], e.g. the [[Eternal City]] for [[Kyoto]] during the {{w|Heian period}} ({{circa2|800–1100|short=yes}} {{AD}})", bare_category_breadcrumb = "cities", bare_category_parent = "former nicknames for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["former nicknames for places!"] = { full_category_link = "no-longer-used [[nickname]]s for [[place]]s", bare_category_breadcrumb = "former", bare_category_parent = "nicknames for places", addl_bare_category_parents = {{name = "former names of places", sort = "nicknames"}}, }, ["FORMER_NICKNAME_FOR capital"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR city"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR place"] = { link = false, default = {"Former nicknames for places"}, }, ["FORMER_NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR town"] = { link = false, default = {"Former nicknames for cities"}, }, ---------- Former official names ---------- ["former official names of countries!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former official names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "official"}}, }, ["former official names of places!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "former names of places", }, ["FORMER_OFFICIAL_NAME_OF country"] = { link = false, default = {"Former official names of countries"}, }, ["FORMER_OFFICIAL_NAME_OF place"] = { link = false, default = {"Former official names of places"}, }, ---------- Long-form names ---------- ["long-form names of countries!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "long-form names of places", }, ["long-form names of places!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form names", bare_category_parent = "places", }, ["LONG_FORM_OF country"] = { link = false, default = {"Long-form names of countries"}, }, ["LONG_FORM_OF place"] = { link = false, default = {"Long-form names of places"}, }, ---------- Nicknames ---------- ["nicknames for cities!"] = { full_category_link = "[[nickname]]s for [[city|cities]], e.g. the [[Big Apple]] for [[New York City]]", bare_category_breadcrumb = "cities", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"cities"}, }, ["nicknames for continents!"] = { full_category_link = "[[nickname]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"continents"}, }, ["nicknames for countries!"] = { full_category_link = "[[nickname]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"countries"}, }, ["nicknames for places!"] = { full_category_link = "[[nickname]]s for [[place]]s", bare_category_breadcrumb = "places", bare_category_parent = "nicknames", addl_bare_category_parents = {"places"}, }, ["nicknames for states!"] = { -- For categorizing nicknames for states of e.g. the United States full_category_link = "[[nicknames]] for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"states"}, }, ["NICKNAME_FOR capital"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR city"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR continent"] = { link = false, default = {"Nicknames for continents"}, }, ["NICKNAME_FOR country"] = { link = false, default = {"Nicknames for countries"}, }, ["NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR place"] = { link = false, default = {"Nicknames for places"}, }, ["NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR state"] = { link = false, default = {"Nicknames for states"}, }, ["NICKNAME_FOR town"] = { link = false, default = {"Nicknames for cities"}, }, ---------- Obsolete forms ---------- ["obsolete forms of places!"] = { full_category_link = "{{glossary|obsolete}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "obsolete forms", bare_category_parent = "places", }, ["OBSOLETE_FORM_OF place"] = { link = false, default = {"Obsolete forms of places"}, }, ---------- Official names ---------- ["official names of countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of places", }, ["official names of former countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of former places", }, ["official names of former places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "official names", bare_category_parent = "former places", addl_bare_category_parents = {{name = "official names of places", sort = "former"}}, }, ["official names of places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official names", bare_category_parent = "places", }, ["OFFICIAL_NAME_OF country"] = { link = false, default = {"Official names of countries"}, }, ["OFFICIAL_NAME_OF FORMER country"] = { link = false, default = {"Official names of former countries"}, }, ["OFFICIAL_NAME_OF FORMER place"] = { link = false, default = {"Official names of former places"}, }, ["OFFICIAL_NAME_OF place"] = { link = false, default = {"Official names of places"}, }, ---------- Official nicknames ---------- ["official nicknames for places!"] = { full_category_link = "[[official]] [[nickname]]s for [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for places", }, ["official nicknames for states!"] = { -- For categorizing official nicknames for states of e.g. the United States full_category_link = "[[official]] [[nicknames]] for [[state]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for states", addl_bare_category_parents = {"states"}, }, ["OFFICIAL_NICKNAME_FOR place"] = { link = false, default = {"Official nicknames for places"}, }, ["OFFICIAL_NICKNAME_FOR state"] = { link = false, default = {"Official nicknames for states"}, }, } export.plural_placetype_to_singular = {} for sg_placetype, spec in pairs(export.placetype_data) do if spec.plural then export.plural_placetype_to_singular[spec.plural] = sg_placetype end end ------------------------------------------------------------------------------------------ -- ZH: Chinese localization functions -- ------------------------------------------------------------------------------------------ --[==[ Get the Chinese display name for a placetype, resolving through the enwikt fallback chain. `holonym_placetype` (optional string) provides context for placetypes like `capital city` whose Chinese term depends on the containing administrative level (country → 首都, province → 省會, state → 首府, etc.). Returns two values: zh_name (string or array of regional variants), zh_suffix (string, array, or nil). Returns nil, nil if no Chinese data is available for the placetype or any of its fallbacks. ]==] function export.get_zh_placetype_name(placetype, holonym_placetype) placetype = export.resolve_placetype_aliases(placetype) local zh_name, zh_suffix, zh_by_holonym = m_zh_data.get_zh_placetype_props(placetype, export) if zh_name then local resolved = m_zh_data.resolve_zh_name(zh_name, zh_by_holonym, holonym_placetype) return resolved, zh_suffix end return nil, nil end --[==[ Get only the Chinese suffix for a placetype. Used when rendering holonym `:pref`/`:suf` modifiers in Chinese: the suffix is appended directly to the holonym name (e.g. `s:suf/New York` → 紐約州; `c:pref/Georgia` → 格魯吉亞國). Returns a string, an array of regional variants, or nil if no suffix is defined. ]==] function export.get_zh_placetype_suffix(placetype) placetype = export.resolve_placetype_aliases(placetype) local _, zh_suffix = m_zh_data.get_zh_placetype_props(placetype, export) return zh_suffix end --[==[ Chinese placetype "pluralization" — a no-op, since Chinese has no grammatical plural. Accepts and returns a string or an array (for multi-variant names) unchanged. Provided so that call sites shared with the English path can call a uniform function. ]==] function export.pluralize_zh_placetype(zh_name) return zh_name end --[==[ Get the entry preposition for Chinese display: "in" or "of". Identical to `get_placetype_entry_preposition` in semantics; the Chinese rendering maps these to different constructions: "in" → 位於 [holonyms] 的 [placetype] "of" → [holonyms] 的 [placetype] (no 位於 prefix) ]==] export.get_zh_entry_preposition = export.get_placetype_entry_preposition -- Re-export Chinese data tables so that [[Module:place]] only needs to require -- this module rather than both this module and [[Module:place/zh-data]] separately. export.zh_strings = m_zh_data.zh_strings export.zh_qualifiers = m_zh_data.zh_qualifiers export.zh_extra_info_labels = m_zh_data.zh_extra_info_labels export.zh_capital_label_by_holonym_type = m_zh_data.zh_capital_label_by_holonym_type export.format_zh_name = m_zh_data.format_zh_name return export ldt06cyy49cbqsomlbt8j6aqsd9bb0r 9759527 9759524 2026-05-14T21:38:15Z TongcyDai 53191 9759527 Scribunto text/plain local export = {} export.force_cat = false -- set to true for testing local m_locations = require("Module:place/locations") local m_links = require("Module:links") local m_table = require("Module:table") local m_strutils = require("Module:string utilities") local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" -- Chinese localization data (zh_name, zh_suffix, qualifiers, extra-info labels, etc.) local m_zh_data = require("Module:place/data/sandbox") local dump = mw.dumpObject local insert = table.insert local concat = table.concat local internal_error = m_locations.internal_error export.internal_error = internal_error local process_error = m_locations.process_error export.process_error = process_error local unpack = unpack or table.unpack -- Lua 5.2 compatibility local ucfirst = m_strutils.ucfirst local ulower = m_strutils.lower local rmatch = m_strutils.match local split = m_strutils.split --[==[ intro: This module contains placetype data used by [[Module:place]] and {{tl|place}}, along with a significant amount of code to work with both placetypes and locations, as well as some placename-related info (FIXME: Consider moving it to [[Module:place/locations]]). See also [[Module:place/locations]], which has definitions of all known locations. You must currently load this module using {{cd|require()}}, not using {{cd|mw.loadData()}}. In particular, it contains two fundamental and tricky functions: # `get_placetype_equivs`, which finds the equivalent placetypes to look under in order to find a given property, and in the process correctly handles placetypes with qualifiers (including qualifiers that act similar to "type-raising" operators in that they do something non-trivial to the placetype to their right) as well as form-of directives and fallbacks. # `find_matching_holonym_location`, which looks up a holonym to find a matching known location, but in the process checks holonyms to the right to make sure there isn't a clash between the user-specified containing holonyms and the containers of the known location being considered. This is done to prevent overcategorizing when either there are two known locations with the same name (e.g. Birmingham in England and Birmingham, Alabama in the US), or more generally two locations with the same name, one of which is a known location but where the other is not (e.g. we're processing non-known-location Mérida, Spain and don't want it categorized like known location Mérida, Yucatán, Mexico). Both of these functions are invoked repeatedly, and probably are invoked several times on the same inputs and as a result are candidates for memoization to speed up the operation of {{tl|place}}. ]==] ------------------------------------------------------------------------------------------ -- Basic utilities -- ------------------------------------------------------------------------------------------ --[==[ Return true if `force_cat` is set either in this module or in [[Module:place/locations]]. ]==] function export.get_force_cat() return export.force_cat or m_locations.force_cat end -- Add the page to a tracking "category". To see the pages in the "category", -- go to [[Wiktionary:Tracking/place/PAGE]] and click on "What links here". local function track(page) require(debug_track_module)("place/" .. page) return true end function export.remove_links_and_html(text) text = m_links.remove_links(text) return text:gsub("<.->", "") end --[==[ Return the singular version of a maybe-plural placetype, or nil if not plural. This correctly handles placetypes with irregular plurals such as `kibbutzim` plural of `kibbutz` by looking up in a table constructed from the `plural` values specified in `placetype_data`. If a special plural value is not found, the regular singularization algorithm in [[Module:en-utilities]] is invoked, which reverses the y -> ies change after vowels and the 'es' addition after sh/ch/x, and otherwise just subtracts a final 's' (which will incorrectly generate 'passe' for plural 'passes'; FIXME: consider changing this for words ending in '-sses'). If the generated singular is the same as the passed-in value, nil is returned. ]==] function export.maybe_singularize_placetype(placetype) if not placetype then return nil end if export.plural_placetype_to_singular[placetype] then return export.plural_placetype_to_singular[placetype] end local retval = require(en_utilities_module).singularize(placetype) if retval == placetype then return nil end return retval end -- Return the correct plural of a placetype, and (if `do_ucfirst` is given) make the first letter uppercase. We first -- look up the plural in `placetype_data`, falling back to pluralize() in [[Module:en-utilities]], which is almost -- always correct. function export.pluralize_placetype(placetype, do_ucfirst) local ptdata = export.placetype_data[placetype] if ptdata and ptdata.plural then placetype = ptdata.plural else placetype = require(en_utilities_module).pluralize(placetype) end if do_ucfirst then return ucfirst(placetype) else return placetype end end --[==[ Get the data associated with a placetype, which may be in its singular or plural form. If `from_category` is specified, we also look for category-only placetypes (generally plural) followed by `!`. Return three values: (a) the placetype under which the data can be looked up (i.e. in its singular form if the passed-in `placetype` is plural and did not match a category-only placetype followed by `!`); (b) the placetype data structure; (c) the type of `placetype` match that occurred, one of `"direct"` if the canonical placetype is the same as the passed-in `placetype` and also the same as the key under which `ptdata` was looked up, or `"direct-category"` if the `ptdata` was looked up under a key formed from the passed-in `placetype` by adding `!`, or `"plural"` if the `ptdata` was looked up under the singularized version of the plural passed-in `placetype`. ]==] function export.get_placetype_data(placetype, from_category) local ptdata = export.placetype_data[placetype] if ptdata then return placetype, ptdata, "direct" end if from_category then ptdata = export.placetype_data[placetype .. "!"] if ptdata then return placetype .. "!", ptdata, "direct-category" end end local sg_placetype = export.maybe_singularize_placetype(placetype) if sg_placetype then ptdata = export.placetype_data[sg_placetype] if ptdata then return sg_placetype, ptdata, "plural" end end return nil end --[==[ Check for special pseudo-placetypes that should be ignored for categorization purposes. ]==] function export.placetype_is_ignorable(placetype) return placetype == "and" or placetype == "or" or placetype:find("^%(") end function export.resolve_placetype_aliases(placetype) return export.placetype_aliases[placetype] or placetype end --[==[ Return a property from `placetype_data` for a given placetype. If the placetype isn't found in `placetype_data`, or the key isn't found in the placetype's entry in `placetype_data`, return nil. ]==] function export.get_placetype_prop(placetype, key) -- Usually we are called on equivalent placetypes returned from `get_placetype_equivs`, in which case placetype -- aliases have been resolved, but sometimes not, e.g. when fetching the indefinite article in -- get_placetype_article(). `resolve_placetype_aliases` is just a simple lookup and it doesn't hurt to do it twice. placetype = export.resolve_placetype_aliases(placetype) if export.placetype_data[placetype] then return export.placetype_data[placetype][key] else return nil end end --[==[ Given a placetype, split the placetype into one or more potential ''splits'', each consisting of a three-element list { {``prev_qualifiers``, ``this_qualifier``, ``reduced_placetype``}}, i.e. # the concatenation of zero or more previously-recognized qualifiers on the left, normally canonicalized (if there are zero such qualifiers, the value will be nil); # a single recognized qualifier, normally canonicalized (if there is no qualifier, the value will be nil); # the "reduced placetype" on the right. Splitting between the qualifier in (2) and the reduced placetype in (3) happens at each space character, proceeding from left to right, and stops if a qualifier isn't recognized. All placetypes are canonicalized by checking for aliases in `placetype_aliases`, but no other checks are made as to whether the reduced placetype is recognized. Canonicalization of qualifiers does not happen if `no_canon_qualifiers` is specified. For example, given the placetype `"small beachside unincorporated community"`, the return value will be { { {nil, nil, "small beachside unincorporated community"}, {nil, "small", "beachside unincorporated community"}, {"small", "[[beachfront]]", "unincorporated community"}, {"small [[beachfront]]", "[[unincorporated]]", "community"}, }} Here, `"beachside"` is canonicalized to `"[[beachfront]]"` and `"unincorporated"` is canonicalized to `"[[unincorporated]]"`, in both cases according to the entry in `placetype_qualifiers`. On the other hand, if given `"small former haunted community"`, the return value will be { { {nil, nil, "small former haunted community"}, {nil, "small", "former haunted community"}, {"small", "former", "haunted community"}, }} because `"small"` and `"former"` but not `"haunted"` are recognized as qualifiers. Finally, if given `"former adr"`, the return value will be { { {nil, nil, "former adr"}, {nil, "former", "administrative region"}, }} because `"adr"` is a recognized placetype alias for `"administrative region"`. ]==] function export.split_qualifiers_from_placetype(placetype, no_canon_qualifiers) local splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} local prev_qualifier = nil while true do local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if canon == nil then break end local new_qualifier = qualifier if type(canon) == "table" then canon = canon.link end if not no_canon_qualifiers and canon ~= false then if canon == true then new_qualifier = "[[" .. qualifier .. "]]" else new_qualifier = canon end end insert(splits, {prev_qualifier, new_qualifier, export.resolve_placetype_aliases(reduced_placetype)}) prev_qualifier = prev_qualifier and prev_qualifier .. " " .. new_qualifier or new_qualifier placetype = reduced_placetype else break end end return splits end --[==[ Given a `placetype` (which may be pluralized), return an ordered list of equivalent placetypes to look under to find the placetype's properties (such as the category or categories to be inserted). The return value is actually an ordered list of objects of the form `{qualifier=``qualifier``, placetype=``equiv_placetype``}` where ``equiv_placetype`` is a placetype whose properties to look up, derived from the passed-in placetype or from a contiguous subsequence of the words in the passed-in placetype (always including the rightmost word in the placetype, i.e. we successively chop off qualifier words from the left and use the remainder to find equivalent placetypes). ``qualifier`` is the remaining words not part of the subsequence used to find ``equiv_placetype``; or nil if all words in the passed-in placetype were used to find ``equiv_placetype``. (FIXME: This qualifier is not currently used anywhere.) Only placetypes for which there is an entry in `placetype_data` are included. The placetype passed in is always checked first, and will form the first entry if it exists in `placetype_data`. '''NOTE:''' This is a tricky function as it implements handling of (a) qualifiers, (b) fallback logic, (c) "type-raising" qualifiers such as `former`/`ancient`/etc. as well as `fictional` and `mythological`, and (d) form-of directives, which act somewhat similarly to `former`, and allows interaction between more than one of these simultaneously (e.g. official names of former places, which have their own categorization). If {{tl|place}} gets too slow, one potential speedup is to memoize the results of this function, as it appears to be getting called more than once on the same inputs. Another similar potential speedup is to memoize the results of `iterate_matching_holonym_location()`. For example, given the placetype `left tributary`, the following placetype/qualifier combinations are checked in turn: ``` {qualifier = nil, placetype="left tributary"} {qualifier = "left", placetype="tributary"} {qualifier = "left", placetype="river"} ``` and the return value will be { { {qualifier = "left", placetype="tributary"}, {qualifier = "left", placetype="river"}, }} The algorithm first enters the placetype itself into the list, then checks for `left tributary` as a recognized placetype in `placetype_data` and doesn't find it, so it doesn't enter it into the returned list (if it found it, it would add it as well as any fallbacks directly after it). It then splits off the recognized qualifier `left` to form the ''reduced placetype'' `tributary`, which is entered into the list because it is found in `placetype_data`. Then, because it has a fallback `river`, which exists in `placetype_data`, the fallback is entered next. Another example is `small rural fraziones` (where a ''frazione'' is type of subdivision of a ''comune'' or municipality, often specifically an outlying hamlet). the placetype/qualifier combinations checked are: ``` {qualifier = nil, placetype="small rural fraziones"} {qualifier = nil, placetype="small rural frazione"} {qualifier = "small", placetype="rural fraziones"} {qualifier = "small", placetype="rural frazione"} {qualifier = "small [[rural]]", placetype="fraziones"} {qualifier = "small [[rural]]", placetype="frazione"} {qualifier = "small [[rural]]", placetype="hamlet"} {qualifier = "small [[rural]]", placetype="village"} ``` The return value ends up as {qualifier = "small [[rural]]", placetype="frazione"}, {qualifier = "small [[rural]]", placetype="hamlet"}, {qualifier = "small [[rural]]", placetype="village"}, }} Here, because the result of singularizing `fraziones` returns a different value from the placetype itself, that singularized value is checked after the original plural value. Also, in the process of splitting off qualifiers, they are canonicalized if the entry in `placetype_qualifiers` says to do so; in this case, links are placed around `rural`. Finally, `frazione` has `hamlet` as its fallback, which in turn has `village` as its fallback, so both fallbacks end up being returned. `no_fallback`, if set, disables returning equivalent placetypes based on the `fallback` setting for a placetype. This is used in the first of two loops in find_placetype_cat_specs() in [[Module:place]] to prefer exact matches for placetypes such as barangays with later holonyms to matches based on a fallback such as `neighborhood` with an earlier holonym. See the comment in that function in [[Module:place]] for a more detailed explanation of why this is needed. Only the placetype itself, and any reduced placetypes created by chopping off recognized qualifiers at the beginning, are returned; but we do not return reduced placetypes if a containing placetype exists in `placetype_data`. (For example, `"overseas territory"` has a fallback `"dependent territory"`, and `"overseas"` is also a recognized qualifier. When `no_fallback` is in place, without the above proviso, we would return `"overseas territory"` followed by `"territory"` with the incorrect effect of classifying an `"overseas territory"` of the United Kingdom such as `"Gibraltar"` under [[:Category:Territories of the United Kingdom]] instead of [[:Category:Dependent territories of the United Kingdom]].) As an exception, if `historical`, `ancient`, `former` or the like are found, they proceed ignoring `no_fallback`, because it seems tricky to handle them correctly in the presence of `no_fallback`, and historical/former placetypes rarely occur with exact match category specs anyway. `no_split_qualifiers` prevents splitting off recognized qualifiers and returning the remainder of the placetype as an equivalent placetype. Only the passed-in placetype, and any fallbacks, will be returned. This is used in [[Module:category tree/topic cat/data/Places]] when looking up placetypes found in categories. Such placetypes won't have qualifiers and so it doesn't make sense to try and look for them. `from_category`, if set, causes category-only placetypes (those ending in `!`) to also be checked. `form_of_directive`, if set, causes the specified form-of directive (e.g. `FORMER_NAME_OF`) to be prepended to checked placetypes, their directive-specific type (e.g. `FORMER_NAME_OF_type`), and their classes (`class`) to get the appropriate placetypes to check for form-of-directive categories. It falls back to the prepended generic `place` as a placetype, e.g. `FORMER_NAME_OF place`, if nothing else matches. `no_check_for_inherently_former` is used internally to prevent an infinite loop when checking for `inherently_former`. `register_former_as_non_former` is a major hack used in `get_bare_categories` to deal with the mismatch between e.g. known location `Yugoslavia` declaring itself a `country` but definitions of it declaring it a `former country`. It causes the non-former version of the specified placetype to be included in the returned equivalents along with the former placetypes. [FIXME: This should apply only to the entries in `former_countries` but it's tricky to do that now; fix this in the known-location refactor. -- The known-location refactor is already done but we haven't yet fixed this.] ]==] function export.get_placetype_equivs(placetype, props) local no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former local form_of_directive if props then no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former = props.no_fallback, props.no_split_qualifiers, props.no_check_for_inherently_former, props.from_category, props.register_former_as_non_former form_of_directive = props.form_of_directive end local equivs = {} -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. `qualifier` is -- the preceding qualifier to insert into `equivs` along with the placetype (see comment at top of function). If -- `from_category` is given, we also check for a category-specific entry consisting of the placetype followed by -- `!`, and in all cases we also check to see if `placetype` is plural, and if so, insert the singularized version -- along with its fallbacks (if any) in `placetype_data`. `form_of_prefix` is a form-of prefix such as -- `OFFICIAL_NAME_OF`. If specified, we check the fallbacks of `placetype` without the prefix but then insert into -- `equivs` the prefixed placetype. This way, if the user says e.g. {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}}, -- we will correctly categorize into [[:Category:Official names of countries]], rather than only trying to look up -- `OFFICIAL_NAME_OF island country` and failing, falling back ultimately to [[:Category:Official names of places]]. local function insert_placetype_and_fallbacks(qualifier, placetype, form_of_prefix) local function insert_equiv(pt) if form_of_prefix then -- Let's say the user says {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}} and we have -- no entry for `OFFICIAL_NAME_OF island country` but we do for `OFFICIAL_NAME_OF country` (which we end -- up processing because `island country` falls back to `country`), and that entry in turn is defined -- using a fallback. We have to insert that fallback-of-fallback, and the easiest/cleanest way of -- handling this is by calling ourselves recursively. insert_placetype_and_fallbacks(qualifier, form_of_prefix .. " " .. pt) else insert(equivs, {qualifier=qualifier, placetype=pt}) end end -- Insert the placetype, along with any fallbacks. local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if ptdata then insert_equiv(canon_placetype) if no_fallback then return end local first_placetype = #equivs + 1 local prev_placetype = nil while true do local pt_value = export.placetype_data[canon_placetype] if not pt_value then internal_error("Fallback value %s specified for placetype %s but is not in `placetype_data`", canon_placetype, prev_placetype) end if pt_value.fallback then insert_equiv(pt_value.fallback) local last_placetype = #equivs if last_placetype - first_placetype >= 10 then local fallback_loop = {} for i = first_placetype, last_placetype do insert(fallback_loop, equivs[i].placetype) end internal_error("Apparent loop in fallback chain: %s", table.concat(fallback_loop, " -> ")) end prev_placetype = canon_placetype canon_placetype = pt_value.fallback else break end end end end -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. This is a -- wrapper around the more basic `insert_placetype_and_fallbacks()` which handles form-of directives. If there is no -- form-of directive, this function directly calls `insert_placetype_and_fallbacks()`. We do things this way so that -- form-of directives correctly combine with `former`-type qualifiers. Note that we also have special backups for -- form-of directives that check `DIRECTIVE place` (and before that, `DIRECTIVE FORMER/ANCIENT place` is there's a -- `former`-type directive); these backups live outside this function because we want them done once, late, rather -- than in each invocation of `process_and_insert_placetype()`. local function process_and_insert_placetype(qualifier, reduced_placetype) if form_of_directive then -- First check for e.g. `OFFICIAL_NAME_OF island country` and its fallbacks; then we look for fallbacks of -- `island country` and check e.g. `OFFICIAL_NAME_OF country` and its fallbacks. All of this is handled by -- `insert_placetype_and_fallbacks()` with appropriate parameters. After that, check the general class of -- the directive, e.g. `subpolity` if something like `district` is given. (Eventually, we check for -- `OFFICIAL_NAME_OF place` as a backup, but this happens at the end outside the loop over qualifiers.) insert_placetype_and_fallbacks(qualifier, reduced_placetype, form_of_directive) if not no_fallback then local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype) local directive_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, form_of_directive .. "_type") or export.get_placetype_prop(pt, "class") end ) if not directive_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s in conjunction with form-of directive %s, placetype data " .. 'located but directive-specific type property %s missing, and so is "class"; ' .. "placetypes searched are %s", reduced_placetype, form_of_directive, form_of_directive .. "_type", reduced_placetype_equivs) else -- This should be allowed, as we allow unrecognized placetypes in general. end elseif directive_type ~= "!" then insert_placetype_and_fallbacks(qualifier, directive_type, form_of_directive) end end else insert_placetype_and_fallbacks(qualifier, reduced_placetype) end end -- Successively split off recognized qualifiers and loop over successively greater sets of qualifiers from the left -- (unless `no_split_qualifiers` is specified, in which case we don't check for qualifiers). local splits if no_split_qualifiers then splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} else splits = export.split_qualifiers_from_placetype(placetype) end for _, split in ipairs(splits) do local prev_qualifier, this_qualifier, reduced_placetype = unpack(split, 1, 3) -- If a special "former" qualifier like `former` or `historical` isn't present, and -- `no_check_for_inherently_former` is not given (this flag is used to avoid infinite loops), check for -- "inherently former" placetypes like `satrapy` and `treaty port` that always refer to no-longer-existing -- placetypes, and handle accordingly. local unlinked_this_qualifier if this_qualifier and this_qualifier:find("%[") then unlinked_this_qualifier = export.remove_links_and_html(this_qualifier) else unlinked_this_qualifier = this_qualifier end local former_qualifiers = this_qualifier and export.former_qualifiers[unlinked_this_qualifier] or nil if not former_qualifiers and not no_check_for_inherently_former then former_qualifiers = export.get_equiv_placetype_prop(reduced_placetype, function(pt) return export.get_placetype_prop(pt, "inherently_former") end, {no_check_for_inherently_former = true}) end -- If a special "former" qualifier like `former` or `historical` is present, map it to the appropriate internal -- qualifiers (`ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified -- qualifiers), fetch the `former_type` property, and treat the placetype as if a concatenation of the mapped -- qualifier(s) and the value of `former_type`. For example, if `medieval village` is given, we map `medieval` -- to `ANCIENT` and `FORMER`, and `village` to its `former_type` of `settlement`, and enter the placetypes -- `ANCIENT settlement` and `FORMER settlement` (in that order) into `equivs`. If the placetype following the -- "former" qualifier is recognized in `placetype_data` but has no `former_type` and no fallback with a -- `former_type` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like -- `former greenhouse` is specified and we don't have an entry for `greenhouse`), just track the occurrence and -- don't enter anything into `equivs`. if former_qualifiers then -- FIXME: Should we respect `no_fallback` here? My instinct says no. local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype, { no_check_for_inherently_former = true }) local former_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, "former_type") or export.get_placetype_prop(pt, "class") end ) if not former_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s, placetype data located but `former_type` missing; " .. "placetypes searched are %s", reduced_placetype, reduced_placetype_equivs) else -- Enable error when we've verified there aren't any examples. track("bad-former-placetype") track("bad-former-placetype/" .. reduced_placetype) --process_error("For placetype '%s', unrecognized placetype following 'former'-type " .. -- "qualifier; searched placetype(s) %s", reduced_placetype, dump(reduced_placetype_equivs)) end elseif former_type ~= "!" then -- First check directly for `ANCIENT/FORMER` + the original following placetype. This makes it possible -- for (e.g.) former provinces of the Roman empire to be categorized specially. for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. reduced_placetype) end for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. former_type) end -- HACK! See explanation above for `register_former_as_non_former`. if register_former_as_non_former then process_and_insert_placetype(prev_qualifier, reduced_placetype) end -- If we're processing a form-of directive, after doing everything else we do -- `DIRECTIVE ANCIENT/FORMER place` e.g. `OFFICIAL_NAME_OF FORMER place` as a backup. if form_of_directive and not no_fallback then for _, former_qualifier in ipairs(former_qualifiers) do insert_placetype_and_fallbacks(prev_qualifier, form_of_directive .. " " .. former_qualifier .. " place") end end -- Don't continue processing equivs. The reason is probably the same as the `break` below for -- qualifier_to_placetype_equivs[]; categories for `former BLAH` are set using `default`, and -- non-former equivs will otherwise take precedence. break end end -- Then see if the rightmost split-off qualifier is in qualifier_to_placetype_equivs -- (e.g. 'fictional *' -> 'fictional location'). If so, add the mapping. if this_qualifier and export.qualifier_to_placetype_equivs[unlinked_this_qualifier] then insert(equivs, { qualifier=prev_qualifier, placetype=export.qualifier_to_placetype_equivs[unlinked_this_qualifier] }) -- Don't continue processing equivs; otherwise, if we specify 'mythological city', even though the -- equivalent entry for 'mythological location' gets inserted ahead of the entry for 'city', the -- latter ends up generating the category because the category for 'mythological location' is set as -- the default value, which is used only when no non-default category can be found. break end -- Finally, join the rightmost split-off qualifier to the previously split-off qualifiers to form a combined -- qualifier, and add it along with reduced_placetype and any mapping in placetype_data for reduced_placetype. -- NOTE: The first time through this loop, both `prev_qualifier` and `this_qualifier` are nil, and this inserts -- the full placetype into `equivs`. local qualifier = prev_qualifier and prev_qualifier .. " " .. this_qualifier or this_qualifier process_and_insert_placetype(qualifier, reduced_placetype) -- If `no_fallback` and there's an entry in `placetype_data` for this placetype, don't include any reduced -- placetypes to avoid the "overseas territory treated as a territory" issue describe above. if no_fallback then local canon_placetype, ptdata, ptmatch = export.get_placetype_data(reduced_placetype, from_category) if canon_placetype then break end end end -- If we're processing a form-of directive, after doing everything else we do `DIRECTIVE place` e.g. -- `OFFICIAL_NAME_OF place` as a backup; but only if either the placetype as a whole is recognized or the placetype -- begins with a recognized qualifier. This latter check is to avoid categorizing into e.g. -- [[Category:en:Former names of places]] in an invocation like -- {{place|en|@former name of:Democratic Republic of the Congo|country|r/Central Africa|;|used from 1971–1997}}; -- the `used from 1971–1997` gets treated as a placetype and we're called on it. if form_of_directive and not no_fallback and (splits[2] or export.get_placetype_data(placetype, from_category)) then insert_placetype_and_fallbacks(nil, form_of_directive .. " place") end return equivs end function export.get_equiv_placetype_prop_from_equivs(equivs, fun, continue_on_nil_only) for _, equiv in ipairs(equivs) do local retval = fun(equiv.placetype) if continue_on_nil_only and retval ~= nil or not continue_on_nil_only and retval then return retval, equiv end end return nil, nil end --[==[ Given a placetype `placetype` and a function `fun` of one argument, iteratively call the function on equivalent placetypes fetched from `get_placetype_equivs` until the function returns a non-falsy value (i.e. not {nil} or {false}); but if `continue_on_nil_only` is specified, the iterations continue until the function returns non non-{nil} value. FIXME: We should make `continue_on_nil_only` the default; but this requires changing some callers.) When `fun` returns a non-falsy or non-{nil} value, `get_equiv_placetype_prop` returns two values: the value returned by `fun` and the equivalent placetype that triggered the non-falsy (or non-{nil}) return value. If `fun` never returns a non-falsy (or non-{nil}) value, `get_equiv_placetype_prop` returns {nil} for both return values. If `placetype` is passed in as {nil}, the return value is the result of calling `fun` on {nil} (whatever it is) with {nil} for the second return value. ]==] function export.get_equiv_placetype_prop(placetype, fun, props) if not placetype then return fun(nil), nil end return export.get_equiv_placetype_prop_from_equivs(export.get_placetype_equivs(placetype, props), fun, props and props.continue_on_nil_only) end --[==[ Return the article that is used with an entry placetype. We proceed as follows: # See if there is a recognized qualifier at the beginning that specifies an article (including `false` for no article). This takes precedence over anything else, so that e.g. `various capitals` gets no article rather than "`the"`. # Then check the placetype or any equivalent placetype for the `entry_placetype_use_the` property, indicating that `"the"` should be used. # Otherwise we look to see if the placetype itself (not any equivalents, even those involving deleting a qualifier from the beginning) has an entry in `placetype_data` that specifies the indefinite article using `entry_placetype_use_the` (principally for use with placetypes like `union territory`). # Otherwise, we use [[Module:en-utilities]] to apply the standard algorithm to generate `"an"` for words beginning with a vowel and `"a"` otherwise. If `ucfirst` is true, the first letter of the article is made upper-case. ]==] function export.get_placetype_article(placetype, ucfirst) local art local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if type(canon) == "table" then art = canon.article end end if art == false then return art end if art == nil then local placetype_use_the = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "entry_placetype_use_the") end) if placetype_use_the then art = "the" else art = export.get_placetype_prop(placetype, "entry_placetype_indefinite_article") if not art then art = require(en_utilities_module).get_indefinite_article(placetype) end end end if ucfirst then art = m_strutils.ucfirst(art) end return art end --[==[ Return the preposition that should be used after `placetype` when occurring as an entry placetype or in categories (e.g. `city >in< France` but `country >of< South America`). The preposition defaults to `"in"` if not specified. ]==] function export.get_placetype_entry_preposition(placetype) local pt_prep = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "preposition") end ) return pt_prep or "in" end --[==[ Given a place desc (see top of file) and a holonym object (see top of file), add a key/value into the place desc's `holonyms_by_placetype` field corresponding to the placetype and placename of the holonym. For example, corresponding to the holonym "c/Italy", a key "country" with the list value {"Italy"} will be added to the place desc's `holonyms_by_placetype` field. If there is already a key with that place type, the new placename will be added to the end of the value's list. ]==] function export.key_holonym_into_place_desc(place_desc, holonym) if not holonym.placetype then return end -- Key in equivalent placetypes, so that e.g. `cities/San Francisco` gets keyed under `city`; but don't do -- fallbacks, as it doesn't seem correct for the "do other holonyms of the same placetype" algorithm to do holonyms -- of different types just because they have the same fallback. local equiv_placetypes = export.get_placetype_equivs(holonym.placetype, {no_fallback = true}) local unlinked_placename = holonym.unlinked_placename for _, equiv in ipairs(equiv_placetypes) do local placetype = equiv.placetype if not place_desc.holonyms_by_placetype then place_desc.holonyms_by_placetype = {} end if not place_desc.holonyms_by_placetype[placetype] then place_desc.holonyms_by_placetype[placetype] = {unlinked_placename} else insert(place_desc.holonyms_by_placetype[placetype], unlinked_placename) end end end --[=[ Construct a formatted link from the raw link spec `link` given the canonical singular placetype `sg_placetype`. If the placetype was originally plural, `orig_placetype` should contain this plural value; otherwise it should be nil. This will construct the appropriate type of link that displays as `orig_placetype` (or otherwise `sg_placetype`) but links to whatever the `link` spec specifies (which may be `sg_placetype`, a Wikipedia article, etc.). `ptdata` is the placetype data structure for the placetype, and `from_category` indicates that we are generating the description of a category (otherwise we are generating the display form of an entry placetype). ]=] local function make_placetype_link(link, sg_placetype, orig_placetype, ptdata, from_category, noerror) if not from_category and ptdata.disallow_in_entries then if noerror then return "[not meant to be specified directly, with warning: " .. ptdata.disallow_in_entries .. "]" else process_error("Placetype %s is not meant to be specified directly: " .. ptdata.disallow_in_entries, sg_placetype) end end if link == nil then internal_error("Placetype data present for placetype %s but no link= setting given", sg_placetype) elseif link == true then if orig_placetype then return ("[[%s|%s]]"):format(sg_placetype, orig_placetype) else return ("[[%s]]"):format(sg_placetype) end elseif link == false then process_error("Placetype %s is not meant to be specified directly, but is only for internal use", sg_placetype) elseif link == "w" then return ("[[w:%s|%s]]"):format(sg_placetype, orig_placetype or sg_placetype) elseif link == "separately" then if orig_placetype then local sg_words = split(sg_placetype, " ") local orig_words = split(orig_placetype, " ") if #sg_words ~= #orig_words then internal_error("Can't construct 'separately' link for plural placetype %s as original placetype %s " .. "has different number of words", orig_placetype, sg_placetype) else for i = 1, #sg_words do if sg_words[i] == orig_words[i] then sg_words[i] = ("[[%s]]"):format(sg_words[i]) else sg_words[i] = ("[[%s|%s]]"):format(sg_words[i], orig_words[i]) end end return concat(sg_words, " ") end else return (sg_placetype:gsub("([^ ]+)", "[[%1]]")) end elseif link:find("^%+") then link = link:sub(2) -- discard initial + return ("[[%s|%s]]"):format(link, orig_placetype or sg_placetype) elseif not orig_placetype then return link else return require(en_utilities_module).pluralize(link) end end --[==[ Get the display form of a placetype by looking it up in `placetype_data`. If the placetype is recognized, or is the plural of a recognized placetype, the corresponding linked display form is returned (with plural placetypes displaying as plural but linked to the singular form of the placetype). Otherwise, return nil. If we're generating the description of a category, `category_type` should be set to one of `"top-level"` (for top-level categories like [[:Category:Neighborhoods]]), `"noncity"` (for non-city categories like [[:Category:Neighborhoods in Illinois, USA]]) or `"city"` (for city categories like [[:Category:Neighborhoods of Chicago]]). Otherwise, we're generating the description for use in formatting a {{tl|place}} call, and category-only placetypes ending in `!` will be ignored, along with special `category_link*` settings. `return_full` is used along with `category_type` and will preferably return the "full" variant of category link settings, i.e. `full_category_link*`; if they don't exist, the `category_link*` value is prepended with `"names of"`. `noerror` says to not throw an error when encountering entry placetypes that would be disallowed. ]==] function export.get_placetype_display_form(placetype, category_type, return_full, noerror) local from_category = not not category_type local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if canon_placetype then local raw_link local function is_linked_string(str) return type(str) == "string" and str:find("%[%[") end if category_type then local fetched_full local function fetch_maybe_full(prop) local retval = ptdata["full_" .. prop] if retval ~= nil then if return_full then return retval, true else internal_error("Saw full_" .. prop .. "=%s but `return_full` not set, can't handle", retval) end end return ptdata[prop], false end local function maybe_prefix(str) if return_full and not fetched_full then return "names of " .. str else return str end end -- Careful with `false` as possible value. if category_type == "top-level" then raw_link, fetched_full = fetch_maybe_full("category_link_top_level") elseif category_type == "noncity" then raw_link, fetched_full = fetch_maybe_full("category_link_before_noncity") elseif category_type == "city" then raw_link, fetched_full = fetch_maybe_full("category_link_before_city") else internal_error('Unrecognized value for `category_type` %s, should be "top-level", "noncity" or "city"', category_type) end if type(raw_link) == "string" then return maybe_prefix(raw_link), ptdata elseif raw_link ~= nil then return raw_link, ptdata end raw_link, fetched_full = fetch_maybe_full("category_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end if ptmatch == "plural" then raw_link, fetched_full = fetch_maybe_full("plural_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end end if raw_link == nil then raw_link, fetched_full = fetch_maybe_full("link") end if raw_link == false then return raw_link, ptdata end return maybe_prefix(make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror)), ptdata else if ptmatch == "plural" then raw_link = ptdata.plural_link if raw_link == false then process_error("Placetype %s cannot appear plural", placetype) end if is_linked_string(raw_link) then return raw_link, ptdata end end if raw_link == nil then raw_link = ptdata.link end return make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror), ptdata end end return nil end local function resolve_unlinked_placename_display_aliases(placetype, placename) local equiv_placetypes = export.get_placetype_equivs(placetype) for i, equiv in ipairs(equiv_placetypes) do equiv_placetypes[i] = equiv.placetype end local all_display_aliases_found = {} local all_others_found = {} for group, key, spec in m_locations.iterate_matching_location { placetypes = equiv_placetypes, placename = placename, alias_resolution = "display", } do if spec.alias_of and spec.display then insert(all_display_aliases_found, {group, key, spec, spec.display_as_full}) else insert(all_others_found, {group, key, spec}) end end if not all_display_aliases_found[1] then return placename elseif all_display_aliases_found[2] then internal_error("Found multiple matching display aliases for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) elseif all_others_found[1] then internal_error("Found a display alias along with other possible meanings for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) else local group, key, spec, as_full = unpack(all_display_aliases_found[1]) local full, elliptical = m_locations.key_to_placename(group, key) return as_full and full or elliptical end end --[==[ If `placename` of type `placetype` is a display alias, convert it to its canonical form; otherwise, return unchanged. Display aliases transform certain placenames into canonical displayed forms. For example, if any of `country/US`, `country/USA` or `country/United States of America` (or `c/US`, etc.) are given, the result will be displayed as `United States`. '''NOTE''': Display aliases change what is displayed from what the editor wrote in the Wikitext. As a result, they should (a) be non-political in nature, and (b) not involve a change where the word `the` needs to be added or removed. For example, normalizing `US` and `USA` to `United States` for display purposes is OK but normalizing `Burma` to `Myanmar` is not (instead a cat alias should be used) because the terms `Burma` and `Myanmar` have clear political connotations. Similarly, we have a display alias that maps the old name of `Macedonia` as a country (but not a region!) to `North Macedonia`, but `Republic of Macedonia` is mapped to `North Macedonia` only as a cat alias because the two terms differ in their use of `the`. (For example, if we had a display alias mapping `Republic of Macedonia` to `North Macedonia`, the call {{tl|place|en|the <<capital city>> of the <<c/Republic of Macedonia>>}} would wrongly display as `the [[capital city]] of the [[North Macedonia]]`.) Generally, display normalizations tend to involve alternative forms (e.g. abbreviations, ellipses, foreign spellings) where the normalization improves clarity and consistency. ]==] function export.resolve_placename_display_aliases(placetype, placename) -- If the placename is a link, apply the alias inside the link. -- This pattern matches both piped and unpiped links. If the link is not piped, the second capture (linktext) will -- be empty. local link, linktext = rmatch(placename, "^%[%[([^|%[%]]+)|?([^|%[%]]-)%]%]$") if link then if linktext ~= "" then local alias = resolve_unlinked_placename_display_aliases(placetype, linktext) return "[[" .. link .. "|" .. alias .. "]]" else local alias = resolve_unlinked_placename_display_aliases(placetype, link) return "[[" .. alias .. "]]" end else return resolve_unlinked_placename_display_aliases(placetype, placename) end end --[==[ Generate the "prefixed" version of a bare key, i.e. prefix it with `the` if correct for this key. ]==] function export.get_prefixed_key(key, spec) if spec.the then return "the " .. key else return key end end -- Necessary for use by [[Module:place]]. FIXME: Reorganize the modules so this isn't necessary. export.iterate_matching_location = m_locations.iterate_matching_location --[=[ Iterator that iterates over holonyms in `place_desc`. If `first_holonym_index` is given, start iterating at the specified holonym and stop either when there are no more holonyms or a holonym with modifier `:also` is found. If `first_holonym_index` is nil or omitted, iterate over all holonyms regardless. If `include_raw_text_holonyms` is specified, raw text holonyms (those not of the form `placetype/placename`) are returned as well; they can be identified by the fact that the `placetype` field in the holonym structure is nil. Two values are returned at each iteration, the holonym index and holonym structure, similar to `ipairs()`. ]=] function export.get_holonyms_to_check(place_desc, first_holonym_index, include_raw_text_holonyms) local stop_at_also = not not first_holonym_index return function(place_desc, index) while true do index = index + 1 local this_holonym = place_desc.holonyms[index] -- If we were passed in a starting holonym index, go up to but not including a holonym marked with `:also` -- (continue_cat_loop); the categorization code will then restart the loop at that holonym. That holonym -- will have `:also` marked on it, so make sure not to stop immediately if the first holonym is marked with -- `:also`. if not this_holonym or stop_at_also and index > first_holonym_index and this_holonym.continue_cat_loop then return nil end -- If not placetype, we're processing raw text, which we normally want to skip. if include_raw_text_holonyms or this_holonym.placetype then return index, this_holonym end end end, place_desc, first_holonym_index and first_holonym_index - 1 or 0 end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, iterate over all such known locations, returning for each location the corresponding key, spec and group as well as the trail of ancestral containers. Unlike `iterate_matching_location()`, this specifically checks that there is no mismatch between the location's containers at any level and any of the following holonyms in the {{tl|place}} spec. The fields in `data` are: * `holonym_placetype`: The placetype of the holonym. It can actually be a list of possible placetypes, as with `iterate_matching_location()`. * `holonym_placename`: The placename of the holonym. * `holonym_index`: The index of the holonym among the holonyms in `place_desc`, or nil if the holonym is not among the holonyms in `place_desc`. (If a holonym index is given, we check for container mismatches among the holonyms following the specified index, stopping either when encountering a holonym marked with modifier `:also` or, if none exist, when we run out of holonyms. If no holonym index is given, we check all holonyms for container mismatches.) * `place_desc`: Description of the place; used for the holonyms, to check for container mismatches. Returns four values: the location group, the canonical key by which the location is known, the spec object describing the location and the trail of ancestral containers for the location. The first three values are the same as for `iterate_matching_location`. ]==] function export.iterate_matching_holonym_location(data) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc local matching_location_iterator = m_locations.iterate_matching_location { placetypes = holonym_placetype, placename = holonym_placename, } return function() while true do local group, key, spec = matching_location_iterator() if not group then return nil end local container_trail = {} -- For each level of container, check that there are no mismatches (i.e. other location of the same -- placetype) mentioned. We allow a mismatch at a given level if there's also a match with the container -- at that level. For example, in the case of Kansas City, defined in [[Module:place/locations]] as a city -- in Missouri, if we define it as {{tl|place|city|s/Missouri,Kansas}}, we ignore the mismatching state of -- Kansas because the correct state of Missouri was also mentioned. But imagine we are defining Newark, -- Delaware as {{tl|place|city|s/Delaware|c/US}} and (as is the case) we have an entry for Newark, New -- Jersey in [[Module:place/locations]]. Just because the containing location `US` matches isn't enough, -- because Newark, NJ also has New Jersey as a containing location and there's a mismatch at that level. If -- there are no mismatches at any level we assume we're dealing with the right known location. -- -- If at a given level there are multiple containing locations, we count a match if any holonym matches any -- containing location, and a mismatch only if a holonym exists of the same placetype that doesn't match any -- containing location. local containers_mismatch = false for containers in m_locations.iterate_containers(group, key, spec) do insert(container_trail, containers) local match_at_level = false local mismatch_at_level = false for other_holonym_index, other_holonym in export.get_holonyms_to_check(place_desc, holonym_index and holonym_index + 1 or nil) do local other_source_holonym = other_holonym.augmented_from_holonym if other_source_holonym and other_source_holonym.placetype == holonym_placetype and other_source_holonym.unlinked_placename ~= holonym_placename then -- Ignore holonyms added during the augmentation process for other holonyms of the same -- placetype as the placetype of the holonym we're considering. See comment in -- augment_holonyms_with_container() for why we do this. -- continue; grrr, no 'continue' in Lua else local holonym_matches_at_level = false local holonym_exists_with_same_placetype = false for _, container in ipairs(containers) do if not container.spec.no_check_holonym_mismatch then local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) local placetypes = container.spec.placetype if type(placetypes) ~= "table" then placetypes = {placetypes} end local placetype_equivs = {} for _, pt in ipairs(placetypes) do m_table.extend(placetype_equivs, export.get_placetype_equivs(pt)) end local this_holonym_matches = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype and (other_holonym.unlinked_placename == full_container_placename or other_holonym.unlinked_placename == elliptical_container_placename) end ) if this_holonym_matches then holonym_matches_at_level = true break end local this_holonym_exists_with_same_placetype = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype end ) if this_holonym_exists_with_same_placetype then -- We seem to have a mismatch at this level. But before we decide conclusively that this -- is the case, check to see whether the putative mismatch is an alias and matches when -- we resolve the alias. for oh_group, oh_key, oh_spec, oh_container_trail in export.iterate_matching_holonym_location { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = place_desc, } do local oh_full_placename, oh_elliptical_placename = m_locations.key_to_placename(oh_group, oh_key) if oh_full_placename == full_container_placename or oh_elliptical_placename == elliptical_container_placename then -- Alias matched when resolved. this_holonym_matches = true break end end if this_holonym_matches then -- Alias matched above when resolved. holonym_matches_at_level = true break else -- Not an alias, or doesn't match when resolved. We have a true mismatch. holonym_exists_with_same_placetype = true end end end end if holonym_matches_at_level then match_at_level = true break end if holonym_exists_with_same_placetype then mismatch_at_level = true end end end if not match_at_level and mismatch_at_level then containers_mismatch = true break end end if not containers_mismatch then return group, key, spec, container_trail end end end end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, find and return the corresponding key, spec and group as well as the trail of ancestral containers. This is like `iterate_matching_holonym_location()` but throws an error if more than one location matches. (An example where this would happen is {{tl|place|en|neighborhood|city/Newcastle}}, because there are two known locations named Newcastle. To fix this, specify additional following disambiguating holonyms, e.g. {{tl|place|en|neighborhood|city/Newcastle|s/New South Wales}}. ]==] function export.find_matching_holonym_location(data) local all_found = {} for group, key, spec, container_trail in export.iterate_matching_holonym_location(data) do insert(all_found, {group, key, spec, container_trail}) end if not all_found[1] then return nil elseif all_found[2] then local holonym_placetype = data.holonym_placetype if type(holonym_placetype) == "table" then holonym_placetype = concat(holonym_placetype, ",") end local found_keys = {} for _, found in ipairs(all_found) do local _, key, _, _ = unpack(found) insert(found_keys, key) end error(("Found multiple matching locations for holonym '%s/%s'; specify disambiguating context in the " .. "containing holonyms: %s"):format(holonym_placetype, data.holonym_placename, dump(found_keys))) else return unpack(all_found[1]) end end ------------------------------------------------------------------------------------------ -- Placename and placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: This is a map from aliases to their canonical forms. Any placetypes appearing as keys here will be mapped to their canonical forms in all respects, including the display form. Contrast entries in 'placetype_data' with a fallback, which applies to categorization and other processes but not to display. The most important aliases are for holonym placetypes, particularly those that occur often such as "country", "state", "province" and the like. Particularly long placetypes that mostly occur as entry placetypes (e.g. "census-designated place") can be given abbreviations, but it is generally preferred to spell out the entry placetype. Note also that we purposely avoid certain abbreviations that would be ambiguous (e.g. "d", which could variously be interpreted as "department", "district" or "division"). ]==] export.placetype_aliases = { ["acomm"] = "autonomous community", ["adr"] = "administrative region", ["adterr"] = "administrative territory", -- Pakistan ["aobl"] = "autonomous oblast", ["aokr"] = "autonomous okrug", ["ap"] = "autonomous province", ["apref"] = "autonomous prefecture", ["aprov"] = "autonomous province", ["ar"] = "autonomous region", ["arch"] = "archipelago", ["arep"] = "autonomous republic", ["aterr"] = "autonomous territory", ["atu"] = "autonomous territorial unit", ["bor"] = "borough", ["c"] = "country", ["can"] = "canton", ["carea"] = "council area", ["cc"] = "constituent country", ["cdblock"] = "community development block", ["cdep"] = "Crown dependency", ["CDP"] = "census-designated place", ["cdp"] = "census-designated place", ["clcity"] = "county-level city", ["co"] = "county", ["cobor"] = "county borough", ["colcity"] = "county-level city", ["coll"] = "collectivity", ["comm"] = "community", ["cont"] = "continent", ["contr"] = "continental region", ["contregion"] = "continental region", ["cpar"] = "civil parish", ["damun"] = "direct-administered municipality", ["dep"] = "dependency", ["department capital"] = "departmental capital", ["dept"] = "department", ["depterr"] = "dependent territory", ["dist"] = "district", ["distmun"] = "district municipality", ["div"] = "division", ["emp"] = "empire", ["fpref"] = "French prefecture", ["gov"] = "governorate", ["govnat"] = "governorate", ["home-rule city"] = "home rule city", ["home-rule municipality"] = "home rule municipality", ["inner-city area"] = "inner city area", ["ires"] = "Indian reservation", ["isl"] = "island", ["lbor"] = "London borough", ["lga"] = "local government area", ["lgarea"] = "local government area", ["lgd"] = "local government district", ["lgdist"] = "local government district", ["metbor"] = "metropolitan borough", ["metcity"] = "metropolitan city", ["metmun"] = "metropolitan municipality", ["mtn"] = "mountain", ["mun"] = "municipality", ["mundist"] = "municipal district", ["nonmetropolitan county"] = "non-metropolitan county", ["obl"] = "oblast", ["okr"] = "okrug", ["p"] = "province", ["par"] = "parish", ["parmun"] = "parish municipality", ["pen"] = "peninsula", ["plcity"] = "prefecture-level city", ["plcolony"] = "Polish colony", ["pref"] = "prefecture", ["prefcity"] = "prefecture-level city", ["preflcity"] = "prefecture-level city", ["prov"] = "province", ["r"] = "region", ["range"] = "mountain range", ["rcm"] = "regional county municipality", ["rcomun"] = "regional county municipality", ["rdist"] = "regional district", ["rep"] = "republic", ["rhrom"] = "rural hromada", ["riv"] = "river", ["rmun"] = "regional municipality", ["robor"] = "royal borough", ["romp"] = "Roman province", ["runit"] = "regional unit", ["rurmun"] = "rural municipality", ["s"] = "state", ["sar"] = "special administrative region", ["shrom"] = "settlement hromada", ["spref"] = "subprefecture", ["sprefcity"] = "sub-prefectural city", ["sprovcity"] = "subprovincial city", ["submet city"] = "sub-metropolitan city", ["submetropolitan city"] = "sub-metropolitan city", ["sub-prefecture-level city"] = "sub-prefectural city", ["sub-provincial city"] = "subprovincial city", ["sub-provincial district"] = "subprovincial district", ["terr"] = "territory", ["terrauth"] = "territorial authority", ["twp"] = "township", ["twpmun"] = "township municipality", ["uauth"] = "unitary authority", ["ucomm"] = "unincorporated community", ["udist"] = "unitary district", ["uhrom"] = "urban hromada", ["uterr"] = "union territory", ["utwpmun"] = "united township municipality", ["val"] = "valley", ["vdc"] = "village development committee", ["vil"] = "village", ["voi"] = "voivodeship", ["wcomm"] = "Welsh community", -- Chinese capital/seat types ["首都"] = "capital", ["省會"] = "provincial capital", ["首府"] = "regional capital", ["縣治"] = "county seat", -- Chinese placetype name aliases (map to English equivalents so they inherit preposition, display handler, etc.) ["國家"] = "country", ["構成國"] = "constituent country", ["大洲"] = "continent", ["洲"] = "continent", ["大陸"] = "continent", ["帝國"] = "empire", ["共和國"] = "republic", ["邦"] = "state", ["州"] = "state", ["省"] = "province", ["郡"] = "county", ["縣"] = "county", ["城市"] = "city", ["市"] = "city", ["區"] = "district", ["鄉"] = "township", ["鎮"] = "town", ["村"] = "village", ["社區"] = "community", ["島"] = "island", ["島嶼"] = "island", ["群島"] = "archipelago", ["半島"] = "peninsula", ["山"] = "mountain", ["山脈"] = "mountain range", ["河"] = "river", ["河流"] = "river", ["谷"] = "valley", ["山谷"] = "valley", ["特別行政區"] = "special administrative region", ["直轄市"] = "direct-administered municipality", ["地級市"] = "prefecture-level city", ["縣級市"] = "county-level city", ["副省級市"] = "subprovincial city", ["副地級市"] = "sub-prefectural city", ["市轄區"] = "municipal district", ["自治區"] = "autonomous region", ["自治省"] = "autonomous province", ["自治州"] = "autonomous prefecture", ["自治共和國"] = "autonomous republic", ["自治市"] = "borough", ["屬地"] = "dependent territory", ["海外領地"] = "dependent territory", ["領地"] = "territory", ["聯邦屬地"] = "union territory", ["皇家屬地"] = "Crown dependency", ["教區"] = "parish", ["堂區"] = "parish", ["民政教區"] = "civil parish", ["廣域市"] = "metropolitan city", ["非建制地區"] = "unincorporated community", ["人口普查指定地區"] = "census-designated place", ["印第安保留地"] = "Indian reservation", ["羅馬行省"] = "Roman province", ["單一管理區"] = "unitary authority", ["地方行政區"] = "local government area", } local no_link_def_article = {link = false, article = "the"} local no_link_no_article = {link = false, article = false} --[==[ var: These qualifiers can be prepended onto any placetype and will be handled correctly. For example, the placetype `large city` will be displayed as `large <nowiki>[[city]]</nowiki>` and categorized as if `city` were specified. If the value in the following table is a string, the qualifier will display according to the string. If the value is `true`, the qualifier will be linked to its corresponding Wiktionary entry. If the value is `false`, the qualifier will not be linked but will appear as-is. Note that these qualifiers do not override placetypes with entries elsewhere that contain those same qualifiers. For example, the entry for `inland sea` in `placetype_data` will apply in preference to treating `inland sea` as equivalent to `sea`. ]==] export.placetype_qualifiers = { -- generic qualifiers ["huge"] = false, ["tiny"] = false, ["large"] = false, ["big"] = false, ["mid-size"] = false, ["mid-sized"] = false, ["small"] = false, ["sizable"] = false, ["important"] = false, ["long"] = false, ["short"] = false, ["major"] = false, ["minor"] = false, ["high"] = false, ["tall"] = false, ["low"] = false, ["left"] = false, -- left tributary ["right"] = false, -- right tributary ["modern"] = false, -- for use in opposition to "ancient" in another definition -- "former" qualifiers ["abandoned"] = true, ["ancient"] = true, ["deserted"] = true, ["extinct"] = true, ["former"] = false, ["historic"] = "historical", ["historical"] = true, ["medieval"] = true, ["mediaeval"] = true, ["ruined"] = true, ["traditional"] = true, -- sea qualifiers ["coastal"] = true, ["inland"] = true, -- note, we also have an entry in placetype_data for 'inland sea' to get a link to [[inland sea]] ["maritime"] = true, ["overseas"] = true, ["seaside"] = true, ["beachfront"] = true, ["beachside"] = true, ["riverside"] = true, -- lake qualifiers ["freshwater"] = true, ["saltwater"] = true, ["endorheic"] = true, ["oxbow"] = true, ["ox-bow"] = "[[oxbow]]", -- [[ox-bow]] is a red link ["tidal"] = true, -- land qualifiers ["hilltop"] = true, ["hilly"] = true, ["insular"] = true, ["peninsular"] = true, ["chalk"] = true, ["karst"] = true, ["limestone"] = true, ["mountainous"] = true, ["mountaintop"] = true, ["alpine"] = true, ["volcanic"] = true, -- for an island -- political status qualifiers ["autonomous"] = true, ["incorporated"] = true, ["special"] = true, ["unincorporated"] = true, ["coterminous"] = true, -- monetary status/etc. qualifiers ["fashionable"] = true, ["wealthy"] = true, ["affluent"] = true, ["declining"] = true, -- city vs. rural qualifiers ["urban"] = true, ["suburban"] = true, ["exurban"] = true, ["outlying"] = true, ["remote"] = true, ["rural"] = true, ["outback"] = true, ["inner"] = false, ["inner-city"] = true, ["central"] = false, ["outer"] = false, -- land use qualifiers ["residential"] = true, ["agricultural"] = true, ["business"] = true, ["commercial"] = true, ["industrial"] = true, -- business use qualifiers ["railroad"] = true, ["railway"] = true, ["farming"] = true, ["fishing"] = true, ["mining"] = true, ["logging"] = true, ["cattle"] = true, -- tourism use qualifiers ["resort"] = true, -- note, we also have 'resort city' and 'resort town', that take precedecne ["spa"] = true, -- note, we also have 'spa city' and 'spa town', that take precedecne ["ski"] = true, -- note, we also have 'ski resort city' and 'ski resort town', that take precedecne -- religious qualifiers ["holy"] = true, ["sacred"] = true, ["religious"] = true, ["secular"] = true, -- qualifiers for nonexistent places ["claimed"] = false, ["fictional"] = true, ["legendary"] = true, ["mythical"] = true, ["mythological"] = true, -- directional qualifiers ["northern"] = false, ["southern"] = false, ["eastern"] = false, ["western"] = false, ["north"] = false, ["south"] = false, ["east"] = false, ["west"] = false, ["northeastern"] = false, ["southeastern"] = false, ["northwestern"] = false, ["southwestern"] = false, ["northeast"] = false, ["southeast"] = false, ["northwest"] = false, ["southwest"] = false, -- seasonal qualifiers ["summer"] = true, -- e.g. for 'summer capital' ["winter"] = true, -- legal status qualifiers -- FIXME: Two-word qualifiers don't work yet. But you can enter "de-facto" and it's canonicalized to [[de facto]]. ["official"] = true, ["unofficial"] = true, ["de facto"] = true, -- 'de facto capital' ["de-facto"] = "[[de facto]]", -- [[de-facto]] is a red link ["de jure"] = true, -- 'de jure capital' ["de-jure"] = "[[de jure]]", -- [[de-jure]] is a red link -- NOTE: 'unrecognized/unrecognised' are handled as placetypes 'unrecognized country', 'unrecognized state' -- misc. qualifiers ["planned"] = true, ["chartered"] = true, ["landlocked"] = true, ["uninhabited"] = true, -- superlative qualifiers ["first"] = no_link_def_article, ["second"] = no_link_def_article, -- for "second largest" etc. ["third"] = no_link_def_article, ["fourth"] = no_link_def_article, ["last"] = no_link_def_article, ["only"] = no_link_def_article, ["sole"] = no_link_def_article, ["main"] = no_link_def_article, ["largest"] = no_link_def_article, ["biggest"] = no_link_def_article, ["smallest"] = no_link_def_article, ["shortest"] = no_link_def_article, ["longest"] = no_link_def_article, ["tallest"] = no_link_def_article, ["highest"] = no_link_def_article, ["lowest"] = no_link_def_article, ["leftmost"] = no_link_def_article, ["rightmost"] = no_link_def_article, ["innermost"] = no_link_def_article, ["outermost"] = no_link_def_article, ["northernmost"] = no_link_def_article, ["southernmost"] = no_link_def_article, ["westernmost"] = no_link_def_article, ["easternmost"] = no_link_def_article, ["northwesternmost"] = no_link_def_article, ["southwesternmost"] = no_link_def_article, ["northeasternmost"] = no_link_def_article, ["southeasternmost"] = no_link_def_article, -- several/various ["several"] = no_link_no_article, ["various"] = no_link_no_article, ["numerous"] = no_link_no_article, ["multiple"] = no_link_no_article, ["many"] = no_link_no_article, ["other"] = no_link_no_article, } --[==[ var: In this table, the key qualifiers should be treated the same as the value qualifiers for categorization purposes. This is overridden by `placetype_data` and `qualifier_to_placetype_equivs`. ]==] export.former_qualifiers = { ["abandoned"] = {"FORMER"}, ["ancient"] = {"ANCIENT", "FORMER"}, ["former"] = {"FORMER"}, ["extinct"] = {"FORMER"}, ["historic"] = {"FORMER"}, ["historical"] = {"FORMER"}, ["medieval"] = {"ANCIENT", "FORMER"}, ["mediaeval"] = {"ANCIENT", "FORMER"}, ["ruined"] = {"ANCIENT", "FORMER"}, ["traditional"] = {"FORMER"}, } --[==[ var: In this table, any placetypes containing these qualifiers that do not occur in `placetype_data` should be mapped to the specified placetypes for categorization purposes. Entries here are overridden by `placetype_data`. ]==] export.qualifier_to_placetype_equivs = { ["fictional"] = "fictional location", ["legendary"] = "mythological location", ["mythical"] = "mythological location", ["mythological"] = "mythological location", -- For e.g. Taiwan as a "claimed province" of China; parts of Belize as claimed by Guatemala; various islands -- claimed by various parties in East Asia. FIXME: We should conditionalize on what is being claimed since there are -- also claimed capitals, e.g. Israel and Palestine claim Jerusalem as their capital. ["claimed"] = "claimed political division", } --[==[ var: Mapping from placetypes to the corresponding plural category-only placetype for a capital of that placetype. The reverse mapping also exists. ]==] export.placetype_to_capital_cat = { ["autonomous community"] = "autonomous community capitals", ["canton"] = "cantonal capitals", ["comarca"] = "comarca capitals", ["country"] = "national capitals", -- The following are not obviously different from 'county seats' but the latte terminology is used in the US. ["county"] = "county capitals", ["department"] = "departmental capitals", ["district"] = "district capitals", ["division"] = "division capitals", ["emirate"] = "emirate capitals", ["governorate"] = "governorate capitals", ["hromada"] = "hromada capitals", ["krai"] = "krai capitals", ["metropolitan city"] = "metropolitan city capitals", ["municipality"] = "municipal capitals", ["oblast"] = "oblast capitals", ["okrug"] = "okrug capitals", ["prefecture"] = "prefectural capitals", ["province"] = "provincial capitals", ["raion"] = "raion capitals", ["regency"] = "regency capitals", ["region"] = "regional capitals", ["regional unit"] = "regional unit capitals", ["republic"] = "republic capitals", ["state"] = "state capitals", ["territory"] = "territorial capitals", ["voivodeship"] = "voivodeship capitals", } --[==[ var: This contains placenames that should be preceded by an article (almost always "the"). '''NOTE''': There are multiple ways that placenames can come to be preceded by "the": # Listed here. # Given in [[Module:place/locations]] with an initial "the". All such placenames are added to this map by the code just below the map. # The placetype of the placename has `holonym_use_the = true` in its placetype_data. # A regex in placename_the_re matches the placename. Note that "the" is added only before the first holonym in a place description. ]==] export.placename_article = { -- This should only contain info that can't be inferred from [[Module:place/locations]]. ["archipelago"] = { ["Cyclades"] = "the", ["Dodecanese"] = "the", }, ["country"] = { ["Holy Roman Empire"] = "the", }, ["empire"] = { ["Holy Roman Empire"] = "the", }, ["island"] = { ["North Island"] = "the", ["South Island"] = "the", }, ["region"] = { ["Balkans"] = "the", ["Russian Far East"] = "the", ["Caribbean"] = "the", ["Caucasus"] = "the", ["Middle East"] = "the", ["New Territories"] = "the", ["North Caucasus"] = "the", ["South Caucasus"] = "the", ["West Bank"] = "the", ["Gaza Strip"] = "the", }, ["valley"] = { ["San Fernando Valley"] = "the", }, } --[==[ var: Regular expressions to apply to determine whether we need to put 'the' before a holonym. The key "*" applies to all holonyms, otherwise only the regexes for the holonym's placetype apply. ]==] export.placename_the_re = { -- We don't need entries for peninsulas, seas, oceans, gulfs or rivers -- because they have holonym_use_the = true. ["*"] = {"^Isle of ", " Islands$", " Mountains$", " Empire$", " Country$", " Region$", " District$", "^City of "}, ["bay"] = {"^Bay of "}, ["lake"] = {"^Lake of "}, ["country"] = {"^Republic of ", " Republic$"}, ["republic"] = {"^Republic of ", " Republic$"}, ["region"] = {" [Rr]egion$"}, ["river"] = {" River$"}, ["local government area"] = {"^Shire of "}, ["county"] = {"^Shire of "}, ["Indian reservation"] = {" Reservation", " Nation"}, ["tribal jurisdictional area"] = {" Reservation", " Nation"}, } --[==[ var: If any of the following holonyms are present, the associated holonyms are automatically added to the end of the list of holonyms for categorization (but not display) purposes. ]==] export.cat_implications = { ["region"] = { ["東歐"] = {"continent/歐洲"}, ["中歐"] = {"continent/歐洲"}, ["西歐"] = {"continent/歐洲"}, ["南歐"] = {"continent/歐洲"}, ["北歐"] = {"continent/歐洲"}, ["東北歐"] = {"continent/歐洲"}, ["東南歐"] = {"continent/歐洲"}, ["北高加索"] = {"continent/歐洲"}, ["南高加索"] = {"continent/亞洲"}, ["南亞"] = {"continent/亞洲"}, ["東亞"] = {"continent/亞洲"}, ["中亞"] = {"continent/亞洲"}, ["西亞"] = {"continent/亞洲"}, ["東南亞"] = {"continent/亞洲"}, ["北亞"] = {"continent/亞洲"}, ["安納托利亞"] = {"continent/亞洲"}, ["小亞細亞"] = {"continent/亞洲"}, ["美索不達米亞"] = {"continent/亞洲"}, ["北非"] = {"continent/非洲"}, ["中非"] = {"continent/非洲"}, ["西非"] = {"continent/非洲"}, ["東非"] = {"continent/非洲"}, ["南非"] = {"continent/非洲"}, ["中美洲"] = {"continent/中美洲"}, ["加勒比地區"] = {"continent/北美洲"}, ["玻里尼西亞"] = {"continent/大洋洲"}, ["密克羅尼西亞"] = {"continent/大洋洲"}, ["美拉尼西亞"] = {"continent/大洋洲"}, ["西伯利亞"] = {"country/俄羅斯", "continent/亞洲"}, ["俄羅斯遠東地區"] = {"country/俄羅斯", "continent/亞洲"}, ["南威爾斯"] = {"constituent country/威爾斯", "continent/歐洲"}, ["巴爾幹半島"] = {"continent/歐洲"}, ["約旦河西岸"] = {"country/巴勒斯坦", "continent/亞洲"}, ["加薩"] = {"country/巴勒斯坦", "continent/亞洲"}, ["加薩走廊"] = {"country/巴勒斯坦", "continent/亞洲"}, } } ------------------------------------------------------------------------------------------ -- Category and display handlers -- ------------------------------------------------------------------------------------------ -- ZH: returns "" for continent/continental-region/supercontinent/planet specs (非洲城市 not 非洲的城市); -- returns 的 for all other location types (法國的城市, 加州的城市, etc.) local function spec_de_particle(spec) local pt = spec and spec.placetype if pt then local pts = type(pt) == "table" and pt or {pt} for _, p in ipairs(pts) do if p == "continent" or p == "continental region" or p == "supercontinent" or p == "planet" then return "" end end end return export.zh_strings.de_particle end local function city_type_cat_handler(data) local entry_placetype = data.entry_placetype local generic_before_non_cities = export.get_placetype_prop(entry_placetype, "generic_before_non_cities") if not generic_before_non_cities then internal_error("city_type_cat_handler called on placetype %s that doesn't have a `generic_before_non_cities`" .. " setting", entry_placetype) end local plural_entry_placetype = export.pluralize_placetype(entry_placetype) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and not spec.is_city then -- ZH: "法國的城市" / "非洲城市" (continent/region omit 的) local zh_name_raw = export.get_zh_placetype_name(entry_placetype) local zh_entry_name = zh_name_raw and export.format_zh_name(zh_name_raw) or plural_entry_placetype local retcats = {export.get_prefixed_key(key, spec) .. spec_de_particle(spec) .. zh_entry_name} if container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. spec_de_particle(container.spec) .. zh_entry_name) end end return retcats end end local function capital_city_cat_handler(data, non_city) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc -- The first time we're called we want to return something; otherwise we will be called for later-mentioned -- holonyms, which can result in wrongly classifying into e.g. `National capitals`. Simulate the loop in -- find_placetype_cat_specs() over holonyms so we get the proper `Cities in ...` categories as well as the capital -- category/categories we add below. local retcats if not non_city and place_desc.holonyms then for h_index, holonym in export.get_holonyms_to_check(place_desc, holonym_index) do local h_placetype, h_placename = holonym.placetype, holonym.unlinked_placename retcats = city_type_cat_handler { entry_placetype = "city", holonym_placetype = h_placetype, holonym_placename = h_placename, holonym_index = h_index, place_desc = place_desc, } if retcats then break end end end if not retcats then retcats = {} end -- Now find the appropriate capital-type category for the placetype of the holonym, e.g. 'State capitals'. If we -- recognize the holonym among the known holonyms in [[Module:place/locations]], also add a category like 'State -- capitals of the United States'. Truncate e.g. 'autonomous region' to 'region', 'union territory' to 'territory' -- when looking up the type of capital category, if we can't find an entry for the holonym placetype itself (there's -- an entry for 'autonomous community'). -- ZH: look up Chinese capital label by holonym placetype ("首都", "省會", "首府", etc.) local zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype] if not zh_capital_name then zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype:gsub("^.* ", "")] end local de = export.zh_strings.de_particle if zh_capital_name then local inserted_specific_variant_cat = false if holonym_index then -- Now find the first recognized holonym location. We don't stop when :also is seen because of the common pattern -- where we use :also to specify that a given city is the capital at multiple surrounding levels. local matching_group, matching_key, matching_spec, matching_container_trail, matching_holonym_index for h_index = holonym_index, #place_desc.holonyms do if place_desc.holonyms[h_index].placetype then matching_group, matching_key, matching_spec, matching_container_trail = export.find_matching_holonym_location { holonym_placetype = place_desc.holonyms[h_index].placetype, holonym_placename = place_desc.holonyms[h_index].unlinked_placename, holonym_index = h_index, place_desc = place_desc, } if matching_group then matching_holonym_index = h_index break end end end if matching_holonym_index == holonym_index then if matching_container_trail[1] and not matching_spec.no_container_cat then for _, container in ipairs(matching_container_trail[1]) do -- ZH: "美國的首都" / "亞洲首都" (continent omit 的) insert(retcats, export.get_prefixed_key(container.key, container.spec) .. spec_de_particle(container.spec) .. zh_capital_name) inserted_specific_variant_cat = true end end elseif matching_holonym_index then -- Check to make sure that the holonym placetype we were called on is listed among the -- divtypes of the location we found. local function insert_specific_variant_if_possible(key, spec) return export.get_equiv_placetype_prop(holonym_placetype, function(pt) local plural_holonym_placetype = export.pluralize_placetype(pt) local saw_matching_div if spec.divs then local divs = spec.divs if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) ~= "table" then div = {type = div} end if plural_holonym_placetype == div.type then saw_matching_div = true break end end end if saw_matching_div then insert(retcats, export.get_prefixed_key(key, spec) .. spec_de_particle(spec) .. zh_capital_name) return true end return false end) end if insert_specific_variant_if_possible(matching_key, matching_spec) then inserted_specific_variant_cat = true elseif not matching_spec.no_container_cat then for _, containers in ipairs(matching_container_trail) do local saw_no_container_cat = false for _, container in ipairs(containers) do if insert_specific_variant_if_possible(container.key, container.spec) then inserted_specific_variant_cat = true break end saw_no_container_cat = saw_no_container_cat or container.spec.no_container_cat end if inserted_specific_variant_cat or saw_no_container_cat then break end end end end else -- This happens when in an invocation like {{place|en|capital city|s/Haryana,Punjab}} for -- [[Chandigarh]]. We fall back to older code that doesn't depend on the holonym index existing. -- FIXME: This may not be necessary. In the example just given, when processing Haryana we add to -- [[:Category:en:State capitals of India]], and nothing extra gets added when processing Punjab. -- Possibly we can just skip this case entirely. local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. spec_de_particle(container.spec) .. zh_capital_name) inserted_specific_variant_cat = true end end end if not inserted_specific_variant_cat then insert(retcats, zh_capital_name) end else -- We didn't recognize the holonym placetype; fall back to generic capital label. insert(retcats, "首都") end return retcats end --[=[ This is invoked specially for all placetypes (see the `*` placetype key at the bottom of `placetype_data`). This is used in two ways: # To add pages to generic holonym categories like [[:Category:en:Places in Merseyside, England]] (and [[:Category:en:Places in England]]) for any pages that have `co/Merseyside` as their holonym. # To categorize demonyms in bare placename categories like [[:Category:en:Merseyside, England]] if the demonym description mentions `co/Merseyside` and doesn't mention a more specific placename that also has a category. (In this case there are none, but we can have demonyms at multiple levels, e.g. in France for individual villages, departments, administrative regions, and for the entire country, and for example we only want to categorize a demonym into [[:Category:France]] if no more specific category applies.) Unlike when invoked from {{tl|place}}, a demonym invocation only adds the most specific holonym category and not the category of any containing polity (hence if we add [[:Category:en:Merseyside, England]] we won't also add [[:Category:England]]). This code also handles cities; e.g. for the first use case above, it would be used to add a page that has `city/Boston` as a holonym to [[:Category:en:Places in Boston]], along with [[:Category:en:Places in Massachusetts, USA]] and [[:Category:en:Places in the United States]]. The city handler tries to deal with the possibility of multiple cities having the same name. For example, the code in [[Module:place/locations]] knows about the city of [[Columbus]], [[Ohio]], which has containing polities `Ohio` (a state) and `the United States` (a country). If either containing polity is mentioned, the handler proceeds to return the key `Columbus` (along with `Ohio, USA` and `the United States`). Otherwise, if any other state or country is mentioned, the handler returns nothing, and otherwise it assumes the mentioned city is the one we're considering and returns `Columbus` etc. This works correctly if the place only mentions Ohio and a holonym for a Columbus in a different country is encountered, because of the function `augment_holonyms_with_container`, which adds the US as a holonym when Ohio is encountered. The single parameter `data` is as in category handlers. The return value is a list of categories (without the preceding language code). ]=] local function generic_place_cat_handler(data) local from_demonym = data.from_demonym local retcats = {} local function insert_retkey(key, spec) if from_demonym then insert(retcats, key) else -- ZH: "法國地名" (location_key + 地名) insert(retcats, export.get_prefixed_key(key, spec) .. "地名") end end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then if not spec.no_generic_place_cat then -- This applies to continents and continental regions. insert_retkey(key, spec) end -- Categorize both in key, and in the larger location(s) that the key is part of, e.g. [[Hirakata]] goes in -- both [[Category:Places in Osaka Prefecture, Japan]] and [[Category:Places in Japan]]. But not when -- no_container_cat is set (e.g. for 'United Kingdom'). if not spec.no_container_cat then for _, container_set in ipairs(container_trail) do local stop_adding_containers = false for _, container in ipairs(container_set) do if not container.spec.no_generic_place_cat then insert_retkey(container.key, container.spec) end if container.spec.no_container_cat then stop_adding_containers = true end end if stop_adding_containers then break end end end return retcats end end --[==[ Special category handler run for all placetypes that checks for specified division placetypes of known locations and categorizes appropriately. ]==] function export.political_division_cat_handler(data) if data.from_demonym then return end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then local divlists = {} if spec.divs then insert(divlists, spec.divs) end if spec.addl_divs then insert(divlists, spec.addl_divs) end for _, divlist in ipairs(divlists) do if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local sgdiv = export.maybe_singularize_placetype(div.type) or div.type local prep = div.prep or "of" local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" then cat_as = {cat_as} end if not export.placetype_data[sgdiv] then internal_error("Placetype %s associated with known location key %s and data %s not found in " .. "`placetype_data`", sgdiv, key, spec) end if sgdiv == data.entry_placetype then -- ZH: "臺灣的縣" format (location_key + 的 + zh_name); ignore cat_as grouping local zh_n_raw = export.get_zh_placetype_name(data.entry_placetype) local zh_n = zh_n_raw and export.format_zh_name(zh_n_raw) or ucfirst(data.entry_placetype) return {export.get_prefixed_key(key, spec) .. export.zh_strings.de_particle .. zh_n} end end end end end --[==[ This is used to add pages to "bare" categories like [[:Category:en:Georgia, USA]] for `[[Georgia]]` and any foreign-language terms that are translations of the state of Georgia. We look at the page title (or its overridden value in {{para|pagename}}) as well as the glosses in {{para|t}}/{{para|t2}} etc., various extra-info values such as the modern names in {{para|modern}}, and any values specified using a form-of directive. We need to pay attention to the entry placetypes specified so we don't overcategorize; e.g. the US state of Georgia is `[[Джорджия]]` in Russian but the country of Georgia is `[[Грузия]]`, and if we just looked for matching names, we'd get both Russian terms categorized into both [[:Category:ru:Georgia, USA]] and [[:Category:ru:Georgia]]. We also need to check the containing holonyms to make sure there isn't a mismatch (so we don't e.g. categorize Newark, Delaware in [[:Category:en:Newark]], which is intended for Newark, New Jersey). ]==] function export.get_bare_categories(args, overall_place_spec) local bare_cats = {} local place_descs = overall_place_spec.descs local possible_placetypes_by_place_desc = {} for i, place_desc in ipairs(place_descs) do possible_placetypes_by_place_desc[i] = {} for _, placetype in ipairs(place_desc.placetypes) do if not export.placetype_is_ignorable(placetype) then local equivs = export.get_placetype_equivs(placetype, {register_former_as_non_former = true}) for _, equiv in ipairs(equivs) do insert(possible_placetypes_by_place_desc[i], equiv.placetype) end end end end local function check_term(term) -- Treat Wikipedia links like local ones. term = term:gsub("%[%[w:", "[["):gsub("%[%[wikipedia:", "[[") term = export.remove_links_and_html(term) term = term:gsub("^the ", "") for i, place_desc in ipairs(place_descs) do -- Iterate over all matching locations in case there are multiple, as with Delhi defined as -- {{place|en|megacity/and/union territory|c/India|containing the national capital [[New Delhi]]}}. for group, key, spec, container_trail in export.iterate_matching_holonym_location { holonym_placetype = possible_placetypes_by_place_desc[i], holonym_placename = term, place_desc = place_desc, } do insert(bare_cats, key) end end end -- FIXME: Should we only do the following if the language is English (requires that the lang is passed in)? -- We should always do it if `pagename` is given (as it is with {{tcl}}) but maybe not otherwise unless 1=en. There -- are cases like [[Ankara]] = English name for capital of Turkey, but also the name in various languages for the -- capital of Ghana (= English [[Accra]]). But this should get caught by mismatching the containing country. The -- advantage of checking when the language isn't English is we catch those places that fail to give an English -- translation but where the translation happens to be the same as the other-language spelling. However, I don't -- know how often this situation occurs. check_term(args.pagename or mw.loadData("Module:headword/data").pagename) for _, t in ipairs(args.t) do check_term(t) end local function check_termobj_list(terms) for _, term in ipairs(terms) do if term.eq then check_term(term.eq) end if term.alt or term.term then check_term(term.alt or term.term) end end end for _, extra_info_terms in ipairs(overall_place_spec.extra_info) do local arg = extra_info_terms.arg if arg == "modern" or arg == "now" or arg == "full" or arg == "short" then check_termobj_list(extra_info_terms.terms) end end for _, directive in ipairs(overall_place_spec.directives) do check_termobj_list(directive.terms) end return bare_cats end --[==[ This is used to augment the holonyms associated with a place description with the containing polities. For example, given the following: `# {{tl|place|en|subprefecture|pref/Hokkaido}}.` We auto-add Japan as another holonym so that the term gets categorized into [[:Category:Subprefectures of Japan]]. To avoid over-categorizing we need to check to make sure no other countries are specified as holonyms. ]==] function export.augment_holonyms_with_container(place_descs) for _, place_desc in ipairs(place_descs) do if place_desc.holonyms then -- This ends up containing a copy of the original holonyms, with the augmented holonyms inserted in their -- appropriate position. We don't just put them at the end because some holonyms have use the `:also` -- modifier, which causes category processing to restart at that point after generating categories for a -- preceding holonym, and we don't want the preceding holonym's augmented holonyms interfering with -- categorization of a later holonym. We proceed from right to left, and each time we augment, we copy -- the holonyms with the augmented holonym(s) inserted appropriately and replace the place description's -- holonyms with the augmented ones before the next iteration. The reason for this is so that e.g. -- {{place|neighborhood|city/Birmingham|co/West Midlands|cc/England}} doesn't throw an error during the -- augmentation process due to 'Birmingham' referring to two known locations (in England and Alabama). If -- we go left to right, we will throw an ambiguity error on `city/Birmingham` because code to exclude -- Birmingham, Alabama needs `c/United Kingdom` present (to cause a mismatch with `c/United States`), -- which isn't yet present as the augmentation code hasn't gotten to `cc/England` yet. For similar -- reasons, we need to include the augmented holonyms in the holonyms considered in the next iteration -- rather than modifying the place description once at athe end. for i = #place_desc.holonyms, 1, -1 do local holonym = place_desc.holonyms[i] if holonym.placetype and not export.placetype_is_ignorable(holonym.placetype) then local group, key, spec, container_trail = export.find_matching_holonym_location { holonym_placetype = holonym.placetype, holonym_placename = holonym.unlinked_placename, holonym_index = i, place_desc = place_desc, } if group and container_trail[1] and not spec.no_auto_augment_container then local augmented_holonyms = {} for j = 1, i do insert(augmented_holonyms, place_desc.holonyms[j]) end for _, containers in ipairs(container_trail) do local any_no_auto_augment_container = false for _, container in ipairs(containers) do any_no_auto_augment_container = any_no_auto_augment_container or container.spec.no_auto_augment_container local containing_type = container.spec.placetype if type(containing_type) == "table" then -- If the containing type is a list, use the first element as the canonical variant. containing_type = containing_type[1] end local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) -- Don't side-effect holonyms while processing them. local new_holonym = { -- By the time we run, the display has already been generated so we don't need to -- set display_placename. placetype = containing_type, -- placename_to_key() for the group should correctly handle both full and elliptical -- placenames, but the full placename seems less likely to be ambiguous. FIXME: We -- should just store the key directly and use it when available to avoid having to -- convert key to placename and back to key. unlinked_placename = full_container_placename, -- Indicate that this is an augmented holonym, and was derived from the specified -- holonym. In iterate_matching_holonym_location(), we ignore augmented holonyms -- derived from holonyms that are different from the holonym we're searching for but -- of the same placetype. This is to correctly handle a situation like -- {{place|river|dept/Ardèche,Gard,Vaucluse,Bouches-du-Rhône|c/France}}. Here, -- `Ardèche` is in `r/Auvergne-Rhône-Alpes`, while `Gard` is in `r/Occitania` and -- the other two are in `r/Provence-Alpes-Côte d'Azur`. Augmenting proceeds from -- right to left, so after it adds `r/Provence-Alpes-Côte d'Azur` to -- `Bouches-du-Rhône`, Vaucluse gets augmented correctly but `Gard` fails to match -- in find_matching_holonym_location() because of the mismatch between augmented -- `r/Provence-Alpes-Côte d'Azur` and actual `r/Occitania`. Similarly, all later -- calls to find_matching_holonym_location() fail to match `Gard` (and likewise -- `Ardèche`) against any known location. To deal with this, we mark augmented -- holoynms as being augmented due to a source holonym, and when processing a given -- holonym, ignore augmented holonyms from other holonyms of the same placetype. -- The restriction to the same placetype is so that `Birmingham` still gets -- correctly disambiguated to Birmingham, England in the example given above near -- the top of this function, using the augmented holonym `c/United Kingdom` added by -- the specified `cc/England` (whose placetype `constituent country` differs from -- the placetype `city` of Birmingham). augmented_from_holonym = holonym, } insert(augmented_holonyms, new_holonym) -- But it is safe to modify other parts of the place_desc. export.key_holonym_into_place_desc(place_desc, new_holonym) end if any_no_auto_augment_container then break end end for j = i + 1, #place_desc.holonyms do insert(augmented_holonyms, place_desc.holonyms[j]) end place_desc.holonyms = augmented_holonyms end end end end end end -- Cat handler for district, areas, neighborhoods and suburbs. Districts are tricky because they can either be political -- divisions or city neighborhoods. Areas similarly can be political divisions (rarely; specifically, in Kuwait), city -- neighborhoods or larger geographical areas/regions. We handle this as follows: -- (1) `placetype_data` cat entries for specific countries or country divisions take precedence over cat_handlers, so if -- the user says {{tl|place|district|s/Maharashtra|c/India}}, we won't even be called because there is an entry that -- categorizes into [[:Category|Districts of Maharashtra, India]]. -- (2) If we're called, we check the holonym we're called on to see if it is a recognized city, e.g. if we're called -- using {{tl|place|district|city/Mumbai|s/Maharashtra|c/India}}. If so, we categorize under e.g. -- [[:Category:Neighbourhoods of Mumbai]]. (Choosing the spelling "neighbourhoods" because we're in India.) -- (3) If we're called and the holonym is not a recognized city, we check if the placetype has has_neighborhoods set. -- If so, it's "city-like" and we categorize under the first containing polity that we recognize. For example, if -- we're called using {{tl|place|district|town/Northampton|co/Hampshire|s/Massachusetts|c/US}}, we should recognize -- town as "city-like" and categorize under [[:Category:Neighborhoods in Massachusetts]]. (Note "in" not "of", and -- note the spelling "neighborhoods" because we're in the US.) -- (4) If the holonym is not city-like, we do nothing. If there's a city or city-like placetype farther up (e.g. we're -- called as {{tl|place|district|ward/Foo|mun/Bar|...}}), we will handle the city-like entity according to (2) or -- (3) when called on that holonym. Otherwise either the categorization in (1) takes place or there's no -- categorization. local function district_neighborhood_cat_handler(data) local function get_plural_entry_placetype(location_spec, container_trail) if data.entry_placetype == "suburb" then return "Suburbs" else -- Check for `british_spelling` setting on the spec itself or any container. local uses_british_spelling = location_spec.british_spelling if uses_british_spelling == nil and container_trail then for _, container_set in ipairs(container_trail) do local must_outer_break = false for _, container in ipairs(container_set) do if container.spec.british_spelling ~= nil then uses_british_spelling = container.spec.british_spelling must_outer_break = true break end end if must_outer_break then break end end end return uses_british_spelling and "Neighbourhoods" or "Neighborhoods" end end -- First check the immediate holonym to see if it's a city or a city-like top-level entity (Hong Kong, Bonaire, -- etc.) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and spec.is_city then return {get_plural_entry_placetype(spec, container_trail) .. " of " .. export.get_prefixed_key(key, spec)} end -- If the entry placetype is neighbo(u)rhood, assume it is a neighborhood even if there isn't a city-like -- entity father up the chain. (E.g. due to a mistaken use of m/ instead of mun/ for municipality.) local has_neighborhoods local entry_placetype = data.entry_placetype if entry_placetype == "neighborhood" or entry_placetype == "neighbourhood" or entry_placetype == "suburb" then has_neighborhoods = true else -- Otherwise, make sure the current holonym is city-like. has_neighborhoods = export.get_equiv_placetype_prop(data.holonym_placetype, function(pt) return export.get_placetype_prop(pt, "has_neighborhoods") end, {continue_on_nil_only = true}) end if has_neighborhoods then -- Loop up the holonyms, looking for city and city-like entities in case of e.g. [[Sepulveda]] written -- {{place|en|neighborhood|valley/San Fernando Valley|city/Los Angeles|s/California|c/USA}} -- but also look for a recognizable poldiv, and if so categorize as "Neighborhoods in POLDIV". We need -- to start with the current holonym, which is especially important for neighborhoods and suburbs that -- may have the first holonym be a recognizable province, etc. but can't hurt otherwise. (Previously -- we skipped the first/current holonym.) for other_holonym_index, other_holonym in export.get_holonyms_to_check(data.place_desc, data.holonym_index) do local other_holonym_data = { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = data.place_desc, } local group, key, spec, container_trail = export.find_matching_holonym_location(other_holonym_data) if group and not spec.is_former_place then return {get_plural_entry_placetype(spec, container_trail) .. (spec.is_city and " of " or " in ") .. export.get_prefixed_key(key, spec)} end end end end function export.check_already_seen_string(holonym_placename, already_seen_strings) local canon_placename = ulower(m_links.remove_links(holonym_placename)) if type(already_seen_strings) ~= "table" then already_seen_strings = {already_seen_strings} end for _, already_seen_string in ipairs(already_seen_strings) do if canon_placename:find(already_seen_string) then return true end end return false end -- Prefix display handler that adds a prefix such as "Metropolitan Borough of " to the display -- form of holonyms. We make sure the holonym doesn't contain the prefix or some variant already. -- We do this by checking if any of the strings in ALREADY_SEEN_STRINGS, either a single string or -- a list of strings, or the prefix if ALREADY_SEEN_STRINGS is omitted, are found in the holonym -- placename, ignoring case and links. If the prefix isn't already present, we create a link that -- uses the raw form as the link destination but the prefixed form as the display form, unless the -- holonym already has a link in it, in which case we just add the prefix. local function prefix_display_handler(prefix, holonym_placename, already_seen_strings) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(prefix)) then return holonym_placename end if holonym_placename:find("%[%[") then return prefix .. " " .. holonym_placename end return prefix .. " [[" .. holonym_placename .. "]]" end -- Suffix display handler that adds a suffix such as " parish" to the display form of holonyms. -- Works identically to prefix_display_handler but for suffixes instead of prefixes. local function suffix_display_handler(suffix, holonym_placename, already_seen_strings, include_suffix_in_link) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(suffix)) then return holonym_placename end if holonym_placename:find("%[%[") then return holonym_placename .. " " .. suffix end if include_suffix_in_link then return "[[" .. holonym_placename .. " " .. suffix .. "]]" else return "[[" .. holonym_placename .. "]] " .. suffix end end -- Display handler for boroughs. New York City boroughs are display as-is. Others are suffixed -- with "borough". local function borough_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.new_york_boroughs[unlinked_placename] then -- Hack: don't display "borough" after the names of NYC boroughs return holonym_placename end return suffix_display_handler("borough", holonym_placename) end local function county_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) -- Display handler for Irish counties. Irish counties are displayed as e.g. "County [[Cork]]". if m_locations.ireland_counties["County " .. unlinked_placename .. ", Ireland"] or m_locations.northern_ireland_counties["County " .. unlinked_placename .. ", Northern Ireland"] then return prefix_display_handler("County", holonym_placename) end -- Display handler for Taiwanese counties. Taiwanese counties are displayed as e.g. "[[Chiayi]] County". if m_locations.taiwan_counties[unlinked_placename .. " County, Taiwan"] then return suffix_display_handler("County", holonym_placename) end -- Display handler for Romanian counties. Romanian counties are displayed as e.g. "[[Cluj]] County". if m_locations.romania_counties[unlinked_placename .. " County, Romania"] then return suffix_display_handler("County", holonym_placename) end -- FIXME, we need the same for US counties but need to key off the country, not the specific county. -- Others are displayed as-is. return holonym_placename end -- Display handler for prefectures. Japanese prefectures are displayed as e.g. "[[Fukushima]] Prefecture". -- Others are displayed as e.g. "[[Fthiotida]] prefecture". local function prefecture_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) local suffix = m_locations.japan_prefectures[unlinked_placename .. " Prefecture, Japan"] and "Prefecture" or "prefecture" return suffix_display_handler(suffix, holonym_placename) end -- Display handler for provinces of Bulgaria, Iran, Laos, North and South Korea, Thailand, Turkey and Vietnam. Recognized -- provinces are displayed as e.g. "[[Gyeonggi]] Province" or "[[Antalya]] Province". Others are displayed as-is. local function province_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.bulgaria_provinces[unlinked_placename .. "Province, Bulgaria"] or m_locations.iran_provinces[unlinked_placename .. " Province, Iran"] or m_locations.laos_provinces[unlinked_placename .. " Province, Laos"] or m_locations.north_korea_provinces[unlinked_placename .. " Province, North Korea"] or m_locations.south_korea_provinces[unlinked_placename .. " Province, South Korea"] or m_locations.thailand_provinces[unlinked_placename .. " Province, Thailand"] or m_locations.turkey_provinces[unlinked_placename .. " Province, Turkey"] or m_locations.vietnam_provinces[unlinked_placename .. " Province, Vietnam"] then return suffix_display_handler("Province", holonym_placename) end return holonym_placename end -- Display handler for Nigerian states. Nigerian states are display as "[[Kano]] State". Others are displayed as-is. local function state_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.nigeria_states[unlinked_placename .. " State, Nigeria"] then return suffix_display_handler("State", holonym_placename) end return holonym_placename end -- Display handler for voivodeships. Display as e.g. [[Subcarpathian Voivodeship]]. local function voivodesip_display_handler(holonym_placetype, holonym_placename) return suffix_display_handler("Voivodeship", holonym_placename, nil, "include_suffix_in_link") end ------------------------------------------------------------------------------------------ -- Placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: Main placetype data structure. This specifies, for each canonicalized placetype, various properties. The keys are placetypes (in the singular, except for category-only placetypes, which are plural and followed by `!`), and the value is a table of properties. The `"*"` key is special and is used for adding "generic" categories of the form `Places in ``location`` `; it runs for all entry placetypes. Keys in the form of plural placetypes followed by `!` are used only in [[Module:category tree/topic cat/data/Places]] for specifying the properties of categories containing the specified placetype, esp. bare categories like [[:Category:States and territories]] (rather than qualified categories like [[:Category:States and territories of Australia]]). Keys under the value table for a given placetype of are two types: ''property keys'' (which specify the value of specific properties) and ''categorization keys'' (which tell how to categorize certain sorts of holonyms if the placetype in question occurs as an entry placetype). Categorization keys are either the special value `default` or are wildcard strings with a slash in them, such as `"country/*"`. Note that only wildcard strings are currently allowed directly in the placetype data; everything else is handled through category handlers, either per-placetype or special (such as `political_division_cat_handler`). The algorithm for how category keys and handlers are used to generate categories is described at the top of [[Module:place]]. There are several recognized property keys, of various types: 1. The following link-related property keys are recognized: * `link`: '''Required''' except in category-only placetypes ending in `!`. Describes how to link and display the placetype in the formatted description when occurring as an entry placetype. Also used for formatting pluralized placetypes (which may occur in entry placetypes, esp. new-format ones, such as `two <<islands>>`) and may occur in categories). The possible values are: *# `true`: Link to the same-named Wiktionary entry. This creates a raw link, e.g. `<nowiki>[[city]]</nowiki>`, which is converted to an English-specific link by JavaScript postprocessing. If the placetype is plural, this creates a two-part raw link e.g. `<nowiki>[[city|cities]]</nowiki>`. *# `"w"`: Link to the same-named Wikipedia entry. This creates a two-part link, e.g. `<nowiki>[[w:census town|census town]]</nowiki>`, or `<nowiki>[[w:census town|census towns]]</nowiki>` if the placetype is given plural. *# `"+..."`: Create a two-part link to the entry following the `+` sign. For example, if `cercle` specifies `"+w:cercles of Mali"`, a two-part link `<nowiki>[[w:cercles of Mali|cercle]]</nowiki>` will be generated, or `<nowiki>[[w:cercles of Mali|cercles]]</nowiki>` if plural `cercles` is specified. *# `"separately"`: Link each word separately. For example, if `administrative territory` specifies `"separately"`, it will be linked as `<nowiki>[[administrative]] [[territory]]</nowiki>`, or as `<nowiki>[[administrative]] [[territory|territories]]</nowiki>` if plural `administrative territories` is given. *# another string: Use that string directly. If the placetype is plural, `pluralize()` in [[Module:en-utilities]] is called on the string, which will correctly pluralize most strings, including those with links in them. (If there are multiple links, the display form of the last link is pluralized.) *# `false`: This placetype is not allowed as an entry placetype. An error will be thrown if this placetype is given as an entry placetype. This is specified for internal-use placetypes, especially placetypes used in conjunction with the qualifiers `former`, `ancient`, `historical` and such. * `plural_link`: If specified and the placetype is plural, use the value in place of generating a pluralized version of the link spec in `link`. Most commonly, this is either a string with links in it (which is used directly) or the value `false`, indicating that the placetype cannot occur plural. (This is used for example by `caplc`, which displays as `<nowiki>[[capital]] and [[large]]st [[city]]</nowiki>`, where a plural version doesn't make sense.) Generally if this is specified, `plural` also needs to be specified to give a special placetype plural; this situation occurs especially with multiword placetypes where something other than the last word is pluralized. An example is `town with bystatus`, whose plural is `towns with bystatus`, which needs to be explicitly given. This example uses `link = <nowiki>"[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>` ({{m|nb|bystatus}}) is a Norwegian Bokmål word, and template calls aren't currently permitted in link strings), along with `plural_link = <nowiki>"[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>`. * `category_link`: Spec indicating how to display the placetype when occurring in category descriptions. Defaults to the value of `link`, and in turn is overridden by more specific `category_link_*` keys; see below. Category-only placetypes (which are plural and end in `!`) usually use `category_link` in preference to `link`. The value of `category_link` can be any of the types of specs given above, but most commonly is a plural string with links in it, spelling out the description; in this case it is used directly. When both `category_link` and `link` are given, the value in `category_link` is typically longer and more descriptive. For example, `polity` uses `link = true`, which just generates a link `<nowiki>[[polity]]</nowiki>` or plural `<nowiki>[[polity|polities]]</nowiki>`, but specifies a separate `category_link = <nowiki>"[[independent]] or [[semi-]][[independent]] [[polity|polities]]"</nowiki>`, which clarifies in the category description what a polity is. * `category_link_top_level`: Spec indicating how to display top-level (bare/unqualified) categories, i.e. categories where the placetype is not followed by `in ``location`` ` or `of ``location`` `. If given, this overrides `category_link` for this type of category. * `category_link_before_noncity`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` does not refer to a city. If given, this overrides `category_link` for this type of category. * `category_link_before_city`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` refer to a city. If given, this overrides `category_link` for this type of category. An example where this is given is `neighborhood`, which uses the following specs:<ol> <li>`link = true`</li> <li>`category_link = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]"</nowiki>`</li> <li>`category_link_before_city = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions"</nowiki>`</li> </ol> This has the effect of making the entry placetype `neighborhood` display as just `<nowiki>[[neighborhood]]</nowiki>`, while e.g. a category like `Neighborhoods of Chicago` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[Chicago]], ...</nowiki>` and a category like `Neighborhoods in Illinois, USA` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]] in [[Illinois]], ...</nowiki>`. * `disallow_in_entries`: If specified, this placetype cannot occur as an entry placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. * `disallow_in_holonyms`: If specified, this placetype cannot occur as a holonym placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. 2. There is currently one fallback-related property key recognized: * `fallback`: If specified, its value is a placetype which will be used for categorization purposes if no categories get added using the placetype itself. As an example, `branch` sets a fallback of `river` but also sets `preposition = "of"`, meaning that {{tl|place|en|branch|riv/Mississippi}} displays as `a branch of the Mississippi` (whereas `river` itself uses the preposition `in`), but otherwise categorizes the same as `river`. A more complex example is `area`, which sets a fallback of `geographic and cultural area` and also sets a category handler that checks for cities or city-like entities (e.g. boroughs) occurring as holonyms and categorizes the toponym under [[:Category:Neighborhoods of CITY]] (for recognized cities) or otherwise [[:Category:Neighborhoods of POLDIV]] (for the nearest containing recognized location). In addition, `area` is set as a political division of Kuwait, meaning if `c/Kuwait` occurs as holonym, the toponym is categorized under [[:Category:Areas of Kuwait]]. If none of these categories trigger, the fallback of `geographic and cultural area` will take effect, and the toponym will be categorized as e.g. [[:Category:Geographic and cultural areas of England]]. 3. There is currently one property to control irregular plurals of placetypes: * `plural`: If specified, its value is the plural of the placetype. Otherwise, the default pluralization algorithm in [[Module:en-utilities]] applies (which correctly pluralizes most words, including those ending in `-y`, `-ch`, `-sh`, `-x`, etc.). The value of `plural` is also used when converting a pluralized placetype into its singular equivalent; for example, since the placetype `kibbutz` has `plural = "kibbutzim"`, the placetype `kibbutzim` will be recognized as a plural and singularized to `kibbutz`. For this reason, it's occasionally necessary to specify a `plural` value even when the default pluralization algorithm works correctly, if the default singularization algorithm won't correctly reverse the pluralization (as with `pass` and other terms ending in `-ss`). 4. The following property keys relate to generating categories for entry placetypes and specifying the parents of those categories: * `class`: The general class of placetype. This is used for various purposes: (a) to categorize placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical` (note that these placetypes are not all treated alike); (b) to determine the parent category of bare placetype categories (e.g. [[:Category:Villages]] for placetype `village`); (c) to determine whether to add a parent category `political divisions of specific countries` to qualified placetype categories (e.g. [[:Category:Villages in Mali]]). The possible values are: *# `polity`: a more-or-less sovereign/independent polity, such as a country, kingdom or empire. *# `subpolity`: a non-sovereign division of a polity, above the level of an individual settlement. *# `settlement`: a city or smaller equivalent, such as a village. This also includes administrative divisions of a settlement, such as wards and barangays. *# `non-admin settlement`: similar to a settlement but without administrative or political significance, such as an unincorporated community, farm or neighborhood. *# `capital`: a settlement that is a capital. A former capital is generally still in existence, just not the capital any more. *# `natural feature`: any non-man-made feature, such as a lake, mountain, island, ocean, etc. *# `man-made structure`: a man-made feature below the level of a neighborhood, such as a house, airport, university, metro station, park or the like. *# `geographic region`: a geographic or cultural region or area that has no administrative significance. These may vary greatly in size but typically have some sort of cultural significance (possibly historical). The `former`, `ancient`, etc. qualifier has no effect on the category of these placetypes. *# `generic place`: a place that isn't further qualified into any specific subtype. * `former_type`: The class of placetype used for categorizing placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical`. The possible values are the same as for `class` but with the addition of `dependent territory` (for colonies, protectorates and the like) and `!` (ignore the historical/former/ancient/etc. qualifier; used e.g. with `fictional location` and `mythological location`). If not specified, the value of `class` is used. When a qualifier such as `former`, `ancient`, `medieval` or `historical` is encountered (specifically, those in `former_qualifiers`), it is mapped using `former_qualifiers` to the appropriate internal qualifier or qualifiers (one or both of `ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified qualifiers), which is prepended to the value of `former_type` or `class` to form a placetype whose properties are looked up to determine how to categorize the toponym in question. For example, if `medieval village` is given, we map `medieval` to `ANCIENT` and `FORMER`, and `village` to its `class` of `settlement`, and enter the placetypes `ANCIENT settlement` and `FORMER settlement` (in that order) into the list of equivalent placetypes returned by `get_placetype_equivs`. In this case, there is an entry in `placetype_data` for `ANCIENT settlement`, so its default category spec `Ancient settlements` is used as the category. If on the other hand `medieval kingdom` is given, where `kingdom` has a `class` value `polity`, we first look up `ANCIENT polity`, see there is no entry in `placetype_data` for it, and then look up `FORMER polity`, which exists and has a default category spec `Former polities`, which is used as the category. Note that if the placetype following the "former" qualifier is recognized in `placetype_data` but has no `former_type` or `class` and no fallback with a `former_type` or `class` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like `former greenhouse` is specified and we don't have an entry for `greenhouse`), we just track the occurrence and end up not categorizing. * `bare_category_parent`: This specifies the first parent category of a bare placetype category named according to the placetype in question (e.g. [[:Category:Atolls]] for placetype `atoll`, or [[:Category:Named buildings]] for placetype `named buildings!`). If not specified, the first parent category is determined by the value of `class`, using the mapping `class_to_bare_category_parent` in [[Module:category tree/topic cat/data/Places]]. * `addl_bare_category_parents`: Extra parent categories to add a bare placetype category to (see `bare_category_parent` just above). * `bare_category_breadcrumb`: Breadcrumb for bare placetype categories. Also used as the sort key of `bare_category_parent` if it is a string. * `inherently_former`: If specified and the given placetype is used as an entry placetype, act as if `former` or `ancient` (depending on the value of `inherently_former`) were prefixed to the placetype. This is for placetypes that always refer to no-longer-existing entities, such as `satrapy` and `treaty port`. The value of `inherently_former` is a list of internal qualifiers (one or more of `ANCIENT` and/or `FORMER`), just as for `former_qualifiers`, and the implementation is the same. * `cat_handler`: Handler used to generate the categories to add a given toponym to, if its entry placetype is the placetype in question. Generally the `cat_handler` function checks the holonyms specified in order to determine which category or categories to generate. For example, `district_neighborhood_cat_handler` handles placetypes `district`, `neighborhood`, `subdivision`, `suburb` and the like, and either adds the toponym to a category like `Neighborhoods of ``city`` ` (if a recognized city is given as a holonym), or otherwise a category like `Neighborhoods in ``location`` ` (for the first recognized non-city location given as a holonym, if an unrecognized city or city-like entity is given before the recognized non-city). The algorithm that runs the category handlers iterates over holonyms from left to right, running the `cat_handler` function on each holonym in turn until one or more categories are returned; see below for more specifics. (Note that countries for which e.g. a `district` is a political division do not get the corresponding category added by the `district_neighborhood_cat_handler` function but by `political_division_cat_handler`.) `cat_handler` functions are called with one argument, `data`, describing the resolved entry placetype (i.e. after resolving placetype aliases and fallbacks) and the holonym being processed. The return value should be a list of category specs (categories minus the langcode prefix, with `+++` standing for the holonym key, or the value `true`, which stands for ` ``Placetypes`` in/of ``Holonym`` `, i.e. the pluralized placetype with the appropriate preposition as specified in `placetype_data`). `data` contains the following fields: ** `entry_placetype`: the resolved entry placetype for the entry placetype being processed (i.e. it will always have an entry in `placetype_data` but may not be the original placetype given by the user); ** `holonym_placetype` and `holonym_placename`: the holonym placetype and placename being processed; ** `holonym_index`: the index of the holonym being processed, or {nil} if we're handling an overriding holonym (FIXME: we will change the overriding holonym algorithm so there will be an index even when processing overriding holonyms); ** `place_desc`: a full description of the {{tl|place}} call, as specified at the top of [[Module:place]]; ** `from_demonym`: If set, we are called from [[Module:demonym]], triggered by {{tl|demonym-adj}} or {{tl|demonym-noun}}, instead of being triggered by {{tl|place}}. * `has_neighborhoods`: If `true`, the specified placetype is city-like. This is used in the `district_neighborhood_cat_handler` to determine whether to add a category such as `Neighborhoods in ``location`` `; see the section just above on `cat_handler`. 5. The following preposition-related property keys are recognized: * `preposition`: The preposition used after this placetype when it occurs as an entry placetype. Defaults to `"in"`. * `generic_before_non_cities`: If specified, the appropriate category description handler in [[Module:category tree/topic cat/data/Places]] will recognize categories of the form ` ``Placetype`` in/of ``location`` ` for the specified placetype and preposition, if ``location`` is a non-city. This is used to generate descriptions for categories added by category handlers and by explicit category specs in the placetype data. All placetypes that specify `generic_before_non_cities` or `generic_before_cities` *MUST* also specify a value for `class` so that the category tree code can determine whether it's a political or non-political division. * `generic_before_cities`: Like `generic_before_non_cities` but for locations referring to cities. 6. The following property keys control the auto-addition of affixes when formatting holonyms of a particular placetype: * `affix_type`: If specified, add the placetype as an affix before or after holonyms of this placetype. Possible values are: *# `"pref"` (the holonym will display as `(the) placetype of Holonym`, where `the` appears when the holonym directly follows an entry placetype); *# `"Pref"` (same as `"pref"` but the placetype is capitalized; each word is capitalized if there are multiple); *# `"suf"` (the holonym will display as `Holonym placetype`); *# `"Suf"` (the holonym will display as `Holonym Placetype`, i.e. same as `"suf"` but the placetype is capitalized). * `suffix`: String to use in place of the placetype itself when the placetype is displayed as a suffix after a holonym. Note that `suffix` can be used independently of `affix_type` because the user can also request a suffix explicitly using a syntax like `adr:suf/Occitania`, which will display as `Occitania region` because the placetype `administrative region` specifies `suffix = "region"`. * `prefix`: Like `suffix` but for use when the placetype is displayed as a prefix before the holonym. * `affix`: Like `suffix` and `prefix` but for use when the placetype is displayed as an affix either before or after the holonym. If both `suffix` or `prefix` and `affix` are given for a single placetype, `suffix` or `prefix` take precedence. * `no_affix_strings`: String or list of strings that, if they occur in the holonym, suppress the addition of any affix requested using `affix_type`. Defaults to the placetype itself. For example, `autonomous okrug` specifies `affix_type = "Suf"` so that `aokr/Nenets` displays as `Nenets Autonomous Okrug`, but also specifies `no_affix_strings = "okrug"` so that `aokr/Nenets Okrug` or `aokr/Nenets Autonomous Okrug` displays as specified, without a redundant `Autonomous Okrug` added. Matching is case-insensitive but whole-word. * `display_handler`: A function of two arguments, `holonym_placetype` and `holonym_placename` (specifying a holonym). Its return value is a string specifying the display form of the holonym. 7. The following property keys control the indefinite and definite articles used before entry placetypes and/or holonyms of the specified placetype. * `entry_placetype_use_the`: Use `"the"` before this placetype when it occurs as an entry placetype. * `entry_placetype_indefinite_article`: Indefinite article used before this placetype when it occurs as an entry placetype (usually `"a"`, specifically for placetypes beginning with u- that don't take the indefinite article `"an"`). Defaults to the appropriate indefinite article (`"a"` or `"an"` depending on whether the placetype begins with a vowel). Overridden by `entry_placetype_use_the`, and unlike for most properties, does not apply to equivalent placetypes (i.e. fallbacks or those formed by removing a qualifier from the beginning); only to the exact placetype specified. * `holonym_use_the`: Use `"the"` before holonyms of this placetype. '''NOTE:''' # The `link` property must be specified on all placetypes, except those ending in `!` (category-only placetypes), which must have either `link` or `category_link` specified. # Either the `class` or `former_type` property must be specified on all placetypes not ending in `!` that do not have a fallback (if a placetype has a fallback and omits the `class` and `former_type` properties, they are taken from the fallback). An internal error will result if a placetype has no `class` or `former_type` property derivable either directly or through a fallback, if an attempt is made to categorize a former/ancient/historical/etc. entity of this placetype. # It is possible to have multiple levels of fallback (e.g. `frazione` falls back to `hamlet`, which falls back to `village`). Fallback loops will cause an internal error. All placetypes specified as fallbacks must exist in `placetype_data` or an internal error occurs. ]==] export.placetype_data = { --[=[ If you need to sort the following, do this (using Vim): 1. Make sure all full-line comments are within the { ... } table, or are moved after and on the same line as single-line entries. 2. Make sure the table uses tabs everywhere for indent, and not spaces. 3. Mark the top of the table with `ma`, go to the bottom and execute the following two lines in sequence: :'a,.s/\n/\\n/g :s/\\n\(\t\[\)/\r\1/g The first command converts every newline to a literal `\n` sequence, so the whole thing becomes a single line, while the second command restores the newlines before the beginning of each entry. The effect is to convert all entries to a single line while not losing any information. (Potentially a negative lookahead could be used to do it all in one command.) 4. Execute the following to sort: :'a,.!perl -pe 's/^(\t\[")(.*?)(".*)$/$2 @@@ $1$2$3/' | sort -f | perl -pe 's/.*? @@@ //' Note that a simple `sort -f` (where `-f` means case-insensitive) would almost work, but it would sort "hill station" before "hill" and "county borough" before "county" because the space after e.g. "hill station" sorts before the quotation mark after e.g. "hill". The above command deals with this by extracting the key, prepending it followed by ` @@@ `, sorting, and then removing key (the classic decorate-sort-undecorate pattern). 5. Put the table back to multi-line format by marking the top of the table with `ma`, going to the bottom and executing :'a,.s/\\n/\r/g Note that for some reason, in order to get a match a newline in the left side of a replacement, you must use \n, but to insert a newline in the right sode of a replacement you must use \r. ]=] ["*"] = { link = false, cat_handler = generic_place_cat_handler, }, ["administrative atoll"] = { -- Maldives link = "+w:administrative divisions of the Maldives", preposition = "of", class = "subpolity", }, ["administrative capital"] = { link = "w", fallback = "capital city", }, ["administrative center"] = { link = "w", fallback = "non-city capital", }, ["administrative centre"] = { link = "w", fallback = "administrative center", }, ["administrative county"] = { link = "w", fallback = "county", }, ["administrative district"] = { link = "w", fallback = "district", }, ["administrative headquarters"] = { link = "separately", fallback = "administrative centre", }, ["administrative region"] = { link = true, preposition = "of", suffix = "region", -- but prefix is still "administrative region (of)" fallback = "region", class = "subpolity", }, ["administrative seat"] = { link = "w", fallback = "administrative centre", }, ["administrative territory"] = { link = "separately", preposition = "of", suffix = "territory", -- but prefix is still "administrative territory (of)" fallback = "territory", class = "subpolity", }, ["administrative unit"] = { -- Grrr, it's difficult to generalize about "administrative units". In Albania, "administrative unit" is an -- official term for a city-level division of municipalities; Wikipedia renders it using the more practical term -- "commune". In Pakistan, "administrative unit" is a collective term used to refer to all the different types -- of first-level divisions (four provinces, one federal territory, and two "disputed territories", i.e. Azad -- Kashmir and Gilgit-Balistan, that are variously described). For this reason, we set no fallback, but we need -- to include this so that it can be used as a placetype for Albania, categorizing as communes. link = "w", class = "subpolity", }, ["administrative village"] = { link = "w", preposition = "of", has_neighborhoods = true, class = "settlement", }, ["aimag"] = { -- used in Mongolia, Russia and China (Inner Mongolia); in Mongolia, equivalent to a province; -- in China, equivalent to a prefecture (below a province); in Russia, equivalent to a municipal district. link = "w", fallback = "prefecture", }, ["airport"] = { link = true, class = "man-made structure", default = {true}, }, ["alliance"] = { link = true, fallback = "confederation", }, ["archipelago"] = { link = true, fallback = "island", }, ["area"] = { link = true, preposition = "of", fallback = "geographic and cultural area", -- Areas can either be administrative divisions (specifically of Kuwait) or geographic areas. Assume the former -- when categorizing 'Areas' but the latter when handling e.g. 'historical area'. class = "subpolity", former_type = "geographic region", cat_handler = district_neighborhood_cat_handler, }, ["arm"] = { link = true, preposition = "of", class = "natural feature", default = {"海"}, }, ["arrondissement"] = { link = true, preposition = "of", -- FIXME!!! Grrrrr!!! In some countries, arrondissements are divisions of cities; in others, they are divisions -- of departments or provinces. Need to conditionalize on the country for both of the following. class = "subpolity", has_neighborhoods = true, }, ["associated province"] = { link = "separately", fallback = "province", }, ["atoll"] = { -- FIXME! Atolls are administrative divisions of the Maldives but natural features elsewhere. Need to -- conditionalize `class` on the country. See also `administrative atoll`. link = true, class = "natural feature", bare_category_parent = "islands", default = {true}, }, ["autonomous city"] = { link = "w", preposition = "of", fallback = "city", has_neighborhoods = true, }, ["autonomous community"] = { -- Spain; refers to regional entities, not village-like entities, as might be expected from "community" link = true, preposition = "of", class = "subpolity", }, ["autonomous island"] = { -- Comoros; seems like an administrative atoll of the Maldives. link = "+w:autonomous islands of Comoros", preposition = "of", class = "subpolity", }, ["autonomous oblast"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "oblast", class = "subpolity", }, ["autonomous okrug"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "okrug", class = "subpolity", }, ["autonomous prefecture"] = { link = true, fallback = "prefecture", }, ["autonomous province"] = { link = "w", fallback = "province", }, ["autonomous region"] = { link = "w", preposition = "of", fallback = "administrative region", -- "administrative region" sets an affix of "region" but we want to display as "Tibet Autonomous Region" -- if the user writes 'ar:Suf/Tibet'. affix = "autonomous region", }, ["autonomous republic"] = { link = "w", preposition = "of", class = "subpolity", }, ["autonomous territorial unit"] = { -- Moldova; only two of them, one for Gagauzia and one for Transnistria. link = "w", preposition = "of", class = "subpolity", }, ["autonomous territory"] = { link = "w", fallback = "dependent territory", }, ["bailiwick"] = { -- Jersey, etc. link = true, fallback = "polity", }, ["barangay"] = { -- Philippines link = true, class = "settlement", -- Barangays are formal administrative divisions of a city rather than informal neighborhoods, but can use -- some of the properties of a neighborhood. fallback = "neighborhood", }, ["barrio"] = { -- Spanish-speaking countries; Philippines link = true, -- FIXME: Not completely correct, in some countries barrios are formal administrative divisions of a city. -- `class` will need to conditionalize on the country to be completely correct. fallback = "neighborhood", }, ["basin"] = { link = true, fallback = "lake", }, ["bay"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["beach"] = { link = true, class = "natural feature", addl_bare_category_parents = {"water"}, default = {true}, }, ["beach resort"] = { link = "w", fallback = "resort town", }, ["bishopric"] = { link = true, fallback = "polity", }, ["bodies of water!"] = { -- FIXME: This is (maybe?) a type category not a name category. There should be an option for this. We need to -- straighten out the type vs. name vs. related-to issue. category_link = "[[body of water|bodies of water]]", class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems", "water"}, }, ["borough"] = { link = true, preposition = "of", display_handler = borough_display_handler, has_neighborhoods = true, -- "former borough" could be a former settlement or a former part of a city but seems more likely to -- be a former subpolity, particularly in England. FIXME, we really need a handler to take care of this -- properly. class = "subpolity", -- Grr, some boroughs are city-like but some (e.g. in Britain) may be larger. }, ["borough seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["branch"] = { link = true, preposition = "of", fallback = "river", }, ["bridge"] = { link = true, class = "man-made structure", default = {"具名橋樑"}, }, ["building"] = { link = true, class = "man-made structure", default = {"具名建築物"}, }, ["built-up area"] = { link = "w", fallback = "area", }, ["burgh"] = { link = true, fallback = "borough", }, ["business park"] = { link = true, fallback = "park", }, ["caliphate"] = { link = true, fallback = "polity", }, ["canton"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["cape"] = { link = true, fallback = "headland", }, ["capital"] = { link = true, fallback = "capital city", }, ["capital city"] = { link = true, category_link = "[[capital city|capital cities]]: the [[seat of government|seats of government]] for a country or [[political]] [[division]] of a country", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", bare_category_parent = "cities", cat_handler = capital_city_cat_handler, default = {true}, -- The following is necessary so that e.g. [[Melbourne]] defined as {{place|en|capital city|s/Victoria|c/Australia}} -- gets categorized in the bare category [[Category:en:Melbourne]]; otherwise placetype 'capital city' wouldn't -- match against the placetype 'city' of Melbourne. fallback = "city", }, ["caplc"] = { link = "[[capital]] and [[large]]st [[city]]", plural_link = false, fallback = "capital city", }, ["captaincy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["caravan city"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"ANCIENT", "FORMER"}, }, ["castle"] = { link = true, fallback = "building", }, ["cathedral city"] = { link = true, fallback = "city", }, ["cattle station"] = { -- Australia link = true, fallback = "farm", }, ["census area"] = { link = true, affix_type = "Suf", has_neighborhoods = true, class = "non-admin settlement", }, ["census-designated place"] = { -- United States link = true, class = "non-admin settlement", }, ["census division"] = { -- Canada link = "w", preposition = "of", class = "subpolity", }, ["census town"] = { link = "w", fallback = "town", }, ["central business district"] = { link = true, fallback = "neighborhood", }, ["cercle"] = { -- Mali link = "+w:cercles of Mali", preposition = "of", class = "subpolity", }, ["ceremonial county"] = { link = true, fallback = "county", }, ["chain of islands"] = { link = "[[chain]] of [[island]]s", plural = "chains of islands", plural_link = "[[chain]]s of [[island]]s", fallback = "island", }, ["channel"] = { link = true, fallback = "strait", }, ["charter community"] = { -- Northwest Territories, Canada link = "w", fallback = "village", }, ["city"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["city-state"] = { link = true, category_link = "[[sovereign]] [[microstate]]s consisting of a single [[city]] and [[w:dependent territory|dependent territories]]", has_neighborhoods = true, class = "settlement", ["continent/*"] = {"城邦", "+++的市", "+++國家", "首都"}, default = {"城邦", "城市", "國家", "首都"}, }, ["civil parish"] = { -- Mostly England; similar to municipalities link = true, preposition = "of", affix_type = "suf", has_neighborhoods = true, class = "subpolity", }, ["claimed political division"] = { link = "[[claim]]ed [[political]] [[division]]", class = "subpolity", default = {true}, }, ["co-capital"] = { link = "[[co-]][[capital]]", fallback = "capital city", }, ["coal city"] = { link = "+w:coal town", fallback = "city", }, ["coal town"] = { link = "w", fallback = "town", }, ["collectivity"] = { link = "w", preposition = "of", -- No default; these are weird one-off governmental divisions in France (esp. for overseas collectivities) class = "subpolity", }, ["colony"] = { link = true, fallback = "dependent territory", }, ["comarca"] = { -- per Wikipedia: traditional region or local administrative division found in Portugal, Spain, and some of -- their former colonies, like Brazil, Nicaragua, and Panama. In the Valencian Community, for example, it -- sits between municipalities and provinces, something like a county or district. link = true, preposition = "of", class = "subpolity", }, ["commandery"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["commonwealth"] = { link = true, preposition = "of", -- No default; applies specifically to Puerto Rico class = "subpolity", }, ["commune"] = { link = true, fallback = "municipality", }, ["community"] = { link = true, category_link = "[[community|communities]] of all sizes", fallback = "village", }, ["community development block"] = { -- in India; appears to be similar to a rural municipality; groups several villages, unclear if there will be -- neighborhoods so I'm not setting `has_neighborhoods` for now link = "w", affix_type = "suf", no_affix_strings = "block", class = "subpolity", }, ["comune"] = { -- Italy, Switzerland link = true, fallback = "municipality", }, ["condominium"] = { link = true, fallback = "polity", }, ["confederacy"] = { link = true, fallback = "confederation", }, ["confederation"] = { link = true, fallback = "polity", }, ["constituency"] = { -- currently we have them as political divisions of Namibia but many countries have them link = true, preposition = "of", class = "subpolity", }, ["constituent country"] = { link = true, preposition = "of", class = "subpolity", }, ["constituent part"] = { link = "separately", preposition = "of", class = "subpolity", }, ["constituent republic"] = { -- Of Russia, Yugoslavia, etc. link = "separately", preposition = "of", class = "subpolity", }, ["counties and county-level cities!"] = { -- This is used when grouping counties and county-level cities under prefecture-level cities in China. category_link = "[[county|counties]] and [[county-level city|county-level cities]]", class = "subpolity", }, ["continent"] = { link = true, category_link = false, -- can't occur as a bare category class = "natural feature", default = {"大洲及大陸地區"}, }, ["continental region"] = { link = "separately", category_link = false, -- can't occur as a bare category class = "geographic region", fallback = "continent", }, ["continents and continental regions!"] = { category_link = "[[continent]]s and [[continent]]-[[level]] [[region]]s (e.g. [[Polynesia]])", class = "geographic region", }, ["council area"] = { link = true, -- in Scotland; similar to a county preposition = "of", affix_type = "suf", class = "subpolity", }, ["country"] = { link = true, class = "polity", ["continent/*"] = {true, "國家"}, default = {true}, }, ["country-like entities!"] = { category_link = "[[polity|polities]] not normally considered [[country|countries]] but treated similarly for categorization purposes; typically, [[unrecognized]] [[de-facto]] countries or [[w:dependent territory|dependent territories]]", class = "polity", }, ["county"] = { link = true, preposition = "of", display_handler = county_display_handler, class = "subpolity", }, ["county borough"] = { link = true, -- in Wales; similar to a county preposition = "of", affix_type = "suf", fallback = "borough", class = "subpolity", }, ["county seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["county town"] = { link = true, entry_placetype_use_the = true, preposition = "of", fallback = "town", has_neighborhoods = true, class = "capital", }, ["county-administered city"] = { -- In Taiwan, per Wikipedia similar to a Taiwanese township or district, which is a small city. -- NOT anything like a "county-level city" in PR China, which is a county masquerading as a city. link = "w", fallback = "city", has_neighborhoods = true, class = "settlement", }, ["county-controlled city"] = { -- Taiwan link = "w", fallback = "county-administered city", }, ["county-level city"] = { -- PR China link = "w", fallback = "prefecture-level city", }, ["crater lake"] = { link = true, fallback = "lake", }, ["creek"] = { link = true, fallback = "stream", }, ["Crown colony"] = { link = "+crown colony", fallback = "crown colony", }, ["crown colony"] = { link = true, fallback = "colony", }, ["Crown dependency"] = { link = true, fallback = "dependent territory", }, ["crown dependency"] = { link = true, fallback = "dependent territory", }, ["cultural area"] = { link = "w", fallback = "geographic and cultural area", }, ["cultural region"] = { link = "w", fallback = "geographic and cultural area", }, ["delegation"] = { -- Tunisia link = "+w:delegations of Tunisia", preposition = "of", class = "subpolity", }, ["department"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["departmental capital"] = { link = "separately", fallback = "capital city", }, ["dependency"] = { link = true, fallback = "dependent territory", }, ["dependent territory"] = { link = "w", preposition = "of", class = "subpolity", former_type = "dependent territory", bare_category_parent = "political divisions", ["country/*"] = {true}, default = {true}, }, ["desert"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems"}, default = {true}, }, ["deserted mediaeval village"] = { link = "w", fallback = "deserted medieval village", }, ["deserted medieval village"] = { link = "w", fallback = "ANCIENT settlement", }, ["direct-administered municipality"] = { -- China link = "+w:direct-administered municipalities of China", fallback = "municipality", }, ["direct-controlled municipality"] = { -- several countries link = "w", fallback = "municipality", }, ["distributary"] = { link = true, preposition = "of", fallback = "river", }, ["district"] = { link = true, preposition = "of", affix_type = "suf", -- Grrr! FIXME! Here is where we need handlers for `class`. Using similar logic to -- district_neighborhood_cat_handler, we need to check if we're below or above a city to determine if the class -- is "settlement" or "subpolity". class = "subpolity", cat_handler = district_neighborhood_cat_handler, -- No default. Countries for which districts are political divisions will get entries. }, ["districts and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Portugal. category_link = "[[district]]s and [[autonomous region]]s", class = "subpolity", }, ["districts and autonomous territorial units!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Moldova. category_link = "[[district]]s and [[w:autonomous territorial unit|autonomous territorial unit]]s", class = "subpolity", }, ["district capital"] = { link = "separately", fallback = "capital city", }, ["district headquarters"] = { link = "separately", fallback = "administrative centre", }, ["district municipality"] = { -- In Canada, a district municipality is equivalent to a rural municipality and won't have neighborhoods; in -- South Africa, district municipalities group local municipalities and hence won't have neighborhoods. link = "w", preposition = "of", affix_type = "suf", no_affix_strings = {"district", "municipality"}, fallback = "municipality", class = "subpolity", }, ["division"] = { link = true, preposition = "of", class = "subpolity", }, ["division capital"] = { link = "separately", fallback = "capital city", }, ["dome"] = { link = true, fallback = "mountain", }, ["dormant volcano"] = { link = true, fallback = "volcano", }, ["duchy"] = { link = true, fallback = "polity", }, ["emirate"] = { link = true, preposition = "of", -- FIXME: Can be subpolities (of the United Arab Emirates). fallback = "polity", }, ["empire"] = { link = true, fallback = "polity", }, ["enclave"] = { link = true, preposition = "of", -- Enclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["entity"] = { -- Bosnia and Herzegovina link = "+w:entities of Bosnia and Herzegovina", preposition = "of", class = "subpolity", }, ["escarpment"] = { link = true, fallback = "mountain", }, ["ethnographic region"] = { -- used in Lithuania link = "+w:ethnographic regions of Lithuania", fallback = "geographic and cultural area", }, ["exclave"] = { link = true, preposition = "of", -- exclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["external territory"] = { link = "separately", fallback = "dependent territory", }, ["farm"] = { link = true, class = "non-admin settlement", default = {"農牧場"}, }, ["farms and ranches!"] = { category_link = "[[farm]]s and [[ranch]]es", class = "non-admin settlement", }, ["federal city"] = { link = "w", preposition = "of", fallback = "city", }, ["federal district"] = { link = true, preposition = "of", -- Might have neighborhoods as federal districts are often cities (e.g. Mexico City) has_neighborhoods = true, class = "settlement", }, ["federal subject"] = { -- In Russia; a generic term for first-level administrative divisions (republics, oblasts, okrugs, krais, -- autonomous okrugs and autonomous oblasts). link = "w", preposition = "of", class = "subpolity", }, ["federal territory"] = { link = "w", fallback = "territory", }, ["fictional location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["First Nations reserve"] = { -- Canada link = "[[First Nations]] [[w:Indian reserve|reserve]]", -- Wikipedia uses "Indian reserve"; presumably that is the legal term fallback = "Indian reserve", class = "subpolity", }, ["fjord"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["footpath"] = { link = true, fallback = "road", }, ["forest"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems", "forestry"}, default = {true}, }, ["fort"] = { link = true, fallback = "building", }, ["fortress"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- fortresses -> fortresse, so put an entry here to ensure we singularize correctly. plural = "fortresses", fallback = "building", }, ["frazione"] = { link = "w", fallback = "hamlet", }, ["freeway"] = { link = true, fallback = "road", }, ["French prefecture"] = { link = "[[w:prefectures in France|prefecture]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["geographic and cultural area"] = { link = "+w:cultural area", -- `generic_before_non_cities` is used when generating the category description of categories of the format -- `Geographic and cultural areas of PLACE`. `preposition` is used when generating {{place}} description and -- categories for any placetype that falls back to `geographic and cultural area`. generic_before_non_cities = "of", preposition = "of", class = "geographic region", bare_category_parent = "places", ["country/*"] = {true}, ["constituent country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["geographic area"] = { link = "+w:geographic region", fallback = "geographic and cultural area", }, ["geographic region"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical area"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical region"] = { link = "w", fallback = "geographic and cultural area", }, ["geopolitical zone"] = { -- Nigeria link = true, preposition = "of", class = "subpolity", }, ["gewog"] = { -- Bhutan link = true, preposition = "of", class = "subpolity", }, ["ghost town"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", bare_category_parent = "former settlements", cat_handler = city_type_cat_handler, default = {true}, }, ["glen"] = { link = true, fallback = "valley", }, ["governorate"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["greater administrative region"] = { -- China (former division) link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["gromada"] = { -- Poland (former division) link = "w", preposition = "of", affix_type = "Pref", class = "subpolity", inherently_former = {"FORMER"}, }, ["group of islands"] = { link = "[[group]] of [[island]]s", plural = "groups of islands", plural_link = "[[group]]s of [[island]]s", fallback = "island group", }, ["gulf"] = { link = true, preposition = "of", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["hamlet"] = { link = true, fallback = "village", }, ["harbor city"] = { link = "separately", fallback = "city", }, ["harbor town"] = { link = "separately", fallback = "town", }, ["harbour city"] = { link = "separately", fallback = "city", }, ["harbour town"] = { link = "separately", fallback = "town", }, ["headland"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["headquarters"] = { link = "w", fallback = "administrative centre", }, ["heath"] = { link = true, fallback = "moor", }, ["hemisphere"] = { link = true, entry_placetype_use_the = true, fallback = "continental region", }, ["highway"] = { link = true, fallback = "road", }, ["hill"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["hill station"] = { link = "w", fallback = "town", }, ["hill town"] = { link = "w", fallback = "town", }, ["historic region"] = { -- provided only for the link link = "+w:historical region", fallback = "FORMER geographic region", }, ["historical county"] = { -- needed for historical counties of England/etc. link = "+w:historic county", fallback = "FORMER subpolity", }, ["historical region"] = { -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["home rule city"] = { link = "w", fallback = "city", }, ["home rule municipality"] = { link = "w", fallback = "municipality", }, ["hot spring"] = { link = true, fallback = "spring", }, ["house"] = { link = true, fallback = "building", }, ["housing estate"] = { -- not the same as a housing project (i.e. public housing) link = true, -- not exactly the case but approximately fallback = "neighborhood", }, ["hromada"] = { -- Ukraine link = "w", disallow_in_entries = "Use placetype 'urban hromada', 'rural hromada' or 'settlement hromada' in place of bare 'hromada'", disallow_in_holonyms = "Use placetype 'urban hromada'/'uhrom', 'rural hromada'/'rhrom' or 'settlement hromada'/'shrom' in place of bare 'hromada'", preposition = "of", affix_type = "suf", class = "subpolity", }, ["inactive volcano"] = { link = "w", fallback = "dormant volcano", }, ["independent city"] = { link = true, fallback = "city", }, ["independent town"] = { link = "+independent city", fallback = "town", }, ["Indian reservation"] = { link = "w", -- In the US. Also known as "Native American reservation" or "domestic dependent nation", and the reservations -- themselves often use the term "nation" in their official name (e.g. the "Navajo Nation"). But Wikipedia puts -- the article at [[w:Indian reservation]] and uses that term when describing e.g. what the Navajo Nation is, -- so this must still be the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["Indian reserve"] = { link = "w", -- In Canada. "First Nations reserve" sounds more modern/PC but Wikipedia uses "Indian reserve"; presumably that -- is still the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["inland sea"] = { -- note, we also have 'inland' as a qualifier link = true, fallback = "sea", }, ["inner city area"] = { link = "[[inner city]] [[area]]", fallback = "neighborhood", }, ["island"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["island country"] = { -- FIXME: The following should map to both 'island' and 'country'. link = "w", fallback = "country", }, ["island group"] = { link = "separately", fallback = "island", }, ["island municipality"] = { link = "w", fallback = "municipality", }, ["islet"] = { link = "w", fallback = "island", }, ["Israeli settlement"] = { link = "w", class = "settlement", default = {true}, }, ["judicial capital"] = { link = "w", fallback = "capital city", }, ["khanate"] = { link = true, fallback = "polity", }, ["kibbutz"] = { link = true, plural = "kibbutzim", class = "non-admin settlement", default = {true}, }, ["kingdom"] = { link = true, fallback = "monarchy", }, ["krai"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["lake"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["landforms!"] = { category_link = "[[landform]]s", bare_category_parent = "places", addl_bare_category_parents = {"地球"}, }, ["largest city"] = { link = "[[large]]st [[city]]", entry_placetype_use_the = true, fallback = "city", has_neighborhoods = true, }, ["league"] = { link = true, fallback = "confederation", }, ["legislative capital"] = { link = "separately", fallback = "capital city", }, ["library"] = { link = true, fallback = "building", }, ["lieutenancy area"] = { -- used in the United Kingdom; per Wikipedia: -- In England, lieutenancy areas are colloquially known as the ceremonial counties, although this phrase does -- not appear in any legislation referring to them. The lieutenancy areas of Scotland are subdivisions of -- Scotland that are more or less based on the counties of Scotland, making use of the major cities as separate -- entities.[2] In Wales, the lieutenancy areas are known as the preserved counties of Wales and are based on -- those used for lieutenancy and local government between 1974 and 1996. The lieutenancy areas of Northern -- Ireland correspond to the six counties and two former county boroughs.[3] link = "w", fallback = "ceremonial county", }, ["local authority district"] = { link = "w", fallback = "local government district", }, ["local government area"] = { -- Australia link = "w", preposition = "of", class = "subpolity", }, ["local council"] = { -- Malta; similar to municipalities link = "+w:local councils of Malta", preposition = "of", fallback = "municipality", }, ["local government district"] = { link = "w", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local government district with borough status"] = { link = "[[w:local government district|local government district]] with [[w:borough status|borough status]]", plural = "local government districts with borough status", plural_link = "[[w:local government district|local government districts]] with [[w:borough status|borough status]]", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local urban district"] = { link = "w", fallback = "unincorporated community", }, ["locality"] = { link = "+w:locality (settlement)", -- not necessarily true, but usually is the case fallback = "village", }, ["London borough"] = { link = "w", preposition = "of", affix_type = "pref", affix = "borough", fallback = "local government district with borough status", has_neighborhoods = true, }, ["macroregion"] = { link = true, fallback = "region", }, ["man-made structures!"] = { category_link = "[[w:geographical feature#Engineered constructs|man-made structures]] such as [[airport]]s, [[university|universities]] and [[metro station]]s", bare_category_parent = "places", }, ["manor"] = { -- FIXME: or is this more like a farm? link = true, fallback = "building", }, ["marginal sea"] = { link = true, preposition = "of", fallback = "sea", }, ["market city"] = { link = "+market town", fallback = "city", }, ["market town"] = { link = true, fallback = "town", }, ["massif"] = { link = true, fallback = "mountain", }, ["megacity"] = { link = true, fallback = "city", }, ["metro station"] = { link = true, class = "man-made structure", }, ["metropolitan borough"] = { link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"borough", "city"}, fallback = "local government district", has_neighborhoods = true, }, ["metropolitan city"] = { -- These exist e.g. in Italy and are more like municipalities or even provinces than cities. link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"metropolitan", "city"}, class = "subpolity", }, ["metropolitan county"] = { link = true, fallback = "county", }, ["metropolitan municipality"] = { -- In South Africa, metropolitan municipalities group local municipalities and are like districts, between -- provinces and municipalities. -- In Turkey, metropolitan municipalities are provinces-level. link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"metropolitan", "municipality"}, fallback = "municipality", class = "subpolity", }, ["microdistrict"] = { -- residential complex in post-Soviet states link = true, fallback = "neighborhood", }, ["micronations!"] = { -- FIXME, merge with microstate category_link = "[[micronation]]s", bare_category_parent = "countries", }, ["microstate"] = { link = true, fallback = "country", }, ["military base"] = { link = "w", class = "settlement", -- or "man-made structure"? default = {true}, }, ["minster town"] = { -- England link = "separately", fallback = "town", }, ["monarchy"] = { link = true, fallback = "polity", }, ["moor"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems"}, default = {true}, }, ["moorland"] = { link = true, fallback = "moor", }, ["motorway"] = { link = true, fallback = "road", }, ["mountain"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["mountain indigenous district"] = { -- Taiwan link = "+w:district (Taiwan)", fallback = "district", }, ["mountain indigenous township"] = { -- Taiwan link = "+w:township (Taiwan)", fallback = "township", }, ["mountain pass"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "mountain passes", class = "natural feature", addl_bare_category_parents = {"mountains"}, default = {true}, }, ["mountain range"] = { link = true, fallback = "mountain", }, ["mountainous region"] = { link = "separately", fallback = "region", }, ["mukim"] = { -- Malaysia, Brunei, Indonesia, Singapore link = true, preposition = "of", class = "subpolity", }, ["municipal district"] = { link = "w", -- meaning varies depending on the country; for now, assume no neighborhoods. -- FIXME: has_neighborhoods might have to be a function that looks at the containing holonyms. preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "municipality", }, ["municipality"] = { link = true, preposition = "of", has_neighborhoods = true, class = "subpolity", }, ["municipality with city status"] = { link = "[[municipality]] with [[w:city status|city status]]", plural = "municipalities with city status", plural_link = "[[municipality|municipalities]] with [[w:city status|city status]]", fallback = "municipality", }, ["museum"] = { link = true, fallback = "building", }, ["mythological location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["named bridges!"] = { category_link = "notable [[bridge]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"bridges"}, }, ["named buildings!"] = { category_link = "notable [[house]]s, [[library|libraries]] and other [[building]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"buildings"}, }, ["named roads!"] = { category_link = "notable [[road]]s, [[highway]]s, [[trail]]s and similar linear structures", bare_category_parent = "man-made structures", addl_bare_category_parents = {"roads"}, }, ["national capital"] = { link = "w", fallback = "capital city", }, ["national park"] = { link = true, fallback = "park", }, ["natural features!"] = { category_link = "[[w:geographical feature#Natural features|natural features]] such as [[lake]]s, [[mountain]]s, [[island]]s and [[ocean]]s", bare_category_parent = "places", }, ["neighborhood"] = { -- The majority of the properties here apply to both `neighborhoods` and `neighbourhoods`; the choice of which -- one to use is made by district_neighborhood_cat_handler() based on the value of `british_spelling` for the -- location (city, political division, etc.) of the holonym that follows the word "neighbo(u)hoods" in the -- category name. It does *NOT* depend on whether the {{place}} call uses "neighborhoods" or "neighbourhoods". -- (In general it can't, because other things like "urban areas", "districts", "subdivisions" and the like also -- categorize as neighbo(u)rhoods.) link = true, -- See below. These are used by category handlers in [[Module:category tree/topic cat/data/Places]]. generic_before_non_cities = "in", generic_before_cities = "of", -- The following text is suitable for the top-level description of a neighborhood as well as categories of the -- form `Neighborhoods in POLDIV` e.g. `Neighborhoods in Illinois, USA` but not for categories of the form -- `Neighborhoods of Chicago`, where we'd get "... and other subportions of [[city|cities]] of [[Chicago]]". category_link = "[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighborhood]]s, [[district]]s and other subportions", -- NOTE: This setting is needed for administrative divisions like barangays that fall back to `neighborhood`, -- when set in [[Module:place/locations]] for a specific country (e.g. the Philippines). The above settings -- for `generic_before_non_cities` and `generic_before_cities` are used by category handlers in -- [[Module:category tree/topic cat/data/Places]] for `Neighborhoods in POLDIV` and `Neighborhoods of CITY` -- categories. In fact, district_neighborhood_cat_handler() does not currently pay attention to them, but -- generates "of" before cities and "in" before non-cities regardless. (FIXME: We should change that.) preposition = "of", class = "non-admin settlement", cat_handler = district_neighborhood_cat_handler, }, ["neighbourhood"] = { link = true, category_link = "[[neighbourhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighbourhood]]s, [[district]]s and other subportions", fallback = "neighborhood", }, ["new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", preposition = "in", class = "subpolity", --? }, ["new town"] = { link = true, fallback = "town", }, ["non-city capital"] = { link = "[[capital]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", cat_handler = function(data) return capital_city_cat_handler(data, "non-city") end, -- FIXME, do we need the following? default = {true}, }, ["non-metropolitan county"] = { link = "w", fallback = "county", }, ["non-metropolitan district"] = { link = "w", fallback = "local government district", }, ["non-sovereign kingdom"] = { -- especially in Africa and Asia link = "+w:non-sovereign monarchy", generic_before_non_cities = "in", class = "subpolity", ["country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["non-sovereign monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["oblast"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["oblasts and autonomous republics!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Ukraine. category_link = "[[oblast]]s and [[w:autonomous republic|autonomous republic]]s", class = "subpolity", }, ["ocean"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"seas", "bodies of water"}, default = {true}, }, ["okrug"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["overseas collectivity"] = { link = "w", fallback = "collectivity", }, ["overseas department"] = { link = "w", fallback = "department", }, ["overseas territory"] = { link = "w", fallback = "dependent territory", }, ["parish"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["parish municipality"] = { -- in Quebec, often similar to a rural village; the famous [[Saint-Louis-du-Ha! Ha!]] is one of them. link = "+w:parish municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, }, ["parish seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", class = "capital", has_neighborhoods = true, }, ["park"] = { link = true, class = "man-made structure", default = {true}, }, ["pass"] = { link = "+mountain pass", -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "passes", fallback = "mountain pass", }, ["path"] = { link = true, fallback = "road", }, ["peak"] = { link = true, fallback = "mountain", }, ["peninsula"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["periphery"] = { link = true, preposition = "of", class = "subpolity", }, ["places!"] = { generic_before_non_cities = "in", generic_before_cities = "in", class = "generic place", category_link = "[[place]]s of all sorts", -- `category_link_top_level` control the description used in the top-level [[Category:Places]] and -- language-specific variants such as [[Category:en:Places]]. The actual text for a language-spefic variant is -- "{{{langname}}} names of [[geographical]] [[place]]s of all sorts; [[toponym]]s." where the "names of" -- portion is automatically generated by the appropriate handler in -- [[Module:category tree/topic cat/data/Places]]. category_link_top_level = "[[geographical]] [[place]]s of all sorts; [[toponym]]s", bare_category_parent = "names", }, ["planned community"] = { -- Include this so we don't categorize 'planned community' into villages, as 'community' does. link = true, class = "settlement", has_neighborhoods = true, }, ["plateau"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, -- FIXME: Should generate both "Plateaus" and the appropriate 'geographic and cultural area' category }, ["Polish colony"] = { link = "[[w:colony (Poland)|colony]]", affix_type = "suf", affix = "colony", fallback = "village", has_neighborhoods = true, }, ["political divisions!"] = { category_link = "[[political]] [[division]]s and [[subdivision]]s, such as [[state]]s, [[province]]s, [[county|counties]] or [[district]]s", bare_category_parent = "places", }, ["polity"] = { link = true, category_link = "[[independent]] or [[semi-]][[independent]] [[polity|polities]]", class = "polity", bare_category_parent = "places", default = {true}, }, ["populated place"] = { link = "+w:populated place", -- not necessarily true, but usually is the case fallback = "village", }, ["port"] = { link = true, class = "man-made structure", default = {true}, }, ["port city"] = { -- FIXME: should categorize into "Ports" as well as "Cities" link = true, fallback = "city", }, ["port town"] = { -- FIXME: should categorize into "Ports" as well as "Towns" link = "w", fallback = "town", }, ["prefecture"] = { -- FIXME! `prefecture` is like a county in Japan and elsewhere but a department capital city in France. -- May need `has_neighborhoods` to be a function. link = true, preposition = "of", display_handler = prefecture_display_handler, class = "subpolity", }, ["prefecture-level city"] = { -- China; they are huge entities with a central city; not cities themselves. link = "w", preposition = "of", class = "subpolity", }, ["preserved county"] = { -- In Wales; they are former counties enshrined in law; there are 8 of them and each consists of one or more -- "principal areas" (styled as "counties" or "county boroughs"), of which there are 22. link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["primary area"] = { -- a grouping of "districts" (neighborhoods) in Gothenburg, Sweden link = "+w:sv:primärområde", fallback = "neighborhood", }, ["principality"] = { link = true, fallback = "monarchy", }, ["promontory"] = { link = true, fallback = "headland", }, ["protectorate"] = { link = true, fallback = "dependent territory", }, ["province"] = { link = true, preposition = "of", display_handler = province_display_handler, class = "subpolity", }, ["provinces and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case China. category_link = "[[province]]s and [[autonomous region]]s", class = "subpolity", }, ["provinces and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Canada and Pakistan. category_link = "[[province]]s and [[territory|territories]]", class = "subpolity", }, ["provincial capital"] = { link = "separately", fallback = "capital city", }, ["raion"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["ranch"] = { link = true, fallback = "farm", }, ["range"] = { -- FIXME: Where is this used? Is it a mountain range? link = true, holonym_use_the = true, class = "natural feature", }, ["regency"] = { link = true, preposition = "of", class = "subpolity", }, ["region"] = { link = true, preposition = "of", -- If 'region' isn't a specific administrative division, fall back to 'geographic and cultural area' fallback = "geographic and cultural area", -- "former region" is a subpolity but traditional/historic(al)/ancient/medieval/etc. is a geographic region class = "geographic region", }, ["regional capital"] = { link = "separately", fallback = "capital city", }, ["regional county municipality"] = { -- Quebec link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"municipality", "county"}, fallback = "municipality", }, ["regional district"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "district", }, ["regional municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", }, ["regional unit"] = { link = "w", preposition = "of", affix_type = "suf", class = "subpolity", }, ["registration county"] = { -- Used in Scotland for land registration purposes; formerly used in England, Wales and Ireland for statistical -- purposes (registration of births, deaths and marriages, and for the output of census information). link = "w", fallback = "county", }, ["republic"] = { -- Of Russia, Yugoslavia, etc. "Republics" in general are sovereign but we use "country" in that case. link = true, fallback = "constituent republic", }, ["research base"] = { link = "+w:research station", fallback = "research station", }, ["research station"] = { link = "w", class = "non-admin settlement", -- or "man-made structure"? default = {true}, }, ["reservoir"] = { link = true, fallback = "lake", }, ["residential area"] = { link = "separately", fallback = "neighborhood", }, ["resort city"] = { link = "w", fallback = "city", }, ["resort town"] = { link = "w", fallback = "town", }, ["river"] = { link = true, generic_before_non_cities = "in", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, cat_handler = city_type_cat_handler, ["continent/*"] = {true}, default = {true}, }, ["river island"] = { link = "w", fallback = "island", }, ["road"] = { link = true, class = "man-made structure", default = {"具名道路"}, }, ["Roman province"] = { -- FIXME! Eliminate this in favor of 'former province|emp/Roman Empire' link = "w", default = {"羅馬帝國行省"}, class = "subpolity", }, ["royal borough"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = {"royal", "borough"}, fallback = "local government district with borough status", has_neighborhoods = true, }, ["royal burgh"] = { link = true, fallback = "borough", }, ["royal capital"] = { link = "w", fallback = "capital city", }, ["rural committee"] = { -- Hong Kong; a group of villages link = "w", affix_type = "Suf", has_neighborhoods = true, class = "settlement", }, ["rural community"] = { -- New Brunswick link = "+w:list of municipalities in New_Brunswick#Rural communities", fallback = "municipality", }, ["rural hromada"] = { link = "[[rural]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["rural municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", has_neighborhoods = true, --? }, ["rural township"] = { -- Taiwan link = "+w:rural township (Taiwan)", fallback = "township", }, ["sanctuary"] = { link = true, fallback = "temple", }, ["satrapy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["sea"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["seaport"] = { link = true, fallback = "port", }, ["seat"] = { link = true, fallback = "administrative centre", }, ["self-administered area"] = { -- Myanmar (groups self-administered divisions and zones) link = "+w:self-administered zone", preposition = "of", class = "subpolity", }, ["self-administered division"] = { -- Myanmar (only one of them: Wa Self-Administered Division) link = "w", fallback = "self-administered area", }, ["self-administered zone"] = { -- Myanmar (five of them) link = "w", fallback = "self-administered area", }, ["separatist state"] = { link = "separately", fallback = "unrecognized country", }, ["settlement"] = { link = true, category_link = "[[settlement]]s such as [[city|cities]], [[village]]s and [[farm]]s", bare_category_parent = "places", -- not necessarily true, but usually is the case fallback = "village", }, ["settlement hromada"] = { link = "[[w:Populated places in Ukraine#Rural settlements|settlement]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["sheading"] = { -- Isle of Man link = true, fallback = "district", }, ["sheep station"] = { -- Australia link = true, fallback = "farm", }, ["shire"] = { link = true, fallback = "county", }, ["shire county"] = { link = "w", fallback = "county", }, ["shire town"] = { link = true, fallback = "county seat", }, ["ski resort city"] = { link = "[[ski resort]] [[city]]", fallback = "city", }, ["ski resort town"] = { link = "[[ski resort]] [[town]]", fallback = "town", }, ["spa city"] = { link = "+w:spa town", fallback = "city", }, ["spa town"] = { link = "w", fallback = "town", }, ["space station"] = { link = true, fallback = "research station", }, ["special administrative region"] = { -- in China; in practice they are city-like (Hong Kong, Macau); also [[Oecusse]] in East Timor is formally a -- "special administrative region"; North Korea had one such region planned (Sinuiju) but abandoned; Indonesia -- has similar "special regions" of Jakarta, Yogyakarta and Aceh; and South Sudan has three "special -- administrative areas" link = "+w:special administrative regions of China", preposition = "of", class = "subpolity", has_neighborhoods = true, --? -- no suffix since places in Hong Kong or Macau are listed without China, except Hong Kong and Macau themselves -- they also contain regions (or areas), e.g. [[Kowloon]], so it would be confusing suffix = "", }, ["special collectivity"] = { link = "w", fallback = "collectivity", }, ["special municipality"] = { -- formerly linked to the Taiwan article but there are also special municipalities of the Netherlands link = "w", fallback = "municipality", }, ["special ward"] = { -- Tokyo link = true, fallback = "municipality", }, ["spit"] = { link = true, fallback = "peninsula", }, ["spring"] = { link = true, class = "natural feature", default = {true}, }, ["star"] = { link = true, class = "natural feature", default = {true}, }, ["state"] = { link = true, preposition = "of", class = "subpolity", -- 'former/historical state' could refer either to a state of a country (a division) or a state = sovereign -- entity. The latter appears more common (e.g. in various "ancient states" of East Asia). former_type = "polity", }, ["states and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Australia. category_link = "[[state]]s and [[territory|territories]]", class = "subpolity", }, ["states and union territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case India. category_link = "[[state]]s and [[union territory|union territories]]", class = "subpolity", }, ["state capital"] = { link = true, fallback = "capital city", }, ["state park"] = { link = true, fallback = "park", }, ["state-level new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", fallback = "new area", }, ["statistical region"] = { -- Slovenia link = true, fallback = "administrative region", }, ["statutory city"] = { link = "w", fallback = "city", }, ["statutory town"] = { link = "w", fallback = "town", }, ["strait"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["stream"] = { link = true, fallback = "river", }, ["street"] = { link = true, fallback = "road", }, ["strip"] = { link = true, fallback = "geographic region", }, ["strip of land"] = { link = "[[strip]] of [[land]]", plural = "strips of land", plural_link = "[[strip]]s of [[land]]", fallback = "geographic region", }, ["sub-metropolitan city"] = { link = "+w:List of cities in Nepal#Sub-metropolitan cities", fallback = "city", }, ["sub-prefectural city"] = { link = "w", fallback = "subprovincial city", }, ["subdistrict"] = { link = true, preposition = "of", has_neighborhoods = true, --? -- FIXME: subdistricts can be neighborhood-like (of Jakarta) or larger (in China); need a handler class = "subpolity", default = {true}, }, ["subdivision"] = { link = true, preposition = "of", affix_type = "suf", -- FIXME: subdivisions can be neighborhood-like or larger; need a handler class = "subpolity", cat_handler = district_neighborhood_cat_handler, }, ["submerged ghost town"] = { -- FIXME: Consider just having "submerged" as a qualifier. link = "[[submerged]] [[ghost town]]", fallback = "ghost town", }, ["subnational kingdom"] = { link = "+w:subnational monarchy", fallback = "non-sovereign kingdom", }, ["subnational monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["subprefecture"] = { link = true, affix_type = "suf", preposition = "of", class = "subpolity", }, ["subprovince"] = { link = true, preposition = "of", class = "subpolity", }, ["subprovincial city"] = { link = "w", -- China; special status given to certain prefecture-level cities fallback = "prefecture-level city", }, ["subprovincial district"] = { link = "w", -- China; special status given to Binhai New Area and Pudong New Area, which are county-level districts preposition = "of", class = "subpolity", }, ["subregion"] = { link = true, fallback = "geographic region", }, ["suburb"] = { link = true, -- The following text is suitable for the top-level description of a suburb as well as categories of the form -- 'Suburbs in POLDIV' e.g. 'Suburbs in Illinois, USA' but not for categories of the form 'Suburbs of Chicago', -- where we'd get "[[suburb]]s of [[city|cities]] of [[Chicago]]". category_link = "[[suburb]]s of [[city|cities]]", category_link_before_city = "[[suburb]]s", -- See comments under "neighborhood" for the following three settings. They are used by -- [[Module:category tree/topic cat/data/Places]] for generating the text of 'Suburbs in/of PLACE' categories -- but currently ignored by district_neighborhood_cat_handler (which actually generates the categories for a -- given page), which hardcodes "in" for non-cities and "of" for cities. (FIXME: Change this.) generic_before_non_cities = "in", generic_before_cities = "of", preposition = "of", has_neighborhoods = true, --? class = "non-admin settlement", --? cat_handler = district_neighborhood_cat_handler, }, ["suburban area"] = { link = "w", fallback = "suburb", }, ["subway station"] = { link = "w", fallback = "metro station", }, ["sum"] = { -- In China, Mongolia, Russia; something like a county in Mongolia but a township in China (Inner Mongolia), -- and equivalent to a [[selsoviet]] in the parts of Russia where it's in use (a rural council, below a raion). link = "+w:sum (administrative division)", -- This fallback is somewha arbitrary. We could use "county" but that has a display handler -- which we don't want to be active (FIXME: If the display handler would be active, that's a bug). fallback = "division", }, ["supercontinent"] = { link = true, fallback = "continent", }, ["tehsil"] = { link = true, affix_type = "suf", no_affix_strings = {"tehsil", "tahsil"}, class = "subpolity", }, ["temple"] = { link = true, fallback = "building", }, ["territorial authority"] = { link = "w", fallback = "district", }, ["territory"] = { link = true, preposition = "of", class = "subpolity", }, ["theme"] = { link = "+w:theme (Byzantine district)", preposition = "of", class = "subpolity", }, ["town"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["town with bystatus"] = { -- can't use templates in links currently link = "[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]", plural = "towns with bystatus", plural_link = "[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]", fallback = "town", }, ["township"] = { link = true, has_neighborhoods = true, class = "settlement", --? default = {true}, }, ["township municipality"] = { -- Quebec link = "+w:township municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["traditional county"] = { link = true, fallback = "county", }, ["traditional region"] = { -- FIXME: Verify this works. Same for 'historic(al) region'. -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["trail"] = { link = true, fallback = "road", }, ["treaty port"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"FORMER"}, }, ["tributary"] = { link = true, preposition = "of", fallback = "river", }, ["underground station"] = { link = "w", fallback = "metro station", }, ["unincorporated area"] = { link = "w", -- I don't know if this fallback makes sense everywhere. fallback = "unincorporated community", }, ["unincorporated community"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", }, ["unincorporated territory"] = { link = "w", fallback = "territory", }, ["union territory"] = { -- India link = true, preposition = "of", entry_placetype_indefinite_article = "a", class = "subpolity", }, ["unitary authority"] = { -- UK, New Zealand link = true, entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["unitary district"] = { link = "w", entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["united township municipality"] = { -- Quebec link = "+w:united township municipality (Quebec)", entry_placetype_indefinite_article = "a", fallback = "township municipality", has_neighborhoods = true, --? }, ["university"] = { link = true, entry_placetype_indefinite_article = "a", class = "man-made structure", default = {true}, }, ["unrecognised country"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized and nearly unrecognized countries!"] = { category_link = "[[de facto]] [[independent]] [[state]]s with little or no {{w|international recognition}}", bare_category_parent = "country-like entities", }, ["unrecognized country"] = { link = "w", class = "polity", default = {"未受國際普遍承認國家"}, }, ["unrecognised state"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized state"] = { link = "w", fallback = "unrecognized country", }, ["urban area"] = { link = "separately", fallback = "neighborhood", }, ["urban hromada"] = { link = "[[urban]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["urban service area"] = { -- A strange beast existing in Alberta; technically a type of hamlet but in practice used for much larger -- cities and treated equivalent to a city. (There are only two of them, [[Fort McMurray]] and [[Sherwood Park]]). link = "w", fallback = "city", }, ["urban township"] = { link = "w", fallback = "township", }, ["urban-type settlement"] = { -- appears to be a particular type of small urban settlement in post-Soviet states, -- had an administrative function. link = "w", fallback = "town", }, ["valley"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "water"}, default = {true}, }, ["viceroyalty"] = { -- in essence, a type of colony link = true, fallback = "dependent territory", }, ["village"] = { link = true, generic_before_non_cities = "in", category_link = "[[village]]s, [[hamlet]]s, and other small [[community|communities]] and [[settlement]]s", class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["village development committee"] = { -- former administrative structure in Nepal; also exists in India but not as a formal unit link = "+w:village development committee (Nepal)", inherently_former = {"FORMER"}, fallback = "village", }, ["village municipality"] = { -- Quebec link = "+w:village municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["voivodeship"] = { -- Poland link = true, display_handler = voivodeship_display_handler, preposition = "of", class = "subpolity", }, ["volcano"] = { link = true, plural = "volcanoes", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true, "山"}, }, ["ward"] = { link = true, class = "settlement", -- Wards are formal administrative divisions of a city but have some properties of neighborhoods. fallback = "neighborhood", }, ["watercourse"] = { link = true, fallback = "channel", }, ["Welsh community"] = { -- Wales link = "[[w:community (Wales)|community]]", preposition = "of", affix_type = "suf", affix = "community", has_neighborhoods = true, class = "settlement", }, ["zone"] = { -- administrative division of Ethiopia, Qatar, Nepal, India link = "+w:zone#Place names", preposition = "of", class = "subpolity", }, ---------------------------------------------------------------------------------------------- -- Categories for former places -- ---------------------------------------------------------------------------------------------- ["ANCIENT capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", -- FIXME: Consider removing 'ancient settlements' here. Ancient capitals, like former capitals, often still -- exist but just aren't the capital any more. Maybe we should have an 'Ancient capitals' category. default = {"古代定居點", "歷史首府"}, }, ["ANCIENT non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "ANCIENT settlement", }, ["ANCIENT settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"古代定居點"}, }, ["ancient settlements!"] = { category_link = "former [[city|cities]], [[town]]s and [[village]]s that existed in [[antiquity]]", bare_category_parent = "former settlements", }, ["FORMER capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", default = {"歷史首府"}, }, ["former capitals!"] = { category_link = "former [[capital]] [[city|cities]] and [[town]]s", bare_category_parent = "settlements", }, ["former counties and county-level cities!"] = { -- For categorizing former counties and county-level cities of China category_link = "no-longer existing [[county|counties]] and [[county-level city|county-level cities]]", bare_category_breadcrumb = "counties and county-level cities", bare_category_parent = "former political divisions", }, ["FORMER county"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["FORMER county-level city"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["former countries and country-like entities!"] = { category_link = "[[country|countries]] and similar [[polity|polities]] that no longer exist", bare_category_breadcrumb = "countries and country-like entities", bare_category_parent = "former polities", }, ["FORMER country"] = { link = false, class = "polity", default = {"Former countries and country-like entities"}, }, ["former dependent territories!"] = { category_link = "[[w:dependent territory|dependent territories]] (colonies, dependencies, protectorates, etc.) that no longer exist", bare_category_breadcrumb = "dependent territories", bare_category_parent = "former political divisions", }, ["FORMER dependent territory"] = { link = false, preposition = "of", class = "subpolity", default = {"Former dependent territories"}, }, ["former districts!"] = { -- For categorizing former districts of China category_link = "no-longer-existing [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "former political divisions", }, ["FORMER district"] = { -- For categorizing former districts of China link = false, fallback = "FORMER subpolity", }, ["FORMER geographic region"] = { link = false, fallback = "geographic and cultural area", }, ["FORMER man-made structure"] = { link = false, class = "man-made structure", default = {"Former man-made structures"}, }, ["former man-made structures!"] = { category_link = "man-made structures such as [[airport]]s and [[park]]s that no longer exist", bare_category_breadcrumb = "man-made structures", bare_category_parent = "former places", }, ["former municipalities!"] = { -- For categorizing former municipalities of the Netherlands category_link = "no-longer-existing [[municipality|municipalities]]", bare_category_breadcrumb = "municipalities", bare_category_parent = "former political divisions", }, ["FORMER municipality"] = { -- For categorizing former municipalities of the Netherlands link = false, fallback = "FORMER subpolity", }, ["FORMER natural feature"] = { link = false, class = "natural feature", default = {"Former natural features"}, }, ["former natural features!"] = { category_link = "natural features such as [[lake]]s, [[river]]s and [[island]]s that no longer exist", bare_category_breadcrumb = "natural features", bare_category_parent = "former places", }, ["FORMER non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "FORMER settlement", }, ["former places!"] = { category_link = "[[place]]s of all sorts that no longer exist", bare_category_breadcrumb = "former", bare_category_parent = "places", }, ["former political divisions!"] = { category_link = "[[political]] [[division]]s (states, provinces, counties, etc.) that no longer exist", bare_category_breadcrumb = "political divisions", bare_category_parent = "former places", }, ["former polities!"] = { category_link = "[[polity|polities]] (countries, kingdoms, empires, etc.) that no longer exist", bare_category_breadcrumb = "polities", bare_category_parent = "former places", }, ["FORMER polity"] = { link = false, class = "polity", default = {"Former polities"}, }, ["former prefectures!"] = { -- For categorizing former prefectures of China category_link = "no-longer-existing [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "former political divisions", }, ["FORMER prefecture"] = { -- For categorizing former prefectures of China link = false, fallback = "FORMER subpolity", }, ["former provinces!"] = { -- For categorizing former provinces of China, etc. category_link = "no-longer-existing [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "former political divisions", }, ["FORMER province"] = { -- For categorizing ancient/historical/former provinces of the Roman Empire link = false, fallback = "FORMER subpolity", }, ["former region"] = { -- A former region is considered a former political division, but not a 'historical/traditional/etc.' region. link = "separately", preposition = "of", inherently_former = {"FORMER"}, class = "subpolity", }, ["FORMER settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"Former settlements"}, }, ["former settlements!"] = { category_link = "[[city|cities]], [[town]]s and [[village]]s that no longer exist or have been merged or reclassified", bare_category_breadcrumb = "settlements", bare_category_parent = "former political divisions", }, ["FORMER subpolity"] = { link = false, preposition = "of", class = "subpolity", default = {"Former political divisions"}, }, ---------------------------------------------------------------------------------------------- -- form-of categories -- ---------------------------------------------------------------------------------------------- ---------- Abbreviations ---------- ["abbreviations of counties!"] = { -- For categorizing abbreviations of counties of e.g. England full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[county|counties]]", bare_category_breadcrumb = "counties", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of places", }, ["abbreviations of departments!"] = { -- For categorizing abbreviations of departments of e.g. France full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[department]]s", bare_category_breadcrumb = "departments", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of districts!"] = { -- For categorizing abbreviations of districts of e.g. ??? full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of divisions!"] = { -- For categorizing abbreviations of divisions of e.g. Bangladesh full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[division]]s", bare_category_breadcrumb = "divisions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of former countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of former places", }, ["abbreviations of former places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "abbreviations", bare_category_parent = "former places", addl_bare_category_parents = {{name = "abbreviations of places", sort = "former"}}, }, ["abbreviations of places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "abbreviations", bare_category_parent = "places", }, ["abbreviations of political divisions!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[political]] [[division]]s", bare_category_breadcrumb = "political divisions", bare_category_parent = "abbreviations of places", }, ["abbreviations of prefectures!"] = { -- For categorizing abbreviations of prefectures of e.g. Japan full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces!"] = { -- For categorizing abbreviations of provinces of e.g. Canada full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s and [[territory|territories]]", bare_category_breadcrumb = "provinces and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of regions!"] = { -- For categorizing abbreviations of regions of e.g. Italy full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[administrative region]]s", bare_category_breadcrumb = "regions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states!"] = { -- For categorizing abbreviations of states of e.g. the United States full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[territory|territories]]", bare_category_breadcrumb = "states and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and union territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[union territory|union territories]]", bare_category_breadcrumb = "states and union territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[territory|territories]]", bare_category_breadcrumb = "territories", bare_category_parent = "abbreviations of political divisions", }, ["ABBREVIATION_OF country"] = { link = false, default = {"Abbreviations of countries"}, }, ["ABBREVIATION_OF county"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF department"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF district"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF division"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF FORMER country"] = { link = false, default = {"Abbreviations of former countries"}, }, ["ABBREVIATION_OF FORMER place"] = { link = false, default = {"Abbreviations of former places"}, }, ["ABBREVIATION_OF place"] = { link = false, default = {"Abbreviations of places"}, }, ["ABBREVIATION_OF prefecture"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF province"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF region"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF state"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF subpolity"] = { link = false, default = {"Abbreviations of political divisions"}, }, ["ABBREVIATION_OF territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF union territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ---------- Archaic forms ---------- ["archaic forms of places!"] = { full_category_link = "{{glossary|archaic}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "archaic forms", bare_category_parent = "places", }, ["ARCHAIC_FORM_OF place"] = { link = false, default = {"Archaic forms of places"}, }, ---------- Clippings ---------- ["clippings of places!"] = { full_category_link = "{{glossary|clipping}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "clippings", bare_category_parent = "places", }, ["CLIPPING_OF place"] = { link = false, default = {"Clippings of places"}, }, ---------- Dated forms ---------- ["dated forms of places!"] = { full_category_link = "{{glossary|dated}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "dated forms", bare_category_parent = "places", }, ["DATED_FORM_OF place"] = { link = false, default = {"Dated forms of places"}, }, ---------- Derogatory names ---------- ["derogatory names for cities!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[city|cities]]", bare_category_breadcrumb = "cities", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["derogatory names for continents!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for continents"}, }, ["derogatory names for countries!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for countries"}, }, ["derogatory names for places!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[place]]s", bare_category_breadcrumb = "derogatory names", bare_category_parent = "nicknames for places", }, ["derogatory names for states!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for states"}, }, ["DEROGATORY_NAME_FOR capital"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR city"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR continent"] = { link = false, default = {"Derogatory names for continents"}, }, ["DEROGATORY_NAME_FOR country"] = { link = false, default = {"Derogatory names for countries"}, }, ["DEROGATORY_NAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR place"] = { link = false, default = {"Derogatory names for places"}, }, ["DEROGATORY_NAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR state"] = { link = false, default = {"Derogatory names for states"}, }, ["DEROGATORY_NAME_FOR town"] = { link = false, default = {"Derogatory names for cities"}, }, ---------- Ellipses ---------- ["ellipses of places!"] = { full_category_link = "{{glossary|ellipsis|ellipses}} of [[name]]s of [[place]]s", bare_category_breadcrumb = "ellipses", bare_category_parent = "places", }, ["ELLIPSIS_OF place"] = { link = false, default = {"Ellipses of places"}, }, ---------- Former long-form names ---------- ["former long-form names of countries!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former long-form names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "long-form"}}, }, ["former long-form names of places!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form", bare_category_parent = "former names of places", }, ["FORMER_LONG_FORM_OF country"] = { link = false, default = {"Former long-form names of countries"}, }, ["FORMER_LONG_FORM_OF place"] = { link = false, default = {"Former long-form names of places"}, }, ---------- Former names ---------- ["former names of capitals!"] = { full_category_link = "[[former]] [[name]]s of [[capital city|capital cities]] that generally still exist but under a different name", bare_category_breadcrumb = "capitals", bare_category_parent = "former names of settlements", }, ["former names of countries!"] = { full_category_link = "[[former]] [[name]]s of [[country|countries]] that generally still exist but under a different name", bare_category_breadcrumb = "countries", bare_category_parent = "former names of places", }, ["former names of places!"] = { full_category_link = "[[former]] [[name]]s of [[place]]s that generally still exist but under a different name", bare_category_breadcrumb = "former names", bare_category_parent = "places", }, ["former names of political divisions!"] = { full_category_link = "[[former]] [[name]]s of [[political]] [[division]]s (states, provinces, counties, etc.) that generally still exist but under a different name", bare_category_breadcrumb = "political divisions", bare_category_parent = "former names of places", }, ["former names of polities!"] = { full_category_link = "[[former]] [[name]]s of [[polity|polities]] (e.g. [[country|countries]]) that generally still exist but under a different name", bare_category_breadcrumb = "polities", bare_category_parent = "former names of places", }, ["former names of settlements!"] = { full_category_link = "[[former]] [[name]]s of [[city|cities]], [[town]]s, [[village]]s, etc. that generally still exist but under a different name", bare_category_breadcrumb = "settlements", bare_category_parent = "former names of political divisions", }, ["FORMER_NAME_OF capital"] = { link = false, default = {"Former names of capitals"}, }, ["FORMER_NAME_OF country"] = { link = false, default = {"Former names of countries"}, }, ["FORMER_NAME_OF place"] = { link = false, default = {"Former names of places"}, }, ["FORMER_NAME_OF polity"] = { link = false, default = {"Former names of polities"}, }, ["FORMER_NAME_OF region"] = { link = false, fallback = "FORMER_NAME_OF subpolity", }, ["FORMER_NAME_OF settlement"] = { link = false, default = {"Former names of settlements"}, }, ["FORMER_NAME_OF subpolity"] = { link = false, default = {"Former names of political divisions"}, }, ---------- Former nicknames ---------- ["former nicknames for cities!"] = { full_category_link = "no-longer-used [[nickname]]s for [[city|cities]], e.g. the [[Eternal City]] for [[Kyoto]] during the {{w|Heian period}} ({{circa2|800–1100|short=yes}} {{AD}})", bare_category_breadcrumb = "cities", bare_category_parent = "former nicknames for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["former nicknames for places!"] = { full_category_link = "no-longer-used [[nickname]]s for [[place]]s", bare_category_breadcrumb = "former", bare_category_parent = "nicknames for places", addl_bare_category_parents = {{name = "former names of places", sort = "nicknames"}}, }, ["FORMER_NICKNAME_FOR capital"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR city"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR place"] = { link = false, default = {"Former nicknames for places"}, }, ["FORMER_NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR town"] = { link = false, default = {"Former nicknames for cities"}, }, ---------- Former official names ---------- ["former official names of countries!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former official names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "official"}}, }, ["former official names of places!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "former names of places", }, ["FORMER_OFFICIAL_NAME_OF country"] = { link = false, default = {"Former official names of countries"}, }, ["FORMER_OFFICIAL_NAME_OF place"] = { link = false, default = {"Former official names of places"}, }, ---------- Long-form names ---------- ["long-form names of countries!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "long-form names of places", }, ["long-form names of places!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form names", bare_category_parent = "places", }, ["LONG_FORM_OF country"] = { link = false, default = {"Long-form names of countries"}, }, ["LONG_FORM_OF place"] = { link = false, default = {"Long-form names of places"}, }, ---------- Nicknames ---------- ["nicknames for cities!"] = { full_category_link = "[[nickname]]s for [[city|cities]], e.g. the [[Big Apple]] for [[New York City]]", bare_category_breadcrumb = "cities", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"cities"}, }, ["nicknames for continents!"] = { full_category_link = "[[nickname]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"continents"}, }, ["nicknames for countries!"] = { full_category_link = "[[nickname]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"countries"}, }, ["nicknames for places!"] = { full_category_link = "[[nickname]]s for [[place]]s", bare_category_breadcrumb = "places", bare_category_parent = "nicknames", addl_bare_category_parents = {"places"}, }, ["nicknames for states!"] = { -- For categorizing nicknames for states of e.g. the United States full_category_link = "[[nicknames]] for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"states"}, }, ["NICKNAME_FOR capital"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR city"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR continent"] = { link = false, default = {"Nicknames for continents"}, }, ["NICKNAME_FOR country"] = { link = false, default = {"Nicknames for countries"}, }, ["NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR place"] = { link = false, default = {"Nicknames for places"}, }, ["NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR state"] = { link = false, default = {"Nicknames for states"}, }, ["NICKNAME_FOR town"] = { link = false, default = {"Nicknames for cities"}, }, ---------- Obsolete forms ---------- ["obsolete forms of places!"] = { full_category_link = "{{glossary|obsolete}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "obsolete forms", bare_category_parent = "places", }, ["OBSOLETE_FORM_OF place"] = { link = false, default = {"Obsolete forms of places"}, }, ---------- Official names ---------- ["official names of countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of places", }, ["official names of former countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of former places", }, ["official names of former places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "official names", bare_category_parent = "former places", addl_bare_category_parents = {{name = "official names of places", sort = "former"}}, }, ["official names of places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official names", bare_category_parent = "places", }, ["OFFICIAL_NAME_OF country"] = { link = false, default = {"Official names of countries"}, }, ["OFFICIAL_NAME_OF FORMER country"] = { link = false, default = {"Official names of former countries"}, }, ["OFFICIAL_NAME_OF FORMER place"] = { link = false, default = {"Official names of former places"}, }, ["OFFICIAL_NAME_OF place"] = { link = false, default = {"Official names of places"}, }, ---------- Official nicknames ---------- ["official nicknames for places!"] = { full_category_link = "[[official]] [[nickname]]s for [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for places", }, ["official nicknames for states!"] = { -- For categorizing official nicknames for states of e.g. the United States full_category_link = "[[official]] [[nicknames]] for [[state]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for states", addl_bare_category_parents = {"states"}, }, ["OFFICIAL_NICKNAME_FOR place"] = { link = false, default = {"Official nicknames for places"}, }, ["OFFICIAL_NICKNAME_FOR state"] = { link = false, default = {"Official nicknames for states"}, }, } export.plural_placetype_to_singular = {} for sg_placetype, spec in pairs(export.placetype_data) do if spec.plural then export.plural_placetype_to_singular[spec.plural] = sg_placetype end end ------------------------------------------------------------------------------------------ -- ZH: Chinese localization functions -- ------------------------------------------------------------------------------------------ --[==[ Get the Chinese display name for a placetype, resolving through the enwikt fallback chain. `holonym_placetype` (optional string) provides context for placetypes like `capital city` whose Chinese term depends on the containing administrative level (country → 首都, province → 省會, state → 首府, etc.). Returns two values: zh_name (string or array of regional variants), zh_suffix (string, array, or nil). Returns nil, nil if no Chinese data is available for the placetype or any of its fallbacks. ]==] function export.get_zh_placetype_name(placetype, holonym_placetype) placetype = export.resolve_placetype_aliases(placetype) local zh_name, zh_suffix, zh_by_holonym = m_zh_data.get_zh_placetype_props(placetype, export) if zh_name then local resolved = m_zh_data.resolve_zh_name(zh_name, zh_by_holonym, holonym_placetype) return resolved, zh_suffix end return nil, nil end --[==[ Get only the Chinese suffix for a placetype. Used when rendering holonym `:pref`/`:suf` modifiers in Chinese: the suffix is appended directly to the holonym name (e.g. `s:suf/New York` → 紐約州; `c:pref/Georgia` → 格魯吉亞國). Returns a string, an array of regional variants, or nil if no suffix is defined. ]==] function export.get_zh_placetype_suffix(placetype) placetype = export.resolve_placetype_aliases(placetype) local _, zh_suffix = m_zh_data.get_zh_placetype_props(placetype, export) return zh_suffix end --[==[ Chinese placetype "pluralization" — a no-op, since Chinese has no grammatical plural. Accepts and returns a string or an array (for multi-variant names) unchanged. Provided so that call sites shared with the English path can call a uniform function. ]==] function export.pluralize_zh_placetype(zh_name) return zh_name end --[==[ Get the entry preposition for Chinese display: "in" or "of". Identical to `get_placetype_entry_preposition` in semantics; the Chinese rendering maps these to different constructions: "in" → 位於 [holonyms] 的 [placetype] "of" → [holonyms] 的 [placetype] (no 位於 prefix) ]==] export.get_zh_entry_preposition = export.get_placetype_entry_preposition -- Re-export Chinese data tables so that [[Module:place]] only needs to require -- this module rather than both this module and [[Module:place/zh-data]] separately. export.zh_strings = m_zh_data.zh_strings export.zh_qualifiers = m_zh_data.zh_qualifiers export.zh_extra_info_labels = m_zh_data.zh_extra_info_labels export.zh_capital_label_by_holonym_type = m_zh_data.zh_capital_label_by_holonym_type export.format_zh_name = m_zh_data.format_zh_name return export lf10p3c62sso0to6j6flpsob2n5s2xw 9759528 9759527 2026-05-14T21:45:33Z TongcyDai 53191 9759528 Scribunto text/plain local export = {} export.force_cat = false -- set to true for testing local m_locations = require("Module:place/locations") local m_links = require("Module:links") local m_table = require("Module:table") local m_strutils = require("Module:string utilities") local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" -- Chinese localization data (zh_name, zh_suffix, qualifiers, extra-info labels, etc.) local m_zh_data = require("Module:place/data/sandbox") local dump = mw.dumpObject local insert = table.insert local concat = table.concat local internal_error = m_locations.internal_error export.internal_error = internal_error local process_error = m_locations.process_error export.process_error = process_error local unpack = unpack or table.unpack -- Lua 5.2 compatibility local ucfirst = m_strutils.ucfirst local ulower = m_strutils.lower local rmatch = m_strutils.match local split = m_strutils.split --[==[ intro: This module contains placetype data used by [[Module:place]] and {{tl|place}}, along with a significant amount of code to work with both placetypes and locations, as well as some placename-related info (FIXME: Consider moving it to [[Module:place/locations]]). See also [[Module:place/locations]], which has definitions of all known locations. You must currently load this module using {{cd|require()}}, not using {{cd|mw.loadData()}}. In particular, it contains two fundamental and tricky functions: # `get_placetype_equivs`, which finds the equivalent placetypes to look under in order to find a given property, and in the process correctly handles placetypes with qualifiers (including qualifiers that act similar to "type-raising" operators in that they do something non-trivial to the placetype to their right) as well as form-of directives and fallbacks. # `find_matching_holonym_location`, which looks up a holonym to find a matching known location, but in the process checks holonyms to the right to make sure there isn't a clash between the user-specified containing holonyms and the containers of the known location being considered. This is done to prevent overcategorizing when either there are two known locations with the same name (e.g. Birmingham in England and Birmingham, Alabama in the US), or more generally two locations with the same name, one of which is a known location but where the other is not (e.g. we're processing non-known-location Mérida, Spain and don't want it categorized like known location Mérida, Yucatán, Mexico). Both of these functions are invoked repeatedly, and probably are invoked several times on the same inputs and as a result are candidates for memoization to speed up the operation of {{tl|place}}. ]==] ------------------------------------------------------------------------------------------ -- Basic utilities -- ------------------------------------------------------------------------------------------ --[==[ Return true if `force_cat` is set either in this module or in [[Module:place/locations]]. ]==] function export.get_force_cat() return export.force_cat or m_locations.force_cat end -- Add the page to a tracking "category". To see the pages in the "category", -- go to [[Wiktionary:Tracking/place/PAGE]] and click on "What links here". local function track(page) require(debug_track_module)("place/" .. page) return true end function export.remove_links_and_html(text) text = m_links.remove_links(text) return text:gsub("<.->", "") end --[==[ Return the singular version of a maybe-plural placetype, or nil if not plural. This correctly handles placetypes with irregular plurals such as `kibbutzim` plural of `kibbutz` by looking up in a table constructed from the `plural` values specified in `placetype_data`. If a special plural value is not found, the regular singularization algorithm in [[Module:en-utilities]] is invoked, which reverses the y -> ies change after vowels and the 'es' addition after sh/ch/x, and otherwise just subtracts a final 's' (which will incorrectly generate 'passe' for plural 'passes'; FIXME: consider changing this for words ending in '-sses'). If the generated singular is the same as the passed-in value, nil is returned. ]==] function export.maybe_singularize_placetype(placetype) if not placetype then return nil end if export.plural_placetype_to_singular[placetype] then return export.plural_placetype_to_singular[placetype] end local retval = require(en_utilities_module).singularize(placetype) if retval == placetype then return nil end return retval end -- Return the correct plural of a placetype, and (if `do_ucfirst` is given) make the first letter uppercase. We first -- look up the plural in `placetype_data`, falling back to pluralize() in [[Module:en-utilities]], which is almost -- always correct. function export.pluralize_placetype(placetype, do_ucfirst) local ptdata = export.placetype_data[placetype] if ptdata and ptdata.plural then placetype = ptdata.plural else placetype = require(en_utilities_module).pluralize(placetype) end if do_ucfirst then return ucfirst(placetype) else return placetype end end --[==[ Get the data associated with a placetype, which may be in its singular or plural form. If `from_category` is specified, we also look for category-only placetypes (generally plural) followed by `!`. Return three values: (a) the placetype under which the data can be looked up (i.e. in its singular form if the passed-in `placetype` is plural and did not match a category-only placetype followed by `!`); (b) the placetype data structure; (c) the type of `placetype` match that occurred, one of `"direct"` if the canonical placetype is the same as the passed-in `placetype` and also the same as the key under which `ptdata` was looked up, or `"direct-category"` if the `ptdata` was looked up under a key formed from the passed-in `placetype` by adding `!`, or `"plural"` if the `ptdata` was looked up under the singularized version of the plural passed-in `placetype`. ]==] function export.get_placetype_data(placetype, from_category) local ptdata = export.placetype_data[placetype] if ptdata then return placetype, ptdata, "direct" end if from_category then ptdata = export.placetype_data[placetype .. "!"] if ptdata then return placetype .. "!", ptdata, "direct-category" end end local sg_placetype = export.maybe_singularize_placetype(placetype) if sg_placetype then ptdata = export.placetype_data[sg_placetype] if ptdata then return sg_placetype, ptdata, "plural" end end return nil end --[==[ Check for special pseudo-placetypes that should be ignored for categorization purposes. ]==] function export.placetype_is_ignorable(placetype) return placetype == "and" or placetype == "or" or placetype:find("^%(") end function export.resolve_placetype_aliases(placetype) return export.placetype_aliases[placetype] or placetype end --[==[ Return a property from `placetype_data` for a given placetype. If the placetype isn't found in `placetype_data`, or the key isn't found in the placetype's entry in `placetype_data`, return nil. ]==] function export.get_placetype_prop(placetype, key) -- Usually we are called on equivalent placetypes returned from `get_placetype_equivs`, in which case placetype -- aliases have been resolved, but sometimes not, e.g. when fetching the indefinite article in -- get_placetype_article(). `resolve_placetype_aliases` is just a simple lookup and it doesn't hurt to do it twice. placetype = export.resolve_placetype_aliases(placetype) if export.placetype_data[placetype] then return export.placetype_data[placetype][key] else return nil end end --[==[ Given a placetype, split the placetype into one or more potential ''splits'', each consisting of a three-element list { {``prev_qualifiers``, ``this_qualifier``, ``reduced_placetype``}}, i.e. # the concatenation of zero or more previously-recognized qualifiers on the left, normally canonicalized (if there are zero such qualifiers, the value will be nil); # a single recognized qualifier, normally canonicalized (if there is no qualifier, the value will be nil); # the "reduced placetype" on the right. Splitting between the qualifier in (2) and the reduced placetype in (3) happens at each space character, proceeding from left to right, and stops if a qualifier isn't recognized. All placetypes are canonicalized by checking for aliases in `placetype_aliases`, but no other checks are made as to whether the reduced placetype is recognized. Canonicalization of qualifiers does not happen if `no_canon_qualifiers` is specified. For example, given the placetype `"small beachside unincorporated community"`, the return value will be { { {nil, nil, "small beachside unincorporated community"}, {nil, "small", "beachside unincorporated community"}, {"small", "[[beachfront]]", "unincorporated community"}, {"small [[beachfront]]", "[[unincorporated]]", "community"}, }} Here, `"beachside"` is canonicalized to `"[[beachfront]]"` and `"unincorporated"` is canonicalized to `"[[unincorporated]]"`, in both cases according to the entry in `placetype_qualifiers`. On the other hand, if given `"small former haunted community"`, the return value will be { { {nil, nil, "small former haunted community"}, {nil, "small", "former haunted community"}, {"small", "former", "haunted community"}, }} because `"small"` and `"former"` but not `"haunted"` are recognized as qualifiers. Finally, if given `"former adr"`, the return value will be { { {nil, nil, "former adr"}, {nil, "former", "administrative region"}, }} because `"adr"` is a recognized placetype alias for `"administrative region"`. ]==] function export.split_qualifiers_from_placetype(placetype, no_canon_qualifiers) local splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} local prev_qualifier = nil while true do local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if canon == nil then break end local new_qualifier = qualifier if type(canon) == "table" then canon = canon.link end if not no_canon_qualifiers and canon ~= false then if canon == true then new_qualifier = "[[" .. qualifier .. "]]" else new_qualifier = canon end end insert(splits, {prev_qualifier, new_qualifier, export.resolve_placetype_aliases(reduced_placetype)}) prev_qualifier = prev_qualifier and prev_qualifier .. " " .. new_qualifier or new_qualifier placetype = reduced_placetype else break end end return splits end --[==[ Given a `placetype` (which may be pluralized), return an ordered list of equivalent placetypes to look under to find the placetype's properties (such as the category or categories to be inserted). The return value is actually an ordered list of objects of the form `{qualifier=``qualifier``, placetype=``equiv_placetype``}` where ``equiv_placetype`` is a placetype whose properties to look up, derived from the passed-in placetype or from a contiguous subsequence of the words in the passed-in placetype (always including the rightmost word in the placetype, i.e. we successively chop off qualifier words from the left and use the remainder to find equivalent placetypes). ``qualifier`` is the remaining words not part of the subsequence used to find ``equiv_placetype``; or nil if all words in the passed-in placetype were used to find ``equiv_placetype``. (FIXME: This qualifier is not currently used anywhere.) Only placetypes for which there is an entry in `placetype_data` are included. The placetype passed in is always checked first, and will form the first entry if it exists in `placetype_data`. '''NOTE:''' This is a tricky function as it implements handling of (a) qualifiers, (b) fallback logic, (c) "type-raising" qualifiers such as `former`/`ancient`/etc. as well as `fictional` and `mythological`, and (d) form-of directives, which act somewhat similarly to `former`, and allows interaction between more than one of these simultaneously (e.g. official names of former places, which have their own categorization). If {{tl|place}} gets too slow, one potential speedup is to memoize the results of this function, as it appears to be getting called more than once on the same inputs. Another similar potential speedup is to memoize the results of `iterate_matching_holonym_location()`. For example, given the placetype `left tributary`, the following placetype/qualifier combinations are checked in turn: ``` {qualifier = nil, placetype="left tributary"} {qualifier = "left", placetype="tributary"} {qualifier = "left", placetype="river"} ``` and the return value will be { { {qualifier = "left", placetype="tributary"}, {qualifier = "left", placetype="river"}, }} The algorithm first enters the placetype itself into the list, then checks for `left tributary` as a recognized placetype in `placetype_data` and doesn't find it, so it doesn't enter it into the returned list (if it found it, it would add it as well as any fallbacks directly after it). It then splits off the recognized qualifier `left` to form the ''reduced placetype'' `tributary`, which is entered into the list because it is found in `placetype_data`. Then, because it has a fallback `river`, which exists in `placetype_data`, the fallback is entered next. Another example is `small rural fraziones` (where a ''frazione'' is type of subdivision of a ''comune'' or municipality, often specifically an outlying hamlet). the placetype/qualifier combinations checked are: ``` {qualifier = nil, placetype="small rural fraziones"} {qualifier = nil, placetype="small rural frazione"} {qualifier = "small", placetype="rural fraziones"} {qualifier = "small", placetype="rural frazione"} {qualifier = "small [[rural]]", placetype="fraziones"} {qualifier = "small [[rural]]", placetype="frazione"} {qualifier = "small [[rural]]", placetype="hamlet"} {qualifier = "small [[rural]]", placetype="village"} ``` The return value ends up as {qualifier = "small [[rural]]", placetype="frazione"}, {qualifier = "small [[rural]]", placetype="hamlet"}, {qualifier = "small [[rural]]", placetype="village"}, }} Here, because the result of singularizing `fraziones` returns a different value from the placetype itself, that singularized value is checked after the original plural value. Also, in the process of splitting off qualifiers, they are canonicalized if the entry in `placetype_qualifiers` says to do so; in this case, links are placed around `rural`. Finally, `frazione` has `hamlet` as its fallback, which in turn has `village` as its fallback, so both fallbacks end up being returned. `no_fallback`, if set, disables returning equivalent placetypes based on the `fallback` setting for a placetype. This is used in the first of two loops in find_placetype_cat_specs() in [[Module:place]] to prefer exact matches for placetypes such as barangays with later holonyms to matches based on a fallback such as `neighborhood` with an earlier holonym. See the comment in that function in [[Module:place]] for a more detailed explanation of why this is needed. Only the placetype itself, and any reduced placetypes created by chopping off recognized qualifiers at the beginning, are returned; but we do not return reduced placetypes if a containing placetype exists in `placetype_data`. (For example, `"overseas territory"` has a fallback `"dependent territory"`, and `"overseas"` is also a recognized qualifier. When `no_fallback` is in place, without the above proviso, we would return `"overseas territory"` followed by `"territory"` with the incorrect effect of classifying an `"overseas territory"` of the United Kingdom such as `"Gibraltar"` under [[:Category:Territories of the United Kingdom]] instead of [[:Category:Dependent territories of the United Kingdom]].) As an exception, if `historical`, `ancient`, `former` or the like are found, they proceed ignoring `no_fallback`, because it seems tricky to handle them correctly in the presence of `no_fallback`, and historical/former placetypes rarely occur with exact match category specs anyway. `no_split_qualifiers` prevents splitting off recognized qualifiers and returning the remainder of the placetype as an equivalent placetype. Only the passed-in placetype, and any fallbacks, will be returned. This is used in [[Module:category tree/topic cat/data/Places]] when looking up placetypes found in categories. Such placetypes won't have qualifiers and so it doesn't make sense to try and look for them. `from_category`, if set, causes category-only placetypes (those ending in `!`) to also be checked. `form_of_directive`, if set, causes the specified form-of directive (e.g. `FORMER_NAME_OF`) to be prepended to checked placetypes, their directive-specific type (e.g. `FORMER_NAME_OF_type`), and their classes (`class`) to get the appropriate placetypes to check for form-of-directive categories. It falls back to the prepended generic `place` as a placetype, e.g. `FORMER_NAME_OF place`, if nothing else matches. `no_check_for_inherently_former` is used internally to prevent an infinite loop when checking for `inherently_former`. `register_former_as_non_former` is a major hack used in `get_bare_categories` to deal with the mismatch between e.g. known location `Yugoslavia` declaring itself a `country` but definitions of it declaring it a `former country`. It causes the non-former version of the specified placetype to be included in the returned equivalents along with the former placetypes. [FIXME: This should apply only to the entries in `former_countries` but it's tricky to do that now; fix this in the known-location refactor. -- The known-location refactor is already done but we haven't yet fixed this.] ]==] function export.get_placetype_equivs(placetype, props) local no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former local form_of_directive if props then no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former = props.no_fallback, props.no_split_qualifiers, props.no_check_for_inherently_former, props.from_category, props.register_former_as_non_former form_of_directive = props.form_of_directive end local equivs = {} -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. `qualifier` is -- the preceding qualifier to insert into `equivs` along with the placetype (see comment at top of function). If -- `from_category` is given, we also check for a category-specific entry consisting of the placetype followed by -- `!`, and in all cases we also check to see if `placetype` is plural, and if so, insert the singularized version -- along with its fallbacks (if any) in `placetype_data`. `form_of_prefix` is a form-of prefix such as -- `OFFICIAL_NAME_OF`. If specified, we check the fallbacks of `placetype` without the prefix but then insert into -- `equivs` the prefixed placetype. This way, if the user says e.g. {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}}, -- we will correctly categorize into [[:Category:Official names of countries]], rather than only trying to look up -- `OFFICIAL_NAME_OF island country` and failing, falling back ultimately to [[:Category:Official names of places]]. local function insert_placetype_and_fallbacks(qualifier, placetype, form_of_prefix) local function insert_equiv(pt) if form_of_prefix then -- Let's say the user says {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}} and we have -- no entry for `OFFICIAL_NAME_OF island country` but we do for `OFFICIAL_NAME_OF country` (which we end -- up processing because `island country` falls back to `country`), and that entry in turn is defined -- using a fallback. We have to insert that fallback-of-fallback, and the easiest/cleanest way of -- handling this is by calling ourselves recursively. insert_placetype_and_fallbacks(qualifier, form_of_prefix .. " " .. pt) else insert(equivs, {qualifier=qualifier, placetype=pt}) end end -- Insert the placetype, along with any fallbacks. local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if ptdata then insert_equiv(canon_placetype) if no_fallback then return end local first_placetype = #equivs + 1 local prev_placetype = nil while true do local pt_value = export.placetype_data[canon_placetype] if not pt_value then internal_error("Fallback value %s specified for placetype %s but is not in `placetype_data`", canon_placetype, prev_placetype) end if pt_value.fallback then insert_equiv(pt_value.fallback) local last_placetype = #equivs if last_placetype - first_placetype >= 10 then local fallback_loop = {} for i = first_placetype, last_placetype do insert(fallback_loop, equivs[i].placetype) end internal_error("Apparent loop in fallback chain: %s", table.concat(fallback_loop, " -> ")) end prev_placetype = canon_placetype canon_placetype = pt_value.fallback else break end end end end -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. This is a -- wrapper around the more basic `insert_placetype_and_fallbacks()` which handles form-of directives. If there is no -- form-of directive, this function directly calls `insert_placetype_and_fallbacks()`. We do things this way so that -- form-of directives correctly combine with `former`-type qualifiers. Note that we also have special backups for -- form-of directives that check `DIRECTIVE place` (and before that, `DIRECTIVE FORMER/ANCIENT place` is there's a -- `former`-type directive); these backups live outside this function because we want them done once, late, rather -- than in each invocation of `process_and_insert_placetype()`. local function process_and_insert_placetype(qualifier, reduced_placetype) if form_of_directive then -- First check for e.g. `OFFICIAL_NAME_OF island country` and its fallbacks; then we look for fallbacks of -- `island country` and check e.g. `OFFICIAL_NAME_OF country` and its fallbacks. All of this is handled by -- `insert_placetype_and_fallbacks()` with appropriate parameters. After that, check the general class of -- the directive, e.g. `subpolity` if something like `district` is given. (Eventually, we check for -- `OFFICIAL_NAME_OF place` as a backup, but this happens at the end outside the loop over qualifiers.) insert_placetype_and_fallbacks(qualifier, reduced_placetype, form_of_directive) if not no_fallback then local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype) local directive_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, form_of_directive .. "_type") or export.get_placetype_prop(pt, "class") end ) if not directive_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s in conjunction with form-of directive %s, placetype data " .. 'located but directive-specific type property %s missing, and so is "class"; ' .. "placetypes searched are %s", reduced_placetype, form_of_directive, form_of_directive .. "_type", reduced_placetype_equivs) else -- This should be allowed, as we allow unrecognized placetypes in general. end elseif directive_type ~= "!" then insert_placetype_and_fallbacks(qualifier, directive_type, form_of_directive) end end else insert_placetype_and_fallbacks(qualifier, reduced_placetype) end end -- Successively split off recognized qualifiers and loop over successively greater sets of qualifiers from the left -- (unless `no_split_qualifiers` is specified, in which case we don't check for qualifiers). local splits if no_split_qualifiers then splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} else splits = export.split_qualifiers_from_placetype(placetype) end for _, split in ipairs(splits) do local prev_qualifier, this_qualifier, reduced_placetype = unpack(split, 1, 3) -- If a special "former" qualifier like `former` or `historical` isn't present, and -- `no_check_for_inherently_former` is not given (this flag is used to avoid infinite loops), check for -- "inherently former" placetypes like `satrapy` and `treaty port` that always refer to no-longer-existing -- placetypes, and handle accordingly. local unlinked_this_qualifier if this_qualifier and this_qualifier:find("%[") then unlinked_this_qualifier = export.remove_links_and_html(this_qualifier) else unlinked_this_qualifier = this_qualifier end local former_qualifiers = this_qualifier and export.former_qualifiers[unlinked_this_qualifier] or nil if not former_qualifiers and not no_check_for_inherently_former then former_qualifiers = export.get_equiv_placetype_prop(reduced_placetype, function(pt) return export.get_placetype_prop(pt, "inherently_former") end, {no_check_for_inherently_former = true}) end -- If a special "former" qualifier like `former` or `historical` is present, map it to the appropriate internal -- qualifiers (`ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified -- qualifiers), fetch the `former_type` property, and treat the placetype as if a concatenation of the mapped -- qualifier(s) and the value of `former_type`. For example, if `medieval village` is given, we map `medieval` -- to `ANCIENT` and `FORMER`, and `village` to its `former_type` of `settlement`, and enter the placetypes -- `ANCIENT settlement` and `FORMER settlement` (in that order) into `equivs`. If the placetype following the -- "former" qualifier is recognized in `placetype_data` but has no `former_type` and no fallback with a -- `former_type` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like -- `former greenhouse` is specified and we don't have an entry for `greenhouse`), just track the occurrence and -- don't enter anything into `equivs`. if former_qualifiers then -- FIXME: Should we respect `no_fallback` here? My instinct says no. local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype, { no_check_for_inherently_former = true }) local former_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, "former_type") or export.get_placetype_prop(pt, "class") end ) if not former_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s, placetype data located but `former_type` missing; " .. "placetypes searched are %s", reduced_placetype, reduced_placetype_equivs) else -- Enable error when we've verified there aren't any examples. track("bad-former-placetype") track("bad-former-placetype/" .. reduced_placetype) --process_error("For placetype '%s', unrecognized placetype following 'former'-type " .. -- "qualifier; searched placetype(s) %s", reduced_placetype, dump(reduced_placetype_equivs)) end elseif former_type ~= "!" then -- First check directly for `ANCIENT/FORMER` + the original following placetype. This makes it possible -- for (e.g.) former provinces of the Roman empire to be categorized specially. for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. reduced_placetype) end for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. former_type) end -- HACK! See explanation above for `register_former_as_non_former`. if register_former_as_non_former then process_and_insert_placetype(prev_qualifier, reduced_placetype) end -- If we're processing a form-of directive, after doing everything else we do -- `DIRECTIVE ANCIENT/FORMER place` e.g. `OFFICIAL_NAME_OF FORMER place` as a backup. if form_of_directive and not no_fallback then for _, former_qualifier in ipairs(former_qualifiers) do insert_placetype_and_fallbacks(prev_qualifier, form_of_directive .. " " .. former_qualifier .. " place") end end -- Don't continue processing equivs. The reason is probably the same as the `break` below for -- qualifier_to_placetype_equivs[]; categories for `former BLAH` are set using `default`, and -- non-former equivs will otherwise take precedence. break end end -- Then see if the rightmost split-off qualifier is in qualifier_to_placetype_equivs -- (e.g. 'fictional *' -> 'fictional location'). If so, add the mapping. if this_qualifier and export.qualifier_to_placetype_equivs[unlinked_this_qualifier] then insert(equivs, { qualifier=prev_qualifier, placetype=export.qualifier_to_placetype_equivs[unlinked_this_qualifier] }) -- Don't continue processing equivs; otherwise, if we specify 'mythological city', even though the -- equivalent entry for 'mythological location' gets inserted ahead of the entry for 'city', the -- latter ends up generating the category because the category for 'mythological location' is set as -- the default value, which is used only when no non-default category can be found. break end -- Finally, join the rightmost split-off qualifier to the previously split-off qualifiers to form a combined -- qualifier, and add it along with reduced_placetype and any mapping in placetype_data for reduced_placetype. -- NOTE: The first time through this loop, both `prev_qualifier` and `this_qualifier` are nil, and this inserts -- the full placetype into `equivs`. local qualifier = prev_qualifier and prev_qualifier .. " " .. this_qualifier or this_qualifier process_and_insert_placetype(qualifier, reduced_placetype) -- If `no_fallback` and there's an entry in `placetype_data` for this placetype, don't include any reduced -- placetypes to avoid the "overseas territory treated as a territory" issue describe above. if no_fallback then local canon_placetype, ptdata, ptmatch = export.get_placetype_data(reduced_placetype, from_category) if canon_placetype then break end end end -- If we're processing a form-of directive, after doing everything else we do `DIRECTIVE place` e.g. -- `OFFICIAL_NAME_OF place` as a backup; but only if either the placetype as a whole is recognized or the placetype -- begins with a recognized qualifier. This latter check is to avoid categorizing into e.g. -- [[Category:en:Former names of places]] in an invocation like -- {{place|en|@former name of:Democratic Republic of the Congo|country|r/Central Africa|;|used from 1971–1997}}; -- the `used from 1971–1997` gets treated as a placetype and we're called on it. if form_of_directive and not no_fallback and (splits[2] or export.get_placetype_data(placetype, from_category)) then insert_placetype_and_fallbacks(nil, form_of_directive .. " place") end return equivs end function export.get_equiv_placetype_prop_from_equivs(equivs, fun, continue_on_nil_only) for _, equiv in ipairs(equivs) do local retval = fun(equiv.placetype) if continue_on_nil_only and retval ~= nil or not continue_on_nil_only and retval then return retval, equiv end end return nil, nil end --[==[ Given a placetype `placetype` and a function `fun` of one argument, iteratively call the function on equivalent placetypes fetched from `get_placetype_equivs` until the function returns a non-falsy value (i.e. not {nil} or {false}); but if `continue_on_nil_only` is specified, the iterations continue until the function returns non non-{nil} value. FIXME: We should make `continue_on_nil_only` the default; but this requires changing some callers.) When `fun` returns a non-falsy or non-{nil} value, `get_equiv_placetype_prop` returns two values: the value returned by `fun` and the equivalent placetype that triggered the non-falsy (or non-{nil}) return value. If `fun` never returns a non-falsy (or non-{nil}) value, `get_equiv_placetype_prop` returns {nil} for both return values. If `placetype` is passed in as {nil}, the return value is the result of calling `fun` on {nil} (whatever it is) with {nil} for the second return value. ]==] function export.get_equiv_placetype_prop(placetype, fun, props) if not placetype then return fun(nil), nil end return export.get_equiv_placetype_prop_from_equivs(export.get_placetype_equivs(placetype, props), fun, props and props.continue_on_nil_only) end --[==[ Return the article that is used with an entry placetype. We proceed as follows: # See if there is a recognized qualifier at the beginning that specifies an article (including `false` for no article). This takes precedence over anything else, so that e.g. `various capitals` gets no article rather than "`the"`. # Then check the placetype or any equivalent placetype for the `entry_placetype_use_the` property, indicating that `"the"` should be used. # Otherwise we look to see if the placetype itself (not any equivalents, even those involving deleting a qualifier from the beginning) has an entry in `placetype_data` that specifies the indefinite article using `entry_placetype_use_the` (principally for use with placetypes like `union territory`). # Otherwise, we use [[Module:en-utilities]] to apply the standard algorithm to generate `"an"` for words beginning with a vowel and `"a"` otherwise. If `ucfirst` is true, the first letter of the article is made upper-case. ]==] function export.get_placetype_article(placetype, ucfirst) local art local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if type(canon) == "table" then art = canon.article end end if art == false then return art end if art == nil then local placetype_use_the = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "entry_placetype_use_the") end) if placetype_use_the then art = "the" else art = export.get_placetype_prop(placetype, "entry_placetype_indefinite_article") if not art then art = require(en_utilities_module).get_indefinite_article(placetype) end end end if ucfirst then art = m_strutils.ucfirst(art) end return art end --[==[ Return the preposition that should be used after `placetype` when occurring as an entry placetype or in categories (e.g. `city >in< France` but `country >of< South America`). The preposition defaults to `"in"` if not specified. ]==] function export.get_placetype_entry_preposition(placetype) local pt_prep = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "preposition") end ) return pt_prep or "in" end --[==[ Given a place desc (see top of file) and a holonym object (see top of file), add a key/value into the place desc's `holonyms_by_placetype` field corresponding to the placetype and placename of the holonym. For example, corresponding to the holonym "c/Italy", a key "country" with the list value {"Italy"} will be added to the place desc's `holonyms_by_placetype` field. If there is already a key with that place type, the new placename will be added to the end of the value's list. ]==] function export.key_holonym_into_place_desc(place_desc, holonym) if not holonym.placetype then return end -- Key in equivalent placetypes, so that e.g. `cities/San Francisco` gets keyed under `city`; but don't do -- fallbacks, as it doesn't seem correct for the "do other holonyms of the same placetype" algorithm to do holonyms -- of different types just because they have the same fallback. local equiv_placetypes = export.get_placetype_equivs(holonym.placetype, {no_fallback = true}) local unlinked_placename = holonym.unlinked_placename for _, equiv in ipairs(equiv_placetypes) do local placetype = equiv.placetype if not place_desc.holonyms_by_placetype then place_desc.holonyms_by_placetype = {} end if not place_desc.holonyms_by_placetype[placetype] then place_desc.holonyms_by_placetype[placetype] = {unlinked_placename} else insert(place_desc.holonyms_by_placetype[placetype], unlinked_placename) end end end --[=[ Construct a formatted link from the raw link spec `link` given the canonical singular placetype `sg_placetype`. If the placetype was originally plural, `orig_placetype` should contain this plural value; otherwise it should be nil. This will construct the appropriate type of link that displays as `orig_placetype` (or otherwise `sg_placetype`) but links to whatever the `link` spec specifies (which may be `sg_placetype`, a Wikipedia article, etc.). `ptdata` is the placetype data structure for the placetype, and `from_category` indicates that we are generating the description of a category (otherwise we are generating the display form of an entry placetype). ]=] local function make_placetype_link(link, sg_placetype, orig_placetype, ptdata, from_category, noerror) if not from_category and ptdata.disallow_in_entries then if noerror then return "[not meant to be specified directly, with warning: " .. ptdata.disallow_in_entries .. "]" else process_error("Placetype %s is not meant to be specified directly: " .. ptdata.disallow_in_entries, sg_placetype) end end if link == nil then internal_error("Placetype data present for placetype %s but no link= setting given", sg_placetype) elseif link == true then if orig_placetype then return ("[[%s|%s]]"):format(sg_placetype, orig_placetype) else return ("[[%s]]"):format(sg_placetype) end elseif link == false then process_error("Placetype %s is not meant to be specified directly, but is only for internal use", sg_placetype) elseif link == "w" then return ("[[w:%s|%s]]"):format(sg_placetype, orig_placetype or sg_placetype) elseif link == "separately" then if orig_placetype then local sg_words = split(sg_placetype, " ") local orig_words = split(orig_placetype, " ") if #sg_words ~= #orig_words then internal_error("Can't construct 'separately' link for plural placetype %s as original placetype %s " .. "has different number of words", orig_placetype, sg_placetype) else for i = 1, #sg_words do if sg_words[i] == orig_words[i] then sg_words[i] = ("[[%s]]"):format(sg_words[i]) else sg_words[i] = ("[[%s|%s]]"):format(sg_words[i], orig_words[i]) end end return concat(sg_words, " ") end else return (sg_placetype:gsub("([^ ]+)", "[[%1]]")) end elseif link:find("^%+") then link = link:sub(2) -- discard initial + return ("[[%s|%s]]"):format(link, orig_placetype or sg_placetype) elseif not orig_placetype then return link else return require(en_utilities_module).pluralize(link) end end --[==[ Get the display form of a placetype by looking it up in `placetype_data`. If the placetype is recognized, or is the plural of a recognized placetype, the corresponding linked display form is returned (with plural placetypes displaying as plural but linked to the singular form of the placetype). Otherwise, return nil. If we're generating the description of a category, `category_type` should be set to one of `"top-level"` (for top-level categories like [[:Category:Neighborhoods]]), `"noncity"` (for non-city categories like [[:Category:Neighborhoods in Illinois, USA]]) or `"city"` (for city categories like [[:Category:Neighborhoods of Chicago]]). Otherwise, we're generating the description for use in formatting a {{tl|place}} call, and category-only placetypes ending in `!` will be ignored, along with special `category_link*` settings. `return_full` is used along with `category_type` and will preferably return the "full" variant of category link settings, i.e. `full_category_link*`; if they don't exist, the `category_link*` value is prepended with `"names of"`. `noerror` says to not throw an error when encountering entry placetypes that would be disallowed. ]==] function export.get_placetype_display_form(placetype, category_type, return_full, noerror) local from_category = not not category_type local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if canon_placetype then local raw_link local function is_linked_string(str) return type(str) == "string" and str:find("%[%[") end if category_type then local fetched_full local function fetch_maybe_full(prop) local retval = ptdata["full_" .. prop] if retval ~= nil then if return_full then return retval, true else internal_error("Saw full_" .. prop .. "=%s but `return_full` not set, can't handle", retval) end end return ptdata[prop], false end local function maybe_prefix(str) if return_full and not fetched_full then return "names of " .. str else return str end end -- Careful with `false` as possible value. if category_type == "top-level" then raw_link, fetched_full = fetch_maybe_full("category_link_top_level") elseif category_type == "noncity" then raw_link, fetched_full = fetch_maybe_full("category_link_before_noncity") elseif category_type == "city" then raw_link, fetched_full = fetch_maybe_full("category_link_before_city") else internal_error('Unrecognized value for `category_type` %s, should be "top-level", "noncity" or "city"', category_type) end if type(raw_link) == "string" then return maybe_prefix(raw_link), ptdata elseif raw_link ~= nil then return raw_link, ptdata end raw_link, fetched_full = fetch_maybe_full("category_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end if ptmatch == "plural" then raw_link, fetched_full = fetch_maybe_full("plural_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end end if raw_link == nil then raw_link, fetched_full = fetch_maybe_full("link") end if raw_link == false then return raw_link, ptdata end return maybe_prefix(make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror)), ptdata else if ptmatch == "plural" then raw_link = ptdata.plural_link if raw_link == false then process_error("Placetype %s cannot appear plural", placetype) end if is_linked_string(raw_link) then return raw_link, ptdata end end if raw_link == nil then raw_link = ptdata.link end return make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror), ptdata end end return nil end local function resolve_unlinked_placename_display_aliases(placetype, placename) local equiv_placetypes = export.get_placetype_equivs(placetype) for i, equiv in ipairs(equiv_placetypes) do equiv_placetypes[i] = equiv.placetype end local all_display_aliases_found = {} local all_others_found = {} for group, key, spec in m_locations.iterate_matching_location { placetypes = equiv_placetypes, placename = placename, alias_resolution = "display", } do if spec.alias_of and spec.display then insert(all_display_aliases_found, {group, key, spec, spec.display_as_full}) else insert(all_others_found, {group, key, spec}) end end if not all_display_aliases_found[1] then return placename elseif all_display_aliases_found[2] then internal_error("Found multiple matching display aliases for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) elseif all_others_found[1] then internal_error("Found a display alias along with other possible meanings for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) else local group, key, spec, as_full = unpack(all_display_aliases_found[1]) local full, elliptical = m_locations.key_to_placename(group, key) return as_full and full or elliptical end end --[==[ If `placename` of type `placetype` is a display alias, convert it to its canonical form; otherwise, return unchanged. Display aliases transform certain placenames into canonical displayed forms. For example, if any of `country/US`, `country/USA` or `country/United States of America` (or `c/US`, etc.) are given, the result will be displayed as `United States`. '''NOTE''': Display aliases change what is displayed from what the editor wrote in the Wikitext. As a result, they should (a) be non-political in nature, and (b) not involve a change where the word `the` needs to be added or removed. For example, normalizing `US` and `USA` to `United States` for display purposes is OK but normalizing `Burma` to `Myanmar` is not (instead a cat alias should be used) because the terms `Burma` and `Myanmar` have clear political connotations. Similarly, we have a display alias that maps the old name of `Macedonia` as a country (but not a region!) to `North Macedonia`, but `Republic of Macedonia` is mapped to `North Macedonia` only as a cat alias because the two terms differ in their use of `the`. (For example, if we had a display alias mapping `Republic of Macedonia` to `North Macedonia`, the call {{tl|place|en|the <<capital city>> of the <<c/Republic of Macedonia>>}} would wrongly display as `the [[capital city]] of the [[North Macedonia]]`.) Generally, display normalizations tend to involve alternative forms (e.g. abbreviations, ellipses, foreign spellings) where the normalization improves clarity and consistency. ]==] function export.resolve_placename_display_aliases(placetype, placename) -- If the placename is a link, apply the alias inside the link. -- This pattern matches both piped and unpiped links. If the link is not piped, the second capture (linktext) will -- be empty. local link, linktext = rmatch(placename, "^%[%[([^|%[%]]+)|?([^|%[%]]-)%]%]$") if link then if linktext ~= "" then local alias = resolve_unlinked_placename_display_aliases(placetype, linktext) return "[[" .. link .. "|" .. alias .. "]]" else local alias = resolve_unlinked_placename_display_aliases(placetype, link) return "[[" .. alias .. "]]" end else return resolve_unlinked_placename_display_aliases(placetype, placename) end end --[==[ Generate the "prefixed" version of a bare key, i.e. prefix it with `the` if correct for this key. ]==] function export.get_prefixed_key(key, spec) if spec.the then return "the " .. key else return key end end -- Necessary for use by [[Module:place]]. FIXME: Reorganize the modules so this isn't necessary. export.iterate_matching_location = m_locations.iterate_matching_location --[=[ Iterator that iterates over holonyms in `place_desc`. If `first_holonym_index` is given, start iterating at the specified holonym and stop either when there are no more holonyms or a holonym with modifier `:also` is found. If `first_holonym_index` is nil or omitted, iterate over all holonyms regardless. If `include_raw_text_holonyms` is specified, raw text holonyms (those not of the form `placetype/placename`) are returned as well; they can be identified by the fact that the `placetype` field in the holonym structure is nil. Two values are returned at each iteration, the holonym index and holonym structure, similar to `ipairs()`. ]=] function export.get_holonyms_to_check(place_desc, first_holonym_index, include_raw_text_holonyms) local stop_at_also = not not first_holonym_index return function(place_desc, index) while true do index = index + 1 local this_holonym = place_desc.holonyms[index] -- If we were passed in a starting holonym index, go up to but not including a holonym marked with `:also` -- (continue_cat_loop); the categorization code will then restart the loop at that holonym. That holonym -- will have `:also` marked on it, so make sure not to stop immediately if the first holonym is marked with -- `:also`. if not this_holonym or stop_at_also and index > first_holonym_index and this_holonym.continue_cat_loop then return nil end -- If not placetype, we're processing raw text, which we normally want to skip. if include_raw_text_holonyms or this_holonym.placetype then return index, this_holonym end end end, place_desc, first_holonym_index and first_holonym_index - 1 or 0 end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, iterate over all such known locations, returning for each location the corresponding key, spec and group as well as the trail of ancestral containers. Unlike `iterate_matching_location()`, this specifically checks that there is no mismatch between the location's containers at any level and any of the following holonyms in the {{tl|place}} spec. The fields in `data` are: * `holonym_placetype`: The placetype of the holonym. It can actually be a list of possible placetypes, as with `iterate_matching_location()`. * `holonym_placename`: The placename of the holonym. * `holonym_index`: The index of the holonym among the holonyms in `place_desc`, or nil if the holonym is not among the holonyms in `place_desc`. (If a holonym index is given, we check for container mismatches among the holonyms following the specified index, stopping either when encountering a holonym marked with modifier `:also` or, if none exist, when we run out of holonyms. If no holonym index is given, we check all holonyms for container mismatches.) * `place_desc`: Description of the place; used for the holonyms, to check for container mismatches. Returns four values: the location group, the canonical key by which the location is known, the spec object describing the location and the trail of ancestral containers for the location. The first three values are the same as for `iterate_matching_location`. ]==] function export.iterate_matching_holonym_location(data) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc local matching_location_iterator = m_locations.iterate_matching_location { placetypes = holonym_placetype, placename = holonym_placename, } return function() while true do local group, key, spec = matching_location_iterator() if not group then return nil end local container_trail = {} -- For each level of container, check that there are no mismatches (i.e. other location of the same -- placetype) mentioned. We allow a mismatch at a given level if there's also a match with the container -- at that level. For example, in the case of Kansas City, defined in [[Module:place/locations]] as a city -- in Missouri, if we define it as {{tl|place|city|s/Missouri,Kansas}}, we ignore the mismatching state of -- Kansas because the correct state of Missouri was also mentioned. But imagine we are defining Newark, -- Delaware as {{tl|place|city|s/Delaware|c/US}} and (as is the case) we have an entry for Newark, New -- Jersey in [[Module:place/locations]]. Just because the containing location `US` matches isn't enough, -- because Newark, NJ also has New Jersey as a containing location and there's a mismatch at that level. If -- there are no mismatches at any level we assume we're dealing with the right known location. -- -- If at a given level there are multiple containing locations, we count a match if any holonym matches any -- containing location, and a mismatch only if a holonym exists of the same placetype that doesn't match any -- containing location. local containers_mismatch = false for containers in m_locations.iterate_containers(group, key, spec) do insert(container_trail, containers) local match_at_level = false local mismatch_at_level = false for other_holonym_index, other_holonym in export.get_holonyms_to_check(place_desc, holonym_index and holonym_index + 1 or nil) do local other_source_holonym = other_holonym.augmented_from_holonym if other_source_holonym and other_source_holonym.placetype == holonym_placetype and other_source_holonym.unlinked_placename ~= holonym_placename then -- Ignore holonyms added during the augmentation process for other holonyms of the same -- placetype as the placetype of the holonym we're considering. See comment in -- augment_holonyms_with_container() for why we do this. -- continue; grrr, no 'continue' in Lua else local holonym_matches_at_level = false local holonym_exists_with_same_placetype = false for _, container in ipairs(containers) do if not container.spec.no_check_holonym_mismatch then local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) local placetypes = container.spec.placetype if type(placetypes) ~= "table" then placetypes = {placetypes} end local placetype_equivs = {} for _, pt in ipairs(placetypes) do m_table.extend(placetype_equivs, export.get_placetype_equivs(pt)) end local this_holonym_matches = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype and (other_holonym.unlinked_placename == full_container_placename or other_holonym.unlinked_placename == elliptical_container_placename) end ) if this_holonym_matches then holonym_matches_at_level = true break end local this_holonym_exists_with_same_placetype = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype end ) if this_holonym_exists_with_same_placetype then -- We seem to have a mismatch at this level. But before we decide conclusively that this -- is the case, check to see whether the putative mismatch is an alias and matches when -- we resolve the alias. for oh_group, oh_key, oh_spec, oh_container_trail in export.iterate_matching_holonym_location { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = place_desc, } do local oh_full_placename, oh_elliptical_placename = m_locations.key_to_placename(oh_group, oh_key) if oh_full_placename == full_container_placename or oh_elliptical_placename == elliptical_container_placename then -- Alias matched when resolved. this_holonym_matches = true break end end if this_holonym_matches then -- Alias matched above when resolved. holonym_matches_at_level = true break else -- Not an alias, or doesn't match when resolved. We have a true mismatch. holonym_exists_with_same_placetype = true end end end end if holonym_matches_at_level then match_at_level = true break end if holonym_exists_with_same_placetype then mismatch_at_level = true end end end if not match_at_level and mismatch_at_level then containers_mismatch = true break end end if not containers_mismatch then return group, key, spec, container_trail end end end end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, find and return the corresponding key, spec and group as well as the trail of ancestral containers. This is like `iterate_matching_holonym_location()` but throws an error if more than one location matches. (An example where this would happen is {{tl|place|en|neighborhood|city/Newcastle}}, because there are two known locations named Newcastle. To fix this, specify additional following disambiguating holonyms, e.g. {{tl|place|en|neighborhood|city/Newcastle|s/New South Wales}}. ]==] function export.find_matching_holonym_location(data) local all_found = {} for group, key, spec, container_trail in export.iterate_matching_holonym_location(data) do insert(all_found, {group, key, spec, container_trail}) end if not all_found[1] then return nil elseif all_found[2] then local holonym_placetype = data.holonym_placetype if type(holonym_placetype) == "table" then holonym_placetype = concat(holonym_placetype, ",") end local found_keys = {} for _, found in ipairs(all_found) do local _, key, _, _ = unpack(found) insert(found_keys, key) end error(("Found multiple matching locations for holonym '%s/%s'; specify disambiguating context in the " .. "containing holonyms: %s"):format(holonym_placetype, data.holonym_placename, dump(found_keys))) else return unpack(all_found[1]) end end ------------------------------------------------------------------------------------------ -- Placename and placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: This is a map from aliases to their canonical forms. Any placetypes appearing as keys here will be mapped to their canonical forms in all respects, including the display form. Contrast entries in 'placetype_data' with a fallback, which applies to categorization and other processes but not to display. The most important aliases are for holonym placetypes, particularly those that occur often such as "country", "state", "province" and the like. Particularly long placetypes that mostly occur as entry placetypes (e.g. "census-designated place") can be given abbreviations, but it is generally preferred to spell out the entry placetype. Note also that we purposely avoid certain abbreviations that would be ambiguous (e.g. "d", which could variously be interpreted as "department", "district" or "division"). ]==] export.placetype_aliases = { ["acomm"] = "autonomous community", ["adr"] = "administrative region", ["adterr"] = "administrative territory", -- Pakistan ["aobl"] = "autonomous oblast", ["aokr"] = "autonomous okrug", ["ap"] = "autonomous province", ["apref"] = "autonomous prefecture", ["aprov"] = "autonomous province", ["ar"] = "autonomous region", ["arch"] = "archipelago", ["arep"] = "autonomous republic", ["aterr"] = "autonomous territory", ["atu"] = "autonomous territorial unit", ["bor"] = "borough", ["c"] = "country", ["can"] = "canton", ["carea"] = "council area", ["cc"] = "constituent country", ["cdblock"] = "community development block", ["cdep"] = "Crown dependency", ["CDP"] = "census-designated place", ["cdp"] = "census-designated place", ["clcity"] = "county-level city", ["co"] = "county", ["cobor"] = "county borough", ["colcity"] = "county-level city", ["coll"] = "collectivity", ["comm"] = "community", ["cont"] = "continent", ["contr"] = "continental region", ["contregion"] = "continental region", ["cpar"] = "civil parish", ["damun"] = "direct-administered municipality", ["dep"] = "dependency", ["department capital"] = "departmental capital", ["dept"] = "department", ["depterr"] = "dependent territory", ["dist"] = "district", ["distmun"] = "district municipality", ["div"] = "division", ["emp"] = "empire", ["fpref"] = "French prefecture", ["gov"] = "governorate", ["govnat"] = "governorate", ["home-rule city"] = "home rule city", ["home-rule municipality"] = "home rule municipality", ["inner-city area"] = "inner city area", ["ires"] = "Indian reservation", ["isl"] = "island", ["lbor"] = "London borough", ["lga"] = "local government area", ["lgarea"] = "local government area", ["lgd"] = "local government district", ["lgdist"] = "local government district", ["metbor"] = "metropolitan borough", ["metcity"] = "metropolitan city", ["metmun"] = "metropolitan municipality", ["mtn"] = "mountain", ["mun"] = "municipality", ["mundist"] = "municipal district", ["nonmetropolitan county"] = "non-metropolitan county", ["obl"] = "oblast", ["okr"] = "okrug", ["p"] = "province", ["par"] = "parish", ["parmun"] = "parish municipality", ["pen"] = "peninsula", ["plcity"] = "prefecture-level city", ["plcolony"] = "Polish colony", ["pref"] = "prefecture", ["prefcity"] = "prefecture-level city", ["preflcity"] = "prefecture-level city", ["prov"] = "province", ["r"] = "region", ["range"] = "mountain range", ["rcm"] = "regional county municipality", ["rcomun"] = "regional county municipality", ["rdist"] = "regional district", ["rep"] = "republic", ["rhrom"] = "rural hromada", ["riv"] = "river", ["rmun"] = "regional municipality", ["robor"] = "royal borough", ["romp"] = "Roman province", ["runit"] = "regional unit", ["rurmun"] = "rural municipality", ["s"] = "state", ["sar"] = "special administrative region", ["shrom"] = "settlement hromada", ["spref"] = "subprefecture", ["sprefcity"] = "sub-prefectural city", ["sprovcity"] = "subprovincial city", ["submet city"] = "sub-metropolitan city", ["submetropolitan city"] = "sub-metropolitan city", ["sub-prefecture-level city"] = "sub-prefectural city", ["sub-provincial city"] = "subprovincial city", ["sub-provincial district"] = "subprovincial district", ["terr"] = "territory", ["terrauth"] = "territorial authority", ["twp"] = "township", ["twpmun"] = "township municipality", ["uauth"] = "unitary authority", ["ucomm"] = "unincorporated community", ["udist"] = "unitary district", ["uhrom"] = "urban hromada", ["uterr"] = "union territory", ["utwpmun"] = "united township municipality", ["val"] = "valley", ["vdc"] = "village development committee", ["vil"] = "village", ["voi"] = "voivodeship", ["wcomm"] = "Welsh community", -- Chinese capital/seat types ["首都"] = "capital", ["省會"] = "provincial capital", ["首府"] = "regional capital", ["縣治"] = "county seat", -- Chinese placetype name aliases (map to English equivalents so they inherit preposition, display handler, etc.) ["國家"] = "country", ["構成國"] = "constituent country", ["大洲"] = "continent", ["洲"] = "continent", ["大陸"] = "continent", ["帝國"] = "empire", ["共和國"] = "republic", ["邦"] = "state", ["州"] = "state", ["省"] = "province", ["郡"] = "county", ["縣"] = "county", ["城市"] = "city", ["市"] = "city", ["區"] = "district", ["鄉"] = "township", ["鎮"] = "town", ["村"] = "village", ["社區"] = "community", ["島"] = "island", ["島嶼"] = "island", ["群島"] = "archipelago", ["半島"] = "peninsula", ["山"] = "mountain", ["山脈"] = "mountain range", ["河"] = "river", ["河流"] = "river", ["谷"] = "valley", ["山谷"] = "valley", ["特別行政區"] = "special administrative region", ["直轄市"] = "direct-administered municipality", ["地級市"] = "prefecture-level city", ["縣級市"] = "county-level city", ["副省級市"] = "subprovincial city", ["副地級市"] = "sub-prefectural city", ["市轄區"] = "municipal district", ["自治區"] = "autonomous region", ["自治省"] = "autonomous province", ["自治州"] = "autonomous prefecture", ["自治共和國"] = "autonomous republic", ["自治市"] = "borough", ["屬地"] = "dependent territory", ["海外領地"] = "dependent territory", ["領地"] = "territory", ["聯邦屬地"] = "union territory", ["皇家屬地"] = "Crown dependency", ["教區"] = "parish", ["堂區"] = "parish", ["民政教區"] = "civil parish", ["廣域市"] = "metropolitan city", ["非建制地區"] = "unincorporated community", ["人口普查指定地區"] = "census-designated place", ["印第安保留地"] = "Indian reservation", ["羅馬行省"] = "Roman province", ["單一管理區"] = "unitary authority", ["地方行政區"] = "local government area", } local no_link_def_article = {link = false, article = "the"} local no_link_no_article = {link = false, article = false} --[==[ var: These qualifiers can be prepended onto any placetype and will be handled correctly. For example, the placetype `large city` will be displayed as `large <nowiki>[[city]]</nowiki>` and categorized as if `city` were specified. If the value in the following table is a string, the qualifier will display according to the string. If the value is `true`, the qualifier will be linked to its corresponding Wiktionary entry. If the value is `false`, the qualifier will not be linked but will appear as-is. Note that these qualifiers do not override placetypes with entries elsewhere that contain those same qualifiers. For example, the entry for `inland sea` in `placetype_data` will apply in preference to treating `inland sea` as equivalent to `sea`. ]==] export.placetype_qualifiers = { -- generic qualifiers ["huge"] = false, ["tiny"] = false, ["large"] = false, ["big"] = false, ["mid-size"] = false, ["mid-sized"] = false, ["small"] = false, ["sizable"] = false, ["important"] = false, ["long"] = false, ["short"] = false, ["major"] = false, ["minor"] = false, ["high"] = false, ["tall"] = false, ["low"] = false, ["left"] = false, -- left tributary ["right"] = false, -- right tributary ["modern"] = false, -- for use in opposition to "ancient" in another definition -- "former" qualifiers ["abandoned"] = true, ["ancient"] = true, ["deserted"] = true, ["extinct"] = true, ["former"] = false, ["historic"] = "historical", ["historical"] = true, ["medieval"] = true, ["mediaeval"] = true, ["ruined"] = true, ["traditional"] = true, -- sea qualifiers ["coastal"] = true, ["inland"] = true, -- note, we also have an entry in placetype_data for 'inland sea' to get a link to [[inland sea]] ["maritime"] = true, ["overseas"] = true, ["seaside"] = true, ["beachfront"] = true, ["beachside"] = true, ["riverside"] = true, -- lake qualifiers ["freshwater"] = true, ["saltwater"] = true, ["endorheic"] = true, ["oxbow"] = true, ["ox-bow"] = "[[oxbow]]", -- [[ox-bow]] is a red link ["tidal"] = true, -- land qualifiers ["hilltop"] = true, ["hilly"] = true, ["insular"] = true, ["peninsular"] = true, ["chalk"] = true, ["karst"] = true, ["limestone"] = true, ["mountainous"] = true, ["mountaintop"] = true, ["alpine"] = true, ["volcanic"] = true, -- for an island -- political status qualifiers ["autonomous"] = true, ["incorporated"] = true, ["special"] = true, ["unincorporated"] = true, ["coterminous"] = true, -- monetary status/etc. qualifiers ["fashionable"] = true, ["wealthy"] = true, ["affluent"] = true, ["declining"] = true, -- city vs. rural qualifiers ["urban"] = true, ["suburban"] = true, ["exurban"] = true, ["outlying"] = true, ["remote"] = true, ["rural"] = true, ["outback"] = true, ["inner"] = false, ["inner-city"] = true, ["central"] = false, ["outer"] = false, -- land use qualifiers ["residential"] = true, ["agricultural"] = true, ["business"] = true, ["commercial"] = true, ["industrial"] = true, -- business use qualifiers ["railroad"] = true, ["railway"] = true, ["farming"] = true, ["fishing"] = true, ["mining"] = true, ["logging"] = true, ["cattle"] = true, -- tourism use qualifiers ["resort"] = true, -- note, we also have 'resort city' and 'resort town', that take precedecne ["spa"] = true, -- note, we also have 'spa city' and 'spa town', that take precedecne ["ski"] = true, -- note, we also have 'ski resort city' and 'ski resort town', that take precedecne -- religious qualifiers ["holy"] = true, ["sacred"] = true, ["religious"] = true, ["secular"] = true, -- qualifiers for nonexistent places ["claimed"] = false, ["fictional"] = true, ["legendary"] = true, ["mythical"] = true, ["mythological"] = true, -- directional qualifiers ["northern"] = false, ["southern"] = false, ["eastern"] = false, ["western"] = false, ["north"] = false, ["south"] = false, ["east"] = false, ["west"] = false, ["northeastern"] = false, ["southeastern"] = false, ["northwestern"] = false, ["southwestern"] = false, ["northeast"] = false, ["southeast"] = false, ["northwest"] = false, ["southwest"] = false, -- seasonal qualifiers ["summer"] = true, -- e.g. for 'summer capital' ["winter"] = true, -- legal status qualifiers -- FIXME: Two-word qualifiers don't work yet. But you can enter "de-facto" and it's canonicalized to [[de facto]]. ["official"] = true, ["unofficial"] = true, ["de facto"] = true, -- 'de facto capital' ["de-facto"] = "[[de facto]]", -- [[de-facto]] is a red link ["de jure"] = true, -- 'de jure capital' ["de-jure"] = "[[de jure]]", -- [[de-jure]] is a red link -- NOTE: 'unrecognized/unrecognised' are handled as placetypes 'unrecognized country', 'unrecognized state' -- misc. qualifiers ["planned"] = true, ["chartered"] = true, ["landlocked"] = true, ["uninhabited"] = true, -- superlative qualifiers ["first"] = no_link_def_article, ["second"] = no_link_def_article, -- for "second largest" etc. ["third"] = no_link_def_article, ["fourth"] = no_link_def_article, ["last"] = no_link_def_article, ["only"] = no_link_def_article, ["sole"] = no_link_def_article, ["main"] = no_link_def_article, ["largest"] = no_link_def_article, ["biggest"] = no_link_def_article, ["smallest"] = no_link_def_article, ["shortest"] = no_link_def_article, ["longest"] = no_link_def_article, ["tallest"] = no_link_def_article, ["highest"] = no_link_def_article, ["lowest"] = no_link_def_article, ["leftmost"] = no_link_def_article, ["rightmost"] = no_link_def_article, ["innermost"] = no_link_def_article, ["outermost"] = no_link_def_article, ["northernmost"] = no_link_def_article, ["southernmost"] = no_link_def_article, ["westernmost"] = no_link_def_article, ["easternmost"] = no_link_def_article, ["northwesternmost"] = no_link_def_article, ["southwesternmost"] = no_link_def_article, ["northeasternmost"] = no_link_def_article, ["southeasternmost"] = no_link_def_article, -- several/various ["several"] = no_link_no_article, ["various"] = no_link_no_article, ["numerous"] = no_link_no_article, ["multiple"] = no_link_no_article, ["many"] = no_link_no_article, ["other"] = no_link_no_article, } --[==[ var: In this table, the key qualifiers should be treated the same as the value qualifiers for categorization purposes. This is overridden by `placetype_data` and `qualifier_to_placetype_equivs`. ]==] export.former_qualifiers = { ["abandoned"] = {"FORMER"}, ["ancient"] = {"ANCIENT", "FORMER"}, ["former"] = {"FORMER"}, ["extinct"] = {"FORMER"}, ["historic"] = {"FORMER"}, ["historical"] = {"FORMER"}, ["medieval"] = {"ANCIENT", "FORMER"}, ["mediaeval"] = {"ANCIENT", "FORMER"}, ["ruined"] = {"ANCIENT", "FORMER"}, ["traditional"] = {"FORMER"}, } --[==[ var: In this table, any placetypes containing these qualifiers that do not occur in `placetype_data` should be mapped to the specified placetypes for categorization purposes. Entries here are overridden by `placetype_data`. ]==] export.qualifier_to_placetype_equivs = { ["fictional"] = "fictional location", ["legendary"] = "mythological location", ["mythical"] = "mythological location", ["mythological"] = "mythological location", -- For e.g. Taiwan as a "claimed province" of China; parts of Belize as claimed by Guatemala; various islands -- claimed by various parties in East Asia. FIXME: We should conditionalize on what is being claimed since there are -- also claimed capitals, e.g. Israel and Palestine claim Jerusalem as their capital. ["claimed"] = "claimed political division", } --[==[ var: Mapping from placetypes to the corresponding plural category-only placetype for a capital of that placetype. The reverse mapping also exists. ]==] export.placetype_to_capital_cat = { ["autonomous community"] = "autonomous community capitals", ["canton"] = "cantonal capitals", ["comarca"] = "comarca capitals", ["country"] = "national capitals", -- The following are not obviously different from 'county seats' but the latte terminology is used in the US. ["county"] = "county capitals", ["department"] = "departmental capitals", ["district"] = "district capitals", ["division"] = "division capitals", ["emirate"] = "emirate capitals", ["governorate"] = "governorate capitals", ["hromada"] = "hromada capitals", ["krai"] = "krai capitals", ["metropolitan city"] = "metropolitan city capitals", ["municipality"] = "municipal capitals", ["oblast"] = "oblast capitals", ["okrug"] = "okrug capitals", ["prefecture"] = "prefectural capitals", ["province"] = "provincial capitals", ["raion"] = "raion capitals", ["regency"] = "regency capitals", ["region"] = "regional capitals", ["regional unit"] = "regional unit capitals", ["republic"] = "republic capitals", ["state"] = "state capitals", ["territory"] = "territorial capitals", ["voivodeship"] = "voivodeship capitals", } --[==[ var: This contains placenames that should be preceded by an article (almost always "the"). '''NOTE''': There are multiple ways that placenames can come to be preceded by "the": # Listed here. # Given in [[Module:place/locations]] with an initial "the". All such placenames are added to this map by the code just below the map. # The placetype of the placename has `holonym_use_the = true` in its placetype_data. # A regex in placename_the_re matches the placename. Note that "the" is added only before the first holonym in a place description. ]==] export.placename_article = { -- This should only contain info that can't be inferred from [[Module:place/locations]]. ["archipelago"] = { ["Cyclades"] = "the", ["Dodecanese"] = "the", }, ["country"] = { ["Holy Roman Empire"] = "the", }, ["empire"] = { ["Holy Roman Empire"] = "the", }, ["island"] = { ["North Island"] = "the", ["South Island"] = "the", }, ["region"] = { ["Balkans"] = "the", ["Russian Far East"] = "the", ["Caribbean"] = "the", ["Caucasus"] = "the", ["Middle East"] = "the", ["New Territories"] = "the", ["North Caucasus"] = "the", ["South Caucasus"] = "the", ["West Bank"] = "the", ["Gaza Strip"] = "the", }, ["valley"] = { ["San Fernando Valley"] = "the", }, } --[==[ var: Regular expressions to apply to determine whether we need to put 'the' before a holonym. The key "*" applies to all holonyms, otherwise only the regexes for the holonym's placetype apply. ]==] export.placename_the_re = { -- We don't need entries for peninsulas, seas, oceans, gulfs or rivers -- because they have holonym_use_the = true. ["*"] = {"^Isle of ", " Islands$", " Mountains$", " Empire$", " Country$", " Region$", " District$", "^City of "}, ["bay"] = {"^Bay of "}, ["lake"] = {"^Lake of "}, ["country"] = {"^Republic of ", " Republic$"}, ["republic"] = {"^Republic of ", " Republic$"}, ["region"] = {" [Rr]egion$"}, ["river"] = {" River$"}, ["local government area"] = {"^Shire of "}, ["county"] = {"^Shire of "}, ["Indian reservation"] = {" Reservation", " Nation"}, ["tribal jurisdictional area"] = {" Reservation", " Nation"}, } --[==[ var: If any of the following holonyms are present, the associated holonyms are automatically added to the end of the list of holonyms for categorization (but not display) purposes. ]==] export.cat_implications = { ["region"] = { ["東歐"] = {"continent/歐洲"}, ["中歐"] = {"continent/歐洲"}, ["西歐"] = {"continent/歐洲"}, ["南歐"] = {"continent/歐洲"}, ["北歐"] = {"continent/歐洲"}, ["東北歐"] = {"continent/歐洲"}, ["東南歐"] = {"continent/歐洲"}, ["北高加索"] = {"continent/歐洲"}, ["南高加索"] = {"continent/亞洲"}, ["南亞"] = {"continent/亞洲"}, ["東亞"] = {"continent/亞洲"}, ["中亞"] = {"continent/亞洲"}, ["西亞"] = {"continent/亞洲"}, ["東南亞"] = {"continent/亞洲"}, ["北亞"] = {"continent/亞洲"}, ["安納托利亞"] = {"continent/亞洲"}, ["小亞細亞"] = {"continent/亞洲"}, ["美索不達米亞"] = {"continent/亞洲"}, ["北非"] = {"continent/非洲"}, ["中非"] = {"continent/非洲"}, ["西非"] = {"continent/非洲"}, ["東非"] = {"continent/非洲"}, ["南非"] = {"continent/非洲"}, ["中美洲"] = {"continent/中美洲"}, ["加勒比地區"] = {"continent/北美洲"}, ["玻里尼西亞"] = {"continent/大洋洲"}, ["密克羅尼西亞"] = {"continent/大洋洲"}, ["美拉尼西亞"] = {"continent/大洋洲"}, ["西伯利亞"] = {"country/俄羅斯", "continent/亞洲"}, ["俄羅斯遠東地區"] = {"country/俄羅斯", "continent/亞洲"}, ["南威爾斯"] = {"constituent country/威爾斯", "continent/歐洲"}, ["巴爾幹半島"] = {"continent/歐洲"}, ["約旦河西岸"] = {"country/巴勒斯坦", "continent/亞洲"}, ["加薩"] = {"country/巴勒斯坦", "continent/亞洲"}, ["加薩走廊"] = {"country/巴勒斯坦", "continent/亞洲"}, } } ------------------------------------------------------------------------------------------ -- Category and display handlers -- ------------------------------------------------------------------------------------------ local function city_type_cat_handler(data) local entry_placetype = data.entry_placetype local generic_before_non_cities = export.get_placetype_prop(entry_placetype, "generic_before_non_cities") if not generic_before_non_cities then internal_error("city_type_cat_handler called on placetype %s that doesn't have a `generic_before_non_cities`" .. " setting", entry_placetype) end local plural_entry_placetype = export.pluralize_placetype(entry_placetype) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and not spec.is_city then -- ZH: "法國的城市" (location_key + 的 + zh_placetype_name) local zh_name_raw = export.get_zh_placetype_name(entry_placetype) local zh_entry_name = zh_name_raw and export.format_zh_name(zh_name_raw) or plural_entry_placetype local de = export.zh_strings.de_particle local retcats = {export.get_prefixed_key(key, spec) .. de .. zh_entry_name} if container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_entry_name) end end return retcats end end local function capital_city_cat_handler(data, non_city) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc -- The first time we're called we want to return something; otherwise we will be called for later-mentioned -- holonyms, which can result in wrongly classifying into e.g. `National capitals`. Simulate the loop in -- find_placetype_cat_specs() over holonyms so we get the proper `Cities in ...` categories as well as the capital -- category/categories we add below. local retcats if not non_city and place_desc.holonyms then for h_index, holonym in export.get_holonyms_to_check(place_desc, holonym_index) do local h_placetype, h_placename = holonym.placetype, holonym.unlinked_placename retcats = city_type_cat_handler { entry_placetype = "city", holonym_placetype = h_placetype, holonym_placename = h_placename, holonym_index = h_index, place_desc = place_desc, } if retcats then break end end end if not retcats then retcats = {} end -- Now find the appropriate capital-type category for the placetype of the holonym, e.g. 'State capitals'. If we -- recognize the holonym among the known holonyms in [[Module:place/locations]], also add a category like 'State -- capitals of the United States'. Truncate e.g. 'autonomous region' to 'region', 'union territory' to 'territory' -- when looking up the type of capital category, if we can't find an entry for the holonym placetype itself (there's -- an entry for 'autonomous community'). -- ZH: look up Chinese capital label by holonym placetype ("首都", "省會", "首府", etc.) local zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype] if not zh_capital_name then zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype:gsub("^.* ", "")] end local de = export.zh_strings.de_particle if zh_capital_name then local inserted_specific_variant_cat = false if holonym_index then -- Now find the first recognized holonym location. We don't stop when :also is seen because of the common pattern -- where we use :also to specify that a given city is the capital at multiple surrounding levels. local matching_group, matching_key, matching_spec, matching_container_trail, matching_holonym_index for h_index = holonym_index, #place_desc.holonyms do if place_desc.holonyms[h_index].placetype then matching_group, matching_key, matching_spec, matching_container_trail = export.find_matching_holonym_location { holonym_placetype = place_desc.holonyms[h_index].placetype, holonym_placename = place_desc.holonyms[h_index].unlinked_placename, holonym_index = h_index, place_desc = place_desc, } if matching_group then matching_holonym_index = h_index break end end end if matching_holonym_index == holonym_index then if matching_container_trail[1] and not matching_spec.no_container_cat then for _, container in ipairs(matching_container_trail[1]) do -- ZH: "美國的首都" (location_key + 的 + zh_capital_name) insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_capital_name) inserted_specific_variant_cat = true end end elseif matching_holonym_index then -- Check to make sure that the holonym placetype we were called on is listed among the -- divtypes of the location we found. local function insert_specific_variant_if_possible(key, spec) return export.get_equiv_placetype_prop(holonym_placetype, function(pt) local plural_holonym_placetype = export.pluralize_placetype(pt) local saw_matching_div if spec.divs then local divs = spec.divs if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) ~= "table" then div = {type = div} end if plural_holonym_placetype == div.type then saw_matching_div = true break end end end if saw_matching_div then insert(retcats, export.get_prefixed_key(key, spec) .. de .. zh_capital_name) return true end return false end) end if insert_specific_variant_if_possible(matching_key, matching_spec) then inserted_specific_variant_cat = true elseif not matching_spec.no_container_cat then for _, containers in ipairs(matching_container_trail) do local saw_no_container_cat = false for _, container in ipairs(containers) do if insert_specific_variant_if_possible(container.key, container.spec) then inserted_specific_variant_cat = true break end saw_no_container_cat = saw_no_container_cat or container.spec.no_container_cat end if inserted_specific_variant_cat or saw_no_container_cat then break end end end end else -- This happens when in an invocation like {{place|en|capital city|s/Haryana,Punjab}} for -- [[Chandigarh]]. We fall back to older code that doesn't depend on the holonym index existing. -- FIXME: This may not be necessary. In the example just given, when processing Haryana we add to -- [[:Category:en:State capitals of India]], and nothing extra gets added when processing Punjab. -- Possibly we can just skip this case entirely. local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_capital_name) inserted_specific_variant_cat = true end end end if not inserted_specific_variant_cat then insert(retcats, zh_capital_name) end else -- We didn't recognize the holonym placetype; fall back to generic capital label. insert(retcats, "首都") end return retcats end --[=[ This is invoked specially for all placetypes (see the `*` placetype key at the bottom of `placetype_data`). This is used in two ways: # To add pages to generic holonym categories like [[:Category:en:Places in Merseyside, England]] (and [[:Category:en:Places in England]]) for any pages that have `co/Merseyside` as their holonym. # To categorize demonyms in bare placename categories like [[:Category:en:Merseyside, England]] if the demonym description mentions `co/Merseyside` and doesn't mention a more specific placename that also has a category. (In this case there are none, but we can have demonyms at multiple levels, e.g. in France for individual villages, departments, administrative regions, and for the entire country, and for example we only want to categorize a demonym into [[:Category:France]] if no more specific category applies.) Unlike when invoked from {{tl|place}}, a demonym invocation only adds the most specific holonym category and not the category of any containing polity (hence if we add [[:Category:en:Merseyside, England]] we won't also add [[:Category:England]]). This code also handles cities; e.g. for the first use case above, it would be used to add a page that has `city/Boston` as a holonym to [[:Category:en:Places in Boston]], along with [[:Category:en:Places in Massachusetts, USA]] and [[:Category:en:Places in the United States]]. The city handler tries to deal with the possibility of multiple cities having the same name. For example, the code in [[Module:place/locations]] knows about the city of [[Columbus]], [[Ohio]], which has containing polities `Ohio` (a state) and `the United States` (a country). If either containing polity is mentioned, the handler proceeds to return the key `Columbus` (along with `Ohio, USA` and `the United States`). Otherwise, if any other state or country is mentioned, the handler returns nothing, and otherwise it assumes the mentioned city is the one we're considering and returns `Columbus` etc. This works correctly if the place only mentions Ohio and a holonym for a Columbus in a different country is encountered, because of the function `augment_holonyms_with_container`, which adds the US as a holonym when Ohio is encountered. The single parameter `data` is as in category handlers. The return value is a list of categories (without the preceding language code). ]=] local function generic_place_cat_handler(data) local from_demonym = data.from_demonym local retcats = {} local function insert_retkey(key, spec) if from_demonym then insert(retcats, key) else -- ZH: "法國地名" (location_key + 地名) insert(retcats, export.get_prefixed_key(key, spec) .. "地名") end end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then if not spec.no_generic_place_cat then -- This applies to continents and continental regions. insert_retkey(key, spec) end -- Categorize both in key, and in the larger location(s) that the key is part of, e.g. [[Hirakata]] goes in -- both [[Category:Places in Osaka Prefecture, Japan]] and [[Category:Places in Japan]]. But not when -- no_container_cat is set (e.g. for 'United Kingdom'). if not spec.no_container_cat then for _, container_set in ipairs(container_trail) do local stop_adding_containers = false for _, container in ipairs(container_set) do if not container.spec.no_generic_place_cat then insert_retkey(container.key, container.spec) end if container.spec.no_container_cat then stop_adding_containers = true end end if stop_adding_containers then break end end end return retcats end end --[==[ Special category handler run for all placetypes that checks for specified division placetypes of known locations and categorizes appropriately. ]==] function export.political_division_cat_handler(data) if data.from_demonym then return end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then local divlists = {} if spec.divs then insert(divlists, spec.divs) end if spec.addl_divs then insert(divlists, spec.addl_divs) end for _, divlist in ipairs(divlists) do if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local sgdiv = export.maybe_singularize_placetype(div.type) or div.type local prep = div.prep or "of" local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" then cat_as = {cat_as} end if not export.placetype_data[sgdiv] then internal_error("Placetype %s associated with known location key %s and data %s not found in " .. "`placetype_data`", sgdiv, key, spec) end if sgdiv == data.entry_placetype then -- ZH: "臺灣的縣" format (location_key + 的 + zh_name); ignore cat_as grouping local zh_n_raw = export.get_zh_placetype_name(data.entry_placetype) local zh_n = zh_n_raw and export.format_zh_name(zh_n_raw) or ucfirst(data.entry_placetype) return {export.get_prefixed_key(key, spec) .. export.zh_strings.de_particle .. zh_n} end end end end end --[==[ This is used to add pages to "bare" categories like [[:Category:en:Georgia, USA]] for `[[Georgia]]` and any foreign-language terms that are translations of the state of Georgia. We look at the page title (or its overridden value in {{para|pagename}}) as well as the glosses in {{para|t}}/{{para|t2}} etc., various extra-info values such as the modern names in {{para|modern}}, and any values specified using a form-of directive. We need to pay attention to the entry placetypes specified so we don't overcategorize; e.g. the US state of Georgia is `[[Джорджия]]` in Russian but the country of Georgia is `[[Грузия]]`, and if we just looked for matching names, we'd get both Russian terms categorized into both [[:Category:ru:Georgia, USA]] and [[:Category:ru:Georgia]]. We also need to check the containing holonyms to make sure there isn't a mismatch (so we don't e.g. categorize Newark, Delaware in [[:Category:en:Newark]], which is intended for Newark, New Jersey). ]==] function export.get_bare_categories(args, overall_place_spec) local bare_cats = {} local place_descs = overall_place_spec.descs local possible_placetypes_by_place_desc = {} for i, place_desc in ipairs(place_descs) do possible_placetypes_by_place_desc[i] = {} for _, placetype in ipairs(place_desc.placetypes) do if not export.placetype_is_ignorable(placetype) then local equivs = export.get_placetype_equivs(placetype, {register_former_as_non_former = true}) for _, equiv in ipairs(equivs) do insert(possible_placetypes_by_place_desc[i], equiv.placetype) end end end end local function check_term(term) -- Treat Wikipedia links like local ones. term = term:gsub("%[%[w:", "[["):gsub("%[%[wikipedia:", "[[") term = export.remove_links_and_html(term) term = term:gsub("^the ", "") for i, place_desc in ipairs(place_descs) do -- Iterate over all matching locations in case there are multiple, as with Delhi defined as -- {{place|en|megacity/and/union territory|c/India|containing the national capital [[New Delhi]]}}. for group, key, spec, container_trail in export.iterate_matching_holonym_location { holonym_placetype = possible_placetypes_by_place_desc[i], holonym_placename = term, place_desc = place_desc, } do insert(bare_cats, key) end end end -- FIXME: Should we only do the following if the language is English (requires that the lang is passed in)? -- We should always do it if `pagename` is given (as it is with {{tcl}}) but maybe not otherwise unless 1=en. There -- are cases like [[Ankara]] = English name for capital of Turkey, but also the name in various languages for the -- capital of Ghana (= English [[Accra]]). But this should get caught by mismatching the containing country. The -- advantage of checking when the language isn't English is we catch those places that fail to give an English -- translation but where the translation happens to be the same as the other-language spelling. However, I don't -- know how often this situation occurs. check_term(args.pagename or mw.loadData("Module:headword/data").pagename) for _, t in ipairs(args.t) do check_term(t) end local function check_termobj_list(terms) for _, term in ipairs(terms) do if term.eq then check_term(term.eq) end if term.alt or term.term then check_term(term.alt or term.term) end end end for _, extra_info_terms in ipairs(overall_place_spec.extra_info) do local arg = extra_info_terms.arg if arg == "modern" or arg == "now" or arg == "full" or arg == "short" then check_termobj_list(extra_info_terms.terms) end end for _, directive in ipairs(overall_place_spec.directives) do check_termobj_list(directive.terms) end return bare_cats end --[==[ This is used to augment the holonyms associated with a place description with the containing polities. For example, given the following: `# {{tl|place|en|subprefecture|pref/Hokkaido}}.` We auto-add Japan as another holonym so that the term gets categorized into [[:Category:Subprefectures of Japan]]. To avoid over-categorizing we need to check to make sure no other countries are specified as holonyms. ]==] function export.augment_holonyms_with_container(place_descs) for _, place_desc in ipairs(place_descs) do if place_desc.holonyms then -- This ends up containing a copy of the original holonyms, with the augmented holonyms inserted in their -- appropriate position. We don't just put them at the end because some holonyms have use the `:also` -- modifier, which causes category processing to restart at that point after generating categories for a -- preceding holonym, and we don't want the preceding holonym's augmented holonyms interfering with -- categorization of a later holonym. We proceed from right to left, and each time we augment, we copy -- the holonyms with the augmented holonym(s) inserted appropriately and replace the place description's -- holonyms with the augmented ones before the next iteration. The reason for this is so that e.g. -- {{place|neighborhood|city/Birmingham|co/West Midlands|cc/England}} doesn't throw an error during the -- augmentation process due to 'Birmingham' referring to two known locations (in England and Alabama). If -- we go left to right, we will throw an ambiguity error on `city/Birmingham` because code to exclude -- Birmingham, Alabama needs `c/United Kingdom` present (to cause a mismatch with `c/United States`), -- which isn't yet present as the augmentation code hasn't gotten to `cc/England` yet. For similar -- reasons, we need to include the augmented holonyms in the holonyms considered in the next iteration -- rather than modifying the place description once at athe end. for i = #place_desc.holonyms, 1, -1 do local holonym = place_desc.holonyms[i] if holonym.placetype and not export.placetype_is_ignorable(holonym.placetype) then local group, key, spec, container_trail = export.find_matching_holonym_location { holonym_placetype = holonym.placetype, holonym_placename = holonym.unlinked_placename, holonym_index = i, place_desc = place_desc, } if group and container_trail[1] and not spec.no_auto_augment_container then local augmented_holonyms = {} for j = 1, i do insert(augmented_holonyms, place_desc.holonyms[j]) end for _, containers in ipairs(container_trail) do local any_no_auto_augment_container = false for _, container in ipairs(containers) do any_no_auto_augment_container = any_no_auto_augment_container or container.spec.no_auto_augment_container local containing_type = container.spec.placetype if type(containing_type) == "table" then -- If the containing type is a list, use the first element as the canonical variant. containing_type = containing_type[1] end local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) -- Don't side-effect holonyms while processing them. local new_holonym = { -- By the time we run, the display has already been generated so we don't need to -- set display_placename. placetype = containing_type, -- placename_to_key() for the group should correctly handle both full and elliptical -- placenames, but the full placename seems less likely to be ambiguous. FIXME: We -- should just store the key directly and use it when available to avoid having to -- convert key to placename and back to key. unlinked_placename = full_container_placename, -- Indicate that this is an augmented holonym, and was derived from the specified -- holonym. In iterate_matching_holonym_location(), we ignore augmented holonyms -- derived from holonyms that are different from the holonym we're searching for but -- of the same placetype. This is to correctly handle a situation like -- {{place|river|dept/Ardèche,Gard,Vaucluse,Bouches-du-Rhône|c/France}}. Here, -- `Ardèche` is in `r/Auvergne-Rhône-Alpes`, while `Gard` is in `r/Occitania` and -- the other two are in `r/Provence-Alpes-Côte d'Azur`. Augmenting proceeds from -- right to left, so after it adds `r/Provence-Alpes-Côte d'Azur` to -- `Bouches-du-Rhône`, Vaucluse gets augmented correctly but `Gard` fails to match -- in find_matching_holonym_location() because of the mismatch between augmented -- `r/Provence-Alpes-Côte d'Azur` and actual `r/Occitania`. Similarly, all later -- calls to find_matching_holonym_location() fail to match `Gard` (and likewise -- `Ardèche`) against any known location. To deal with this, we mark augmented -- holoynms as being augmented due to a source holonym, and when processing a given -- holonym, ignore augmented holonyms from other holonyms of the same placetype. -- The restriction to the same placetype is so that `Birmingham` still gets -- correctly disambiguated to Birmingham, England in the example given above near -- the top of this function, using the augmented holonym `c/United Kingdom` added by -- the specified `cc/England` (whose placetype `constituent country` differs from -- the placetype `city` of Birmingham). augmented_from_holonym = holonym, } insert(augmented_holonyms, new_holonym) -- But it is safe to modify other parts of the place_desc. export.key_holonym_into_place_desc(place_desc, new_holonym) end if any_no_auto_augment_container then break end end for j = i + 1, #place_desc.holonyms do insert(augmented_holonyms, place_desc.holonyms[j]) end place_desc.holonyms = augmented_holonyms end end end end end end -- Cat handler for district, areas, neighborhoods and suburbs. Districts are tricky because they can either be political -- divisions or city neighborhoods. Areas similarly can be political divisions (rarely; specifically, in Kuwait), city -- neighborhoods or larger geographical areas/regions. We handle this as follows: -- (1) `placetype_data` cat entries for specific countries or country divisions take precedence over cat_handlers, so if -- the user says {{tl|place|district|s/Maharashtra|c/India}}, we won't even be called because there is an entry that -- categorizes into [[:Category|Districts of Maharashtra, India]]. -- (2) If we're called, we check the holonym we're called on to see if it is a recognized city, e.g. if we're called -- using {{tl|place|district|city/Mumbai|s/Maharashtra|c/India}}. If so, we categorize under e.g. -- [[:Category:Neighbourhoods of Mumbai]]. (Choosing the spelling "neighbourhoods" because we're in India.) -- (3) If we're called and the holonym is not a recognized city, we check if the placetype has has_neighborhoods set. -- If so, it's "city-like" and we categorize under the first containing polity that we recognize. For example, if -- we're called using {{tl|place|district|town/Northampton|co/Hampshire|s/Massachusetts|c/US}}, we should recognize -- town as "city-like" and categorize under [[:Category:Neighborhoods in Massachusetts]]. (Note "in" not "of", and -- note the spelling "neighborhoods" because we're in the US.) -- (4) If the holonym is not city-like, we do nothing. If there's a city or city-like placetype farther up (e.g. we're -- called as {{tl|place|district|ward/Foo|mun/Bar|...}}), we will handle the city-like entity according to (2) or -- (3) when called on that holonym. Otherwise either the categorization in (1) takes place or there's no -- categorization. local function district_neighborhood_cat_handler(data) local function get_plural_entry_placetype(location_spec, container_trail) if data.entry_placetype == "suburb" then return "Suburbs" else -- Check for `british_spelling` setting on the spec itself or any container. local uses_british_spelling = location_spec.british_spelling if uses_british_spelling == nil and container_trail then for _, container_set in ipairs(container_trail) do local must_outer_break = false for _, container in ipairs(container_set) do if container.spec.british_spelling ~= nil then uses_british_spelling = container.spec.british_spelling must_outer_break = true break end end if must_outer_break then break end end end return uses_british_spelling and "Neighbourhoods" or "Neighborhoods" end end -- First check the immediate holonym to see if it's a city or a city-like top-level entity (Hong Kong, Bonaire, -- etc.) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and spec.is_city then return {get_plural_entry_placetype(spec, container_trail) .. " of " .. export.get_prefixed_key(key, spec)} end -- If the entry placetype is neighbo(u)rhood, assume it is a neighborhood even if there isn't a city-like -- entity father up the chain. (E.g. due to a mistaken use of m/ instead of mun/ for municipality.) local has_neighborhoods local entry_placetype = data.entry_placetype if entry_placetype == "neighborhood" or entry_placetype == "neighbourhood" or entry_placetype == "suburb" then has_neighborhoods = true else -- Otherwise, make sure the current holonym is city-like. has_neighborhoods = export.get_equiv_placetype_prop(data.holonym_placetype, function(pt) return export.get_placetype_prop(pt, "has_neighborhoods") end, {continue_on_nil_only = true}) end if has_neighborhoods then -- Loop up the holonyms, looking for city and city-like entities in case of e.g. [[Sepulveda]] written -- {{place|en|neighborhood|valley/San Fernando Valley|city/Los Angeles|s/California|c/USA}} -- but also look for a recognizable poldiv, and if so categorize as "Neighborhoods in POLDIV". We need -- to start with the current holonym, which is especially important for neighborhoods and suburbs that -- may have the first holonym be a recognizable province, etc. but can't hurt otherwise. (Previously -- we skipped the first/current holonym.) for other_holonym_index, other_holonym in export.get_holonyms_to_check(data.place_desc, data.holonym_index) do local other_holonym_data = { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = data.place_desc, } local group, key, spec, container_trail = export.find_matching_holonym_location(other_holonym_data) if group and not spec.is_former_place then return {get_plural_entry_placetype(spec, container_trail) .. (spec.is_city and " of " or " in ") .. export.get_prefixed_key(key, spec)} end end end end function export.check_already_seen_string(holonym_placename, already_seen_strings) local canon_placename = ulower(m_links.remove_links(holonym_placename)) if type(already_seen_strings) ~= "table" then already_seen_strings = {already_seen_strings} end for _, already_seen_string in ipairs(already_seen_strings) do if canon_placename:find(already_seen_string) then return true end end return false end -- Prefix display handler that adds a prefix such as "Metropolitan Borough of " to the display -- form of holonyms. We make sure the holonym doesn't contain the prefix or some variant already. -- We do this by checking if any of the strings in ALREADY_SEEN_STRINGS, either a single string or -- a list of strings, or the prefix if ALREADY_SEEN_STRINGS is omitted, are found in the holonym -- placename, ignoring case and links. If the prefix isn't already present, we create a link that -- uses the raw form as the link destination but the prefixed form as the display form, unless the -- holonym already has a link in it, in which case we just add the prefix. local function prefix_display_handler(prefix, holonym_placename, already_seen_strings) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(prefix)) then return holonym_placename end if holonym_placename:find("%[%[") then return prefix .. " " .. holonym_placename end return prefix .. " [[" .. holonym_placename .. "]]" end -- Suffix display handler that adds a suffix such as " parish" to the display form of holonyms. -- Works identically to prefix_display_handler but for suffixes instead of prefixes. local function suffix_display_handler(suffix, holonym_placename, already_seen_strings, include_suffix_in_link) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(suffix)) then return holonym_placename end if holonym_placename:find("%[%[") then return holonym_placename .. " " .. suffix end if include_suffix_in_link then return "[[" .. holonym_placename .. " " .. suffix .. "]]" else return "[[" .. holonym_placename .. "]] " .. suffix end end -- Display handler for boroughs. New York City boroughs are display as-is. Others are suffixed -- with "borough". local function borough_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.new_york_boroughs[unlinked_placename] then -- Hack: don't display "borough" after the names of NYC boroughs return holonym_placename end return suffix_display_handler("borough", holonym_placename) end local function county_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) -- Display handler for Irish counties. Irish counties are displayed as e.g. "County [[Cork]]". if m_locations.ireland_counties["County " .. unlinked_placename .. ", Ireland"] or m_locations.northern_ireland_counties["County " .. unlinked_placename .. ", Northern Ireland"] then return prefix_display_handler("County", holonym_placename) end -- Display handler for Taiwanese counties. Taiwanese counties are displayed as e.g. "[[Chiayi]] County". if m_locations.taiwan_counties[unlinked_placename .. " County, Taiwan"] then return suffix_display_handler("County", holonym_placename) end -- Display handler for Romanian counties. Romanian counties are displayed as e.g. "[[Cluj]] County". if m_locations.romania_counties[unlinked_placename .. " County, Romania"] then return suffix_display_handler("County", holonym_placename) end -- FIXME, we need the same for US counties but need to key off the country, not the specific county. -- Others are displayed as-is. return holonym_placename end -- Display handler for prefectures. Japanese prefectures are displayed as e.g. "[[Fukushima]] Prefecture". -- Others are displayed as e.g. "[[Fthiotida]] prefecture". local function prefecture_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) local suffix = m_locations.japan_prefectures[unlinked_placename .. " Prefecture, Japan"] and "Prefecture" or "prefecture" return suffix_display_handler(suffix, holonym_placename) end -- Display handler for provinces of Bulgaria, Iran, Laos, North and South Korea, Thailand, Turkey and Vietnam. Recognized -- provinces are displayed as e.g. "[[Gyeonggi]] Province" or "[[Antalya]] Province". Others are displayed as-is. local function province_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.bulgaria_provinces[unlinked_placename .. "Province, Bulgaria"] or m_locations.iran_provinces[unlinked_placename .. " Province, Iran"] or m_locations.laos_provinces[unlinked_placename .. " Province, Laos"] or m_locations.north_korea_provinces[unlinked_placename .. " Province, North Korea"] or m_locations.south_korea_provinces[unlinked_placename .. " Province, South Korea"] or m_locations.thailand_provinces[unlinked_placename .. " Province, Thailand"] or m_locations.turkey_provinces[unlinked_placename .. " Province, Turkey"] or m_locations.vietnam_provinces[unlinked_placename .. " Province, Vietnam"] then return suffix_display_handler("Province", holonym_placename) end return holonym_placename end -- Display handler for Nigerian states. Nigerian states are display as "[[Kano]] State". Others are displayed as-is. local function state_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.nigeria_states[unlinked_placename .. " State, Nigeria"] then return suffix_display_handler("State", holonym_placename) end return holonym_placename end -- Display handler for voivodeships. Display as e.g. [[Subcarpathian Voivodeship]]. local function voivodesip_display_handler(holonym_placetype, holonym_placename) return suffix_display_handler("Voivodeship", holonym_placename, nil, "include_suffix_in_link") end ------------------------------------------------------------------------------------------ -- Placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: Main placetype data structure. This specifies, for each canonicalized placetype, various properties. The keys are placetypes (in the singular, except for category-only placetypes, which are plural and followed by `!`), and the value is a table of properties. The `"*"` key is special and is used for adding "generic" categories of the form `Places in ``location`` `; it runs for all entry placetypes. Keys in the form of plural placetypes followed by `!` are used only in [[Module:category tree/topic cat/data/Places]] for specifying the properties of categories containing the specified placetype, esp. bare categories like [[:Category:States and territories]] (rather than qualified categories like [[:Category:States and territories of Australia]]). Keys under the value table for a given placetype of are two types: ''property keys'' (which specify the value of specific properties) and ''categorization keys'' (which tell how to categorize certain sorts of holonyms if the placetype in question occurs as an entry placetype). Categorization keys are either the special value `default` or are wildcard strings with a slash in them, such as `"country/*"`. Note that only wildcard strings are currently allowed directly in the placetype data; everything else is handled through category handlers, either per-placetype or special (such as `political_division_cat_handler`). The algorithm for how category keys and handlers are used to generate categories is described at the top of [[Module:place]]. There are several recognized property keys, of various types: 1. The following link-related property keys are recognized: * `link`: '''Required''' except in category-only placetypes ending in `!`. Describes how to link and display the placetype in the formatted description when occurring as an entry placetype. Also used for formatting pluralized placetypes (which may occur in entry placetypes, esp. new-format ones, such as `two <<islands>>`) and may occur in categories). The possible values are: *# `true`: Link to the same-named Wiktionary entry. This creates a raw link, e.g. `<nowiki>[[city]]</nowiki>`, which is converted to an English-specific link by JavaScript postprocessing. If the placetype is plural, this creates a two-part raw link e.g. `<nowiki>[[city|cities]]</nowiki>`. *# `"w"`: Link to the same-named Wikipedia entry. This creates a two-part link, e.g. `<nowiki>[[w:census town|census town]]</nowiki>`, or `<nowiki>[[w:census town|census towns]]</nowiki>` if the placetype is given plural. *# `"+..."`: Create a two-part link to the entry following the `+` sign. For example, if `cercle` specifies `"+w:cercles of Mali"`, a two-part link `<nowiki>[[w:cercles of Mali|cercle]]</nowiki>` will be generated, or `<nowiki>[[w:cercles of Mali|cercles]]</nowiki>` if plural `cercles` is specified. *# `"separately"`: Link each word separately. For example, if `administrative territory` specifies `"separately"`, it will be linked as `<nowiki>[[administrative]] [[territory]]</nowiki>`, or as `<nowiki>[[administrative]] [[territory|territories]]</nowiki>` if plural `administrative territories` is given. *# another string: Use that string directly. If the placetype is plural, `pluralize()` in [[Module:en-utilities]] is called on the string, which will correctly pluralize most strings, including those with links in them. (If there are multiple links, the display form of the last link is pluralized.) *# `false`: This placetype is not allowed as an entry placetype. An error will be thrown if this placetype is given as an entry placetype. This is specified for internal-use placetypes, especially placetypes used in conjunction with the qualifiers `former`, `ancient`, `historical` and such. * `plural_link`: If specified and the placetype is plural, use the value in place of generating a pluralized version of the link spec in `link`. Most commonly, this is either a string with links in it (which is used directly) or the value `false`, indicating that the placetype cannot occur plural. (This is used for example by `caplc`, which displays as `<nowiki>[[capital]] and [[large]]st [[city]]</nowiki>`, where a plural version doesn't make sense.) Generally if this is specified, `plural` also needs to be specified to give a special placetype plural; this situation occurs especially with multiword placetypes where something other than the last word is pluralized. An example is `town with bystatus`, whose plural is `towns with bystatus`, which needs to be explicitly given. This example uses `link = <nowiki>"[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>` ({{m|nb|bystatus}}) is a Norwegian Bokmål word, and template calls aren't currently permitted in link strings), along with `plural_link = <nowiki>"[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>`. * `category_link`: Spec indicating how to display the placetype when occurring in category descriptions. Defaults to the value of `link`, and in turn is overridden by more specific `category_link_*` keys; see below. Category-only placetypes (which are plural and end in `!`) usually use `category_link` in preference to `link`. The value of `category_link` can be any of the types of specs given above, but most commonly is a plural string with links in it, spelling out the description; in this case it is used directly. When both `category_link` and `link` are given, the value in `category_link` is typically longer and more descriptive. For example, `polity` uses `link = true`, which just generates a link `<nowiki>[[polity]]</nowiki>` or plural `<nowiki>[[polity|polities]]</nowiki>`, but specifies a separate `category_link = <nowiki>"[[independent]] or [[semi-]][[independent]] [[polity|polities]]"</nowiki>`, which clarifies in the category description what a polity is. * `category_link_top_level`: Spec indicating how to display top-level (bare/unqualified) categories, i.e. categories where the placetype is not followed by `in ``location`` ` or `of ``location`` `. If given, this overrides `category_link` for this type of category. * `category_link_before_noncity`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` does not refer to a city. If given, this overrides `category_link` for this type of category. * `category_link_before_city`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` refer to a city. If given, this overrides `category_link` for this type of category. An example where this is given is `neighborhood`, which uses the following specs:<ol> <li>`link = true`</li> <li>`category_link = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]"</nowiki>`</li> <li>`category_link_before_city = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions"</nowiki>`</li> </ol> This has the effect of making the entry placetype `neighborhood` display as just `<nowiki>[[neighborhood]]</nowiki>`, while e.g. a category like `Neighborhoods of Chicago` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[Chicago]], ...</nowiki>` and a category like `Neighborhoods in Illinois, USA` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]] in [[Illinois]], ...</nowiki>`. * `disallow_in_entries`: If specified, this placetype cannot occur as an entry placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. * `disallow_in_holonyms`: If specified, this placetype cannot occur as a holonym placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. 2. There is currently one fallback-related property key recognized: * `fallback`: If specified, its value is a placetype which will be used for categorization purposes if no categories get added using the placetype itself. As an example, `branch` sets a fallback of `river` but also sets `preposition = "of"`, meaning that {{tl|place|en|branch|riv/Mississippi}} displays as `a branch of the Mississippi` (whereas `river` itself uses the preposition `in`), but otherwise categorizes the same as `river`. A more complex example is `area`, which sets a fallback of `geographic and cultural area` and also sets a category handler that checks for cities or city-like entities (e.g. boroughs) occurring as holonyms and categorizes the toponym under [[:Category:Neighborhoods of CITY]] (for recognized cities) or otherwise [[:Category:Neighborhoods of POLDIV]] (for the nearest containing recognized location). In addition, `area` is set as a political division of Kuwait, meaning if `c/Kuwait` occurs as holonym, the toponym is categorized under [[:Category:Areas of Kuwait]]. If none of these categories trigger, the fallback of `geographic and cultural area` will take effect, and the toponym will be categorized as e.g. [[:Category:Geographic and cultural areas of England]]. 3. There is currently one property to control irregular plurals of placetypes: * `plural`: If specified, its value is the plural of the placetype. Otherwise, the default pluralization algorithm in [[Module:en-utilities]] applies (which correctly pluralizes most words, including those ending in `-y`, `-ch`, `-sh`, `-x`, etc.). The value of `plural` is also used when converting a pluralized placetype into its singular equivalent; for example, since the placetype `kibbutz` has `plural = "kibbutzim"`, the placetype `kibbutzim` will be recognized as a plural and singularized to `kibbutz`. For this reason, it's occasionally necessary to specify a `plural` value even when the default pluralization algorithm works correctly, if the default singularization algorithm won't correctly reverse the pluralization (as with `pass` and other terms ending in `-ss`). 4. The following property keys relate to generating categories for entry placetypes and specifying the parents of those categories: * `class`: The general class of placetype. This is used for various purposes: (a) to categorize placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical` (note that these placetypes are not all treated alike); (b) to determine the parent category of bare placetype categories (e.g. [[:Category:Villages]] for placetype `village`); (c) to determine whether to add a parent category `political divisions of specific countries` to qualified placetype categories (e.g. [[:Category:Villages in Mali]]). The possible values are: *# `polity`: a more-or-less sovereign/independent polity, such as a country, kingdom or empire. *# `subpolity`: a non-sovereign division of a polity, above the level of an individual settlement. *# `settlement`: a city or smaller equivalent, such as a village. This also includes administrative divisions of a settlement, such as wards and barangays. *# `non-admin settlement`: similar to a settlement but without administrative or political significance, such as an unincorporated community, farm or neighborhood. *# `capital`: a settlement that is a capital. A former capital is generally still in existence, just not the capital any more. *# `natural feature`: any non-man-made feature, such as a lake, mountain, island, ocean, etc. *# `man-made structure`: a man-made feature below the level of a neighborhood, such as a house, airport, university, metro station, park or the like. *# `geographic region`: a geographic or cultural region or area that has no administrative significance. These may vary greatly in size but typically have some sort of cultural significance (possibly historical). The `former`, `ancient`, etc. qualifier has no effect on the category of these placetypes. *# `generic place`: a place that isn't further qualified into any specific subtype. * `former_type`: The class of placetype used for categorizing placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical`. The possible values are the same as for `class` but with the addition of `dependent territory` (for colonies, protectorates and the like) and `!` (ignore the historical/former/ancient/etc. qualifier; used e.g. with `fictional location` and `mythological location`). If not specified, the value of `class` is used. When a qualifier such as `former`, `ancient`, `medieval` or `historical` is encountered (specifically, those in `former_qualifiers`), it is mapped using `former_qualifiers` to the appropriate internal qualifier or qualifiers (one or both of `ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified qualifiers), which is prepended to the value of `former_type` or `class` to form a placetype whose properties are looked up to determine how to categorize the toponym in question. For example, if `medieval village` is given, we map `medieval` to `ANCIENT` and `FORMER`, and `village` to its `class` of `settlement`, and enter the placetypes `ANCIENT settlement` and `FORMER settlement` (in that order) into the list of equivalent placetypes returned by `get_placetype_equivs`. In this case, there is an entry in `placetype_data` for `ANCIENT settlement`, so its default category spec `Ancient settlements` is used as the category. If on the other hand `medieval kingdom` is given, where `kingdom` has a `class` value `polity`, we first look up `ANCIENT polity`, see there is no entry in `placetype_data` for it, and then look up `FORMER polity`, which exists and has a default category spec `Former polities`, which is used as the category. Note that if the placetype following the "former" qualifier is recognized in `placetype_data` but has no `former_type` or `class` and no fallback with a `former_type` or `class` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like `former greenhouse` is specified and we don't have an entry for `greenhouse`), we just track the occurrence and end up not categorizing. * `bare_category_parent`: This specifies the first parent category of a bare placetype category named according to the placetype in question (e.g. [[:Category:Atolls]] for placetype `atoll`, or [[:Category:Named buildings]] for placetype `named buildings!`). If not specified, the first parent category is determined by the value of `class`, using the mapping `class_to_bare_category_parent` in [[Module:category tree/topic cat/data/Places]]. * `addl_bare_category_parents`: Extra parent categories to add a bare placetype category to (see `bare_category_parent` just above). * `bare_category_breadcrumb`: Breadcrumb for bare placetype categories. Also used as the sort key of `bare_category_parent` if it is a string. * `inherently_former`: If specified and the given placetype is used as an entry placetype, act as if `former` or `ancient` (depending on the value of `inherently_former`) were prefixed to the placetype. This is for placetypes that always refer to no-longer-existing entities, such as `satrapy` and `treaty port`. The value of `inherently_former` is a list of internal qualifiers (one or more of `ANCIENT` and/or `FORMER`), just as for `former_qualifiers`, and the implementation is the same. * `cat_handler`: Handler used to generate the categories to add a given toponym to, if its entry placetype is the placetype in question. Generally the `cat_handler` function checks the holonyms specified in order to determine which category or categories to generate. For example, `district_neighborhood_cat_handler` handles placetypes `district`, `neighborhood`, `subdivision`, `suburb` and the like, and either adds the toponym to a category like `Neighborhoods of ``city`` ` (if a recognized city is given as a holonym), or otherwise a category like `Neighborhoods in ``location`` ` (for the first recognized non-city location given as a holonym, if an unrecognized city or city-like entity is given before the recognized non-city). The algorithm that runs the category handlers iterates over holonyms from left to right, running the `cat_handler` function on each holonym in turn until one or more categories are returned; see below for more specifics. (Note that countries for which e.g. a `district` is a political division do not get the corresponding category added by the `district_neighborhood_cat_handler` function but by `political_division_cat_handler`.) `cat_handler` functions are called with one argument, `data`, describing the resolved entry placetype (i.e. after resolving placetype aliases and fallbacks) and the holonym being processed. The return value should be a list of category specs (categories minus the langcode prefix, with `+++` standing for the holonym key, or the value `true`, which stands for ` ``Placetypes`` in/of ``Holonym`` `, i.e. the pluralized placetype with the appropriate preposition as specified in `placetype_data`). `data` contains the following fields: ** `entry_placetype`: the resolved entry placetype for the entry placetype being processed (i.e. it will always have an entry in `placetype_data` but may not be the original placetype given by the user); ** `holonym_placetype` and `holonym_placename`: the holonym placetype and placename being processed; ** `holonym_index`: the index of the holonym being processed, or {nil} if we're handling an overriding holonym (FIXME: we will change the overriding holonym algorithm so there will be an index even when processing overriding holonyms); ** `place_desc`: a full description of the {{tl|place}} call, as specified at the top of [[Module:place]]; ** `from_demonym`: If set, we are called from [[Module:demonym]], triggered by {{tl|demonym-adj}} or {{tl|demonym-noun}}, instead of being triggered by {{tl|place}}. * `has_neighborhoods`: If `true`, the specified placetype is city-like. This is used in the `district_neighborhood_cat_handler` to determine whether to add a category such as `Neighborhoods in ``location`` `; see the section just above on `cat_handler`. 5. The following preposition-related property keys are recognized: * `preposition`: The preposition used after this placetype when it occurs as an entry placetype. Defaults to `"in"`. * `generic_before_non_cities`: If specified, the appropriate category description handler in [[Module:category tree/topic cat/data/Places]] will recognize categories of the form ` ``Placetype`` in/of ``location`` ` for the specified placetype and preposition, if ``location`` is a non-city. This is used to generate descriptions for categories added by category handlers and by explicit category specs in the placetype data. All placetypes that specify `generic_before_non_cities` or `generic_before_cities` *MUST* also specify a value for `class` so that the category tree code can determine whether it's a political or non-political division. * `generic_before_cities`: Like `generic_before_non_cities` but for locations referring to cities. 6. The following property keys control the auto-addition of affixes when formatting holonyms of a particular placetype: * `affix_type`: If specified, add the placetype as an affix before or after holonyms of this placetype. Possible values are: *# `"pref"` (the holonym will display as `(the) placetype of Holonym`, where `the` appears when the holonym directly follows an entry placetype); *# `"Pref"` (same as `"pref"` but the placetype is capitalized; each word is capitalized if there are multiple); *# `"suf"` (the holonym will display as `Holonym placetype`); *# `"Suf"` (the holonym will display as `Holonym Placetype`, i.e. same as `"suf"` but the placetype is capitalized). * `suffix`: String to use in place of the placetype itself when the placetype is displayed as a suffix after a holonym. Note that `suffix` can be used independently of `affix_type` because the user can also request a suffix explicitly using a syntax like `adr:suf/Occitania`, which will display as `Occitania region` because the placetype `administrative region` specifies `suffix = "region"`. * `prefix`: Like `suffix` but for use when the placetype is displayed as a prefix before the holonym. * `affix`: Like `suffix` and `prefix` but for use when the placetype is displayed as an affix either before or after the holonym. If both `suffix` or `prefix` and `affix` are given for a single placetype, `suffix` or `prefix` take precedence. * `no_affix_strings`: String or list of strings that, if they occur in the holonym, suppress the addition of any affix requested using `affix_type`. Defaults to the placetype itself. For example, `autonomous okrug` specifies `affix_type = "Suf"` so that `aokr/Nenets` displays as `Nenets Autonomous Okrug`, but also specifies `no_affix_strings = "okrug"` so that `aokr/Nenets Okrug` or `aokr/Nenets Autonomous Okrug` displays as specified, without a redundant `Autonomous Okrug` added. Matching is case-insensitive but whole-word. * `display_handler`: A function of two arguments, `holonym_placetype` and `holonym_placename` (specifying a holonym). Its return value is a string specifying the display form of the holonym. 7. The following property keys control the indefinite and definite articles used before entry placetypes and/or holonyms of the specified placetype. * `entry_placetype_use_the`: Use `"the"` before this placetype when it occurs as an entry placetype. * `entry_placetype_indefinite_article`: Indefinite article used before this placetype when it occurs as an entry placetype (usually `"a"`, specifically for placetypes beginning with u- that don't take the indefinite article `"an"`). Defaults to the appropriate indefinite article (`"a"` or `"an"` depending on whether the placetype begins with a vowel). Overridden by `entry_placetype_use_the`, and unlike for most properties, does not apply to equivalent placetypes (i.e. fallbacks or those formed by removing a qualifier from the beginning); only to the exact placetype specified. * `holonym_use_the`: Use `"the"` before holonyms of this placetype. '''NOTE:''' # The `link` property must be specified on all placetypes, except those ending in `!` (category-only placetypes), which must have either `link` or `category_link` specified. # Either the `class` or `former_type` property must be specified on all placetypes not ending in `!` that do not have a fallback (if a placetype has a fallback and omits the `class` and `former_type` properties, they are taken from the fallback). An internal error will result if a placetype has no `class` or `former_type` property derivable either directly or through a fallback, if an attempt is made to categorize a former/ancient/historical/etc. entity of this placetype. # It is possible to have multiple levels of fallback (e.g. `frazione` falls back to `hamlet`, which falls back to `village`). Fallback loops will cause an internal error. All placetypes specified as fallbacks must exist in `placetype_data` or an internal error occurs. ]==] export.placetype_data = { --[=[ If you need to sort the following, do this (using Vim): 1. Make sure all full-line comments are within the { ... } table, or are moved after and on the same line as single-line entries. 2. Make sure the table uses tabs everywhere for indent, and not spaces. 3. Mark the top of the table with `ma`, go to the bottom and execute the following two lines in sequence: :'a,.s/\n/\\n/g :s/\\n\(\t\[\)/\r\1/g The first command converts every newline to a literal `\n` sequence, so the whole thing becomes a single line, while the second command restores the newlines before the beginning of each entry. The effect is to convert all entries to a single line while not losing any information. (Potentially a negative lookahead could be used to do it all in one command.) 4. Execute the following to sort: :'a,.!perl -pe 's/^(\t\[")(.*?)(".*)$/$2 @@@ $1$2$3/' | sort -f | perl -pe 's/.*? @@@ //' Note that a simple `sort -f` (where `-f` means case-insensitive) would almost work, but it would sort "hill station" before "hill" and "county borough" before "county" because the space after e.g. "hill station" sorts before the quotation mark after e.g. "hill". The above command deals with this by extracting the key, prepending it followed by ` @@@ `, sorting, and then removing key (the classic decorate-sort-undecorate pattern). 5. Put the table back to multi-line format by marking the top of the table with `ma`, going to the bottom and executing :'a,.s/\\n/\r/g Note that for some reason, in order to get a match a newline in the left side of a replacement, you must use \n, but to insert a newline in the right sode of a replacement you must use \r. ]=] ["*"] = { link = false, cat_handler = generic_place_cat_handler, }, ["administrative atoll"] = { -- Maldives link = "+w:administrative divisions of the Maldives", preposition = "of", class = "subpolity", }, ["administrative capital"] = { link = "w", fallback = "capital city", }, ["administrative center"] = { link = "w", fallback = "non-city capital", }, ["administrative centre"] = { link = "w", fallback = "administrative center", }, ["administrative county"] = { link = "w", fallback = "county", }, ["administrative district"] = { link = "w", fallback = "district", }, ["administrative headquarters"] = { link = "separately", fallback = "administrative centre", }, ["administrative region"] = { link = true, preposition = "of", suffix = "region", -- but prefix is still "administrative region (of)" fallback = "region", class = "subpolity", }, ["administrative seat"] = { link = "w", fallback = "administrative centre", }, ["administrative territory"] = { link = "separately", preposition = "of", suffix = "territory", -- but prefix is still "administrative territory (of)" fallback = "territory", class = "subpolity", }, ["administrative unit"] = { -- Grrr, it's difficult to generalize about "administrative units". In Albania, "administrative unit" is an -- official term for a city-level division of municipalities; Wikipedia renders it using the more practical term -- "commune". In Pakistan, "administrative unit" is a collective term used to refer to all the different types -- of first-level divisions (four provinces, one federal territory, and two "disputed territories", i.e. Azad -- Kashmir and Gilgit-Balistan, that are variously described). For this reason, we set no fallback, but we need -- to include this so that it can be used as a placetype for Albania, categorizing as communes. link = "w", class = "subpolity", }, ["administrative village"] = { link = "w", preposition = "of", has_neighborhoods = true, class = "settlement", }, ["aimag"] = { -- used in Mongolia, Russia and China (Inner Mongolia); in Mongolia, equivalent to a province; -- in China, equivalent to a prefecture (below a province); in Russia, equivalent to a municipal district. link = "w", fallback = "prefecture", }, ["airport"] = { link = true, class = "man-made structure", default = {true}, }, ["alliance"] = { link = true, fallback = "confederation", }, ["archipelago"] = { link = true, fallback = "island", }, ["area"] = { link = true, preposition = "of", fallback = "geographic and cultural area", -- Areas can either be administrative divisions (specifically of Kuwait) or geographic areas. Assume the former -- when categorizing 'Areas' but the latter when handling e.g. 'historical area'. class = "subpolity", former_type = "geographic region", cat_handler = district_neighborhood_cat_handler, }, ["arm"] = { link = true, preposition = "of", class = "natural feature", default = {"海"}, }, ["arrondissement"] = { link = true, preposition = "of", -- FIXME!!! Grrrrr!!! In some countries, arrondissements are divisions of cities; in others, they are divisions -- of departments or provinces. Need to conditionalize on the country for both of the following. class = "subpolity", has_neighborhoods = true, }, ["associated province"] = { link = "separately", fallback = "province", }, ["atoll"] = { -- FIXME! Atolls are administrative divisions of the Maldives but natural features elsewhere. Need to -- conditionalize `class` on the country. See also `administrative atoll`. link = true, class = "natural feature", bare_category_parent = "islands", default = {true}, }, ["autonomous city"] = { link = "w", preposition = "of", fallback = "city", has_neighborhoods = true, }, ["autonomous community"] = { -- Spain; refers to regional entities, not village-like entities, as might be expected from "community" link = true, preposition = "of", class = "subpolity", }, ["autonomous island"] = { -- Comoros; seems like an administrative atoll of the Maldives. link = "+w:autonomous islands of Comoros", preposition = "of", class = "subpolity", }, ["autonomous oblast"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "oblast", class = "subpolity", }, ["autonomous okrug"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "okrug", class = "subpolity", }, ["autonomous prefecture"] = { link = true, fallback = "prefecture", }, ["autonomous province"] = { link = "w", fallback = "province", }, ["autonomous region"] = { link = "w", preposition = "of", fallback = "administrative region", -- "administrative region" sets an affix of "region" but we want to display as "Tibet Autonomous Region" -- if the user writes 'ar:Suf/Tibet'. affix = "autonomous region", }, ["autonomous republic"] = { link = "w", preposition = "of", class = "subpolity", }, ["autonomous territorial unit"] = { -- Moldova; only two of them, one for Gagauzia and one for Transnistria. link = "w", preposition = "of", class = "subpolity", }, ["autonomous territory"] = { link = "w", fallback = "dependent territory", }, ["bailiwick"] = { -- Jersey, etc. link = true, fallback = "polity", }, ["barangay"] = { -- Philippines link = true, class = "settlement", -- Barangays are formal administrative divisions of a city rather than informal neighborhoods, but can use -- some of the properties of a neighborhood. fallback = "neighborhood", }, ["barrio"] = { -- Spanish-speaking countries; Philippines link = true, -- FIXME: Not completely correct, in some countries barrios are formal administrative divisions of a city. -- `class` will need to conditionalize on the country to be completely correct. fallback = "neighborhood", }, ["basin"] = { link = true, fallback = "lake", }, ["bay"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["beach"] = { link = true, class = "natural feature", addl_bare_category_parents = {"water"}, default = {true}, }, ["beach resort"] = { link = "w", fallback = "resort town", }, ["bishopric"] = { link = true, fallback = "polity", }, ["bodies of water!"] = { -- FIXME: This is (maybe?) a type category not a name category. There should be an option for this. We need to -- straighten out the type vs. name vs. related-to issue. category_link = "[[body of water|bodies of water]]", class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems", "water"}, }, ["borough"] = { link = true, preposition = "of", display_handler = borough_display_handler, has_neighborhoods = true, -- "former borough" could be a former settlement or a former part of a city but seems more likely to -- be a former subpolity, particularly in England. FIXME, we really need a handler to take care of this -- properly. class = "subpolity", -- Grr, some boroughs are city-like but some (e.g. in Britain) may be larger. }, ["borough seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["branch"] = { link = true, preposition = "of", fallback = "river", }, ["bridge"] = { link = true, class = "man-made structure", default = {"具名橋樑"}, }, ["building"] = { link = true, class = "man-made structure", default = {"具名建築物"}, }, ["built-up area"] = { link = "w", fallback = "area", }, ["burgh"] = { link = true, fallback = "borough", }, ["business park"] = { link = true, fallback = "park", }, ["caliphate"] = { link = true, fallback = "polity", }, ["canton"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["cape"] = { link = true, fallback = "headland", }, ["capital"] = { link = true, fallback = "capital city", }, ["capital city"] = { link = true, category_link = "[[capital city|capital cities]]: the [[seat of government|seats of government]] for a country or [[political]] [[division]] of a country", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", bare_category_parent = "cities", cat_handler = capital_city_cat_handler, default = {true}, -- The following is necessary so that e.g. [[Melbourne]] defined as {{place|en|capital city|s/Victoria|c/Australia}} -- gets categorized in the bare category [[Category:en:Melbourne]]; otherwise placetype 'capital city' wouldn't -- match against the placetype 'city' of Melbourne. fallback = "city", }, ["caplc"] = { link = "[[capital]] and [[large]]st [[city]]", plural_link = false, fallback = "capital city", }, ["captaincy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["caravan city"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"ANCIENT", "FORMER"}, }, ["castle"] = { link = true, fallback = "building", }, ["cathedral city"] = { link = true, fallback = "city", }, ["cattle station"] = { -- Australia link = true, fallback = "farm", }, ["census area"] = { link = true, affix_type = "Suf", has_neighborhoods = true, class = "non-admin settlement", }, ["census-designated place"] = { -- United States link = true, class = "non-admin settlement", }, ["census division"] = { -- Canada link = "w", preposition = "of", class = "subpolity", }, ["census town"] = { link = "w", fallback = "town", }, ["central business district"] = { link = true, fallback = "neighborhood", }, ["cercle"] = { -- Mali link = "+w:cercles of Mali", preposition = "of", class = "subpolity", }, ["ceremonial county"] = { link = true, fallback = "county", }, ["chain of islands"] = { link = "[[chain]] of [[island]]s", plural = "chains of islands", plural_link = "[[chain]]s of [[island]]s", fallback = "island", }, ["channel"] = { link = true, fallback = "strait", }, ["charter community"] = { -- Northwest Territories, Canada link = "w", fallback = "village", }, ["city"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["city-state"] = { link = true, category_link = "[[sovereign]] [[microstate]]s consisting of a single [[city]] and [[w:dependent territory|dependent territories]]", has_neighborhoods = true, class = "settlement", ["continent/*"] = {"城邦", "+++的市", "+++國家", "首都"}, default = {"城邦", "城市", "國家", "首都"}, }, ["civil parish"] = { -- Mostly England; similar to municipalities link = true, preposition = "of", affix_type = "suf", has_neighborhoods = true, class = "subpolity", }, ["claimed political division"] = { link = "[[claim]]ed [[political]] [[division]]", class = "subpolity", default = {true}, }, ["co-capital"] = { link = "[[co-]][[capital]]", fallback = "capital city", }, ["coal city"] = { link = "+w:coal town", fallback = "city", }, ["coal town"] = { link = "w", fallback = "town", }, ["collectivity"] = { link = "w", preposition = "of", -- No default; these are weird one-off governmental divisions in France (esp. for overseas collectivities) class = "subpolity", }, ["colony"] = { link = true, fallback = "dependent territory", }, ["comarca"] = { -- per Wikipedia: traditional region or local administrative division found in Portugal, Spain, and some of -- their former colonies, like Brazil, Nicaragua, and Panama. In the Valencian Community, for example, it -- sits between municipalities and provinces, something like a county or district. link = true, preposition = "of", class = "subpolity", }, ["commandery"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["commonwealth"] = { link = true, preposition = "of", -- No default; applies specifically to Puerto Rico class = "subpolity", }, ["commune"] = { link = true, fallback = "municipality", }, ["community"] = { link = true, category_link = "[[community|communities]] of all sizes", fallback = "village", }, ["community development block"] = { -- in India; appears to be similar to a rural municipality; groups several villages, unclear if there will be -- neighborhoods so I'm not setting `has_neighborhoods` for now link = "w", affix_type = "suf", no_affix_strings = "block", class = "subpolity", }, ["comune"] = { -- Italy, Switzerland link = true, fallback = "municipality", }, ["condominium"] = { link = true, fallback = "polity", }, ["confederacy"] = { link = true, fallback = "confederation", }, ["confederation"] = { link = true, fallback = "polity", }, ["constituency"] = { -- currently we have them as political divisions of Namibia but many countries have them link = true, preposition = "of", class = "subpolity", }, ["constituent country"] = { link = true, preposition = "of", class = "subpolity", }, ["constituent part"] = { link = "separately", preposition = "of", class = "subpolity", }, ["constituent republic"] = { -- Of Russia, Yugoslavia, etc. link = "separately", preposition = "of", class = "subpolity", }, ["counties and county-level cities!"] = { -- This is used when grouping counties and county-level cities under prefecture-level cities in China. category_link = "[[county|counties]] and [[county-level city|county-level cities]]", class = "subpolity", }, ["continent"] = { link = true, category_link = false, -- can't occur as a bare category class = "natural feature", default = {"大洲及大陸地區"}, }, ["continental region"] = { link = "separately", category_link = false, -- can't occur as a bare category class = "geographic region", fallback = "continent", }, ["continents and continental regions!"] = { category_link = "[[continent]]s and [[continent]]-[[level]] [[region]]s (e.g. [[Polynesia]])", class = "geographic region", }, ["council area"] = { link = true, -- in Scotland; similar to a county preposition = "of", affix_type = "suf", class = "subpolity", }, ["country"] = { link = true, class = "polity", ["continent/*"] = {"+++國家", "國家"}, default = {true}, }, ["country-like entities!"] = { category_link = "[[polity|polities]] not normally considered [[country|countries]] but treated similarly for categorization purposes; typically, [[unrecognized]] [[de-facto]] countries or [[w:dependent territory|dependent territories]]", class = "polity", }, ["county"] = { link = true, preposition = "of", display_handler = county_display_handler, class = "subpolity", }, ["county borough"] = { link = true, -- in Wales; similar to a county preposition = "of", affix_type = "suf", fallback = "borough", class = "subpolity", }, ["county seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["county town"] = { link = true, entry_placetype_use_the = true, preposition = "of", fallback = "town", has_neighborhoods = true, class = "capital", }, ["county-administered city"] = { -- In Taiwan, per Wikipedia similar to a Taiwanese township or district, which is a small city. -- NOT anything like a "county-level city" in PR China, which is a county masquerading as a city. link = "w", fallback = "city", has_neighborhoods = true, class = "settlement", }, ["county-controlled city"] = { -- Taiwan link = "w", fallback = "county-administered city", }, ["county-level city"] = { -- PR China link = "w", fallback = "prefecture-level city", }, ["crater lake"] = { link = true, fallback = "lake", }, ["creek"] = { link = true, fallback = "stream", }, ["Crown colony"] = { link = "+crown colony", fallback = "crown colony", }, ["crown colony"] = { link = true, fallback = "colony", }, ["Crown dependency"] = { link = true, fallback = "dependent territory", }, ["crown dependency"] = { link = true, fallback = "dependent territory", }, ["cultural area"] = { link = "w", fallback = "geographic and cultural area", }, ["cultural region"] = { link = "w", fallback = "geographic and cultural area", }, ["delegation"] = { -- Tunisia link = "+w:delegations of Tunisia", preposition = "of", class = "subpolity", }, ["department"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["departmental capital"] = { link = "separately", fallback = "capital city", }, ["dependency"] = { link = true, fallback = "dependent territory", }, ["dependent territory"] = { link = "w", preposition = "of", class = "subpolity", former_type = "dependent territory", bare_category_parent = "political divisions", ["country/*"] = {true}, default = {true}, }, ["desert"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems"}, default = {true}, }, ["deserted mediaeval village"] = { link = "w", fallback = "deserted medieval village", }, ["deserted medieval village"] = { link = "w", fallback = "ANCIENT settlement", }, ["direct-administered municipality"] = { -- China link = "+w:direct-administered municipalities of China", fallback = "municipality", }, ["direct-controlled municipality"] = { -- several countries link = "w", fallback = "municipality", }, ["distributary"] = { link = true, preposition = "of", fallback = "river", }, ["district"] = { link = true, preposition = "of", affix_type = "suf", -- Grrr! FIXME! Here is where we need handlers for `class`. Using similar logic to -- district_neighborhood_cat_handler, we need to check if we're below or above a city to determine if the class -- is "settlement" or "subpolity". class = "subpolity", cat_handler = district_neighborhood_cat_handler, -- No default. Countries for which districts are political divisions will get entries. }, ["districts and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Portugal. category_link = "[[district]]s and [[autonomous region]]s", class = "subpolity", }, ["districts and autonomous territorial units!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Moldova. category_link = "[[district]]s and [[w:autonomous territorial unit|autonomous territorial unit]]s", class = "subpolity", }, ["district capital"] = { link = "separately", fallback = "capital city", }, ["district headquarters"] = { link = "separately", fallback = "administrative centre", }, ["district municipality"] = { -- In Canada, a district municipality is equivalent to a rural municipality and won't have neighborhoods; in -- South Africa, district municipalities group local municipalities and hence won't have neighborhoods. link = "w", preposition = "of", affix_type = "suf", no_affix_strings = {"district", "municipality"}, fallback = "municipality", class = "subpolity", }, ["division"] = { link = true, preposition = "of", class = "subpolity", }, ["division capital"] = { link = "separately", fallback = "capital city", }, ["dome"] = { link = true, fallback = "mountain", }, ["dormant volcano"] = { link = true, fallback = "volcano", }, ["duchy"] = { link = true, fallback = "polity", }, ["emirate"] = { link = true, preposition = "of", -- FIXME: Can be subpolities (of the United Arab Emirates). fallback = "polity", }, ["empire"] = { link = true, fallback = "polity", }, ["enclave"] = { link = true, preposition = "of", -- Enclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["entity"] = { -- Bosnia and Herzegovina link = "+w:entities of Bosnia and Herzegovina", preposition = "of", class = "subpolity", }, ["escarpment"] = { link = true, fallback = "mountain", }, ["ethnographic region"] = { -- used in Lithuania link = "+w:ethnographic regions of Lithuania", fallback = "geographic and cultural area", }, ["exclave"] = { link = true, preposition = "of", -- exclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["external territory"] = { link = "separately", fallback = "dependent territory", }, ["farm"] = { link = true, class = "non-admin settlement", default = {"農牧場"}, }, ["farms and ranches!"] = { category_link = "[[farm]]s and [[ranch]]es", class = "non-admin settlement", }, ["federal city"] = { link = "w", preposition = "of", fallback = "city", }, ["federal district"] = { link = true, preposition = "of", -- Might have neighborhoods as federal districts are often cities (e.g. Mexico City) has_neighborhoods = true, class = "settlement", }, ["federal subject"] = { -- In Russia; a generic term for first-level administrative divisions (republics, oblasts, okrugs, krais, -- autonomous okrugs and autonomous oblasts). link = "w", preposition = "of", class = "subpolity", }, ["federal territory"] = { link = "w", fallback = "territory", }, ["fictional location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["First Nations reserve"] = { -- Canada link = "[[First Nations]] [[w:Indian reserve|reserve]]", -- Wikipedia uses "Indian reserve"; presumably that is the legal term fallback = "Indian reserve", class = "subpolity", }, ["fjord"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["footpath"] = { link = true, fallback = "road", }, ["forest"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems", "forestry"}, default = {true}, }, ["fort"] = { link = true, fallback = "building", }, ["fortress"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- fortresses -> fortresse, so put an entry here to ensure we singularize correctly. plural = "fortresses", fallback = "building", }, ["frazione"] = { link = "w", fallback = "hamlet", }, ["freeway"] = { link = true, fallback = "road", }, ["French prefecture"] = { link = "[[w:prefectures in France|prefecture]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["geographic and cultural area"] = { link = "+w:cultural area", -- `generic_before_non_cities` is used when generating the category description of categories of the format -- `Geographic and cultural areas of PLACE`. `preposition` is used when generating {{place}} description and -- categories for any placetype that falls back to `geographic and cultural area`. generic_before_non_cities = "of", preposition = "of", class = "geographic region", bare_category_parent = "places", ["country/*"] = {true}, ["constituent country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["geographic area"] = { link = "+w:geographic region", fallback = "geographic and cultural area", }, ["geographic region"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical area"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical region"] = { link = "w", fallback = "geographic and cultural area", }, ["geopolitical zone"] = { -- Nigeria link = true, preposition = "of", class = "subpolity", }, ["gewog"] = { -- Bhutan link = true, preposition = "of", class = "subpolity", }, ["ghost town"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", bare_category_parent = "former settlements", cat_handler = city_type_cat_handler, default = {true}, }, ["glen"] = { link = true, fallback = "valley", }, ["governorate"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["greater administrative region"] = { -- China (former division) link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["gromada"] = { -- Poland (former division) link = "w", preposition = "of", affix_type = "Pref", class = "subpolity", inherently_former = {"FORMER"}, }, ["group of islands"] = { link = "[[group]] of [[island]]s", plural = "groups of islands", plural_link = "[[group]]s of [[island]]s", fallback = "island group", }, ["gulf"] = { link = true, preposition = "of", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["hamlet"] = { link = true, fallback = "village", }, ["harbor city"] = { link = "separately", fallback = "city", }, ["harbor town"] = { link = "separately", fallback = "town", }, ["harbour city"] = { link = "separately", fallback = "city", }, ["harbour town"] = { link = "separately", fallback = "town", }, ["headland"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["headquarters"] = { link = "w", fallback = "administrative centre", }, ["heath"] = { link = true, fallback = "moor", }, ["hemisphere"] = { link = true, entry_placetype_use_the = true, fallback = "continental region", }, ["highway"] = { link = true, fallback = "road", }, ["hill"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["hill station"] = { link = "w", fallback = "town", }, ["hill town"] = { link = "w", fallback = "town", }, ["historic region"] = { -- provided only for the link link = "+w:historical region", fallback = "FORMER geographic region", }, ["historical county"] = { -- needed for historical counties of England/etc. link = "+w:historic county", fallback = "FORMER subpolity", }, ["historical region"] = { -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["home rule city"] = { link = "w", fallback = "city", }, ["home rule municipality"] = { link = "w", fallback = "municipality", }, ["hot spring"] = { link = true, fallback = "spring", }, ["house"] = { link = true, fallback = "building", }, ["housing estate"] = { -- not the same as a housing project (i.e. public housing) link = true, -- not exactly the case but approximately fallback = "neighborhood", }, ["hromada"] = { -- Ukraine link = "w", disallow_in_entries = "Use placetype 'urban hromada', 'rural hromada' or 'settlement hromada' in place of bare 'hromada'", disallow_in_holonyms = "Use placetype 'urban hromada'/'uhrom', 'rural hromada'/'rhrom' or 'settlement hromada'/'shrom' in place of bare 'hromada'", preposition = "of", affix_type = "suf", class = "subpolity", }, ["inactive volcano"] = { link = "w", fallback = "dormant volcano", }, ["independent city"] = { link = true, fallback = "city", }, ["independent town"] = { link = "+independent city", fallback = "town", }, ["Indian reservation"] = { link = "w", -- In the US. Also known as "Native American reservation" or "domestic dependent nation", and the reservations -- themselves often use the term "nation" in their official name (e.g. the "Navajo Nation"). But Wikipedia puts -- the article at [[w:Indian reservation]] and uses that term when describing e.g. what the Navajo Nation is, -- so this must still be the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["Indian reserve"] = { link = "w", -- In Canada. "First Nations reserve" sounds more modern/PC but Wikipedia uses "Indian reserve"; presumably that -- is still the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["inland sea"] = { -- note, we also have 'inland' as a qualifier link = true, fallback = "sea", }, ["inner city area"] = { link = "[[inner city]] [[area]]", fallback = "neighborhood", }, ["island"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["island country"] = { -- FIXME: The following should map to both 'island' and 'country'. link = "w", fallback = "country", }, ["island group"] = { link = "separately", fallback = "island", }, ["island municipality"] = { link = "w", fallback = "municipality", }, ["islet"] = { link = "w", fallback = "island", }, ["Israeli settlement"] = { link = "w", class = "settlement", default = {true}, }, ["judicial capital"] = { link = "w", fallback = "capital city", }, ["khanate"] = { link = true, fallback = "polity", }, ["kibbutz"] = { link = true, plural = "kibbutzim", class = "non-admin settlement", default = {true}, }, ["kingdom"] = { link = true, fallback = "monarchy", }, ["krai"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["lake"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["landforms!"] = { category_link = "[[landform]]s", bare_category_parent = "places", addl_bare_category_parents = {"地球"}, }, ["largest city"] = { link = "[[large]]st [[city]]", entry_placetype_use_the = true, fallback = "city", has_neighborhoods = true, }, ["league"] = { link = true, fallback = "confederation", }, ["legislative capital"] = { link = "separately", fallback = "capital city", }, ["library"] = { link = true, fallback = "building", }, ["lieutenancy area"] = { -- used in the United Kingdom; per Wikipedia: -- In England, lieutenancy areas are colloquially known as the ceremonial counties, although this phrase does -- not appear in any legislation referring to them. The lieutenancy areas of Scotland are subdivisions of -- Scotland that are more or less based on the counties of Scotland, making use of the major cities as separate -- entities.[2] In Wales, the lieutenancy areas are known as the preserved counties of Wales and are based on -- those used for lieutenancy and local government between 1974 and 1996. The lieutenancy areas of Northern -- Ireland correspond to the six counties and two former county boroughs.[3] link = "w", fallback = "ceremonial county", }, ["local authority district"] = { link = "w", fallback = "local government district", }, ["local government area"] = { -- Australia link = "w", preposition = "of", class = "subpolity", }, ["local council"] = { -- Malta; similar to municipalities link = "+w:local councils of Malta", preposition = "of", fallback = "municipality", }, ["local government district"] = { link = "w", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local government district with borough status"] = { link = "[[w:local government district|local government district]] with [[w:borough status|borough status]]", plural = "local government districts with borough status", plural_link = "[[w:local government district|local government districts]] with [[w:borough status|borough status]]", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local urban district"] = { link = "w", fallback = "unincorporated community", }, ["locality"] = { link = "+w:locality (settlement)", -- not necessarily true, but usually is the case fallback = "village", }, ["London borough"] = { link = "w", preposition = "of", affix_type = "pref", affix = "borough", fallback = "local government district with borough status", has_neighborhoods = true, }, ["macroregion"] = { link = true, fallback = "region", }, ["man-made structures!"] = { category_link = "[[w:geographical feature#Engineered constructs|man-made structures]] such as [[airport]]s, [[university|universities]] and [[metro station]]s", bare_category_parent = "places", }, ["manor"] = { -- FIXME: or is this more like a farm? link = true, fallback = "building", }, ["marginal sea"] = { link = true, preposition = "of", fallback = "sea", }, ["market city"] = { link = "+market town", fallback = "city", }, ["market town"] = { link = true, fallback = "town", }, ["massif"] = { link = true, fallback = "mountain", }, ["megacity"] = { link = true, fallback = "city", }, ["metro station"] = { link = true, class = "man-made structure", }, ["metropolitan borough"] = { link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"borough", "city"}, fallback = "local government district", has_neighborhoods = true, }, ["metropolitan city"] = { -- These exist e.g. in Italy and are more like municipalities or even provinces than cities. link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"metropolitan", "city"}, class = "subpolity", }, ["metropolitan county"] = { link = true, fallback = "county", }, ["metropolitan municipality"] = { -- In South Africa, metropolitan municipalities group local municipalities and are like districts, between -- provinces and municipalities. -- In Turkey, metropolitan municipalities are provinces-level. link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"metropolitan", "municipality"}, fallback = "municipality", class = "subpolity", }, ["microdistrict"] = { -- residential complex in post-Soviet states link = true, fallback = "neighborhood", }, ["micronations!"] = { -- FIXME, merge with microstate category_link = "[[micronation]]s", bare_category_parent = "countries", }, ["microstate"] = { link = true, fallback = "country", }, ["military base"] = { link = "w", class = "settlement", -- or "man-made structure"? default = {true}, }, ["minster town"] = { -- England link = "separately", fallback = "town", }, ["monarchy"] = { link = true, fallback = "polity", }, ["moor"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems"}, default = {true}, }, ["moorland"] = { link = true, fallback = "moor", }, ["motorway"] = { link = true, fallback = "road", }, ["mountain"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["mountain indigenous district"] = { -- Taiwan link = "+w:district (Taiwan)", fallback = "district", }, ["mountain indigenous township"] = { -- Taiwan link = "+w:township (Taiwan)", fallback = "township", }, ["mountain pass"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "mountain passes", class = "natural feature", addl_bare_category_parents = {"mountains"}, default = {true}, }, ["mountain range"] = { link = true, fallback = "mountain", }, ["mountainous region"] = { link = "separately", fallback = "region", }, ["mukim"] = { -- Malaysia, Brunei, Indonesia, Singapore link = true, preposition = "of", class = "subpolity", }, ["municipal district"] = { link = "w", -- meaning varies depending on the country; for now, assume no neighborhoods. -- FIXME: has_neighborhoods might have to be a function that looks at the containing holonyms. preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "municipality", }, ["municipality"] = { link = true, preposition = "of", has_neighborhoods = true, class = "subpolity", }, ["municipality with city status"] = { link = "[[municipality]] with [[w:city status|city status]]", plural = "municipalities with city status", plural_link = "[[municipality|municipalities]] with [[w:city status|city status]]", fallback = "municipality", }, ["museum"] = { link = true, fallback = "building", }, ["mythological location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["named bridges!"] = { category_link = "notable [[bridge]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"bridges"}, }, ["named buildings!"] = { category_link = "notable [[house]]s, [[library|libraries]] and other [[building]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"buildings"}, }, ["named roads!"] = { category_link = "notable [[road]]s, [[highway]]s, [[trail]]s and similar linear structures", bare_category_parent = "man-made structures", addl_bare_category_parents = {"roads"}, }, ["national capital"] = { link = "w", fallback = "capital city", }, ["national park"] = { link = true, fallback = "park", }, ["natural features!"] = { category_link = "[[w:geographical feature#Natural features|natural features]] such as [[lake]]s, [[mountain]]s, [[island]]s and [[ocean]]s", bare_category_parent = "places", }, ["neighborhood"] = { -- The majority of the properties here apply to both `neighborhoods` and `neighbourhoods`; the choice of which -- one to use is made by district_neighborhood_cat_handler() based on the value of `british_spelling` for the -- location (city, political division, etc.) of the holonym that follows the word "neighbo(u)hoods" in the -- category name. It does *NOT* depend on whether the {{place}} call uses "neighborhoods" or "neighbourhoods". -- (In general it can't, because other things like "urban areas", "districts", "subdivisions" and the like also -- categorize as neighbo(u)rhoods.) link = true, -- See below. These are used by category handlers in [[Module:category tree/topic cat/data/Places]]. generic_before_non_cities = "in", generic_before_cities = "of", -- The following text is suitable for the top-level description of a neighborhood as well as categories of the -- form `Neighborhoods in POLDIV` e.g. `Neighborhoods in Illinois, USA` but not for categories of the form -- `Neighborhoods of Chicago`, where we'd get "... and other subportions of [[city|cities]] of [[Chicago]]". category_link = "[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighborhood]]s, [[district]]s and other subportions", -- NOTE: This setting is needed for administrative divisions like barangays that fall back to `neighborhood`, -- when set in [[Module:place/locations]] for a specific country (e.g. the Philippines). The above settings -- for `generic_before_non_cities` and `generic_before_cities` are used by category handlers in -- [[Module:category tree/topic cat/data/Places]] for `Neighborhoods in POLDIV` and `Neighborhoods of CITY` -- categories. In fact, district_neighborhood_cat_handler() does not currently pay attention to them, but -- generates "of" before cities and "in" before non-cities regardless. (FIXME: We should change that.) preposition = "of", class = "non-admin settlement", cat_handler = district_neighborhood_cat_handler, }, ["neighbourhood"] = { link = true, category_link = "[[neighbourhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighbourhood]]s, [[district]]s and other subportions", fallback = "neighborhood", }, ["new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", preposition = "in", class = "subpolity", --? }, ["new town"] = { link = true, fallback = "town", }, ["non-city capital"] = { link = "[[capital]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", cat_handler = function(data) return capital_city_cat_handler(data, "non-city") end, -- FIXME, do we need the following? default = {true}, }, ["non-metropolitan county"] = { link = "w", fallback = "county", }, ["non-metropolitan district"] = { link = "w", fallback = "local government district", }, ["non-sovereign kingdom"] = { -- especially in Africa and Asia link = "+w:non-sovereign monarchy", generic_before_non_cities = "in", class = "subpolity", ["country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["non-sovereign monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["oblast"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["oblasts and autonomous republics!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Ukraine. category_link = "[[oblast]]s and [[w:autonomous republic|autonomous republic]]s", class = "subpolity", }, ["ocean"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"seas", "bodies of water"}, default = {true}, }, ["okrug"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["overseas collectivity"] = { link = "w", fallback = "collectivity", }, ["overseas department"] = { link = "w", fallback = "department", }, ["overseas territory"] = { link = "w", fallback = "dependent territory", }, ["parish"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["parish municipality"] = { -- in Quebec, often similar to a rural village; the famous [[Saint-Louis-du-Ha! Ha!]] is one of them. link = "+w:parish municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, }, ["parish seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", class = "capital", has_neighborhoods = true, }, ["park"] = { link = true, class = "man-made structure", default = {true}, }, ["pass"] = { link = "+mountain pass", -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "passes", fallback = "mountain pass", }, ["path"] = { link = true, fallback = "road", }, ["peak"] = { link = true, fallback = "mountain", }, ["peninsula"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["periphery"] = { link = true, preposition = "of", class = "subpolity", }, ["places!"] = { generic_before_non_cities = "in", generic_before_cities = "in", class = "generic place", category_link = "[[place]]s of all sorts", -- `category_link_top_level` control the description used in the top-level [[Category:Places]] and -- language-specific variants such as [[Category:en:Places]]. The actual text for a language-spefic variant is -- "{{{langname}}} names of [[geographical]] [[place]]s of all sorts; [[toponym]]s." where the "names of" -- portion is automatically generated by the appropriate handler in -- [[Module:category tree/topic cat/data/Places]]. category_link_top_level = "[[geographical]] [[place]]s of all sorts; [[toponym]]s", bare_category_parent = "names", }, ["planned community"] = { -- Include this so we don't categorize 'planned community' into villages, as 'community' does. link = true, class = "settlement", has_neighborhoods = true, }, ["plateau"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, -- FIXME: Should generate both "Plateaus" and the appropriate 'geographic and cultural area' category }, ["Polish colony"] = { link = "[[w:colony (Poland)|colony]]", affix_type = "suf", affix = "colony", fallback = "village", has_neighborhoods = true, }, ["political divisions!"] = { category_link = "[[political]] [[division]]s and [[subdivision]]s, such as [[state]]s, [[province]]s, [[county|counties]] or [[district]]s", bare_category_parent = "places", }, ["polity"] = { link = true, category_link = "[[independent]] or [[semi-]][[independent]] [[polity|polities]]", class = "polity", bare_category_parent = "places", default = {true}, }, ["populated place"] = { link = "+w:populated place", -- not necessarily true, but usually is the case fallback = "village", }, ["port"] = { link = true, class = "man-made structure", default = {true}, }, ["port city"] = { -- FIXME: should categorize into "Ports" as well as "Cities" link = true, fallback = "city", }, ["port town"] = { -- FIXME: should categorize into "Ports" as well as "Towns" link = "w", fallback = "town", }, ["prefecture"] = { -- FIXME! `prefecture` is like a county in Japan and elsewhere but a department capital city in France. -- May need `has_neighborhoods` to be a function. link = true, preposition = "of", display_handler = prefecture_display_handler, class = "subpolity", }, ["prefecture-level city"] = { -- China; they are huge entities with a central city; not cities themselves. link = "w", preposition = "of", class = "subpolity", }, ["preserved county"] = { -- In Wales; they are former counties enshrined in law; there are 8 of them and each consists of one or more -- "principal areas" (styled as "counties" or "county boroughs"), of which there are 22. link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["primary area"] = { -- a grouping of "districts" (neighborhoods) in Gothenburg, Sweden link = "+w:sv:primärområde", fallback = "neighborhood", }, ["principality"] = { link = true, fallback = "monarchy", }, ["promontory"] = { link = true, fallback = "headland", }, ["protectorate"] = { link = true, fallback = "dependent territory", }, ["province"] = { link = true, preposition = "of", display_handler = province_display_handler, class = "subpolity", }, ["provinces and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case China. category_link = "[[province]]s and [[autonomous region]]s", class = "subpolity", }, ["provinces and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Canada and Pakistan. category_link = "[[province]]s and [[territory|territories]]", class = "subpolity", }, ["provincial capital"] = { link = "separately", fallback = "capital city", }, ["raion"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["ranch"] = { link = true, fallback = "farm", }, ["range"] = { -- FIXME: Where is this used? Is it a mountain range? link = true, holonym_use_the = true, class = "natural feature", }, ["regency"] = { link = true, preposition = "of", class = "subpolity", }, ["region"] = { link = true, preposition = "of", -- If 'region' isn't a specific administrative division, fall back to 'geographic and cultural area' fallback = "geographic and cultural area", -- "former region" is a subpolity but traditional/historic(al)/ancient/medieval/etc. is a geographic region class = "geographic region", }, ["regional capital"] = { link = "separately", fallback = "capital city", }, ["regional county municipality"] = { -- Quebec link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"municipality", "county"}, fallback = "municipality", }, ["regional district"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "district", }, ["regional municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", }, ["regional unit"] = { link = "w", preposition = "of", affix_type = "suf", class = "subpolity", }, ["registration county"] = { -- Used in Scotland for land registration purposes; formerly used in England, Wales and Ireland for statistical -- purposes (registration of births, deaths and marriages, and for the output of census information). link = "w", fallback = "county", }, ["republic"] = { -- Of Russia, Yugoslavia, etc. "Republics" in general are sovereign but we use "country" in that case. link = true, fallback = "constituent republic", }, ["research base"] = { link = "+w:research station", fallback = "research station", }, ["research station"] = { link = "w", class = "non-admin settlement", -- or "man-made structure"? default = {true}, }, ["reservoir"] = { link = true, fallback = "lake", }, ["residential area"] = { link = "separately", fallback = "neighborhood", }, ["resort city"] = { link = "w", fallback = "city", }, ["resort town"] = { link = "w", fallback = "town", }, ["river"] = { link = true, generic_before_non_cities = "in", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, cat_handler = city_type_cat_handler, ["continent/*"] = {true}, default = {true}, }, ["river island"] = { link = "w", fallback = "island", }, ["road"] = { link = true, class = "man-made structure", default = {"具名道路"}, }, ["Roman province"] = { -- FIXME! Eliminate this in favor of 'former province|emp/Roman Empire' link = "w", default = {"羅馬帝國行省"}, class = "subpolity", }, ["royal borough"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = {"royal", "borough"}, fallback = "local government district with borough status", has_neighborhoods = true, }, ["royal burgh"] = { link = true, fallback = "borough", }, ["royal capital"] = { link = "w", fallback = "capital city", }, ["rural committee"] = { -- Hong Kong; a group of villages link = "w", affix_type = "Suf", has_neighborhoods = true, class = "settlement", }, ["rural community"] = { -- New Brunswick link = "+w:list of municipalities in New_Brunswick#Rural communities", fallback = "municipality", }, ["rural hromada"] = { link = "[[rural]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["rural municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", has_neighborhoods = true, --? }, ["rural township"] = { -- Taiwan link = "+w:rural township (Taiwan)", fallback = "township", }, ["sanctuary"] = { link = true, fallback = "temple", }, ["satrapy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["sea"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["seaport"] = { link = true, fallback = "port", }, ["seat"] = { link = true, fallback = "administrative centre", }, ["self-administered area"] = { -- Myanmar (groups self-administered divisions and zones) link = "+w:self-administered zone", preposition = "of", class = "subpolity", }, ["self-administered division"] = { -- Myanmar (only one of them: Wa Self-Administered Division) link = "w", fallback = "self-administered area", }, ["self-administered zone"] = { -- Myanmar (five of them) link = "w", fallback = "self-administered area", }, ["separatist state"] = { link = "separately", fallback = "unrecognized country", }, ["settlement"] = { link = true, category_link = "[[settlement]]s such as [[city|cities]], [[village]]s and [[farm]]s", bare_category_parent = "places", -- not necessarily true, but usually is the case fallback = "village", }, ["settlement hromada"] = { link = "[[w:Populated places in Ukraine#Rural settlements|settlement]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["sheading"] = { -- Isle of Man link = true, fallback = "district", }, ["sheep station"] = { -- Australia link = true, fallback = "farm", }, ["shire"] = { link = true, fallback = "county", }, ["shire county"] = { link = "w", fallback = "county", }, ["shire town"] = { link = true, fallback = "county seat", }, ["ski resort city"] = { link = "[[ski resort]] [[city]]", fallback = "city", }, ["ski resort town"] = { link = "[[ski resort]] [[town]]", fallback = "town", }, ["spa city"] = { link = "+w:spa town", fallback = "city", }, ["spa town"] = { link = "w", fallback = "town", }, ["space station"] = { link = true, fallback = "research station", }, ["special administrative region"] = { -- in China; in practice they are city-like (Hong Kong, Macau); also [[Oecusse]] in East Timor is formally a -- "special administrative region"; North Korea had one such region planned (Sinuiju) but abandoned; Indonesia -- has similar "special regions" of Jakarta, Yogyakarta and Aceh; and South Sudan has three "special -- administrative areas" link = "+w:special administrative regions of China", preposition = "of", class = "subpolity", has_neighborhoods = true, --? -- no suffix since places in Hong Kong or Macau are listed without China, except Hong Kong and Macau themselves -- they also contain regions (or areas), e.g. [[Kowloon]], so it would be confusing suffix = "", }, ["special collectivity"] = { link = "w", fallback = "collectivity", }, ["special municipality"] = { -- formerly linked to the Taiwan article but there are also special municipalities of the Netherlands link = "w", fallback = "municipality", }, ["special ward"] = { -- Tokyo link = true, fallback = "municipality", }, ["spit"] = { link = true, fallback = "peninsula", }, ["spring"] = { link = true, class = "natural feature", default = {true}, }, ["star"] = { link = true, class = "natural feature", default = {true}, }, ["state"] = { link = true, preposition = "of", class = "subpolity", -- 'former/historical state' could refer either to a state of a country (a division) or a state = sovereign -- entity. The latter appears more common (e.g. in various "ancient states" of East Asia). former_type = "polity", }, ["states and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Australia. category_link = "[[state]]s and [[territory|territories]]", class = "subpolity", }, ["states and union territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case India. category_link = "[[state]]s and [[union territory|union territories]]", class = "subpolity", }, ["state capital"] = { link = true, fallback = "capital city", }, ["state park"] = { link = true, fallback = "park", }, ["state-level new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", fallback = "new area", }, ["statistical region"] = { -- Slovenia link = true, fallback = "administrative region", }, ["statutory city"] = { link = "w", fallback = "city", }, ["statutory town"] = { link = "w", fallback = "town", }, ["strait"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["stream"] = { link = true, fallback = "river", }, ["street"] = { link = true, fallback = "road", }, ["strip"] = { link = true, fallback = "geographic region", }, ["strip of land"] = { link = "[[strip]] of [[land]]", plural = "strips of land", plural_link = "[[strip]]s of [[land]]", fallback = "geographic region", }, ["sub-metropolitan city"] = { link = "+w:List of cities in Nepal#Sub-metropolitan cities", fallback = "city", }, ["sub-prefectural city"] = { link = "w", fallback = "subprovincial city", }, ["subdistrict"] = { link = true, preposition = "of", has_neighborhoods = true, --? -- FIXME: subdistricts can be neighborhood-like (of Jakarta) or larger (in China); need a handler class = "subpolity", default = {true}, }, ["subdivision"] = { link = true, preposition = "of", affix_type = "suf", -- FIXME: subdivisions can be neighborhood-like or larger; need a handler class = "subpolity", cat_handler = district_neighborhood_cat_handler, }, ["submerged ghost town"] = { -- FIXME: Consider just having "submerged" as a qualifier. link = "[[submerged]] [[ghost town]]", fallback = "ghost town", }, ["subnational kingdom"] = { link = "+w:subnational monarchy", fallback = "non-sovereign kingdom", }, ["subnational monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["subprefecture"] = { link = true, affix_type = "suf", preposition = "of", class = "subpolity", }, ["subprovince"] = { link = true, preposition = "of", class = "subpolity", }, ["subprovincial city"] = { link = "w", -- China; special status given to certain prefecture-level cities fallback = "prefecture-level city", }, ["subprovincial district"] = { link = "w", -- China; special status given to Binhai New Area and Pudong New Area, which are county-level districts preposition = "of", class = "subpolity", }, ["subregion"] = { link = true, fallback = "geographic region", }, ["suburb"] = { link = true, -- The following text is suitable for the top-level description of a suburb as well as categories of the form -- 'Suburbs in POLDIV' e.g. 'Suburbs in Illinois, USA' but not for categories of the form 'Suburbs of Chicago', -- where we'd get "[[suburb]]s of [[city|cities]] of [[Chicago]]". category_link = "[[suburb]]s of [[city|cities]]", category_link_before_city = "[[suburb]]s", -- See comments under "neighborhood" for the following three settings. They are used by -- [[Module:category tree/topic cat/data/Places]] for generating the text of 'Suburbs in/of PLACE' categories -- but currently ignored by district_neighborhood_cat_handler (which actually generates the categories for a -- given page), which hardcodes "in" for non-cities and "of" for cities. (FIXME: Change this.) generic_before_non_cities = "in", generic_before_cities = "of", preposition = "of", has_neighborhoods = true, --? class = "non-admin settlement", --? cat_handler = district_neighborhood_cat_handler, }, ["suburban area"] = { link = "w", fallback = "suburb", }, ["subway station"] = { link = "w", fallback = "metro station", }, ["sum"] = { -- In China, Mongolia, Russia; something like a county in Mongolia but a township in China (Inner Mongolia), -- and equivalent to a [[selsoviet]] in the parts of Russia where it's in use (a rural council, below a raion). link = "+w:sum (administrative division)", -- This fallback is somewha arbitrary. We could use "county" but that has a display handler -- which we don't want to be active (FIXME: If the display handler would be active, that's a bug). fallback = "division", }, ["supercontinent"] = { link = true, fallback = "continent", }, ["tehsil"] = { link = true, affix_type = "suf", no_affix_strings = {"tehsil", "tahsil"}, class = "subpolity", }, ["temple"] = { link = true, fallback = "building", }, ["territorial authority"] = { link = "w", fallback = "district", }, ["territory"] = { link = true, preposition = "of", class = "subpolity", }, ["theme"] = { link = "+w:theme (Byzantine district)", preposition = "of", class = "subpolity", }, ["town"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["town with bystatus"] = { -- can't use templates in links currently link = "[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]", plural = "towns with bystatus", plural_link = "[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]", fallback = "town", }, ["township"] = { link = true, has_neighborhoods = true, class = "settlement", --? default = {true}, }, ["township municipality"] = { -- Quebec link = "+w:township municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["traditional county"] = { link = true, fallback = "county", }, ["traditional region"] = { -- FIXME: Verify this works. Same for 'historic(al) region'. -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["trail"] = { link = true, fallback = "road", }, ["treaty port"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"FORMER"}, }, ["tributary"] = { link = true, preposition = "of", fallback = "river", }, ["underground station"] = { link = "w", fallback = "metro station", }, ["unincorporated area"] = { link = "w", -- I don't know if this fallback makes sense everywhere. fallback = "unincorporated community", }, ["unincorporated community"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", }, ["unincorporated territory"] = { link = "w", fallback = "territory", }, ["union territory"] = { -- India link = true, preposition = "of", entry_placetype_indefinite_article = "a", class = "subpolity", }, ["unitary authority"] = { -- UK, New Zealand link = true, entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["unitary district"] = { link = "w", entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["united township municipality"] = { -- Quebec link = "+w:united township municipality (Quebec)", entry_placetype_indefinite_article = "a", fallback = "township municipality", has_neighborhoods = true, --? }, ["university"] = { link = true, entry_placetype_indefinite_article = "a", class = "man-made structure", default = {true}, }, ["unrecognised country"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized and nearly unrecognized countries!"] = { category_link = "[[de facto]] [[independent]] [[state]]s with little or no {{w|international recognition}}", bare_category_parent = "country-like entities", }, ["unrecognized country"] = { link = "w", class = "polity", default = {"未受國際普遍承認國家"}, }, ["unrecognised state"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized state"] = { link = "w", fallback = "unrecognized country", }, ["urban area"] = { link = "separately", fallback = "neighborhood", }, ["urban hromada"] = { link = "[[urban]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["urban service area"] = { -- A strange beast existing in Alberta; technically a type of hamlet but in practice used for much larger -- cities and treated equivalent to a city. (There are only two of them, [[Fort McMurray]] and [[Sherwood Park]]). link = "w", fallback = "city", }, ["urban township"] = { link = "w", fallback = "township", }, ["urban-type settlement"] = { -- appears to be a particular type of small urban settlement in post-Soviet states, -- had an administrative function. link = "w", fallback = "town", }, ["valley"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "water"}, default = {true}, }, ["viceroyalty"] = { -- in essence, a type of colony link = true, fallback = "dependent territory", }, ["village"] = { link = true, generic_before_non_cities = "in", category_link = "[[village]]s, [[hamlet]]s, and other small [[community|communities]] and [[settlement]]s", class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["village development committee"] = { -- former administrative structure in Nepal; also exists in India but not as a formal unit link = "+w:village development committee (Nepal)", inherently_former = {"FORMER"}, fallback = "village", }, ["village municipality"] = { -- Quebec link = "+w:village municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["voivodeship"] = { -- Poland link = true, display_handler = voivodeship_display_handler, preposition = "of", class = "subpolity", }, ["volcano"] = { link = true, plural = "volcanoes", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true, "山"}, }, ["ward"] = { link = true, class = "settlement", -- Wards are formal administrative divisions of a city but have some properties of neighborhoods. fallback = "neighborhood", }, ["watercourse"] = { link = true, fallback = "channel", }, ["Welsh community"] = { -- Wales link = "[[w:community (Wales)|community]]", preposition = "of", affix_type = "suf", affix = "community", has_neighborhoods = true, class = "settlement", }, ["zone"] = { -- administrative division of Ethiopia, Qatar, Nepal, India link = "+w:zone#Place names", preposition = "of", class = "subpolity", }, ---------------------------------------------------------------------------------------------- -- Categories for former places -- ---------------------------------------------------------------------------------------------- ["ANCIENT capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", -- FIXME: Consider removing 'ancient settlements' here. Ancient capitals, like former capitals, often still -- exist but just aren't the capital any more. Maybe we should have an 'Ancient capitals' category. default = {"古代定居點", "歷史首府"}, }, ["ANCIENT non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "ANCIENT settlement", }, ["ANCIENT settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"古代定居點"}, }, ["ancient settlements!"] = { category_link = "former [[city|cities]], [[town]]s and [[village]]s that existed in [[antiquity]]", bare_category_parent = "former settlements", }, ["FORMER capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", default = {"歷史首府"}, }, ["former capitals!"] = { category_link = "former [[capital]] [[city|cities]] and [[town]]s", bare_category_parent = "settlements", }, ["former counties and county-level cities!"] = { -- For categorizing former counties and county-level cities of China category_link = "no-longer existing [[county|counties]] and [[county-level city|county-level cities]]", bare_category_breadcrumb = "counties and county-level cities", bare_category_parent = "former political divisions", }, ["FORMER county"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["FORMER county-level city"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["former countries and country-like entities!"] = { category_link = "[[country|countries]] and similar [[polity|polities]] that no longer exist", bare_category_breadcrumb = "countries and country-like entities", bare_category_parent = "former polities", }, ["FORMER country"] = { link = false, class = "polity", default = {"Former countries and country-like entities"}, }, ["former dependent territories!"] = { category_link = "[[w:dependent territory|dependent territories]] (colonies, dependencies, protectorates, etc.) that no longer exist", bare_category_breadcrumb = "dependent territories", bare_category_parent = "former political divisions", }, ["FORMER dependent territory"] = { link = false, preposition = "of", class = "subpolity", default = {"Former dependent territories"}, }, ["former districts!"] = { -- For categorizing former districts of China category_link = "no-longer-existing [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "former political divisions", }, ["FORMER district"] = { -- For categorizing former districts of China link = false, fallback = "FORMER subpolity", }, ["FORMER geographic region"] = { link = false, fallback = "geographic and cultural area", }, ["FORMER man-made structure"] = { link = false, class = "man-made structure", default = {"Former man-made structures"}, }, ["former man-made structures!"] = { category_link = "man-made structures such as [[airport]]s and [[park]]s that no longer exist", bare_category_breadcrumb = "man-made structures", bare_category_parent = "former places", }, ["former municipalities!"] = { -- For categorizing former municipalities of the Netherlands category_link = "no-longer-existing [[municipality|municipalities]]", bare_category_breadcrumb = "municipalities", bare_category_parent = "former political divisions", }, ["FORMER municipality"] = { -- For categorizing former municipalities of the Netherlands link = false, fallback = "FORMER subpolity", }, ["FORMER natural feature"] = { link = false, class = "natural feature", default = {"Former natural features"}, }, ["former natural features!"] = { category_link = "natural features such as [[lake]]s, [[river]]s and [[island]]s that no longer exist", bare_category_breadcrumb = "natural features", bare_category_parent = "former places", }, ["FORMER non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "FORMER settlement", }, ["former places!"] = { category_link = "[[place]]s of all sorts that no longer exist", bare_category_breadcrumb = "former", bare_category_parent = "places", }, ["former political divisions!"] = { category_link = "[[political]] [[division]]s (states, provinces, counties, etc.) that no longer exist", bare_category_breadcrumb = "political divisions", bare_category_parent = "former places", }, ["former polities!"] = { category_link = "[[polity|polities]] (countries, kingdoms, empires, etc.) that no longer exist", bare_category_breadcrumb = "polities", bare_category_parent = "former places", }, ["FORMER polity"] = { link = false, class = "polity", default = {"Former polities"}, }, ["former prefectures!"] = { -- For categorizing former prefectures of China category_link = "no-longer-existing [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "former political divisions", }, ["FORMER prefecture"] = { -- For categorizing former prefectures of China link = false, fallback = "FORMER subpolity", }, ["former provinces!"] = { -- For categorizing former provinces of China, etc. category_link = "no-longer-existing [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "former political divisions", }, ["FORMER province"] = { -- For categorizing ancient/historical/former provinces of the Roman Empire link = false, fallback = "FORMER subpolity", }, ["former region"] = { -- A former region is considered a former political division, but not a 'historical/traditional/etc.' region. link = "separately", preposition = "of", inherently_former = {"FORMER"}, class = "subpolity", }, ["FORMER settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"Former settlements"}, }, ["former settlements!"] = { category_link = "[[city|cities]], [[town]]s and [[village]]s that no longer exist or have been merged or reclassified", bare_category_breadcrumb = "settlements", bare_category_parent = "former political divisions", }, ["FORMER subpolity"] = { link = false, preposition = "of", class = "subpolity", default = {"Former political divisions"}, }, ---------------------------------------------------------------------------------------------- -- form-of categories -- ---------------------------------------------------------------------------------------------- ---------- Abbreviations ---------- ["abbreviations of counties!"] = { -- For categorizing abbreviations of counties of e.g. England full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[county|counties]]", bare_category_breadcrumb = "counties", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of places", }, ["abbreviations of departments!"] = { -- For categorizing abbreviations of departments of e.g. France full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[department]]s", bare_category_breadcrumb = "departments", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of districts!"] = { -- For categorizing abbreviations of districts of e.g. ??? full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of divisions!"] = { -- For categorizing abbreviations of divisions of e.g. Bangladesh full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[division]]s", bare_category_breadcrumb = "divisions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of former countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of former places", }, ["abbreviations of former places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "abbreviations", bare_category_parent = "former places", addl_bare_category_parents = {{name = "abbreviations of places", sort = "former"}}, }, ["abbreviations of places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "abbreviations", bare_category_parent = "places", }, ["abbreviations of political divisions!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[political]] [[division]]s", bare_category_breadcrumb = "political divisions", bare_category_parent = "abbreviations of places", }, ["abbreviations of prefectures!"] = { -- For categorizing abbreviations of prefectures of e.g. Japan full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces!"] = { -- For categorizing abbreviations of provinces of e.g. Canada full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s and [[territory|territories]]", bare_category_breadcrumb = "provinces and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of regions!"] = { -- For categorizing abbreviations of regions of e.g. Italy full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[administrative region]]s", bare_category_breadcrumb = "regions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states!"] = { -- For categorizing abbreviations of states of e.g. the United States full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[territory|territories]]", bare_category_breadcrumb = "states and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and union territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[union territory|union territories]]", bare_category_breadcrumb = "states and union territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[territory|territories]]", bare_category_breadcrumb = "territories", bare_category_parent = "abbreviations of political divisions", }, ["ABBREVIATION_OF country"] = { link = false, default = {"Abbreviations of countries"}, }, ["ABBREVIATION_OF county"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF department"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF district"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF division"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF FORMER country"] = { link = false, default = {"Abbreviations of former countries"}, }, ["ABBREVIATION_OF FORMER place"] = { link = false, default = {"Abbreviations of former places"}, }, ["ABBREVIATION_OF place"] = { link = false, default = {"Abbreviations of places"}, }, ["ABBREVIATION_OF prefecture"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF province"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF region"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF state"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF subpolity"] = { link = false, default = {"Abbreviations of political divisions"}, }, ["ABBREVIATION_OF territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF union territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ---------- Archaic forms ---------- ["archaic forms of places!"] = { full_category_link = "{{glossary|archaic}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "archaic forms", bare_category_parent = "places", }, ["ARCHAIC_FORM_OF place"] = { link = false, default = {"Archaic forms of places"}, }, ---------- Clippings ---------- ["clippings of places!"] = { full_category_link = "{{glossary|clipping}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "clippings", bare_category_parent = "places", }, ["CLIPPING_OF place"] = { link = false, default = {"Clippings of places"}, }, ---------- Dated forms ---------- ["dated forms of places!"] = { full_category_link = "{{glossary|dated}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "dated forms", bare_category_parent = "places", }, ["DATED_FORM_OF place"] = { link = false, default = {"Dated forms of places"}, }, ---------- Derogatory names ---------- ["derogatory names for cities!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[city|cities]]", bare_category_breadcrumb = "cities", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["derogatory names for continents!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for continents"}, }, ["derogatory names for countries!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for countries"}, }, ["derogatory names for places!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[place]]s", bare_category_breadcrumb = "derogatory names", bare_category_parent = "nicknames for places", }, ["derogatory names for states!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for states"}, }, ["DEROGATORY_NAME_FOR capital"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR city"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR continent"] = { link = false, default = {"Derogatory names for continents"}, }, ["DEROGATORY_NAME_FOR country"] = { link = false, default = {"Derogatory names for countries"}, }, ["DEROGATORY_NAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR place"] = { link = false, default = {"Derogatory names for places"}, }, ["DEROGATORY_NAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR state"] = { link = false, default = {"Derogatory names for states"}, }, ["DEROGATORY_NAME_FOR town"] = { link = false, default = {"Derogatory names for cities"}, }, ---------- Ellipses ---------- ["ellipses of places!"] = { full_category_link = "{{glossary|ellipsis|ellipses}} of [[name]]s of [[place]]s", bare_category_breadcrumb = "ellipses", bare_category_parent = "places", }, ["ELLIPSIS_OF place"] = { link = false, default = {"Ellipses of places"}, }, ---------- Former long-form names ---------- ["former long-form names of countries!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former long-form names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "long-form"}}, }, ["former long-form names of places!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form", bare_category_parent = "former names of places", }, ["FORMER_LONG_FORM_OF country"] = { link = false, default = {"Former long-form names of countries"}, }, ["FORMER_LONG_FORM_OF place"] = { link = false, default = {"Former long-form names of places"}, }, ---------- Former names ---------- ["former names of capitals!"] = { full_category_link = "[[former]] [[name]]s of [[capital city|capital cities]] that generally still exist but under a different name", bare_category_breadcrumb = "capitals", bare_category_parent = "former names of settlements", }, ["former names of countries!"] = { full_category_link = "[[former]] [[name]]s of [[country|countries]] that generally still exist but under a different name", bare_category_breadcrumb = "countries", bare_category_parent = "former names of places", }, ["former names of places!"] = { full_category_link = "[[former]] [[name]]s of [[place]]s that generally still exist but under a different name", bare_category_breadcrumb = "former names", bare_category_parent = "places", }, ["former names of political divisions!"] = { full_category_link = "[[former]] [[name]]s of [[political]] [[division]]s (states, provinces, counties, etc.) that generally still exist but under a different name", bare_category_breadcrumb = "political divisions", bare_category_parent = "former names of places", }, ["former names of polities!"] = { full_category_link = "[[former]] [[name]]s of [[polity|polities]] (e.g. [[country|countries]]) that generally still exist but under a different name", bare_category_breadcrumb = "polities", bare_category_parent = "former names of places", }, ["former names of settlements!"] = { full_category_link = "[[former]] [[name]]s of [[city|cities]], [[town]]s, [[village]]s, etc. that generally still exist but under a different name", bare_category_breadcrumb = "settlements", bare_category_parent = "former names of political divisions", }, ["FORMER_NAME_OF capital"] = { link = false, default = {"Former names of capitals"}, }, ["FORMER_NAME_OF country"] = { link = false, default = {"Former names of countries"}, }, ["FORMER_NAME_OF place"] = { link = false, default = {"Former names of places"}, }, ["FORMER_NAME_OF polity"] = { link = false, default = {"Former names of polities"}, }, ["FORMER_NAME_OF region"] = { link = false, fallback = "FORMER_NAME_OF subpolity", }, ["FORMER_NAME_OF settlement"] = { link = false, default = {"Former names of settlements"}, }, ["FORMER_NAME_OF subpolity"] = { link = false, default = {"Former names of political divisions"}, }, ---------- Former nicknames ---------- ["former nicknames for cities!"] = { full_category_link = "no-longer-used [[nickname]]s for [[city|cities]], e.g. the [[Eternal City]] for [[Kyoto]] during the {{w|Heian period}} ({{circa2|800–1100|short=yes}} {{AD}})", bare_category_breadcrumb = "cities", bare_category_parent = "former nicknames for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["former nicknames for places!"] = { full_category_link = "no-longer-used [[nickname]]s for [[place]]s", bare_category_breadcrumb = "former", bare_category_parent = "nicknames for places", addl_bare_category_parents = {{name = "former names of places", sort = "nicknames"}}, }, ["FORMER_NICKNAME_FOR capital"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR city"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR place"] = { link = false, default = {"Former nicknames for places"}, }, ["FORMER_NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR town"] = { link = false, default = {"Former nicknames for cities"}, }, ---------- Former official names ---------- ["former official names of countries!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former official names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "official"}}, }, ["former official names of places!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "former names of places", }, ["FORMER_OFFICIAL_NAME_OF country"] = { link = false, default = {"Former official names of countries"}, }, ["FORMER_OFFICIAL_NAME_OF place"] = { link = false, default = {"Former official names of places"}, }, ---------- Long-form names ---------- ["long-form names of countries!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "long-form names of places", }, ["long-form names of places!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form names", bare_category_parent = "places", }, ["LONG_FORM_OF country"] = { link = false, default = {"Long-form names of countries"}, }, ["LONG_FORM_OF place"] = { link = false, default = {"Long-form names of places"}, }, ---------- Nicknames ---------- ["nicknames for cities!"] = { full_category_link = "[[nickname]]s for [[city|cities]], e.g. the [[Big Apple]] for [[New York City]]", bare_category_breadcrumb = "cities", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"cities"}, }, ["nicknames for continents!"] = { full_category_link = "[[nickname]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"continents"}, }, ["nicknames for countries!"] = { full_category_link = "[[nickname]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"countries"}, }, ["nicknames for places!"] = { full_category_link = "[[nickname]]s for [[place]]s", bare_category_breadcrumb = "places", bare_category_parent = "nicknames", addl_bare_category_parents = {"places"}, }, ["nicknames for states!"] = { -- For categorizing nicknames for states of e.g. the United States full_category_link = "[[nicknames]] for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"states"}, }, ["NICKNAME_FOR capital"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR city"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR continent"] = { link = false, default = {"Nicknames for continents"}, }, ["NICKNAME_FOR country"] = { link = false, default = {"Nicknames for countries"}, }, ["NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR place"] = { link = false, default = {"Nicknames for places"}, }, ["NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR state"] = { link = false, default = {"Nicknames for states"}, }, ["NICKNAME_FOR town"] = { link = false, default = {"Nicknames for cities"}, }, ---------- Obsolete forms ---------- ["obsolete forms of places!"] = { full_category_link = "{{glossary|obsolete}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "obsolete forms", bare_category_parent = "places", }, ["OBSOLETE_FORM_OF place"] = { link = false, default = {"Obsolete forms of places"}, }, ---------- Official names ---------- ["official names of countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of places", }, ["official names of former countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of former places", }, ["official names of former places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "official names", bare_category_parent = "former places", addl_bare_category_parents = {{name = "official names of places", sort = "former"}}, }, ["official names of places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official names", bare_category_parent = "places", }, ["OFFICIAL_NAME_OF country"] = { link = false, default = {"Official names of countries"}, }, ["OFFICIAL_NAME_OF FORMER country"] = { link = false, default = {"Official names of former countries"}, }, ["OFFICIAL_NAME_OF FORMER place"] = { link = false, default = {"Official names of former places"}, }, ["OFFICIAL_NAME_OF place"] = { link = false, default = {"Official names of places"}, }, ---------- Official nicknames ---------- ["official nicknames for places!"] = { full_category_link = "[[official]] [[nickname]]s for [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for places", }, ["official nicknames for states!"] = { -- For categorizing official nicknames for states of e.g. the United States full_category_link = "[[official]] [[nicknames]] for [[state]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for states", addl_bare_category_parents = {"states"}, }, ["OFFICIAL_NICKNAME_FOR place"] = { link = false, default = {"Official nicknames for places"}, }, ["OFFICIAL_NICKNAME_FOR state"] = { link = false, default = {"Official nicknames for states"}, }, } export.plural_placetype_to_singular = {} for sg_placetype, spec in pairs(export.placetype_data) do if spec.plural then export.plural_placetype_to_singular[spec.plural] = sg_placetype end end ------------------------------------------------------------------------------------------ -- ZH: Chinese localization functions -- ------------------------------------------------------------------------------------------ --[==[ Get the Chinese display name for a placetype, resolving through the enwikt fallback chain. `holonym_placetype` (optional string) provides context for placetypes like `capital city` whose Chinese term depends on the containing administrative level (country → 首都, province → 省會, state → 首府, etc.). Returns two values: zh_name (string or array of regional variants), zh_suffix (string, array, or nil). Returns nil, nil if no Chinese data is available for the placetype or any of its fallbacks. ]==] function export.get_zh_placetype_name(placetype, holonym_placetype) placetype = export.resolve_placetype_aliases(placetype) local zh_name, zh_suffix, zh_by_holonym = m_zh_data.get_zh_placetype_props(placetype, export) if zh_name then local resolved = m_zh_data.resolve_zh_name(zh_name, zh_by_holonym, holonym_placetype) return resolved, zh_suffix end return nil, nil end --[==[ Get only the Chinese suffix for a placetype. Used when rendering holonym `:pref`/`:suf` modifiers in Chinese: the suffix is appended directly to the holonym name (e.g. `s:suf/New York` → 紐約州; `c:pref/Georgia` → 格魯吉亞國). Returns a string, an array of regional variants, or nil if no suffix is defined. ]==] function export.get_zh_placetype_suffix(placetype) placetype = export.resolve_placetype_aliases(placetype) local _, zh_suffix = m_zh_data.get_zh_placetype_props(placetype, export) return zh_suffix end --[==[ Chinese placetype "pluralization" — a no-op, since Chinese has no grammatical plural. Accepts and returns a string or an array (for multi-variant names) unchanged. Provided so that call sites shared with the English path can call a uniform function. ]==] function export.pluralize_zh_placetype(zh_name) return zh_name end --[==[ Get the entry preposition for Chinese display: "in" or "of". Identical to `get_placetype_entry_preposition` in semantics; the Chinese rendering maps these to different constructions: "in" → 位於 [holonyms] 的 [placetype] "of" → [holonyms] 的 [placetype] (no 位於 prefix) ]==] export.get_zh_entry_preposition = export.get_placetype_entry_preposition -- Re-export Chinese data tables so that [[Module:place]] only needs to require -- this module rather than both this module and [[Module:place/zh-data]] separately. export.zh_strings = m_zh_data.zh_strings export.zh_qualifiers = m_zh_data.zh_qualifiers export.zh_extra_info_labels = m_zh_data.zh_extra_info_labels export.zh_capital_label_by_holonym_type = m_zh_data.zh_capital_label_by_holonym_type export.format_zh_name = m_zh_data.format_zh_name return export 1iyxbrvziv8h90lz8w1g6fzn1qi7qo8 9759551 9759528 2026-05-14T22:25:27Z TongcyDai 53191 9759551 Scribunto text/plain local export = {} export.force_cat = false -- set to true for testing local m_locations = require("Module:place/locations") local m_links = require("Module:links") local m_table = require("Module:table") local m_strutils = require("Module:string utilities") local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" -- Chinese localization data (zh_name, zh_suffix, qualifiers, extra-info labels, etc.) local m_zh_data = require("Module:place/data/sandbox") local dump = mw.dumpObject local insert = table.insert local concat = table.concat local internal_error = m_locations.internal_error export.internal_error = internal_error local process_error = m_locations.process_error export.process_error = process_error local unpack = unpack or table.unpack -- Lua 5.2 compatibility local ucfirst = m_strutils.ucfirst local ulower = m_strutils.lower local rmatch = m_strutils.match local split = m_strutils.split --[==[ intro: This module contains placetype data used by [[Module:place]] and {{tl|place}}, along with a significant amount of code to work with both placetypes and locations, as well as some placename-related info (FIXME: Consider moving it to [[Module:place/locations]]). See also [[Module:place/locations]], which has definitions of all known locations. You must currently load this module using {{cd|require()}}, not using {{cd|mw.loadData()}}. In particular, it contains two fundamental and tricky functions: # `get_placetype_equivs`, which finds the equivalent placetypes to look under in order to find a given property, and in the process correctly handles placetypes with qualifiers (including qualifiers that act similar to "type-raising" operators in that they do something non-trivial to the placetype to their right) as well as form-of directives and fallbacks. # `find_matching_holonym_location`, which looks up a holonym to find a matching known location, but in the process checks holonyms to the right to make sure there isn't a clash between the user-specified containing holonyms and the containers of the known location being considered. This is done to prevent overcategorizing when either there are two known locations with the same name (e.g. Birmingham in England and Birmingham, Alabama in the US), or more generally two locations with the same name, one of which is a known location but where the other is not (e.g. we're processing non-known-location Mérida, Spain and don't want it categorized like known location Mérida, Yucatán, Mexico). Both of these functions are invoked repeatedly, and probably are invoked several times on the same inputs and as a result are candidates for memoization to speed up the operation of {{tl|place}}. ]==] ------------------------------------------------------------------------------------------ -- Basic utilities -- ------------------------------------------------------------------------------------------ --[==[ Return true if `force_cat` is set either in this module or in [[Module:place/locations]]. ]==] function export.get_force_cat() return export.force_cat or m_locations.force_cat end -- Add the page to a tracking "category". To see the pages in the "category", -- go to [[Wiktionary:Tracking/place/PAGE]] and click on "What links here". local function track(page) require(debug_track_module)("place/" .. page) return true end function export.remove_links_and_html(text) text = m_links.remove_links(text) return text:gsub("<.->", "") end --[==[ Return the singular version of a maybe-plural placetype, or nil if not plural. This correctly handles placetypes with irregular plurals such as `kibbutzim` plural of `kibbutz` by looking up in a table constructed from the `plural` values specified in `placetype_data`. If a special plural value is not found, the regular singularization algorithm in [[Module:en-utilities]] is invoked, which reverses the y -> ies change after vowels and the 'es' addition after sh/ch/x, and otherwise just subtracts a final 's' (which will incorrectly generate 'passe' for plural 'passes'; FIXME: consider changing this for words ending in '-sses'). If the generated singular is the same as the passed-in value, nil is returned. ]==] function export.maybe_singularize_placetype(placetype) if not placetype then return nil end if export.plural_placetype_to_singular[placetype] then return export.plural_placetype_to_singular[placetype] end local retval = require(en_utilities_module).singularize(placetype) if retval == placetype then return nil end return retval end -- Return the correct plural of a placetype, and (if `do_ucfirst` is given) make the first letter uppercase. We first -- look up the plural in `placetype_data`, falling back to pluralize() in [[Module:en-utilities]], which is almost -- always correct. function export.pluralize_placetype(placetype, do_ucfirst) local ptdata = export.placetype_data[placetype] if ptdata and ptdata.plural then placetype = ptdata.plural else placetype = require(en_utilities_module).pluralize(placetype) end if do_ucfirst then return ucfirst(placetype) else return placetype end end --[==[ Get the data associated with a placetype, which may be in its singular or plural form. If `from_category` is specified, we also look for category-only placetypes (generally plural) followed by `!`. Return three values: (a) the placetype under which the data can be looked up (i.e. in its singular form if the passed-in `placetype` is plural and did not match a category-only placetype followed by `!`); (b) the placetype data structure; (c) the type of `placetype` match that occurred, one of `"direct"` if the canonical placetype is the same as the passed-in `placetype` and also the same as the key under which `ptdata` was looked up, or `"direct-category"` if the `ptdata` was looked up under a key formed from the passed-in `placetype` by adding `!`, or `"plural"` if the `ptdata` was looked up under the singularized version of the plural passed-in `placetype`. ]==] function export.get_placetype_data(placetype, from_category) local ptdata = export.placetype_data[placetype] if ptdata then return placetype, ptdata, "direct" end if from_category then ptdata = export.placetype_data[placetype .. "!"] if ptdata then return placetype .. "!", ptdata, "direct-category" end end local sg_placetype = export.maybe_singularize_placetype(placetype) if sg_placetype then ptdata = export.placetype_data[sg_placetype] if ptdata then return sg_placetype, ptdata, "plural" end end return nil end --[==[ Check for special pseudo-placetypes that should be ignored for categorization purposes. ]==] function export.placetype_is_ignorable(placetype) return placetype == "and" or placetype == "or" or placetype:find("^%(") end function export.resolve_placetype_aliases(placetype) return export.placetype_aliases[placetype] or placetype end --[==[ Return a property from `placetype_data` for a given placetype. If the placetype isn't found in `placetype_data`, or the key isn't found in the placetype's entry in `placetype_data`, return nil. ]==] function export.get_placetype_prop(placetype, key) -- Usually we are called on equivalent placetypes returned from `get_placetype_equivs`, in which case placetype -- aliases have been resolved, but sometimes not, e.g. when fetching the indefinite article in -- get_placetype_article(). `resolve_placetype_aliases` is just a simple lookup and it doesn't hurt to do it twice. placetype = export.resolve_placetype_aliases(placetype) if export.placetype_data[placetype] then return export.placetype_data[placetype][key] else return nil end end --[==[ Given a placetype, split the placetype into one or more potential ''splits'', each consisting of a three-element list { {``prev_qualifiers``, ``this_qualifier``, ``reduced_placetype``}}, i.e. # the concatenation of zero or more previously-recognized qualifiers on the left, normally canonicalized (if there are zero such qualifiers, the value will be nil); # a single recognized qualifier, normally canonicalized (if there is no qualifier, the value will be nil); # the "reduced placetype" on the right. Splitting between the qualifier in (2) and the reduced placetype in (3) happens at each space character, proceeding from left to right, and stops if a qualifier isn't recognized. All placetypes are canonicalized by checking for aliases in `placetype_aliases`, but no other checks are made as to whether the reduced placetype is recognized. Canonicalization of qualifiers does not happen if `no_canon_qualifiers` is specified. For example, given the placetype `"small beachside unincorporated community"`, the return value will be { { {nil, nil, "small beachside unincorporated community"}, {nil, "small", "beachside unincorporated community"}, {"small", "[[beachfront]]", "unincorporated community"}, {"small [[beachfront]]", "[[unincorporated]]", "community"}, }} Here, `"beachside"` is canonicalized to `"[[beachfront]]"` and `"unincorporated"` is canonicalized to `"[[unincorporated]]"`, in both cases according to the entry in `placetype_qualifiers`. On the other hand, if given `"small former haunted community"`, the return value will be { { {nil, nil, "small former haunted community"}, {nil, "small", "former haunted community"}, {"small", "former", "haunted community"}, }} because `"small"` and `"former"` but not `"haunted"` are recognized as qualifiers. Finally, if given `"former adr"`, the return value will be { { {nil, nil, "former adr"}, {nil, "former", "administrative region"}, }} because `"adr"` is a recognized placetype alias for `"administrative region"`. ]==] function export.split_qualifiers_from_placetype(placetype, no_canon_qualifiers) local splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} local prev_qualifier = nil while true do local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if canon == nil then break end local new_qualifier = qualifier if type(canon) == "table" then canon = canon.link end if not no_canon_qualifiers and canon ~= false then if canon == true then new_qualifier = "[[" .. qualifier .. "]]" else new_qualifier = canon end end insert(splits, {prev_qualifier, new_qualifier, export.resolve_placetype_aliases(reduced_placetype)}) prev_qualifier = prev_qualifier and prev_qualifier .. " " .. new_qualifier or new_qualifier placetype = reduced_placetype else break end end return splits end --[==[ Given a `placetype` (which may be pluralized), return an ordered list of equivalent placetypes to look under to find the placetype's properties (such as the category or categories to be inserted). The return value is actually an ordered list of objects of the form `{qualifier=``qualifier``, placetype=``equiv_placetype``}` where ``equiv_placetype`` is a placetype whose properties to look up, derived from the passed-in placetype or from a contiguous subsequence of the words in the passed-in placetype (always including the rightmost word in the placetype, i.e. we successively chop off qualifier words from the left and use the remainder to find equivalent placetypes). ``qualifier`` is the remaining words not part of the subsequence used to find ``equiv_placetype``; or nil if all words in the passed-in placetype were used to find ``equiv_placetype``. (FIXME: This qualifier is not currently used anywhere.) Only placetypes for which there is an entry in `placetype_data` are included. The placetype passed in is always checked first, and will form the first entry if it exists in `placetype_data`. '''NOTE:''' This is a tricky function as it implements handling of (a) qualifiers, (b) fallback logic, (c) "type-raising" qualifiers such as `former`/`ancient`/etc. as well as `fictional` and `mythological`, and (d) form-of directives, which act somewhat similarly to `former`, and allows interaction between more than one of these simultaneously (e.g. official names of former places, which have their own categorization). If {{tl|place}} gets too slow, one potential speedup is to memoize the results of this function, as it appears to be getting called more than once on the same inputs. Another similar potential speedup is to memoize the results of `iterate_matching_holonym_location()`. For example, given the placetype `left tributary`, the following placetype/qualifier combinations are checked in turn: ``` {qualifier = nil, placetype="left tributary"} {qualifier = "left", placetype="tributary"} {qualifier = "left", placetype="river"} ``` and the return value will be { { {qualifier = "left", placetype="tributary"}, {qualifier = "left", placetype="river"}, }} The algorithm first enters the placetype itself into the list, then checks for `left tributary` as a recognized placetype in `placetype_data` and doesn't find it, so it doesn't enter it into the returned list (if it found it, it would add it as well as any fallbacks directly after it). It then splits off the recognized qualifier `left` to form the ''reduced placetype'' `tributary`, which is entered into the list because it is found in `placetype_data`. Then, because it has a fallback `river`, which exists in `placetype_data`, the fallback is entered next. Another example is `small rural fraziones` (where a ''frazione'' is type of subdivision of a ''comune'' or municipality, often specifically an outlying hamlet). the placetype/qualifier combinations checked are: ``` {qualifier = nil, placetype="small rural fraziones"} {qualifier = nil, placetype="small rural frazione"} {qualifier = "small", placetype="rural fraziones"} {qualifier = "small", placetype="rural frazione"} {qualifier = "small [[rural]]", placetype="fraziones"} {qualifier = "small [[rural]]", placetype="frazione"} {qualifier = "small [[rural]]", placetype="hamlet"} {qualifier = "small [[rural]]", placetype="village"} ``` The return value ends up as {qualifier = "small [[rural]]", placetype="frazione"}, {qualifier = "small [[rural]]", placetype="hamlet"}, {qualifier = "small [[rural]]", placetype="village"}, }} Here, because the result of singularizing `fraziones` returns a different value from the placetype itself, that singularized value is checked after the original plural value. Also, in the process of splitting off qualifiers, they are canonicalized if the entry in `placetype_qualifiers` says to do so; in this case, links are placed around `rural`. Finally, `frazione` has `hamlet` as its fallback, which in turn has `village` as its fallback, so both fallbacks end up being returned. `no_fallback`, if set, disables returning equivalent placetypes based on the `fallback` setting for a placetype. This is used in the first of two loops in find_placetype_cat_specs() in [[Module:place]] to prefer exact matches for placetypes such as barangays with later holonyms to matches based on a fallback such as `neighborhood` with an earlier holonym. See the comment in that function in [[Module:place]] for a more detailed explanation of why this is needed. Only the placetype itself, and any reduced placetypes created by chopping off recognized qualifiers at the beginning, are returned; but we do not return reduced placetypes if a containing placetype exists in `placetype_data`. (For example, `"overseas territory"` has a fallback `"dependent territory"`, and `"overseas"` is also a recognized qualifier. When `no_fallback` is in place, without the above proviso, we would return `"overseas territory"` followed by `"territory"` with the incorrect effect of classifying an `"overseas territory"` of the United Kingdom such as `"Gibraltar"` under [[:Category:Territories of the United Kingdom]] instead of [[:Category:Dependent territories of the United Kingdom]].) As an exception, if `historical`, `ancient`, `former` or the like are found, they proceed ignoring `no_fallback`, because it seems tricky to handle them correctly in the presence of `no_fallback`, and historical/former placetypes rarely occur with exact match category specs anyway. `no_split_qualifiers` prevents splitting off recognized qualifiers and returning the remainder of the placetype as an equivalent placetype. Only the passed-in placetype, and any fallbacks, will be returned. This is used in [[Module:category tree/topic cat/data/Places]] when looking up placetypes found in categories. Such placetypes won't have qualifiers and so it doesn't make sense to try and look for them. `from_category`, if set, causes category-only placetypes (those ending in `!`) to also be checked. `form_of_directive`, if set, causes the specified form-of directive (e.g. `FORMER_NAME_OF`) to be prepended to checked placetypes, their directive-specific type (e.g. `FORMER_NAME_OF_type`), and their classes (`class`) to get the appropriate placetypes to check for form-of-directive categories. It falls back to the prepended generic `place` as a placetype, e.g. `FORMER_NAME_OF place`, if nothing else matches. `no_check_for_inherently_former` is used internally to prevent an infinite loop when checking for `inherently_former`. `register_former_as_non_former` is a major hack used in `get_bare_categories` to deal with the mismatch between e.g. known location `Yugoslavia` declaring itself a `country` but definitions of it declaring it a `former country`. It causes the non-former version of the specified placetype to be included in the returned equivalents along with the former placetypes. [FIXME: This should apply only to the entries in `former_countries` but it's tricky to do that now; fix this in the known-location refactor. -- The known-location refactor is already done but we haven't yet fixed this.] ]==] function export.get_placetype_equivs(placetype, props) local no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former local form_of_directive if props then no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former = props.no_fallback, props.no_split_qualifiers, props.no_check_for_inherently_former, props.from_category, props.register_former_as_non_former form_of_directive = props.form_of_directive end local equivs = {} -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. `qualifier` is -- the preceding qualifier to insert into `equivs` along with the placetype (see comment at top of function). If -- `from_category` is given, we also check for a category-specific entry consisting of the placetype followed by -- `!`, and in all cases we also check to see if `placetype` is plural, and if so, insert the singularized version -- along with its fallbacks (if any) in `placetype_data`. `form_of_prefix` is a form-of prefix such as -- `OFFICIAL_NAME_OF`. If specified, we check the fallbacks of `placetype` without the prefix but then insert into -- `equivs` the prefixed placetype. This way, if the user says e.g. {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}}, -- we will correctly categorize into [[:Category:Official names of countries]], rather than only trying to look up -- `OFFICIAL_NAME_OF island country` and failing, falling back ultimately to [[:Category:Official names of places]]. local function insert_placetype_and_fallbacks(qualifier, placetype, form_of_prefix) local function insert_equiv(pt) if form_of_prefix then -- Let's say the user says {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}} and we have -- no entry for `OFFICIAL_NAME_OF island country` but we do for `OFFICIAL_NAME_OF country` (which we end -- up processing because `island country` falls back to `country`), and that entry in turn is defined -- using a fallback. We have to insert that fallback-of-fallback, and the easiest/cleanest way of -- handling this is by calling ourselves recursively. insert_placetype_and_fallbacks(qualifier, form_of_prefix .. " " .. pt) else insert(equivs, {qualifier=qualifier, placetype=pt}) end end -- Insert the placetype, along with any fallbacks. local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if ptdata then insert_equiv(canon_placetype) if no_fallback then return end local first_placetype = #equivs + 1 local prev_placetype = nil while true do local pt_value = export.placetype_data[canon_placetype] if not pt_value then internal_error("Fallback value %s specified for placetype %s but is not in `placetype_data`", canon_placetype, prev_placetype) end if pt_value.fallback then insert_equiv(pt_value.fallback) local last_placetype = #equivs if last_placetype - first_placetype >= 10 then local fallback_loop = {} for i = first_placetype, last_placetype do insert(fallback_loop, equivs[i].placetype) end internal_error("Apparent loop in fallback chain: %s", table.concat(fallback_loop, " -> ")) end prev_placetype = canon_placetype canon_placetype = pt_value.fallback else break end end end end -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. This is a -- wrapper around the more basic `insert_placetype_and_fallbacks()` which handles form-of directives. If there is no -- form-of directive, this function directly calls `insert_placetype_and_fallbacks()`. We do things this way so that -- form-of directives correctly combine with `former`-type qualifiers. Note that we also have special backups for -- form-of directives that check `DIRECTIVE place` (and before that, `DIRECTIVE FORMER/ANCIENT place` is there's a -- `former`-type directive); these backups live outside this function because we want them done once, late, rather -- than in each invocation of `process_and_insert_placetype()`. local function process_and_insert_placetype(qualifier, reduced_placetype) if form_of_directive then -- First check for e.g. `OFFICIAL_NAME_OF island country` and its fallbacks; then we look for fallbacks of -- `island country` and check e.g. `OFFICIAL_NAME_OF country` and its fallbacks. All of this is handled by -- `insert_placetype_and_fallbacks()` with appropriate parameters. After that, check the general class of -- the directive, e.g. `subpolity` if something like `district` is given. (Eventually, we check for -- `OFFICIAL_NAME_OF place` as a backup, but this happens at the end outside the loop over qualifiers.) insert_placetype_and_fallbacks(qualifier, reduced_placetype, form_of_directive) if not no_fallback then local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype) local directive_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, form_of_directive .. "_type") or export.get_placetype_prop(pt, "class") end ) if not directive_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s in conjunction with form-of directive %s, placetype data " .. 'located but directive-specific type property %s missing, and so is "class"; ' .. "placetypes searched are %s", reduced_placetype, form_of_directive, form_of_directive .. "_type", reduced_placetype_equivs) else -- This should be allowed, as we allow unrecognized placetypes in general. end elseif directive_type ~= "!" then insert_placetype_and_fallbacks(qualifier, directive_type, form_of_directive) end end else insert_placetype_and_fallbacks(qualifier, reduced_placetype) end end -- Successively split off recognized qualifiers and loop over successively greater sets of qualifiers from the left -- (unless `no_split_qualifiers` is specified, in which case we don't check for qualifiers). local splits if no_split_qualifiers then splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} else splits = export.split_qualifiers_from_placetype(placetype) end for _, split in ipairs(splits) do local prev_qualifier, this_qualifier, reduced_placetype = unpack(split, 1, 3) -- If a special "former" qualifier like `former` or `historical` isn't present, and -- `no_check_for_inherently_former` is not given (this flag is used to avoid infinite loops), check for -- "inherently former" placetypes like `satrapy` and `treaty port` that always refer to no-longer-existing -- placetypes, and handle accordingly. local unlinked_this_qualifier if this_qualifier and this_qualifier:find("%[") then unlinked_this_qualifier = export.remove_links_and_html(this_qualifier) else unlinked_this_qualifier = this_qualifier end local former_qualifiers = this_qualifier and export.former_qualifiers[unlinked_this_qualifier] or nil if not former_qualifiers and not no_check_for_inherently_former then former_qualifiers = export.get_equiv_placetype_prop(reduced_placetype, function(pt) return export.get_placetype_prop(pt, "inherently_former") end, {no_check_for_inherently_former = true}) end -- If a special "former" qualifier like `former` or `historical` is present, map it to the appropriate internal -- qualifiers (`ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified -- qualifiers), fetch the `former_type` property, and treat the placetype as if a concatenation of the mapped -- qualifier(s) and the value of `former_type`. For example, if `medieval village` is given, we map `medieval` -- to `ANCIENT` and `FORMER`, and `village` to its `former_type` of `settlement`, and enter the placetypes -- `ANCIENT settlement` and `FORMER settlement` (in that order) into `equivs`. If the placetype following the -- "former" qualifier is recognized in `placetype_data` but has no `former_type` and no fallback with a -- `former_type` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like -- `former greenhouse` is specified and we don't have an entry for `greenhouse`), just track the occurrence and -- don't enter anything into `equivs`. if former_qualifiers then -- FIXME: Should we respect `no_fallback` here? My instinct says no. local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype, { no_check_for_inherently_former = true }) local former_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, "former_type") or export.get_placetype_prop(pt, "class") end ) if not former_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s, placetype data located but `former_type` missing; " .. "placetypes searched are %s", reduced_placetype, reduced_placetype_equivs) else -- Enable error when we've verified there aren't any examples. track("bad-former-placetype") track("bad-former-placetype/" .. reduced_placetype) --process_error("For placetype '%s', unrecognized placetype following 'former'-type " .. -- "qualifier; searched placetype(s) %s", reduced_placetype, dump(reduced_placetype_equivs)) end elseif former_type ~= "!" then -- First check directly for `ANCIENT/FORMER` + the original following placetype. This makes it possible -- for (e.g.) former provinces of the Roman empire to be categorized specially. for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. reduced_placetype) end for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. former_type) end -- HACK! See explanation above for `register_former_as_non_former`. if register_former_as_non_former then process_and_insert_placetype(prev_qualifier, reduced_placetype) end -- If we're processing a form-of directive, after doing everything else we do -- `DIRECTIVE ANCIENT/FORMER place` e.g. `OFFICIAL_NAME_OF FORMER place` as a backup. if form_of_directive and not no_fallback then for _, former_qualifier in ipairs(former_qualifiers) do insert_placetype_and_fallbacks(prev_qualifier, form_of_directive .. " " .. former_qualifier .. " place") end end -- Don't continue processing equivs. The reason is probably the same as the `break` below for -- qualifier_to_placetype_equivs[]; categories for `former BLAH` are set using `default`, and -- non-former equivs will otherwise take precedence. break end end -- Then see if the rightmost split-off qualifier is in qualifier_to_placetype_equivs -- (e.g. 'fictional *' -> 'fictional location'). If so, add the mapping. if this_qualifier and export.qualifier_to_placetype_equivs[unlinked_this_qualifier] then insert(equivs, { qualifier=prev_qualifier, placetype=export.qualifier_to_placetype_equivs[unlinked_this_qualifier] }) -- Don't continue processing equivs; otherwise, if we specify 'mythological city', even though the -- equivalent entry for 'mythological location' gets inserted ahead of the entry for 'city', the -- latter ends up generating the category because the category for 'mythological location' is set as -- the default value, which is used only when no non-default category can be found. break end -- Finally, join the rightmost split-off qualifier to the previously split-off qualifiers to form a combined -- qualifier, and add it along with reduced_placetype and any mapping in placetype_data for reduced_placetype. -- NOTE: The first time through this loop, both `prev_qualifier` and `this_qualifier` are nil, and this inserts -- the full placetype into `equivs`. local qualifier = prev_qualifier and prev_qualifier .. " " .. this_qualifier or this_qualifier process_and_insert_placetype(qualifier, reduced_placetype) -- If `no_fallback` and there's an entry in `placetype_data` for this placetype, don't include any reduced -- placetypes to avoid the "overseas territory treated as a territory" issue describe above. if no_fallback then local canon_placetype, ptdata, ptmatch = export.get_placetype_data(reduced_placetype, from_category) if canon_placetype then break end end end -- If we're processing a form-of directive, after doing everything else we do `DIRECTIVE place` e.g. -- `OFFICIAL_NAME_OF place` as a backup; but only if either the placetype as a whole is recognized or the placetype -- begins with a recognized qualifier. This latter check is to avoid categorizing into e.g. -- [[Category:en:Former names of places]] in an invocation like -- {{place|en|@former name of:Democratic Republic of the Congo|country|r/Central Africa|;|used from 1971–1997}}; -- the `used from 1971–1997` gets treated as a placetype and we're called on it. if form_of_directive and not no_fallback and (splits[2] or export.get_placetype_data(placetype, from_category)) then insert_placetype_and_fallbacks(nil, form_of_directive .. " place") end return equivs end function export.get_equiv_placetype_prop_from_equivs(equivs, fun, continue_on_nil_only) for _, equiv in ipairs(equivs) do local retval = fun(equiv.placetype) if continue_on_nil_only and retval ~= nil or not continue_on_nil_only and retval then return retval, equiv end end return nil, nil end --[==[ Given a placetype `placetype` and a function `fun` of one argument, iteratively call the function on equivalent placetypes fetched from `get_placetype_equivs` until the function returns a non-falsy value (i.e. not {nil} or {false}); but if `continue_on_nil_only` is specified, the iterations continue until the function returns non non-{nil} value. FIXME: We should make `continue_on_nil_only` the default; but this requires changing some callers.) When `fun` returns a non-falsy or non-{nil} value, `get_equiv_placetype_prop` returns two values: the value returned by `fun` and the equivalent placetype that triggered the non-falsy (or non-{nil}) return value. If `fun` never returns a non-falsy (or non-{nil}) value, `get_equiv_placetype_prop` returns {nil} for both return values. If `placetype` is passed in as {nil}, the return value is the result of calling `fun` on {nil} (whatever it is) with {nil} for the second return value. ]==] function export.get_equiv_placetype_prop(placetype, fun, props) if not placetype then return fun(nil), nil end return export.get_equiv_placetype_prop_from_equivs(export.get_placetype_equivs(placetype, props), fun, props and props.continue_on_nil_only) end --[==[ Return the article that is used with an entry placetype. We proceed as follows: # See if there is a recognized qualifier at the beginning that specifies an article (including `false` for no article). This takes precedence over anything else, so that e.g. `various capitals` gets no article rather than "`the"`. # Then check the placetype or any equivalent placetype for the `entry_placetype_use_the` property, indicating that `"the"` should be used. # Otherwise we look to see if the placetype itself (not any equivalents, even those involving deleting a qualifier from the beginning) has an entry in `placetype_data` that specifies the indefinite article using `entry_placetype_use_the` (principally for use with placetypes like `union territory`). # Otherwise, we use [[Module:en-utilities]] to apply the standard algorithm to generate `"an"` for words beginning with a vowel and `"a"` otherwise. If `ucfirst` is true, the first letter of the article is made upper-case. ]==] function export.get_placetype_article(placetype, ucfirst) local art local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if type(canon) == "table" then art = canon.article end end if art == false then return art end if art == nil then local placetype_use_the = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "entry_placetype_use_the") end) if placetype_use_the then art = "the" else art = export.get_placetype_prop(placetype, "entry_placetype_indefinite_article") if not art then art = require(en_utilities_module).get_indefinite_article(placetype) end end end if ucfirst then art = m_strutils.ucfirst(art) end return art end --[==[ Return the preposition that should be used after `placetype` when occurring as an entry placetype or in categories (e.g. `city >in< France` but `country >of< South America`). The preposition defaults to `"in"` if not specified. ]==] function export.get_placetype_entry_preposition(placetype) local pt_prep = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "preposition") end ) return pt_prep or "in" end --[==[ Given a place desc (see top of file) and a holonym object (see top of file), add a key/value into the place desc's `holonyms_by_placetype` field corresponding to the placetype and placename of the holonym. For example, corresponding to the holonym "c/Italy", a key "country" with the list value {"Italy"} will be added to the place desc's `holonyms_by_placetype` field. If there is already a key with that place type, the new placename will be added to the end of the value's list. ]==] function export.key_holonym_into_place_desc(place_desc, holonym) if not holonym.placetype then return end -- Key in equivalent placetypes, so that e.g. `cities/San Francisco` gets keyed under `city`; but don't do -- fallbacks, as it doesn't seem correct for the "do other holonyms of the same placetype" algorithm to do holonyms -- of different types just because they have the same fallback. local equiv_placetypes = export.get_placetype_equivs(holonym.placetype, {no_fallback = true}) local unlinked_placename = holonym.unlinked_placename for _, equiv in ipairs(equiv_placetypes) do local placetype = equiv.placetype if not place_desc.holonyms_by_placetype then place_desc.holonyms_by_placetype = {} end if not place_desc.holonyms_by_placetype[placetype] then place_desc.holonyms_by_placetype[placetype] = {unlinked_placename} else insert(place_desc.holonyms_by_placetype[placetype], unlinked_placename) end end end --[=[ Construct a formatted link from the raw link spec `link` given the canonical singular placetype `sg_placetype`. If the placetype was originally plural, `orig_placetype` should contain this plural value; otherwise it should be nil. This will construct the appropriate type of link that displays as `orig_placetype` (or otherwise `sg_placetype`) but links to whatever the `link` spec specifies (which may be `sg_placetype`, a Wikipedia article, etc.). `ptdata` is the placetype data structure for the placetype, and `from_category` indicates that we are generating the description of a category (otherwise we are generating the display form of an entry placetype). ]=] local function make_placetype_link(link, sg_placetype, orig_placetype, ptdata, from_category, noerror) if not from_category and ptdata.disallow_in_entries then if noerror then return "[not meant to be specified directly, with warning: " .. ptdata.disallow_in_entries .. "]" else process_error("Placetype %s is not meant to be specified directly: " .. ptdata.disallow_in_entries, sg_placetype) end end if link == nil then internal_error("Placetype data present for placetype %s but no link= setting given", sg_placetype) elseif link == true then if orig_placetype then return ("[[%s|%s]]"):format(sg_placetype, orig_placetype) else return ("[[%s]]"):format(sg_placetype) end elseif link == false then process_error("Placetype %s is not meant to be specified directly, but is only for internal use", sg_placetype) elseif link == "w" then return ("[[w:%s|%s]]"):format(sg_placetype, orig_placetype or sg_placetype) elseif link == "separately" then if orig_placetype then local sg_words = split(sg_placetype, " ") local orig_words = split(orig_placetype, " ") if #sg_words ~= #orig_words then internal_error("Can't construct 'separately' link for plural placetype %s as original placetype %s " .. "has different number of words", orig_placetype, sg_placetype) else for i = 1, #sg_words do if sg_words[i] == orig_words[i] then sg_words[i] = ("[[%s]]"):format(sg_words[i]) else sg_words[i] = ("[[%s|%s]]"):format(sg_words[i], orig_words[i]) end end return concat(sg_words, " ") end else return (sg_placetype:gsub("([^ ]+)", "[[%1]]")) end elseif link:find("^%+") then link = link:sub(2) -- discard initial + return ("[[%s|%s]]"):format(link, orig_placetype or sg_placetype) elseif not orig_placetype then return link else return require(en_utilities_module).pluralize(link) end end --[==[ Get the display form of a placetype by looking it up in `placetype_data`. If the placetype is recognized, or is the plural of a recognized placetype, the corresponding linked display form is returned (with plural placetypes displaying as plural but linked to the singular form of the placetype). Otherwise, return nil. If we're generating the description of a category, `category_type` should be set to one of `"top-level"` (for top-level categories like [[:Category:Neighborhoods]]), `"noncity"` (for non-city categories like [[:Category:Neighborhoods in Illinois, USA]]) or `"city"` (for city categories like [[:Category:Neighborhoods of Chicago]]). Otherwise, we're generating the description for use in formatting a {{tl|place}} call, and category-only placetypes ending in `!` will be ignored, along with special `category_link*` settings. `return_full` is used along with `category_type` and will preferably return the "full" variant of category link settings, i.e. `full_category_link*`; if they don't exist, the `category_link*` value is prepended with `"names of"`. `noerror` says to not throw an error when encountering entry placetypes that would be disallowed. ]==] function export.get_placetype_display_form(placetype, category_type, return_full, noerror) local from_category = not not category_type local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if canon_placetype then local raw_link local function is_linked_string(str) return type(str) == "string" and str:find("%[%[") end if category_type then local fetched_full local function fetch_maybe_full(prop) local retval = ptdata["full_" .. prop] if retval ~= nil then if return_full then return retval, true else internal_error("Saw full_" .. prop .. "=%s but `return_full` not set, can't handle", retval) end end return ptdata[prop], false end local function maybe_prefix(str) if return_full and not fetched_full then return "names of " .. str else return str end end -- Careful with `false` as possible value. if category_type == "top-level" then raw_link, fetched_full = fetch_maybe_full("category_link_top_level") elseif category_type == "noncity" then raw_link, fetched_full = fetch_maybe_full("category_link_before_noncity") elseif category_type == "city" then raw_link, fetched_full = fetch_maybe_full("category_link_before_city") else internal_error('Unrecognized value for `category_type` %s, should be "top-level", "noncity" or "city"', category_type) end if type(raw_link) == "string" then return maybe_prefix(raw_link), ptdata elseif raw_link ~= nil then return raw_link, ptdata end raw_link, fetched_full = fetch_maybe_full("category_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end if ptmatch == "plural" then raw_link, fetched_full = fetch_maybe_full("plural_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end end if raw_link == nil then raw_link, fetched_full = fetch_maybe_full("link") end if raw_link == false then return raw_link, ptdata end return maybe_prefix(make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror)), ptdata else if ptmatch == "plural" then raw_link = ptdata.plural_link if raw_link == false then process_error("Placetype %s cannot appear plural", placetype) end if is_linked_string(raw_link) then return raw_link, ptdata end end if raw_link == nil then raw_link = ptdata.link end return make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror), ptdata end end return nil end local function resolve_unlinked_placename_display_aliases(placetype, placename) local equiv_placetypes = export.get_placetype_equivs(placetype) for i, equiv in ipairs(equiv_placetypes) do equiv_placetypes[i] = equiv.placetype end local all_display_aliases_found = {} local all_others_found = {} for group, key, spec in m_locations.iterate_matching_location { placetypes = equiv_placetypes, placename = placename, alias_resolution = "display", } do if spec.alias_of and spec.display then insert(all_display_aliases_found, {group, key, spec, spec.display_as_full}) else insert(all_others_found, {group, key, spec}) end end if not all_display_aliases_found[1] then return placename elseif all_display_aliases_found[2] then internal_error("Found multiple matching display aliases for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) elseif all_others_found[1] then internal_error("Found a display alias along with other possible meanings for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) else local group, key, spec, as_full = unpack(all_display_aliases_found[1]) local full, elliptical = m_locations.key_to_placename(group, key) return as_full and full or elliptical end end --[==[ If `placename` of type `placetype` is a display alias, convert it to its canonical form; otherwise, return unchanged. Display aliases transform certain placenames into canonical displayed forms. For example, if any of `country/US`, `country/USA` or `country/United States of America` (or `c/US`, etc.) are given, the result will be displayed as `United States`. '''NOTE''': Display aliases change what is displayed from what the editor wrote in the Wikitext. As a result, they should (a) be non-political in nature, and (b) not involve a change where the word `the` needs to be added or removed. For example, normalizing `US` and `USA` to `United States` for display purposes is OK but normalizing `Burma` to `Myanmar` is not (instead a cat alias should be used) because the terms `Burma` and `Myanmar` have clear political connotations. Similarly, we have a display alias that maps the old name of `Macedonia` as a country (but not a region!) to `North Macedonia`, but `Republic of Macedonia` is mapped to `North Macedonia` only as a cat alias because the two terms differ in their use of `the`. (For example, if we had a display alias mapping `Republic of Macedonia` to `North Macedonia`, the call {{tl|place|en|the <<capital city>> of the <<c/Republic of Macedonia>>}} would wrongly display as `the [[capital city]] of the [[North Macedonia]]`.) Generally, display normalizations tend to involve alternative forms (e.g. abbreviations, ellipses, foreign spellings) where the normalization improves clarity and consistency. ]==] function export.resolve_placename_display_aliases(placetype, placename) -- If the placename is a link, apply the alias inside the link. -- This pattern matches both piped and unpiped links. If the link is not piped, the second capture (linktext) will -- be empty. local link, linktext = rmatch(placename, "^%[%[([^|%[%]]+)|?([^|%[%]]-)%]%]$") if link then if linktext ~= "" then local alias = resolve_unlinked_placename_display_aliases(placetype, linktext) return "[[" .. link .. "|" .. alias .. "]]" else local alias = resolve_unlinked_placename_display_aliases(placetype, link) return "[[" .. alias .. "]]" end else return resolve_unlinked_placename_display_aliases(placetype, placename) end end --[==[ Generate the "prefixed" version of a bare key, i.e. prefix it with `the` if correct for this key. ]==] function export.get_prefixed_key(key, spec) if spec.the then return "the " .. key else return key end end -- Necessary for use by [[Module:place]]. FIXME: Reorganize the modules so this isn't necessary. export.iterate_matching_location = m_locations.iterate_matching_location --[=[ Iterator that iterates over holonyms in `place_desc`. If `first_holonym_index` is given, start iterating at the specified holonym and stop either when there are no more holonyms or a holonym with modifier `:also` is found. If `first_holonym_index` is nil or omitted, iterate over all holonyms regardless. If `include_raw_text_holonyms` is specified, raw text holonyms (those not of the form `placetype/placename`) are returned as well; they can be identified by the fact that the `placetype` field in the holonym structure is nil. Two values are returned at each iteration, the holonym index and holonym structure, similar to `ipairs()`. ]=] function export.get_holonyms_to_check(place_desc, first_holonym_index, include_raw_text_holonyms) local stop_at_also = not not first_holonym_index return function(place_desc, index) while true do index = index + 1 local this_holonym = place_desc.holonyms[index] -- If we were passed in a starting holonym index, go up to but not including a holonym marked with `:also` -- (continue_cat_loop); the categorization code will then restart the loop at that holonym. That holonym -- will have `:also` marked on it, so make sure not to stop immediately if the first holonym is marked with -- `:also`. if not this_holonym or stop_at_also and index > first_holonym_index and this_holonym.continue_cat_loop then return nil end -- If not placetype, we're processing raw text, which we normally want to skip. if include_raw_text_holonyms or this_holonym.placetype then return index, this_holonym end end end, place_desc, first_holonym_index and first_holonym_index - 1 or 0 end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, iterate over all such known locations, returning for each location the corresponding key, spec and group as well as the trail of ancestral containers. Unlike `iterate_matching_location()`, this specifically checks that there is no mismatch between the location's containers at any level and any of the following holonyms in the {{tl|place}} spec. The fields in `data` are: * `holonym_placetype`: The placetype of the holonym. It can actually be a list of possible placetypes, as with `iterate_matching_location()`. * `holonym_placename`: The placename of the holonym. * `holonym_index`: The index of the holonym among the holonyms in `place_desc`, or nil if the holonym is not among the holonyms in `place_desc`. (If a holonym index is given, we check for container mismatches among the holonyms following the specified index, stopping either when encountering a holonym marked with modifier `:also` or, if none exist, when we run out of holonyms. If no holonym index is given, we check all holonyms for container mismatches.) * `place_desc`: Description of the place; used for the holonyms, to check for container mismatches. Returns four values: the location group, the canonical key by which the location is known, the spec object describing the location and the trail of ancestral containers for the location. The first three values are the same as for `iterate_matching_location`. ]==] function export.iterate_matching_holonym_location(data) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc local matching_location_iterator = m_locations.iterate_matching_location { placetypes = holonym_placetype, placename = holonym_placename, } return function() while true do local group, key, spec = matching_location_iterator() if not group then return nil end local container_trail = {} -- For each level of container, check that there are no mismatches (i.e. other location of the same -- placetype) mentioned. We allow a mismatch at a given level if there's also a match with the container -- at that level. For example, in the case of Kansas City, defined in [[Module:place/locations]] as a city -- in Missouri, if we define it as {{tl|place|city|s/Missouri,Kansas}}, we ignore the mismatching state of -- Kansas because the correct state of Missouri was also mentioned. But imagine we are defining Newark, -- Delaware as {{tl|place|city|s/Delaware|c/US}} and (as is the case) we have an entry for Newark, New -- Jersey in [[Module:place/locations]]. Just because the containing location `US` matches isn't enough, -- because Newark, NJ also has New Jersey as a containing location and there's a mismatch at that level. If -- there are no mismatches at any level we assume we're dealing with the right known location. -- -- If at a given level there are multiple containing locations, we count a match if any holonym matches any -- containing location, and a mismatch only if a holonym exists of the same placetype that doesn't match any -- containing location. local containers_mismatch = false for containers in m_locations.iterate_containers(group, key, spec) do insert(container_trail, containers) local match_at_level = false local mismatch_at_level = false for other_holonym_index, other_holonym in export.get_holonyms_to_check(place_desc, holonym_index and holonym_index + 1 or nil) do local other_source_holonym = other_holonym.augmented_from_holonym if other_source_holonym and other_source_holonym.placetype == holonym_placetype and other_source_holonym.unlinked_placename ~= holonym_placename then -- Ignore holonyms added during the augmentation process for other holonyms of the same -- placetype as the placetype of the holonym we're considering. See comment in -- augment_holonyms_with_container() for why we do this. -- continue; grrr, no 'continue' in Lua else local holonym_matches_at_level = false local holonym_exists_with_same_placetype = false for _, container in ipairs(containers) do if not container.spec.no_check_holonym_mismatch then local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) local placetypes = container.spec.placetype if type(placetypes) ~= "table" then placetypes = {placetypes} end local placetype_equivs = {} for _, pt in ipairs(placetypes) do m_table.extend(placetype_equivs, export.get_placetype_equivs(pt)) end local this_holonym_matches = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype and (other_holonym.unlinked_placename == full_container_placename or other_holonym.unlinked_placename == elliptical_container_placename) end ) if this_holonym_matches then holonym_matches_at_level = true break end local this_holonym_exists_with_same_placetype = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype end ) if this_holonym_exists_with_same_placetype then -- We seem to have a mismatch at this level. But before we decide conclusively that this -- is the case, check to see whether the putative mismatch is an alias and matches when -- we resolve the alias. for oh_group, oh_key, oh_spec, oh_container_trail in export.iterate_matching_holonym_location { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = place_desc, } do local oh_full_placename, oh_elliptical_placename = m_locations.key_to_placename(oh_group, oh_key) if oh_full_placename == full_container_placename or oh_elliptical_placename == elliptical_container_placename then -- Alias matched when resolved. this_holonym_matches = true break end end if this_holonym_matches then -- Alias matched above when resolved. holonym_matches_at_level = true break else -- Not an alias, or doesn't match when resolved. We have a true mismatch. holonym_exists_with_same_placetype = true end end end end if holonym_matches_at_level then match_at_level = true break end if holonym_exists_with_same_placetype then mismatch_at_level = true end end end if not match_at_level and mismatch_at_level then containers_mismatch = true break end end if not containers_mismatch then return group, key, spec, container_trail end end end end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, find and return the corresponding key, spec and group as well as the trail of ancestral containers. This is like `iterate_matching_holonym_location()` but throws an error if more than one location matches. (An example where this would happen is {{tl|place|en|neighborhood|city/Newcastle}}, because there are two known locations named Newcastle. To fix this, specify additional following disambiguating holonyms, e.g. {{tl|place|en|neighborhood|city/Newcastle|s/New South Wales}}. ]==] function export.find_matching_holonym_location(data) local all_found = {} for group, key, spec, container_trail in export.iterate_matching_holonym_location(data) do insert(all_found, {group, key, spec, container_trail}) end if not all_found[1] then return nil elseif all_found[2] then local holonym_placetype = data.holonym_placetype if type(holonym_placetype) == "table" then holonym_placetype = concat(holonym_placetype, ",") end local found_keys = {} for _, found in ipairs(all_found) do local _, key, _, _ = unpack(found) insert(found_keys, key) end error(("Found multiple matching locations for holonym '%s/%s'; specify disambiguating context in the " .. "containing holonyms: %s"):format(holonym_placetype, data.holonym_placename, dump(found_keys))) else return unpack(all_found[1]) end end ------------------------------------------------------------------------------------------ -- Placename and placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: This is a map from aliases to their canonical forms. Any placetypes appearing as keys here will be mapped to their canonical forms in all respects, including the display form. Contrast entries in 'placetype_data' with a fallback, which applies to categorization and other processes but not to display. The most important aliases are for holonym placetypes, particularly those that occur often such as "country", "state", "province" and the like. Particularly long placetypes that mostly occur as entry placetypes (e.g. "census-designated place") can be given abbreviations, but it is generally preferred to spell out the entry placetype. Note also that we purposely avoid certain abbreviations that would be ambiguous (e.g. "d", which could variously be interpreted as "department", "district" or "division"). ]==] export.placetype_aliases = { ["acomm"] = "autonomous community", ["adr"] = "administrative region", ["adterr"] = "administrative territory", -- Pakistan ["aobl"] = "autonomous oblast", ["aokr"] = "autonomous okrug", ["ap"] = "autonomous province", ["apref"] = "autonomous prefecture", ["aprov"] = "autonomous province", ["ar"] = "autonomous region", ["arch"] = "archipelago", ["arep"] = "autonomous republic", ["aterr"] = "autonomous territory", ["atu"] = "autonomous territorial unit", ["bor"] = "borough", ["c"] = "country", ["can"] = "canton", ["carea"] = "council area", ["cc"] = "constituent country", ["cdblock"] = "community development block", ["cdep"] = "Crown dependency", ["CDP"] = "census-designated place", ["cdp"] = "census-designated place", ["clcity"] = "county-level city", ["co"] = "county", ["cobor"] = "county borough", ["colcity"] = "county-level city", ["coll"] = "collectivity", ["comm"] = "community", ["cont"] = "continent", ["contr"] = "continental region", ["contregion"] = "continental region", ["cpar"] = "civil parish", ["damun"] = "direct-administered municipality", ["dep"] = "dependency", ["department capital"] = "departmental capital", ["dept"] = "department", ["depterr"] = "dependent territory", ["dist"] = "district", ["distmun"] = "district municipality", ["div"] = "division", ["emp"] = "empire", ["fpref"] = "French prefecture", ["gov"] = "governorate", ["govnat"] = "governorate", ["home-rule city"] = "home rule city", ["home-rule municipality"] = "home rule municipality", ["inner-city area"] = "inner city area", ["ires"] = "Indian reservation", ["isl"] = "island", ["lbor"] = "London borough", ["lga"] = "local government area", ["lgarea"] = "local government area", ["lgd"] = "local government district", ["lgdist"] = "local government district", ["metbor"] = "metropolitan borough", ["metcity"] = "metropolitan city", ["metmun"] = "metropolitan municipality", ["mtn"] = "mountain", ["mun"] = "municipality", ["mundist"] = "municipal district", ["nonmetropolitan county"] = "non-metropolitan county", ["obl"] = "oblast", ["okr"] = "okrug", ["p"] = "province", ["par"] = "parish", ["parmun"] = "parish municipality", ["pen"] = "peninsula", ["plcity"] = "prefecture-level city", ["plcolony"] = "Polish colony", ["pref"] = "prefecture", ["prefcity"] = "prefecture-level city", ["preflcity"] = "prefecture-level city", ["prov"] = "province", ["r"] = "region", ["range"] = "mountain range", ["rcm"] = "regional county municipality", ["rcomun"] = "regional county municipality", ["rdist"] = "regional district", ["rep"] = "republic", ["rhrom"] = "rural hromada", ["riv"] = "river", ["rmun"] = "regional municipality", ["robor"] = "royal borough", ["romp"] = "Roman province", ["runit"] = "regional unit", ["rurmun"] = "rural municipality", ["s"] = "state", ["sar"] = "special administrative region", ["shrom"] = "settlement hromada", ["spref"] = "subprefecture", ["sprefcity"] = "sub-prefectural city", ["sprovcity"] = "subprovincial city", ["submet city"] = "sub-metropolitan city", ["submetropolitan city"] = "sub-metropolitan city", ["sub-prefecture-level city"] = "sub-prefectural city", ["sub-provincial city"] = "subprovincial city", ["sub-provincial district"] = "subprovincial district", ["terr"] = "territory", ["terrauth"] = "territorial authority", ["twp"] = "township", ["twpmun"] = "township municipality", ["uauth"] = "unitary authority", ["ucomm"] = "unincorporated community", ["udist"] = "unitary district", ["uhrom"] = "urban hromada", ["uterr"] = "union territory", ["utwpmun"] = "united township municipality", ["val"] = "valley", ["vdc"] = "village development committee", ["vil"] = "village", ["voi"] = "voivodeship", ["wcomm"] = "Welsh community", -- Chinese capital/seat types ["首都"] = "capital", ["省會"] = "provincial capital", ["首府"] = "regional capital", ["縣治"] = "county seat", -- Chinese placetype name aliases (map to English equivalents so they inherit preposition, display handler, etc.) ["國家"] = "country", ["構成國"] = "constituent country", ["大洲"] = "continent", ["洲"] = "continent", ["大陸"] = "continent", ["帝國"] = "empire", ["共和國"] = "republic", ["邦"] = "state", ["州"] = "state", ["省"] = "province", ["郡"] = "county", ["縣"] = "county", ["城市"] = "city", ["市"] = "city", ["區"] = "district", ["鄉"] = "township", ["鎮"] = "town", ["村"] = "village", ["社區"] = "community", ["島"] = "island", ["島嶼"] = "island", ["群島"] = "archipelago", ["半島"] = "peninsula", ["山"] = "mountain", ["山脈"] = "mountain range", ["河"] = "river", ["河流"] = "river", ["谷"] = "valley", ["山谷"] = "valley", ["特別行政區"] = "special administrative region", ["直轄市"] = "direct-administered municipality", ["地級市"] = "prefecture-level city", ["縣級市"] = "county-level city", ["副省級市"] = "subprovincial city", ["副地級市"] = "sub-prefectural city", ["市轄區"] = "municipal district", ["自治區"] = "autonomous region", ["自治省"] = "autonomous province", ["自治州"] = "autonomous prefecture", ["自治共和國"] = "autonomous republic", ["自治市"] = "borough", ["屬地"] = "dependent territory", ["海外領地"] = "dependent territory", ["領地"] = "territory", ["聯邦屬地"] = "union territory", ["皇家屬地"] = "Crown dependency", ["教區"] = "parish", ["堂區"] = "parish", ["民政教區"] = "civil parish", ["廣域市"] = "metropolitan city", ["非建制地區"] = "unincorporated community", ["人口普查指定地區"] = "census-designated place", ["印第安保留地"] = "Indian reservation", ["羅馬行省"] = "Roman province", ["單一管理區"] = "unitary authority", ["地方行政區"] = "local government area", } local no_link_def_article = {link = false, article = "the"} local no_link_no_article = {link = false, article = false} --[==[ var: These qualifiers can be prepended onto any placetype and will be handled correctly. For example, the placetype `large city` will be displayed as `large <nowiki>[[city]]</nowiki>` and categorized as if `city` were specified. If the value in the following table is a string, the qualifier will display according to the string. If the value is `true`, the qualifier will be linked to its corresponding Wiktionary entry. If the value is `false`, the qualifier will not be linked but will appear as-is. Note that these qualifiers do not override placetypes with entries elsewhere that contain those same qualifiers. For example, the entry for `inland sea` in `placetype_data` will apply in preference to treating `inland sea` as equivalent to `sea`. ]==] export.placetype_qualifiers = { -- generic qualifiers ["huge"] = false, ["tiny"] = false, ["large"] = false, ["big"] = false, ["mid-size"] = false, ["mid-sized"] = false, ["small"] = false, ["sizable"] = false, ["important"] = false, ["long"] = false, ["short"] = false, ["major"] = false, ["minor"] = false, ["high"] = false, ["tall"] = false, ["low"] = false, ["left"] = false, -- left tributary ["right"] = false, -- right tributary ["modern"] = false, -- for use in opposition to "ancient" in another definition -- "former" qualifiers ["abandoned"] = true, ["ancient"] = true, ["deserted"] = true, ["extinct"] = true, ["former"] = false, ["historic"] = "historical", ["historical"] = true, ["medieval"] = true, ["mediaeval"] = true, ["ruined"] = true, ["traditional"] = true, -- sea qualifiers ["coastal"] = true, ["inland"] = true, -- note, we also have an entry in placetype_data for 'inland sea' to get a link to [[inland sea]] ["maritime"] = true, ["overseas"] = true, ["seaside"] = true, ["beachfront"] = true, ["beachside"] = true, ["riverside"] = true, -- lake qualifiers ["freshwater"] = true, ["saltwater"] = true, ["endorheic"] = true, ["oxbow"] = true, ["ox-bow"] = "[[oxbow]]", -- [[ox-bow]] is a red link ["tidal"] = true, -- land qualifiers ["hilltop"] = true, ["hilly"] = true, ["insular"] = true, ["peninsular"] = true, ["chalk"] = true, ["karst"] = true, ["limestone"] = true, ["mountainous"] = true, ["mountaintop"] = true, ["alpine"] = true, ["volcanic"] = true, -- for an island -- political status qualifiers ["autonomous"] = true, ["incorporated"] = true, ["special"] = true, ["unincorporated"] = true, ["coterminous"] = true, -- monetary status/etc. qualifiers ["fashionable"] = true, ["wealthy"] = true, ["affluent"] = true, ["declining"] = true, -- city vs. rural qualifiers ["urban"] = true, ["suburban"] = true, ["exurban"] = true, ["outlying"] = true, ["remote"] = true, ["rural"] = true, ["outback"] = true, ["inner"] = false, ["inner-city"] = true, ["central"] = false, ["outer"] = false, -- land use qualifiers ["residential"] = true, ["agricultural"] = true, ["business"] = true, ["commercial"] = true, ["industrial"] = true, -- business use qualifiers ["railroad"] = true, ["railway"] = true, ["farming"] = true, ["fishing"] = true, ["mining"] = true, ["logging"] = true, ["cattle"] = true, -- tourism use qualifiers ["resort"] = true, -- note, we also have 'resort city' and 'resort town', that take precedecne ["spa"] = true, -- note, we also have 'spa city' and 'spa town', that take precedecne ["ski"] = true, -- note, we also have 'ski resort city' and 'ski resort town', that take precedecne -- religious qualifiers ["holy"] = true, ["sacred"] = true, ["religious"] = true, ["secular"] = true, -- qualifiers for nonexistent places ["claimed"] = false, ["fictional"] = true, ["legendary"] = true, ["mythical"] = true, ["mythological"] = true, -- directional qualifiers ["northern"] = false, ["southern"] = false, ["eastern"] = false, ["western"] = false, ["north"] = false, ["south"] = false, ["east"] = false, ["west"] = false, ["northeastern"] = false, ["southeastern"] = false, ["northwestern"] = false, ["southwestern"] = false, ["northeast"] = false, ["southeast"] = false, ["northwest"] = false, ["southwest"] = false, -- seasonal qualifiers ["summer"] = true, -- e.g. for 'summer capital' ["winter"] = true, -- legal status qualifiers -- FIXME: Two-word qualifiers don't work yet. But you can enter "de-facto" and it's canonicalized to [[de facto]]. ["official"] = true, ["unofficial"] = true, ["de facto"] = true, -- 'de facto capital' ["de-facto"] = "[[de facto]]", -- [[de-facto]] is a red link ["de jure"] = true, -- 'de jure capital' ["de-jure"] = "[[de jure]]", -- [[de-jure]] is a red link -- NOTE: 'unrecognized/unrecognised' are handled as placetypes 'unrecognized country', 'unrecognized state' -- misc. qualifiers ["planned"] = true, ["chartered"] = true, ["landlocked"] = true, ["uninhabited"] = true, -- superlative qualifiers ["first"] = no_link_def_article, ["second"] = no_link_def_article, -- for "second largest" etc. ["third"] = no_link_def_article, ["fourth"] = no_link_def_article, ["last"] = no_link_def_article, ["only"] = no_link_def_article, ["sole"] = no_link_def_article, ["main"] = no_link_def_article, ["largest"] = no_link_def_article, ["biggest"] = no_link_def_article, ["smallest"] = no_link_def_article, ["shortest"] = no_link_def_article, ["longest"] = no_link_def_article, ["tallest"] = no_link_def_article, ["highest"] = no_link_def_article, ["lowest"] = no_link_def_article, ["leftmost"] = no_link_def_article, ["rightmost"] = no_link_def_article, ["innermost"] = no_link_def_article, ["outermost"] = no_link_def_article, ["northernmost"] = no_link_def_article, ["southernmost"] = no_link_def_article, ["westernmost"] = no_link_def_article, ["easternmost"] = no_link_def_article, ["northwesternmost"] = no_link_def_article, ["southwesternmost"] = no_link_def_article, ["northeasternmost"] = no_link_def_article, ["southeasternmost"] = no_link_def_article, -- several/various ["several"] = no_link_no_article, ["various"] = no_link_no_article, ["numerous"] = no_link_no_article, ["multiple"] = no_link_no_article, ["many"] = no_link_no_article, ["other"] = no_link_no_article, } --[==[ var: In this table, the key qualifiers should be treated the same as the value qualifiers for categorization purposes. This is overridden by `placetype_data` and `qualifier_to_placetype_equivs`. ]==] export.former_qualifiers = { ["abandoned"] = {"FORMER"}, ["ancient"] = {"ANCIENT", "FORMER"}, ["former"] = {"FORMER"}, ["extinct"] = {"FORMER"}, ["historic"] = {"FORMER"}, ["historical"] = {"FORMER"}, ["medieval"] = {"ANCIENT", "FORMER"}, ["mediaeval"] = {"ANCIENT", "FORMER"}, ["ruined"] = {"ANCIENT", "FORMER"}, ["traditional"] = {"FORMER"}, } --[==[ var: In this table, any placetypes containing these qualifiers that do not occur in `placetype_data` should be mapped to the specified placetypes for categorization purposes. Entries here are overridden by `placetype_data`. ]==] export.qualifier_to_placetype_equivs = { ["fictional"] = "fictional location", ["legendary"] = "mythological location", ["mythical"] = "mythological location", ["mythological"] = "mythological location", -- For e.g. Taiwan as a "claimed province" of China; parts of Belize as claimed by Guatemala; various islands -- claimed by various parties in East Asia. FIXME: We should conditionalize on what is being claimed since there are -- also claimed capitals, e.g. Israel and Palestine claim Jerusalem as their capital. ["claimed"] = "claimed political division", } --[==[ var: Mapping from placetypes to the corresponding plural category-only placetype for a capital of that placetype. The reverse mapping also exists. ]==] export.placetype_to_capital_cat = { ["autonomous community"] = "autonomous community capitals", ["canton"] = "cantonal capitals", ["comarca"] = "comarca capitals", ["country"] = "national capitals", -- The following are not obviously different from 'county seats' but the latte terminology is used in the US. ["county"] = "county capitals", ["department"] = "departmental capitals", ["district"] = "district capitals", ["division"] = "division capitals", ["emirate"] = "emirate capitals", ["governorate"] = "governorate capitals", ["hromada"] = "hromada capitals", ["krai"] = "krai capitals", ["metropolitan city"] = "metropolitan city capitals", ["municipality"] = "municipal capitals", ["oblast"] = "oblast capitals", ["okrug"] = "okrug capitals", ["prefecture"] = "prefectural capitals", ["province"] = "provincial capitals", ["raion"] = "raion capitals", ["regency"] = "regency capitals", ["region"] = "regional capitals", ["regional unit"] = "regional unit capitals", ["republic"] = "republic capitals", ["state"] = "state capitals", ["territory"] = "territorial capitals", ["voivodeship"] = "voivodeship capitals", } --[==[ var: This contains placenames that should be preceded by an article (almost always "the"). '''NOTE''': There are multiple ways that placenames can come to be preceded by "the": # Listed here. # Given in [[Module:place/locations]] with an initial "the". All such placenames are added to this map by the code just below the map. # The placetype of the placename has `holonym_use_the = true` in its placetype_data. # A regex in placename_the_re matches the placename. Note that "the" is added only before the first holonym in a place description. ]==] export.placename_article = { -- This should only contain info that can't be inferred from [[Module:place/locations]]. ["archipelago"] = { ["Cyclades"] = "the", ["Dodecanese"] = "the", }, ["country"] = { ["Holy Roman Empire"] = "the", }, ["empire"] = { ["Holy Roman Empire"] = "the", }, ["island"] = { ["North Island"] = "the", ["South Island"] = "the", }, ["region"] = { ["Balkans"] = "the", ["Russian Far East"] = "the", ["Caribbean"] = "the", ["Caucasus"] = "the", ["Middle East"] = "the", ["New Territories"] = "the", ["North Caucasus"] = "the", ["South Caucasus"] = "the", ["West Bank"] = "the", ["Gaza Strip"] = "the", }, ["valley"] = { ["San Fernando Valley"] = "the", }, } --[==[ var: Regular expressions to apply to determine whether we need to put 'the' before a holonym. The key "*" applies to all holonyms, otherwise only the regexes for the holonym's placetype apply. ]==] export.placename_the_re = { -- We don't need entries for peninsulas, seas, oceans, gulfs or rivers -- because they have holonym_use_the = true. ["*"] = {"^Isle of ", " Islands$", " Mountains$", " Empire$", " Country$", " Region$", " District$", "^City of "}, ["bay"] = {"^Bay of "}, ["lake"] = {"^Lake of "}, ["country"] = {"^Republic of ", " Republic$"}, ["republic"] = {"^Republic of ", " Republic$"}, ["region"] = {" [Rr]egion$"}, ["river"] = {" River$"}, ["local government area"] = {"^Shire of "}, ["county"] = {"^Shire of "}, ["Indian reservation"] = {" Reservation", " Nation"}, ["tribal jurisdictional area"] = {" Reservation", " Nation"}, } --[==[ var: If any of the following holonyms are present, the associated holonyms are automatically added to the end of the list of holonyms for categorization (but not display) purposes. ]==] export.cat_implications = { ["region"] = { ["東歐"] = {"continent/歐洲"}, ["中歐"] = {"continent/歐洲"}, ["西歐"] = {"continent/歐洲"}, ["南歐"] = {"continent/歐洲"}, ["北歐"] = {"continent/歐洲"}, ["東北歐"] = {"continent/歐洲"}, ["東南歐"] = {"continent/歐洲"}, ["北高加索"] = {"continent/歐洲"}, ["南高加索"] = {"continent/亞洲"}, ["南亞"] = {"continent/亞洲"}, ["東亞"] = {"continent/亞洲"}, ["中亞"] = {"continent/亞洲"}, ["西亞"] = {"continent/亞洲"}, ["東南亞"] = {"continent/亞洲"}, ["北亞"] = {"continent/亞洲"}, ["安納托利亞"] = {"continent/亞洲"}, ["小亞細亞"] = {"continent/亞洲"}, ["美索不達米亞"] = {"continent/亞洲"}, ["北非"] = {"continent/非洲"}, ["中非"] = {"continent/非洲"}, ["西非"] = {"continent/非洲"}, ["東非"] = {"continent/非洲"}, ["南非"] = {"continent/非洲"}, ["中美洲"] = {"continent/中美洲"}, ["加勒比地區"] = {"continent/北美洲"}, ["玻里尼西亞"] = {"continent/大洋洲"}, ["密克羅尼西亞"] = {"continent/大洋洲"}, ["美拉尼西亞"] = {"continent/大洋洲"}, ["西伯利亞"] = {"country/俄羅斯", "continent/亞洲"}, ["俄羅斯遠東地區"] = {"country/俄羅斯", "continent/亞洲"}, ["南威爾斯"] = {"constituent country/威爾斯", "continent/歐洲"}, ["巴爾幹半島"] = {"continent/歐洲"}, ["約旦河西岸"] = {"country/巴勒斯坦", "continent/亞洲"}, ["加薩"] = {"country/巴勒斯坦", "continent/亞洲"}, ["加薩走廊"] = {"country/巴勒斯坦", "continent/亞洲"}, } } ------------------------------------------------------------------------------------------ -- Category and display handlers -- ------------------------------------------------------------------------------------------ local function city_type_cat_handler(data) local entry_placetype = data.entry_placetype local generic_before_non_cities = export.get_placetype_prop(entry_placetype, "generic_before_non_cities") if not generic_before_non_cities then internal_error("city_type_cat_handler called on placetype %s that doesn't have a `generic_before_non_cities`" .. " setting", entry_placetype) end local plural_entry_placetype = export.pluralize_placetype(entry_placetype) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and not spec.is_city then -- ZH: "法國的城市" (location_key + 的 + zh_placetype_name) local zh_name_raw = export.get_zh_placetype_name(entry_placetype) local zh_entry_name = zh_name_raw and export.format_zh_name(zh_name_raw) or plural_entry_placetype local de = export.zh_strings.de_particle local retcats = {export.get_prefixed_key(key, spec) .. de .. zh_entry_name} if container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_entry_name) end end return retcats end end local function capital_city_cat_handler(data, non_city) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc -- The first time we're called we want to return something; otherwise we will be called for later-mentioned -- holonyms, which can result in wrongly classifying into e.g. `National capitals`. Simulate the loop in -- find_placetype_cat_specs() over holonyms so we get the proper `Cities in ...` categories as well as the capital -- category/categories we add below. local retcats if not non_city and place_desc.holonyms then for h_index, holonym in export.get_holonyms_to_check(place_desc, holonym_index) do local h_placetype, h_placename = holonym.placetype, holonym.unlinked_placename retcats = city_type_cat_handler { entry_placetype = "city", holonym_placetype = h_placetype, holonym_placename = h_placename, holonym_index = h_index, place_desc = place_desc, } if retcats then break end end end if not retcats then retcats = {} end -- Now find the appropriate capital-type category for the placetype of the holonym, e.g. 'State capitals'. If we -- recognize the holonym among the known holonyms in [[Module:place/locations]], also add a category like 'State -- capitals of the United States'. Truncate e.g. 'autonomous region' to 'region', 'union territory' to 'territory' -- when looking up the type of capital category, if we can't find an entry for the holonym placetype itself (there's -- an entry for 'autonomous community'). -- ZH: look up Chinese capital label by holonym placetype ("首都", "省會", "首府", etc.) local zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype] if not zh_capital_name then zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype:gsub("^.* ", "")] end local de = export.zh_strings.de_particle if zh_capital_name then local inserted_specific_variant_cat = false if holonym_index then -- Now find the first recognized holonym location. We don't stop when :also is seen because of the common pattern -- where we use :also to specify that a given city is the capital at multiple surrounding levels. local matching_group, matching_key, matching_spec, matching_container_trail, matching_holonym_index for h_index = holonym_index, #place_desc.holonyms do if place_desc.holonyms[h_index].placetype then matching_group, matching_key, matching_spec, matching_container_trail = export.find_matching_holonym_location { holonym_placetype = place_desc.holonyms[h_index].placetype, holonym_placename = place_desc.holonyms[h_index].unlinked_placename, holonym_index = h_index, place_desc = place_desc, } if matching_group then matching_holonym_index = h_index break end end end if matching_holonym_index == holonym_index then if matching_container_trail[1] and not matching_spec.no_container_cat then for _, container in ipairs(matching_container_trail[1]) do -- ZH: "美國的首都" (location_key + 的 + zh_capital_name) insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_capital_name) inserted_specific_variant_cat = true end end elseif matching_holonym_index then -- Check to make sure that the holonym placetype we were called on is listed among the -- divtypes of the location we found. local function insert_specific_variant_if_possible(key, spec) return export.get_equiv_placetype_prop(holonym_placetype, function(pt) local plural_holonym_placetype = export.pluralize_placetype(pt) local saw_matching_div if spec.divs then local divs = spec.divs if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) ~= "table" then div = {type = div} end if plural_holonym_placetype == div.type then saw_matching_div = true break end end end if saw_matching_div then insert(retcats, export.get_prefixed_key(key, spec) .. de .. zh_capital_name) return true end return false end) end if insert_specific_variant_if_possible(matching_key, matching_spec) then inserted_specific_variant_cat = true elseif not matching_spec.no_container_cat then for _, containers in ipairs(matching_container_trail) do local saw_no_container_cat = false for _, container in ipairs(containers) do if insert_specific_variant_if_possible(container.key, container.spec) then inserted_specific_variant_cat = true break end saw_no_container_cat = saw_no_container_cat or container.spec.no_container_cat end if inserted_specific_variant_cat or saw_no_container_cat then break end end end end else -- This happens when in an invocation like {{place|en|capital city|s/Haryana,Punjab}} for -- [[Chandigarh]]. We fall back to older code that doesn't depend on the holonym index existing. -- FIXME: This may not be necessary. In the example just given, when processing Haryana we add to -- [[:Category:en:State capitals of India]], and nothing extra gets added when processing Punjab. -- Possibly we can just skip this case entirely. local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_capital_name) inserted_specific_variant_cat = true end end end if not inserted_specific_variant_cat then insert(retcats, zh_capital_name) end else -- We didn't recognize the holonym placetype; fall back to generic capital label. insert(retcats, "首都") end return retcats end --[=[ This is invoked specially for all placetypes (see the `*` placetype key at the bottom of `placetype_data`). This is used in two ways: # To add pages to generic holonym categories like [[:Category:en:Places in Merseyside, England]] (and [[:Category:en:Places in England]]) for any pages that have `co/Merseyside` as their holonym. # To categorize demonyms in bare placename categories like [[:Category:en:Merseyside, England]] if the demonym description mentions `co/Merseyside` and doesn't mention a more specific placename that also has a category. (In this case there are none, but we can have demonyms at multiple levels, e.g. in France for individual villages, departments, administrative regions, and for the entire country, and for example we only want to categorize a demonym into [[:Category:France]] if no more specific category applies.) Unlike when invoked from {{tl|place}}, a demonym invocation only adds the most specific holonym category and not the category of any containing polity (hence if we add [[:Category:en:Merseyside, England]] we won't also add [[:Category:England]]). This code also handles cities; e.g. for the first use case above, it would be used to add a page that has `city/Boston` as a holonym to [[:Category:en:Places in Boston]], along with [[:Category:en:Places in Massachusetts, USA]] and [[:Category:en:Places in the United States]]. The city handler tries to deal with the possibility of multiple cities having the same name. For example, the code in [[Module:place/locations]] knows about the city of [[Columbus]], [[Ohio]], which has containing polities `Ohio` (a state) and `the United States` (a country). If either containing polity is mentioned, the handler proceeds to return the key `Columbus` (along with `Ohio, USA` and `the United States`). Otherwise, if any other state or country is mentioned, the handler returns nothing, and otherwise it assumes the mentioned city is the one we're considering and returns `Columbus` etc. This works correctly if the place only mentions Ohio and a holonym for a Columbus in a different country is encountered, because of the function `augment_holonyms_with_container`, which adds the US as a holonym when Ohio is encountered. The single parameter `data` is as in category handlers. The return value is a list of categories (without the preceding language code). ]=] local function generic_place_cat_handler(data) local from_demonym = data.from_demonym local retcats = {} local function insert_retkey(key, spec) if from_demonym then insert(retcats, key) else -- ZH: "法國地名" (location_key + 地名) insert(retcats, export.get_prefixed_key(key, spec) .. "地名") end end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then if not spec.no_generic_place_cat then -- This applies to continents and continental regions. insert_retkey(key, spec) end -- Categorize both in key, and in the larger location(s) that the key is part of, e.g. [[Hirakata]] goes in -- both [[Category:Places in Osaka Prefecture, Japan]] and [[Category:Places in Japan]]. But not when -- no_container_cat is set (e.g. for 'United Kingdom'). if not spec.no_container_cat then for _, container_set in ipairs(container_trail) do local stop_adding_containers = false for _, container in ipairs(container_set) do if not container.spec.no_generic_place_cat then insert_retkey(container.key, container.spec) end if container.spec.no_container_cat then stop_adding_containers = true end end if stop_adding_containers then break end end end return retcats end end --[==[ Special category handler run for all placetypes that checks for specified division placetypes of known locations and categorizes appropriately. ]==] function export.political_division_cat_handler(data) if data.from_demonym then return end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then local divlists = {} if spec.divs then insert(divlists, spec.divs) end if spec.addl_divs then insert(divlists, spec.addl_divs) end for _, divlist in ipairs(divlists) do if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local sgdiv = export.maybe_singularize_placetype(div.type) or div.type local prep = div.prep or "of" local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" then cat_as = {cat_as} end if not export.placetype_data[sgdiv] then internal_error("Placetype %s associated with known location key %s and data %s not found in " .. "`placetype_data`", sgdiv, key, spec) end if sgdiv == data.entry_placetype then -- ZH: "臺灣的縣" format (location_key + 的 + zh_name); ignore cat_as grouping local zh_n_raw = export.get_zh_placetype_name(data.entry_placetype) local zh_n = zh_n_raw and export.format_zh_name(zh_n_raw) or ucfirst(data.entry_placetype) return {export.get_prefixed_key(key, spec) .. export.zh_strings.de_particle .. zh_n} end end end end end --[==[ This is used to add pages to "bare" categories like [[:Category:en:Georgia, USA]] for `[[Georgia]]` and any foreign-language terms that are translations of the state of Georgia. We look at the page title (or its overridden value in {{para|pagename}}) as well as the glosses in {{para|t}}/{{para|t2}} etc., various extra-info values such as the modern names in {{para|modern}}, and any values specified using a form-of directive. We need to pay attention to the entry placetypes specified so we don't overcategorize; e.g. the US state of Georgia is `[[Джорджия]]` in Russian but the country of Georgia is `[[Грузия]]`, and if we just looked for matching names, we'd get both Russian terms categorized into both [[:Category:ru:Georgia, USA]] and [[:Category:ru:Georgia]]. We also need to check the containing holonyms to make sure there isn't a mismatch (so we don't e.g. categorize Newark, Delaware in [[:Category:en:Newark]], which is intended for Newark, New Jersey). ]==] function export.get_bare_categories(args, overall_place_spec) local bare_cats = {} local place_descs = overall_place_spec.descs local possible_placetypes_by_place_desc = {} for i, place_desc in ipairs(place_descs) do possible_placetypes_by_place_desc[i] = {} for _, placetype in ipairs(place_desc.placetypes) do if not export.placetype_is_ignorable(placetype) then local equivs = export.get_placetype_equivs(placetype, {register_former_as_non_former = true}) for _, equiv in ipairs(equivs) do insert(possible_placetypes_by_place_desc[i], equiv.placetype) end end end end local function check_term(term) -- Treat Wikipedia links like local ones. term = term:gsub("%[%[w:", "[["):gsub("%[%[wikipedia:", "[[") term = export.remove_links_and_html(term) term = term:gsub("^the ", "") for i, place_desc in ipairs(place_descs) do -- Iterate over all matching locations in case there are multiple, as with Delhi defined as -- {{place|en|megacity/and/union territory|c/India|containing the national capital [[New Delhi]]}}. for group, key, spec, container_trail in export.iterate_matching_holonym_location { holonym_placetype = possible_placetypes_by_place_desc[i], holonym_placename = term, place_desc = place_desc, } do insert(bare_cats, key) end end end -- FIXME: Should we only do the following if the language is English (requires that the lang is passed in)? -- We should always do it if `pagename` is given (as it is with {{tcl}}) but maybe not otherwise unless 1=en. There -- are cases like [[Ankara]] = English name for capital of Turkey, but also the name in various languages for the -- capital of Ghana (= English [[Accra]]). But this should get caught by mismatching the containing country. The -- advantage of checking when the language isn't English is we catch those places that fail to give an English -- translation but where the translation happens to be the same as the other-language spelling. However, I don't -- know how often this situation occurs. check_term(args.pagename or mw.loadData("Module:headword/data").pagename) for _, t in ipairs(args.t) do check_term(t) end local function check_termobj_list(terms) for _, term in ipairs(terms) do if term.eq then check_term(term.eq) end if term.alt or term.term then check_term(term.alt or term.term) end end end for _, extra_info_terms in ipairs(overall_place_spec.extra_info) do local arg = extra_info_terms.arg if arg == "modern" or arg == "now" or arg == "full" or arg == "short" then check_termobj_list(extra_info_terms.terms) end end for _, directive in ipairs(overall_place_spec.directives) do check_termobj_list(directive.terms) end return bare_cats end --[==[ This is used to augment the holonyms associated with a place description with the containing polities. For example, given the following: `# {{tl|place|en|subprefecture|pref/Hokkaido}}.` We auto-add Japan as another holonym so that the term gets categorized into [[:Category:Subprefectures of Japan]]. To avoid over-categorizing we need to check to make sure no other countries are specified as holonyms. ]==] function export.augment_holonyms_with_container(place_descs) for _, place_desc in ipairs(place_descs) do if place_desc.holonyms then -- This ends up containing a copy of the original holonyms, with the augmented holonyms inserted in their -- appropriate position. We don't just put them at the end because some holonyms have use the `:also` -- modifier, which causes category processing to restart at that point after generating categories for a -- preceding holonym, and we don't want the preceding holonym's augmented holonyms interfering with -- categorization of a later holonym. We proceed from right to left, and each time we augment, we copy -- the holonyms with the augmented holonym(s) inserted appropriately and replace the place description's -- holonyms with the augmented ones before the next iteration. The reason for this is so that e.g. -- {{place|neighborhood|city/Birmingham|co/West Midlands|cc/England}} doesn't throw an error during the -- augmentation process due to 'Birmingham' referring to two known locations (in England and Alabama). If -- we go left to right, we will throw an ambiguity error on `city/Birmingham` because code to exclude -- Birmingham, Alabama needs `c/United Kingdom` present (to cause a mismatch with `c/United States`), -- which isn't yet present as the augmentation code hasn't gotten to `cc/England` yet. For similar -- reasons, we need to include the augmented holonyms in the holonyms considered in the next iteration -- rather than modifying the place description once at athe end. for i = #place_desc.holonyms, 1, -1 do local holonym = place_desc.holonyms[i] if holonym.placetype and not export.placetype_is_ignorable(holonym.placetype) then local group, key, spec, container_trail = export.find_matching_holonym_location { holonym_placetype = holonym.placetype, holonym_placename = holonym.unlinked_placename, holonym_index = i, place_desc = place_desc, } if group and container_trail[1] and not spec.no_auto_augment_container then local augmented_holonyms = {} for j = 1, i do insert(augmented_holonyms, place_desc.holonyms[j]) end for _, containers in ipairs(container_trail) do local any_no_auto_augment_container = false for _, container in ipairs(containers) do any_no_auto_augment_container = any_no_auto_augment_container or container.spec.no_auto_augment_container local containing_type = container.spec.placetype if type(containing_type) == "table" then -- If the containing type is a list, use the first element as the canonical variant. containing_type = containing_type[1] end local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) -- Don't side-effect holonyms while processing them. local new_holonym = { -- By the time we run, the display has already been generated so we don't need to -- set display_placename. placetype = containing_type, -- placename_to_key() for the group should correctly handle both full and elliptical -- placenames, but the full placename seems less likely to be ambiguous. FIXME: We -- should just store the key directly and use it when available to avoid having to -- convert key to placename and back to key. unlinked_placename = full_container_placename, -- Indicate that this is an augmented holonym, and was derived from the specified -- holonym. In iterate_matching_holonym_location(), we ignore augmented holonyms -- derived from holonyms that are different from the holonym we're searching for but -- of the same placetype. This is to correctly handle a situation like -- {{place|river|dept/Ardèche,Gard,Vaucluse,Bouches-du-Rhône|c/France}}. Here, -- `Ardèche` is in `r/Auvergne-Rhône-Alpes`, while `Gard` is in `r/Occitania` and -- the other two are in `r/Provence-Alpes-Côte d'Azur`. Augmenting proceeds from -- right to left, so after it adds `r/Provence-Alpes-Côte d'Azur` to -- `Bouches-du-Rhône`, Vaucluse gets augmented correctly but `Gard` fails to match -- in find_matching_holonym_location() because of the mismatch between augmented -- `r/Provence-Alpes-Côte d'Azur` and actual `r/Occitania`. Similarly, all later -- calls to find_matching_holonym_location() fail to match `Gard` (and likewise -- `Ardèche`) against any known location. To deal with this, we mark augmented -- holoynms as being augmented due to a source holonym, and when processing a given -- holonym, ignore augmented holonyms from other holonyms of the same placetype. -- The restriction to the same placetype is so that `Birmingham` still gets -- correctly disambiguated to Birmingham, England in the example given above near -- the top of this function, using the augmented holonym `c/United Kingdom` added by -- the specified `cc/England` (whose placetype `constituent country` differs from -- the placetype `city` of Birmingham). augmented_from_holonym = holonym, } insert(augmented_holonyms, new_holonym) -- But it is safe to modify other parts of the place_desc. export.key_holonym_into_place_desc(place_desc, new_holonym) end if any_no_auto_augment_container then break end end for j = i + 1, #place_desc.holonyms do insert(augmented_holonyms, place_desc.holonyms[j]) end place_desc.holonyms = augmented_holonyms end end end end end end -- Cat handler for district, areas, neighborhoods and suburbs. Districts are tricky because they can either be political -- divisions or city neighborhoods. Areas similarly can be political divisions (rarely; specifically, in Kuwait), city -- neighborhoods or larger geographical areas/regions. We handle this as follows: -- (1) `placetype_data` cat entries for specific countries or country divisions take precedence over cat_handlers, so if -- the user says {{tl|place|district|s/Maharashtra|c/India}}, we won't even be called because there is an entry that -- categorizes into [[:Category|Districts of Maharashtra, India]]. -- (2) If we're called, we check the holonym we're called on to see if it is a recognized city, e.g. if we're called -- using {{tl|place|district|city/Mumbai|s/Maharashtra|c/India}}. If so, we categorize under e.g. -- [[:Category:Neighbourhoods of Mumbai]]. (Choosing the spelling "neighbourhoods" because we're in India.) -- (3) If we're called and the holonym is not a recognized city, we check if the placetype has has_neighborhoods set. -- If so, it's "city-like" and we categorize under the first containing polity that we recognize. For example, if -- we're called using {{tl|place|district|town/Northampton|co/Hampshire|s/Massachusetts|c/US}}, we should recognize -- town as "city-like" and categorize under [[:Category:Neighborhoods in Massachusetts]]. (Note "in" not "of", and -- note the spelling "neighborhoods" because we're in the US.) -- (4) If the holonym is not city-like, we do nothing. If there's a city or city-like placetype farther up (e.g. we're -- called as {{tl|place|district|ward/Foo|mun/Bar|...}}), we will handle the city-like entity according to (2) or -- (3) when called on that holonym. Otherwise either the categorization in (1) takes place or there's no -- categorization. local function district_neighborhood_cat_handler(data) local function get_plural_entry_placetype(location_spec, container_trail) if data.entry_placetype == "suburb" then return "Suburbs" else -- Check for `british_spelling` setting on the spec itself or any container. local uses_british_spelling = location_spec.british_spelling if uses_british_spelling == nil and container_trail then for _, container_set in ipairs(container_trail) do local must_outer_break = false for _, container in ipairs(container_set) do if container.spec.british_spelling ~= nil then uses_british_spelling = container.spec.british_spelling must_outer_break = true break end end if must_outer_break then break end end end return uses_british_spelling and "Neighbourhoods" or "Neighborhoods" end end -- First check the immediate holonym to see if it's a city or a city-like top-level entity (Hong Kong, Bonaire, -- etc.) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and spec.is_city then return {get_plural_entry_placetype(spec, container_trail) .. " of " .. export.get_prefixed_key(key, spec)} end -- If the entry placetype is neighbo(u)rhood, assume it is a neighborhood even if there isn't a city-like -- entity father up the chain. (E.g. due to a mistaken use of m/ instead of mun/ for municipality.) local has_neighborhoods local entry_placetype = data.entry_placetype if entry_placetype == "neighborhood" or entry_placetype == "neighbourhood" or entry_placetype == "suburb" then has_neighborhoods = true else -- Otherwise, make sure the current holonym is city-like. has_neighborhoods = export.get_equiv_placetype_prop(data.holonym_placetype, function(pt) return export.get_placetype_prop(pt, "has_neighborhoods") end, {continue_on_nil_only = true}) end if has_neighborhoods then -- Loop up the holonyms, looking for city and city-like entities in case of e.g. [[Sepulveda]] written -- {{place|en|neighborhood|valley/San Fernando Valley|city/Los Angeles|s/California|c/USA}} -- but also look for a recognizable poldiv, and if so categorize as "Neighborhoods in POLDIV". We need -- to start with the current holonym, which is especially important for neighborhoods and suburbs that -- may have the first holonym be a recognizable province, etc. but can't hurt otherwise. (Previously -- we skipped the first/current holonym.) for other_holonym_index, other_holonym in export.get_holonyms_to_check(data.place_desc, data.holonym_index) do local other_holonym_data = { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = data.place_desc, } local group, key, spec, container_trail = export.find_matching_holonym_location(other_holonym_data) if group and not spec.is_former_place then return {get_plural_entry_placetype(spec, container_trail) .. (spec.is_city and " of " or " in ") .. export.get_prefixed_key(key, spec)} end end end end function export.check_already_seen_string(holonym_placename, already_seen_strings) local canon_placename = ulower(m_links.remove_links(holonym_placename)) if type(already_seen_strings) ~= "table" then already_seen_strings = {already_seen_strings} end for _, already_seen_string in ipairs(already_seen_strings) do if canon_placename:find(already_seen_string) then return true end end return false end -- Prefix display handler that adds a prefix such as "Metropolitan Borough of " to the display -- form of holonyms. We make sure the holonym doesn't contain the prefix or some variant already. -- We do this by checking if any of the strings in ALREADY_SEEN_STRINGS, either a single string or -- a list of strings, or the prefix if ALREADY_SEEN_STRINGS is omitted, are found in the holonym -- placename, ignoring case and links. If the prefix isn't already present, we create a link that -- uses the raw form as the link destination but the prefixed form as the display form, unless the -- holonym already has a link in it, in which case we just add the prefix. local function prefix_display_handler(prefix, holonym_placename, already_seen_strings) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(prefix)) then return holonym_placename end if holonym_placename:find("%[%[") then return prefix .. " " .. holonym_placename end return prefix .. " [[" .. holonym_placename .. "]]" end -- Suffix display handler that adds a suffix such as " parish" to the display form of holonyms. -- Works identically to prefix_display_handler but for suffixes instead of prefixes. local function suffix_display_handler(suffix, holonym_placename, already_seen_strings, include_suffix_in_link) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(suffix)) then return holonym_placename end if holonym_placename:find("%[%[") then return holonym_placename .. " " .. suffix end if include_suffix_in_link then return "[[" .. holonym_placename .. " " .. suffix .. "]]" else return "[[" .. holonym_placename .. "]] " .. suffix end end -- Display handler for boroughs. New York City boroughs are display as-is. Others are suffixed -- with "borough". local function borough_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.new_york_boroughs[unlinked_placename] then -- Hack: don't display "borough" after the names of NYC boroughs return holonym_placename end return suffix_display_handler("borough", holonym_placename) end local function county_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) -- Display handler for Irish counties. Irish counties are displayed as e.g. "County [[Cork]]". if m_locations.ireland_counties["County " .. unlinked_placename .. ", Ireland"] or m_locations.northern_ireland_counties["County " .. unlinked_placename .. ", Northern Ireland"] then return prefix_display_handler("County", holonym_placename) end -- Display handler for Taiwanese counties. Taiwanese counties are displayed as e.g. "[[Chiayi]] County". if m_locations.taiwan_counties[unlinked_placename .. " County, Taiwan"] then return suffix_display_handler("County", holonym_placename) end -- Display handler for Romanian counties. Romanian counties are displayed as e.g. "[[Cluj]] County". if m_locations.romania_counties[unlinked_placename .. " County, Romania"] then return suffix_display_handler("County", holonym_placename) end -- FIXME, we need the same for US counties but need to key off the country, not the specific county. -- Others are displayed as-is. return holonym_placename end -- Display handler for prefectures. Japanese prefectures are displayed as e.g. "[[Fukushima]] Prefecture". -- Others are displayed as e.g. "[[Fthiotida]] prefecture". local function prefecture_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) local suffix = m_locations.japan_prefectures[unlinked_placename .. " Prefecture, Japan"] and "Prefecture" or "prefecture" return suffix_display_handler(suffix, holonym_placename) end -- Display handler for provinces of Bulgaria, Iran, Laos, North and South Korea, Thailand, Turkey and Vietnam. Recognized -- provinces are displayed as e.g. "[[Gyeonggi]] Province" or "[[Antalya]] Province". Others are displayed as-is. local function province_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.bulgaria_provinces[unlinked_placename .. "Province, Bulgaria"] or m_locations.iran_provinces[unlinked_placename .. " Province, Iran"] or m_locations.laos_provinces[unlinked_placename .. " Province, Laos"] or m_locations.north_korea_provinces[unlinked_placename .. " Province, North Korea"] or m_locations.south_korea_provinces[unlinked_placename .. " Province, South Korea"] or m_locations.thailand_provinces[unlinked_placename .. " Province, Thailand"] or m_locations.turkey_provinces[unlinked_placename .. " Province, Turkey"] or m_locations.vietnam_provinces[unlinked_placename .. " Province, Vietnam"] then return suffix_display_handler("Province", holonym_placename) end return holonym_placename end -- Display handler for Nigerian states. Nigerian states are display as "[[Kano]] State". Others are displayed as-is. local function state_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.nigeria_states[unlinked_placename .. " State, Nigeria"] then return suffix_display_handler("State", holonym_placename) end return holonym_placename end -- Display handler for voivodeships. Display as e.g. [[Subcarpathian Voivodeship]]. local function voivodesip_display_handler(holonym_placetype, holonym_placename) return suffix_display_handler("Voivodeship", holonym_placename, nil, "include_suffix_in_link") end ------------------------------------------------------------------------------------------ -- Placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: Main placetype data structure. This specifies, for each canonicalized placetype, various properties. The keys are placetypes (in the singular, except for category-only placetypes, which are plural and followed by `!`), and the value is a table of properties. The `"*"` key is special and is used for adding "generic" categories of the form `Places in ``location`` `; it runs for all entry placetypes. Keys in the form of plural placetypes followed by `!` are used only in [[Module:category tree/topic cat/data/Places]] for specifying the properties of categories containing the specified placetype, esp. bare categories like [[:Category:States and territories]] (rather than qualified categories like [[:Category:States and territories of Australia]]). Keys under the value table for a given placetype of are two types: ''property keys'' (which specify the value of specific properties) and ''categorization keys'' (which tell how to categorize certain sorts of holonyms if the placetype in question occurs as an entry placetype). Categorization keys are either the special value `default` or are wildcard strings with a slash in them, such as `"country/*"`. Note that only wildcard strings are currently allowed directly in the placetype data; everything else is handled through category handlers, either per-placetype or special (such as `political_division_cat_handler`). The algorithm for how category keys and handlers are used to generate categories is described at the top of [[Module:place]]. There are several recognized property keys, of various types: 1. The following link-related property keys are recognized: * `link`: '''Required''' except in category-only placetypes ending in `!`. Describes how to link and display the placetype in the formatted description when occurring as an entry placetype. Also used for formatting pluralized placetypes (which may occur in entry placetypes, esp. new-format ones, such as `two <<islands>>`) and may occur in categories). The possible values are: *# `true`: Link to the same-named Wiktionary entry. This creates a raw link, e.g. `<nowiki>[[city]]</nowiki>`, which is converted to an English-specific link by JavaScript postprocessing. If the placetype is plural, this creates a two-part raw link e.g. `<nowiki>[[city|cities]]</nowiki>`. *# `"w"`: Link to the same-named Wikipedia entry. This creates a two-part link, e.g. `<nowiki>[[w:census town|census town]]</nowiki>`, or `<nowiki>[[w:census town|census towns]]</nowiki>` if the placetype is given plural. *# `"+..."`: Create a two-part link to the entry following the `+` sign. For example, if `cercle` specifies `"+w:cercles of Mali"`, a two-part link `<nowiki>[[w:cercles of Mali|cercle]]</nowiki>` will be generated, or `<nowiki>[[w:cercles of Mali|cercles]]</nowiki>` if plural `cercles` is specified. *# `"separately"`: Link each word separately. For example, if `administrative territory` specifies `"separately"`, it will be linked as `<nowiki>[[administrative]] [[territory]]</nowiki>`, or as `<nowiki>[[administrative]] [[territory|territories]]</nowiki>` if plural `administrative territories` is given. *# another string: Use that string directly. If the placetype is plural, `pluralize()` in [[Module:en-utilities]] is called on the string, which will correctly pluralize most strings, including those with links in them. (If there are multiple links, the display form of the last link is pluralized.) *# `false`: This placetype is not allowed as an entry placetype. An error will be thrown if this placetype is given as an entry placetype. This is specified for internal-use placetypes, especially placetypes used in conjunction with the qualifiers `former`, `ancient`, `historical` and such. * `plural_link`: If specified and the placetype is plural, use the value in place of generating a pluralized version of the link spec in `link`. Most commonly, this is either a string with links in it (which is used directly) or the value `false`, indicating that the placetype cannot occur plural. (This is used for example by `caplc`, which displays as `<nowiki>[[capital]] and [[large]]st [[city]]</nowiki>`, where a plural version doesn't make sense.) Generally if this is specified, `plural` also needs to be specified to give a special placetype plural; this situation occurs especially with multiword placetypes where something other than the last word is pluralized. An example is `town with bystatus`, whose plural is `towns with bystatus`, which needs to be explicitly given. This example uses `link = <nowiki>"[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>` ({{m|nb|bystatus}}) is a Norwegian Bokmål word, and template calls aren't currently permitted in link strings), along with `plural_link = <nowiki>"[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>`. * `category_link`: Spec indicating how to display the placetype when occurring in category descriptions. Defaults to the value of `link`, and in turn is overridden by more specific `category_link_*` keys; see below. Category-only placetypes (which are plural and end in `!`) usually use `category_link` in preference to `link`. The value of `category_link` can be any of the types of specs given above, but most commonly is a plural string with links in it, spelling out the description; in this case it is used directly. When both `category_link` and `link` are given, the value in `category_link` is typically longer and more descriptive. For example, `polity` uses `link = true`, which just generates a link `<nowiki>[[polity]]</nowiki>` or plural `<nowiki>[[polity|polities]]</nowiki>`, but specifies a separate `category_link = <nowiki>"[[independent]] or [[semi-]][[independent]] [[polity|polities]]"</nowiki>`, which clarifies in the category description what a polity is. * `category_link_top_level`: Spec indicating how to display top-level (bare/unqualified) categories, i.e. categories where the placetype is not followed by `in ``location`` ` or `of ``location`` `. If given, this overrides `category_link` for this type of category. * `category_link_before_noncity`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` does not refer to a city. If given, this overrides `category_link` for this type of category. * `category_link_before_city`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` refer to a city. If given, this overrides `category_link` for this type of category. An example where this is given is `neighborhood`, which uses the following specs:<ol> <li>`link = true`</li> <li>`category_link = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]"</nowiki>`</li> <li>`category_link_before_city = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions"</nowiki>`</li> </ol> This has the effect of making the entry placetype `neighborhood` display as just `<nowiki>[[neighborhood]]</nowiki>`, while e.g. a category like `Neighborhoods of Chicago` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[Chicago]], ...</nowiki>` and a category like `Neighborhoods in Illinois, USA` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]] in [[Illinois]], ...</nowiki>`. * `disallow_in_entries`: If specified, this placetype cannot occur as an entry placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. * `disallow_in_holonyms`: If specified, this placetype cannot occur as a holonym placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. 2. There is currently one fallback-related property key recognized: * `fallback`: If specified, its value is a placetype which will be used for categorization purposes if no categories get added using the placetype itself. As an example, `branch` sets a fallback of `river` but also sets `preposition = "of"`, meaning that {{tl|place|en|branch|riv/Mississippi}} displays as `a branch of the Mississippi` (whereas `river` itself uses the preposition `in`), but otherwise categorizes the same as `river`. A more complex example is `area`, which sets a fallback of `geographic and cultural area` and also sets a category handler that checks for cities or city-like entities (e.g. boroughs) occurring as holonyms and categorizes the toponym under [[:Category:Neighborhoods of CITY]] (for recognized cities) or otherwise [[:Category:Neighborhoods of POLDIV]] (for the nearest containing recognized location). In addition, `area` is set as a political division of Kuwait, meaning if `c/Kuwait` occurs as holonym, the toponym is categorized under [[:Category:Areas of Kuwait]]. If none of these categories trigger, the fallback of `geographic and cultural area` will take effect, and the toponym will be categorized as e.g. [[:Category:Geographic and cultural areas of England]]. 3. There is currently one property to control irregular plurals of placetypes: * `plural`: If specified, its value is the plural of the placetype. Otherwise, the default pluralization algorithm in [[Module:en-utilities]] applies (which correctly pluralizes most words, including those ending in `-y`, `-ch`, `-sh`, `-x`, etc.). The value of `plural` is also used when converting a pluralized placetype into its singular equivalent; for example, since the placetype `kibbutz` has `plural = "kibbutzim"`, the placetype `kibbutzim` will be recognized as a plural and singularized to `kibbutz`. For this reason, it's occasionally necessary to specify a `plural` value even when the default pluralization algorithm works correctly, if the default singularization algorithm won't correctly reverse the pluralization (as with `pass` and other terms ending in `-ss`). 4. The following property keys relate to generating categories for entry placetypes and specifying the parents of those categories: * `class`: The general class of placetype. This is used for various purposes: (a) to categorize placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical` (note that these placetypes are not all treated alike); (b) to determine the parent category of bare placetype categories (e.g. [[:Category:Villages]] for placetype `village`); (c) to determine whether to add a parent category `political divisions of specific countries` to qualified placetype categories (e.g. [[:Category:Villages in Mali]]). The possible values are: *# `polity`: a more-or-less sovereign/independent polity, such as a country, kingdom or empire. *# `subpolity`: a non-sovereign division of a polity, above the level of an individual settlement. *# `settlement`: a city or smaller equivalent, such as a village. This also includes administrative divisions of a settlement, such as wards and barangays. *# `non-admin settlement`: similar to a settlement but without administrative or political significance, such as an unincorporated community, farm or neighborhood. *# `capital`: a settlement that is a capital. A former capital is generally still in existence, just not the capital any more. *# `natural feature`: any non-man-made feature, such as a lake, mountain, island, ocean, etc. *# `man-made structure`: a man-made feature below the level of a neighborhood, such as a house, airport, university, metro station, park or the like. *# `geographic region`: a geographic or cultural region or area that has no administrative significance. These may vary greatly in size but typically have some sort of cultural significance (possibly historical). The `former`, `ancient`, etc. qualifier has no effect on the category of these placetypes. *# `generic place`: a place that isn't further qualified into any specific subtype. * `former_type`: The class of placetype used for categorizing placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical`. The possible values are the same as for `class` but with the addition of `dependent territory` (for colonies, protectorates and the like) and `!` (ignore the historical/former/ancient/etc. qualifier; used e.g. with `fictional location` and `mythological location`). If not specified, the value of `class` is used. When a qualifier such as `former`, `ancient`, `medieval` or `historical` is encountered (specifically, those in `former_qualifiers`), it is mapped using `former_qualifiers` to the appropriate internal qualifier or qualifiers (one or both of `ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified qualifiers), which is prepended to the value of `former_type` or `class` to form a placetype whose properties are looked up to determine how to categorize the toponym in question. For example, if `medieval village` is given, we map `medieval` to `ANCIENT` and `FORMER`, and `village` to its `class` of `settlement`, and enter the placetypes `ANCIENT settlement` and `FORMER settlement` (in that order) into the list of equivalent placetypes returned by `get_placetype_equivs`. In this case, there is an entry in `placetype_data` for `ANCIENT settlement`, so its default category spec `Ancient settlements` is used as the category. If on the other hand `medieval kingdom` is given, where `kingdom` has a `class` value `polity`, we first look up `ANCIENT polity`, see there is no entry in `placetype_data` for it, and then look up `FORMER polity`, which exists and has a default category spec `Former polities`, which is used as the category. Note that if the placetype following the "former" qualifier is recognized in `placetype_data` but has no `former_type` or `class` and no fallback with a `former_type` or `class` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like `former greenhouse` is specified and we don't have an entry for `greenhouse`), we just track the occurrence and end up not categorizing. * `bare_category_parent`: This specifies the first parent category of a bare placetype category named according to the placetype in question (e.g. [[:Category:Atolls]] for placetype `atoll`, or [[:Category:Named buildings]] for placetype `named buildings!`). If not specified, the first parent category is determined by the value of `class`, using the mapping `class_to_bare_category_parent` in [[Module:category tree/topic cat/data/Places]]. * `addl_bare_category_parents`: Extra parent categories to add a bare placetype category to (see `bare_category_parent` just above). * `bare_category_breadcrumb`: Breadcrumb for bare placetype categories. Also used as the sort key of `bare_category_parent` if it is a string. * `inherently_former`: If specified and the given placetype is used as an entry placetype, act as if `former` or `ancient` (depending on the value of `inherently_former`) were prefixed to the placetype. This is for placetypes that always refer to no-longer-existing entities, such as `satrapy` and `treaty port`. The value of `inherently_former` is a list of internal qualifiers (one or more of `ANCIENT` and/or `FORMER`), just as for `former_qualifiers`, and the implementation is the same. * `cat_handler`: Handler used to generate the categories to add a given toponym to, if its entry placetype is the placetype in question. Generally the `cat_handler` function checks the holonyms specified in order to determine which category or categories to generate. For example, `district_neighborhood_cat_handler` handles placetypes `district`, `neighborhood`, `subdivision`, `suburb` and the like, and either adds the toponym to a category like `Neighborhoods of ``city`` ` (if a recognized city is given as a holonym), or otherwise a category like `Neighborhoods in ``location`` ` (for the first recognized non-city location given as a holonym, if an unrecognized city or city-like entity is given before the recognized non-city). The algorithm that runs the category handlers iterates over holonyms from left to right, running the `cat_handler` function on each holonym in turn until one or more categories are returned; see below for more specifics. (Note that countries for which e.g. a `district` is a political division do not get the corresponding category added by the `district_neighborhood_cat_handler` function but by `political_division_cat_handler`.) `cat_handler` functions are called with one argument, `data`, describing the resolved entry placetype (i.e. after resolving placetype aliases and fallbacks) and the holonym being processed. The return value should be a list of category specs (categories minus the langcode prefix, with `+++` standing for the holonym key, or the value `true`, which stands for ` ``Placetypes`` in/of ``Holonym`` `, i.e. the pluralized placetype with the appropriate preposition as specified in `placetype_data`). `data` contains the following fields: ** `entry_placetype`: the resolved entry placetype for the entry placetype being processed (i.e. it will always have an entry in `placetype_data` but may not be the original placetype given by the user); ** `holonym_placetype` and `holonym_placename`: the holonym placetype and placename being processed; ** `holonym_index`: the index of the holonym being processed, or {nil} if we're handling an overriding holonym (FIXME: we will change the overriding holonym algorithm so there will be an index even when processing overriding holonyms); ** `place_desc`: a full description of the {{tl|place}} call, as specified at the top of [[Module:place]]; ** `from_demonym`: If set, we are called from [[Module:demonym]], triggered by {{tl|demonym-adj}} or {{tl|demonym-noun}}, instead of being triggered by {{tl|place}}. * `has_neighborhoods`: If `true`, the specified placetype is city-like. This is used in the `district_neighborhood_cat_handler` to determine whether to add a category such as `Neighborhoods in ``location`` `; see the section just above on `cat_handler`. 5. The following preposition-related property keys are recognized: * `preposition`: The preposition used after this placetype when it occurs as an entry placetype. Defaults to `"in"`. * `generic_before_non_cities`: If specified, the appropriate category description handler in [[Module:category tree/topic cat/data/Places]] will recognize categories of the form ` ``Placetype`` in/of ``location`` ` for the specified placetype and preposition, if ``location`` is a non-city. This is used to generate descriptions for categories added by category handlers and by explicit category specs in the placetype data. All placetypes that specify `generic_before_non_cities` or `generic_before_cities` *MUST* also specify a value for `class` so that the category tree code can determine whether it's a political or non-political division. * `generic_before_cities`: Like `generic_before_non_cities` but for locations referring to cities. 6. The following property keys control the auto-addition of affixes when formatting holonyms of a particular placetype: * `affix_type`: If specified, add the placetype as an affix before or after holonyms of this placetype. Possible values are: *# `"pref"` (the holonym will display as `(the) placetype of Holonym`, where `the` appears when the holonym directly follows an entry placetype); *# `"Pref"` (same as `"pref"` but the placetype is capitalized; each word is capitalized if there are multiple); *# `"suf"` (the holonym will display as `Holonym placetype`); *# `"Suf"` (the holonym will display as `Holonym Placetype`, i.e. same as `"suf"` but the placetype is capitalized). * `suffix`: String to use in place of the placetype itself when the placetype is displayed as a suffix after a holonym. Note that `suffix` can be used independently of `affix_type` because the user can also request a suffix explicitly using a syntax like `adr:suf/Occitania`, which will display as `Occitania region` because the placetype `administrative region` specifies `suffix = "region"`. * `prefix`: Like `suffix` but for use when the placetype is displayed as a prefix before the holonym. * `affix`: Like `suffix` and `prefix` but for use when the placetype is displayed as an affix either before or after the holonym. If both `suffix` or `prefix` and `affix` are given for a single placetype, `suffix` or `prefix` take precedence. * `no_affix_strings`: String or list of strings that, if they occur in the holonym, suppress the addition of any affix requested using `affix_type`. Defaults to the placetype itself. For example, `autonomous okrug` specifies `affix_type = "Suf"` so that `aokr/Nenets` displays as `Nenets Autonomous Okrug`, but also specifies `no_affix_strings = "okrug"` so that `aokr/Nenets Okrug` or `aokr/Nenets Autonomous Okrug` displays as specified, without a redundant `Autonomous Okrug` added. Matching is case-insensitive but whole-word. * `display_handler`: A function of two arguments, `holonym_placetype` and `holonym_placename` (specifying a holonym). Its return value is a string specifying the display form of the holonym. 7. The following property keys control the indefinite and definite articles used before entry placetypes and/or holonyms of the specified placetype. * `entry_placetype_use_the`: Use `"the"` before this placetype when it occurs as an entry placetype. * `entry_placetype_indefinite_article`: Indefinite article used before this placetype when it occurs as an entry placetype (usually `"a"`, specifically for placetypes beginning with u- that don't take the indefinite article `"an"`). Defaults to the appropriate indefinite article (`"a"` or `"an"` depending on whether the placetype begins with a vowel). Overridden by `entry_placetype_use_the`, and unlike for most properties, does not apply to equivalent placetypes (i.e. fallbacks or those formed by removing a qualifier from the beginning); only to the exact placetype specified. * `holonym_use_the`: Use `"the"` before holonyms of this placetype. '''NOTE:''' # The `link` property must be specified on all placetypes, except those ending in `!` (category-only placetypes), which must have either `link` or `category_link` specified. # Either the `class` or `former_type` property must be specified on all placetypes not ending in `!` that do not have a fallback (if a placetype has a fallback and omits the `class` and `former_type` properties, they are taken from the fallback). An internal error will result if a placetype has no `class` or `former_type` property derivable either directly or through a fallback, if an attempt is made to categorize a former/ancient/historical/etc. entity of this placetype. # It is possible to have multiple levels of fallback (e.g. `frazione` falls back to `hamlet`, which falls back to `village`). Fallback loops will cause an internal error. All placetypes specified as fallbacks must exist in `placetype_data` or an internal error occurs. ]==] export.placetype_data = { --[=[ If you need to sort the following, do this (using Vim): 1. Make sure all full-line comments are within the { ... } table, or are moved after and on the same line as single-line entries. 2. Make sure the table uses tabs everywhere for indent, and not spaces. 3. Mark the top of the table with `ma`, go to the bottom and execute the following two lines in sequence: :'a,.s/\n/\\n/g :s/\\n\(\t\[\)/\r\1/g The first command converts every newline to a literal `\n` sequence, so the whole thing becomes a single line, while the second command restores the newlines before the beginning of each entry. The effect is to convert all entries to a single line while not losing any information. (Potentially a negative lookahead could be used to do it all in one command.) 4. Execute the following to sort: :'a,.!perl -pe 's/^(\t\[")(.*?)(".*)$/$2 @@@ $1$2$3/' | sort -f | perl -pe 's/.*? @@@ //' Note that a simple `sort -f` (where `-f` means case-insensitive) would almost work, but it would sort "hill station" before "hill" and "county borough" before "county" because the space after e.g. "hill station" sorts before the quotation mark after e.g. "hill". The above command deals with this by extracting the key, prepending it followed by ` @@@ `, sorting, and then removing key (the classic decorate-sort-undecorate pattern). 5. Put the table back to multi-line format by marking the top of the table with `ma`, going to the bottom and executing :'a,.s/\\n/\r/g Note that for some reason, in order to get a match a newline in the left side of a replacement, you must use \n, but to insert a newline in the right sode of a replacement you must use \r. ]=] ["*"] = { link = false, cat_handler = generic_place_cat_handler, }, ["administrative atoll"] = { -- Maldives link = "+w:administrative divisions of the Maldives", preposition = "of", class = "subpolity", }, ["administrative capital"] = { link = "w", fallback = "capital city", }, ["administrative center"] = { link = "w", fallback = "non-city capital", }, ["administrative centre"] = { link = "w", fallback = "administrative center", }, ["administrative county"] = { link = "w", fallback = "county", }, ["administrative district"] = { link = "w", fallback = "district", }, ["administrative headquarters"] = { link = "separately", fallback = "administrative centre", }, ["administrative region"] = { link = true, preposition = "of", suffix = "region", -- but prefix is still "administrative region (of)" fallback = "region", class = "subpolity", }, ["administrative seat"] = { link = "w", fallback = "administrative centre", }, ["administrative territory"] = { link = "separately", preposition = "of", suffix = "territory", -- but prefix is still "administrative territory (of)" fallback = "territory", class = "subpolity", }, ["administrative unit"] = { -- Grrr, it's difficult to generalize about "administrative units". In Albania, "administrative unit" is an -- official term for a city-level division of municipalities; Wikipedia renders it using the more practical term -- "commune". In Pakistan, "administrative unit" is a collective term used to refer to all the different types -- of first-level divisions (four provinces, one federal territory, and two "disputed territories", i.e. Azad -- Kashmir and Gilgit-Balistan, that are variously described). For this reason, we set no fallback, but we need -- to include this so that it can be used as a placetype for Albania, categorizing as communes. link = "w", class = "subpolity", }, ["administrative village"] = { link = "w", preposition = "of", has_neighborhoods = true, class = "settlement", }, ["aimag"] = { -- used in Mongolia, Russia and China (Inner Mongolia); in Mongolia, equivalent to a province; -- in China, equivalent to a prefecture (below a province); in Russia, equivalent to a municipal district. link = "w", fallback = "prefecture", }, ["airport"] = { link = true, class = "man-made structure", default = {true}, }, ["alliance"] = { link = true, fallback = "confederation", }, ["archipelago"] = { link = true, fallback = "island", }, ["area"] = { link = true, preposition = "of", fallback = "geographic and cultural area", -- Areas can either be administrative divisions (specifically of Kuwait) or geographic areas. Assume the former -- when categorizing 'Areas' but the latter when handling e.g. 'historical area'. class = "subpolity", former_type = "geographic region", cat_handler = district_neighborhood_cat_handler, }, ["arm"] = { link = true, preposition = "of", class = "natural feature", default = {"海"}, }, ["arrondissement"] = { link = true, preposition = "of", -- FIXME!!! Grrrrr!!! In some countries, arrondissements are divisions of cities; in others, they are divisions -- of departments or provinces. Need to conditionalize on the country for both of the following. class = "subpolity", has_neighborhoods = true, }, ["associated province"] = { link = "separately", fallback = "province", }, ["atoll"] = { -- FIXME! Atolls are administrative divisions of the Maldives but natural features elsewhere. Need to -- conditionalize `class` on the country. See also `administrative atoll`. link = true, class = "natural feature", bare_category_parent = "islands", default = {true}, }, ["autonomous city"] = { link = "w", preposition = "of", fallback = "city", has_neighborhoods = true, }, ["autonomous community"] = { -- Spain; refers to regional entities, not village-like entities, as might be expected from "community" link = true, preposition = "of", class = "subpolity", }, ["autonomous island"] = { -- Comoros; seems like an administrative atoll of the Maldives. link = "+w:autonomous islands of Comoros", preposition = "of", class = "subpolity", }, ["autonomous oblast"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "oblast", class = "subpolity", }, ["autonomous okrug"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "okrug", class = "subpolity", }, ["autonomous prefecture"] = { link = true, fallback = "prefecture", }, ["autonomous province"] = { link = "w", fallback = "province", }, ["autonomous region"] = { link = "w", preposition = "of", fallback = "administrative region", -- "administrative region" sets an affix of "region" but we want to display as "Tibet Autonomous Region" -- if the user writes 'ar:Suf/Tibet'. affix = "autonomous region", }, ["autonomous republic"] = { link = "w", preposition = "of", class = "subpolity", }, ["autonomous territorial unit"] = { -- Moldova; only two of them, one for Gagauzia and one for Transnistria. link = "w", preposition = "of", class = "subpolity", }, ["autonomous territory"] = { link = "w", fallback = "dependent territory", }, ["bailiwick"] = { -- Jersey, etc. link = true, fallback = "polity", }, ["barangay"] = { -- Philippines link = true, class = "settlement", -- Barangays are formal administrative divisions of a city rather than informal neighborhoods, but can use -- some of the properties of a neighborhood. fallback = "neighborhood", }, ["barrio"] = { -- Spanish-speaking countries; Philippines link = true, -- FIXME: Not completely correct, in some countries barrios are formal administrative divisions of a city. -- `class` will need to conditionalize on the country to be completely correct. fallback = "neighborhood", }, ["basin"] = { link = true, fallback = "lake", }, ["bay"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["beach"] = { link = true, class = "natural feature", addl_bare_category_parents = {"water"}, default = {true}, }, ["beach resort"] = { link = "w", fallback = "resort town", }, ["bishopric"] = { link = true, fallback = "polity", }, ["bodies of water!"] = { -- FIXME: This is (maybe?) a type category not a name category. There should be an option for this. We need to -- straighten out the type vs. name vs. related-to issue. category_link = "[[body of water|bodies of water]]", class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems", "water"}, }, ["borough"] = { link = true, preposition = "of", display_handler = borough_display_handler, has_neighborhoods = true, -- "former borough" could be a former settlement or a former part of a city but seems more likely to -- be a former subpolity, particularly in England. FIXME, we really need a handler to take care of this -- properly. class = "subpolity", -- Grr, some boroughs are city-like but some (e.g. in Britain) may be larger. }, ["borough seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["branch"] = { link = true, preposition = "of", fallback = "river", }, ["bridge"] = { link = true, class = "man-made structure", default = {"具名橋樑"}, }, ["building"] = { link = true, class = "man-made structure", default = {"具名建築物"}, }, ["built-up area"] = { link = "w", fallback = "area", }, ["burgh"] = { link = true, fallback = "borough", }, ["business park"] = { link = true, fallback = "park", }, ["caliphate"] = { link = true, fallback = "polity", }, ["canton"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["cape"] = { link = true, fallback = "headland", }, ["capital"] = { link = true, fallback = "capital city", }, ["capital city"] = { link = true, category_link = "[[capital city|capital cities]]: the [[seat of government|seats of government]] for a country or [[political]] [[division]] of a country", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", bare_category_parent = "cities", cat_handler = capital_city_cat_handler, default = {true}, -- The following is necessary so that e.g. [[Melbourne]] defined as {{place|en|capital city|s/Victoria|c/Australia}} -- gets categorized in the bare category [[Category:en:Melbourne]]; otherwise placetype 'capital city' wouldn't -- match against the placetype 'city' of Melbourne. fallback = "city", }, ["caplc"] = { link = "[[capital]] and [[large]]st [[city]]", plural_link = false, fallback = "capital city", }, ["captaincy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["caravan city"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"ANCIENT", "FORMER"}, }, ["castle"] = { link = true, fallback = "building", }, ["cathedral city"] = { link = true, fallback = "city", }, ["cattle station"] = { -- Australia link = true, fallback = "farm", }, ["census area"] = { link = true, affix_type = "Suf", has_neighborhoods = true, class = "non-admin settlement", }, ["census-designated place"] = { -- United States link = true, class = "non-admin settlement", }, ["census division"] = { -- Canada link = "w", preposition = "of", class = "subpolity", }, ["census town"] = { link = "w", fallback = "town", }, ["central business district"] = { link = true, fallback = "neighborhood", }, ["cercle"] = { -- Mali link = "+w:cercles of Mali", preposition = "of", class = "subpolity", }, ["ceremonial county"] = { link = true, fallback = "county", }, ["chain of islands"] = { link = "[[chain]] of [[island]]s", plural = "chains of islands", plural_link = "[[chain]]s of [[island]]s", fallback = "island", }, ["channel"] = { link = true, fallback = "strait", }, ["charter community"] = { -- Northwest Territories, Canada link = "w", fallback = "village", }, ["city"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["city-state"] = { link = true, category_link = "[[sovereign]] [[microstate]]s consisting of a single [[city]] and [[w:dependent territory|dependent territories]]", has_neighborhoods = true, class = "settlement", ["continent/*"] = {"城邦", "+++的市", "+++國家", "首都"}, default = {"城邦", "城市", "國家", "首都"}, }, ["civil parish"] = { -- Mostly England; similar to municipalities link = true, preposition = "of", affix_type = "suf", has_neighborhoods = true, class = "subpolity", }, ["claimed political division"] = { link = "[[claim]]ed [[political]] [[division]]", class = "subpolity", default = {true}, }, ["co-capital"] = { link = "[[co-]][[capital]]", fallback = "capital city", }, ["coal city"] = { link = "+w:coal town", fallback = "city", }, ["coal town"] = { link = "w", fallback = "town", }, ["collectivity"] = { link = "w", preposition = "of", -- No default; these are weird one-off governmental divisions in France (esp. for overseas collectivities) class = "subpolity", }, ["colony"] = { link = true, fallback = "dependent territory", }, ["comarca"] = { -- per Wikipedia: traditional region or local administrative division found in Portugal, Spain, and some of -- their former colonies, like Brazil, Nicaragua, and Panama. In the Valencian Community, for example, it -- sits between municipalities and provinces, something like a county or district. link = true, preposition = "of", class = "subpolity", }, ["commandery"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["commonwealth"] = { link = true, preposition = "of", -- No default; applies specifically to Puerto Rico class = "subpolity", }, ["commune"] = { link = true, fallback = "municipality", }, ["community"] = { link = true, category_link = "[[community|communities]] of all sizes", fallback = "village", }, ["community development block"] = { -- in India; appears to be similar to a rural municipality; groups several villages, unclear if there will be -- neighborhoods so I'm not setting `has_neighborhoods` for now link = "w", affix_type = "suf", no_affix_strings = "block", class = "subpolity", }, ["comune"] = { -- Italy, Switzerland link = true, fallback = "municipality", }, ["condominium"] = { link = true, fallback = "polity", }, ["confederacy"] = { link = true, fallback = "confederation", }, ["confederation"] = { link = true, fallback = "polity", }, ["constituency"] = { -- currently we have them as political divisions of Namibia but many countries have them link = true, preposition = "of", class = "subpolity", }, ["constituent country"] = { link = true, preposition = "of", class = "subpolity", }, ["constituent part"] = { link = "separately", preposition = "of", class = "subpolity", }, ["constituent republic"] = { -- Of Russia, Yugoslavia, etc. link = "separately", preposition = "of", class = "subpolity", }, ["counties and county-level cities!"] = { -- This is used when grouping counties and county-level cities under prefecture-level cities in China. category_link = "[[county|counties]] and [[county-level city|county-level cities]]", class = "subpolity", }, ["continent"] = { link = true, category_link = false, -- can't occur as a bare category class = "natural feature", default = {"大洲及大陸地區"}, }, ["continental region"] = { link = "separately", category_link = false, -- can't occur as a bare category class = "geographic region", fallback = "continent", }, ["continents and continental regions!"] = { category_link = "[[大洲]]以及大洲等級的[[地區]](如[[玻里尼西亞]])", class = "geographic region", }, ["council area"] = { link = true, -- in Scotland; similar to a county preposition = "of", affix_type = "suf", class = "subpolity", }, ["country"] = { link = true, class = "polity", ["continent/*"] = {"+++國家", "國家"}, default = {true}, }, ["country-like entities!"] = { category_link = "[[polity|polities]] not normally considered [[country|countries]] but treated similarly for categorization purposes; typically, [[unrecognized]] [[de-facto]] countries or [[w:dependent territory|dependent territories]]", class = "polity", }, ["county"] = { link = true, preposition = "of", display_handler = county_display_handler, class = "subpolity", }, ["county borough"] = { link = true, -- in Wales; similar to a county preposition = "of", affix_type = "suf", fallback = "borough", class = "subpolity", }, ["county seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["county town"] = { link = true, entry_placetype_use_the = true, preposition = "of", fallback = "town", has_neighborhoods = true, class = "capital", }, ["county-administered city"] = { -- In Taiwan, per Wikipedia similar to a Taiwanese township or district, which is a small city. -- NOT anything like a "county-level city" in PR China, which is a county masquerading as a city. link = "w", fallback = "city", has_neighborhoods = true, class = "settlement", }, ["county-controlled city"] = { -- Taiwan link = "w", fallback = "county-administered city", }, ["county-level city"] = { -- PR China link = "w", fallback = "prefecture-level city", }, ["crater lake"] = { link = true, fallback = "lake", }, ["creek"] = { link = true, fallback = "stream", }, ["Crown colony"] = { link = "+crown colony", fallback = "crown colony", }, ["crown colony"] = { link = true, fallback = "colony", }, ["Crown dependency"] = { link = true, fallback = "dependent territory", }, ["crown dependency"] = { link = true, fallback = "dependent territory", }, ["cultural area"] = { link = "w", fallback = "geographic and cultural area", }, ["cultural region"] = { link = "w", fallback = "geographic and cultural area", }, ["delegation"] = { -- Tunisia link = "+w:delegations of Tunisia", preposition = "of", class = "subpolity", }, ["department"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["departmental capital"] = { link = "separately", fallback = "capital city", }, ["dependency"] = { link = true, fallback = "dependent territory", }, ["dependent territory"] = { link = "w", preposition = "of", class = "subpolity", former_type = "dependent territory", bare_category_parent = "political divisions", ["country/*"] = {true}, default = {true}, }, ["desert"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems"}, default = {true}, }, ["deserted mediaeval village"] = { link = "w", fallback = "deserted medieval village", }, ["deserted medieval village"] = { link = "w", fallback = "ANCIENT settlement", }, ["direct-administered municipality"] = { -- China link = "+w:direct-administered municipalities of China", fallback = "municipality", }, ["direct-controlled municipality"] = { -- several countries link = "w", fallback = "municipality", }, ["distributary"] = { link = true, preposition = "of", fallback = "river", }, ["district"] = { link = true, preposition = "of", affix_type = "suf", -- Grrr! FIXME! Here is where we need handlers for `class`. Using similar logic to -- district_neighborhood_cat_handler, we need to check if we're below or above a city to determine if the class -- is "settlement" or "subpolity". class = "subpolity", cat_handler = district_neighborhood_cat_handler, -- No default. Countries for which districts are political divisions will get entries. }, ["districts and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Portugal. category_link = "[[district]]s and [[autonomous region]]s", class = "subpolity", }, ["districts and autonomous territorial units!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Moldova. category_link = "[[district]]s and [[w:autonomous territorial unit|autonomous territorial unit]]s", class = "subpolity", }, ["district capital"] = { link = "separately", fallback = "capital city", }, ["district headquarters"] = { link = "separately", fallback = "administrative centre", }, ["district municipality"] = { -- In Canada, a district municipality is equivalent to a rural municipality and won't have neighborhoods; in -- South Africa, district municipalities group local municipalities and hence won't have neighborhoods. link = "w", preposition = "of", affix_type = "suf", no_affix_strings = {"district", "municipality"}, fallback = "municipality", class = "subpolity", }, ["division"] = { link = true, preposition = "of", class = "subpolity", }, ["division capital"] = { link = "separately", fallback = "capital city", }, ["dome"] = { link = true, fallback = "mountain", }, ["dormant volcano"] = { link = true, fallback = "volcano", }, ["duchy"] = { link = true, fallback = "polity", }, ["emirate"] = { link = true, preposition = "of", -- FIXME: Can be subpolities (of the United Arab Emirates). fallback = "polity", }, ["empire"] = { link = true, fallback = "polity", }, ["enclave"] = { link = true, preposition = "of", -- Enclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["entity"] = { -- Bosnia and Herzegovina link = "+w:entities of Bosnia and Herzegovina", preposition = "of", class = "subpolity", }, ["escarpment"] = { link = true, fallback = "mountain", }, ["ethnographic region"] = { -- used in Lithuania link = "+w:ethnographic regions of Lithuania", fallback = "geographic and cultural area", }, ["exclave"] = { link = true, preposition = "of", -- exclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["external territory"] = { link = "separately", fallback = "dependent territory", }, ["farm"] = { link = true, class = "non-admin settlement", default = {"農牧場"}, }, ["farms and ranches!"] = { category_link = "[[farm]]s and [[ranch]]es", class = "non-admin settlement", }, ["federal city"] = { link = "w", preposition = "of", fallback = "city", }, ["federal district"] = { link = true, preposition = "of", -- Might have neighborhoods as federal districts are often cities (e.g. Mexico City) has_neighborhoods = true, class = "settlement", }, ["federal subject"] = { -- In Russia; a generic term for first-level administrative divisions (republics, oblasts, okrugs, krais, -- autonomous okrugs and autonomous oblasts). link = "w", preposition = "of", class = "subpolity", }, ["federal territory"] = { link = "w", fallback = "territory", }, ["fictional location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["First Nations reserve"] = { -- Canada link = "[[First Nations]] [[w:Indian reserve|reserve]]", -- Wikipedia uses "Indian reserve"; presumably that is the legal term fallback = "Indian reserve", class = "subpolity", }, ["fjord"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["footpath"] = { link = true, fallback = "road", }, ["forest"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems", "forestry"}, default = {true}, }, ["fort"] = { link = true, fallback = "building", }, ["fortress"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- fortresses -> fortresse, so put an entry here to ensure we singularize correctly. plural = "fortresses", fallback = "building", }, ["frazione"] = { link = "w", fallback = "hamlet", }, ["freeway"] = { link = true, fallback = "road", }, ["French prefecture"] = { link = "[[w:prefectures in France|prefecture]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["geographic and cultural area"] = { link = "+w:cultural area", -- `generic_before_non_cities` is used when generating the category description of categories of the format -- `Geographic and cultural areas of PLACE`. `preposition` is used when generating {{place}} description and -- categories for any placetype that falls back to `geographic and cultural area`. generic_before_non_cities = "of", preposition = "of", class = "geographic region", bare_category_parent = "places", ["country/*"] = {true}, ["constituent country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["geographic area"] = { link = "+w:geographic region", fallback = "geographic and cultural area", }, ["geographic region"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical area"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical region"] = { link = "w", fallback = "geographic and cultural area", }, ["geopolitical zone"] = { -- Nigeria link = true, preposition = "of", class = "subpolity", }, ["gewog"] = { -- Bhutan link = true, preposition = "of", class = "subpolity", }, ["ghost town"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", bare_category_parent = "former settlements", cat_handler = city_type_cat_handler, default = {true}, }, ["glen"] = { link = true, fallback = "valley", }, ["governorate"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["greater administrative region"] = { -- China (former division) link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["gromada"] = { -- Poland (former division) link = "w", preposition = "of", affix_type = "Pref", class = "subpolity", inherently_former = {"FORMER"}, }, ["group of islands"] = { link = "[[group]] of [[island]]s", plural = "groups of islands", plural_link = "[[group]]s of [[island]]s", fallback = "island group", }, ["gulf"] = { link = true, preposition = "of", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["hamlet"] = { link = true, fallback = "village", }, ["harbor city"] = { link = "separately", fallback = "city", }, ["harbor town"] = { link = "separately", fallback = "town", }, ["harbour city"] = { link = "separately", fallback = "city", }, ["harbour town"] = { link = "separately", fallback = "town", }, ["headland"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["headquarters"] = { link = "w", fallback = "administrative centre", }, ["heath"] = { link = true, fallback = "moor", }, ["hemisphere"] = { link = true, entry_placetype_use_the = true, fallback = "continental region", }, ["highway"] = { link = true, fallback = "road", }, ["hill"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["hill station"] = { link = "w", fallback = "town", }, ["hill town"] = { link = "w", fallback = "town", }, ["historic region"] = { -- provided only for the link link = "+w:historical region", fallback = "FORMER geographic region", }, ["historical county"] = { -- needed for historical counties of England/etc. link = "+w:historic county", fallback = "FORMER subpolity", }, ["historical region"] = { -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["home rule city"] = { link = "w", fallback = "city", }, ["home rule municipality"] = { link = "w", fallback = "municipality", }, ["hot spring"] = { link = true, fallback = "spring", }, ["house"] = { link = true, fallback = "building", }, ["housing estate"] = { -- not the same as a housing project (i.e. public housing) link = true, -- not exactly the case but approximately fallback = "neighborhood", }, ["hromada"] = { -- Ukraine link = "w", disallow_in_entries = "Use placetype 'urban hromada', 'rural hromada' or 'settlement hromada' in place of bare 'hromada'", disallow_in_holonyms = "Use placetype 'urban hromada'/'uhrom', 'rural hromada'/'rhrom' or 'settlement hromada'/'shrom' in place of bare 'hromada'", preposition = "of", affix_type = "suf", class = "subpolity", }, ["inactive volcano"] = { link = "w", fallback = "dormant volcano", }, ["independent city"] = { link = true, fallback = "city", }, ["independent town"] = { link = "+independent city", fallback = "town", }, ["Indian reservation"] = { link = "w", -- In the US. Also known as "Native American reservation" or "domestic dependent nation", and the reservations -- themselves often use the term "nation" in their official name (e.g. the "Navajo Nation"). But Wikipedia puts -- the article at [[w:Indian reservation]] and uses that term when describing e.g. what the Navajo Nation is, -- so this must still be the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["Indian reserve"] = { link = "w", -- In Canada. "First Nations reserve" sounds more modern/PC but Wikipedia uses "Indian reserve"; presumably that -- is still the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["inland sea"] = { -- note, we also have 'inland' as a qualifier link = true, fallback = "sea", }, ["inner city area"] = { link = "[[inner city]] [[area]]", fallback = "neighborhood", }, ["island"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["island country"] = { -- FIXME: The following should map to both 'island' and 'country'. link = "w", fallback = "country", }, ["island group"] = { link = "separately", fallback = "island", }, ["island municipality"] = { link = "w", fallback = "municipality", }, ["islet"] = { link = "w", fallback = "island", }, ["Israeli settlement"] = { link = "w", class = "settlement", default = {true}, }, ["judicial capital"] = { link = "w", fallback = "capital city", }, ["khanate"] = { link = true, fallback = "polity", }, ["kibbutz"] = { link = true, plural = "kibbutzim", class = "non-admin settlement", default = {true}, }, ["kingdom"] = { link = true, fallback = "monarchy", }, ["krai"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["lake"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["landforms!"] = { category_link = "[[landform]]s", bare_category_parent = "places", addl_bare_category_parents = {"地球"}, }, ["largest city"] = { link = "[[large]]st [[city]]", entry_placetype_use_the = true, fallback = "city", has_neighborhoods = true, }, ["league"] = { link = true, fallback = "confederation", }, ["legislative capital"] = { link = "separately", fallback = "capital city", }, ["library"] = { link = true, fallback = "building", }, ["lieutenancy area"] = { -- used in the United Kingdom; per Wikipedia: -- In England, lieutenancy areas are colloquially known as the ceremonial counties, although this phrase does -- not appear in any legislation referring to them. The lieutenancy areas of Scotland are subdivisions of -- Scotland that are more or less based on the counties of Scotland, making use of the major cities as separate -- entities.[2] In Wales, the lieutenancy areas are known as the preserved counties of Wales and are based on -- those used for lieutenancy and local government between 1974 and 1996. The lieutenancy areas of Northern -- Ireland correspond to the six counties and two former county boroughs.[3] link = "w", fallback = "ceremonial county", }, ["local authority district"] = { link = "w", fallback = "local government district", }, ["local government area"] = { -- Australia link = "w", preposition = "of", class = "subpolity", }, ["local council"] = { -- Malta; similar to municipalities link = "+w:local councils of Malta", preposition = "of", fallback = "municipality", }, ["local government district"] = { link = "w", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local government district with borough status"] = { link = "[[w:local government district|local government district]] with [[w:borough status|borough status]]", plural = "local government districts with borough status", plural_link = "[[w:local government district|local government districts]] with [[w:borough status|borough status]]", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local urban district"] = { link = "w", fallback = "unincorporated community", }, ["locality"] = { link = "+w:locality (settlement)", -- not necessarily true, but usually is the case fallback = "village", }, ["London borough"] = { link = "w", preposition = "of", affix_type = "pref", affix = "borough", fallback = "local government district with borough status", has_neighborhoods = true, }, ["macroregion"] = { link = true, fallback = "region", }, ["man-made structures!"] = { category_link = "[[w:geographical feature#Engineered constructs|man-made structures]] such as [[airport]]s, [[university|universities]] and [[metro station]]s", bare_category_parent = "places", }, ["manor"] = { -- FIXME: or is this more like a farm? link = true, fallback = "building", }, ["marginal sea"] = { link = true, preposition = "of", fallback = "sea", }, ["market city"] = { link = "+market town", fallback = "city", }, ["market town"] = { link = true, fallback = "town", }, ["massif"] = { link = true, fallback = "mountain", }, ["megacity"] = { link = true, fallback = "city", }, ["metro station"] = { link = true, class = "man-made structure", }, ["metropolitan borough"] = { link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"borough", "city"}, fallback = "local government district", has_neighborhoods = true, }, ["metropolitan city"] = { -- These exist e.g. in Italy and are more like municipalities or even provinces than cities. link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"metropolitan", "city"}, class = "subpolity", }, ["metropolitan county"] = { link = true, fallback = "county", }, ["metropolitan municipality"] = { -- In South Africa, metropolitan municipalities group local municipalities and are like districts, between -- provinces and municipalities. -- In Turkey, metropolitan municipalities are provinces-level. link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"metropolitan", "municipality"}, fallback = "municipality", class = "subpolity", }, ["microdistrict"] = { -- residential complex in post-Soviet states link = true, fallback = "neighborhood", }, ["micronations!"] = { -- FIXME, merge with microstate category_link = "[[micronation]]s", bare_category_parent = "countries", }, ["microstate"] = { link = true, fallback = "country", }, ["military base"] = { link = "w", class = "settlement", -- or "man-made structure"? default = {true}, }, ["minster town"] = { -- England link = "separately", fallback = "town", }, ["monarchy"] = { link = true, fallback = "polity", }, ["moor"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems"}, default = {true}, }, ["moorland"] = { link = true, fallback = "moor", }, ["motorway"] = { link = true, fallback = "road", }, ["mountain"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["mountain indigenous district"] = { -- Taiwan link = "+w:district (Taiwan)", fallback = "district", }, ["mountain indigenous township"] = { -- Taiwan link = "+w:township (Taiwan)", fallback = "township", }, ["mountain pass"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "mountain passes", class = "natural feature", addl_bare_category_parents = {"mountains"}, default = {true}, }, ["mountain range"] = { link = true, fallback = "mountain", }, ["mountainous region"] = { link = "separately", fallback = "region", }, ["mukim"] = { -- Malaysia, Brunei, Indonesia, Singapore link = true, preposition = "of", class = "subpolity", }, ["municipal district"] = { link = "w", -- meaning varies depending on the country; for now, assume no neighborhoods. -- FIXME: has_neighborhoods might have to be a function that looks at the containing holonyms. preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "municipality", }, ["municipality"] = { link = true, preposition = "of", has_neighborhoods = true, class = "subpolity", }, ["municipality with city status"] = { link = "[[municipality]] with [[w:city status|city status]]", plural = "municipalities with city status", plural_link = "[[municipality|municipalities]] with [[w:city status|city status]]", fallback = "municipality", }, ["museum"] = { link = true, fallback = "building", }, ["mythological location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["named bridges!"] = { category_link = "notable [[bridge]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"bridges"}, }, ["named buildings!"] = { category_link = "notable [[house]]s, [[library|libraries]] and other [[building]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"buildings"}, }, ["named roads!"] = { category_link = "notable [[road]]s, [[highway]]s, [[trail]]s and similar linear structures", bare_category_parent = "man-made structures", addl_bare_category_parents = {"roads"}, }, ["national capital"] = { link = "w", fallback = "capital city", }, ["national park"] = { link = true, fallback = "park", }, ["natural features!"] = { category_link = "[[w:geographical feature#Natural features|natural features]] such as [[lake]]s, [[mountain]]s, [[island]]s and [[ocean]]s", bare_category_parent = "places", }, ["neighborhood"] = { -- The majority of the properties here apply to both `neighborhoods` and `neighbourhoods`; the choice of which -- one to use is made by district_neighborhood_cat_handler() based on the value of `british_spelling` for the -- location (city, political division, etc.) of the holonym that follows the word "neighbo(u)hoods" in the -- category name. It does *NOT* depend on whether the {{place}} call uses "neighborhoods" or "neighbourhoods". -- (In general it can't, because other things like "urban areas", "districts", "subdivisions" and the like also -- categorize as neighbo(u)rhoods.) link = true, -- See below. These are used by category handlers in [[Module:category tree/topic cat/data/Places]]. generic_before_non_cities = "in", generic_before_cities = "of", -- The following text is suitable for the top-level description of a neighborhood as well as categories of the -- form `Neighborhoods in POLDIV` e.g. `Neighborhoods in Illinois, USA` but not for categories of the form -- `Neighborhoods of Chicago`, where we'd get "... and other subportions of [[city|cities]] of [[Chicago]]". category_link = "[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighborhood]]s, [[district]]s and other subportions", -- NOTE: This setting is needed for administrative divisions like barangays that fall back to `neighborhood`, -- when set in [[Module:place/locations]] for a specific country (e.g. the Philippines). The above settings -- for `generic_before_non_cities` and `generic_before_cities` are used by category handlers in -- [[Module:category tree/topic cat/data/Places]] for `Neighborhoods in POLDIV` and `Neighborhoods of CITY` -- categories. In fact, district_neighborhood_cat_handler() does not currently pay attention to them, but -- generates "of" before cities and "in" before non-cities regardless. (FIXME: We should change that.) preposition = "of", class = "non-admin settlement", cat_handler = district_neighborhood_cat_handler, }, ["neighbourhood"] = { link = true, category_link = "[[neighbourhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighbourhood]]s, [[district]]s and other subportions", fallback = "neighborhood", }, ["new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", preposition = "in", class = "subpolity", --? }, ["new town"] = { link = true, fallback = "town", }, ["non-city capital"] = { link = "[[capital]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", cat_handler = function(data) return capital_city_cat_handler(data, "non-city") end, -- FIXME, do we need the following? default = {true}, }, ["non-metropolitan county"] = { link = "w", fallback = "county", }, ["non-metropolitan district"] = { link = "w", fallback = "local government district", }, ["non-sovereign kingdom"] = { -- especially in Africa and Asia link = "+w:non-sovereign monarchy", generic_before_non_cities = "in", class = "subpolity", ["country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["non-sovereign monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["oblast"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["oblasts and autonomous republics!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Ukraine. category_link = "[[oblast]]s and [[w:autonomous republic|autonomous republic]]s", class = "subpolity", }, ["ocean"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"seas", "bodies of water"}, default = {true}, }, ["okrug"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["overseas collectivity"] = { link = "w", fallback = "collectivity", }, ["overseas department"] = { link = "w", fallback = "department", }, ["overseas territory"] = { link = "w", fallback = "dependent territory", }, ["parish"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["parish municipality"] = { -- in Quebec, often similar to a rural village; the famous [[Saint-Louis-du-Ha! Ha!]] is one of them. link = "+w:parish municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, }, ["parish seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", class = "capital", has_neighborhoods = true, }, ["park"] = { link = true, class = "man-made structure", default = {true}, }, ["pass"] = { link = "+mountain pass", -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "passes", fallback = "mountain pass", }, ["path"] = { link = true, fallback = "road", }, ["peak"] = { link = true, fallback = "mountain", }, ["peninsula"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["periphery"] = { link = true, preposition = "of", class = "subpolity", }, ["places!"] = { generic_before_non_cities = "in", generic_before_cities = "in", class = "generic place", category_link = "[[place]]s of all sorts", -- `category_link_top_level` control the description used in the top-level [[Category:Places]] and -- language-specific variants such as [[Category:en:Places]]. The actual text for a language-spefic variant is -- "{{{langname}}} names of [[geographical]] [[place]]s of all sorts; [[toponym]]s." where the "names of" -- portion is automatically generated by the appropriate handler in -- [[Module:category tree/topic cat/data/Places]]. category_link_top_level = "[[geographical]] [[place]]s of all sorts; [[toponym]]s", bare_category_parent = "names", }, ["planned community"] = { -- Include this so we don't categorize 'planned community' into villages, as 'community' does. link = true, class = "settlement", has_neighborhoods = true, }, ["plateau"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, -- FIXME: Should generate both "Plateaus" and the appropriate 'geographic and cultural area' category }, ["Polish colony"] = { link = "[[w:colony (Poland)|colony]]", affix_type = "suf", affix = "colony", fallback = "village", has_neighborhoods = true, }, ["political divisions!"] = { category_link = "[[political]] [[division]]s and [[subdivision]]s, such as [[state]]s, [[province]]s, [[county|counties]] or [[district]]s", bare_category_parent = "places", }, ["polity"] = { link = true, category_link = "[[independent]] or [[semi-]][[independent]] [[polity|polities]]", class = "polity", bare_category_parent = "places", default = {true}, }, ["populated place"] = { link = "+w:populated place", -- not necessarily true, but usually is the case fallback = "village", }, ["port"] = { link = true, class = "man-made structure", default = {true}, }, ["port city"] = { -- FIXME: should categorize into "Ports" as well as "Cities" link = true, fallback = "city", }, ["port town"] = { -- FIXME: should categorize into "Ports" as well as "Towns" link = "w", fallback = "town", }, ["prefecture"] = { -- FIXME! `prefecture` is like a county in Japan and elsewhere but a department capital city in France. -- May need `has_neighborhoods` to be a function. link = true, preposition = "of", display_handler = prefecture_display_handler, class = "subpolity", }, ["prefecture-level city"] = { -- China; they are huge entities with a central city; not cities themselves. link = "w", preposition = "of", class = "subpolity", }, ["preserved county"] = { -- In Wales; they are former counties enshrined in law; there are 8 of them and each consists of one or more -- "principal areas" (styled as "counties" or "county boroughs"), of which there are 22. link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["primary area"] = { -- a grouping of "districts" (neighborhoods) in Gothenburg, Sweden link = "+w:sv:primärområde", fallback = "neighborhood", }, ["principality"] = { link = true, fallback = "monarchy", }, ["promontory"] = { link = true, fallback = "headland", }, ["protectorate"] = { link = true, fallback = "dependent territory", }, ["province"] = { link = true, preposition = "of", display_handler = province_display_handler, class = "subpolity", }, ["provinces and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case China. category_link = "[[province]]s and [[autonomous region]]s", class = "subpolity", }, ["provinces and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Canada and Pakistan. category_link = "[[province]]s and [[territory|territories]]", class = "subpolity", }, ["provincial capital"] = { link = "separately", fallback = "capital city", }, ["raion"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["ranch"] = { link = true, fallback = "farm", }, ["range"] = { -- FIXME: Where is this used? Is it a mountain range? link = true, holonym_use_the = true, class = "natural feature", }, ["regency"] = { link = true, preposition = "of", class = "subpolity", }, ["region"] = { link = true, preposition = "of", -- If 'region' isn't a specific administrative division, fall back to 'geographic and cultural area' fallback = "geographic and cultural area", -- "former region" is a subpolity but traditional/historic(al)/ancient/medieval/etc. is a geographic region class = "geographic region", }, ["regional capital"] = { link = "separately", fallback = "capital city", }, ["regional county municipality"] = { -- Quebec link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"municipality", "county"}, fallback = "municipality", }, ["regional district"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "district", }, ["regional municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", }, ["regional unit"] = { link = "w", preposition = "of", affix_type = "suf", class = "subpolity", }, ["registration county"] = { -- Used in Scotland for land registration purposes; formerly used in England, Wales and Ireland for statistical -- purposes (registration of births, deaths and marriages, and for the output of census information). link = "w", fallback = "county", }, ["republic"] = { -- Of Russia, Yugoslavia, etc. "Republics" in general are sovereign but we use "country" in that case. link = true, fallback = "constituent republic", }, ["research base"] = { link = "+w:research station", fallback = "research station", }, ["research station"] = { link = "w", class = "non-admin settlement", -- or "man-made structure"? default = {true}, }, ["reservoir"] = { link = true, fallback = "lake", }, ["residential area"] = { link = "separately", fallback = "neighborhood", }, ["resort city"] = { link = "w", fallback = "city", }, ["resort town"] = { link = "w", fallback = "town", }, ["river"] = { link = true, generic_before_non_cities = "in", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, cat_handler = city_type_cat_handler, ["continent/*"] = {true}, default = {true}, }, ["river island"] = { link = "w", fallback = "island", }, ["road"] = { link = true, class = "man-made structure", default = {"具名道路"}, }, ["Roman province"] = { -- FIXME! Eliminate this in favor of 'former province|emp/Roman Empire' link = "w", default = {"羅馬帝國行省"}, class = "subpolity", }, ["royal borough"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = {"royal", "borough"}, fallback = "local government district with borough status", has_neighborhoods = true, }, ["royal burgh"] = { link = true, fallback = "borough", }, ["royal capital"] = { link = "w", fallback = "capital city", }, ["rural committee"] = { -- Hong Kong; a group of villages link = "w", affix_type = "Suf", has_neighborhoods = true, class = "settlement", }, ["rural community"] = { -- New Brunswick link = "+w:list of municipalities in New_Brunswick#Rural communities", fallback = "municipality", }, ["rural hromada"] = { link = "[[rural]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["rural municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", has_neighborhoods = true, --? }, ["rural township"] = { -- Taiwan link = "+w:rural township (Taiwan)", fallback = "township", }, ["sanctuary"] = { link = true, fallback = "temple", }, ["satrapy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["sea"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["seaport"] = { link = true, fallback = "port", }, ["seat"] = { link = true, fallback = "administrative centre", }, ["self-administered area"] = { -- Myanmar (groups self-administered divisions and zones) link = "+w:self-administered zone", preposition = "of", class = "subpolity", }, ["self-administered division"] = { -- Myanmar (only one of them: Wa Self-Administered Division) link = "w", fallback = "self-administered area", }, ["self-administered zone"] = { -- Myanmar (five of them) link = "w", fallback = "self-administered area", }, ["separatist state"] = { link = "separately", fallback = "unrecognized country", }, ["settlement"] = { link = true, category_link = "[[settlement]]s such as [[city|cities]], [[village]]s and [[farm]]s", bare_category_parent = "places", -- not necessarily true, but usually is the case fallback = "village", }, ["settlement hromada"] = { link = "[[w:Populated places in Ukraine#Rural settlements|settlement]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["sheading"] = { -- Isle of Man link = true, fallback = "district", }, ["sheep station"] = { -- Australia link = true, fallback = "farm", }, ["shire"] = { link = true, fallback = "county", }, ["shire county"] = { link = "w", fallback = "county", }, ["shire town"] = { link = true, fallback = "county seat", }, ["ski resort city"] = { link = "[[ski resort]] [[city]]", fallback = "city", }, ["ski resort town"] = { link = "[[ski resort]] [[town]]", fallback = "town", }, ["spa city"] = { link = "+w:spa town", fallback = "city", }, ["spa town"] = { link = "w", fallback = "town", }, ["space station"] = { link = true, fallback = "research station", }, ["special administrative region"] = { -- in China; in practice they are city-like (Hong Kong, Macau); also [[Oecusse]] in East Timor is formally a -- "special administrative region"; North Korea had one such region planned (Sinuiju) but abandoned; Indonesia -- has similar "special regions" of Jakarta, Yogyakarta and Aceh; and South Sudan has three "special -- administrative areas" link = "+w:special administrative regions of China", preposition = "of", class = "subpolity", has_neighborhoods = true, --? -- no suffix since places in Hong Kong or Macau are listed without China, except Hong Kong and Macau themselves -- they also contain regions (or areas), e.g. [[Kowloon]], so it would be confusing suffix = "", }, ["special collectivity"] = { link = "w", fallback = "collectivity", }, ["special municipality"] = { -- formerly linked to the Taiwan article but there are also special municipalities of the Netherlands link = "w", fallback = "municipality", }, ["special ward"] = { -- Tokyo link = true, fallback = "municipality", }, ["spit"] = { link = true, fallback = "peninsula", }, ["spring"] = { link = true, class = "natural feature", default = {true}, }, ["star"] = { link = true, class = "natural feature", default = {true}, }, ["state"] = { link = true, preposition = "of", class = "subpolity", -- 'former/historical state' could refer either to a state of a country (a division) or a state = sovereign -- entity. The latter appears more common (e.g. in various "ancient states" of East Asia). former_type = "polity", }, ["states and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Australia. category_link = "[[state]]s and [[territory|territories]]", class = "subpolity", }, ["states and union territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case India. category_link = "[[state]]s and [[union territory|union territories]]", class = "subpolity", }, ["state capital"] = { link = true, fallback = "capital city", }, ["state park"] = { link = true, fallback = "park", }, ["state-level new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", fallback = "new area", }, ["statistical region"] = { -- Slovenia link = true, fallback = "administrative region", }, ["statutory city"] = { link = "w", fallback = "city", }, ["statutory town"] = { link = "w", fallback = "town", }, ["strait"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["stream"] = { link = true, fallback = "river", }, ["street"] = { link = true, fallback = "road", }, ["strip"] = { link = true, fallback = "geographic region", }, ["strip of land"] = { link = "[[strip]] of [[land]]", plural = "strips of land", plural_link = "[[strip]]s of [[land]]", fallback = "geographic region", }, ["sub-metropolitan city"] = { link = "+w:List of cities in Nepal#Sub-metropolitan cities", fallback = "city", }, ["sub-prefectural city"] = { link = "w", fallback = "subprovincial city", }, ["subdistrict"] = { link = true, preposition = "of", has_neighborhoods = true, --? -- FIXME: subdistricts can be neighborhood-like (of Jakarta) or larger (in China); need a handler class = "subpolity", default = {true}, }, ["subdivision"] = { link = true, preposition = "of", affix_type = "suf", -- FIXME: subdivisions can be neighborhood-like or larger; need a handler class = "subpolity", cat_handler = district_neighborhood_cat_handler, }, ["submerged ghost town"] = { -- FIXME: Consider just having "submerged" as a qualifier. link = "[[submerged]] [[ghost town]]", fallback = "ghost town", }, ["subnational kingdom"] = { link = "+w:subnational monarchy", fallback = "non-sovereign kingdom", }, ["subnational monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["subprefecture"] = { link = true, affix_type = "suf", preposition = "of", class = "subpolity", }, ["subprovince"] = { link = true, preposition = "of", class = "subpolity", }, ["subprovincial city"] = { link = "w", -- China; special status given to certain prefecture-level cities fallback = "prefecture-level city", }, ["subprovincial district"] = { link = "w", -- China; special status given to Binhai New Area and Pudong New Area, which are county-level districts preposition = "of", class = "subpolity", }, ["subregion"] = { link = true, fallback = "geographic region", }, ["suburb"] = { link = true, -- The following text is suitable for the top-level description of a suburb as well as categories of the form -- 'Suburbs in POLDIV' e.g. 'Suburbs in Illinois, USA' but not for categories of the form 'Suburbs of Chicago', -- where we'd get "[[suburb]]s of [[city|cities]] of [[Chicago]]". category_link = "[[suburb]]s of [[city|cities]]", category_link_before_city = "[[suburb]]s", -- See comments under "neighborhood" for the following three settings. They are used by -- [[Module:category tree/topic cat/data/Places]] for generating the text of 'Suburbs in/of PLACE' categories -- but currently ignored by district_neighborhood_cat_handler (which actually generates the categories for a -- given page), which hardcodes "in" for non-cities and "of" for cities. (FIXME: Change this.) generic_before_non_cities = "in", generic_before_cities = "of", preposition = "of", has_neighborhoods = true, --? class = "non-admin settlement", --? cat_handler = district_neighborhood_cat_handler, }, ["suburban area"] = { link = "w", fallback = "suburb", }, ["subway station"] = { link = "w", fallback = "metro station", }, ["sum"] = { -- In China, Mongolia, Russia; something like a county in Mongolia but a township in China (Inner Mongolia), -- and equivalent to a [[selsoviet]] in the parts of Russia where it's in use (a rural council, below a raion). link = "+w:sum (administrative division)", -- This fallback is somewha arbitrary. We could use "county" but that has a display handler -- which we don't want to be active (FIXME: If the display handler would be active, that's a bug). fallback = "division", }, ["supercontinent"] = { link = true, fallback = "continent", }, ["tehsil"] = { link = true, affix_type = "suf", no_affix_strings = {"tehsil", "tahsil"}, class = "subpolity", }, ["temple"] = { link = true, fallback = "building", }, ["territorial authority"] = { link = "w", fallback = "district", }, ["territory"] = { link = true, preposition = "of", class = "subpolity", }, ["theme"] = { link = "+w:theme (Byzantine district)", preposition = "of", class = "subpolity", }, ["town"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["town with bystatus"] = { -- can't use templates in links currently link = "[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]", plural = "towns with bystatus", plural_link = "[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]", fallback = "town", }, ["township"] = { link = true, has_neighborhoods = true, class = "settlement", --? default = {true}, }, ["township municipality"] = { -- Quebec link = "+w:township municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["traditional county"] = { link = true, fallback = "county", }, ["traditional region"] = { -- FIXME: Verify this works. Same for 'historic(al) region'. -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["trail"] = { link = true, fallback = "road", }, ["treaty port"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"FORMER"}, }, ["tributary"] = { link = true, preposition = "of", fallback = "river", }, ["underground station"] = { link = "w", fallback = "metro station", }, ["unincorporated area"] = { link = "w", -- I don't know if this fallback makes sense everywhere. fallback = "unincorporated community", }, ["unincorporated community"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", }, ["unincorporated territory"] = { link = "w", fallback = "territory", }, ["union territory"] = { -- India link = true, preposition = "of", entry_placetype_indefinite_article = "a", class = "subpolity", }, ["unitary authority"] = { -- UK, New Zealand link = true, entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["unitary district"] = { link = "w", entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["united township municipality"] = { -- Quebec link = "+w:united township municipality (Quebec)", entry_placetype_indefinite_article = "a", fallback = "township municipality", has_neighborhoods = true, --? }, ["university"] = { link = true, entry_placetype_indefinite_article = "a", class = "man-made structure", default = {true}, }, ["unrecognised country"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized and nearly unrecognized countries!"] = { category_link = "[[de facto]] [[independent]] [[state]]s with little or no {{w|international recognition}}", bare_category_parent = "country-like entities", }, ["unrecognized country"] = { link = "w", class = "polity", default = {"未受國際普遍承認國家"}, }, ["unrecognised state"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized state"] = { link = "w", fallback = "unrecognized country", }, ["urban area"] = { link = "separately", fallback = "neighborhood", }, ["urban hromada"] = { link = "[[urban]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["urban service area"] = { -- A strange beast existing in Alberta; technically a type of hamlet but in practice used for much larger -- cities and treated equivalent to a city. (There are only two of them, [[Fort McMurray]] and [[Sherwood Park]]). link = "w", fallback = "city", }, ["urban township"] = { link = "w", fallback = "township", }, ["urban-type settlement"] = { -- appears to be a particular type of small urban settlement in post-Soviet states, -- had an administrative function. link = "w", fallback = "town", }, ["valley"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "water"}, default = {true}, }, ["viceroyalty"] = { -- in essence, a type of colony link = true, fallback = "dependent territory", }, ["village"] = { link = true, generic_before_non_cities = "in", category_link = "[[village]]s, [[hamlet]]s, and other small [[community|communities]] and [[settlement]]s", class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["village development committee"] = { -- former administrative structure in Nepal; also exists in India but not as a formal unit link = "+w:village development committee (Nepal)", inherently_former = {"FORMER"}, fallback = "village", }, ["village municipality"] = { -- Quebec link = "+w:village municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["voivodeship"] = { -- Poland link = true, display_handler = voivodeship_display_handler, preposition = "of", class = "subpolity", }, ["volcano"] = { link = true, plural = "volcanoes", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true, "山"}, }, ["ward"] = { link = true, class = "settlement", -- Wards are formal administrative divisions of a city but have some properties of neighborhoods. fallback = "neighborhood", }, ["watercourse"] = { link = true, fallback = "channel", }, ["Welsh community"] = { -- Wales link = "[[w:community (Wales)|community]]", preposition = "of", affix_type = "suf", affix = "community", has_neighborhoods = true, class = "settlement", }, ["zone"] = { -- administrative division of Ethiopia, Qatar, Nepal, India link = "+w:zone#Place names", preposition = "of", class = "subpolity", }, ---------------------------------------------------------------------------------------------- -- Categories for former places -- ---------------------------------------------------------------------------------------------- ["ANCIENT capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", -- FIXME: Consider removing 'ancient settlements' here. Ancient capitals, like former capitals, often still -- exist but just aren't the capital any more. Maybe we should have an 'Ancient capitals' category. default = {"古代定居點", "歷史首府"}, }, ["ANCIENT non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "ANCIENT settlement", }, ["ANCIENT settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"古代定居點"}, }, ["ancient settlements!"] = { category_link = "former [[city|cities]], [[town]]s and [[village]]s that existed in [[antiquity]]", bare_category_parent = "former settlements", }, ["FORMER capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", default = {"歷史首府"}, }, ["former capitals!"] = { category_link = "former [[capital]] [[city|cities]] and [[town]]s", bare_category_parent = "settlements", }, ["former counties and county-level cities!"] = { -- For categorizing former counties and county-level cities of China category_link = "no-longer existing [[county|counties]] and [[county-level city|county-level cities]]", bare_category_breadcrumb = "counties and county-level cities", bare_category_parent = "former political divisions", }, ["FORMER county"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["FORMER county-level city"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["former countries and country-like entities!"] = { category_link = "[[country|countries]] and similar [[polity|polities]] that no longer exist", bare_category_breadcrumb = "countries and country-like entities", bare_category_parent = "former polities", }, ["FORMER country"] = { link = false, class = "polity", default = {"Former countries and country-like entities"}, }, ["former dependent territories!"] = { category_link = "[[w:dependent territory|dependent territories]] (colonies, dependencies, protectorates, etc.) that no longer exist", bare_category_breadcrumb = "dependent territories", bare_category_parent = "former political divisions", }, ["FORMER dependent territory"] = { link = false, preposition = "of", class = "subpolity", default = {"Former dependent territories"}, }, ["former districts!"] = { -- For categorizing former districts of China category_link = "no-longer-existing [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "former political divisions", }, ["FORMER district"] = { -- For categorizing former districts of China link = false, fallback = "FORMER subpolity", }, ["FORMER geographic region"] = { link = false, fallback = "geographic and cultural area", }, ["FORMER man-made structure"] = { link = false, class = "man-made structure", default = {"Former man-made structures"}, }, ["former man-made structures!"] = { category_link = "man-made structures such as [[airport]]s and [[park]]s that no longer exist", bare_category_breadcrumb = "man-made structures", bare_category_parent = "former places", }, ["former municipalities!"] = { -- For categorizing former municipalities of the Netherlands category_link = "no-longer-existing [[municipality|municipalities]]", bare_category_breadcrumb = "municipalities", bare_category_parent = "former political divisions", }, ["FORMER municipality"] = { -- For categorizing former municipalities of the Netherlands link = false, fallback = "FORMER subpolity", }, ["FORMER natural feature"] = { link = false, class = "natural feature", default = {"Former natural features"}, }, ["former natural features!"] = { category_link = "natural features such as [[lake]]s, [[river]]s and [[island]]s that no longer exist", bare_category_breadcrumb = "natural features", bare_category_parent = "former places", }, ["FORMER non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "FORMER settlement", }, ["former places!"] = { category_link = "[[place]]s of all sorts that no longer exist", bare_category_breadcrumb = "former", bare_category_parent = "places", }, ["former political divisions!"] = { category_link = "[[political]] [[division]]s (states, provinces, counties, etc.) that no longer exist", bare_category_breadcrumb = "political divisions", bare_category_parent = "former places", }, ["former polities!"] = { category_link = "[[polity|polities]] (countries, kingdoms, empires, etc.) that no longer exist", bare_category_breadcrumb = "polities", bare_category_parent = "former places", }, ["FORMER polity"] = { link = false, class = "polity", default = {"Former polities"}, }, ["former prefectures!"] = { -- For categorizing former prefectures of China category_link = "no-longer-existing [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "former political divisions", }, ["FORMER prefecture"] = { -- For categorizing former prefectures of China link = false, fallback = "FORMER subpolity", }, ["former provinces!"] = { -- For categorizing former provinces of China, etc. category_link = "no-longer-existing [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "former political divisions", }, ["FORMER province"] = { -- For categorizing ancient/historical/former provinces of the Roman Empire link = false, fallback = "FORMER subpolity", }, ["former region"] = { -- A former region is considered a former political division, but not a 'historical/traditional/etc.' region. link = "separately", preposition = "of", inherently_former = {"FORMER"}, class = "subpolity", }, ["FORMER settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"Former settlements"}, }, ["former settlements!"] = { category_link = "[[city|cities]], [[town]]s and [[village]]s that no longer exist or have been merged or reclassified", bare_category_breadcrumb = "settlements", bare_category_parent = "former political divisions", }, ["FORMER subpolity"] = { link = false, preposition = "of", class = "subpolity", default = {"Former political divisions"}, }, ---------------------------------------------------------------------------------------------- -- form-of categories -- ---------------------------------------------------------------------------------------------- ---------- Abbreviations ---------- ["abbreviations of counties!"] = { -- For categorizing abbreviations of counties of e.g. England full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[county|counties]]", bare_category_breadcrumb = "counties", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of places", }, ["abbreviations of departments!"] = { -- For categorizing abbreviations of departments of e.g. France full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[department]]s", bare_category_breadcrumb = "departments", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of districts!"] = { -- For categorizing abbreviations of districts of e.g. ??? full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of divisions!"] = { -- For categorizing abbreviations of divisions of e.g. Bangladesh full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[division]]s", bare_category_breadcrumb = "divisions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of former countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of former places", }, ["abbreviations of former places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "abbreviations", bare_category_parent = "former places", addl_bare_category_parents = {{name = "abbreviations of places", sort = "former"}}, }, ["abbreviations of places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "abbreviations", bare_category_parent = "places", }, ["abbreviations of political divisions!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[political]] [[division]]s", bare_category_breadcrumb = "political divisions", bare_category_parent = "abbreviations of places", }, ["abbreviations of prefectures!"] = { -- For categorizing abbreviations of prefectures of e.g. Japan full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces!"] = { -- For categorizing abbreviations of provinces of e.g. Canada full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s and [[territory|territories]]", bare_category_breadcrumb = "provinces and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of regions!"] = { -- For categorizing abbreviations of regions of e.g. Italy full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[administrative region]]s", bare_category_breadcrumb = "regions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states!"] = { -- For categorizing abbreviations of states of e.g. the United States full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[territory|territories]]", bare_category_breadcrumb = "states and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and union territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[union territory|union territories]]", bare_category_breadcrumb = "states and union territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[territory|territories]]", bare_category_breadcrumb = "territories", bare_category_parent = "abbreviations of political divisions", }, ["ABBREVIATION_OF country"] = { link = false, default = {"Abbreviations of countries"}, }, ["ABBREVIATION_OF county"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF department"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF district"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF division"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF FORMER country"] = { link = false, default = {"Abbreviations of former countries"}, }, ["ABBREVIATION_OF FORMER place"] = { link = false, default = {"Abbreviations of former places"}, }, ["ABBREVIATION_OF place"] = { link = false, default = {"Abbreviations of places"}, }, ["ABBREVIATION_OF prefecture"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF province"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF region"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF state"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF subpolity"] = { link = false, default = {"Abbreviations of political divisions"}, }, ["ABBREVIATION_OF territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF union territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ---------- Archaic forms ---------- ["archaic forms of places!"] = { full_category_link = "{{glossary|archaic}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "archaic forms", bare_category_parent = "places", }, ["ARCHAIC_FORM_OF place"] = { link = false, default = {"Archaic forms of places"}, }, ---------- Clippings ---------- ["clippings of places!"] = { full_category_link = "{{glossary|clipping}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "clippings", bare_category_parent = "places", }, ["CLIPPING_OF place"] = { link = false, default = {"Clippings of places"}, }, ---------- Dated forms ---------- ["dated forms of places!"] = { full_category_link = "{{glossary|dated}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "dated forms", bare_category_parent = "places", }, ["DATED_FORM_OF place"] = { link = false, default = {"Dated forms of places"}, }, ---------- Derogatory names ---------- ["derogatory names for cities!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[city|cities]]", bare_category_breadcrumb = "cities", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["derogatory names for continents!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for continents"}, }, ["derogatory names for countries!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for countries"}, }, ["derogatory names for places!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[place]]s", bare_category_breadcrumb = "derogatory names", bare_category_parent = "nicknames for places", }, ["derogatory names for states!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for states"}, }, ["DEROGATORY_NAME_FOR capital"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR city"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR continent"] = { link = false, default = {"Derogatory names for continents"}, }, ["DEROGATORY_NAME_FOR country"] = { link = false, default = {"Derogatory names for countries"}, }, ["DEROGATORY_NAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR place"] = { link = false, default = {"Derogatory names for places"}, }, ["DEROGATORY_NAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR state"] = { link = false, default = {"Derogatory names for states"}, }, ["DEROGATORY_NAME_FOR town"] = { link = false, default = {"Derogatory names for cities"}, }, ---------- Ellipses ---------- ["ellipses of places!"] = { full_category_link = "{{glossary|ellipsis|ellipses}} of [[name]]s of [[place]]s", bare_category_breadcrumb = "ellipses", bare_category_parent = "places", }, ["ELLIPSIS_OF place"] = { link = false, default = {"Ellipses of places"}, }, ---------- Former long-form names ---------- ["former long-form names of countries!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former long-form names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "long-form"}}, }, ["former long-form names of places!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form", bare_category_parent = "former names of places", }, ["FORMER_LONG_FORM_OF country"] = { link = false, default = {"Former long-form names of countries"}, }, ["FORMER_LONG_FORM_OF place"] = { link = false, default = {"Former long-form names of places"}, }, ---------- Former names ---------- ["former names of capitals!"] = { full_category_link = "[[former]] [[name]]s of [[capital city|capital cities]] that generally still exist but under a different name", bare_category_breadcrumb = "capitals", bare_category_parent = "former names of settlements", }, ["former names of countries!"] = { full_category_link = "[[former]] [[name]]s of [[country|countries]] that generally still exist but under a different name", bare_category_breadcrumb = "countries", bare_category_parent = "former names of places", }, ["former names of places!"] = { full_category_link = "[[former]] [[name]]s of [[place]]s that generally still exist but under a different name", bare_category_breadcrumb = "former names", bare_category_parent = "places", }, ["former names of political divisions!"] = { full_category_link = "[[former]] [[name]]s of [[political]] [[division]]s (states, provinces, counties, etc.) that generally still exist but under a different name", bare_category_breadcrumb = "political divisions", bare_category_parent = "former names of places", }, ["former names of polities!"] = { full_category_link = "[[former]] [[name]]s of [[polity|polities]] (e.g. [[country|countries]]) that generally still exist but under a different name", bare_category_breadcrumb = "polities", bare_category_parent = "former names of places", }, ["former names of settlements!"] = { full_category_link = "[[former]] [[name]]s of [[city|cities]], [[town]]s, [[village]]s, etc. that generally still exist but under a different name", bare_category_breadcrumb = "settlements", bare_category_parent = "former names of political divisions", }, ["FORMER_NAME_OF capital"] = { link = false, default = {"Former names of capitals"}, }, ["FORMER_NAME_OF country"] = { link = false, default = {"Former names of countries"}, }, ["FORMER_NAME_OF place"] = { link = false, default = {"Former names of places"}, }, ["FORMER_NAME_OF polity"] = { link = false, default = {"Former names of polities"}, }, ["FORMER_NAME_OF region"] = { link = false, fallback = "FORMER_NAME_OF subpolity", }, ["FORMER_NAME_OF settlement"] = { link = false, default = {"Former names of settlements"}, }, ["FORMER_NAME_OF subpolity"] = { link = false, default = {"Former names of political divisions"}, }, ---------- Former nicknames ---------- ["former nicknames for cities!"] = { full_category_link = "no-longer-used [[nickname]]s for [[city|cities]], e.g. the [[Eternal City]] for [[Kyoto]] during the {{w|Heian period}} ({{circa2|800–1100|short=yes}} {{AD}})", bare_category_breadcrumb = "cities", bare_category_parent = "former nicknames for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["former nicknames for places!"] = { full_category_link = "no-longer-used [[nickname]]s for [[place]]s", bare_category_breadcrumb = "former", bare_category_parent = "nicknames for places", addl_bare_category_parents = {{name = "former names of places", sort = "nicknames"}}, }, ["FORMER_NICKNAME_FOR capital"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR city"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR place"] = { link = false, default = {"Former nicknames for places"}, }, ["FORMER_NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR town"] = { link = false, default = {"Former nicknames for cities"}, }, ---------- Former official names ---------- ["former official names of countries!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former official names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "official"}}, }, ["former official names of places!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "former names of places", }, ["FORMER_OFFICIAL_NAME_OF country"] = { link = false, default = {"Former official names of countries"}, }, ["FORMER_OFFICIAL_NAME_OF place"] = { link = false, default = {"Former official names of places"}, }, ---------- Long-form names ---------- ["long-form names of countries!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "long-form names of places", }, ["long-form names of places!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form names", bare_category_parent = "places", }, ["LONG_FORM_OF country"] = { link = false, default = {"Long-form names of countries"}, }, ["LONG_FORM_OF place"] = { link = false, default = {"Long-form names of places"}, }, ---------- Nicknames ---------- ["nicknames for cities!"] = { full_category_link = "[[nickname]]s for [[city|cities]], e.g. the [[Big Apple]] for [[New York City]]", bare_category_breadcrumb = "cities", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"cities"}, }, ["nicknames for continents!"] = { full_category_link = "[[nickname]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"continents"}, }, ["nicknames for countries!"] = { full_category_link = "[[nickname]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"countries"}, }, ["nicknames for places!"] = { full_category_link = "[[nickname]]s for [[place]]s", bare_category_breadcrumb = "places", bare_category_parent = "nicknames", addl_bare_category_parents = {"places"}, }, ["nicknames for states!"] = { -- For categorizing nicknames for states of e.g. the United States full_category_link = "[[nicknames]] for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"states"}, }, ["NICKNAME_FOR capital"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR city"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR continent"] = { link = false, default = {"Nicknames for continents"}, }, ["NICKNAME_FOR country"] = { link = false, default = {"Nicknames for countries"}, }, ["NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR place"] = { link = false, default = {"Nicknames for places"}, }, ["NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR state"] = { link = false, default = {"Nicknames for states"}, }, ["NICKNAME_FOR town"] = { link = false, default = {"Nicknames for cities"}, }, ---------- Obsolete forms ---------- ["obsolete forms of places!"] = { full_category_link = "{{glossary|obsolete}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "obsolete forms", bare_category_parent = "places", }, ["OBSOLETE_FORM_OF place"] = { link = false, default = {"Obsolete forms of places"}, }, ---------- Official names ---------- ["official names of countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of places", }, ["official names of former countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of former places", }, ["official names of former places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "official names", bare_category_parent = "former places", addl_bare_category_parents = {{name = "official names of places", sort = "former"}}, }, ["official names of places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official names", bare_category_parent = "places", }, ["OFFICIAL_NAME_OF country"] = { link = false, default = {"Official names of countries"}, }, ["OFFICIAL_NAME_OF FORMER country"] = { link = false, default = {"Official names of former countries"}, }, ["OFFICIAL_NAME_OF FORMER place"] = { link = false, default = {"Official names of former places"}, }, ["OFFICIAL_NAME_OF place"] = { link = false, default = {"Official names of places"}, }, ---------- Official nicknames ---------- ["official nicknames for places!"] = { full_category_link = "[[official]] [[nickname]]s for [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for places", }, ["official nicknames for states!"] = { -- For categorizing official nicknames for states of e.g. the United States full_category_link = "[[official]] [[nicknames]] for [[state]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for states", addl_bare_category_parents = {"states"}, }, ["OFFICIAL_NICKNAME_FOR place"] = { link = false, default = {"Official nicknames for places"}, }, ["OFFICIAL_NICKNAME_FOR state"] = { link = false, default = {"Official nicknames for states"}, }, } export.plural_placetype_to_singular = {} for sg_placetype, spec in pairs(export.placetype_data) do if spec.plural then export.plural_placetype_to_singular[spec.plural] = sg_placetype end end ------------------------------------------------------------------------------------------ -- ZH: Chinese localization functions -- ------------------------------------------------------------------------------------------ --[==[ Get the Chinese display name for a placetype, resolving through the enwikt fallback chain. `holonym_placetype` (optional string) provides context for placetypes like `capital city` whose Chinese term depends on the containing administrative level (country → 首都, province → 省會, state → 首府, etc.). Returns two values: zh_name (string or array of regional variants), zh_suffix (string, array, or nil). Returns nil, nil if no Chinese data is available for the placetype or any of its fallbacks. ]==] function export.get_zh_placetype_name(placetype, holonym_placetype) placetype = export.resolve_placetype_aliases(placetype) local zh_name, zh_suffix, zh_by_holonym = m_zh_data.get_zh_placetype_props(placetype, export) if zh_name then local resolved = m_zh_data.resolve_zh_name(zh_name, zh_by_holonym, holonym_placetype) return resolved, zh_suffix end return nil, nil end --[==[ Get only the Chinese suffix for a placetype. Used when rendering holonym `:pref`/`:suf` modifiers in Chinese: the suffix is appended directly to the holonym name (e.g. `s:suf/New York` → 紐約州; `c:pref/Georgia` → 格魯吉亞國). Returns a string, an array of regional variants, or nil if no suffix is defined. ]==] function export.get_zh_placetype_suffix(placetype) placetype = export.resolve_placetype_aliases(placetype) local _, zh_suffix = m_zh_data.get_zh_placetype_props(placetype, export) return zh_suffix end --[==[ Chinese placetype "pluralization" — a no-op, since Chinese has no grammatical plural. Accepts and returns a string or an array (for multi-variant names) unchanged. Provided so that call sites shared with the English path can call a uniform function. ]==] function export.pluralize_zh_placetype(zh_name) return zh_name end --[==[ Get the entry preposition for Chinese display: "in" or "of". Identical to `get_placetype_entry_preposition` in semantics; the Chinese rendering maps these to different constructions: "in" → 位於 [holonyms] 的 [placetype] "of" → [holonyms] 的 [placetype] (no 位於 prefix) ]==] export.get_zh_entry_preposition = export.get_placetype_entry_preposition -- Re-export Chinese data tables so that [[Module:place]] only needs to require -- this module rather than both this module and [[Module:place/zh-data]] separately. export.zh_strings = m_zh_data.zh_strings export.zh_qualifiers = m_zh_data.zh_qualifiers export.zh_extra_info_labels = m_zh_data.zh_extra_info_labels export.zh_capital_label_by_holonym_type = m_zh_data.zh_capital_label_by_holonym_type export.format_zh_name = m_zh_data.format_zh_name return export 8dipwf3tiggjpwd4kzfexwxxgjrg34i 9759605 9759551 2026-05-14T22:30:16Z TongcyDai 53191 9759605 Scribunto text/plain local export = {} export.force_cat = false -- set to true for testing local m_locations = require("Module:place/locations") local m_links = require("Module:links") local m_table = require("Module:table") local m_strutils = require("Module:string utilities") local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" -- Chinese localization data (zh_name, zh_suffix, qualifiers, extra-info labels, etc.) local m_zh_data = require("Module:place/data/sandbox") local dump = mw.dumpObject local insert = table.insert local concat = table.concat local internal_error = m_locations.internal_error export.internal_error = internal_error local process_error = m_locations.process_error export.process_error = process_error local unpack = unpack or table.unpack -- Lua 5.2 compatibility local ucfirst = m_strutils.ucfirst local ulower = m_strutils.lower local rmatch = m_strutils.match local split = m_strutils.split --[==[ intro: This module contains placetype data used by [[Module:place]] and {{tl|place}}, along with a significant amount of code to work with both placetypes and locations, as well as some placename-related info (FIXME: Consider moving it to [[Module:place/locations]]). See also [[Module:place/locations]], which has definitions of all known locations. You must currently load this module using {{cd|require()}}, not using {{cd|mw.loadData()}}. In particular, it contains two fundamental and tricky functions: # `get_placetype_equivs`, which finds the equivalent placetypes to look under in order to find a given property, and in the process correctly handles placetypes with qualifiers (including qualifiers that act similar to "type-raising" operators in that they do something non-trivial to the placetype to their right) as well as form-of directives and fallbacks. # `find_matching_holonym_location`, which looks up a holonym to find a matching known location, but in the process checks holonyms to the right to make sure there isn't a clash between the user-specified containing holonyms and the containers of the known location being considered. This is done to prevent overcategorizing when either there are two known locations with the same name (e.g. Birmingham in England and Birmingham, Alabama in the US), or more generally two locations with the same name, one of which is a known location but where the other is not (e.g. we're processing non-known-location Mérida, Spain and don't want it categorized like known location Mérida, Yucatán, Mexico). Both of these functions are invoked repeatedly, and probably are invoked several times on the same inputs and as a result are candidates for memoization to speed up the operation of {{tl|place}}. ]==] ------------------------------------------------------------------------------------------ -- Basic utilities -- ------------------------------------------------------------------------------------------ --[==[ Return true if `force_cat` is set either in this module or in [[Module:place/locations]]. ]==] function export.get_force_cat() return export.force_cat or m_locations.force_cat end -- Add the page to a tracking "category". To see the pages in the "category", -- go to [[Wiktionary:Tracking/place/PAGE]] and click on "What links here". local function track(page) require(debug_track_module)("place/" .. page) return true end function export.remove_links_and_html(text) text = m_links.remove_links(text) return text:gsub("<.->", "") end --[==[ Return the singular version of a maybe-plural placetype, or nil if not plural. This correctly handles placetypes with irregular plurals such as `kibbutzim` plural of `kibbutz` by looking up in a table constructed from the `plural` values specified in `placetype_data`. If a special plural value is not found, the regular singularization algorithm in [[Module:en-utilities]] is invoked, which reverses the y -> ies change after vowels and the 'es' addition after sh/ch/x, and otherwise just subtracts a final 's' (which will incorrectly generate 'passe' for plural 'passes'; FIXME: consider changing this for words ending in '-sses'). If the generated singular is the same as the passed-in value, nil is returned. ]==] function export.maybe_singularize_placetype(placetype) if not placetype then return nil end if export.plural_placetype_to_singular[placetype] then return export.plural_placetype_to_singular[placetype] end local retval = require(en_utilities_module).singularize(placetype) if retval == placetype then return nil end return retval end -- Return the correct plural of a placetype, and (if `do_ucfirst` is given) make the first letter uppercase. We first -- look up the plural in `placetype_data`, falling back to pluralize() in [[Module:en-utilities]], which is almost -- always correct. function export.pluralize_placetype(placetype, do_ucfirst) local ptdata = export.placetype_data[placetype] if ptdata and ptdata.plural then placetype = ptdata.plural else placetype = require(en_utilities_module).pluralize(placetype) end if do_ucfirst then return ucfirst(placetype) else return placetype end end --[==[ Get the data associated with a placetype, which may be in its singular or plural form. If `from_category` is specified, we also look for category-only placetypes (generally plural) followed by `!`. Return three values: (a) the placetype under which the data can be looked up (i.e. in its singular form if the passed-in `placetype` is plural and did not match a category-only placetype followed by `!`); (b) the placetype data structure; (c) the type of `placetype` match that occurred, one of `"direct"` if the canonical placetype is the same as the passed-in `placetype` and also the same as the key under which `ptdata` was looked up, or `"direct-category"` if the `ptdata` was looked up under a key formed from the passed-in `placetype` by adding `!`, or `"plural"` if the `ptdata` was looked up under the singularized version of the plural passed-in `placetype`. ]==] function export.get_placetype_data(placetype, from_category) local ptdata = export.placetype_data[placetype] if ptdata then return placetype, ptdata, "direct" end if from_category then ptdata = export.placetype_data[placetype .. "!"] if ptdata then return placetype .. "!", ptdata, "direct-category" end end local sg_placetype = export.maybe_singularize_placetype(placetype) if sg_placetype then ptdata = export.placetype_data[sg_placetype] if ptdata then return sg_placetype, ptdata, "plural" end end return nil end --[==[ Check for special pseudo-placetypes that should be ignored for categorization purposes. ]==] function export.placetype_is_ignorable(placetype) return placetype == "and" or placetype == "or" or placetype:find("^%(") end function export.resolve_placetype_aliases(placetype) return export.placetype_aliases[placetype] or placetype end --[==[ Return a property from `placetype_data` for a given placetype. If the placetype isn't found in `placetype_data`, or the key isn't found in the placetype's entry in `placetype_data`, return nil. ]==] function export.get_placetype_prop(placetype, key) -- Usually we are called on equivalent placetypes returned from `get_placetype_equivs`, in which case placetype -- aliases have been resolved, but sometimes not, e.g. when fetching the indefinite article in -- get_placetype_article(). `resolve_placetype_aliases` is just a simple lookup and it doesn't hurt to do it twice. placetype = export.resolve_placetype_aliases(placetype) if export.placetype_data[placetype] then return export.placetype_data[placetype][key] else return nil end end --[==[ Given a placetype, split the placetype into one or more potential ''splits'', each consisting of a three-element list { {``prev_qualifiers``, ``this_qualifier``, ``reduced_placetype``}}, i.e. # the concatenation of zero or more previously-recognized qualifiers on the left, normally canonicalized (if there are zero such qualifiers, the value will be nil); # a single recognized qualifier, normally canonicalized (if there is no qualifier, the value will be nil); # the "reduced placetype" on the right. Splitting between the qualifier in (2) and the reduced placetype in (3) happens at each space character, proceeding from left to right, and stops if a qualifier isn't recognized. All placetypes are canonicalized by checking for aliases in `placetype_aliases`, but no other checks are made as to whether the reduced placetype is recognized. Canonicalization of qualifiers does not happen if `no_canon_qualifiers` is specified. For example, given the placetype `"small beachside unincorporated community"`, the return value will be { { {nil, nil, "small beachside unincorporated community"}, {nil, "small", "beachside unincorporated community"}, {"small", "[[beachfront]]", "unincorporated community"}, {"small [[beachfront]]", "[[unincorporated]]", "community"}, }} Here, `"beachside"` is canonicalized to `"[[beachfront]]"` and `"unincorporated"` is canonicalized to `"[[unincorporated]]"`, in both cases according to the entry in `placetype_qualifiers`. On the other hand, if given `"small former haunted community"`, the return value will be { { {nil, nil, "small former haunted community"}, {nil, "small", "former haunted community"}, {"small", "former", "haunted community"}, }} because `"small"` and `"former"` but not `"haunted"` are recognized as qualifiers. Finally, if given `"former adr"`, the return value will be { { {nil, nil, "former adr"}, {nil, "former", "administrative region"}, }} because `"adr"` is a recognized placetype alias for `"administrative region"`. ]==] function export.split_qualifiers_from_placetype(placetype, no_canon_qualifiers) local splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} local prev_qualifier = nil while true do local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if canon == nil then break end local new_qualifier = qualifier if type(canon) == "table" then canon = canon.link end if not no_canon_qualifiers and canon ~= false then if canon == true then new_qualifier = "[[" .. qualifier .. "]]" else new_qualifier = canon end end insert(splits, {prev_qualifier, new_qualifier, export.resolve_placetype_aliases(reduced_placetype)}) prev_qualifier = prev_qualifier and prev_qualifier .. " " .. new_qualifier or new_qualifier placetype = reduced_placetype else break end end return splits end --[==[ Given a `placetype` (which may be pluralized), return an ordered list of equivalent placetypes to look under to find the placetype's properties (such as the category or categories to be inserted). The return value is actually an ordered list of objects of the form `{qualifier=``qualifier``, placetype=``equiv_placetype``}` where ``equiv_placetype`` is a placetype whose properties to look up, derived from the passed-in placetype or from a contiguous subsequence of the words in the passed-in placetype (always including the rightmost word in the placetype, i.e. we successively chop off qualifier words from the left and use the remainder to find equivalent placetypes). ``qualifier`` is the remaining words not part of the subsequence used to find ``equiv_placetype``; or nil if all words in the passed-in placetype were used to find ``equiv_placetype``. (FIXME: This qualifier is not currently used anywhere.) Only placetypes for which there is an entry in `placetype_data` are included. The placetype passed in is always checked first, and will form the first entry if it exists in `placetype_data`. '''NOTE:''' This is a tricky function as it implements handling of (a) qualifiers, (b) fallback logic, (c) "type-raising" qualifiers such as `former`/`ancient`/etc. as well as `fictional` and `mythological`, and (d) form-of directives, which act somewhat similarly to `former`, and allows interaction between more than one of these simultaneously (e.g. official names of former places, which have their own categorization). If {{tl|place}} gets too slow, one potential speedup is to memoize the results of this function, as it appears to be getting called more than once on the same inputs. Another similar potential speedup is to memoize the results of `iterate_matching_holonym_location()`. For example, given the placetype `left tributary`, the following placetype/qualifier combinations are checked in turn: ``` {qualifier = nil, placetype="left tributary"} {qualifier = "left", placetype="tributary"} {qualifier = "left", placetype="river"} ``` and the return value will be { { {qualifier = "left", placetype="tributary"}, {qualifier = "left", placetype="river"}, }} The algorithm first enters the placetype itself into the list, then checks for `left tributary` as a recognized placetype in `placetype_data` and doesn't find it, so it doesn't enter it into the returned list (if it found it, it would add it as well as any fallbacks directly after it). It then splits off the recognized qualifier `left` to form the ''reduced placetype'' `tributary`, which is entered into the list because it is found in `placetype_data`. Then, because it has a fallback `river`, which exists in `placetype_data`, the fallback is entered next. Another example is `small rural fraziones` (where a ''frazione'' is type of subdivision of a ''comune'' or municipality, often specifically an outlying hamlet). the placetype/qualifier combinations checked are: ``` {qualifier = nil, placetype="small rural fraziones"} {qualifier = nil, placetype="small rural frazione"} {qualifier = "small", placetype="rural fraziones"} {qualifier = "small", placetype="rural frazione"} {qualifier = "small [[rural]]", placetype="fraziones"} {qualifier = "small [[rural]]", placetype="frazione"} {qualifier = "small [[rural]]", placetype="hamlet"} {qualifier = "small [[rural]]", placetype="village"} ``` The return value ends up as {qualifier = "small [[rural]]", placetype="frazione"}, {qualifier = "small [[rural]]", placetype="hamlet"}, {qualifier = "small [[rural]]", placetype="village"}, }} Here, because the result of singularizing `fraziones` returns a different value from the placetype itself, that singularized value is checked after the original plural value. Also, in the process of splitting off qualifiers, they are canonicalized if the entry in `placetype_qualifiers` says to do so; in this case, links are placed around `rural`. Finally, `frazione` has `hamlet` as its fallback, which in turn has `village` as its fallback, so both fallbacks end up being returned. `no_fallback`, if set, disables returning equivalent placetypes based on the `fallback` setting for a placetype. This is used in the first of two loops in find_placetype_cat_specs() in [[Module:place]] to prefer exact matches for placetypes such as barangays with later holonyms to matches based on a fallback such as `neighborhood` with an earlier holonym. See the comment in that function in [[Module:place]] for a more detailed explanation of why this is needed. Only the placetype itself, and any reduced placetypes created by chopping off recognized qualifiers at the beginning, are returned; but we do not return reduced placetypes if a containing placetype exists in `placetype_data`. (For example, `"overseas territory"` has a fallback `"dependent territory"`, and `"overseas"` is also a recognized qualifier. When `no_fallback` is in place, without the above proviso, we would return `"overseas territory"` followed by `"territory"` with the incorrect effect of classifying an `"overseas territory"` of the United Kingdom such as `"Gibraltar"` under [[:Category:Territories of the United Kingdom]] instead of [[:Category:Dependent territories of the United Kingdom]].) As an exception, if `historical`, `ancient`, `former` or the like are found, they proceed ignoring `no_fallback`, because it seems tricky to handle them correctly in the presence of `no_fallback`, and historical/former placetypes rarely occur with exact match category specs anyway. `no_split_qualifiers` prevents splitting off recognized qualifiers and returning the remainder of the placetype as an equivalent placetype. Only the passed-in placetype, and any fallbacks, will be returned. This is used in [[Module:category tree/topic cat/data/Places]] when looking up placetypes found in categories. Such placetypes won't have qualifiers and so it doesn't make sense to try and look for them. `from_category`, if set, causes category-only placetypes (those ending in `!`) to also be checked. `form_of_directive`, if set, causes the specified form-of directive (e.g. `FORMER_NAME_OF`) to be prepended to checked placetypes, their directive-specific type (e.g. `FORMER_NAME_OF_type`), and their classes (`class`) to get the appropriate placetypes to check for form-of-directive categories. It falls back to the prepended generic `place` as a placetype, e.g. `FORMER_NAME_OF place`, if nothing else matches. `no_check_for_inherently_former` is used internally to prevent an infinite loop when checking for `inherently_former`. `register_former_as_non_former` is a major hack used in `get_bare_categories` to deal with the mismatch between e.g. known location `Yugoslavia` declaring itself a `country` but definitions of it declaring it a `former country`. It causes the non-former version of the specified placetype to be included in the returned equivalents along with the former placetypes. [FIXME: This should apply only to the entries in `former_countries` but it's tricky to do that now; fix this in the known-location refactor. -- The known-location refactor is already done but we haven't yet fixed this.] ]==] function export.get_placetype_equivs(placetype, props) local no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former local form_of_directive if props then no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former = props.no_fallback, props.no_split_qualifiers, props.no_check_for_inherently_former, props.from_category, props.register_former_as_non_former form_of_directive = props.form_of_directive end local equivs = {} -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. `qualifier` is -- the preceding qualifier to insert into `equivs` along with the placetype (see comment at top of function). If -- `from_category` is given, we also check for a category-specific entry consisting of the placetype followed by -- `!`, and in all cases we also check to see if `placetype` is plural, and if so, insert the singularized version -- along with its fallbacks (if any) in `placetype_data`. `form_of_prefix` is a form-of prefix such as -- `OFFICIAL_NAME_OF`. If specified, we check the fallbacks of `placetype` without the prefix but then insert into -- `equivs` the prefixed placetype. This way, if the user says e.g. {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}}, -- we will correctly categorize into [[:Category:Official names of countries]], rather than only trying to look up -- `OFFICIAL_NAME_OF island country` and failing, falling back ultimately to [[:Category:Official names of places]]. local function insert_placetype_and_fallbacks(qualifier, placetype, form_of_prefix) local function insert_equiv(pt) if form_of_prefix then -- Let's say the user says {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}} and we have -- no entry for `OFFICIAL_NAME_OF island country` but we do for `OFFICIAL_NAME_OF country` (which we end -- up processing because `island country` falls back to `country`), and that entry in turn is defined -- using a fallback. We have to insert that fallback-of-fallback, and the easiest/cleanest way of -- handling this is by calling ourselves recursively. insert_placetype_and_fallbacks(qualifier, form_of_prefix .. " " .. pt) else insert(equivs, {qualifier=qualifier, placetype=pt}) end end -- Insert the placetype, along with any fallbacks. local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if ptdata then insert_equiv(canon_placetype) if no_fallback then return end local first_placetype = #equivs + 1 local prev_placetype = nil while true do local pt_value = export.placetype_data[canon_placetype] if not pt_value then internal_error("Fallback value %s specified for placetype %s but is not in `placetype_data`", canon_placetype, prev_placetype) end if pt_value.fallback then insert_equiv(pt_value.fallback) local last_placetype = #equivs if last_placetype - first_placetype >= 10 then local fallback_loop = {} for i = first_placetype, last_placetype do insert(fallback_loop, equivs[i].placetype) end internal_error("Apparent loop in fallback chain: %s", table.concat(fallback_loop, " -> ")) end prev_placetype = canon_placetype canon_placetype = pt_value.fallback else break end end end end -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. This is a -- wrapper around the more basic `insert_placetype_and_fallbacks()` which handles form-of directives. If there is no -- form-of directive, this function directly calls `insert_placetype_and_fallbacks()`. We do things this way so that -- form-of directives correctly combine with `former`-type qualifiers. Note that we also have special backups for -- form-of directives that check `DIRECTIVE place` (and before that, `DIRECTIVE FORMER/ANCIENT place` is there's a -- `former`-type directive); these backups live outside this function because we want them done once, late, rather -- than in each invocation of `process_and_insert_placetype()`. local function process_and_insert_placetype(qualifier, reduced_placetype) if form_of_directive then -- First check for e.g. `OFFICIAL_NAME_OF island country` and its fallbacks; then we look for fallbacks of -- `island country` and check e.g. `OFFICIAL_NAME_OF country` and its fallbacks. All of this is handled by -- `insert_placetype_and_fallbacks()` with appropriate parameters. After that, check the general class of -- the directive, e.g. `subpolity` if something like `district` is given. (Eventually, we check for -- `OFFICIAL_NAME_OF place` as a backup, but this happens at the end outside the loop over qualifiers.) insert_placetype_and_fallbacks(qualifier, reduced_placetype, form_of_directive) if not no_fallback then local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype) local directive_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, form_of_directive .. "_type") or export.get_placetype_prop(pt, "class") end ) if not directive_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s in conjunction with form-of directive %s, placetype data " .. 'located but directive-specific type property %s missing, and so is "class"; ' .. "placetypes searched are %s", reduced_placetype, form_of_directive, form_of_directive .. "_type", reduced_placetype_equivs) else -- This should be allowed, as we allow unrecognized placetypes in general. end elseif directive_type ~= "!" then insert_placetype_and_fallbacks(qualifier, directive_type, form_of_directive) end end else insert_placetype_and_fallbacks(qualifier, reduced_placetype) end end -- Successively split off recognized qualifiers and loop over successively greater sets of qualifiers from the left -- (unless `no_split_qualifiers` is specified, in which case we don't check for qualifiers). local splits if no_split_qualifiers then splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} else splits = export.split_qualifiers_from_placetype(placetype) end for _, split in ipairs(splits) do local prev_qualifier, this_qualifier, reduced_placetype = unpack(split, 1, 3) -- If a special "former" qualifier like `former` or `historical` isn't present, and -- `no_check_for_inherently_former` is not given (this flag is used to avoid infinite loops), check for -- "inherently former" placetypes like `satrapy` and `treaty port` that always refer to no-longer-existing -- placetypes, and handle accordingly. local unlinked_this_qualifier if this_qualifier and this_qualifier:find("%[") then unlinked_this_qualifier = export.remove_links_and_html(this_qualifier) else unlinked_this_qualifier = this_qualifier end local former_qualifiers = this_qualifier and export.former_qualifiers[unlinked_this_qualifier] or nil if not former_qualifiers and not no_check_for_inherently_former then former_qualifiers = export.get_equiv_placetype_prop(reduced_placetype, function(pt) return export.get_placetype_prop(pt, "inherently_former") end, {no_check_for_inherently_former = true}) end -- If a special "former" qualifier like `former` or `historical` is present, map it to the appropriate internal -- qualifiers (`ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified -- qualifiers), fetch the `former_type` property, and treat the placetype as if a concatenation of the mapped -- qualifier(s) and the value of `former_type`. For example, if `medieval village` is given, we map `medieval` -- to `ANCIENT` and `FORMER`, and `village` to its `former_type` of `settlement`, and enter the placetypes -- `ANCIENT settlement` and `FORMER settlement` (in that order) into `equivs`. If the placetype following the -- "former" qualifier is recognized in `placetype_data` but has no `former_type` and no fallback with a -- `former_type` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like -- `former greenhouse` is specified and we don't have an entry for `greenhouse`), just track the occurrence and -- don't enter anything into `equivs`. if former_qualifiers then -- FIXME: Should we respect `no_fallback` here? My instinct says no. local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype, { no_check_for_inherently_former = true }) local former_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, "former_type") or export.get_placetype_prop(pt, "class") end ) if not former_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s, placetype data located but `former_type` missing; " .. "placetypes searched are %s", reduced_placetype, reduced_placetype_equivs) else -- Enable error when we've verified there aren't any examples. track("bad-former-placetype") track("bad-former-placetype/" .. reduced_placetype) --process_error("For placetype '%s', unrecognized placetype following 'former'-type " .. -- "qualifier; searched placetype(s) %s", reduced_placetype, dump(reduced_placetype_equivs)) end elseif former_type ~= "!" then -- First check directly for `ANCIENT/FORMER` + the original following placetype. This makes it possible -- for (e.g.) former provinces of the Roman empire to be categorized specially. for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. reduced_placetype) end for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. former_type) end -- HACK! See explanation above for `register_former_as_non_former`. if register_former_as_non_former then process_and_insert_placetype(prev_qualifier, reduced_placetype) end -- If we're processing a form-of directive, after doing everything else we do -- `DIRECTIVE ANCIENT/FORMER place` e.g. `OFFICIAL_NAME_OF FORMER place` as a backup. if form_of_directive and not no_fallback then for _, former_qualifier in ipairs(former_qualifiers) do insert_placetype_and_fallbacks(prev_qualifier, form_of_directive .. " " .. former_qualifier .. " place") end end -- Don't continue processing equivs. The reason is probably the same as the `break` below for -- qualifier_to_placetype_equivs[]; categories for `former BLAH` are set using `default`, and -- non-former equivs will otherwise take precedence. break end end -- Then see if the rightmost split-off qualifier is in qualifier_to_placetype_equivs -- (e.g. 'fictional *' -> 'fictional location'). If so, add the mapping. if this_qualifier and export.qualifier_to_placetype_equivs[unlinked_this_qualifier] then insert(equivs, { qualifier=prev_qualifier, placetype=export.qualifier_to_placetype_equivs[unlinked_this_qualifier] }) -- Don't continue processing equivs; otherwise, if we specify 'mythological city', even though the -- equivalent entry for 'mythological location' gets inserted ahead of the entry for 'city', the -- latter ends up generating the category because the category for 'mythological location' is set as -- the default value, which is used only when no non-default category can be found. break end -- Finally, join the rightmost split-off qualifier to the previously split-off qualifiers to form a combined -- qualifier, and add it along with reduced_placetype and any mapping in placetype_data for reduced_placetype. -- NOTE: The first time through this loop, both `prev_qualifier` and `this_qualifier` are nil, and this inserts -- the full placetype into `equivs`. local qualifier = prev_qualifier and prev_qualifier .. " " .. this_qualifier or this_qualifier process_and_insert_placetype(qualifier, reduced_placetype) -- If `no_fallback` and there's an entry in `placetype_data` for this placetype, don't include any reduced -- placetypes to avoid the "overseas territory treated as a territory" issue describe above. if no_fallback then local canon_placetype, ptdata, ptmatch = export.get_placetype_data(reduced_placetype, from_category) if canon_placetype then break end end end -- If we're processing a form-of directive, after doing everything else we do `DIRECTIVE place` e.g. -- `OFFICIAL_NAME_OF place` as a backup; but only if either the placetype as a whole is recognized or the placetype -- begins with a recognized qualifier. This latter check is to avoid categorizing into e.g. -- [[Category:en:Former names of places]] in an invocation like -- {{place|en|@former name of:Democratic Republic of the Congo|country|r/Central Africa|;|used from 1971–1997}}; -- the `used from 1971–1997` gets treated as a placetype and we're called on it. if form_of_directive and not no_fallback and (splits[2] or export.get_placetype_data(placetype, from_category)) then insert_placetype_and_fallbacks(nil, form_of_directive .. " place") end return equivs end function export.get_equiv_placetype_prop_from_equivs(equivs, fun, continue_on_nil_only) for _, equiv in ipairs(equivs) do local retval = fun(equiv.placetype) if continue_on_nil_only and retval ~= nil or not continue_on_nil_only and retval then return retval, equiv end end return nil, nil end --[==[ Given a placetype `placetype` and a function `fun` of one argument, iteratively call the function on equivalent placetypes fetched from `get_placetype_equivs` until the function returns a non-falsy value (i.e. not {nil} or {false}); but if `continue_on_nil_only` is specified, the iterations continue until the function returns non non-{nil} value. FIXME: We should make `continue_on_nil_only` the default; but this requires changing some callers.) When `fun` returns a non-falsy or non-{nil} value, `get_equiv_placetype_prop` returns two values: the value returned by `fun` and the equivalent placetype that triggered the non-falsy (or non-{nil}) return value. If `fun` never returns a non-falsy (or non-{nil}) value, `get_equiv_placetype_prop` returns {nil} for both return values. If `placetype` is passed in as {nil}, the return value is the result of calling `fun` on {nil} (whatever it is) with {nil} for the second return value. ]==] function export.get_equiv_placetype_prop(placetype, fun, props) if not placetype then return fun(nil), nil end return export.get_equiv_placetype_prop_from_equivs(export.get_placetype_equivs(placetype, props), fun, props and props.continue_on_nil_only) end --[==[ Return the article that is used with an entry placetype. We proceed as follows: # See if there is a recognized qualifier at the beginning that specifies an article (including `false` for no article). This takes precedence over anything else, so that e.g. `various capitals` gets no article rather than "`the"`. # Then check the placetype or any equivalent placetype for the `entry_placetype_use_the` property, indicating that `"the"` should be used. # Otherwise we look to see if the placetype itself (not any equivalents, even those involving deleting a qualifier from the beginning) has an entry in `placetype_data` that specifies the indefinite article using `entry_placetype_use_the` (principally for use with placetypes like `union territory`). # Otherwise, we use [[Module:en-utilities]] to apply the standard algorithm to generate `"an"` for words beginning with a vowel and `"a"` otherwise. If `ucfirst` is true, the first letter of the article is made upper-case. ]==] function export.get_placetype_article(placetype, ucfirst) local art local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if type(canon) == "table" then art = canon.article end end if art == false then return art end if art == nil then local placetype_use_the = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "entry_placetype_use_the") end) if placetype_use_the then art = "the" else art = export.get_placetype_prop(placetype, "entry_placetype_indefinite_article") if not art then art = require(en_utilities_module).get_indefinite_article(placetype) end end end if ucfirst then art = m_strutils.ucfirst(art) end return art end --[==[ Return the preposition that should be used after `placetype` when occurring as an entry placetype or in categories (e.g. `city >in< France` but `country >of< South America`). The preposition defaults to `"in"` if not specified. ]==] function export.get_placetype_entry_preposition(placetype) local pt_prep = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "preposition") end ) return pt_prep or "in" end --[==[ Given a place desc (see top of file) and a holonym object (see top of file), add a key/value into the place desc's `holonyms_by_placetype` field corresponding to the placetype and placename of the holonym. For example, corresponding to the holonym "c/Italy", a key "country" with the list value {"Italy"} will be added to the place desc's `holonyms_by_placetype` field. If there is already a key with that place type, the new placename will be added to the end of the value's list. ]==] function export.key_holonym_into_place_desc(place_desc, holonym) if not holonym.placetype then return end -- Key in equivalent placetypes, so that e.g. `cities/San Francisco` gets keyed under `city`; but don't do -- fallbacks, as it doesn't seem correct for the "do other holonyms of the same placetype" algorithm to do holonyms -- of different types just because they have the same fallback. local equiv_placetypes = export.get_placetype_equivs(holonym.placetype, {no_fallback = true}) local unlinked_placename = holonym.unlinked_placename for _, equiv in ipairs(equiv_placetypes) do local placetype = equiv.placetype if not place_desc.holonyms_by_placetype then place_desc.holonyms_by_placetype = {} end if not place_desc.holonyms_by_placetype[placetype] then place_desc.holonyms_by_placetype[placetype] = {unlinked_placename} else insert(place_desc.holonyms_by_placetype[placetype], unlinked_placename) end end end --[=[ Construct a formatted link from the raw link spec `link` given the canonical singular placetype `sg_placetype`. If the placetype was originally plural, `orig_placetype` should contain this plural value; otherwise it should be nil. This will construct the appropriate type of link that displays as `orig_placetype` (or otherwise `sg_placetype`) but links to whatever the `link` spec specifies (which may be `sg_placetype`, a Wikipedia article, etc.). `ptdata` is the placetype data structure for the placetype, and `from_category` indicates that we are generating the description of a category (otherwise we are generating the display form of an entry placetype). ]=] local function make_placetype_link(link, sg_placetype, orig_placetype, ptdata, from_category, noerror) if not from_category and ptdata.disallow_in_entries then if noerror then return "[not meant to be specified directly, with warning: " .. ptdata.disallow_in_entries .. "]" else process_error("Placetype %s is not meant to be specified directly: " .. ptdata.disallow_in_entries, sg_placetype) end end if link == nil then internal_error("Placetype data present for placetype %s but no link= setting given", sg_placetype) elseif link == true then if orig_placetype then return ("[[%s|%s]]"):format(sg_placetype, orig_placetype) else return ("[[%s]]"):format(sg_placetype) end elseif link == false then process_error("Placetype %s is not meant to be specified directly, but is only for internal use", sg_placetype) elseif link == "w" then return ("[[w:%s|%s]]"):format(sg_placetype, orig_placetype or sg_placetype) elseif link == "separately" then if orig_placetype then local sg_words = split(sg_placetype, " ") local orig_words = split(orig_placetype, " ") if #sg_words ~= #orig_words then internal_error("Can't construct 'separately' link for plural placetype %s as original placetype %s " .. "has different number of words", orig_placetype, sg_placetype) else for i = 1, #sg_words do if sg_words[i] == orig_words[i] then sg_words[i] = ("[[%s]]"):format(sg_words[i]) else sg_words[i] = ("[[%s|%s]]"):format(sg_words[i], orig_words[i]) end end return concat(sg_words, " ") end else return (sg_placetype:gsub("([^ ]+)", "[[%1]]")) end elseif link:find("^%+") then link = link:sub(2) -- discard initial + return ("[[%s|%s]]"):format(link, orig_placetype or sg_placetype) elseif not orig_placetype then return link else return require(en_utilities_module).pluralize(link) end end --[==[ Get the display form of a placetype by looking it up in `placetype_data`. If the placetype is recognized, or is the plural of a recognized placetype, the corresponding linked display form is returned (with plural placetypes displaying as plural but linked to the singular form of the placetype). Otherwise, return nil. If we're generating the description of a category, `category_type` should be set to one of `"top-level"` (for top-level categories like [[:Category:Neighborhoods]]), `"noncity"` (for non-city categories like [[:Category:Neighborhoods in Illinois, USA]]) or `"city"` (for city categories like [[:Category:Neighborhoods of Chicago]]). Otherwise, we're generating the description for use in formatting a {{tl|place}} call, and category-only placetypes ending in `!` will be ignored, along with special `category_link*` settings. `return_full` is used along with `category_type` and will preferably return the "full" variant of category link settings, i.e. `full_category_link*`; if they don't exist, the `category_link*` value is prepended with `"names of"`. `noerror` says to not throw an error when encountering entry placetypes that would be disallowed. ]==] function export.get_placetype_display_form(placetype, category_type, return_full, noerror) local from_category = not not category_type local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if canon_placetype then local raw_link local function is_linked_string(str) return type(str) == "string" and str:find("%[%[") end if category_type then local fetched_full local function fetch_maybe_full(prop) local retval = ptdata["full_" .. prop] if retval ~= nil then if return_full then return retval, true else internal_error("Saw full_" .. prop .. "=%s but `return_full` not set, can't handle", retval) end end return ptdata[prop], false end local function maybe_prefix(str) if return_full and not fetched_full then return "names of " .. str else return str end end -- Careful with `false` as possible value. if category_type == "top-level" then raw_link, fetched_full = fetch_maybe_full("category_link_top_level") elseif category_type == "noncity" then raw_link, fetched_full = fetch_maybe_full("category_link_before_noncity") elseif category_type == "city" then raw_link, fetched_full = fetch_maybe_full("category_link_before_city") else internal_error('Unrecognized value for `category_type` %s, should be "top-level", "noncity" or "city"', category_type) end if type(raw_link) == "string" then return maybe_prefix(raw_link), ptdata elseif raw_link ~= nil then return raw_link, ptdata end raw_link, fetched_full = fetch_maybe_full("category_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end if ptmatch == "plural" then raw_link, fetched_full = fetch_maybe_full("plural_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end end if raw_link == nil then raw_link, fetched_full = fetch_maybe_full("link") end if raw_link == false then return raw_link, ptdata end return maybe_prefix(make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror)), ptdata else if ptmatch == "plural" then raw_link = ptdata.plural_link if raw_link == false then process_error("Placetype %s cannot appear plural", placetype) end if is_linked_string(raw_link) then return raw_link, ptdata end end if raw_link == nil then raw_link = ptdata.link end return make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror), ptdata end end return nil end local function resolve_unlinked_placename_display_aliases(placetype, placename) local equiv_placetypes = export.get_placetype_equivs(placetype) for i, equiv in ipairs(equiv_placetypes) do equiv_placetypes[i] = equiv.placetype end local all_display_aliases_found = {} local all_others_found = {} for group, key, spec in m_locations.iterate_matching_location { placetypes = equiv_placetypes, placename = placename, alias_resolution = "display", } do if spec.alias_of and spec.display then insert(all_display_aliases_found, {group, key, spec, spec.display_as_full}) else insert(all_others_found, {group, key, spec}) end end if not all_display_aliases_found[1] then return placename elseif all_display_aliases_found[2] then internal_error("Found multiple matching display aliases for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) elseif all_others_found[1] then internal_error("Found a display alias along with other possible meanings for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) else local group, key, spec, as_full = unpack(all_display_aliases_found[1]) local full, elliptical = m_locations.key_to_placename(group, key) return as_full and full or elliptical end end --[==[ If `placename` of type `placetype` is a display alias, convert it to its canonical form; otherwise, return unchanged. Display aliases transform certain placenames into canonical displayed forms. For example, if any of `country/US`, `country/USA` or `country/United States of America` (or `c/US`, etc.) are given, the result will be displayed as `United States`. '''NOTE''': Display aliases change what is displayed from what the editor wrote in the Wikitext. As a result, they should (a) be non-political in nature, and (b) not involve a change where the word `the` needs to be added or removed. For example, normalizing `US` and `USA` to `United States` for display purposes is OK but normalizing `Burma` to `Myanmar` is not (instead a cat alias should be used) because the terms `Burma` and `Myanmar` have clear political connotations. Similarly, we have a display alias that maps the old name of `Macedonia` as a country (but not a region!) to `North Macedonia`, but `Republic of Macedonia` is mapped to `North Macedonia` only as a cat alias because the two terms differ in their use of `the`. (For example, if we had a display alias mapping `Republic of Macedonia` to `North Macedonia`, the call {{tl|place|en|the <<capital city>> of the <<c/Republic of Macedonia>>}} would wrongly display as `the [[capital city]] of the [[North Macedonia]]`.) Generally, display normalizations tend to involve alternative forms (e.g. abbreviations, ellipses, foreign spellings) where the normalization improves clarity and consistency. ]==] function export.resolve_placename_display_aliases(placetype, placename) -- If the placename is a link, apply the alias inside the link. -- This pattern matches both piped and unpiped links. If the link is not piped, the second capture (linktext) will -- be empty. local link, linktext = rmatch(placename, "^%[%[([^|%[%]]+)|?([^|%[%]]-)%]%]$") if link then if linktext ~= "" then local alias = resolve_unlinked_placename_display_aliases(placetype, linktext) return "[[" .. link .. "|" .. alias .. "]]" else local alias = resolve_unlinked_placename_display_aliases(placetype, link) return "[[" .. alias .. "]]" end else return resolve_unlinked_placename_display_aliases(placetype, placename) end end --[==[ Generate the "prefixed" version of a bare key, i.e. prefix it with `the` if correct for this key. ]==] function export.get_prefixed_key(key, spec) if spec.the then return "the " .. key else return key end end -- Necessary for use by [[Module:place]]. FIXME: Reorganize the modules so this isn't necessary. export.iterate_matching_location = m_locations.iterate_matching_location --[=[ Iterator that iterates over holonyms in `place_desc`. If `first_holonym_index` is given, start iterating at the specified holonym and stop either when there are no more holonyms or a holonym with modifier `:also` is found. If `first_holonym_index` is nil or omitted, iterate over all holonyms regardless. If `include_raw_text_holonyms` is specified, raw text holonyms (those not of the form `placetype/placename`) are returned as well; they can be identified by the fact that the `placetype` field in the holonym structure is nil. Two values are returned at each iteration, the holonym index and holonym structure, similar to `ipairs()`. ]=] function export.get_holonyms_to_check(place_desc, first_holonym_index, include_raw_text_holonyms) local stop_at_also = not not first_holonym_index return function(place_desc, index) while true do index = index + 1 local this_holonym = place_desc.holonyms[index] -- If we were passed in a starting holonym index, go up to but not including a holonym marked with `:also` -- (continue_cat_loop); the categorization code will then restart the loop at that holonym. That holonym -- will have `:also` marked on it, so make sure not to stop immediately if the first holonym is marked with -- `:also`. if not this_holonym or stop_at_also and index > first_holonym_index and this_holonym.continue_cat_loop then return nil end -- If not placetype, we're processing raw text, which we normally want to skip. if include_raw_text_holonyms or this_holonym.placetype then return index, this_holonym end end end, place_desc, first_holonym_index and first_holonym_index - 1 or 0 end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, iterate over all such known locations, returning for each location the corresponding key, spec and group as well as the trail of ancestral containers. Unlike `iterate_matching_location()`, this specifically checks that there is no mismatch between the location's containers at any level and any of the following holonyms in the {{tl|place}} spec. The fields in `data` are: * `holonym_placetype`: The placetype of the holonym. It can actually be a list of possible placetypes, as with `iterate_matching_location()`. * `holonym_placename`: The placename of the holonym. * `holonym_index`: The index of the holonym among the holonyms in `place_desc`, or nil if the holonym is not among the holonyms in `place_desc`. (If a holonym index is given, we check for container mismatches among the holonyms following the specified index, stopping either when encountering a holonym marked with modifier `:also` or, if none exist, when we run out of holonyms. If no holonym index is given, we check all holonyms for container mismatches.) * `place_desc`: Description of the place; used for the holonyms, to check for container mismatches. Returns four values: the location group, the canonical key by which the location is known, the spec object describing the location and the trail of ancestral containers for the location. The first three values are the same as for `iterate_matching_location`. ]==] function export.iterate_matching_holonym_location(data) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc local matching_location_iterator = m_locations.iterate_matching_location { placetypes = holonym_placetype, placename = holonym_placename, } return function() while true do local group, key, spec = matching_location_iterator() if not group then return nil end local container_trail = {} -- For each level of container, check that there are no mismatches (i.e. other location of the same -- placetype) mentioned. We allow a mismatch at a given level if there's also a match with the container -- at that level. For example, in the case of Kansas City, defined in [[Module:place/locations]] as a city -- in Missouri, if we define it as {{tl|place|city|s/Missouri,Kansas}}, we ignore the mismatching state of -- Kansas because the correct state of Missouri was also mentioned. But imagine we are defining Newark, -- Delaware as {{tl|place|city|s/Delaware|c/US}} and (as is the case) we have an entry for Newark, New -- Jersey in [[Module:place/locations]]. Just because the containing location `US` matches isn't enough, -- because Newark, NJ also has New Jersey as a containing location and there's a mismatch at that level. If -- there are no mismatches at any level we assume we're dealing with the right known location. -- -- If at a given level there are multiple containing locations, we count a match if any holonym matches any -- containing location, and a mismatch only if a holonym exists of the same placetype that doesn't match any -- containing location. local containers_mismatch = false for containers in m_locations.iterate_containers(group, key, spec) do insert(container_trail, containers) local match_at_level = false local mismatch_at_level = false for other_holonym_index, other_holonym in export.get_holonyms_to_check(place_desc, holonym_index and holonym_index + 1 or nil) do local other_source_holonym = other_holonym.augmented_from_holonym if other_source_holonym and other_source_holonym.placetype == holonym_placetype and other_source_holonym.unlinked_placename ~= holonym_placename then -- Ignore holonyms added during the augmentation process for other holonyms of the same -- placetype as the placetype of the holonym we're considering. See comment in -- augment_holonyms_with_container() for why we do this. -- continue; grrr, no 'continue' in Lua else local holonym_matches_at_level = false local holonym_exists_with_same_placetype = false for _, container in ipairs(containers) do if not container.spec.no_check_holonym_mismatch then local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) local placetypes = container.spec.placetype if type(placetypes) ~= "table" then placetypes = {placetypes} end local placetype_equivs = {} for _, pt in ipairs(placetypes) do m_table.extend(placetype_equivs, export.get_placetype_equivs(pt)) end local this_holonym_matches = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype and (other_holonym.unlinked_placename == full_container_placename or other_holonym.unlinked_placename == elliptical_container_placename) end ) if this_holonym_matches then holonym_matches_at_level = true break end local this_holonym_exists_with_same_placetype = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype end ) if this_holonym_exists_with_same_placetype then -- We seem to have a mismatch at this level. But before we decide conclusively that this -- is the case, check to see whether the putative mismatch is an alias and matches when -- we resolve the alias. for oh_group, oh_key, oh_spec, oh_container_trail in export.iterate_matching_holonym_location { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = place_desc, } do local oh_full_placename, oh_elliptical_placename = m_locations.key_to_placename(oh_group, oh_key) if oh_full_placename == full_container_placename or oh_elliptical_placename == elliptical_container_placename then -- Alias matched when resolved. this_holonym_matches = true break end end if this_holonym_matches then -- Alias matched above when resolved. holonym_matches_at_level = true break else -- Not an alias, or doesn't match when resolved. We have a true mismatch. holonym_exists_with_same_placetype = true end end end end if holonym_matches_at_level then match_at_level = true break end if holonym_exists_with_same_placetype then mismatch_at_level = true end end end if not match_at_level and mismatch_at_level then containers_mismatch = true break end end if not containers_mismatch then return group, key, spec, container_trail end end end end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, find and return the corresponding key, spec and group as well as the trail of ancestral containers. This is like `iterate_matching_holonym_location()` but throws an error if more than one location matches. (An example where this would happen is {{tl|place|en|neighborhood|city/Newcastle}}, because there are two known locations named Newcastle. To fix this, specify additional following disambiguating holonyms, e.g. {{tl|place|en|neighborhood|city/Newcastle|s/New South Wales}}. ]==] function export.find_matching_holonym_location(data) local all_found = {} for group, key, spec, container_trail in export.iterate_matching_holonym_location(data) do insert(all_found, {group, key, spec, container_trail}) end if not all_found[1] then return nil elseif all_found[2] then local holonym_placetype = data.holonym_placetype if type(holonym_placetype) == "table" then holonym_placetype = concat(holonym_placetype, ",") end local found_keys = {} for _, found in ipairs(all_found) do local _, key, _, _ = unpack(found) insert(found_keys, key) end error(("Found multiple matching locations for holonym '%s/%s'; specify disambiguating context in the " .. "containing holonyms: %s"):format(holonym_placetype, data.holonym_placename, dump(found_keys))) else return unpack(all_found[1]) end end ------------------------------------------------------------------------------------------ -- Placename and placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: This is a map from aliases to their canonical forms. Any placetypes appearing as keys here will be mapped to their canonical forms in all respects, including the display form. Contrast entries in 'placetype_data' with a fallback, which applies to categorization and other processes but not to display. The most important aliases are for holonym placetypes, particularly those that occur often such as "country", "state", "province" and the like. Particularly long placetypes that mostly occur as entry placetypes (e.g. "census-designated place") can be given abbreviations, but it is generally preferred to spell out the entry placetype. Note also that we purposely avoid certain abbreviations that would be ambiguous (e.g. "d", which could variously be interpreted as "department", "district" or "division"). ]==] export.placetype_aliases = { ["acomm"] = "autonomous community", ["adr"] = "administrative region", ["adterr"] = "administrative territory", -- Pakistan ["aobl"] = "autonomous oblast", ["aokr"] = "autonomous okrug", ["ap"] = "autonomous province", ["apref"] = "autonomous prefecture", ["aprov"] = "autonomous province", ["ar"] = "autonomous region", ["arch"] = "archipelago", ["arep"] = "autonomous republic", ["aterr"] = "autonomous territory", ["atu"] = "autonomous territorial unit", ["bor"] = "borough", ["c"] = "country", ["can"] = "canton", ["carea"] = "council area", ["cc"] = "constituent country", ["cdblock"] = "community development block", ["cdep"] = "Crown dependency", ["CDP"] = "census-designated place", ["cdp"] = "census-designated place", ["clcity"] = "county-level city", ["co"] = "county", ["cobor"] = "county borough", ["colcity"] = "county-level city", ["coll"] = "collectivity", ["comm"] = "community", ["cont"] = "continent", ["contr"] = "continental region", ["contregion"] = "continental region", ["cpar"] = "civil parish", ["damun"] = "direct-administered municipality", ["dep"] = "dependency", ["department capital"] = "departmental capital", ["dept"] = "department", ["depterr"] = "dependent territory", ["dist"] = "district", ["distmun"] = "district municipality", ["div"] = "division", ["emp"] = "empire", ["fpref"] = "French prefecture", ["gov"] = "governorate", ["govnat"] = "governorate", ["home-rule city"] = "home rule city", ["home-rule municipality"] = "home rule municipality", ["inner-city area"] = "inner city area", ["ires"] = "Indian reservation", ["isl"] = "island", ["lbor"] = "London borough", ["lga"] = "local government area", ["lgarea"] = "local government area", ["lgd"] = "local government district", ["lgdist"] = "local government district", ["metbor"] = "metropolitan borough", ["metcity"] = "metropolitan city", ["metmun"] = "metropolitan municipality", ["mtn"] = "mountain", ["mun"] = "municipality", ["mundist"] = "municipal district", ["nonmetropolitan county"] = "non-metropolitan county", ["obl"] = "oblast", ["okr"] = "okrug", ["p"] = "province", ["par"] = "parish", ["parmun"] = "parish municipality", ["pen"] = "peninsula", ["plcity"] = "prefecture-level city", ["plcolony"] = "Polish colony", ["pref"] = "prefecture", ["prefcity"] = "prefecture-level city", ["preflcity"] = "prefecture-level city", ["prov"] = "province", ["r"] = "region", ["range"] = "mountain range", ["rcm"] = "regional county municipality", ["rcomun"] = "regional county municipality", ["rdist"] = "regional district", ["rep"] = "republic", ["rhrom"] = "rural hromada", ["riv"] = "river", ["rmun"] = "regional municipality", ["robor"] = "royal borough", ["romp"] = "Roman province", ["runit"] = "regional unit", ["rurmun"] = "rural municipality", ["s"] = "state", ["sar"] = "special administrative region", ["shrom"] = "settlement hromada", ["spref"] = "subprefecture", ["sprefcity"] = "sub-prefectural city", ["sprovcity"] = "subprovincial city", ["submet city"] = "sub-metropolitan city", ["submetropolitan city"] = "sub-metropolitan city", ["sub-prefecture-level city"] = "sub-prefectural city", ["sub-provincial city"] = "subprovincial city", ["sub-provincial district"] = "subprovincial district", ["terr"] = "territory", ["terrauth"] = "territorial authority", ["twp"] = "township", ["twpmun"] = "township municipality", ["uauth"] = "unitary authority", ["ucomm"] = "unincorporated community", ["udist"] = "unitary district", ["uhrom"] = "urban hromada", ["uterr"] = "union territory", ["utwpmun"] = "united township municipality", ["val"] = "valley", ["vdc"] = "village development committee", ["vil"] = "village", ["voi"] = "voivodeship", ["wcomm"] = "Welsh community", -- Chinese capital/seat types ["首都"] = "capital", ["省會"] = "provincial capital", ["首府"] = "regional capital", ["縣治"] = "county seat", -- Chinese placetype name aliases (map to English equivalents so they inherit preposition, display handler, etc.) ["國家"] = "country", ["構成國"] = "constituent country", ["大洲"] = "continent", ["洲"] = "continent", ["大陸"] = "continent", ["帝國"] = "empire", ["共和國"] = "republic", ["邦"] = "state", ["州"] = "state", ["省"] = "province", ["郡"] = "county", ["縣"] = "county", ["城市"] = "city", ["市"] = "city", ["區"] = "district", ["鄉"] = "township", ["鎮"] = "town", ["村"] = "village", ["社區"] = "community", ["島"] = "island", ["島嶼"] = "island", ["群島"] = "archipelago", ["半島"] = "peninsula", ["山"] = "mountain", ["山脈"] = "mountain range", ["河"] = "river", ["河流"] = "river", ["谷"] = "valley", ["山谷"] = "valley", ["特別行政區"] = "special administrative region", ["直轄市"] = "direct-administered municipality", ["地級市"] = "prefecture-level city", ["縣級市"] = "county-level city", ["副省級市"] = "subprovincial city", ["副地級市"] = "sub-prefectural city", ["市轄區"] = "municipal district", ["自治區"] = "autonomous region", ["自治省"] = "autonomous province", ["自治州"] = "autonomous prefecture", ["自治共和國"] = "autonomous republic", ["自治市"] = "borough", ["屬地"] = "dependent territory", ["海外領地"] = "dependent territory", ["領地"] = "territory", ["聯邦屬地"] = "union territory", ["皇家屬地"] = "Crown dependency", ["教區"] = "parish", ["堂區"] = "parish", ["民政教區"] = "civil parish", ["廣域市"] = "metropolitan city", ["非建制地區"] = "unincorporated community", ["人口普查指定地區"] = "census-designated place", ["印第安保留地"] = "Indian reservation", ["羅馬行省"] = "Roman province", ["單一管理區"] = "unitary authority", ["地方行政區"] = "local government area", } local no_link_def_article = {link = false, article = "the"} local no_link_no_article = {link = false, article = false} --[==[ var: These qualifiers can be prepended onto any placetype and will be handled correctly. For example, the placetype `large city` will be displayed as `large <nowiki>[[city]]</nowiki>` and categorized as if `city` were specified. If the value in the following table is a string, the qualifier will display according to the string. If the value is `true`, the qualifier will be linked to its corresponding Wiktionary entry. If the value is `false`, the qualifier will not be linked but will appear as-is. Note that these qualifiers do not override placetypes with entries elsewhere that contain those same qualifiers. For example, the entry for `inland sea` in `placetype_data` will apply in preference to treating `inland sea` as equivalent to `sea`. ]==] export.placetype_qualifiers = { -- generic qualifiers ["huge"] = false, ["tiny"] = false, ["large"] = false, ["big"] = false, ["mid-size"] = false, ["mid-sized"] = false, ["small"] = false, ["sizable"] = false, ["important"] = false, ["long"] = false, ["short"] = false, ["major"] = false, ["minor"] = false, ["high"] = false, ["tall"] = false, ["low"] = false, ["left"] = false, -- left tributary ["right"] = false, -- right tributary ["modern"] = false, -- for use in opposition to "ancient" in another definition -- "former" qualifiers ["abandoned"] = true, ["ancient"] = true, ["deserted"] = true, ["extinct"] = true, ["former"] = false, ["historic"] = "historical", ["historical"] = true, ["medieval"] = true, ["mediaeval"] = true, ["ruined"] = true, ["traditional"] = true, -- sea qualifiers ["coastal"] = true, ["inland"] = true, -- note, we also have an entry in placetype_data for 'inland sea' to get a link to [[inland sea]] ["maritime"] = true, ["overseas"] = true, ["seaside"] = true, ["beachfront"] = true, ["beachside"] = true, ["riverside"] = true, -- lake qualifiers ["freshwater"] = true, ["saltwater"] = true, ["endorheic"] = true, ["oxbow"] = true, ["ox-bow"] = "[[oxbow]]", -- [[ox-bow]] is a red link ["tidal"] = true, -- land qualifiers ["hilltop"] = true, ["hilly"] = true, ["insular"] = true, ["peninsular"] = true, ["chalk"] = true, ["karst"] = true, ["limestone"] = true, ["mountainous"] = true, ["mountaintop"] = true, ["alpine"] = true, ["volcanic"] = true, -- for an island -- political status qualifiers ["autonomous"] = true, ["incorporated"] = true, ["special"] = true, ["unincorporated"] = true, ["coterminous"] = true, -- monetary status/etc. qualifiers ["fashionable"] = true, ["wealthy"] = true, ["affluent"] = true, ["declining"] = true, -- city vs. rural qualifiers ["urban"] = true, ["suburban"] = true, ["exurban"] = true, ["outlying"] = true, ["remote"] = true, ["rural"] = true, ["outback"] = true, ["inner"] = false, ["inner-city"] = true, ["central"] = false, ["outer"] = false, -- land use qualifiers ["residential"] = true, ["agricultural"] = true, ["business"] = true, ["commercial"] = true, ["industrial"] = true, -- business use qualifiers ["railroad"] = true, ["railway"] = true, ["farming"] = true, ["fishing"] = true, ["mining"] = true, ["logging"] = true, ["cattle"] = true, -- tourism use qualifiers ["resort"] = true, -- note, we also have 'resort city' and 'resort town', that take precedecne ["spa"] = true, -- note, we also have 'spa city' and 'spa town', that take precedecne ["ski"] = true, -- note, we also have 'ski resort city' and 'ski resort town', that take precedecne -- religious qualifiers ["holy"] = true, ["sacred"] = true, ["religious"] = true, ["secular"] = true, -- qualifiers for nonexistent places ["claimed"] = false, ["fictional"] = true, ["legendary"] = true, ["mythical"] = true, ["mythological"] = true, -- directional qualifiers ["northern"] = false, ["southern"] = false, ["eastern"] = false, ["western"] = false, ["north"] = false, ["south"] = false, ["east"] = false, ["west"] = false, ["northeastern"] = false, ["southeastern"] = false, ["northwestern"] = false, ["southwestern"] = false, ["northeast"] = false, ["southeast"] = false, ["northwest"] = false, ["southwest"] = false, -- seasonal qualifiers ["summer"] = true, -- e.g. for 'summer capital' ["winter"] = true, -- legal status qualifiers -- FIXME: Two-word qualifiers don't work yet. But you can enter "de-facto" and it's canonicalized to [[de facto]]. ["official"] = true, ["unofficial"] = true, ["de facto"] = true, -- 'de facto capital' ["de-facto"] = "[[de facto]]", -- [[de-facto]] is a red link ["de jure"] = true, -- 'de jure capital' ["de-jure"] = "[[de jure]]", -- [[de-jure]] is a red link -- NOTE: 'unrecognized/unrecognised' are handled as placetypes 'unrecognized country', 'unrecognized state' -- misc. qualifiers ["planned"] = true, ["chartered"] = true, ["landlocked"] = true, ["uninhabited"] = true, -- superlative qualifiers ["first"] = no_link_def_article, ["second"] = no_link_def_article, -- for "second largest" etc. ["third"] = no_link_def_article, ["fourth"] = no_link_def_article, ["last"] = no_link_def_article, ["only"] = no_link_def_article, ["sole"] = no_link_def_article, ["main"] = no_link_def_article, ["largest"] = no_link_def_article, ["biggest"] = no_link_def_article, ["smallest"] = no_link_def_article, ["shortest"] = no_link_def_article, ["longest"] = no_link_def_article, ["tallest"] = no_link_def_article, ["highest"] = no_link_def_article, ["lowest"] = no_link_def_article, ["leftmost"] = no_link_def_article, ["rightmost"] = no_link_def_article, ["innermost"] = no_link_def_article, ["outermost"] = no_link_def_article, ["northernmost"] = no_link_def_article, ["southernmost"] = no_link_def_article, ["westernmost"] = no_link_def_article, ["easternmost"] = no_link_def_article, ["northwesternmost"] = no_link_def_article, ["southwesternmost"] = no_link_def_article, ["northeasternmost"] = no_link_def_article, ["southeasternmost"] = no_link_def_article, -- several/various ["several"] = no_link_no_article, ["various"] = no_link_no_article, ["numerous"] = no_link_no_article, ["multiple"] = no_link_no_article, ["many"] = no_link_no_article, ["other"] = no_link_no_article, } --[==[ var: In this table, the key qualifiers should be treated the same as the value qualifiers for categorization purposes. This is overridden by `placetype_data` and `qualifier_to_placetype_equivs`. ]==] export.former_qualifiers = { ["abandoned"] = {"FORMER"}, ["ancient"] = {"ANCIENT", "FORMER"}, ["former"] = {"FORMER"}, ["extinct"] = {"FORMER"}, ["historic"] = {"FORMER"}, ["historical"] = {"FORMER"}, ["medieval"] = {"ANCIENT", "FORMER"}, ["mediaeval"] = {"ANCIENT", "FORMER"}, ["ruined"] = {"ANCIENT", "FORMER"}, ["traditional"] = {"FORMER"}, } --[==[ var: In this table, any placetypes containing these qualifiers that do not occur in `placetype_data` should be mapped to the specified placetypes for categorization purposes. Entries here are overridden by `placetype_data`. ]==] export.qualifier_to_placetype_equivs = { ["fictional"] = "fictional location", ["legendary"] = "mythological location", ["mythical"] = "mythological location", ["mythological"] = "mythological location", -- For e.g. Taiwan as a "claimed province" of China; parts of Belize as claimed by Guatemala; various islands -- claimed by various parties in East Asia. FIXME: We should conditionalize on what is being claimed since there are -- also claimed capitals, e.g. Israel and Palestine claim Jerusalem as their capital. ["claimed"] = "claimed political division", } --[==[ var: Mapping from placetypes to the corresponding plural category-only placetype for a capital of that placetype. The reverse mapping also exists. ]==] export.placetype_to_capital_cat = { ["autonomous community"] = "autonomous community capitals", ["canton"] = "cantonal capitals", ["comarca"] = "comarca capitals", ["country"] = "national capitals", -- The following are not obviously different from 'county seats' but the latte terminology is used in the US. ["county"] = "county capitals", ["department"] = "departmental capitals", ["district"] = "district capitals", ["division"] = "division capitals", ["emirate"] = "emirate capitals", ["governorate"] = "governorate capitals", ["hromada"] = "hromada capitals", ["krai"] = "krai capitals", ["metropolitan city"] = "metropolitan city capitals", ["municipality"] = "municipal capitals", ["oblast"] = "oblast capitals", ["okrug"] = "okrug capitals", ["prefecture"] = "prefectural capitals", ["province"] = "provincial capitals", ["raion"] = "raion capitals", ["regency"] = "regency capitals", ["region"] = "regional capitals", ["regional unit"] = "regional unit capitals", ["republic"] = "republic capitals", ["state"] = "state capitals", ["territory"] = "territorial capitals", ["voivodeship"] = "voivodeship capitals", } --[==[ var: This contains placenames that should be preceded by an article (almost always "the"). '''NOTE''': There are multiple ways that placenames can come to be preceded by "the": # Listed here. # Given in [[Module:place/locations]] with an initial "the". All such placenames are added to this map by the code just below the map. # The placetype of the placename has `holonym_use_the = true` in its placetype_data. # A regex in placename_the_re matches the placename. Note that "the" is added only before the first holonym in a place description. ]==] export.placename_article = { -- This should only contain info that can't be inferred from [[Module:place/locations]]. ["archipelago"] = { ["Cyclades"] = "the", ["Dodecanese"] = "the", }, ["country"] = { ["Holy Roman Empire"] = "the", }, ["empire"] = { ["Holy Roman Empire"] = "the", }, ["island"] = { ["North Island"] = "the", ["South Island"] = "the", }, ["region"] = { ["Balkans"] = "the", ["Russian Far East"] = "the", ["Caribbean"] = "the", ["Caucasus"] = "the", ["Middle East"] = "the", ["New Territories"] = "the", ["North Caucasus"] = "the", ["South Caucasus"] = "the", ["West Bank"] = "the", ["Gaza Strip"] = "the", }, ["valley"] = { ["San Fernando Valley"] = "the", }, } --[==[ var: Regular expressions to apply to determine whether we need to put 'the' before a holonym. The key "*" applies to all holonyms, otherwise only the regexes for the holonym's placetype apply. ]==] export.placename_the_re = { -- We don't need entries for peninsulas, seas, oceans, gulfs or rivers -- because they have holonym_use_the = true. ["*"] = {"^Isle of ", " Islands$", " Mountains$", " Empire$", " Country$", " Region$", " District$", "^City of "}, ["bay"] = {"^Bay of "}, ["lake"] = {"^Lake of "}, ["country"] = {"^Republic of ", " Republic$"}, ["republic"] = {"^Republic of ", " Republic$"}, ["region"] = {" [Rr]egion$"}, ["river"] = {" River$"}, ["local government area"] = {"^Shire of "}, ["county"] = {"^Shire of "}, ["Indian reservation"] = {" Reservation", " Nation"}, ["tribal jurisdictional area"] = {" Reservation", " Nation"}, } --[==[ var: If any of the following holonyms are present, the associated holonyms are automatically added to the end of the list of holonyms for categorization (but not display) purposes. ]==] export.cat_implications = { ["region"] = { ["東歐"] = {"continent/歐洲"}, ["中歐"] = {"continent/歐洲"}, ["西歐"] = {"continent/歐洲"}, ["南歐"] = {"continent/歐洲"}, ["北歐"] = {"continent/歐洲"}, ["東北歐"] = {"continent/歐洲"}, ["東南歐"] = {"continent/歐洲"}, ["北高加索"] = {"continent/歐洲"}, ["南高加索"] = {"continent/亞洲"}, ["南亞"] = {"continent/亞洲"}, ["東亞"] = {"continent/亞洲"}, ["中亞"] = {"continent/亞洲"}, ["西亞"] = {"continent/亞洲"}, ["東南亞"] = {"continent/亞洲"}, ["北亞"] = {"continent/亞洲"}, ["安納托利亞"] = {"continent/亞洲"}, ["小亞細亞"] = {"continent/亞洲"}, ["美索不達米亞"] = {"continent/亞洲"}, ["北非"] = {"continent/非洲"}, ["中非"] = {"continent/非洲"}, ["西非"] = {"continent/非洲"}, ["東非"] = {"continent/非洲"}, ["南非"] = {"continent/非洲"}, ["中美洲"] = {"continent/中美洲"}, ["加勒比地區"] = {"continent/北美洲"}, ["玻里尼西亞"] = {"continent/大洋洲"}, ["密克羅尼西亞"] = {"continent/大洋洲"}, ["美拉尼西亞"] = {"continent/大洋洲"}, ["西伯利亞"] = {"country/俄羅斯", "continent/亞洲"}, ["俄羅斯遠東地區"] = {"country/俄羅斯", "continent/亞洲"}, ["南威爾斯"] = {"constituent country/威爾斯", "continent/歐洲"}, ["巴爾幹半島"] = {"continent/歐洲"}, ["約旦河西岸"] = {"country/巴勒斯坦", "continent/亞洲"}, ["加薩"] = {"country/巴勒斯坦", "continent/亞洲"}, ["加薩走廊"] = {"country/巴勒斯坦", "continent/亞洲"}, } } ------------------------------------------------------------------------------------------ -- Category and display handlers -- ------------------------------------------------------------------------------------------ local function city_type_cat_handler(data) local entry_placetype = data.entry_placetype local generic_before_non_cities = export.get_placetype_prop(entry_placetype, "generic_before_non_cities") if not generic_before_non_cities then internal_error("city_type_cat_handler called on placetype %s that doesn't have a `generic_before_non_cities`" .. " setting", entry_placetype) end local plural_entry_placetype = export.pluralize_placetype(entry_placetype) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and not spec.is_city then -- ZH: "法國的城市" (location_key + 的 + zh_placetype_name) local zh_name_raw = export.get_zh_placetype_name(entry_placetype) local zh_entry_name = zh_name_raw and export.format_zh_name(zh_name_raw) or plural_entry_placetype local de = export.zh_strings.de_particle local retcats = {export.get_prefixed_key(key, spec) .. de .. zh_entry_name} if container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_entry_name) end end return retcats end end local function capital_city_cat_handler(data, non_city) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc -- The first time we're called we want to return something; otherwise we will be called for later-mentioned -- holonyms, which can result in wrongly classifying into e.g. `National capitals`. Simulate the loop in -- find_placetype_cat_specs() over holonyms so we get the proper `Cities in ...` categories as well as the capital -- category/categories we add below. local retcats if not non_city and place_desc.holonyms then for h_index, holonym in export.get_holonyms_to_check(place_desc, holonym_index) do local h_placetype, h_placename = holonym.placetype, holonym.unlinked_placename retcats = city_type_cat_handler { entry_placetype = "city", holonym_placetype = h_placetype, holonym_placename = h_placename, holonym_index = h_index, place_desc = place_desc, } if retcats then break end end end if not retcats then retcats = {} end -- Now find the appropriate capital-type category for the placetype of the holonym, e.g. 'State capitals'. If we -- recognize the holonym among the known holonyms in [[Module:place/locations]], also add a category like 'State -- capitals of the United States'. Truncate e.g. 'autonomous region' to 'region', 'union territory' to 'territory' -- when looking up the type of capital category, if we can't find an entry for the holonym placetype itself (there's -- an entry for 'autonomous community'). -- ZH: look up Chinese capital label by holonym placetype ("首都", "省會", "首府", etc.) local zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype] if not zh_capital_name then zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype:gsub("^.* ", "")] end local de = export.zh_strings.de_particle if zh_capital_name then local inserted_specific_variant_cat = false if holonym_index then -- Now find the first recognized holonym location. We don't stop when :also is seen because of the common pattern -- where we use :also to specify that a given city is the capital at multiple surrounding levels. local matching_group, matching_key, matching_spec, matching_container_trail, matching_holonym_index for h_index = holonym_index, #place_desc.holonyms do if place_desc.holonyms[h_index].placetype then matching_group, matching_key, matching_spec, matching_container_trail = export.find_matching_holonym_location { holonym_placetype = place_desc.holonyms[h_index].placetype, holonym_placename = place_desc.holonyms[h_index].unlinked_placename, holonym_index = h_index, place_desc = place_desc, } if matching_group then matching_holonym_index = h_index break end end end if matching_holonym_index == holonym_index then if matching_container_trail[1] and not matching_spec.no_container_cat then for _, container in ipairs(matching_container_trail[1]) do -- ZH: "美國的首都" (location_key + 的 + zh_capital_name) insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_capital_name) inserted_specific_variant_cat = true end end elseif matching_holonym_index then -- Check to make sure that the holonym placetype we were called on is listed among the -- divtypes of the location we found. local function insert_specific_variant_if_possible(key, spec) return export.get_equiv_placetype_prop(holonym_placetype, function(pt) local plural_holonym_placetype = export.pluralize_placetype(pt) local saw_matching_div if spec.divs then local divs = spec.divs if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) ~= "table" then div = {type = div} end if plural_holonym_placetype == div.type then saw_matching_div = true break end end end if saw_matching_div then insert(retcats, export.get_prefixed_key(key, spec) .. de .. zh_capital_name) return true end return false end) end if insert_specific_variant_if_possible(matching_key, matching_spec) then inserted_specific_variant_cat = true elseif not matching_spec.no_container_cat then for _, containers in ipairs(matching_container_trail) do local saw_no_container_cat = false for _, container in ipairs(containers) do if insert_specific_variant_if_possible(container.key, container.spec) then inserted_specific_variant_cat = true break end saw_no_container_cat = saw_no_container_cat or container.spec.no_container_cat end if inserted_specific_variant_cat or saw_no_container_cat then break end end end end else -- This happens when in an invocation like {{place|en|capital city|s/Haryana,Punjab}} for -- [[Chandigarh]]. We fall back to older code that doesn't depend on the holonym index existing. -- FIXME: This may not be necessary. In the example just given, when processing Haryana we add to -- [[:Category:en:State capitals of India]], and nothing extra gets added when processing Punjab. -- Possibly we can just skip this case entirely. local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_capital_name) inserted_specific_variant_cat = true end end end if not inserted_specific_variant_cat then insert(retcats, zh_capital_name) end else -- We didn't recognize the holonym placetype; fall back to generic capital label. insert(retcats, "首都") end return retcats end --[=[ This is invoked specially for all placetypes (see the `*` placetype key at the bottom of `placetype_data`). This is used in two ways: # To add pages to generic holonym categories like [[:Category:en:Places in Merseyside, England]] (and [[:Category:en:Places in England]]) for any pages that have `co/Merseyside` as their holonym. # To categorize demonyms in bare placename categories like [[:Category:en:Merseyside, England]] if the demonym description mentions `co/Merseyside` and doesn't mention a more specific placename that also has a category. (In this case there are none, but we can have demonyms at multiple levels, e.g. in France for individual villages, departments, administrative regions, and for the entire country, and for example we only want to categorize a demonym into [[:Category:France]] if no more specific category applies.) Unlike when invoked from {{tl|place}}, a demonym invocation only adds the most specific holonym category and not the category of any containing polity (hence if we add [[:Category:en:Merseyside, England]] we won't also add [[:Category:England]]). This code also handles cities; e.g. for the first use case above, it would be used to add a page that has `city/Boston` as a holonym to [[:Category:en:Places in Boston]], along with [[:Category:en:Places in Massachusetts, USA]] and [[:Category:en:Places in the United States]]. The city handler tries to deal with the possibility of multiple cities having the same name. For example, the code in [[Module:place/locations]] knows about the city of [[Columbus]], [[Ohio]], which has containing polities `Ohio` (a state) and `the United States` (a country). If either containing polity is mentioned, the handler proceeds to return the key `Columbus` (along with `Ohio, USA` and `the United States`). Otherwise, if any other state or country is mentioned, the handler returns nothing, and otherwise it assumes the mentioned city is the one we're considering and returns `Columbus` etc. This works correctly if the place only mentions Ohio and a holonym for a Columbus in a different country is encountered, because of the function `augment_holonyms_with_container`, which adds the US as a holonym when Ohio is encountered. The single parameter `data` is as in category handlers. The return value is a list of categories (without the preceding language code). ]=] local function generic_place_cat_handler(data) local from_demonym = data.from_demonym local retcats = {} local function insert_retkey(key, spec) if from_demonym then insert(retcats, key) else -- ZH: "法國地名" (location_key + 地名) insert(retcats, export.get_prefixed_key(key, spec) .. "地名") end end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then if not spec.no_generic_place_cat then -- This applies to continents and continental regions. insert_retkey(key, spec) end -- Categorize both in key, and in the larger location(s) that the key is part of, e.g. [[Hirakata]] goes in -- both [[Category:Places in Osaka Prefecture, Japan]] and [[Category:Places in Japan]]. But not when -- no_container_cat is set (e.g. for 'United Kingdom'). if not spec.no_container_cat then for _, container_set in ipairs(container_trail) do local stop_adding_containers = false for _, container in ipairs(container_set) do if not container.spec.no_generic_place_cat then insert_retkey(container.key, container.spec) end if container.spec.no_container_cat then stop_adding_containers = true end end if stop_adding_containers then break end end end return retcats end end --[==[ Special category handler run for all placetypes that checks for specified division placetypes of known locations and categorizes appropriately. ]==] function export.political_division_cat_handler(data) if data.from_demonym then return end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then local divlists = {} if spec.divs then insert(divlists, spec.divs) end if spec.addl_divs then insert(divlists, spec.addl_divs) end for _, divlist in ipairs(divlists) do if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local sgdiv = export.maybe_singularize_placetype(div.type) or div.type local prep = div.prep or "of" local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" then cat_as = {cat_as} end if not export.placetype_data[sgdiv] then internal_error("Placetype %s associated with known location key %s and data %s not found in " .. "`placetype_data`", sgdiv, key, spec) end if sgdiv == data.entry_placetype then -- ZH: "臺灣的縣" format (location_key + 的 + zh_name); ignore cat_as grouping local zh_n_raw = export.get_zh_placetype_name(data.entry_placetype) local zh_n = zh_n_raw and export.format_zh_name(zh_n_raw) or ucfirst(data.entry_placetype) return {export.get_prefixed_key(key, spec) .. export.zh_strings.de_particle .. zh_n} end end end end end --[==[ This is used to add pages to "bare" categories like [[:Category:en:Georgia, USA]] for `[[Georgia]]` and any foreign-language terms that are translations of the state of Georgia. We look at the page title (or its overridden value in {{para|pagename}}) as well as the glosses in {{para|t}}/{{para|t2}} etc., various extra-info values such as the modern names in {{para|modern}}, and any values specified using a form-of directive. We need to pay attention to the entry placetypes specified so we don't overcategorize; e.g. the US state of Georgia is `[[Джорджия]]` in Russian but the country of Georgia is `[[Грузия]]`, and if we just looked for matching names, we'd get both Russian terms categorized into both [[:Category:ru:Georgia, USA]] and [[:Category:ru:Georgia]]. We also need to check the containing holonyms to make sure there isn't a mismatch (so we don't e.g. categorize Newark, Delaware in [[:Category:en:Newark]], which is intended for Newark, New Jersey). ]==] function export.get_bare_categories(args, overall_place_spec) local bare_cats = {} local place_descs = overall_place_spec.descs local possible_placetypes_by_place_desc = {} for i, place_desc in ipairs(place_descs) do possible_placetypes_by_place_desc[i] = {} for _, placetype in ipairs(place_desc.placetypes) do if not export.placetype_is_ignorable(placetype) then local equivs = export.get_placetype_equivs(placetype, {register_former_as_non_former = true}) for _, equiv in ipairs(equivs) do insert(possible_placetypes_by_place_desc[i], equiv.placetype) end end end end local function check_term(term) -- Treat Wikipedia links like local ones. term = term:gsub("%[%[w:", "[["):gsub("%[%[wikipedia:", "[[") term = export.remove_links_and_html(term) term = term:gsub("^the ", "") for i, place_desc in ipairs(place_descs) do -- Iterate over all matching locations in case there are multiple, as with Delhi defined as -- {{place|en|megacity/and/union territory|c/India|containing the national capital [[New Delhi]]}}. for group, key, spec, container_trail in export.iterate_matching_holonym_location { holonym_placetype = possible_placetypes_by_place_desc[i], holonym_placename = term, place_desc = place_desc, } do insert(bare_cats, key) end end end -- FIXME: Should we only do the following if the language is English (requires that the lang is passed in)? -- We should always do it if `pagename` is given (as it is with {{tcl}}) but maybe not otherwise unless 1=en. There -- are cases like [[Ankara]] = English name for capital of Turkey, but also the name in various languages for the -- capital of Ghana (= English [[Accra]]). But this should get caught by mismatching the containing country. The -- advantage of checking when the language isn't English is we catch those places that fail to give an English -- translation but where the translation happens to be the same as the other-language spelling. However, I don't -- know how often this situation occurs. check_term(args.pagename or mw.loadData("Module:headword/data").pagename) for _, t in ipairs(args.t) do check_term(t) end local function check_termobj_list(terms) for _, term in ipairs(terms) do if term.eq then check_term(term.eq) end if term.alt or term.term then check_term(term.alt or term.term) end end end for _, extra_info_terms in ipairs(overall_place_spec.extra_info) do local arg = extra_info_terms.arg if arg == "modern" or arg == "now" or arg == "full" or arg == "short" then check_termobj_list(extra_info_terms.terms) end end for _, directive in ipairs(overall_place_spec.directives) do check_termobj_list(directive.terms) end return bare_cats end --[==[ This is used to augment the holonyms associated with a place description with the containing polities. For example, given the following: `# {{tl|place|en|subprefecture|pref/Hokkaido}}.` We auto-add Japan as another holonym so that the term gets categorized into [[:Category:Subprefectures of Japan]]. To avoid over-categorizing we need to check to make sure no other countries are specified as holonyms. ]==] function export.augment_holonyms_with_container(place_descs) for _, place_desc in ipairs(place_descs) do if place_desc.holonyms then -- This ends up containing a copy of the original holonyms, with the augmented holonyms inserted in their -- appropriate position. We don't just put them at the end because some holonyms have use the `:also` -- modifier, which causes category processing to restart at that point after generating categories for a -- preceding holonym, and we don't want the preceding holonym's augmented holonyms interfering with -- categorization of a later holonym. We proceed from right to left, and each time we augment, we copy -- the holonyms with the augmented holonym(s) inserted appropriately and replace the place description's -- holonyms with the augmented ones before the next iteration. The reason for this is so that e.g. -- {{place|neighborhood|city/Birmingham|co/West Midlands|cc/England}} doesn't throw an error during the -- augmentation process due to 'Birmingham' referring to two known locations (in England and Alabama). If -- we go left to right, we will throw an ambiguity error on `city/Birmingham` because code to exclude -- Birmingham, Alabama needs `c/United Kingdom` present (to cause a mismatch with `c/United States`), -- which isn't yet present as the augmentation code hasn't gotten to `cc/England` yet. For similar -- reasons, we need to include the augmented holonyms in the holonyms considered in the next iteration -- rather than modifying the place description once at athe end. for i = #place_desc.holonyms, 1, -1 do local holonym = place_desc.holonyms[i] if holonym.placetype and not export.placetype_is_ignorable(holonym.placetype) then local group, key, spec, container_trail = export.find_matching_holonym_location { holonym_placetype = holonym.placetype, holonym_placename = holonym.unlinked_placename, holonym_index = i, place_desc = place_desc, } if group and container_trail[1] and not spec.no_auto_augment_container then local augmented_holonyms = {} for j = 1, i do insert(augmented_holonyms, place_desc.holonyms[j]) end for _, containers in ipairs(container_trail) do local any_no_auto_augment_container = false for _, container in ipairs(containers) do any_no_auto_augment_container = any_no_auto_augment_container or container.spec.no_auto_augment_container local containing_type = container.spec.placetype if type(containing_type) == "table" then -- If the containing type is a list, use the first element as the canonical variant. containing_type = containing_type[1] end local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) -- Don't side-effect holonyms while processing them. local new_holonym = { -- By the time we run, the display has already been generated so we don't need to -- set display_placename. placetype = containing_type, -- placename_to_key() for the group should correctly handle both full and elliptical -- placenames, but the full placename seems less likely to be ambiguous. FIXME: We -- should just store the key directly and use it when available to avoid having to -- convert key to placename and back to key. unlinked_placename = full_container_placename, -- Indicate that this is an augmented holonym, and was derived from the specified -- holonym. In iterate_matching_holonym_location(), we ignore augmented holonyms -- derived from holonyms that are different from the holonym we're searching for but -- of the same placetype. This is to correctly handle a situation like -- {{place|river|dept/Ardèche,Gard,Vaucluse,Bouches-du-Rhône|c/France}}. Here, -- `Ardèche` is in `r/Auvergne-Rhône-Alpes`, while `Gard` is in `r/Occitania` and -- the other two are in `r/Provence-Alpes-Côte d'Azur`. Augmenting proceeds from -- right to left, so after it adds `r/Provence-Alpes-Côte d'Azur` to -- `Bouches-du-Rhône`, Vaucluse gets augmented correctly but `Gard` fails to match -- in find_matching_holonym_location() because of the mismatch between augmented -- `r/Provence-Alpes-Côte d'Azur` and actual `r/Occitania`. Similarly, all later -- calls to find_matching_holonym_location() fail to match `Gard` (and likewise -- `Ardèche`) against any known location. To deal with this, we mark augmented -- holoynms as being augmented due to a source holonym, and when processing a given -- holonym, ignore augmented holonyms from other holonyms of the same placetype. -- The restriction to the same placetype is so that `Birmingham` still gets -- correctly disambiguated to Birmingham, England in the example given above near -- the top of this function, using the augmented holonym `c/United Kingdom` added by -- the specified `cc/England` (whose placetype `constituent country` differs from -- the placetype `city` of Birmingham). augmented_from_holonym = holonym, } insert(augmented_holonyms, new_holonym) -- But it is safe to modify other parts of the place_desc. export.key_holonym_into_place_desc(place_desc, new_holonym) end if any_no_auto_augment_container then break end end for j = i + 1, #place_desc.holonyms do insert(augmented_holonyms, place_desc.holonyms[j]) end place_desc.holonyms = augmented_holonyms end end end end end end -- Cat handler for district, areas, neighborhoods and suburbs. Districts are tricky because they can either be political -- divisions or city neighborhoods. Areas similarly can be political divisions (rarely; specifically, in Kuwait), city -- neighborhoods or larger geographical areas/regions. We handle this as follows: -- (1) `placetype_data` cat entries for specific countries or country divisions take precedence over cat_handlers, so if -- the user says {{tl|place|district|s/Maharashtra|c/India}}, we won't even be called because there is an entry that -- categorizes into [[:Category|Districts of Maharashtra, India]]. -- (2) If we're called, we check the holonym we're called on to see if it is a recognized city, e.g. if we're called -- using {{tl|place|district|city/Mumbai|s/Maharashtra|c/India}}. If so, we categorize under e.g. -- [[:Category:Neighbourhoods of Mumbai]]. (Choosing the spelling "neighbourhoods" because we're in India.) -- (3) If we're called and the holonym is not a recognized city, we check if the placetype has has_neighborhoods set. -- If so, it's "city-like" and we categorize under the first containing polity that we recognize. For example, if -- we're called using {{tl|place|district|town/Northampton|co/Hampshire|s/Massachusetts|c/US}}, we should recognize -- town as "city-like" and categorize under [[:Category:Neighborhoods in Massachusetts]]. (Note "in" not "of", and -- note the spelling "neighborhoods" because we're in the US.) -- (4) If the holonym is not city-like, we do nothing. If there's a city or city-like placetype farther up (e.g. we're -- called as {{tl|place|district|ward/Foo|mun/Bar|...}}), we will handle the city-like entity according to (2) or -- (3) when called on that holonym. Otherwise either the categorization in (1) takes place or there's no -- categorization. local function district_neighborhood_cat_handler(data) local function get_plural_entry_placetype(location_spec, container_trail) if data.entry_placetype == "suburb" then return "Suburbs" else -- Check for `british_spelling` setting on the spec itself or any container. local uses_british_spelling = location_spec.british_spelling if uses_british_spelling == nil and container_trail then for _, container_set in ipairs(container_trail) do local must_outer_break = false for _, container in ipairs(container_set) do if container.spec.british_spelling ~= nil then uses_british_spelling = container.spec.british_spelling must_outer_break = true break end end if must_outer_break then break end end end return uses_british_spelling and "Neighbourhoods" or "Neighborhoods" end end -- First check the immediate holonym to see if it's a city or a city-like top-level entity (Hong Kong, Bonaire, -- etc.) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and spec.is_city then return {get_plural_entry_placetype(spec, container_trail) .. " of " .. export.get_prefixed_key(key, spec)} end -- If the entry placetype is neighbo(u)rhood, assume it is a neighborhood even if there isn't a city-like -- entity father up the chain. (E.g. due to a mistaken use of m/ instead of mun/ for municipality.) local has_neighborhoods local entry_placetype = data.entry_placetype if entry_placetype == "neighborhood" or entry_placetype == "neighbourhood" or entry_placetype == "suburb" then has_neighborhoods = true else -- Otherwise, make sure the current holonym is city-like. has_neighborhoods = export.get_equiv_placetype_prop(data.holonym_placetype, function(pt) return export.get_placetype_prop(pt, "has_neighborhoods") end, {continue_on_nil_only = true}) end if has_neighborhoods then -- Loop up the holonyms, looking for city and city-like entities in case of e.g. [[Sepulveda]] written -- {{place|en|neighborhood|valley/San Fernando Valley|city/Los Angeles|s/California|c/USA}} -- but also look for a recognizable poldiv, and if so categorize as "Neighborhoods in POLDIV". We need -- to start with the current holonym, which is especially important for neighborhoods and suburbs that -- may have the first holonym be a recognizable province, etc. but can't hurt otherwise. (Previously -- we skipped the first/current holonym.) for other_holonym_index, other_holonym in export.get_holonyms_to_check(data.place_desc, data.holonym_index) do local other_holonym_data = { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = data.place_desc, } local group, key, spec, container_trail = export.find_matching_holonym_location(other_holonym_data) if group and not spec.is_former_place then return {get_plural_entry_placetype(spec, container_trail) .. (spec.is_city and " of " or " in ") .. export.get_prefixed_key(key, spec)} end end end end function export.check_already_seen_string(holonym_placename, already_seen_strings) local canon_placename = ulower(m_links.remove_links(holonym_placename)) if type(already_seen_strings) ~= "table" then already_seen_strings = {already_seen_strings} end for _, already_seen_string in ipairs(already_seen_strings) do if canon_placename:find(already_seen_string) then return true end end return false end -- Prefix display handler that adds a prefix such as "Metropolitan Borough of " to the display -- form of holonyms. We make sure the holonym doesn't contain the prefix or some variant already. -- We do this by checking if any of the strings in ALREADY_SEEN_STRINGS, either a single string or -- a list of strings, or the prefix if ALREADY_SEEN_STRINGS is omitted, are found in the holonym -- placename, ignoring case and links. If the prefix isn't already present, we create a link that -- uses the raw form as the link destination but the prefixed form as the display form, unless the -- holonym already has a link in it, in which case we just add the prefix. local function prefix_display_handler(prefix, holonym_placename, already_seen_strings) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(prefix)) then return holonym_placename end if holonym_placename:find("%[%[") then return prefix .. " " .. holonym_placename end return prefix .. " [[" .. holonym_placename .. "]]" end -- Suffix display handler that adds a suffix such as " parish" to the display form of holonyms. -- Works identically to prefix_display_handler but for suffixes instead of prefixes. local function suffix_display_handler(suffix, holonym_placename, already_seen_strings, include_suffix_in_link) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(suffix)) then return holonym_placename end if holonym_placename:find("%[%[") then return holonym_placename .. " " .. suffix end if include_suffix_in_link then return "[[" .. holonym_placename .. " " .. suffix .. "]]" else return "[[" .. holonym_placename .. "]] " .. suffix end end -- Display handler for boroughs. New York City boroughs are display as-is. Others are suffixed -- with "borough". local function borough_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.new_york_boroughs[unlinked_placename] then -- Hack: don't display "borough" after the names of NYC boroughs return holonym_placename end return suffix_display_handler("borough", holonym_placename) end local function county_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) -- Display handler for Irish counties. Irish counties are displayed as e.g. "County [[Cork]]". if m_locations.ireland_counties["County " .. unlinked_placename .. ", Ireland"] or m_locations.northern_ireland_counties["County " .. unlinked_placename .. ", Northern Ireland"] then return prefix_display_handler("County", holonym_placename) end -- Display handler for Taiwanese counties. Taiwanese counties are displayed as e.g. "[[Chiayi]] County". if m_locations.taiwan_counties[unlinked_placename .. " County, Taiwan"] then return suffix_display_handler("County", holonym_placename) end -- Display handler for Romanian counties. Romanian counties are displayed as e.g. "[[Cluj]] County". if m_locations.romania_counties[unlinked_placename .. " County, Romania"] then return suffix_display_handler("County", holonym_placename) end -- FIXME, we need the same for US counties but need to key off the country, not the specific county. -- Others are displayed as-is. return holonym_placename end -- Display handler for prefectures. Japanese prefectures are displayed as e.g. "[[Fukushima]] Prefecture". -- Others are displayed as e.g. "[[Fthiotida]] prefecture". local function prefecture_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) local suffix = m_locations.japan_prefectures[unlinked_placename .. " Prefecture, Japan"] and "Prefecture" or "prefecture" return suffix_display_handler(suffix, holonym_placename) end -- Display handler for provinces of Bulgaria, Iran, Laos, North and South Korea, Thailand, Turkey and Vietnam. Recognized -- provinces are displayed as e.g. "[[Gyeonggi]] Province" or "[[Antalya]] Province". Others are displayed as-is. local function province_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.bulgaria_provinces[unlinked_placename .. "Province, Bulgaria"] or m_locations.iran_provinces[unlinked_placename .. " Province, Iran"] or m_locations.laos_provinces[unlinked_placename .. " Province, Laos"] or m_locations.north_korea_provinces[unlinked_placename .. " Province, North Korea"] or m_locations.south_korea_provinces[unlinked_placename .. " Province, South Korea"] or m_locations.thailand_provinces[unlinked_placename .. " Province, Thailand"] or m_locations.turkey_provinces[unlinked_placename .. " Province, Turkey"] or m_locations.vietnam_provinces[unlinked_placename .. " Province, Vietnam"] then return suffix_display_handler("Province", holonym_placename) end return holonym_placename end -- Display handler for Nigerian states. Nigerian states are display as "[[Kano]] State". Others are displayed as-is. local function state_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.nigeria_states[unlinked_placename .. " State, Nigeria"] then return suffix_display_handler("State", holonym_placename) end return holonym_placename end -- Display handler for voivodeships. Display as e.g. [[Subcarpathian Voivodeship]]. local function voivodesip_display_handler(holonym_placetype, holonym_placename) return suffix_display_handler("Voivodeship", holonym_placename, nil, "include_suffix_in_link") end ------------------------------------------------------------------------------------------ -- Placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: Main placetype data structure. This specifies, for each canonicalized placetype, various properties. The keys are placetypes (in the singular, except for category-only placetypes, which are plural and followed by `!`), and the value is a table of properties. The `"*"` key is special and is used for adding "generic" categories of the form `Places in ``location`` `; it runs for all entry placetypes. Keys in the form of plural placetypes followed by `!` are used only in [[Module:category tree/topic cat/data/Places]] for specifying the properties of categories containing the specified placetype, esp. bare categories like [[:Category:States and territories]] (rather than qualified categories like [[:Category:States and territories of Australia]]). Keys under the value table for a given placetype of are two types: ''property keys'' (which specify the value of specific properties) and ''categorization keys'' (which tell how to categorize certain sorts of holonyms if the placetype in question occurs as an entry placetype). Categorization keys are either the special value `default` or are wildcard strings with a slash in them, such as `"country/*"`. Note that only wildcard strings are currently allowed directly in the placetype data; everything else is handled through category handlers, either per-placetype or special (such as `political_division_cat_handler`). The algorithm for how category keys and handlers are used to generate categories is described at the top of [[Module:place]]. There are several recognized property keys, of various types: 1. The following link-related property keys are recognized: * `link`: '''Required''' except in category-only placetypes ending in `!`. Describes how to link and display the placetype in the formatted description when occurring as an entry placetype. Also used for formatting pluralized placetypes (which may occur in entry placetypes, esp. new-format ones, such as `two <<islands>>`) and may occur in categories). The possible values are: *# `true`: Link to the same-named Wiktionary entry. This creates a raw link, e.g. `<nowiki>[[city]]</nowiki>`, which is converted to an English-specific link by JavaScript postprocessing. If the placetype is plural, this creates a two-part raw link e.g. `<nowiki>[[city|cities]]</nowiki>`. *# `"w"`: Link to the same-named Wikipedia entry. This creates a two-part link, e.g. `<nowiki>[[w:census town|census town]]</nowiki>`, or `<nowiki>[[w:census town|census towns]]</nowiki>` if the placetype is given plural. *# `"+..."`: Create a two-part link to the entry following the `+` sign. For example, if `cercle` specifies `"+w:cercles of Mali"`, a two-part link `<nowiki>[[w:cercles of Mali|cercle]]</nowiki>` will be generated, or `<nowiki>[[w:cercles of Mali|cercles]]</nowiki>` if plural `cercles` is specified. *# `"separately"`: Link each word separately. For example, if `administrative territory` specifies `"separately"`, it will be linked as `<nowiki>[[administrative]] [[territory]]</nowiki>`, or as `<nowiki>[[administrative]] [[territory|territories]]</nowiki>` if plural `administrative territories` is given. *# another string: Use that string directly. If the placetype is plural, `pluralize()` in [[Module:en-utilities]] is called on the string, which will correctly pluralize most strings, including those with links in them. (If there are multiple links, the display form of the last link is pluralized.) *# `false`: This placetype is not allowed as an entry placetype. An error will be thrown if this placetype is given as an entry placetype. This is specified for internal-use placetypes, especially placetypes used in conjunction with the qualifiers `former`, `ancient`, `historical` and such. * `plural_link`: If specified and the placetype is plural, use the value in place of generating a pluralized version of the link spec in `link`. Most commonly, this is either a string with links in it (which is used directly) or the value `false`, indicating that the placetype cannot occur plural. (This is used for example by `caplc`, which displays as `<nowiki>[[capital]] and [[large]]st [[city]]</nowiki>`, where a plural version doesn't make sense.) Generally if this is specified, `plural` also needs to be specified to give a special placetype plural; this situation occurs especially with multiword placetypes where something other than the last word is pluralized. An example is `town with bystatus`, whose plural is `towns with bystatus`, which needs to be explicitly given. This example uses `link = <nowiki>"[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>` ({{m|nb|bystatus}}) is a Norwegian Bokmål word, and template calls aren't currently permitted in link strings), along with `plural_link = <nowiki>"[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>`. * `category_link`: Spec indicating how to display the placetype when occurring in category descriptions. Defaults to the value of `link`, and in turn is overridden by more specific `category_link_*` keys; see below. Category-only placetypes (which are plural and end in `!`) usually use `category_link` in preference to `link`. The value of `category_link` can be any of the types of specs given above, but most commonly is a plural string with links in it, spelling out the description; in this case it is used directly. When both `category_link` and `link` are given, the value in `category_link` is typically longer and more descriptive. For example, `polity` uses `link = true`, which just generates a link `<nowiki>[[polity]]</nowiki>` or plural `<nowiki>[[polity|polities]]</nowiki>`, but specifies a separate `category_link = <nowiki>"[[independent]] or [[semi-]][[independent]] [[polity|polities]]"</nowiki>`, which clarifies in the category description what a polity is. * `category_link_top_level`: Spec indicating how to display top-level (bare/unqualified) categories, i.e. categories where the placetype is not followed by `in ``location`` ` or `of ``location`` `. If given, this overrides `category_link` for this type of category. * `category_link_before_noncity`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` does not refer to a city. If given, this overrides `category_link` for this type of category. * `category_link_before_city`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` refer to a city. If given, this overrides `category_link` for this type of category. An example where this is given is `neighborhood`, which uses the following specs:<ol> <li>`link = true`</li> <li>`category_link = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]"</nowiki>`</li> <li>`category_link_before_city = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions"</nowiki>`</li> </ol> This has the effect of making the entry placetype `neighborhood` display as just `<nowiki>[[neighborhood]]</nowiki>`, while e.g. a category like `Neighborhoods of Chicago` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[Chicago]], ...</nowiki>` and a category like `Neighborhoods in Illinois, USA` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]] in [[Illinois]], ...</nowiki>`. * `disallow_in_entries`: If specified, this placetype cannot occur as an entry placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. * `disallow_in_holonyms`: If specified, this placetype cannot occur as a holonym placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. 2. There is currently one fallback-related property key recognized: * `fallback`: If specified, its value is a placetype which will be used for categorization purposes if no categories get added using the placetype itself. As an example, `branch` sets a fallback of `river` but also sets `preposition = "of"`, meaning that {{tl|place|en|branch|riv/Mississippi}} displays as `a branch of the Mississippi` (whereas `river` itself uses the preposition `in`), but otherwise categorizes the same as `river`. A more complex example is `area`, which sets a fallback of `geographic and cultural area` and also sets a category handler that checks for cities or city-like entities (e.g. boroughs) occurring as holonyms and categorizes the toponym under [[:Category:Neighborhoods of CITY]] (for recognized cities) or otherwise [[:Category:Neighborhoods of POLDIV]] (for the nearest containing recognized location). In addition, `area` is set as a political division of Kuwait, meaning if `c/Kuwait` occurs as holonym, the toponym is categorized under [[:Category:Areas of Kuwait]]. If none of these categories trigger, the fallback of `geographic and cultural area` will take effect, and the toponym will be categorized as e.g. [[:Category:Geographic and cultural areas of England]]. 3. There is currently one property to control irregular plurals of placetypes: * `plural`: If specified, its value is the plural of the placetype. Otherwise, the default pluralization algorithm in [[Module:en-utilities]] applies (which correctly pluralizes most words, including those ending in `-y`, `-ch`, `-sh`, `-x`, etc.). The value of `plural` is also used when converting a pluralized placetype into its singular equivalent; for example, since the placetype `kibbutz` has `plural = "kibbutzim"`, the placetype `kibbutzim` will be recognized as a plural and singularized to `kibbutz`. For this reason, it's occasionally necessary to specify a `plural` value even when the default pluralization algorithm works correctly, if the default singularization algorithm won't correctly reverse the pluralization (as with `pass` and other terms ending in `-ss`). 4. The following property keys relate to generating categories for entry placetypes and specifying the parents of those categories: * `class`: The general class of placetype. This is used for various purposes: (a) to categorize placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical` (note that these placetypes are not all treated alike); (b) to determine the parent category of bare placetype categories (e.g. [[:Category:Villages]] for placetype `village`); (c) to determine whether to add a parent category `political divisions of specific countries` to qualified placetype categories (e.g. [[:Category:Villages in Mali]]). The possible values are: *# `polity`: a more-or-less sovereign/independent polity, such as a country, kingdom or empire. *# `subpolity`: a non-sovereign division of a polity, above the level of an individual settlement. *# `settlement`: a city or smaller equivalent, such as a village. This also includes administrative divisions of a settlement, such as wards and barangays. *# `non-admin settlement`: similar to a settlement but without administrative or political significance, such as an unincorporated community, farm or neighborhood. *# `capital`: a settlement that is a capital. A former capital is generally still in existence, just not the capital any more. *# `natural feature`: any non-man-made feature, such as a lake, mountain, island, ocean, etc. *# `man-made structure`: a man-made feature below the level of a neighborhood, such as a house, airport, university, metro station, park or the like. *# `geographic region`: a geographic or cultural region or area that has no administrative significance. These may vary greatly in size but typically have some sort of cultural significance (possibly historical). The `former`, `ancient`, etc. qualifier has no effect on the category of these placetypes. *# `generic place`: a place that isn't further qualified into any specific subtype. * `former_type`: The class of placetype used for categorizing placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical`. The possible values are the same as for `class` but with the addition of `dependent territory` (for colonies, protectorates and the like) and `!` (ignore the historical/former/ancient/etc. qualifier; used e.g. with `fictional location` and `mythological location`). If not specified, the value of `class` is used. When a qualifier such as `former`, `ancient`, `medieval` or `historical` is encountered (specifically, those in `former_qualifiers`), it is mapped using `former_qualifiers` to the appropriate internal qualifier or qualifiers (one or both of `ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified qualifiers), which is prepended to the value of `former_type` or `class` to form a placetype whose properties are looked up to determine how to categorize the toponym in question. For example, if `medieval village` is given, we map `medieval` to `ANCIENT` and `FORMER`, and `village` to its `class` of `settlement`, and enter the placetypes `ANCIENT settlement` and `FORMER settlement` (in that order) into the list of equivalent placetypes returned by `get_placetype_equivs`. In this case, there is an entry in `placetype_data` for `ANCIENT settlement`, so its default category spec `Ancient settlements` is used as the category. If on the other hand `medieval kingdom` is given, where `kingdom` has a `class` value `polity`, we first look up `ANCIENT polity`, see there is no entry in `placetype_data` for it, and then look up `FORMER polity`, which exists and has a default category spec `Former polities`, which is used as the category. Note that if the placetype following the "former" qualifier is recognized in `placetype_data` but has no `former_type` or `class` and no fallback with a `former_type` or `class` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like `former greenhouse` is specified and we don't have an entry for `greenhouse`), we just track the occurrence and end up not categorizing. * `bare_category_parent`: This specifies the first parent category of a bare placetype category named according to the placetype in question (e.g. [[:Category:Atolls]] for placetype `atoll`, or [[:Category:Named buildings]] for placetype `named buildings!`). If not specified, the first parent category is determined by the value of `class`, using the mapping `class_to_bare_category_parent` in [[Module:category tree/topic cat/data/Places]]. * `addl_bare_category_parents`: Extra parent categories to add a bare placetype category to (see `bare_category_parent` just above). * `bare_category_breadcrumb`: Breadcrumb for bare placetype categories. Also used as the sort key of `bare_category_parent` if it is a string. * `inherently_former`: If specified and the given placetype is used as an entry placetype, act as if `former` or `ancient` (depending on the value of `inherently_former`) were prefixed to the placetype. This is for placetypes that always refer to no-longer-existing entities, such as `satrapy` and `treaty port`. The value of `inherently_former` is a list of internal qualifiers (one or more of `ANCIENT` and/or `FORMER`), just as for `former_qualifiers`, and the implementation is the same. * `cat_handler`: Handler used to generate the categories to add a given toponym to, if its entry placetype is the placetype in question. Generally the `cat_handler` function checks the holonyms specified in order to determine which category or categories to generate. For example, `district_neighborhood_cat_handler` handles placetypes `district`, `neighborhood`, `subdivision`, `suburb` and the like, and either adds the toponym to a category like `Neighborhoods of ``city`` ` (if a recognized city is given as a holonym), or otherwise a category like `Neighborhoods in ``location`` ` (for the first recognized non-city location given as a holonym, if an unrecognized city or city-like entity is given before the recognized non-city). The algorithm that runs the category handlers iterates over holonyms from left to right, running the `cat_handler` function on each holonym in turn until one or more categories are returned; see below for more specifics. (Note that countries for which e.g. a `district` is a political division do not get the corresponding category added by the `district_neighborhood_cat_handler` function but by `political_division_cat_handler`.) `cat_handler` functions are called with one argument, `data`, describing the resolved entry placetype (i.e. after resolving placetype aliases and fallbacks) and the holonym being processed. The return value should be a list of category specs (categories minus the langcode prefix, with `+++` standing for the holonym key, or the value `true`, which stands for ` ``Placetypes`` in/of ``Holonym`` `, i.e. the pluralized placetype with the appropriate preposition as specified in `placetype_data`). `data` contains the following fields: ** `entry_placetype`: the resolved entry placetype for the entry placetype being processed (i.e. it will always have an entry in `placetype_data` but may not be the original placetype given by the user); ** `holonym_placetype` and `holonym_placename`: the holonym placetype and placename being processed; ** `holonym_index`: the index of the holonym being processed, or {nil} if we're handling an overriding holonym (FIXME: we will change the overriding holonym algorithm so there will be an index even when processing overriding holonyms); ** `place_desc`: a full description of the {{tl|place}} call, as specified at the top of [[Module:place]]; ** `from_demonym`: If set, we are called from [[Module:demonym]], triggered by {{tl|demonym-adj}} or {{tl|demonym-noun}}, instead of being triggered by {{tl|place}}. * `has_neighborhoods`: If `true`, the specified placetype is city-like. This is used in the `district_neighborhood_cat_handler` to determine whether to add a category such as `Neighborhoods in ``location`` `; see the section just above on `cat_handler`. 5. The following preposition-related property keys are recognized: * `preposition`: The preposition used after this placetype when it occurs as an entry placetype. Defaults to `"in"`. * `generic_before_non_cities`: If specified, the appropriate category description handler in [[Module:category tree/topic cat/data/Places]] will recognize categories of the form ` ``Placetype`` in/of ``location`` ` for the specified placetype and preposition, if ``location`` is a non-city. This is used to generate descriptions for categories added by category handlers and by explicit category specs in the placetype data. All placetypes that specify `generic_before_non_cities` or `generic_before_cities` *MUST* also specify a value for `class` so that the category tree code can determine whether it's a political or non-political division. * `generic_before_cities`: Like `generic_before_non_cities` but for locations referring to cities. 6. The following property keys control the auto-addition of affixes when formatting holonyms of a particular placetype: * `affix_type`: If specified, add the placetype as an affix before or after holonyms of this placetype. Possible values are: *# `"pref"` (the holonym will display as `(the) placetype of Holonym`, where `the` appears when the holonym directly follows an entry placetype); *# `"Pref"` (same as `"pref"` but the placetype is capitalized; each word is capitalized if there are multiple); *# `"suf"` (the holonym will display as `Holonym placetype`); *# `"Suf"` (the holonym will display as `Holonym Placetype`, i.e. same as `"suf"` but the placetype is capitalized). * `suffix`: String to use in place of the placetype itself when the placetype is displayed as a suffix after a holonym. Note that `suffix` can be used independently of `affix_type` because the user can also request a suffix explicitly using a syntax like `adr:suf/Occitania`, which will display as `Occitania region` because the placetype `administrative region` specifies `suffix = "region"`. * `prefix`: Like `suffix` but for use when the placetype is displayed as a prefix before the holonym. * `affix`: Like `suffix` and `prefix` but for use when the placetype is displayed as an affix either before or after the holonym. If both `suffix` or `prefix` and `affix` are given for a single placetype, `suffix` or `prefix` take precedence. * `no_affix_strings`: String or list of strings that, if they occur in the holonym, suppress the addition of any affix requested using `affix_type`. Defaults to the placetype itself. For example, `autonomous okrug` specifies `affix_type = "Suf"` so that `aokr/Nenets` displays as `Nenets Autonomous Okrug`, but also specifies `no_affix_strings = "okrug"` so that `aokr/Nenets Okrug` or `aokr/Nenets Autonomous Okrug` displays as specified, without a redundant `Autonomous Okrug` added. Matching is case-insensitive but whole-word. * `display_handler`: A function of two arguments, `holonym_placetype` and `holonym_placename` (specifying a holonym). Its return value is a string specifying the display form of the holonym. 7. The following property keys control the indefinite and definite articles used before entry placetypes and/or holonyms of the specified placetype. * `entry_placetype_use_the`: Use `"the"` before this placetype when it occurs as an entry placetype. * `entry_placetype_indefinite_article`: Indefinite article used before this placetype when it occurs as an entry placetype (usually `"a"`, specifically for placetypes beginning with u- that don't take the indefinite article `"an"`). Defaults to the appropriate indefinite article (`"a"` or `"an"` depending on whether the placetype begins with a vowel). Overridden by `entry_placetype_use_the`, and unlike for most properties, does not apply to equivalent placetypes (i.e. fallbacks or those formed by removing a qualifier from the beginning); only to the exact placetype specified. * `holonym_use_the`: Use `"the"` before holonyms of this placetype. '''NOTE:''' # The `link` property must be specified on all placetypes, except those ending in `!` (category-only placetypes), which must have either `link` or `category_link` specified. # Either the `class` or `former_type` property must be specified on all placetypes not ending in `!` that do not have a fallback (if a placetype has a fallback and omits the `class` and `former_type` properties, they are taken from the fallback). An internal error will result if a placetype has no `class` or `former_type` property derivable either directly or through a fallback, if an attempt is made to categorize a former/ancient/historical/etc. entity of this placetype. # It is possible to have multiple levels of fallback (e.g. `frazione` falls back to `hamlet`, which falls back to `village`). Fallback loops will cause an internal error. All placetypes specified as fallbacks must exist in `placetype_data` or an internal error occurs. ]==] export.placetype_data = { --[=[ If you need to sort the following, do this (using Vim): 1. Make sure all full-line comments are within the { ... } table, or are moved after and on the same line as single-line entries. 2. Make sure the table uses tabs everywhere for indent, and not spaces. 3. Mark the top of the table with `ma`, go to the bottom and execute the following two lines in sequence: :'a,.s/\n/\\n/g :s/\\n\(\t\[\)/\r\1/g The first command converts every newline to a literal `\n` sequence, so the whole thing becomes a single line, while the second command restores the newlines before the beginning of each entry. The effect is to convert all entries to a single line while not losing any information. (Potentially a negative lookahead could be used to do it all in one command.) 4. Execute the following to sort: :'a,.!perl -pe 's/^(\t\[")(.*?)(".*)$/$2 @@@ $1$2$3/' | sort -f | perl -pe 's/.*? @@@ //' Note that a simple `sort -f` (where `-f` means case-insensitive) would almost work, but it would sort "hill station" before "hill" and "county borough" before "county" because the space after e.g. "hill station" sorts before the quotation mark after e.g. "hill". The above command deals with this by extracting the key, prepending it followed by ` @@@ `, sorting, and then removing key (the classic decorate-sort-undecorate pattern). 5. Put the table back to multi-line format by marking the top of the table with `ma`, going to the bottom and executing :'a,.s/\\n/\r/g Note that for some reason, in order to get a match a newline in the left side of a replacement, you must use \n, but to insert a newline in the right sode of a replacement you must use \r. ]=] ["*"] = { link = false, cat_handler = generic_place_cat_handler, }, ["administrative atoll"] = { -- Maldives link = "+w:administrative divisions of the Maldives", preposition = "of", class = "subpolity", }, ["administrative capital"] = { link = "w", fallback = "capital city", }, ["administrative center"] = { link = "w", fallback = "non-city capital", }, ["administrative centre"] = { link = "w", fallback = "administrative center", }, ["administrative county"] = { link = "w", fallback = "county", }, ["administrative district"] = { link = "w", fallback = "district", }, ["administrative headquarters"] = { link = "separately", fallback = "administrative centre", }, ["administrative region"] = { link = true, preposition = "of", suffix = "region", -- but prefix is still "administrative region (of)" fallback = "region", class = "subpolity", }, ["administrative seat"] = { link = "w", fallback = "administrative centre", }, ["administrative territory"] = { link = "separately", preposition = "of", suffix = "territory", -- but prefix is still "administrative territory (of)" fallback = "territory", class = "subpolity", }, ["administrative unit"] = { -- Grrr, it's difficult to generalize about "administrative units". In Albania, "administrative unit" is an -- official term for a city-level division of municipalities; Wikipedia renders it using the more practical term -- "commune". In Pakistan, "administrative unit" is a collective term used to refer to all the different types -- of first-level divisions (four provinces, one federal territory, and two "disputed territories", i.e. Azad -- Kashmir and Gilgit-Balistan, that are variously described). For this reason, we set no fallback, but we need -- to include this so that it can be used as a placetype for Albania, categorizing as communes. link = "w", class = "subpolity", }, ["administrative village"] = { link = "w", preposition = "of", has_neighborhoods = true, class = "settlement", }, ["aimag"] = { -- used in Mongolia, Russia and China (Inner Mongolia); in Mongolia, equivalent to a province; -- in China, equivalent to a prefecture (below a province); in Russia, equivalent to a municipal district. link = "w", fallback = "prefecture", }, ["airport"] = { link = true, class = "man-made structure", default = {true}, }, ["alliance"] = { link = true, fallback = "confederation", }, ["archipelago"] = { link = true, fallback = "island", }, ["area"] = { link = true, preposition = "of", fallback = "geographic and cultural area", -- Areas can either be administrative divisions (specifically of Kuwait) or geographic areas. Assume the former -- when categorizing 'Areas' but the latter when handling e.g. 'historical area'. class = "subpolity", former_type = "geographic region", cat_handler = district_neighborhood_cat_handler, }, ["arm"] = { link = true, preposition = "of", class = "natural feature", default = {"海"}, }, ["arrondissement"] = { link = true, preposition = "of", -- FIXME!!! Grrrrr!!! In some countries, arrondissements are divisions of cities; in others, they are divisions -- of departments or provinces. Need to conditionalize on the country for both of the following. class = "subpolity", has_neighborhoods = true, }, ["associated province"] = { link = "separately", fallback = "province", }, ["atoll"] = { -- FIXME! Atolls are administrative divisions of the Maldives but natural features elsewhere. Need to -- conditionalize `class` on the country. See also `administrative atoll`. link = true, class = "natural feature", bare_category_parent = "islands", default = {true}, }, ["autonomous city"] = { link = "w", preposition = "of", fallback = "city", has_neighborhoods = true, }, ["autonomous community"] = { -- Spain; refers to regional entities, not village-like entities, as might be expected from "community" link = true, preposition = "of", class = "subpolity", }, ["autonomous island"] = { -- Comoros; seems like an administrative atoll of the Maldives. link = "+w:autonomous islands of Comoros", preposition = "of", class = "subpolity", }, ["autonomous oblast"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "oblast", class = "subpolity", }, ["autonomous okrug"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "okrug", class = "subpolity", }, ["autonomous prefecture"] = { link = true, fallback = "prefecture", }, ["autonomous province"] = { link = "w", fallback = "province", }, ["autonomous region"] = { link = "w", preposition = "of", fallback = "administrative region", -- "administrative region" sets an affix of "region" but we want to display as "Tibet Autonomous Region" -- if the user writes 'ar:Suf/Tibet'. affix = "autonomous region", }, ["autonomous republic"] = { link = "w", preposition = "of", class = "subpolity", }, ["autonomous territorial unit"] = { -- Moldova; only two of them, one for Gagauzia and one for Transnistria. link = "w", preposition = "of", class = "subpolity", }, ["autonomous territory"] = { link = "w", fallback = "dependent territory", }, ["bailiwick"] = { -- Jersey, etc. link = true, fallback = "polity", }, ["barangay"] = { -- Philippines link = true, class = "settlement", -- Barangays are formal administrative divisions of a city rather than informal neighborhoods, but can use -- some of the properties of a neighborhood. fallback = "neighborhood", }, ["barrio"] = { -- Spanish-speaking countries; Philippines link = true, -- FIXME: Not completely correct, in some countries barrios are formal administrative divisions of a city. -- `class` will need to conditionalize on the country to be completely correct. fallback = "neighborhood", }, ["basin"] = { link = true, fallback = "lake", }, ["bay"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"水體"}, default = {true}, }, ["beach"] = { link = true, class = "natural feature", addl_bare_category_parents = {"water"}, default = {true}, }, ["beach resort"] = { link = "w", fallback = "resort town", }, ["bishopric"] = { link = true, fallback = "polity", }, ["bodies of water!"] = { -- FIXME: This is (maybe?) a type category not a name category. There should be an option for this. We need to -- straighten out the type vs. name vs. related-to issue. category_link = "[[body of water|bodies of water]]", class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems", "water"}, }, ["borough"] = { link = true, preposition = "of", display_handler = borough_display_handler, has_neighborhoods = true, -- "former borough" could be a former settlement or a former part of a city but seems more likely to -- be a former subpolity, particularly in England. FIXME, we really need a handler to take care of this -- properly. class = "subpolity", -- Grr, some boroughs are city-like but some (e.g. in Britain) may be larger. }, ["borough seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["branch"] = { link = true, preposition = "of", fallback = "river", }, ["bridge"] = { link = true, class = "man-made structure", default = {"具名橋樑"}, }, ["building"] = { link = true, class = "man-made structure", default = {"具名建築物"}, }, ["built-up area"] = { link = "w", fallback = "area", }, ["burgh"] = { link = true, fallback = "borough", }, ["business park"] = { link = true, fallback = "park", }, ["caliphate"] = { link = true, fallback = "polity", }, ["canton"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["cape"] = { link = true, fallback = "headland", }, ["capital"] = { link = true, fallback = "capital city", }, ["capital city"] = { link = true, category_link = "[[capital city|capital cities]]: the [[seat of government|seats of government]] for a country or [[political]] [[division]] of a country", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", bare_category_parent = "cities", cat_handler = capital_city_cat_handler, default = {true}, -- The following is necessary so that e.g. [[Melbourne]] defined as {{place|en|capital city|s/Victoria|c/Australia}} -- gets categorized in the bare category [[Category:en:Melbourne]]; otherwise placetype 'capital city' wouldn't -- match against the placetype 'city' of Melbourne. fallback = "city", }, ["caplc"] = { link = "[[capital]] and [[large]]st [[city]]", plural_link = false, fallback = "capital city", }, ["captaincy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["caravan city"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"ANCIENT", "FORMER"}, }, ["castle"] = { link = true, fallback = "building", }, ["cathedral city"] = { link = true, fallback = "city", }, ["cattle station"] = { -- Australia link = true, fallback = "farm", }, ["census area"] = { link = true, affix_type = "Suf", has_neighborhoods = true, class = "non-admin settlement", }, ["census-designated place"] = { -- United States link = true, class = "non-admin settlement", }, ["census division"] = { -- Canada link = "w", preposition = "of", class = "subpolity", }, ["census town"] = { link = "w", fallback = "town", }, ["central business district"] = { link = true, fallback = "neighborhood", }, ["cercle"] = { -- Mali link = "+w:cercles of Mali", preposition = "of", class = "subpolity", }, ["ceremonial county"] = { link = true, fallback = "county", }, ["chain of islands"] = { link = "[[chain]] of [[island]]s", plural = "chains of islands", plural_link = "[[chain]]s of [[island]]s", fallback = "island", }, ["channel"] = { link = true, fallback = "strait", }, ["charter community"] = { -- Northwest Territories, Canada link = "w", fallback = "village", }, ["city"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["city-state"] = { link = true, category_link = "[[sovereign]] [[microstate]]s consisting of a single [[city]] and [[w:dependent territory|dependent territories]]", has_neighborhoods = true, class = "settlement", ["continent/*"] = {"城邦", "+++的市", "+++國家", "首都"}, default = {"城邦", "城市", "國家", "首都"}, }, ["civil parish"] = { -- Mostly England; similar to municipalities link = true, preposition = "of", affix_type = "suf", has_neighborhoods = true, class = "subpolity", }, ["claimed political division"] = { link = "[[claim]]ed [[political]] [[division]]", class = "subpolity", default = {true}, }, ["co-capital"] = { link = "[[co-]][[capital]]", fallback = "capital city", }, ["coal city"] = { link = "+w:coal town", fallback = "city", }, ["coal town"] = { link = "w", fallback = "town", }, ["collectivity"] = { link = "w", preposition = "of", -- No default; these are weird one-off governmental divisions in France (esp. for overseas collectivities) class = "subpolity", }, ["colony"] = { link = true, fallback = "dependent territory", }, ["comarca"] = { -- per Wikipedia: traditional region or local administrative division found in Portugal, Spain, and some of -- their former colonies, like Brazil, Nicaragua, and Panama. In the Valencian Community, for example, it -- sits between municipalities and provinces, something like a county or district. link = true, preposition = "of", class = "subpolity", }, ["commandery"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["commonwealth"] = { link = true, preposition = "of", -- No default; applies specifically to Puerto Rico class = "subpolity", }, ["commune"] = { link = true, fallback = "municipality", }, ["community"] = { link = true, category_link = "[[community|communities]] of all sizes", fallback = "village", }, ["community development block"] = { -- in India; appears to be similar to a rural municipality; groups several villages, unclear if there will be -- neighborhoods so I'm not setting `has_neighborhoods` for now link = "w", affix_type = "suf", no_affix_strings = "block", class = "subpolity", }, ["comune"] = { -- Italy, Switzerland link = true, fallback = "municipality", }, ["condominium"] = { link = true, fallback = "polity", }, ["confederacy"] = { link = true, fallback = "confederation", }, ["confederation"] = { link = true, fallback = "polity", }, ["constituency"] = { -- currently we have them as political divisions of Namibia but many countries have them link = true, preposition = "of", class = "subpolity", }, ["constituent country"] = { link = true, preposition = "of", class = "subpolity", }, ["constituent part"] = { link = "separately", preposition = "of", class = "subpolity", }, ["constituent republic"] = { -- Of Russia, Yugoslavia, etc. link = "separately", preposition = "of", class = "subpolity", }, ["counties and county-level cities!"] = { -- This is used when grouping counties and county-level cities under prefecture-level cities in China. category_link = "[[county|counties]] and [[county-level city|county-level cities]]", class = "subpolity", }, ["continent"] = { link = true, category_link = false, -- can't occur as a bare category class = "natural feature", default = {"大洲及大陸地區"}, }, ["continental region"] = { link = "separately", category_link = false, -- can't occur as a bare category class = "geographic region", fallback = "continent", }, ["continents and continental regions!"] = { category_link = "[[大洲]]以及大洲等級的[[地區]](如[[玻里尼西亞]])", class = "geographic region", }, ["council area"] = { link = true, -- in Scotland; similar to a county preposition = "of", affix_type = "suf", class = "subpolity", }, ["country"] = { link = true, class = "polity", ["continent/*"] = {"+++國家", "國家"}, default = {true}, }, ["country-like entities!"] = { category_link = "[[polity|polities]] not normally considered [[country|countries]] but treated similarly for categorization purposes; typically, [[unrecognized]] [[de-facto]] countries or [[w:dependent territory|dependent territories]]", class = "polity", }, ["county"] = { link = true, preposition = "of", display_handler = county_display_handler, class = "subpolity", }, ["county borough"] = { link = true, -- in Wales; similar to a county preposition = "of", affix_type = "suf", fallback = "borough", class = "subpolity", }, ["county seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["county town"] = { link = true, entry_placetype_use_the = true, preposition = "of", fallback = "town", has_neighborhoods = true, class = "capital", }, ["county-administered city"] = { -- In Taiwan, per Wikipedia similar to a Taiwanese township or district, which is a small city. -- NOT anything like a "county-level city" in PR China, which is a county masquerading as a city. link = "w", fallback = "city", has_neighborhoods = true, class = "settlement", }, ["county-controlled city"] = { -- Taiwan link = "w", fallback = "county-administered city", }, ["county-level city"] = { -- PR China link = "w", fallback = "prefecture-level city", }, ["crater lake"] = { link = true, fallback = "lake", }, ["creek"] = { link = true, fallback = "stream", }, ["Crown colony"] = { link = "+crown colony", fallback = "crown colony", }, ["crown colony"] = { link = true, fallback = "colony", }, ["Crown dependency"] = { link = true, fallback = "dependent territory", }, ["crown dependency"] = { link = true, fallback = "dependent territory", }, ["cultural area"] = { link = "w", fallback = "geographic and cultural area", }, ["cultural region"] = { link = "w", fallback = "geographic and cultural area", }, ["delegation"] = { -- Tunisia link = "+w:delegations of Tunisia", preposition = "of", class = "subpolity", }, ["department"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["departmental capital"] = { link = "separately", fallback = "capital city", }, ["dependency"] = { link = true, fallback = "dependent territory", }, ["dependent territory"] = { link = "w", preposition = "of", class = "subpolity", former_type = "dependent territory", bare_category_parent = "political divisions", ["country/*"] = {true}, default = {true}, }, ["desert"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems"}, default = {true}, }, ["deserted mediaeval village"] = { link = "w", fallback = "deserted medieval village", }, ["deserted medieval village"] = { link = "w", fallback = "ANCIENT settlement", }, ["direct-administered municipality"] = { -- China link = "+w:direct-administered municipalities of China", fallback = "municipality", }, ["direct-controlled municipality"] = { -- several countries link = "w", fallback = "municipality", }, ["distributary"] = { link = true, preposition = "of", fallback = "river", }, ["district"] = { link = true, preposition = "of", affix_type = "suf", -- Grrr! FIXME! Here is where we need handlers for `class`. Using similar logic to -- district_neighborhood_cat_handler, we need to check if we're below or above a city to determine if the class -- is "settlement" or "subpolity". class = "subpolity", cat_handler = district_neighborhood_cat_handler, -- No default. Countries for which districts are political divisions will get entries. }, ["districts and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Portugal. category_link = "[[district]]s and [[autonomous region]]s", class = "subpolity", }, ["districts and autonomous territorial units!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Moldova. category_link = "[[district]]s and [[w:autonomous territorial unit|autonomous territorial unit]]s", class = "subpolity", }, ["district capital"] = { link = "separately", fallback = "capital city", }, ["district headquarters"] = { link = "separately", fallback = "administrative centre", }, ["district municipality"] = { -- In Canada, a district municipality is equivalent to a rural municipality and won't have neighborhoods; in -- South Africa, district municipalities group local municipalities and hence won't have neighborhoods. link = "w", preposition = "of", affix_type = "suf", no_affix_strings = {"district", "municipality"}, fallback = "municipality", class = "subpolity", }, ["division"] = { link = true, preposition = "of", class = "subpolity", }, ["division capital"] = { link = "separately", fallback = "capital city", }, ["dome"] = { link = true, fallback = "mountain", }, ["dormant volcano"] = { link = true, fallback = "volcano", }, ["duchy"] = { link = true, fallback = "polity", }, ["emirate"] = { link = true, preposition = "of", -- FIXME: Can be subpolities (of the United Arab Emirates). fallback = "polity", }, ["empire"] = { link = true, fallback = "polity", }, ["enclave"] = { link = true, preposition = "of", -- Enclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["entity"] = { -- Bosnia and Herzegovina link = "+w:entities of Bosnia and Herzegovina", preposition = "of", class = "subpolity", }, ["escarpment"] = { link = true, fallback = "mountain", }, ["ethnographic region"] = { -- used in Lithuania link = "+w:ethnographic regions of Lithuania", fallback = "geographic and cultural area", }, ["exclave"] = { link = true, preposition = "of", -- exclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["external territory"] = { link = "separately", fallback = "dependent territory", }, ["farm"] = { link = true, class = "non-admin settlement", default = {"農牧場"}, }, ["farms and ranches!"] = { category_link = "[[farm]]s and [[ranch]]es", class = "non-admin settlement", }, ["federal city"] = { link = "w", preposition = "of", fallback = "city", }, ["federal district"] = { link = true, preposition = "of", -- Might have neighborhoods as federal districts are often cities (e.g. Mexico City) has_neighborhoods = true, class = "settlement", }, ["federal subject"] = { -- In Russia; a generic term for first-level administrative divisions (republics, oblasts, okrugs, krais, -- autonomous okrugs and autonomous oblasts). link = "w", preposition = "of", class = "subpolity", }, ["federal territory"] = { link = "w", fallback = "territory", }, ["fictional location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["First Nations reserve"] = { -- Canada link = "[[First Nations]] [[w:Indian reserve|reserve]]", -- Wikipedia uses "Indian reserve"; presumably that is the legal term fallback = "Indian reserve", class = "subpolity", }, ["fjord"] = { link = true, class = "natural feature", addl_bare_category_parents = {"水體"}, default = {true}, }, ["footpath"] = { link = true, fallback = "road", }, ["forest"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems", "forestry"}, default = {true}, }, ["fort"] = { link = true, fallback = "building", }, ["fortress"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- fortresses -> fortresse, so put an entry here to ensure we singularize correctly. plural = "fortresses", fallback = "building", }, ["frazione"] = { link = "w", fallback = "hamlet", }, ["freeway"] = { link = true, fallback = "road", }, ["French prefecture"] = { link = "[[w:prefectures in France|prefecture]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["geographic and cultural area"] = { link = "+w:cultural area", -- `generic_before_non_cities` is used when generating the category description of categories of the format -- `Geographic and cultural areas of PLACE`. `preposition` is used when generating {{place}} description and -- categories for any placetype that falls back to `geographic and cultural area`. generic_before_non_cities = "of", preposition = "of", class = "geographic region", bare_category_parent = "places", ["country/*"] = {true}, ["constituent country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["geographic area"] = { link = "+w:geographic region", fallback = "geographic and cultural area", }, ["geographic region"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical area"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical region"] = { link = "w", fallback = "geographic and cultural area", }, ["geopolitical zone"] = { -- Nigeria link = true, preposition = "of", class = "subpolity", }, ["gewog"] = { -- Bhutan link = true, preposition = "of", class = "subpolity", }, ["ghost town"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", bare_category_parent = "former settlements", cat_handler = city_type_cat_handler, default = {true}, }, ["glen"] = { link = true, fallback = "valley", }, ["governorate"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["greater administrative region"] = { -- China (former division) link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["gromada"] = { -- Poland (former division) link = "w", preposition = "of", affix_type = "Pref", class = "subpolity", inherently_former = {"FORMER"}, }, ["group of islands"] = { link = "[[group]] of [[island]]s", plural = "groups of islands", plural_link = "[[group]]s of [[island]]s", fallback = "island group", }, ["gulf"] = { link = true, preposition = "of", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"水體"}, default = {true}, }, ["hamlet"] = { link = true, fallback = "village", }, ["harbor city"] = { link = "separately", fallback = "city", }, ["harbor town"] = { link = "separately", fallback = "town", }, ["harbour city"] = { link = "separately", fallback = "city", }, ["harbour town"] = { link = "separately", fallback = "town", }, ["headland"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["headquarters"] = { link = "w", fallback = "administrative centre", }, ["heath"] = { link = true, fallback = "moor", }, ["hemisphere"] = { link = true, entry_placetype_use_the = true, fallback = "continental region", }, ["highway"] = { link = true, fallback = "road", }, ["hill"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["hill station"] = { link = "w", fallback = "town", }, ["hill town"] = { link = "w", fallback = "town", }, ["historic region"] = { -- provided only for the link link = "+w:historical region", fallback = "FORMER geographic region", }, ["historical county"] = { -- needed for historical counties of England/etc. link = "+w:historic county", fallback = "FORMER subpolity", }, ["historical region"] = { -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["home rule city"] = { link = "w", fallback = "city", }, ["home rule municipality"] = { link = "w", fallback = "municipality", }, ["hot spring"] = { link = true, fallback = "spring", }, ["house"] = { link = true, fallback = "building", }, ["housing estate"] = { -- not the same as a housing project (i.e. public housing) link = true, -- not exactly the case but approximately fallback = "neighborhood", }, ["hromada"] = { -- Ukraine link = "w", disallow_in_entries = "Use placetype 'urban hromada', 'rural hromada' or 'settlement hromada' in place of bare 'hromada'", disallow_in_holonyms = "Use placetype 'urban hromada'/'uhrom', 'rural hromada'/'rhrom' or 'settlement hromada'/'shrom' in place of bare 'hromada'", preposition = "of", affix_type = "suf", class = "subpolity", }, ["inactive volcano"] = { link = "w", fallback = "dormant volcano", }, ["independent city"] = { link = true, fallback = "city", }, ["independent town"] = { link = "+independent city", fallback = "town", }, ["Indian reservation"] = { link = "w", -- In the US. Also known as "Native American reservation" or "domestic dependent nation", and the reservations -- themselves often use the term "nation" in their official name (e.g. the "Navajo Nation"). But Wikipedia puts -- the article at [[w:Indian reservation]] and uses that term when describing e.g. what the Navajo Nation is, -- so this must still be the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["Indian reserve"] = { link = "w", -- In Canada. "First Nations reserve" sounds more modern/PC but Wikipedia uses "Indian reserve"; presumably that -- is still the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["inland sea"] = { -- note, we also have 'inland' as a qualifier link = true, fallback = "sea", }, ["inner city area"] = { link = "[[inner city]] [[area]]", fallback = "neighborhood", }, ["island"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["island country"] = { -- FIXME: The following should map to both 'island' and 'country'. link = "w", fallback = "country", }, ["island group"] = { link = "separately", fallback = "island", }, ["island municipality"] = { link = "w", fallback = "municipality", }, ["islet"] = { link = "w", fallback = "island", }, ["Israeli settlement"] = { link = "w", class = "settlement", default = {true}, }, ["judicial capital"] = { link = "w", fallback = "capital city", }, ["khanate"] = { link = true, fallback = "polity", }, ["kibbutz"] = { link = true, plural = "kibbutzim", class = "non-admin settlement", default = {true}, }, ["kingdom"] = { link = true, fallback = "monarchy", }, ["krai"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["lake"] = { link = true, class = "natural feature", addl_bare_category_parents = {"水體"}, default = {true}, }, ["landforms!"] = { category_link = "[[landform]]s", bare_category_parent = "places", addl_bare_category_parents = {"地球"}, }, ["largest city"] = { link = "[[large]]st [[city]]", entry_placetype_use_the = true, fallback = "city", has_neighborhoods = true, }, ["league"] = { link = true, fallback = "confederation", }, ["legislative capital"] = { link = "separately", fallback = "capital city", }, ["library"] = { link = true, fallback = "building", }, ["lieutenancy area"] = { -- used in the United Kingdom; per Wikipedia: -- In England, lieutenancy areas are colloquially known as the ceremonial counties, although this phrase does -- not appear in any legislation referring to them. The lieutenancy areas of Scotland are subdivisions of -- Scotland that are more or less based on the counties of Scotland, making use of the major cities as separate -- entities.[2] In Wales, the lieutenancy areas are known as the preserved counties of Wales and are based on -- those used for lieutenancy and local government between 1974 and 1996. The lieutenancy areas of Northern -- Ireland correspond to the six counties and two former county boroughs.[3] link = "w", fallback = "ceremonial county", }, ["local authority district"] = { link = "w", fallback = "local government district", }, ["local government area"] = { -- Australia link = "w", preposition = "of", class = "subpolity", }, ["local council"] = { -- Malta; similar to municipalities link = "+w:local councils of Malta", preposition = "of", fallback = "municipality", }, ["local government district"] = { link = "w", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local government district with borough status"] = { link = "[[w:local government district|local government district]] with [[w:borough status|borough status]]", plural = "local government districts with borough status", plural_link = "[[w:local government district|local government districts]] with [[w:borough status|borough status]]", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local urban district"] = { link = "w", fallback = "unincorporated community", }, ["locality"] = { link = "+w:locality (settlement)", -- not necessarily true, but usually is the case fallback = "village", }, ["London borough"] = { link = "w", preposition = "of", affix_type = "pref", affix = "borough", fallback = "local government district with borough status", has_neighborhoods = true, }, ["macroregion"] = { link = true, fallback = "region", }, ["man-made structures!"] = { category_link = "[[w:geographical feature#Engineered constructs|man-made structures]] such as [[airport]]s, [[university|universities]] and [[metro station]]s", bare_category_parent = "places", }, ["manor"] = { -- FIXME: or is this more like a farm? link = true, fallback = "building", }, ["marginal sea"] = { link = true, preposition = "of", fallback = "sea", }, ["market city"] = { link = "+market town", fallback = "city", }, ["market town"] = { link = true, fallback = "town", }, ["massif"] = { link = true, fallback = "mountain", }, ["megacity"] = { link = true, fallback = "city", }, ["metro station"] = { link = true, class = "man-made structure", }, ["metropolitan borough"] = { link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"borough", "city"}, fallback = "local government district", has_neighborhoods = true, }, ["metropolitan city"] = { -- These exist e.g. in Italy and are more like municipalities or even provinces than cities. link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"metropolitan", "city"}, class = "subpolity", }, ["metropolitan county"] = { link = true, fallback = "county", }, ["metropolitan municipality"] = { -- In South Africa, metropolitan municipalities group local municipalities and are like districts, between -- provinces and municipalities. -- In Turkey, metropolitan municipalities are provinces-level. link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"metropolitan", "municipality"}, fallback = "municipality", class = "subpolity", }, ["microdistrict"] = { -- residential complex in post-Soviet states link = true, fallback = "neighborhood", }, ["micronations!"] = { -- FIXME, merge with microstate category_link = "[[micronation]]s", bare_category_parent = "countries", }, ["microstate"] = { link = true, fallback = "country", }, ["military base"] = { link = "w", class = "settlement", -- or "man-made structure"? default = {true}, }, ["minster town"] = { -- England link = "separately", fallback = "town", }, ["monarchy"] = { link = true, fallback = "polity", }, ["moor"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems"}, default = {true}, }, ["moorland"] = { link = true, fallback = "moor", }, ["motorway"] = { link = true, fallback = "road", }, ["mountain"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["mountain indigenous district"] = { -- Taiwan link = "+w:district (Taiwan)", fallback = "district", }, ["mountain indigenous township"] = { -- Taiwan link = "+w:township (Taiwan)", fallback = "township", }, ["mountain pass"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "mountain passes", class = "natural feature", addl_bare_category_parents = {"mountains"}, default = {true}, }, ["mountain range"] = { link = true, fallback = "mountain", }, ["mountainous region"] = { link = "separately", fallback = "region", }, ["mukim"] = { -- Malaysia, Brunei, Indonesia, Singapore link = true, preposition = "of", class = "subpolity", }, ["municipal district"] = { link = "w", -- meaning varies depending on the country; for now, assume no neighborhoods. -- FIXME: has_neighborhoods might have to be a function that looks at the containing holonyms. preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "municipality", }, ["municipality"] = { link = true, preposition = "of", has_neighborhoods = true, class = "subpolity", }, ["municipality with city status"] = { link = "[[municipality]] with [[w:city status|city status]]", plural = "municipalities with city status", plural_link = "[[municipality|municipalities]] with [[w:city status|city status]]", fallback = "municipality", }, ["museum"] = { link = true, fallback = "building", }, ["mythological location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["named bridges!"] = { category_link = "notable [[bridge]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"bridges"}, }, ["named buildings!"] = { category_link = "notable [[house]]s, [[library|libraries]] and other [[building]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"buildings"}, }, ["named roads!"] = { category_link = "notable [[road]]s, [[highway]]s, [[trail]]s and similar linear structures", bare_category_parent = "man-made structures", addl_bare_category_parents = {"roads"}, }, ["national capital"] = { link = "w", fallback = "capital city", }, ["national park"] = { link = true, fallback = "park", }, ["natural features!"] = { category_link = "[[w:geographical feature#Natural features|natural features]] such as [[lake]]s, [[mountain]]s, [[island]]s and [[ocean]]s", bare_category_parent = "places", }, ["neighborhood"] = { -- The majority of the properties here apply to both `neighborhoods` and `neighbourhoods`; the choice of which -- one to use is made by district_neighborhood_cat_handler() based on the value of `british_spelling` for the -- location (city, political division, etc.) of the holonym that follows the word "neighbo(u)hoods" in the -- category name. It does *NOT* depend on whether the {{place}} call uses "neighborhoods" or "neighbourhoods". -- (In general it can't, because other things like "urban areas", "districts", "subdivisions" and the like also -- categorize as neighbo(u)rhoods.) link = true, -- See below. These are used by category handlers in [[Module:category tree/topic cat/data/Places]]. generic_before_non_cities = "in", generic_before_cities = "of", -- The following text is suitable for the top-level description of a neighborhood as well as categories of the -- form `Neighborhoods in POLDIV` e.g. `Neighborhoods in Illinois, USA` but not for categories of the form -- `Neighborhoods of Chicago`, where we'd get "... and other subportions of [[city|cities]] of [[Chicago]]". category_link = "[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighborhood]]s, [[district]]s and other subportions", -- NOTE: This setting is needed for administrative divisions like barangays that fall back to `neighborhood`, -- when set in [[Module:place/locations]] for a specific country (e.g. the Philippines). The above settings -- for `generic_before_non_cities` and `generic_before_cities` are used by category handlers in -- [[Module:category tree/topic cat/data/Places]] for `Neighborhoods in POLDIV` and `Neighborhoods of CITY` -- categories. In fact, district_neighborhood_cat_handler() does not currently pay attention to them, but -- generates "of" before cities and "in" before non-cities regardless. (FIXME: We should change that.) preposition = "of", class = "non-admin settlement", cat_handler = district_neighborhood_cat_handler, }, ["neighbourhood"] = { link = true, category_link = "[[neighbourhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighbourhood]]s, [[district]]s and other subportions", fallback = "neighborhood", }, ["new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", preposition = "in", class = "subpolity", --? }, ["new town"] = { link = true, fallback = "town", }, ["non-city capital"] = { link = "[[capital]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", cat_handler = function(data) return capital_city_cat_handler(data, "non-city") end, -- FIXME, do we need the following? default = {true}, }, ["non-metropolitan county"] = { link = "w", fallback = "county", }, ["non-metropolitan district"] = { link = "w", fallback = "local government district", }, ["non-sovereign kingdom"] = { -- especially in Africa and Asia link = "+w:non-sovereign monarchy", generic_before_non_cities = "in", class = "subpolity", ["country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["non-sovereign monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["oblast"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["oblasts and autonomous republics!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Ukraine. category_link = "[[oblast]]s and [[w:autonomous republic|autonomous republic]]s", class = "subpolity", }, ["ocean"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"seas", "bodies of water"}, default = {true}, }, ["okrug"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["overseas collectivity"] = { link = "w", fallback = "collectivity", }, ["overseas department"] = { link = "w", fallback = "department", }, ["overseas territory"] = { link = "w", fallback = "dependent territory", }, ["parish"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["parish municipality"] = { -- in Quebec, often similar to a rural village; the famous [[Saint-Louis-du-Ha! Ha!]] is one of them. link = "+w:parish municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, }, ["parish seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", class = "capital", has_neighborhoods = true, }, ["park"] = { link = true, class = "man-made structure", default = {true}, }, ["pass"] = { link = "+mountain pass", -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "passes", fallback = "mountain pass", }, ["path"] = { link = true, fallback = "road", }, ["peak"] = { link = true, fallback = "mountain", }, ["peninsula"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["periphery"] = { link = true, preposition = "of", class = "subpolity", }, ["places!"] = { generic_before_non_cities = "in", generic_before_cities = "in", class = "generic place", category_link = "[[place]]s of all sorts", -- `category_link_top_level` control the description used in the top-level [[Category:Places]] and -- language-specific variants such as [[Category:en:Places]]. The actual text for a language-spefic variant is -- "{{{langname}}} names of [[geographical]] [[place]]s of all sorts; [[toponym]]s." where the "names of" -- portion is automatically generated by the appropriate handler in -- [[Module:category tree/topic cat/data/Places]]. category_link_top_level = "[[geographical]] [[place]]s of all sorts; [[toponym]]s", bare_category_parent = "names", }, ["planned community"] = { -- Include this so we don't categorize 'planned community' into villages, as 'community' does. link = true, class = "settlement", has_neighborhoods = true, }, ["plateau"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, -- FIXME: Should generate both "Plateaus" and the appropriate 'geographic and cultural area' category }, ["Polish colony"] = { link = "[[w:colony (Poland)|colony]]", affix_type = "suf", affix = "colony", fallback = "village", has_neighborhoods = true, }, ["political divisions!"] = { category_link = "[[political]] [[division]]s and [[subdivision]]s, such as [[state]]s, [[province]]s, [[county|counties]] or [[district]]s", bare_category_parent = "places", }, ["polity"] = { link = true, category_link = "[[independent]] or [[semi-]][[independent]] [[polity|polities]]", class = "polity", bare_category_parent = "places", default = {true}, }, ["populated place"] = { link = "+w:populated place", -- not necessarily true, but usually is the case fallback = "village", }, ["port"] = { link = true, class = "man-made structure", default = {true}, }, ["port city"] = { -- FIXME: should categorize into "Ports" as well as "Cities" link = true, fallback = "city", }, ["port town"] = { -- FIXME: should categorize into "Ports" as well as "Towns" link = "w", fallback = "town", }, ["prefecture"] = { -- FIXME! `prefecture` is like a county in Japan and elsewhere but a department capital city in France. -- May need `has_neighborhoods` to be a function. link = true, preposition = "of", display_handler = prefecture_display_handler, class = "subpolity", }, ["prefecture-level city"] = { -- China; they are huge entities with a central city; not cities themselves. link = "w", preposition = "of", class = "subpolity", }, ["preserved county"] = { -- In Wales; they are former counties enshrined in law; there are 8 of them and each consists of one or more -- "principal areas" (styled as "counties" or "county boroughs"), of which there are 22. link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["primary area"] = { -- a grouping of "districts" (neighborhoods) in Gothenburg, Sweden link = "+w:sv:primärområde", fallback = "neighborhood", }, ["principality"] = { link = true, fallback = "monarchy", }, ["promontory"] = { link = true, fallback = "headland", }, ["protectorate"] = { link = true, fallback = "dependent territory", }, ["province"] = { link = true, preposition = "of", display_handler = province_display_handler, class = "subpolity", }, ["provinces and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case China. category_link = "[[province]]s and [[autonomous region]]s", class = "subpolity", }, ["provinces and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Canada and Pakistan. category_link = "[[province]]s and [[territory|territories]]", class = "subpolity", }, ["provincial capital"] = { link = "separately", fallback = "capital city", }, ["raion"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["ranch"] = { link = true, fallback = "farm", }, ["range"] = { -- FIXME: Where is this used? Is it a mountain range? link = true, holonym_use_the = true, class = "natural feature", }, ["regency"] = { link = true, preposition = "of", class = "subpolity", }, ["region"] = { link = true, preposition = "of", -- If 'region' isn't a specific administrative division, fall back to 'geographic and cultural area' fallback = "geographic and cultural area", -- "former region" is a subpolity but traditional/historic(al)/ancient/medieval/etc. is a geographic region class = "geographic region", }, ["regional capital"] = { link = "separately", fallback = "capital city", }, ["regional county municipality"] = { -- Quebec link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"municipality", "county"}, fallback = "municipality", }, ["regional district"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "district", }, ["regional municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", }, ["regional unit"] = { link = "w", preposition = "of", affix_type = "suf", class = "subpolity", }, ["registration county"] = { -- Used in Scotland for land registration purposes; formerly used in England, Wales and Ireland for statistical -- purposes (registration of births, deaths and marriages, and for the output of census information). link = "w", fallback = "county", }, ["republic"] = { -- Of Russia, Yugoslavia, etc. "Republics" in general are sovereign but we use "country" in that case. link = true, fallback = "constituent republic", }, ["research base"] = { link = "+w:research station", fallback = "research station", }, ["research station"] = { link = "w", class = "non-admin settlement", -- or "man-made structure"? default = {true}, }, ["reservoir"] = { link = true, fallback = "lake", }, ["residential area"] = { link = "separately", fallback = "neighborhood", }, ["resort city"] = { link = "w", fallback = "city", }, ["resort town"] = { link = "w", fallback = "town", }, ["river"] = { link = true, generic_before_non_cities = "in", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"水體"}, cat_handler = city_type_cat_handler, ["continent/*"] = {true}, default = {true}, }, ["river island"] = { link = "w", fallback = "island", }, ["road"] = { link = true, class = "man-made structure", default = {"具名道路"}, }, ["Roman province"] = { -- FIXME! Eliminate this in favor of 'former province|emp/Roman Empire' link = "w", default = {"羅馬帝國行省"}, class = "subpolity", }, ["royal borough"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = {"royal", "borough"}, fallback = "local government district with borough status", has_neighborhoods = true, }, ["royal burgh"] = { link = true, fallback = "borough", }, ["royal capital"] = { link = "w", fallback = "capital city", }, ["rural committee"] = { -- Hong Kong; a group of villages link = "w", affix_type = "Suf", has_neighborhoods = true, class = "settlement", }, ["rural community"] = { -- New Brunswick link = "+w:list of municipalities in New_Brunswick#Rural communities", fallback = "municipality", }, ["rural hromada"] = { link = "[[rural]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["rural municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", has_neighborhoods = true, --? }, ["rural township"] = { -- Taiwan link = "+w:rural township (Taiwan)", fallback = "township", }, ["sanctuary"] = { link = true, fallback = "temple", }, ["satrapy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["sea"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"水體"}, default = {true}, }, ["seaport"] = { link = true, fallback = "port", }, ["seat"] = { link = true, fallback = "administrative centre", }, ["self-administered area"] = { -- Myanmar (groups self-administered divisions and zones) link = "+w:self-administered zone", preposition = "of", class = "subpolity", }, ["self-administered division"] = { -- Myanmar (only one of them: Wa Self-Administered Division) link = "w", fallback = "self-administered area", }, ["self-administered zone"] = { -- Myanmar (five of them) link = "w", fallback = "self-administered area", }, ["separatist state"] = { link = "separately", fallback = "unrecognized country", }, ["settlement"] = { link = true, category_link = "[[settlement]]s such as [[city|cities]], [[village]]s and [[farm]]s", bare_category_parent = "places", -- not necessarily true, but usually is the case fallback = "village", }, ["settlement hromada"] = { link = "[[w:Populated places in Ukraine#Rural settlements|settlement]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["sheading"] = { -- Isle of Man link = true, fallback = "district", }, ["sheep station"] = { -- Australia link = true, fallback = "farm", }, ["shire"] = { link = true, fallback = "county", }, ["shire county"] = { link = "w", fallback = "county", }, ["shire town"] = { link = true, fallback = "county seat", }, ["ski resort city"] = { link = "[[ski resort]] [[city]]", fallback = "city", }, ["ski resort town"] = { link = "[[ski resort]] [[town]]", fallback = "town", }, ["spa city"] = { link = "+w:spa town", fallback = "city", }, ["spa town"] = { link = "w", fallback = "town", }, ["space station"] = { link = true, fallback = "research station", }, ["special administrative region"] = { -- in China; in practice they are city-like (Hong Kong, Macau); also [[Oecusse]] in East Timor is formally a -- "special administrative region"; North Korea had one such region planned (Sinuiju) but abandoned; Indonesia -- has similar "special regions" of Jakarta, Yogyakarta and Aceh; and South Sudan has three "special -- administrative areas" link = "+w:special administrative regions of China", preposition = "of", class = "subpolity", has_neighborhoods = true, --? -- no suffix since places in Hong Kong or Macau are listed without China, except Hong Kong and Macau themselves -- they also contain regions (or areas), e.g. [[Kowloon]], so it would be confusing suffix = "", }, ["special collectivity"] = { link = "w", fallback = "collectivity", }, ["special municipality"] = { -- formerly linked to the Taiwan article but there are also special municipalities of the Netherlands link = "w", fallback = "municipality", }, ["special ward"] = { -- Tokyo link = true, fallback = "municipality", }, ["spit"] = { link = true, fallback = "peninsula", }, ["spring"] = { link = true, class = "natural feature", default = {true}, }, ["star"] = { link = true, class = "natural feature", default = {true}, }, ["state"] = { link = true, preposition = "of", class = "subpolity", -- 'former/historical state' could refer either to a state of a country (a division) or a state = sovereign -- entity. The latter appears more common (e.g. in various "ancient states" of East Asia). former_type = "polity", }, ["states and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Australia. category_link = "[[state]]s and [[territory|territories]]", class = "subpolity", }, ["states and union territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case India. category_link = "[[state]]s and [[union territory|union territories]]", class = "subpolity", }, ["state capital"] = { link = true, fallback = "capital city", }, ["state park"] = { link = true, fallback = "park", }, ["state-level new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", fallback = "new area", }, ["statistical region"] = { -- Slovenia link = true, fallback = "administrative region", }, ["statutory city"] = { link = "w", fallback = "city", }, ["statutory town"] = { link = "w", fallback = "town", }, ["strait"] = { link = true, class = "natural feature", addl_bare_category_parents = {"水體"}, default = {true}, }, ["stream"] = { link = true, fallback = "river", }, ["street"] = { link = true, fallback = "road", }, ["strip"] = { link = true, fallback = "geographic region", }, ["strip of land"] = { link = "[[strip]] of [[land]]", plural = "strips of land", plural_link = "[[strip]]s of [[land]]", fallback = "geographic region", }, ["sub-metropolitan city"] = { link = "+w:List of cities in Nepal#Sub-metropolitan cities", fallback = "city", }, ["sub-prefectural city"] = { link = "w", fallback = "subprovincial city", }, ["subdistrict"] = { link = true, preposition = "of", has_neighborhoods = true, --? -- FIXME: subdistricts can be neighborhood-like (of Jakarta) or larger (in China); need a handler class = "subpolity", default = {true}, }, ["subdivision"] = { link = true, preposition = "of", affix_type = "suf", -- FIXME: subdivisions can be neighborhood-like or larger; need a handler class = "subpolity", cat_handler = district_neighborhood_cat_handler, }, ["submerged ghost town"] = { -- FIXME: Consider just having "submerged" as a qualifier. link = "[[submerged]] [[ghost town]]", fallback = "ghost town", }, ["subnational kingdom"] = { link = "+w:subnational monarchy", fallback = "non-sovereign kingdom", }, ["subnational monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["subprefecture"] = { link = true, affix_type = "suf", preposition = "of", class = "subpolity", }, ["subprovince"] = { link = true, preposition = "of", class = "subpolity", }, ["subprovincial city"] = { link = "w", -- China; special status given to certain prefecture-level cities fallback = "prefecture-level city", }, ["subprovincial district"] = { link = "w", -- China; special status given to Binhai New Area and Pudong New Area, which are county-level districts preposition = "of", class = "subpolity", }, ["subregion"] = { link = true, fallback = "geographic region", }, ["suburb"] = { link = true, -- The following text is suitable for the top-level description of a suburb as well as categories of the form -- 'Suburbs in POLDIV' e.g. 'Suburbs in Illinois, USA' but not for categories of the form 'Suburbs of Chicago', -- where we'd get "[[suburb]]s of [[city|cities]] of [[Chicago]]". category_link = "[[suburb]]s of [[city|cities]]", category_link_before_city = "[[suburb]]s", -- See comments under "neighborhood" for the following three settings. They are used by -- [[Module:category tree/topic cat/data/Places]] for generating the text of 'Suburbs in/of PLACE' categories -- but currently ignored by district_neighborhood_cat_handler (which actually generates the categories for a -- given page), which hardcodes "in" for non-cities and "of" for cities. (FIXME: Change this.) generic_before_non_cities = "in", generic_before_cities = "of", preposition = "of", has_neighborhoods = true, --? class = "non-admin settlement", --? cat_handler = district_neighborhood_cat_handler, }, ["suburban area"] = { link = "w", fallback = "suburb", }, ["subway station"] = { link = "w", fallback = "metro station", }, ["sum"] = { -- In China, Mongolia, Russia; something like a county in Mongolia but a township in China (Inner Mongolia), -- and equivalent to a [[selsoviet]] in the parts of Russia where it's in use (a rural council, below a raion). link = "+w:sum (administrative division)", -- This fallback is somewha arbitrary. We could use "county" but that has a display handler -- which we don't want to be active (FIXME: If the display handler would be active, that's a bug). fallback = "division", }, ["supercontinent"] = { link = true, fallback = "continent", }, ["tehsil"] = { link = true, affix_type = "suf", no_affix_strings = {"tehsil", "tahsil"}, class = "subpolity", }, ["temple"] = { link = true, fallback = "building", }, ["territorial authority"] = { link = "w", fallback = "district", }, ["territory"] = { link = true, preposition = "of", class = "subpolity", }, ["theme"] = { link = "+w:theme (Byzantine district)", preposition = "of", class = "subpolity", }, ["town"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["town with bystatus"] = { -- can't use templates in links currently link = "[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]", plural = "towns with bystatus", plural_link = "[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]", fallback = "town", }, ["township"] = { link = true, has_neighborhoods = true, class = "settlement", --? default = {true}, }, ["township municipality"] = { -- Quebec link = "+w:township municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["traditional county"] = { link = true, fallback = "county", }, ["traditional region"] = { -- FIXME: Verify this works. Same for 'historic(al) region'. -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["trail"] = { link = true, fallback = "road", }, ["treaty port"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"FORMER"}, }, ["tributary"] = { link = true, preposition = "of", fallback = "river", }, ["underground station"] = { link = "w", fallback = "metro station", }, ["unincorporated area"] = { link = "w", -- I don't know if this fallback makes sense everywhere. fallback = "unincorporated community", }, ["unincorporated community"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", }, ["unincorporated territory"] = { link = "w", fallback = "territory", }, ["union territory"] = { -- India link = true, preposition = "of", entry_placetype_indefinite_article = "a", class = "subpolity", }, ["unitary authority"] = { -- UK, New Zealand link = true, entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["unitary district"] = { link = "w", entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["united township municipality"] = { -- Quebec link = "+w:united township municipality (Quebec)", entry_placetype_indefinite_article = "a", fallback = "township municipality", has_neighborhoods = true, --? }, ["university"] = { link = true, entry_placetype_indefinite_article = "a", class = "man-made structure", default = {true}, }, ["unrecognised country"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized and nearly unrecognized countries!"] = { category_link = "[[de facto]] [[independent]] [[state]]s with little or no {{w|international recognition}}", bare_category_parent = "country-like entities", }, ["unrecognized country"] = { link = "w", class = "polity", default = {"未受國際普遍承認國家"}, }, ["unrecognised state"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized state"] = { link = "w", fallback = "unrecognized country", }, ["urban area"] = { link = "separately", fallback = "neighborhood", }, ["urban hromada"] = { link = "[[urban]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["urban service area"] = { -- A strange beast existing in Alberta; technically a type of hamlet but in practice used for much larger -- cities and treated equivalent to a city. (There are only two of them, [[Fort McMurray]] and [[Sherwood Park]]). link = "w", fallback = "city", }, ["urban township"] = { link = "w", fallback = "township", }, ["urban-type settlement"] = { -- appears to be a particular type of small urban settlement in post-Soviet states, -- had an administrative function. link = "w", fallback = "town", }, ["valley"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "water"}, default = {true}, }, ["viceroyalty"] = { -- in essence, a type of colony link = true, fallback = "dependent territory", }, ["village"] = { link = true, generic_before_non_cities = "in", category_link = "[[village]]s, [[hamlet]]s, and other small [[community|communities]] and [[settlement]]s", class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["village development committee"] = { -- former administrative structure in Nepal; also exists in India but not as a formal unit link = "+w:village development committee (Nepal)", inherently_former = {"FORMER"}, fallback = "village", }, ["village municipality"] = { -- Quebec link = "+w:village municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["voivodeship"] = { -- Poland link = true, display_handler = voivodeship_display_handler, preposition = "of", class = "subpolity", }, ["volcano"] = { link = true, plural = "volcanoes", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true, "山"}, }, ["ward"] = { link = true, class = "settlement", -- Wards are formal administrative divisions of a city but have some properties of neighborhoods. fallback = "neighborhood", }, ["watercourse"] = { link = true, fallback = "channel", }, ["Welsh community"] = { -- Wales link = "[[w:community (Wales)|community]]", preposition = "of", affix_type = "suf", affix = "community", has_neighborhoods = true, class = "settlement", }, ["zone"] = { -- administrative division of Ethiopia, Qatar, Nepal, India link = "+w:zone#Place names", preposition = "of", class = "subpolity", }, ---------------------------------------------------------------------------------------------- -- Categories for former places -- ---------------------------------------------------------------------------------------------- ["ANCIENT capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", -- FIXME: Consider removing 'ancient settlements' here. Ancient capitals, like former capitals, often still -- exist but just aren't the capital any more. Maybe we should have an 'Ancient capitals' category. default = {"古代定居點", "歷史首府"}, }, ["ANCIENT non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "ANCIENT settlement", }, ["ANCIENT settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"古代定居點"}, }, ["ancient settlements!"] = { category_link = "former [[city|cities]], [[town]]s and [[village]]s that existed in [[antiquity]]", bare_category_parent = "former settlements", }, ["FORMER capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", default = {"歷史首府"}, }, ["former capitals!"] = { category_link = "former [[capital]] [[city|cities]] and [[town]]s", bare_category_parent = "settlements", }, ["former counties and county-level cities!"] = { -- For categorizing former counties and county-level cities of China category_link = "no-longer existing [[county|counties]] and [[county-level city|county-level cities]]", bare_category_breadcrumb = "counties and county-level cities", bare_category_parent = "former political divisions", }, ["FORMER county"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["FORMER county-level city"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["former countries and country-like entities!"] = { category_link = "[[country|countries]] and similar [[polity|polities]] that no longer exist", bare_category_breadcrumb = "countries and country-like entities", bare_category_parent = "former polities", }, ["FORMER country"] = { link = false, class = "polity", default = {"Former countries and country-like entities"}, }, ["former dependent territories!"] = { category_link = "[[w:dependent territory|dependent territories]] (colonies, dependencies, protectorates, etc.) that no longer exist", bare_category_breadcrumb = "dependent territories", bare_category_parent = "former political divisions", }, ["FORMER dependent territory"] = { link = false, preposition = "of", class = "subpolity", default = {"Former dependent territories"}, }, ["former districts!"] = { -- For categorizing former districts of China category_link = "no-longer-existing [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "former political divisions", }, ["FORMER district"] = { -- For categorizing former districts of China link = false, fallback = "FORMER subpolity", }, ["FORMER geographic region"] = { link = false, fallback = "geographic and cultural area", }, ["FORMER man-made structure"] = { link = false, class = "man-made structure", default = {"Former man-made structures"}, }, ["former man-made structures!"] = { category_link = "man-made structures such as [[airport]]s and [[park]]s that no longer exist", bare_category_breadcrumb = "man-made structures", bare_category_parent = "former places", }, ["former municipalities!"] = { -- For categorizing former municipalities of the Netherlands category_link = "no-longer-existing [[municipality|municipalities]]", bare_category_breadcrumb = "municipalities", bare_category_parent = "former political divisions", }, ["FORMER municipality"] = { -- For categorizing former municipalities of the Netherlands link = false, fallback = "FORMER subpolity", }, ["FORMER natural feature"] = { link = false, class = "natural feature", default = {"Former natural features"}, }, ["former natural features!"] = { category_link = "natural features such as [[lake]]s, [[river]]s and [[island]]s that no longer exist", bare_category_breadcrumb = "natural features", bare_category_parent = "former places", }, ["FORMER non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "FORMER settlement", }, ["former places!"] = { category_link = "[[place]]s of all sorts that no longer exist", bare_category_breadcrumb = "former", bare_category_parent = "places", }, ["former political divisions!"] = { category_link = "[[political]] [[division]]s (states, provinces, counties, etc.) that no longer exist", bare_category_breadcrumb = "political divisions", bare_category_parent = "former places", }, ["former polities!"] = { category_link = "[[polity|polities]] (countries, kingdoms, empires, etc.) that no longer exist", bare_category_breadcrumb = "polities", bare_category_parent = "former places", }, ["FORMER polity"] = { link = false, class = "polity", default = {"Former polities"}, }, ["former prefectures!"] = { -- For categorizing former prefectures of China category_link = "no-longer-existing [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "former political divisions", }, ["FORMER prefecture"] = { -- For categorizing former prefectures of China link = false, fallback = "FORMER subpolity", }, ["former provinces!"] = { -- For categorizing former provinces of China, etc. category_link = "no-longer-existing [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "former political divisions", }, ["FORMER province"] = { -- For categorizing ancient/historical/former provinces of the Roman Empire link = false, fallback = "FORMER subpolity", }, ["former region"] = { -- A former region is considered a former political division, but not a 'historical/traditional/etc.' region. link = "separately", preposition = "of", inherently_former = {"FORMER"}, class = "subpolity", }, ["FORMER settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"Former settlements"}, }, ["former settlements!"] = { category_link = "[[city|cities]], [[town]]s and [[village]]s that no longer exist or have been merged or reclassified", bare_category_breadcrumb = "settlements", bare_category_parent = "former political divisions", }, ["FORMER subpolity"] = { link = false, preposition = "of", class = "subpolity", default = {"Former political divisions"}, }, ---------------------------------------------------------------------------------------------- -- form-of categories -- ---------------------------------------------------------------------------------------------- ---------- Abbreviations ---------- ["abbreviations of counties!"] = { -- For categorizing abbreviations of counties of e.g. England full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[county|counties]]", bare_category_breadcrumb = "counties", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of places", }, ["abbreviations of departments!"] = { -- For categorizing abbreviations of departments of e.g. France full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[department]]s", bare_category_breadcrumb = "departments", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of districts!"] = { -- For categorizing abbreviations of districts of e.g. ??? full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of divisions!"] = { -- For categorizing abbreviations of divisions of e.g. Bangladesh full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[division]]s", bare_category_breadcrumb = "divisions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of former countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of former places", }, ["abbreviations of former places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "abbreviations", bare_category_parent = "former places", addl_bare_category_parents = {{name = "abbreviations of places", sort = "former"}}, }, ["abbreviations of places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "abbreviations", bare_category_parent = "places", }, ["abbreviations of political divisions!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[political]] [[division]]s", bare_category_breadcrumb = "political divisions", bare_category_parent = "abbreviations of places", }, ["abbreviations of prefectures!"] = { -- For categorizing abbreviations of prefectures of e.g. Japan full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces!"] = { -- For categorizing abbreviations of provinces of e.g. Canada full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s and [[territory|territories]]", bare_category_breadcrumb = "provinces and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of regions!"] = { -- For categorizing abbreviations of regions of e.g. Italy full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[administrative region]]s", bare_category_breadcrumb = "regions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states!"] = { -- For categorizing abbreviations of states of e.g. the United States full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[territory|territories]]", bare_category_breadcrumb = "states and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and union territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[union territory|union territories]]", bare_category_breadcrumb = "states and union territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[territory|territories]]", bare_category_breadcrumb = "territories", bare_category_parent = "abbreviations of political divisions", }, ["ABBREVIATION_OF country"] = { link = false, default = {"Abbreviations of countries"}, }, ["ABBREVIATION_OF county"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF department"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF district"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF division"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF FORMER country"] = { link = false, default = {"Abbreviations of former countries"}, }, ["ABBREVIATION_OF FORMER place"] = { link = false, default = {"Abbreviations of former places"}, }, ["ABBREVIATION_OF place"] = { link = false, default = {"Abbreviations of places"}, }, ["ABBREVIATION_OF prefecture"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF province"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF region"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF state"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF subpolity"] = { link = false, default = {"Abbreviations of political divisions"}, }, ["ABBREVIATION_OF territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF union territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ---------- Archaic forms ---------- ["archaic forms of places!"] = { full_category_link = "{{glossary|archaic}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "archaic forms", bare_category_parent = "places", }, ["ARCHAIC_FORM_OF place"] = { link = false, default = {"Archaic forms of places"}, }, ---------- Clippings ---------- ["clippings of places!"] = { full_category_link = "{{glossary|clipping}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "clippings", bare_category_parent = "places", }, ["CLIPPING_OF place"] = { link = false, default = {"Clippings of places"}, }, ---------- Dated forms ---------- ["dated forms of places!"] = { full_category_link = "{{glossary|dated}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "dated forms", bare_category_parent = "places", }, ["DATED_FORM_OF place"] = { link = false, default = {"Dated forms of places"}, }, ---------- Derogatory names ---------- ["derogatory names for cities!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[city|cities]]", bare_category_breadcrumb = "cities", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["derogatory names for continents!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for continents"}, }, ["derogatory names for countries!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for countries"}, }, ["derogatory names for places!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[place]]s", bare_category_breadcrumb = "derogatory names", bare_category_parent = "nicknames for places", }, ["derogatory names for states!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for states"}, }, ["DEROGATORY_NAME_FOR capital"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR city"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR continent"] = { link = false, default = {"Derogatory names for continents"}, }, ["DEROGATORY_NAME_FOR country"] = { link = false, default = {"Derogatory names for countries"}, }, ["DEROGATORY_NAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR place"] = { link = false, default = {"Derogatory names for places"}, }, ["DEROGATORY_NAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR state"] = { link = false, default = {"Derogatory names for states"}, }, ["DEROGATORY_NAME_FOR town"] = { link = false, default = {"Derogatory names for cities"}, }, ---------- Ellipses ---------- ["ellipses of places!"] = { full_category_link = "{{glossary|ellipsis|ellipses}} of [[name]]s of [[place]]s", bare_category_breadcrumb = "ellipses", bare_category_parent = "places", }, ["ELLIPSIS_OF place"] = { link = false, default = {"Ellipses of places"}, }, ---------- Former long-form names ---------- ["former long-form names of countries!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former long-form names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "long-form"}}, }, ["former long-form names of places!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form", bare_category_parent = "former names of places", }, ["FORMER_LONG_FORM_OF country"] = { link = false, default = {"Former long-form names of countries"}, }, ["FORMER_LONG_FORM_OF place"] = { link = false, default = {"Former long-form names of places"}, }, ---------- Former names ---------- ["former names of capitals!"] = { full_category_link = "[[former]] [[name]]s of [[capital city|capital cities]] that generally still exist but under a different name", bare_category_breadcrumb = "capitals", bare_category_parent = "former names of settlements", }, ["former names of countries!"] = { full_category_link = "[[former]] [[name]]s of [[country|countries]] that generally still exist but under a different name", bare_category_breadcrumb = "countries", bare_category_parent = "former names of places", }, ["former names of places!"] = { full_category_link = "[[former]] [[name]]s of [[place]]s that generally still exist but under a different name", bare_category_breadcrumb = "former names", bare_category_parent = "places", }, ["former names of political divisions!"] = { full_category_link = "[[former]] [[name]]s of [[political]] [[division]]s (states, provinces, counties, etc.) that generally still exist but under a different name", bare_category_breadcrumb = "political divisions", bare_category_parent = "former names of places", }, ["former names of polities!"] = { full_category_link = "[[former]] [[name]]s of [[polity|polities]] (e.g. [[country|countries]]) that generally still exist but under a different name", bare_category_breadcrumb = "polities", bare_category_parent = "former names of places", }, ["former names of settlements!"] = { full_category_link = "[[former]] [[name]]s of [[city|cities]], [[town]]s, [[village]]s, etc. that generally still exist but under a different name", bare_category_breadcrumb = "settlements", bare_category_parent = "former names of political divisions", }, ["FORMER_NAME_OF capital"] = { link = false, default = {"Former names of capitals"}, }, ["FORMER_NAME_OF country"] = { link = false, default = {"Former names of countries"}, }, ["FORMER_NAME_OF place"] = { link = false, default = {"Former names of places"}, }, ["FORMER_NAME_OF polity"] = { link = false, default = {"Former names of polities"}, }, ["FORMER_NAME_OF region"] = { link = false, fallback = "FORMER_NAME_OF subpolity", }, ["FORMER_NAME_OF settlement"] = { link = false, default = {"Former names of settlements"}, }, ["FORMER_NAME_OF subpolity"] = { link = false, default = {"Former names of political divisions"}, }, ---------- Former nicknames ---------- ["former nicknames for cities!"] = { full_category_link = "no-longer-used [[nickname]]s for [[city|cities]], e.g. the [[Eternal City]] for [[Kyoto]] during the {{w|Heian period}} ({{circa2|800–1100|short=yes}} {{AD}})", bare_category_breadcrumb = "cities", bare_category_parent = "former nicknames for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["former nicknames for places!"] = { full_category_link = "no-longer-used [[nickname]]s for [[place]]s", bare_category_breadcrumb = "former", bare_category_parent = "nicknames for places", addl_bare_category_parents = {{name = "former names of places", sort = "nicknames"}}, }, ["FORMER_NICKNAME_FOR capital"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR city"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR place"] = { link = false, default = {"Former nicknames for places"}, }, ["FORMER_NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR town"] = { link = false, default = {"Former nicknames for cities"}, }, ---------- Former official names ---------- ["former official names of countries!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former official names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "official"}}, }, ["former official names of places!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "former names of places", }, ["FORMER_OFFICIAL_NAME_OF country"] = { link = false, default = {"Former official names of countries"}, }, ["FORMER_OFFICIAL_NAME_OF place"] = { link = false, default = {"Former official names of places"}, }, ---------- Long-form names ---------- ["long-form names of countries!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "long-form names of places", }, ["long-form names of places!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form names", bare_category_parent = "places", }, ["LONG_FORM_OF country"] = { link = false, default = {"Long-form names of countries"}, }, ["LONG_FORM_OF place"] = { link = false, default = {"Long-form names of places"}, }, ---------- Nicknames ---------- ["nicknames for cities!"] = { full_category_link = "[[nickname]]s for [[city|cities]], e.g. the [[Big Apple]] for [[New York City]]", bare_category_breadcrumb = "cities", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"cities"}, }, ["nicknames for continents!"] = { full_category_link = "[[nickname]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"continents"}, }, ["nicknames for countries!"] = { full_category_link = "[[nickname]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"countries"}, }, ["nicknames for places!"] = { full_category_link = "[[nickname]]s for [[place]]s", bare_category_breadcrumb = "places", bare_category_parent = "nicknames", addl_bare_category_parents = {"places"}, }, ["nicknames for states!"] = { -- For categorizing nicknames for states of e.g. the United States full_category_link = "[[nicknames]] for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"states"}, }, ["NICKNAME_FOR capital"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR city"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR continent"] = { link = false, default = {"Nicknames for continents"}, }, ["NICKNAME_FOR country"] = { link = false, default = {"Nicknames for countries"}, }, ["NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR place"] = { link = false, default = {"Nicknames for places"}, }, ["NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR state"] = { link = false, default = {"Nicknames for states"}, }, ["NICKNAME_FOR town"] = { link = false, default = {"Nicknames for cities"}, }, ---------- Obsolete forms ---------- ["obsolete forms of places!"] = { full_category_link = "{{glossary|obsolete}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "obsolete forms", bare_category_parent = "places", }, ["OBSOLETE_FORM_OF place"] = { link = false, default = {"Obsolete forms of places"}, }, ---------- Official names ---------- ["official names of countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of places", }, ["official names of former countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of former places", }, ["official names of former places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "official names", bare_category_parent = "former places", addl_bare_category_parents = {{name = "official names of places", sort = "former"}}, }, ["official names of places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official names", bare_category_parent = "places", }, ["OFFICIAL_NAME_OF country"] = { link = false, default = {"Official names of countries"}, }, ["OFFICIAL_NAME_OF FORMER country"] = { link = false, default = {"Official names of former countries"}, }, ["OFFICIAL_NAME_OF FORMER place"] = { link = false, default = {"Official names of former places"}, }, ["OFFICIAL_NAME_OF place"] = { link = false, default = {"Official names of places"}, }, ---------- Official nicknames ---------- ["official nicknames for places!"] = { full_category_link = "[[official]] [[nickname]]s for [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for places", }, ["official nicknames for states!"] = { -- For categorizing official nicknames for states of e.g. the United States full_category_link = "[[official]] [[nicknames]] for [[state]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for states", addl_bare_category_parents = {"states"}, }, ["OFFICIAL_NICKNAME_FOR place"] = { link = false, default = {"Official nicknames for places"}, }, ["OFFICIAL_NICKNAME_FOR state"] = { link = false, default = {"Official nicknames for states"}, }, } export.plural_placetype_to_singular = {} for sg_placetype, spec in pairs(export.placetype_data) do if spec.plural then export.plural_placetype_to_singular[spec.plural] = sg_placetype end end ------------------------------------------------------------------------------------------ -- ZH: Chinese localization functions -- ------------------------------------------------------------------------------------------ --[==[ Get the Chinese display name for a placetype, resolving through the enwikt fallback chain. `holonym_placetype` (optional string) provides context for placetypes like `capital city` whose Chinese term depends on the containing administrative level (country → 首都, province → 省會, state → 首府, etc.). Returns two values: zh_name (string or array of regional variants), zh_suffix (string, array, or nil). Returns nil, nil if no Chinese data is available for the placetype or any of its fallbacks. ]==] function export.get_zh_placetype_name(placetype, holonym_placetype) placetype = export.resolve_placetype_aliases(placetype) local zh_name, zh_suffix, zh_by_holonym = m_zh_data.get_zh_placetype_props(placetype, export) if zh_name then local resolved = m_zh_data.resolve_zh_name(zh_name, zh_by_holonym, holonym_placetype) return resolved, zh_suffix end return nil, nil end --[==[ Get only the Chinese suffix for a placetype. Used when rendering holonym `:pref`/`:suf` modifiers in Chinese: the suffix is appended directly to the holonym name (e.g. `s:suf/New York` → 紐約州; `c:pref/Georgia` → 格魯吉亞國). Returns a string, an array of regional variants, or nil if no suffix is defined. ]==] function export.get_zh_placetype_suffix(placetype) placetype = export.resolve_placetype_aliases(placetype) local _, zh_suffix = m_zh_data.get_zh_placetype_props(placetype, export) return zh_suffix end --[==[ Chinese placetype "pluralization" — a no-op, since Chinese has no grammatical plural. Accepts and returns a string or an array (for multi-variant names) unchanged. Provided so that call sites shared with the English path can call a uniform function. ]==] function export.pluralize_zh_placetype(zh_name) return zh_name end --[==[ Get the entry preposition for Chinese display: "in" or "of". Identical to `get_placetype_entry_preposition` in semantics; the Chinese rendering maps these to different constructions: "in" → 位於 [holonyms] 的 [placetype] "of" → [holonyms] 的 [placetype] (no 位於 prefix) ]==] export.get_zh_entry_preposition = export.get_placetype_entry_preposition -- Re-export Chinese data tables so that [[Module:place]] only needs to require -- this module rather than both this module and [[Module:place/zh-data]] separately. export.zh_strings = m_zh_data.zh_strings export.zh_qualifiers = m_zh_data.zh_qualifiers export.zh_extra_info_labels = m_zh_data.zh_extra_info_labels export.zh_capital_label_by_holonym_type = m_zh_data.zh_capital_label_by_holonym_type export.format_zh_name = m_zh_data.format_zh_name return export mb4r27oac4hxcu99ak6clzd9en0jo3i 9759668 9759605 2026-05-14T23:56:54Z TongcyDai 53191 9759668 Scribunto text/plain local export = {} export.force_cat = false -- set to true for testing local m_locations = require("Module:place/locations") local m_links = require("Module:links") local m_table = require("Module:table") local m_strutils = require("Module:string utilities") local debug_track_module = "Module:debug/track" local en_utilities_module = "Module:en-utilities" -- Chinese localization data (zh_name, zh_suffix, qualifiers, extra-info labels, etc.) local m_zh_data = require("Module:place/data/sandbox") local dump = mw.dumpObject local insert = table.insert local concat = table.concat local internal_error = m_locations.internal_error export.internal_error = internal_error local process_error = m_locations.process_error export.process_error = process_error local unpack = unpack or table.unpack -- Lua 5.2 compatibility local ucfirst = m_strutils.ucfirst local ulower = m_strutils.lower local rmatch = m_strutils.match local split = m_strutils.split --[==[ intro: This module contains placetype data used by [[Module:place]] and {{tl|place}}, along with a significant amount of code to work with both placetypes and locations, as well as some placename-related info (FIXME: Consider moving it to [[Module:place/locations]]). See also [[Module:place/locations]], which has definitions of all known locations. You must currently load this module using {{cd|require()}}, not using {{cd|mw.loadData()}}. In particular, it contains two fundamental and tricky functions: # `get_placetype_equivs`, which finds the equivalent placetypes to look under in order to find a given property, and in the process correctly handles placetypes with qualifiers (including qualifiers that act similar to "type-raising" operators in that they do something non-trivial to the placetype to their right) as well as form-of directives and fallbacks. # `find_matching_holonym_location`, which looks up a holonym to find a matching known location, but in the process checks holonyms to the right to make sure there isn't a clash between the user-specified containing holonyms and the containers of the known location being considered. This is done to prevent overcategorizing when either there are two known locations with the same name (e.g. Birmingham in England and Birmingham, Alabama in the US), or more generally two locations with the same name, one of which is a known location but where the other is not (e.g. we're processing non-known-location Mérida, Spain and don't want it categorized like known location Mérida, Yucatán, Mexico). Both of these functions are invoked repeatedly, and probably are invoked several times on the same inputs and as a result are candidates for memoization to speed up the operation of {{tl|place}}. ]==] ------------------------------------------------------------------------------------------ -- Basic utilities -- ------------------------------------------------------------------------------------------ --[==[ Return true if `force_cat` is set either in this module or in [[Module:place/locations]]. ]==] function export.get_force_cat() return export.force_cat or m_locations.force_cat end -- Add the page to a tracking "category". To see the pages in the "category", -- go to [[Wiktionary:Tracking/place/PAGE]] and click on "What links here". local function track(page) require(debug_track_module)("place/" .. page) return true end function export.remove_links_and_html(text) text = m_links.remove_links(text) return text:gsub("<.->", "") end --[==[ Return the singular version of a maybe-plural placetype, or nil if not plural. This correctly handles placetypes with irregular plurals such as `kibbutzim` plural of `kibbutz` by looking up in a table constructed from the `plural` values specified in `placetype_data`. If a special plural value is not found, the regular singularization algorithm in [[Module:en-utilities]] is invoked, which reverses the y -> ies change after vowels and the 'es' addition after sh/ch/x, and otherwise just subtracts a final 's' (which will incorrectly generate 'passe' for plural 'passes'; FIXME: consider changing this for words ending in '-sses'). If the generated singular is the same as the passed-in value, nil is returned. ]==] function export.maybe_singularize_placetype(placetype) if not placetype then return nil end if export.plural_placetype_to_singular[placetype] then return export.plural_placetype_to_singular[placetype] end local retval = require(en_utilities_module).singularize(placetype) if retval == placetype then return nil end return retval end -- Return the correct plural of a placetype, and (if `do_ucfirst` is given) make the first letter uppercase. We first -- look up the plural in `placetype_data`, falling back to pluralize() in [[Module:en-utilities]], which is almost -- always correct. function export.pluralize_placetype(placetype, do_ucfirst) local ptdata = export.placetype_data[placetype] if ptdata and ptdata.plural then placetype = ptdata.plural else placetype = require(en_utilities_module).pluralize(placetype) end if do_ucfirst then return ucfirst(placetype) else return placetype end end --[==[ Get the data associated with a placetype, which may be in its singular or plural form. If `from_category` is specified, we also look for category-only placetypes (generally plural) followed by `!`. Return three values: (a) the placetype under which the data can be looked up (i.e. in its singular form if the passed-in `placetype` is plural and did not match a category-only placetype followed by `!`); (b) the placetype data structure; (c) the type of `placetype` match that occurred, one of `"direct"` if the canonical placetype is the same as the passed-in `placetype` and also the same as the key under which `ptdata` was looked up, or `"direct-category"` if the `ptdata` was looked up under a key formed from the passed-in `placetype` by adding `!`, or `"plural"` if the `ptdata` was looked up under the singularized version of the plural passed-in `placetype`. ]==] function export.get_placetype_data(placetype, from_category) local ptdata = export.placetype_data[placetype] if ptdata then return placetype, ptdata, "direct" end if from_category then ptdata = export.placetype_data[placetype .. "!"] if ptdata then return placetype .. "!", ptdata, "direct-category" end end local sg_placetype = export.maybe_singularize_placetype(placetype) if sg_placetype then ptdata = export.placetype_data[sg_placetype] if ptdata then return sg_placetype, ptdata, "plural" end end return nil end --[==[ Check for special pseudo-placetypes that should be ignored for categorization purposes. ]==] function export.placetype_is_ignorable(placetype) return placetype == "and" or placetype == "or" or placetype:find("^%(") end function export.resolve_placetype_aliases(placetype) return export.placetype_aliases[placetype] or placetype end --[==[ Return a property from `placetype_data` for a given placetype. If the placetype isn't found in `placetype_data`, or the key isn't found in the placetype's entry in `placetype_data`, return nil. ]==] function export.get_placetype_prop(placetype, key) -- Usually we are called on equivalent placetypes returned from `get_placetype_equivs`, in which case placetype -- aliases have been resolved, but sometimes not, e.g. when fetching the indefinite article in -- get_placetype_article(). `resolve_placetype_aliases` is just a simple lookup and it doesn't hurt to do it twice. placetype = export.resolve_placetype_aliases(placetype) if export.placetype_data[placetype] then return export.placetype_data[placetype][key] else return nil end end --[==[ Given a placetype, split the placetype into one or more potential ''splits'', each consisting of a three-element list { {``prev_qualifiers``, ``this_qualifier``, ``reduced_placetype``}}, i.e. # the concatenation of zero or more previously-recognized qualifiers on the left, normally canonicalized (if there are zero such qualifiers, the value will be nil); # a single recognized qualifier, normally canonicalized (if there is no qualifier, the value will be nil); # the "reduced placetype" on the right. Splitting between the qualifier in (2) and the reduced placetype in (3) happens at each space character, proceeding from left to right, and stops if a qualifier isn't recognized. All placetypes are canonicalized by checking for aliases in `placetype_aliases`, but no other checks are made as to whether the reduced placetype is recognized. Canonicalization of qualifiers does not happen if `no_canon_qualifiers` is specified. For example, given the placetype `"small beachside unincorporated community"`, the return value will be { { {nil, nil, "small beachside unincorporated community"}, {nil, "small", "beachside unincorporated community"}, {"small", "[[beachfront]]", "unincorporated community"}, {"small [[beachfront]]", "[[unincorporated]]", "community"}, }} Here, `"beachside"` is canonicalized to `"[[beachfront]]"` and `"unincorporated"` is canonicalized to `"[[unincorporated]]"`, in both cases according to the entry in `placetype_qualifiers`. On the other hand, if given `"small former haunted community"`, the return value will be { { {nil, nil, "small former haunted community"}, {nil, "small", "former haunted community"}, {"small", "former", "haunted community"}, }} because `"small"` and `"former"` but not `"haunted"` are recognized as qualifiers. Finally, if given `"former adr"`, the return value will be { { {nil, nil, "former adr"}, {nil, "former", "administrative region"}, }} because `"adr"` is a recognized placetype alias for `"administrative region"`. ]==] function export.split_qualifiers_from_placetype(placetype, no_canon_qualifiers) local splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} local prev_qualifier = nil while true do local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if canon == nil then break end local new_qualifier = qualifier if type(canon) == "table" then canon = canon.link end if not no_canon_qualifiers and canon ~= false then if canon == true then new_qualifier = "[[" .. qualifier .. "]]" else new_qualifier = canon end end insert(splits, {prev_qualifier, new_qualifier, export.resolve_placetype_aliases(reduced_placetype)}) prev_qualifier = prev_qualifier and prev_qualifier .. " " .. new_qualifier or new_qualifier placetype = reduced_placetype else break end end return splits end --[==[ Given a `placetype` (which may be pluralized), return an ordered list of equivalent placetypes to look under to find the placetype's properties (such as the category or categories to be inserted). The return value is actually an ordered list of objects of the form `{qualifier=``qualifier``, placetype=``equiv_placetype``}` where ``equiv_placetype`` is a placetype whose properties to look up, derived from the passed-in placetype or from a contiguous subsequence of the words in the passed-in placetype (always including the rightmost word in the placetype, i.e. we successively chop off qualifier words from the left and use the remainder to find equivalent placetypes). ``qualifier`` is the remaining words not part of the subsequence used to find ``equiv_placetype``; or nil if all words in the passed-in placetype were used to find ``equiv_placetype``. (FIXME: This qualifier is not currently used anywhere.) Only placetypes for which there is an entry in `placetype_data` are included. The placetype passed in is always checked first, and will form the first entry if it exists in `placetype_data`. '''NOTE:''' This is a tricky function as it implements handling of (a) qualifiers, (b) fallback logic, (c) "type-raising" qualifiers such as `former`/`ancient`/etc. as well as `fictional` and `mythological`, and (d) form-of directives, which act somewhat similarly to `former`, and allows interaction between more than one of these simultaneously (e.g. official names of former places, which have their own categorization). If {{tl|place}} gets too slow, one potential speedup is to memoize the results of this function, as it appears to be getting called more than once on the same inputs. Another similar potential speedup is to memoize the results of `iterate_matching_holonym_location()`. For example, given the placetype `left tributary`, the following placetype/qualifier combinations are checked in turn: ``` {qualifier = nil, placetype="left tributary"} {qualifier = "left", placetype="tributary"} {qualifier = "left", placetype="river"} ``` and the return value will be { { {qualifier = "left", placetype="tributary"}, {qualifier = "left", placetype="river"}, }} The algorithm first enters the placetype itself into the list, then checks for `left tributary` as a recognized placetype in `placetype_data` and doesn't find it, so it doesn't enter it into the returned list (if it found it, it would add it as well as any fallbacks directly after it). It then splits off the recognized qualifier `left` to form the ''reduced placetype'' `tributary`, which is entered into the list because it is found in `placetype_data`. Then, because it has a fallback `river`, which exists in `placetype_data`, the fallback is entered next. Another example is `small rural fraziones` (where a ''frazione'' is type of subdivision of a ''comune'' or municipality, often specifically an outlying hamlet). the placetype/qualifier combinations checked are: ``` {qualifier = nil, placetype="small rural fraziones"} {qualifier = nil, placetype="small rural frazione"} {qualifier = "small", placetype="rural fraziones"} {qualifier = "small", placetype="rural frazione"} {qualifier = "small [[rural]]", placetype="fraziones"} {qualifier = "small [[rural]]", placetype="frazione"} {qualifier = "small [[rural]]", placetype="hamlet"} {qualifier = "small [[rural]]", placetype="village"} ``` The return value ends up as {qualifier = "small [[rural]]", placetype="frazione"}, {qualifier = "small [[rural]]", placetype="hamlet"}, {qualifier = "small [[rural]]", placetype="village"}, }} Here, because the result of singularizing `fraziones` returns a different value from the placetype itself, that singularized value is checked after the original plural value. Also, in the process of splitting off qualifiers, they are canonicalized if the entry in `placetype_qualifiers` says to do so; in this case, links are placed around `rural`. Finally, `frazione` has `hamlet` as its fallback, which in turn has `village` as its fallback, so both fallbacks end up being returned. `no_fallback`, if set, disables returning equivalent placetypes based on the `fallback` setting for a placetype. This is used in the first of two loops in find_placetype_cat_specs() in [[Module:place]] to prefer exact matches for placetypes such as barangays with later holonyms to matches based on a fallback such as `neighborhood` with an earlier holonym. See the comment in that function in [[Module:place]] for a more detailed explanation of why this is needed. Only the placetype itself, and any reduced placetypes created by chopping off recognized qualifiers at the beginning, are returned; but we do not return reduced placetypes if a containing placetype exists in `placetype_data`. (For example, `"overseas territory"` has a fallback `"dependent territory"`, and `"overseas"` is also a recognized qualifier. When `no_fallback` is in place, without the above proviso, we would return `"overseas territory"` followed by `"territory"` with the incorrect effect of classifying an `"overseas territory"` of the United Kingdom such as `"Gibraltar"` under [[:Category:Territories of the United Kingdom]] instead of [[:Category:Dependent territories of the United Kingdom]].) As an exception, if `historical`, `ancient`, `former` or the like are found, they proceed ignoring `no_fallback`, because it seems tricky to handle them correctly in the presence of `no_fallback`, and historical/former placetypes rarely occur with exact match category specs anyway. `no_split_qualifiers` prevents splitting off recognized qualifiers and returning the remainder of the placetype as an equivalent placetype. Only the passed-in placetype, and any fallbacks, will be returned. This is used in [[Module:category tree/topic cat/data/Places]] when looking up placetypes found in categories. Such placetypes won't have qualifiers and so it doesn't make sense to try and look for them. `from_category`, if set, causes category-only placetypes (those ending in `!`) to also be checked. `form_of_directive`, if set, causes the specified form-of directive (e.g. `FORMER_NAME_OF`) to be prepended to checked placetypes, their directive-specific type (e.g. `FORMER_NAME_OF_type`), and their classes (`class`) to get the appropriate placetypes to check for form-of-directive categories. It falls back to the prepended generic `place` as a placetype, e.g. `FORMER_NAME_OF place`, if nothing else matches. `no_check_for_inherently_former` is used internally to prevent an infinite loop when checking for `inherently_former`. `register_former_as_non_former` is a major hack used in `get_bare_categories` to deal with the mismatch between e.g. known location `Yugoslavia` declaring itself a `country` but definitions of it declaring it a `former country`. It causes the non-former version of the specified placetype to be included in the returned equivalents along with the former placetypes. [FIXME: This should apply only to the entries in `former_countries` but it's tricky to do that now; fix this in the known-location refactor. -- The known-location refactor is already done but we haven't yet fixed this.] ]==] function export.get_placetype_equivs(placetype, props) local no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former local form_of_directive if props then no_fallback, no_split_qualifiers, no_check_for_inherently_former, from_category, register_former_as_non_former = props.no_fallback, props.no_split_qualifiers, props.no_check_for_inherently_former, props.from_category, props.register_former_as_non_former form_of_directive = props.form_of_directive end local equivs = {} -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. `qualifier` is -- the preceding qualifier to insert into `equivs` along with the placetype (see comment at top of function). If -- `from_category` is given, we also check for a category-specific entry consisting of the placetype followed by -- `!`, and in all cases we also check to see if `placetype` is plural, and if so, insert the singularized version -- along with its fallbacks (if any) in `placetype_data`. `form_of_prefix` is a form-of prefix such as -- `OFFICIAL_NAME_OF`. If specified, we check the fallbacks of `placetype` without the prefix but then insert into -- `equivs` the prefixed placetype. This way, if the user says e.g. {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}}, -- we will correctly categorize into [[:Category:Official names of countries]], rather than only trying to look up -- `OFFICIAL_NAME_OF island country` and failing, falling back ultimately to [[:Category:Official names of places]]. local function insert_placetype_and_fallbacks(qualifier, placetype, form_of_prefix) local function insert_equiv(pt) if form_of_prefix then -- Let's say the user says {{tl|place|pt|@official name of:Cuba|island country|r/Caribbean}} and we have -- no entry for `OFFICIAL_NAME_OF island country` but we do for `OFFICIAL_NAME_OF country` (which we end -- up processing because `island country` falls back to `country`), and that entry in turn is defined -- using a fallback. We have to insert that fallback-of-fallback, and the easiest/cleanest way of -- handling this is by calling ourselves recursively. insert_placetype_and_fallbacks(qualifier, form_of_prefix .. " " .. pt) else insert(equivs, {qualifier=qualifier, placetype=pt}) end end -- Insert the placetype, along with any fallbacks. local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if ptdata then insert_equiv(canon_placetype) if no_fallback then return end local first_placetype = #equivs + 1 local prev_placetype = nil while true do local pt_value = export.placetype_data[canon_placetype] if not pt_value then internal_error("Fallback value %s specified for placetype %s but is not in `placetype_data`", canon_placetype, prev_placetype) end if pt_value.fallback then insert_equiv(pt_value.fallback) local last_placetype = #equivs if last_placetype - first_placetype >= 10 then local fallback_loop = {} for i = first_placetype, last_placetype do insert(fallback_loop, equivs[i].placetype) end internal_error("Apparent loop in fallback chain: %s", table.concat(fallback_loop, " -> ")) end prev_placetype = canon_placetype canon_placetype = pt_value.fallback else break end end end end -- Insert `placetype` into `equivs`, along with any fallback placetypes listed in `placetype_data`. This is a -- wrapper around the more basic `insert_placetype_and_fallbacks()` which handles form-of directives. If there is no -- form-of directive, this function directly calls `insert_placetype_and_fallbacks()`. We do things this way so that -- form-of directives correctly combine with `former`-type qualifiers. Note that we also have special backups for -- form-of directives that check `DIRECTIVE place` (and before that, `DIRECTIVE FORMER/ANCIENT place` is there's a -- `former`-type directive); these backups live outside this function because we want them done once, late, rather -- than in each invocation of `process_and_insert_placetype()`. local function process_and_insert_placetype(qualifier, reduced_placetype) if form_of_directive then -- First check for e.g. `OFFICIAL_NAME_OF island country` and its fallbacks; then we look for fallbacks of -- `island country` and check e.g. `OFFICIAL_NAME_OF country` and its fallbacks. All of this is handled by -- `insert_placetype_and_fallbacks()` with appropriate parameters. After that, check the general class of -- the directive, e.g. `subpolity` if something like `district` is given. (Eventually, we check for -- `OFFICIAL_NAME_OF place` as a backup, but this happens at the end outside the loop over qualifiers.) insert_placetype_and_fallbacks(qualifier, reduced_placetype, form_of_directive) if not no_fallback then local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype) local directive_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, form_of_directive .. "_type") or export.get_placetype_prop(pt, "class") end ) if not directive_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s in conjunction with form-of directive %s, placetype data " .. 'located but directive-specific type property %s missing, and so is "class"; ' .. "placetypes searched are %s", reduced_placetype, form_of_directive, form_of_directive .. "_type", reduced_placetype_equivs) else -- This should be allowed, as we allow unrecognized placetypes in general. end elseif directive_type ~= "!" then insert_placetype_and_fallbacks(qualifier, directive_type, form_of_directive) end end else insert_placetype_and_fallbacks(qualifier, reduced_placetype) end end -- Successively split off recognized qualifiers and loop over successively greater sets of qualifiers from the left -- (unless `no_split_qualifiers` is specified, in which case we don't check for qualifiers). local splits if no_split_qualifiers then splits = {{nil, nil, export.resolve_placetype_aliases(placetype)}} else splits = export.split_qualifiers_from_placetype(placetype) end for _, split in ipairs(splits) do local prev_qualifier, this_qualifier, reduced_placetype = unpack(split, 1, 3) -- If a special "former" qualifier like `former` or `historical` isn't present, and -- `no_check_for_inherently_former` is not given (this flag is used to avoid infinite loops), check for -- "inherently former" placetypes like `satrapy` and `treaty port` that always refer to no-longer-existing -- placetypes, and handle accordingly. local unlinked_this_qualifier if this_qualifier and this_qualifier:find("%[") then unlinked_this_qualifier = export.remove_links_and_html(this_qualifier) else unlinked_this_qualifier = this_qualifier end local former_qualifiers = this_qualifier and export.former_qualifiers[unlinked_this_qualifier] or nil if not former_qualifiers and not no_check_for_inherently_former then former_qualifiers = export.get_equiv_placetype_prop(reduced_placetype, function(pt) return export.get_placetype_prop(pt, "inherently_former") end, {no_check_for_inherently_former = true}) end -- If a special "former" qualifier like `former` or `historical` is present, map it to the appropriate internal -- qualifiers (`ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified -- qualifiers), fetch the `former_type` property, and treat the placetype as if a concatenation of the mapped -- qualifier(s) and the value of `former_type`. For example, if `medieval village` is given, we map `medieval` -- to `ANCIENT` and `FORMER`, and `village` to its `former_type` of `settlement`, and enter the placetypes -- `ANCIENT settlement` and `FORMER settlement` (in that order) into `equivs`. If the placetype following the -- "former" qualifier is recognized in `placetype_data` but has no `former_type` and no fallback with a -- `former_type` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like -- `former greenhouse` is specified and we don't have an entry for `greenhouse`), just track the occurrence and -- don't enter anything into `equivs`. if former_qualifiers then -- FIXME: Should we respect `no_fallback` here? My instinct says no. local reduced_placetype_equivs = export.get_placetype_equivs(reduced_placetype, { no_check_for_inherently_former = true }) local former_type = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.get_placetype_prop(pt, "former_type") or export.get_placetype_prop(pt, "class") end ) if not former_type then local pt_data = export.get_equiv_placetype_prop_from_equivs(reduced_placetype_equivs, function(pt) return export.placetype_data[pt] end ) if pt_data then internal_error("For placetype %s, placetype data located but `former_type` missing; " .. "placetypes searched are %s", reduced_placetype, reduced_placetype_equivs) else -- Enable error when we've verified there aren't any examples. track("bad-former-placetype") track("bad-former-placetype/" .. reduced_placetype) --process_error("For placetype '%s', unrecognized placetype following 'former'-type " .. -- "qualifier; searched placetype(s) %s", reduced_placetype, dump(reduced_placetype_equivs)) end elseif former_type ~= "!" then -- First check directly for `ANCIENT/FORMER` + the original following placetype. This makes it possible -- for (e.g.) former provinces of the Roman empire to be categorized specially. for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. reduced_placetype) end for _, former_qualifier in ipairs(former_qualifiers) do process_and_insert_placetype(prev_qualifier, former_qualifier .. " " .. former_type) end -- HACK! See explanation above for `register_former_as_non_former`. if register_former_as_non_former then process_and_insert_placetype(prev_qualifier, reduced_placetype) end -- If we're processing a form-of directive, after doing everything else we do -- `DIRECTIVE ANCIENT/FORMER place` e.g. `OFFICIAL_NAME_OF FORMER place` as a backup. if form_of_directive and not no_fallback then for _, former_qualifier in ipairs(former_qualifiers) do insert_placetype_and_fallbacks(prev_qualifier, form_of_directive .. " " .. former_qualifier .. " place") end end -- Don't continue processing equivs. The reason is probably the same as the `break` below for -- qualifier_to_placetype_equivs[]; categories for `former BLAH` are set using `default`, and -- non-former equivs will otherwise take precedence. break end end -- Then see if the rightmost split-off qualifier is in qualifier_to_placetype_equivs -- (e.g. 'fictional *' -> 'fictional location'). If so, add the mapping. if this_qualifier and export.qualifier_to_placetype_equivs[unlinked_this_qualifier] then insert(equivs, { qualifier=prev_qualifier, placetype=export.qualifier_to_placetype_equivs[unlinked_this_qualifier] }) -- Don't continue processing equivs; otherwise, if we specify 'mythological city', even though the -- equivalent entry for 'mythological location' gets inserted ahead of the entry for 'city', the -- latter ends up generating the category because the category for 'mythological location' is set as -- the default value, which is used only when no non-default category can be found. break end -- Finally, join the rightmost split-off qualifier to the previously split-off qualifiers to form a combined -- qualifier, and add it along with reduced_placetype and any mapping in placetype_data for reduced_placetype. -- NOTE: The first time through this loop, both `prev_qualifier` and `this_qualifier` are nil, and this inserts -- the full placetype into `equivs`. local qualifier = prev_qualifier and prev_qualifier .. " " .. this_qualifier or this_qualifier process_and_insert_placetype(qualifier, reduced_placetype) -- If `no_fallback` and there's an entry in `placetype_data` for this placetype, don't include any reduced -- placetypes to avoid the "overseas territory treated as a territory" issue describe above. if no_fallback then local canon_placetype, ptdata, ptmatch = export.get_placetype_data(reduced_placetype, from_category) if canon_placetype then break end end end -- If we're processing a form-of directive, after doing everything else we do `DIRECTIVE place` e.g. -- `OFFICIAL_NAME_OF place` as a backup; but only if either the placetype as a whole is recognized or the placetype -- begins with a recognized qualifier. This latter check is to avoid categorizing into e.g. -- [[Category:en:Former names of places]] in an invocation like -- {{place|en|@former name of:Democratic Republic of the Congo|country|r/Central Africa|;|used from 1971–1997}}; -- the `used from 1971–1997` gets treated as a placetype and we're called on it. if form_of_directive and not no_fallback and (splits[2] or export.get_placetype_data(placetype, from_category)) then insert_placetype_and_fallbacks(nil, form_of_directive .. " place") end return equivs end function export.get_equiv_placetype_prop_from_equivs(equivs, fun, continue_on_nil_only) for _, equiv in ipairs(equivs) do local retval = fun(equiv.placetype) if continue_on_nil_only and retval ~= nil or not continue_on_nil_only and retval then return retval, equiv end end return nil, nil end --[==[ Given a placetype `placetype` and a function `fun` of one argument, iteratively call the function on equivalent placetypes fetched from `get_placetype_equivs` until the function returns a non-falsy value (i.e. not {nil} or {false}); but if `continue_on_nil_only` is specified, the iterations continue until the function returns non non-{nil} value. FIXME: We should make `continue_on_nil_only` the default; but this requires changing some callers.) When `fun` returns a non-falsy or non-{nil} value, `get_equiv_placetype_prop` returns two values: the value returned by `fun` and the equivalent placetype that triggered the non-falsy (or non-{nil}) return value. If `fun` never returns a non-falsy (or non-{nil}) value, `get_equiv_placetype_prop` returns {nil} for both return values. If `placetype` is passed in as {nil}, the return value is the result of calling `fun` on {nil} (whatever it is) with {nil} for the second return value. ]==] function export.get_equiv_placetype_prop(placetype, fun, props) if not placetype then return fun(nil), nil end return export.get_equiv_placetype_prop_from_equivs(export.get_placetype_equivs(placetype, props), fun, props and props.continue_on_nil_only) end --[==[ Return the article that is used with an entry placetype. We proceed as follows: # See if there is a recognized qualifier at the beginning that specifies an article (including `false` for no article). This takes precedence over anything else, so that e.g. `various capitals` gets no article rather than "`the"`. # Then check the placetype or any equivalent placetype for the `entry_placetype_use_the` property, indicating that `"the"` should be used. # Otherwise we look to see if the placetype itself (not any equivalents, even those involving deleting a qualifier from the beginning) has an entry in `placetype_data` that specifies the indefinite article using `entry_placetype_use_the` (principally for use with placetypes like `union territory`). # Otherwise, we use [[Module:en-utilities]] to apply the standard algorithm to generate `"an"` for words beginning with a vowel and `"a"` otherwise. If `ucfirst` is true, the first letter of the article is made upper-case. ]==] function export.get_placetype_article(placetype, ucfirst) local art local qualifier, reduced_placetype = placetype:match("^(.-) (.*)$") if qualifier then local canon = export.placetype_qualifiers[qualifier] if type(canon) == "table" then art = canon.article end end if art == false then return art end if art == nil then local placetype_use_the = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "entry_placetype_use_the") end) if placetype_use_the then art = "the" else art = export.get_placetype_prop(placetype, "entry_placetype_indefinite_article") if not art then art = require(en_utilities_module).get_indefinite_article(placetype) end end end if ucfirst then art = m_strutils.ucfirst(art) end return art end --[==[ Return the preposition that should be used after `placetype` when occurring as an entry placetype or in categories (e.g. `city >in< France` but `country >of< South America`). The preposition defaults to `"in"` if not specified. ]==] function export.get_placetype_entry_preposition(placetype) local pt_prep = export.get_equiv_placetype_prop(placetype, function(pt) return export.get_placetype_prop(pt, "preposition") end ) return pt_prep or "in" end --[==[ Given a place desc (see top of file) and a holonym object (see top of file), add a key/value into the place desc's `holonyms_by_placetype` field corresponding to the placetype and placename of the holonym. For example, corresponding to the holonym "c/Italy", a key "country" with the list value {"Italy"} will be added to the place desc's `holonyms_by_placetype` field. If there is already a key with that place type, the new placename will be added to the end of the value's list. ]==] function export.key_holonym_into_place_desc(place_desc, holonym) if not holonym.placetype then return end -- Key in equivalent placetypes, so that e.g. `cities/San Francisco` gets keyed under `city`; but don't do -- fallbacks, as it doesn't seem correct for the "do other holonyms of the same placetype" algorithm to do holonyms -- of different types just because they have the same fallback. local equiv_placetypes = export.get_placetype_equivs(holonym.placetype, {no_fallback = true}) local unlinked_placename = holonym.unlinked_placename for _, equiv in ipairs(equiv_placetypes) do local placetype = equiv.placetype if not place_desc.holonyms_by_placetype then place_desc.holonyms_by_placetype = {} end if not place_desc.holonyms_by_placetype[placetype] then place_desc.holonyms_by_placetype[placetype] = {unlinked_placename} else insert(place_desc.holonyms_by_placetype[placetype], unlinked_placename) end end end --[=[ Construct a formatted link from the raw link spec `link` given the canonical singular placetype `sg_placetype`. If the placetype was originally plural, `orig_placetype` should contain this plural value; otherwise it should be nil. This will construct the appropriate type of link that displays as `orig_placetype` (or otherwise `sg_placetype`) but links to whatever the `link` spec specifies (which may be `sg_placetype`, a Wikipedia article, etc.). `ptdata` is the placetype data structure for the placetype, and `from_category` indicates that we are generating the description of a category (otherwise we are generating the display form of an entry placetype). ]=] local function make_placetype_link(link, sg_placetype, orig_placetype, ptdata, from_category, noerror) if not from_category and ptdata.disallow_in_entries then if noerror then return "[not meant to be specified directly, with warning: " .. ptdata.disallow_in_entries .. "]" else process_error("Placetype %s is not meant to be specified directly: " .. ptdata.disallow_in_entries, sg_placetype) end end if link == nil then internal_error("Placetype data present for placetype %s but no link= setting given", sg_placetype) elseif link == true then if orig_placetype then return ("[[%s|%s]]"):format(sg_placetype, orig_placetype) else return ("[[%s]]"):format(sg_placetype) end elseif link == false then process_error("Placetype %s is not meant to be specified directly, but is only for internal use", sg_placetype) elseif link == "w" then return ("[[w:%s|%s]]"):format(sg_placetype, orig_placetype or sg_placetype) elseif link == "separately" then if orig_placetype then local sg_words = split(sg_placetype, " ") local orig_words = split(orig_placetype, " ") if #sg_words ~= #orig_words then internal_error("Can't construct 'separately' link for plural placetype %s as original placetype %s " .. "has different number of words", orig_placetype, sg_placetype) else for i = 1, #sg_words do if sg_words[i] == orig_words[i] then sg_words[i] = ("[[%s]]"):format(sg_words[i]) else sg_words[i] = ("[[%s|%s]]"):format(sg_words[i], orig_words[i]) end end return concat(sg_words, " ") end else return (sg_placetype:gsub("([^ ]+)", "[[%1]]")) end elseif link:find("^%+") then link = link:sub(2) -- discard initial + return ("[[%s|%s]]"):format(link, orig_placetype or sg_placetype) elseif not orig_placetype then return link else return require(en_utilities_module).pluralize(link) end end --[==[ Get the display form of a placetype by looking it up in `placetype_data`. If the placetype is recognized, or is the plural of a recognized placetype, the corresponding linked display form is returned (with plural placetypes displaying as plural but linked to the singular form of the placetype). Otherwise, return nil. If we're generating the description of a category, `category_type` should be set to one of `"top-level"` (for top-level categories like [[:Category:Neighborhoods]]), `"noncity"` (for non-city categories like [[:Category:Neighborhoods in Illinois, USA]]) or `"city"` (for city categories like [[:Category:Neighborhoods of Chicago]]). Otherwise, we're generating the description for use in formatting a {{tl|place}} call, and category-only placetypes ending in `!` will be ignored, along with special `category_link*` settings. `return_full` is used along with `category_type` and will preferably return the "full" variant of category link settings, i.e. `full_category_link*`; if they don't exist, the `category_link*` value is prepended with `"names of"`. `noerror` says to not throw an error when encountering entry placetypes that would be disallowed. ]==] function export.get_placetype_display_form(placetype, category_type, return_full, noerror) local from_category = not not category_type local canon_placetype, ptdata, ptmatch = export.get_placetype_data(placetype, from_category) if canon_placetype then local raw_link local function is_linked_string(str) return type(str) == "string" and str:find("%[%[") end if category_type then local fetched_full local function fetch_maybe_full(prop) local retval = ptdata["full_" .. prop] if retval ~= nil then if return_full then return retval, true else internal_error("Saw full_" .. prop .. "=%s but `return_full` not set, can't handle", retval) end end return ptdata[prop], false end local function maybe_prefix(str) if return_full and not fetched_full then return "names of " .. str else return str end end -- Careful with `false` as possible value. if category_type == "top-level" then raw_link, fetched_full = fetch_maybe_full("category_link_top_level") elseif category_type == "noncity" then raw_link, fetched_full = fetch_maybe_full("category_link_before_noncity") elseif category_type == "city" then raw_link, fetched_full = fetch_maybe_full("category_link_before_city") else internal_error('Unrecognized value for `category_type` %s, should be "top-level", "noncity" or "city"', category_type) end if type(raw_link) == "string" then return maybe_prefix(raw_link), ptdata elseif raw_link ~= nil then return raw_link, ptdata end raw_link, fetched_full = fetch_maybe_full("category_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end if ptmatch == "plural" then raw_link, fetched_full = fetch_maybe_full("plural_link") if raw_link == false then return raw_link, ptdata end if is_linked_string(raw_link) then return maybe_prefix(raw_link), ptdata end end if raw_link == nil then raw_link, fetched_full = fetch_maybe_full("link") end if raw_link == false then return raw_link, ptdata end return maybe_prefix(make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror)), ptdata else if ptmatch == "plural" then raw_link = ptdata.plural_link if raw_link == false then process_error("Placetype %s cannot appear plural", placetype) end if is_linked_string(raw_link) then return raw_link, ptdata end end if raw_link == nil then raw_link = ptdata.link end return make_placetype_link(raw_link, canon_placetype, placetype ~= canon_placetype and placetype or nil, ptdata, from_category, noerror), ptdata end end return nil end local function resolve_unlinked_placename_display_aliases(placetype, placename) local equiv_placetypes = export.get_placetype_equivs(placetype) for i, equiv in ipairs(equiv_placetypes) do equiv_placetypes[i] = equiv.placetype end local all_display_aliases_found = {} local all_others_found = {} for group, key, spec in m_locations.iterate_matching_location { placetypes = equiv_placetypes, placename = placename, alias_resolution = "display", } do if spec.alias_of and spec.display then insert(all_display_aliases_found, {group, key, spec, spec.display_as_full}) else insert(all_others_found, {group, key, spec}) end end if not all_display_aliases_found[1] then return placename elseif all_display_aliases_found[2] then internal_error("Found multiple matching display aliases for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) elseif all_others_found[1] then internal_error("Found a display alias along with other possible meanings for placename %s, placetype %s: " .. "all_display_aliases_found=%s, all_others_found=%s", placename, placetype, all_display_aliases_found, all_others_found) else local group, key, spec, as_full = unpack(all_display_aliases_found[1]) local full, elliptical = m_locations.key_to_placename(group, key) return as_full and full or elliptical end end --[==[ If `placename` of type `placetype` is a display alias, convert it to its canonical form; otherwise, return unchanged. Display aliases transform certain placenames into canonical displayed forms. For example, if any of `country/US`, `country/USA` or `country/United States of America` (or `c/US`, etc.) are given, the result will be displayed as `United States`. '''NOTE''': Display aliases change what is displayed from what the editor wrote in the Wikitext. As a result, they should (a) be non-political in nature, and (b) not involve a change where the word `the` needs to be added or removed. For example, normalizing `US` and `USA` to `United States` for display purposes is OK but normalizing `Burma` to `Myanmar` is not (instead a cat alias should be used) because the terms `Burma` and `Myanmar` have clear political connotations. Similarly, we have a display alias that maps the old name of `Macedonia` as a country (but not a region!) to `North Macedonia`, but `Republic of Macedonia` is mapped to `North Macedonia` only as a cat alias because the two terms differ in their use of `the`. (For example, if we had a display alias mapping `Republic of Macedonia` to `North Macedonia`, the call {{tl|place|en|the <<capital city>> of the <<c/Republic of Macedonia>>}} would wrongly display as `the [[capital city]] of the [[North Macedonia]]`.) Generally, display normalizations tend to involve alternative forms (e.g. abbreviations, ellipses, foreign spellings) where the normalization improves clarity and consistency. ]==] function export.resolve_placename_display_aliases(placetype, placename) -- If the placename is a link, apply the alias inside the link. -- This pattern matches both piped and unpiped links. If the link is not piped, the second capture (linktext) will -- be empty. local link, linktext = rmatch(placename, "^%[%[([^|%[%]]+)|?([^|%[%]]-)%]%]$") if link then if linktext ~= "" then local alias = resolve_unlinked_placename_display_aliases(placetype, linktext) return "[[" .. link .. "|" .. alias .. "]]" else local alias = resolve_unlinked_placename_display_aliases(placetype, link) return "[[" .. alias .. "]]" end else return resolve_unlinked_placename_display_aliases(placetype, placename) end end --[==[ Generate the "prefixed" version of a bare key, i.e. prefix it with `the` if correct for this key. ]==] function export.get_prefixed_key(key, spec) if spec.the then return "the " .. key else return key end end -- Necessary for use by [[Module:place]]. FIXME: Reorganize the modules so this isn't necessary. export.iterate_matching_location = m_locations.iterate_matching_location --[=[ Iterator that iterates over holonyms in `place_desc`. If `first_holonym_index` is given, start iterating at the specified holonym and stop either when there are no more holonyms or a holonym with modifier `:also` is found. If `first_holonym_index` is nil or omitted, iterate over all holonyms regardless. If `include_raw_text_holonyms` is specified, raw text holonyms (those not of the form `placetype/placename`) are returned as well; they can be identified by the fact that the `placetype` field in the holonym structure is nil. Two values are returned at each iteration, the holonym index and holonym structure, similar to `ipairs()`. ]=] function export.get_holonyms_to_check(place_desc, first_holonym_index, include_raw_text_holonyms) local stop_at_also = not not first_holonym_index return function(place_desc, index) while true do index = index + 1 local this_holonym = place_desc.holonyms[index] -- If we were passed in a starting holonym index, go up to but not including a holonym marked with `:also` -- (continue_cat_loop); the categorization code will then restart the loop at that holonym. That holonym -- will have `:also` marked on it, so make sure not to stop immediately if the first holonym is marked with -- `:also`. if not this_holonym or stop_at_also and index > first_holonym_index and this_holonym.continue_cat_loop then return nil end -- If not placetype, we're processing raw text, which we normally want to skip. if include_raw_text_holonyms or this_holonym.placetype then return index, this_holonym end end end, place_desc, first_holonym_index and first_holonym_index - 1 or 0 end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, iterate over all such known locations, returning for each location the corresponding key, spec and group as well as the trail of ancestral containers. Unlike `iterate_matching_location()`, this specifically checks that there is no mismatch between the location's containers at any level and any of the following holonyms in the {{tl|place}} spec. The fields in `data` are: * `holonym_placetype`: The placetype of the holonym. It can actually be a list of possible placetypes, as with `iterate_matching_location()`. * `holonym_placename`: The placename of the holonym. * `holonym_index`: The index of the holonym among the holonyms in `place_desc`, or nil if the holonym is not among the holonyms in `place_desc`. (If a holonym index is given, we check for container mismatches among the holonyms following the specified index, stopping either when encountering a holonym marked with modifier `:also` or, if none exist, when we run out of holonyms. If no holonym index is given, we check all holonyms for container mismatches.) * `place_desc`: Description of the place; used for the holonyms, to check for container mismatches. Returns four values: the location group, the canonical key by which the location is known, the spec object describing the location and the trail of ancestral containers for the location. The first three values are the same as for `iterate_matching_location`. ]==] function export.iterate_matching_holonym_location(data) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc local matching_location_iterator = m_locations.iterate_matching_location { placetypes = holonym_placetype, placename = holonym_placename, } return function() while true do local group, key, spec = matching_location_iterator() if not group then return nil end local container_trail = {} -- For each level of container, check that there are no mismatches (i.e. other location of the same -- placetype) mentioned. We allow a mismatch at a given level if there's also a match with the container -- at that level. For example, in the case of Kansas City, defined in [[Module:place/locations]] as a city -- in Missouri, if we define it as {{tl|place|city|s/Missouri,Kansas}}, we ignore the mismatching state of -- Kansas because the correct state of Missouri was also mentioned. But imagine we are defining Newark, -- Delaware as {{tl|place|city|s/Delaware|c/US}} and (as is the case) we have an entry for Newark, New -- Jersey in [[Module:place/locations]]. Just because the containing location `US` matches isn't enough, -- because Newark, NJ also has New Jersey as a containing location and there's a mismatch at that level. If -- there are no mismatches at any level we assume we're dealing with the right known location. -- -- If at a given level there are multiple containing locations, we count a match if any holonym matches any -- containing location, and a mismatch only if a holonym exists of the same placetype that doesn't match any -- containing location. local containers_mismatch = false for containers in m_locations.iterate_containers(group, key, spec) do insert(container_trail, containers) local match_at_level = false local mismatch_at_level = false for other_holonym_index, other_holonym in export.get_holonyms_to_check(place_desc, holonym_index and holonym_index + 1 or nil) do local other_source_holonym = other_holonym.augmented_from_holonym if other_source_holonym and other_source_holonym.placetype == holonym_placetype and other_source_holonym.unlinked_placename ~= holonym_placename then -- Ignore holonyms added during the augmentation process for other holonyms of the same -- placetype as the placetype of the holonym we're considering. See comment in -- augment_holonyms_with_container() for why we do this. -- continue; grrr, no 'continue' in Lua else local holonym_matches_at_level = false local holonym_exists_with_same_placetype = false for _, container in ipairs(containers) do if not container.spec.no_check_holonym_mismatch then local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) local placetypes = container.spec.placetype if type(placetypes) ~= "table" then placetypes = {placetypes} end local placetype_equivs = {} for _, pt in ipairs(placetypes) do m_table.extend(placetype_equivs, export.get_placetype_equivs(pt)) end local this_holonym_matches = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype and (other_holonym.unlinked_placename == full_container_placename or other_holonym.unlinked_placename == elliptical_container_placename) end ) if this_holonym_matches then holonym_matches_at_level = true break end local this_holonym_exists_with_same_placetype = export.get_equiv_placetype_prop_from_equivs( placetype_equivs, function(placetype) return other_holonym.placetype == placetype end ) if this_holonym_exists_with_same_placetype then -- We seem to have a mismatch at this level. But before we decide conclusively that this -- is the case, check to see whether the putative mismatch is an alias and matches when -- we resolve the alias. for oh_group, oh_key, oh_spec, oh_container_trail in export.iterate_matching_holonym_location { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = place_desc, } do local oh_full_placename, oh_elliptical_placename = m_locations.key_to_placename(oh_group, oh_key) if oh_full_placename == full_container_placename or oh_elliptical_placename == elliptical_container_placename then -- Alias matched when resolved. this_holonym_matches = true break end end if this_holonym_matches then -- Alias matched above when resolved. holonym_matches_at_level = true break else -- Not an alias, or doesn't match when resolved. We have a true mismatch. holonym_exists_with_same_placetype = true end end end end if holonym_matches_at_level then match_at_level = true break end if holonym_exists_with_same_placetype then mismatch_at_level = true end end end if not match_at_level and mismatch_at_level then containers_mismatch = true break end end if not containers_mismatch then return group, key, spec, container_trail end end end end --[==[ If the holonym in `data` (in the format as passed to a category handler) refers to a known location, find and return the corresponding key, spec and group as well as the trail of ancestral containers. This is like `iterate_matching_holonym_location()` but throws an error if more than one location matches. (An example where this would happen is {{tl|place|en|neighborhood|city/Newcastle}}, because there are two known locations named Newcastle. To fix this, specify additional following disambiguating holonyms, e.g. {{tl|place|en|neighborhood|city/Newcastle|s/New South Wales}}. ]==] function export.find_matching_holonym_location(data) local all_found = {} for group, key, spec, container_trail in export.iterate_matching_holonym_location(data) do insert(all_found, {group, key, spec, container_trail}) end if not all_found[1] then return nil elseif all_found[2] then local holonym_placetype = data.holonym_placetype if type(holonym_placetype) == "table" then holonym_placetype = concat(holonym_placetype, ",") end local found_keys = {} for _, found in ipairs(all_found) do local _, key, _, _ = unpack(found) insert(found_keys, key) end error(("Found multiple matching locations for holonym '%s/%s'; specify disambiguating context in the " .. "containing holonyms: %s"):format(holonym_placetype, data.holonym_placename, dump(found_keys))) else return unpack(all_found[1]) end end ------------------------------------------------------------------------------------------ -- Placename and placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: This is a map from aliases to their canonical forms. Any placetypes appearing as keys here will be mapped to their canonical forms in all respects, including the display form. Contrast entries in 'placetype_data' with a fallback, which applies to categorization and other processes but not to display. The most important aliases are for holonym placetypes, particularly those that occur often such as "country", "state", "province" and the like. Particularly long placetypes that mostly occur as entry placetypes (e.g. "census-designated place") can be given abbreviations, but it is generally preferred to spell out the entry placetype. Note also that we purposely avoid certain abbreviations that would be ambiguous (e.g. "d", which could variously be interpreted as "department", "district" or "division"). ]==] export.placetype_aliases = { ["acomm"] = "autonomous community", ["adr"] = "administrative region", ["adterr"] = "administrative territory", -- Pakistan ["aobl"] = "autonomous oblast", ["aokr"] = "autonomous okrug", ["ap"] = "autonomous province", ["apref"] = "autonomous prefecture", ["aprov"] = "autonomous province", ["ar"] = "autonomous region", ["arch"] = "archipelago", ["arep"] = "autonomous republic", ["aterr"] = "autonomous territory", ["atu"] = "autonomous territorial unit", ["bor"] = "borough", ["c"] = "country", ["can"] = "canton", ["carea"] = "council area", ["cc"] = "constituent country", ["cdblock"] = "community development block", ["cdep"] = "Crown dependency", ["CDP"] = "census-designated place", ["cdp"] = "census-designated place", ["clcity"] = "county-level city", ["co"] = "county", ["cobor"] = "county borough", ["colcity"] = "county-level city", ["coll"] = "collectivity", ["comm"] = "community", ["cont"] = "continent", ["contr"] = "continental region", ["contregion"] = "continental region", ["cpar"] = "civil parish", ["damun"] = "direct-administered municipality", ["dep"] = "dependency", ["department capital"] = "departmental capital", ["dept"] = "department", ["depterr"] = "dependent territory", ["dist"] = "district", ["distmun"] = "district municipality", ["div"] = "division", ["emp"] = "empire", ["fpref"] = "French prefecture", ["gov"] = "governorate", ["govnat"] = "governorate", ["home-rule city"] = "home rule city", ["home-rule municipality"] = "home rule municipality", ["inner-city area"] = "inner city area", ["ires"] = "Indian reservation", ["isl"] = "island", ["lbor"] = "London borough", ["lga"] = "local government area", ["lgarea"] = "local government area", ["lgd"] = "local government district", ["lgdist"] = "local government district", ["metbor"] = "metropolitan borough", ["metcity"] = "metropolitan city", ["metmun"] = "metropolitan municipality", ["mtn"] = "mountain", ["mun"] = "municipality", ["mundist"] = "municipal district", ["nonmetropolitan county"] = "non-metropolitan county", ["obl"] = "oblast", ["okr"] = "okrug", ["p"] = "province", ["par"] = "parish", ["parmun"] = "parish municipality", ["pen"] = "peninsula", ["plcity"] = "prefecture-level city", ["plcolony"] = "Polish colony", ["pref"] = "prefecture", ["prefcity"] = "prefecture-level city", ["preflcity"] = "prefecture-level city", ["prov"] = "province", ["r"] = "region", ["range"] = "mountain range", ["rcm"] = "regional county municipality", ["rcomun"] = "regional county municipality", ["rdist"] = "regional district", ["rep"] = "republic", ["rhrom"] = "rural hromada", ["riv"] = "river", ["rmun"] = "regional municipality", ["robor"] = "royal borough", ["romp"] = "Roman province", ["runit"] = "regional unit", ["rurmun"] = "rural municipality", ["s"] = "state", ["sar"] = "special administrative region", ["shrom"] = "settlement hromada", ["spref"] = "subprefecture", ["sprefcity"] = "sub-prefectural city", ["sprovcity"] = "subprovincial city", ["submet city"] = "sub-metropolitan city", ["submetropolitan city"] = "sub-metropolitan city", ["sub-prefecture-level city"] = "sub-prefectural city", ["sub-provincial city"] = "subprovincial city", ["sub-provincial district"] = "subprovincial district", ["terr"] = "territory", ["terrauth"] = "territorial authority", ["twp"] = "township", ["twpmun"] = "township municipality", ["uauth"] = "unitary authority", ["ucomm"] = "unincorporated community", ["udist"] = "unitary district", ["uhrom"] = "urban hromada", ["uterr"] = "union territory", ["utwpmun"] = "united township municipality", ["val"] = "valley", ["vdc"] = "village development committee", ["vil"] = "village", ["voi"] = "voivodeship", ["wcomm"] = "Welsh community", -- Chinese capital/seat types ["首都"] = "capital", ["省會"] = "provincial capital", ["首府"] = "regional capital", ["縣治"] = "county seat", -- Chinese placetype name aliases (map to English equivalents so they inherit preposition, display handler, etc.) ["國家"] = "country", ["構成國"] = "constituent country", ["大洲"] = "continent", ["洲"] = "continent", ["大陸"] = "continent", ["帝國"] = "empire", ["共和國"] = "republic", ["邦"] = "state", ["州"] = "state", ["省"] = "province", ["郡"] = "county", ["縣"] = "county", ["城市"] = "city", ["市"] = "city", ["區"] = "district", ["鄉"] = "township", ["鎮"] = "town", ["村"] = "village", ["社區"] = "community", ["島"] = "island", ["島嶼"] = "island", ["群島"] = "archipelago", ["半島"] = "peninsula", ["山"] = "mountain", ["山脈"] = "mountain range", ["河"] = "river", ["河流"] = "river", ["谷"] = "valley", ["山谷"] = "valley", ["特別行政區"] = "special administrative region", ["直轄市"] = "direct-administered municipality", ["地級市"] = "prefecture-level city", ["縣級市"] = "county-level city", ["副省級市"] = "subprovincial city", ["副地級市"] = "sub-prefectural city", ["市轄區"] = "municipal district", ["自治區"] = "autonomous region", ["自治省"] = "autonomous province", ["自治州"] = "autonomous prefecture", ["自治共和國"] = "autonomous republic", ["自治市"] = "borough", ["屬地"] = "dependent territory", ["海外領地"] = "dependent territory", ["領地"] = "territory", ["聯邦屬地"] = "union territory", ["皇家屬地"] = "Crown dependency", ["教區"] = "parish", ["堂區"] = "parish", ["民政教區"] = "civil parish", ["廣域市"] = "metropolitan city", ["非建制地區"] = "unincorporated community", ["人口普查指定地區"] = "census-designated place", ["印第安保留地"] = "Indian reservation", ["羅馬行省"] = "Roman province", ["單一管理區"] = "unitary authority", ["地方行政區"] = "local government area", } local no_link_def_article = {link = false, article = "the"} local no_link_no_article = {link = false, article = false} --[==[ var: These qualifiers can be prepended onto any placetype and will be handled correctly. For example, the placetype `large city` will be displayed as `large <nowiki>[[city]]</nowiki>` and categorized as if `city` were specified. If the value in the following table is a string, the qualifier will display according to the string. If the value is `true`, the qualifier will be linked to its corresponding Wiktionary entry. If the value is `false`, the qualifier will not be linked but will appear as-is. Note that these qualifiers do not override placetypes with entries elsewhere that contain those same qualifiers. For example, the entry for `inland sea` in `placetype_data` will apply in preference to treating `inland sea` as equivalent to `sea`. ]==] export.placetype_qualifiers = { -- generic qualifiers ["huge"] = false, ["tiny"] = false, ["large"] = false, ["big"] = false, ["mid-size"] = false, ["mid-sized"] = false, ["small"] = false, ["sizable"] = false, ["important"] = false, ["long"] = false, ["short"] = false, ["major"] = false, ["minor"] = false, ["high"] = false, ["tall"] = false, ["low"] = false, ["left"] = false, -- left tributary ["right"] = false, -- right tributary ["modern"] = false, -- for use in opposition to "ancient" in another definition -- "former" qualifiers ["abandoned"] = true, ["ancient"] = true, ["deserted"] = true, ["extinct"] = true, ["former"] = false, ["historic"] = "historical", ["historical"] = true, ["medieval"] = true, ["mediaeval"] = true, ["ruined"] = true, ["traditional"] = true, -- sea qualifiers ["coastal"] = true, ["inland"] = true, -- note, we also have an entry in placetype_data for 'inland sea' to get a link to [[inland sea]] ["maritime"] = true, ["overseas"] = true, ["seaside"] = true, ["beachfront"] = true, ["beachside"] = true, ["riverside"] = true, -- lake qualifiers ["freshwater"] = true, ["saltwater"] = true, ["endorheic"] = true, ["oxbow"] = true, ["ox-bow"] = "[[oxbow]]", -- [[ox-bow]] is a red link ["tidal"] = true, -- land qualifiers ["hilltop"] = true, ["hilly"] = true, ["insular"] = true, ["peninsular"] = true, ["chalk"] = true, ["karst"] = true, ["limestone"] = true, ["mountainous"] = true, ["mountaintop"] = true, ["alpine"] = true, ["volcanic"] = true, -- for an island -- political status qualifiers ["autonomous"] = true, ["incorporated"] = true, ["special"] = true, ["unincorporated"] = true, ["coterminous"] = true, -- monetary status/etc. qualifiers ["fashionable"] = true, ["wealthy"] = true, ["affluent"] = true, ["declining"] = true, -- city vs. rural qualifiers ["urban"] = true, ["suburban"] = true, ["exurban"] = true, ["outlying"] = true, ["remote"] = true, ["rural"] = true, ["outback"] = true, ["inner"] = false, ["inner-city"] = true, ["central"] = false, ["outer"] = false, -- land use qualifiers ["residential"] = true, ["agricultural"] = true, ["business"] = true, ["commercial"] = true, ["industrial"] = true, -- business use qualifiers ["railroad"] = true, ["railway"] = true, ["farming"] = true, ["fishing"] = true, ["mining"] = true, ["logging"] = true, ["cattle"] = true, -- tourism use qualifiers ["resort"] = true, -- note, we also have 'resort city' and 'resort town', that take precedecne ["spa"] = true, -- note, we also have 'spa city' and 'spa town', that take precedecne ["ski"] = true, -- note, we also have 'ski resort city' and 'ski resort town', that take precedecne -- religious qualifiers ["holy"] = true, ["sacred"] = true, ["religious"] = true, ["secular"] = true, -- qualifiers for nonexistent places ["claimed"] = false, ["fictional"] = true, ["legendary"] = true, ["mythical"] = true, ["mythological"] = true, -- directional qualifiers ["northern"] = false, ["southern"] = false, ["eastern"] = false, ["western"] = false, ["north"] = false, ["south"] = false, ["east"] = false, ["west"] = false, ["northeastern"] = false, ["southeastern"] = false, ["northwestern"] = false, ["southwestern"] = false, ["northeast"] = false, ["southeast"] = false, ["northwest"] = false, ["southwest"] = false, -- seasonal qualifiers ["summer"] = true, -- e.g. for 'summer capital' ["winter"] = true, -- legal status qualifiers -- FIXME: Two-word qualifiers don't work yet. But you can enter "de-facto" and it's canonicalized to [[de facto]]. ["official"] = true, ["unofficial"] = true, ["de facto"] = true, -- 'de facto capital' ["de-facto"] = "[[de facto]]", -- [[de-facto]] is a red link ["de jure"] = true, -- 'de jure capital' ["de-jure"] = "[[de jure]]", -- [[de-jure]] is a red link -- NOTE: 'unrecognized/unrecognised' are handled as placetypes 'unrecognized country', 'unrecognized state' -- misc. qualifiers ["planned"] = true, ["chartered"] = true, ["landlocked"] = true, ["uninhabited"] = true, -- superlative qualifiers ["first"] = no_link_def_article, ["second"] = no_link_def_article, -- for "second largest" etc. ["third"] = no_link_def_article, ["fourth"] = no_link_def_article, ["last"] = no_link_def_article, ["only"] = no_link_def_article, ["sole"] = no_link_def_article, ["main"] = no_link_def_article, ["largest"] = no_link_def_article, ["biggest"] = no_link_def_article, ["smallest"] = no_link_def_article, ["shortest"] = no_link_def_article, ["longest"] = no_link_def_article, ["tallest"] = no_link_def_article, ["highest"] = no_link_def_article, ["lowest"] = no_link_def_article, ["leftmost"] = no_link_def_article, ["rightmost"] = no_link_def_article, ["innermost"] = no_link_def_article, ["outermost"] = no_link_def_article, ["northernmost"] = no_link_def_article, ["southernmost"] = no_link_def_article, ["westernmost"] = no_link_def_article, ["easternmost"] = no_link_def_article, ["northwesternmost"] = no_link_def_article, ["southwesternmost"] = no_link_def_article, ["northeasternmost"] = no_link_def_article, ["southeasternmost"] = no_link_def_article, -- several/various ["several"] = no_link_no_article, ["various"] = no_link_no_article, ["numerous"] = no_link_no_article, ["multiple"] = no_link_no_article, ["many"] = no_link_no_article, ["other"] = no_link_no_article, } --[==[ var: In this table, the key qualifiers should be treated the same as the value qualifiers for categorization purposes. This is overridden by `placetype_data` and `qualifier_to_placetype_equivs`. ]==] export.former_qualifiers = { ["abandoned"] = {"FORMER"}, ["ancient"] = {"ANCIENT", "FORMER"}, ["former"] = {"FORMER"}, ["extinct"] = {"FORMER"}, ["historic"] = {"FORMER"}, ["historical"] = {"FORMER"}, ["medieval"] = {"ANCIENT", "FORMER"}, ["mediaeval"] = {"ANCIENT", "FORMER"}, ["ruined"] = {"ANCIENT", "FORMER"}, ["traditional"] = {"FORMER"}, } --[==[ var: In this table, any placetypes containing these qualifiers that do not occur in `placetype_data` should be mapped to the specified placetypes for categorization purposes. Entries here are overridden by `placetype_data`. ]==] export.qualifier_to_placetype_equivs = { ["fictional"] = "fictional location", ["legendary"] = "mythological location", ["mythical"] = "mythological location", ["mythological"] = "mythological location", -- For e.g. Taiwan as a "claimed province" of China; parts of Belize as claimed by Guatemala; various islands -- claimed by various parties in East Asia. FIXME: We should conditionalize on what is being claimed since there are -- also claimed capitals, e.g. Israel and Palestine claim Jerusalem as their capital. ["claimed"] = "claimed political division", } --[==[ var: Mapping from placetypes to the corresponding plural category-only placetype for a capital of that placetype. The reverse mapping also exists. ]==] export.placetype_to_capital_cat = { ["autonomous community"] = "autonomous community capitals", ["canton"] = "cantonal capitals", ["comarca"] = "comarca capitals", ["country"] = "national capitals", -- The following are not obviously different from 'county seats' but the latte terminology is used in the US. ["county"] = "county capitals", ["department"] = "departmental capitals", ["district"] = "district capitals", ["division"] = "division capitals", ["emirate"] = "emirate capitals", ["governorate"] = "governorate capitals", ["hromada"] = "hromada capitals", ["krai"] = "krai capitals", ["metropolitan city"] = "metropolitan city capitals", ["municipality"] = "municipal capitals", ["oblast"] = "oblast capitals", ["okrug"] = "okrug capitals", ["prefecture"] = "prefectural capitals", ["province"] = "provincial capitals", ["raion"] = "raion capitals", ["regency"] = "regency capitals", ["region"] = "regional capitals", ["regional unit"] = "regional unit capitals", ["republic"] = "republic capitals", ["state"] = "state capitals", ["territory"] = "territorial capitals", ["voivodeship"] = "voivodeship capitals", } --[==[ var: This contains placenames that should be preceded by an article (almost always "the"). '''NOTE''': There are multiple ways that placenames can come to be preceded by "the": # Listed here. # Given in [[Module:place/locations]] with an initial "the". All such placenames are added to this map by the code just below the map. # The placetype of the placename has `holonym_use_the = true` in its placetype_data. # A regex in placename_the_re matches the placename. Note that "the" is added only before the first holonym in a place description. ]==] export.placename_article = { -- This should only contain info that can't be inferred from [[Module:place/locations]]. ["archipelago"] = { ["Cyclades"] = "the", ["Dodecanese"] = "the", }, ["country"] = { ["Holy Roman Empire"] = "the", }, ["empire"] = { ["Holy Roman Empire"] = "the", }, ["island"] = { ["North Island"] = "the", ["South Island"] = "the", }, ["region"] = { ["Balkans"] = "the", ["Russian Far East"] = "the", ["Caribbean"] = "the", ["Caucasus"] = "the", ["Middle East"] = "the", ["New Territories"] = "the", ["North Caucasus"] = "the", ["South Caucasus"] = "the", ["West Bank"] = "the", ["Gaza Strip"] = "the", }, ["valley"] = { ["San Fernando Valley"] = "the", }, } --[==[ var: Regular expressions to apply to determine whether we need to put 'the' before a holonym. The key "*" applies to all holonyms, otherwise only the regexes for the holonym's placetype apply. ]==] export.placename_the_re = { -- We don't need entries for peninsulas, seas, oceans, gulfs or rivers -- because they have holonym_use_the = true. ["*"] = {"^Isle of ", " Islands$", " Mountains$", " Empire$", " Country$", " Region$", " District$", "^City of "}, ["bay"] = {"^Bay of "}, ["lake"] = {"^Lake of "}, ["country"] = {"^Republic of ", " Republic$"}, ["republic"] = {"^Republic of ", " Republic$"}, ["region"] = {" [Rr]egion$"}, ["river"] = {" River$"}, ["local government area"] = {"^Shire of "}, ["county"] = {"^Shire of "}, ["Indian reservation"] = {" Reservation", " Nation"}, ["tribal jurisdictional area"] = {" Reservation", " Nation"}, } --[==[ var: If any of the following holonyms are present, the associated holonyms are automatically added to the end of the list of holonyms for categorization (but not display) purposes. ]==] export.cat_implications = { ["region"] = { ["東歐"] = {"continent/歐洲"}, ["中歐"] = {"continent/歐洲"}, ["西歐"] = {"continent/歐洲"}, ["南歐"] = {"continent/歐洲"}, ["北歐"] = {"continent/歐洲"}, ["東北歐"] = {"continent/歐洲"}, ["東南歐"] = {"continent/歐洲"}, ["北高加索"] = {"continent/歐洲"}, ["南高加索"] = {"continent/亞洲"}, ["南亞"] = {"continent/亞洲"}, ["東亞"] = {"continent/亞洲"}, ["中亞"] = {"continent/亞洲"}, ["西亞"] = {"continent/亞洲"}, ["東南亞"] = {"continent/亞洲"}, ["北亞"] = {"continent/亞洲"}, ["安納托利亞"] = {"continent/亞洲"}, ["小亞細亞"] = {"continent/亞洲"}, ["美索不達米亞"] = {"continent/亞洲"}, ["北非"] = {"continent/非洲"}, ["中非"] = {"continent/非洲"}, ["西非"] = {"continent/非洲"}, ["東非"] = {"continent/非洲"}, ["南非"] = {"continent/非洲"}, ["中美洲"] = {"continent/中美洲"}, ["加勒比地區"] = {"continent/北美洲"}, ["玻里尼西亞"] = {"continent/大洋洲"}, ["密克羅尼西亞"] = {"continent/大洋洲"}, ["美拉尼西亞"] = {"continent/大洋洲"}, ["西伯利亞"] = {"country/俄羅斯", "continent/亞洲"}, ["俄羅斯遠東地區"] = {"country/俄羅斯", "continent/亞洲"}, ["南威爾斯"] = {"constituent country/威爾斯", "continent/歐洲"}, ["巴爾幹半島"] = {"continent/歐洲"}, ["約旦河西岸"] = {"country/巴勒斯坦", "continent/亞洲"}, ["加薩"] = {"country/巴勒斯坦", "continent/亞洲"}, ["加薩走廊"] = {"country/巴勒斯坦", "continent/亞洲"}, } } ------------------------------------------------------------------------------------------ -- Category and display handlers -- ------------------------------------------------------------------------------------------ local function city_type_cat_handler(data) local entry_placetype = data.entry_placetype local generic_before_non_cities = export.get_placetype_prop(entry_placetype, "generic_before_non_cities") if not generic_before_non_cities then internal_error("city_type_cat_handler called on placetype %s that doesn't have a `generic_before_non_cities`" .. " setting", entry_placetype) end local plural_entry_placetype = export.pluralize_placetype(entry_placetype) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and not spec.is_city then -- ZH: "法國的城市" (location_key + 的 + zh_placetype_name) local zh_name_raw = export.get_zh_placetype_name(entry_placetype) local zh_entry_name = zh_name_raw and export.format_zh_name(zh_name_raw) or plural_entry_placetype local de = export.zh_strings.de_particle local retcats = {export.get_prefixed_key(key, spec) .. de .. zh_entry_name} if container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_entry_name) end end return retcats end end local function capital_city_cat_handler(data, non_city) local holonym_placetype, holonym_placename, holonym_index, place_desc = data.holonym_placetype, data.holonym_placename, data.holonym_index, data.place_desc -- The first time we're called we want to return something; otherwise we will be called for later-mentioned -- holonyms, which can result in wrongly classifying into e.g. `National capitals`. Simulate the loop in -- find_placetype_cat_specs() over holonyms so we get the proper `Cities in ...` categories as well as the capital -- category/categories we add below. local retcats if not non_city and place_desc.holonyms then for h_index, holonym in export.get_holonyms_to_check(place_desc, holonym_index) do local h_placetype, h_placename = holonym.placetype, holonym.unlinked_placename retcats = city_type_cat_handler { entry_placetype = "city", holonym_placetype = h_placetype, holonym_placename = h_placename, holonym_index = h_index, place_desc = place_desc, } if retcats then break end end end if not retcats then retcats = {} end -- Now find the appropriate capital-type category for the placetype of the holonym, e.g. 'State capitals'. If we -- recognize the holonym among the known holonyms in [[Module:place/locations]], also add a category like 'State -- capitals of the United States'. Truncate e.g. 'autonomous region' to 'region', 'union territory' to 'territory' -- when looking up the type of capital category, if we can't find an entry for the holonym placetype itself (there's -- an entry for 'autonomous community'). -- ZH: look up Chinese capital label by holonym placetype ("首都", "省會", "首府", etc.) local zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype] if not zh_capital_name then zh_capital_name = export.zh_capital_label_by_holonym_type[holonym_placetype:gsub("^.* ", "")] end local de = export.zh_strings.de_particle if zh_capital_name then local inserted_specific_variant_cat = false if holonym_index then -- Now find the first recognized holonym location. We don't stop when :also is seen because of the common pattern -- where we use :also to specify that a given city is the capital at multiple surrounding levels. local matching_group, matching_key, matching_spec, matching_container_trail, matching_holonym_index for h_index = holonym_index, #place_desc.holonyms do if place_desc.holonyms[h_index].placetype then matching_group, matching_key, matching_spec, matching_container_trail = export.find_matching_holonym_location { holonym_placetype = place_desc.holonyms[h_index].placetype, holonym_placename = place_desc.holonyms[h_index].unlinked_placename, holonym_index = h_index, place_desc = place_desc, } if matching_group then matching_holonym_index = h_index break end end end if matching_holonym_index == holonym_index then if matching_container_trail[1] and not matching_spec.no_container_cat then for _, container in ipairs(matching_container_trail[1]) do -- ZH: "美國的首都" (location_key + 的 + zh_capital_name) insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_capital_name) inserted_specific_variant_cat = true end end elseif matching_holonym_index then -- Check to make sure that the holonym placetype we were called on is listed among the -- divtypes of the location we found. local function insert_specific_variant_if_possible(key, spec) return export.get_equiv_placetype_prop(holonym_placetype, function(pt) local plural_holonym_placetype = export.pluralize_placetype(pt) local saw_matching_div if spec.divs then local divs = spec.divs if type(divs) ~= "table" then divs = {divs} end for _, div in ipairs(divs) do if type(div) ~= "table" then div = {type = div} end if plural_holonym_placetype == div.type then saw_matching_div = true break end end end if saw_matching_div then insert(retcats, export.get_prefixed_key(key, spec) .. de .. zh_capital_name) return true end return false end) end if insert_specific_variant_if_possible(matching_key, matching_spec) then inserted_specific_variant_cat = true elseif not matching_spec.no_container_cat then for _, containers in ipairs(matching_container_trail) do local saw_no_container_cat = false for _, container in ipairs(containers) do if insert_specific_variant_if_possible(container.key, container.spec) then inserted_specific_variant_cat = true break end saw_no_container_cat = saw_no_container_cat or container.spec.no_container_cat end if inserted_specific_variant_cat or saw_no_container_cat then break end end end end else -- This happens when in an invocation like {{place|en|capital city|s/Haryana,Punjab}} for -- [[Chandigarh]]. We fall back to older code that doesn't depend on the holonym index existing. -- FIXME: This may not be necessary. In the example just given, when processing Haryana we add to -- [[:Category:en:State capitals of India]], and nothing extra gets added when processing Punjab. -- Possibly we can just skip this case entirely. local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and container_trail[1] and not spec.no_container_cat then for _, container in ipairs(container_trail[1]) do insert(retcats, export.get_prefixed_key(container.key, container.spec) .. de .. zh_capital_name) inserted_specific_variant_cat = true end end end if not inserted_specific_variant_cat then insert(retcats, zh_capital_name) end else -- We didn't recognize the holonym placetype; fall back to generic capital label. insert(retcats, "首都") end return retcats end --[=[ This is invoked specially for all placetypes (see the `*` placetype key at the bottom of `placetype_data`). This is used in two ways: # To add pages to generic holonym categories like [[:Category:en:Places in Merseyside, England]] (and [[:Category:en:Places in England]]) for any pages that have `co/Merseyside` as their holonym. # To categorize demonyms in bare placename categories like [[:Category:en:Merseyside, England]] if the demonym description mentions `co/Merseyside` and doesn't mention a more specific placename that also has a category. (In this case there are none, but we can have demonyms at multiple levels, e.g. in France for individual villages, departments, administrative regions, and for the entire country, and for example we only want to categorize a demonym into [[:Category:France]] if no more specific category applies.) Unlike when invoked from {{tl|place}}, a demonym invocation only adds the most specific holonym category and not the category of any containing polity (hence if we add [[:Category:en:Merseyside, England]] we won't also add [[:Category:England]]). This code also handles cities; e.g. for the first use case above, it would be used to add a page that has `city/Boston` as a holonym to [[:Category:en:Places in Boston]], along with [[:Category:en:Places in Massachusetts, USA]] and [[:Category:en:Places in the United States]]. The city handler tries to deal with the possibility of multiple cities having the same name. For example, the code in [[Module:place/locations]] knows about the city of [[Columbus]], [[Ohio]], which has containing polities `Ohio` (a state) and `the United States` (a country). If either containing polity is mentioned, the handler proceeds to return the key `Columbus` (along with `Ohio, USA` and `the United States`). Otherwise, if any other state or country is mentioned, the handler returns nothing, and otherwise it assumes the mentioned city is the one we're considering and returns `Columbus` etc. This works correctly if the place only mentions Ohio and a holonym for a Columbus in a different country is encountered, because of the function `augment_holonyms_with_container`, which adds the US as a holonym when Ohio is encountered. The single parameter `data` is as in category handlers. The return value is a list of categories (without the preceding language code). ]=] local function generic_place_cat_handler(data) local from_demonym = data.from_demonym local retcats = {} local function insert_retkey(key, spec) if from_demonym then insert(retcats, key) else -- ZH: "法國地點" (location_key + 地點) insert(retcats, export.get_prefixed_key(key, spec) .. "地點") end end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then if not spec.no_generic_place_cat then -- This applies to continents and continental regions. insert_retkey(key, spec) end -- Categorize both in key, and in the larger location(s) that the key is part of, e.g. [[Hirakata]] goes in -- both [[Category:Places in Osaka Prefecture, Japan]] and [[Category:Places in Japan]]. But not when -- no_container_cat is set (e.g. for 'United Kingdom'). if not spec.no_container_cat then for _, container_set in ipairs(container_trail) do local stop_adding_containers = false for _, container in ipairs(container_set) do if not container.spec.no_generic_place_cat then insert_retkey(container.key, container.spec) end if container.spec.no_container_cat then stop_adding_containers = true end end if stop_adding_containers then break end end end return retcats end end --[==[ Special category handler run for all placetypes that checks for specified division placetypes of known locations and categorizes appropriately. ]==] function export.political_division_cat_handler(data) if data.from_demonym then return end local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group then local divlists = {} if spec.divs then insert(divlists, spec.divs) end if spec.addl_divs then insert(divlists, spec.addl_divs) end for _, divlist in ipairs(divlists) do if type(divlist) ~= "table" then divlist = {divlist} end for _, div in ipairs(divlist) do if type(div) == "string" then div = {type = div} end local sgdiv = export.maybe_singularize_placetype(div.type) or div.type local prep = div.prep or "of" local cat_as = div.cat_as or div.type if type(cat_as) ~= "table" then cat_as = {cat_as} end if not export.placetype_data[sgdiv] then internal_error("Placetype %s associated with known location key %s and data %s not found in " .. "`placetype_data`", sgdiv, key, spec) end if sgdiv == data.entry_placetype then -- ZH: "臺灣的縣" format (location_key + 的 + zh_name); ignore cat_as grouping local zh_n_raw = export.get_zh_placetype_name(data.entry_placetype) local zh_n = zh_n_raw and export.format_zh_name(zh_n_raw) or ucfirst(data.entry_placetype) return {export.get_prefixed_key(key, spec) .. export.zh_strings.de_particle .. zh_n} end end end end end --[==[ This is used to add pages to "bare" categories like [[:Category:en:Georgia, USA]] for `[[Georgia]]` and any foreign-language terms that are translations of the state of Georgia. We look at the page title (or its overridden value in {{para|pagename}}) as well as the glosses in {{para|t}}/{{para|t2}} etc., various extra-info values such as the modern names in {{para|modern}}, and any values specified using a form-of directive. We need to pay attention to the entry placetypes specified so we don't overcategorize; e.g. the US state of Georgia is `[[Джорджия]]` in Russian but the country of Georgia is `[[Грузия]]`, and if we just looked for matching names, we'd get both Russian terms categorized into both [[:Category:ru:Georgia, USA]] and [[:Category:ru:Georgia]]. We also need to check the containing holonyms to make sure there isn't a mismatch (so we don't e.g. categorize Newark, Delaware in [[:Category:en:Newark]], which is intended for Newark, New Jersey). ]==] function export.get_bare_categories(args, overall_place_spec) local bare_cats = {} local place_descs = overall_place_spec.descs local possible_placetypes_by_place_desc = {} for i, place_desc in ipairs(place_descs) do possible_placetypes_by_place_desc[i] = {} for _, placetype in ipairs(place_desc.placetypes) do if not export.placetype_is_ignorable(placetype) then local equivs = export.get_placetype_equivs(placetype, {register_former_as_non_former = true}) for _, equiv in ipairs(equivs) do insert(possible_placetypes_by_place_desc[i], equiv.placetype) end end end end local function check_term(term) -- Treat Wikipedia links like local ones. term = term:gsub("%[%[w:", "[["):gsub("%[%[wikipedia:", "[[") term = export.remove_links_and_html(term) term = term:gsub("^the ", "") for i, place_desc in ipairs(place_descs) do -- Iterate over all matching locations in case there are multiple, as with Delhi defined as -- {{place|en|megacity/and/union territory|c/India|containing the national capital [[New Delhi]]}}. for group, key, spec, container_trail in export.iterate_matching_holonym_location { holonym_placetype = possible_placetypes_by_place_desc[i], holonym_placename = term, place_desc = place_desc, } do insert(bare_cats, key) end end end -- FIXME: Should we only do the following if the language is English (requires that the lang is passed in)? -- We should always do it if `pagename` is given (as it is with {{tcl}}) but maybe not otherwise unless 1=en. There -- are cases like [[Ankara]] = English name for capital of Turkey, but also the name in various languages for the -- capital of Ghana (= English [[Accra]]). But this should get caught by mismatching the containing country. The -- advantage of checking when the language isn't English is we catch those places that fail to give an English -- translation but where the translation happens to be the same as the other-language spelling. However, I don't -- know how often this situation occurs. check_term(args.pagename or mw.loadData("Module:headword/data").pagename) for _, t in ipairs(args.t) do check_term(t) end local function check_termobj_list(terms) for _, term in ipairs(terms) do if term.eq then check_term(term.eq) end if term.alt or term.term then check_term(term.alt or term.term) end end end for _, extra_info_terms in ipairs(overall_place_spec.extra_info) do local arg = extra_info_terms.arg if arg == "modern" or arg == "now" or arg == "full" or arg == "short" then check_termobj_list(extra_info_terms.terms) end end for _, directive in ipairs(overall_place_spec.directives) do check_termobj_list(directive.terms) end return bare_cats end --[==[ This is used to augment the holonyms associated with a place description with the containing polities. For example, given the following: `# {{tl|place|en|subprefecture|pref/Hokkaido}}.` We auto-add Japan as another holonym so that the term gets categorized into [[:Category:Subprefectures of Japan]]. To avoid over-categorizing we need to check to make sure no other countries are specified as holonyms. ]==] function export.augment_holonyms_with_container(place_descs) for _, place_desc in ipairs(place_descs) do if place_desc.holonyms then -- This ends up containing a copy of the original holonyms, with the augmented holonyms inserted in their -- appropriate position. We don't just put them at the end because some holonyms have use the `:also` -- modifier, which causes category processing to restart at that point after generating categories for a -- preceding holonym, and we don't want the preceding holonym's augmented holonyms interfering with -- categorization of a later holonym. We proceed from right to left, and each time we augment, we copy -- the holonyms with the augmented holonym(s) inserted appropriately and replace the place description's -- holonyms with the augmented ones before the next iteration. The reason for this is so that e.g. -- {{place|neighborhood|city/Birmingham|co/West Midlands|cc/England}} doesn't throw an error during the -- augmentation process due to 'Birmingham' referring to two known locations (in England and Alabama). If -- we go left to right, we will throw an ambiguity error on `city/Birmingham` because code to exclude -- Birmingham, Alabama needs `c/United Kingdom` present (to cause a mismatch with `c/United States`), -- which isn't yet present as the augmentation code hasn't gotten to `cc/England` yet. For similar -- reasons, we need to include the augmented holonyms in the holonyms considered in the next iteration -- rather than modifying the place description once at athe end. for i = #place_desc.holonyms, 1, -1 do local holonym = place_desc.holonyms[i] if holonym.placetype and not export.placetype_is_ignorable(holonym.placetype) then local group, key, spec, container_trail = export.find_matching_holonym_location { holonym_placetype = holonym.placetype, holonym_placename = holonym.unlinked_placename, holonym_index = i, place_desc = place_desc, } if group and container_trail[1] and not spec.no_auto_augment_container then local augmented_holonyms = {} for j = 1, i do insert(augmented_holonyms, place_desc.holonyms[j]) end for _, containers in ipairs(container_trail) do local any_no_auto_augment_container = false for _, container in ipairs(containers) do any_no_auto_augment_container = any_no_auto_augment_container or container.spec.no_auto_augment_container local containing_type = container.spec.placetype if type(containing_type) == "table" then -- If the containing type is a list, use the first element as the canonical variant. containing_type = containing_type[1] end local full_container_placename, elliptical_container_placename = m_locations.key_to_placename(container.group, container.key) -- Don't side-effect holonyms while processing them. local new_holonym = { -- By the time we run, the display has already been generated so we don't need to -- set display_placename. placetype = containing_type, -- placename_to_key() for the group should correctly handle both full and elliptical -- placenames, but the full placename seems less likely to be ambiguous. FIXME: We -- should just store the key directly and use it when available to avoid having to -- convert key to placename and back to key. unlinked_placename = full_container_placename, -- Indicate that this is an augmented holonym, and was derived from the specified -- holonym. In iterate_matching_holonym_location(), we ignore augmented holonyms -- derived from holonyms that are different from the holonym we're searching for but -- of the same placetype. This is to correctly handle a situation like -- {{place|river|dept/Ardèche,Gard,Vaucluse,Bouches-du-Rhône|c/France}}. Here, -- `Ardèche` is in `r/Auvergne-Rhône-Alpes`, while `Gard` is in `r/Occitania` and -- the other two are in `r/Provence-Alpes-Côte d'Azur`. Augmenting proceeds from -- right to left, so after it adds `r/Provence-Alpes-Côte d'Azur` to -- `Bouches-du-Rhône`, Vaucluse gets augmented correctly but `Gard` fails to match -- in find_matching_holonym_location() because of the mismatch between augmented -- `r/Provence-Alpes-Côte d'Azur` and actual `r/Occitania`. Similarly, all later -- calls to find_matching_holonym_location() fail to match `Gard` (and likewise -- `Ardèche`) against any known location. To deal with this, we mark augmented -- holoynms as being augmented due to a source holonym, and when processing a given -- holonym, ignore augmented holonyms from other holonyms of the same placetype. -- The restriction to the same placetype is so that `Birmingham` still gets -- correctly disambiguated to Birmingham, England in the example given above near -- the top of this function, using the augmented holonym `c/United Kingdom` added by -- the specified `cc/England` (whose placetype `constituent country` differs from -- the placetype `city` of Birmingham). augmented_from_holonym = holonym, } insert(augmented_holonyms, new_holonym) -- But it is safe to modify other parts of the place_desc. export.key_holonym_into_place_desc(place_desc, new_holonym) end if any_no_auto_augment_container then break end end for j = i + 1, #place_desc.holonyms do insert(augmented_holonyms, place_desc.holonyms[j]) end place_desc.holonyms = augmented_holonyms end end end end end end -- Cat handler for district, areas, neighborhoods and suburbs. Districts are tricky because they can either be political -- divisions or city neighborhoods. Areas similarly can be political divisions (rarely; specifically, in Kuwait), city -- neighborhoods or larger geographical areas/regions. We handle this as follows: -- (1) `placetype_data` cat entries for specific countries or country divisions take precedence over cat_handlers, so if -- the user says {{tl|place|district|s/Maharashtra|c/India}}, we won't even be called because there is an entry that -- categorizes into [[:Category|Districts of Maharashtra, India]]. -- (2) If we're called, we check the holonym we're called on to see if it is a recognized city, e.g. if we're called -- using {{tl|place|district|city/Mumbai|s/Maharashtra|c/India}}. If so, we categorize under e.g. -- [[:Category:Neighbourhoods of Mumbai]]. (Choosing the spelling "neighbourhoods" because we're in India.) -- (3) If we're called and the holonym is not a recognized city, we check if the placetype has has_neighborhoods set. -- If so, it's "city-like" and we categorize under the first containing polity that we recognize. For example, if -- we're called using {{tl|place|district|town/Northampton|co/Hampshire|s/Massachusetts|c/US}}, we should recognize -- town as "city-like" and categorize under [[:Category:Neighborhoods in Massachusetts]]. (Note "in" not "of", and -- note the spelling "neighborhoods" because we're in the US.) -- (4) If the holonym is not city-like, we do nothing. If there's a city or city-like placetype farther up (e.g. we're -- called as {{tl|place|district|ward/Foo|mun/Bar|...}}), we will handle the city-like entity according to (2) or -- (3) when called on that holonym. Otherwise either the categorization in (1) takes place or there's no -- categorization. local function district_neighborhood_cat_handler(data) local function get_plural_entry_placetype(location_spec, container_trail) if data.entry_placetype == "suburb" then return "Suburbs" else -- Check for `british_spelling` setting on the spec itself or any container. local uses_british_spelling = location_spec.british_spelling if uses_british_spelling == nil and container_trail then for _, container_set in ipairs(container_trail) do local must_outer_break = false for _, container in ipairs(container_set) do if container.spec.british_spelling ~= nil then uses_british_spelling = container.spec.british_spelling must_outer_break = true break end end if must_outer_break then break end end end return uses_british_spelling and "Neighbourhoods" or "Neighborhoods" end end -- First check the immediate holonym to see if it's a city or a city-like top-level entity (Hong Kong, Bonaire, -- etc.) local group, key, spec, container_trail = export.find_matching_holonym_location(data) if group and not spec.is_former_place and spec.is_city then return {get_plural_entry_placetype(spec, container_trail) .. " of " .. export.get_prefixed_key(key, spec)} end -- If the entry placetype is neighbo(u)rhood, assume it is a neighborhood even if there isn't a city-like -- entity father up the chain. (E.g. due to a mistaken use of m/ instead of mun/ for municipality.) local has_neighborhoods local entry_placetype = data.entry_placetype if entry_placetype == "neighborhood" or entry_placetype == "neighbourhood" or entry_placetype == "suburb" then has_neighborhoods = true else -- Otherwise, make sure the current holonym is city-like. has_neighborhoods = export.get_equiv_placetype_prop(data.holonym_placetype, function(pt) return export.get_placetype_prop(pt, "has_neighborhoods") end, {continue_on_nil_only = true}) end if has_neighborhoods then -- Loop up the holonyms, looking for city and city-like entities in case of e.g. [[Sepulveda]] written -- {{place|en|neighborhood|valley/San Fernando Valley|city/Los Angeles|s/California|c/USA}} -- but also look for a recognizable poldiv, and if so categorize as "Neighborhoods in POLDIV". We need -- to start with the current holonym, which is especially important for neighborhoods and suburbs that -- may have the first holonym be a recognizable province, etc. but can't hurt otherwise. (Previously -- we skipped the first/current holonym.) for other_holonym_index, other_holonym in export.get_holonyms_to_check(data.place_desc, data.holonym_index) do local other_holonym_data = { holonym_placetype = other_holonym.placetype, holonym_placename = other_holonym.unlinked_placename, holonym_index = other_holonym_index, place_desc = data.place_desc, } local group, key, spec, container_trail = export.find_matching_holonym_location(other_holonym_data) if group and not spec.is_former_place then return {get_plural_entry_placetype(spec, container_trail) .. (spec.is_city and " of " or " in ") .. export.get_prefixed_key(key, spec)} end end end end function export.check_already_seen_string(holonym_placename, already_seen_strings) local canon_placename = ulower(m_links.remove_links(holonym_placename)) if type(already_seen_strings) ~= "table" then already_seen_strings = {already_seen_strings} end for _, already_seen_string in ipairs(already_seen_strings) do if canon_placename:find(already_seen_string) then return true end end return false end -- Prefix display handler that adds a prefix such as "Metropolitan Borough of " to the display -- form of holonyms. We make sure the holonym doesn't contain the prefix or some variant already. -- We do this by checking if any of the strings in ALREADY_SEEN_STRINGS, either a single string or -- a list of strings, or the prefix if ALREADY_SEEN_STRINGS is omitted, are found in the holonym -- placename, ignoring case and links. If the prefix isn't already present, we create a link that -- uses the raw form as the link destination but the prefixed form as the display form, unless the -- holonym already has a link in it, in which case we just add the prefix. local function prefix_display_handler(prefix, holonym_placename, already_seen_strings) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(prefix)) then return holonym_placename end if holonym_placename:find("%[%[") then return prefix .. " " .. holonym_placename end return prefix .. " [[" .. holonym_placename .. "]]" end -- Suffix display handler that adds a suffix such as " parish" to the display form of holonyms. -- Works identically to prefix_display_handler but for suffixes instead of prefixes. local function suffix_display_handler(suffix, holonym_placename, already_seen_strings, include_suffix_in_link) if export.check_already_seen_string(holonym_placename, already_seen_strings or ulower(suffix)) then return holonym_placename end if holonym_placename:find("%[%[") then return holonym_placename .. " " .. suffix end if include_suffix_in_link then return "[[" .. holonym_placename .. " " .. suffix .. "]]" else return "[[" .. holonym_placename .. "]] " .. suffix end end -- Display handler for boroughs. New York City boroughs are display as-is. Others are suffixed -- with "borough". local function borough_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.new_york_boroughs[unlinked_placename] then -- Hack: don't display "borough" after the names of NYC boroughs return holonym_placename end return suffix_display_handler("borough", holonym_placename) end local function county_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) -- Display handler for Irish counties. Irish counties are displayed as e.g. "County [[Cork]]". if m_locations.ireland_counties["County " .. unlinked_placename .. ", Ireland"] or m_locations.northern_ireland_counties["County " .. unlinked_placename .. ", Northern Ireland"] then return prefix_display_handler("County", holonym_placename) end -- Display handler for Taiwanese counties. Taiwanese counties are displayed as e.g. "[[Chiayi]] County". if m_locations.taiwan_counties[unlinked_placename .. " County, Taiwan"] then return suffix_display_handler("County", holonym_placename) end -- Display handler for Romanian counties. Romanian counties are displayed as e.g. "[[Cluj]] County". if m_locations.romania_counties[unlinked_placename .. " County, Romania"] then return suffix_display_handler("County", holonym_placename) end -- FIXME, we need the same for US counties but need to key off the country, not the specific county. -- Others are displayed as-is. return holonym_placename end -- Display handler for prefectures. Japanese prefectures are displayed as e.g. "[[Fukushima]] Prefecture". -- Others are displayed as e.g. "[[Fthiotida]] prefecture". local function prefecture_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) local suffix = m_locations.japan_prefectures[unlinked_placename .. " Prefecture, Japan"] and "Prefecture" or "prefecture" return suffix_display_handler(suffix, holonym_placename) end -- Display handler for provinces of Bulgaria, Iran, Laos, North and South Korea, Thailand, Turkey and Vietnam. Recognized -- provinces are displayed as e.g. "[[Gyeonggi]] Province" or "[[Antalya]] Province". Others are displayed as-is. local function province_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.bulgaria_provinces[unlinked_placename .. "Province, Bulgaria"] or m_locations.iran_provinces[unlinked_placename .. " Province, Iran"] or m_locations.laos_provinces[unlinked_placename .. " Province, Laos"] or m_locations.north_korea_provinces[unlinked_placename .. " Province, North Korea"] or m_locations.south_korea_provinces[unlinked_placename .. " Province, South Korea"] or m_locations.thailand_provinces[unlinked_placename .. " Province, Thailand"] or m_locations.turkey_provinces[unlinked_placename .. " Province, Turkey"] or m_locations.vietnam_provinces[unlinked_placename .. " Province, Vietnam"] then return suffix_display_handler("Province", holonym_placename) end return holonym_placename end -- Display handler for Nigerian states. Nigerian states are display as "[[Kano]] State". Others are displayed as-is. local function state_display_handler(holonym_placetype, holonym_placename) local unlinked_placename = m_links.remove_links(holonym_placename) if m_locations.nigeria_states[unlinked_placename .. " State, Nigeria"] then return suffix_display_handler("State", holonym_placename) end return holonym_placename end -- Display handler for voivodeships. Display as e.g. [[Subcarpathian Voivodeship]]. local function voivodesip_display_handler(holonym_placetype, holonym_placename) return suffix_display_handler("Voivodeship", holonym_placename, nil, "include_suffix_in_link") end ------------------------------------------------------------------------------------------ -- Placetype data -- ------------------------------------------------------------------------------------------ --[==[ var: Main placetype data structure. This specifies, for each canonicalized placetype, various properties. The keys are placetypes (in the singular, except for category-only placetypes, which are plural and followed by `!`), and the value is a table of properties. The `"*"` key is special and is used for adding "generic" categories of the form `Places in ``location`` `; it runs for all entry placetypes. Keys in the form of plural placetypes followed by `!` are used only in [[Module:category tree/topic cat/data/Places]] for specifying the properties of categories containing the specified placetype, esp. bare categories like [[:Category:States and territories]] (rather than qualified categories like [[:Category:States and territories of Australia]]). Keys under the value table for a given placetype of are two types: ''property keys'' (which specify the value of specific properties) and ''categorization keys'' (which tell how to categorize certain sorts of holonyms if the placetype in question occurs as an entry placetype). Categorization keys are either the special value `default` or are wildcard strings with a slash in them, such as `"country/*"`. Note that only wildcard strings are currently allowed directly in the placetype data; everything else is handled through category handlers, either per-placetype or special (such as `political_division_cat_handler`). The algorithm for how category keys and handlers are used to generate categories is described at the top of [[Module:place]]. There are several recognized property keys, of various types: 1. The following link-related property keys are recognized: * `link`: '''Required''' except in category-only placetypes ending in `!`. Describes how to link and display the placetype in the formatted description when occurring as an entry placetype. Also used for formatting pluralized placetypes (which may occur in entry placetypes, esp. new-format ones, such as `two <<islands>>`) and may occur in categories). The possible values are: *# `true`: Link to the same-named Wiktionary entry. This creates a raw link, e.g. `<nowiki>[[city]]</nowiki>`, which is converted to an English-specific link by JavaScript postprocessing. If the placetype is plural, this creates a two-part raw link e.g. `<nowiki>[[city|cities]]</nowiki>`. *# `"w"`: Link to the same-named Wikipedia entry. This creates a two-part link, e.g. `<nowiki>[[w:census town|census town]]</nowiki>`, or `<nowiki>[[w:census town|census towns]]</nowiki>` if the placetype is given plural. *# `"+..."`: Create a two-part link to the entry following the `+` sign. For example, if `cercle` specifies `"+w:cercles of Mali"`, a two-part link `<nowiki>[[w:cercles of Mali|cercle]]</nowiki>` will be generated, or `<nowiki>[[w:cercles of Mali|cercles]]</nowiki>` if plural `cercles` is specified. *# `"separately"`: Link each word separately. For example, if `administrative territory` specifies `"separately"`, it will be linked as `<nowiki>[[administrative]] [[territory]]</nowiki>`, or as `<nowiki>[[administrative]] [[territory|territories]]</nowiki>` if plural `administrative territories` is given. *# another string: Use that string directly. If the placetype is plural, `pluralize()` in [[Module:en-utilities]] is called on the string, which will correctly pluralize most strings, including those with links in them. (If there are multiple links, the display form of the last link is pluralized.) *# `false`: This placetype is not allowed as an entry placetype. An error will be thrown if this placetype is given as an entry placetype. This is specified for internal-use placetypes, especially placetypes used in conjunction with the qualifiers `former`, `ancient`, `historical` and such. * `plural_link`: If specified and the placetype is plural, use the value in place of generating a pluralized version of the link spec in `link`. Most commonly, this is either a string with links in it (which is used directly) or the value `false`, indicating that the placetype cannot occur plural. (This is used for example by `caplc`, which displays as `<nowiki>[[capital]] and [[large]]st [[city]]</nowiki>`, where a plural version doesn't make sense.) Generally if this is specified, `plural` also needs to be specified to give a special placetype plural; this situation occurs especially with multiword placetypes where something other than the last word is pluralized. An example is `town with bystatus`, whose plural is `towns with bystatus`, which needs to be explicitly given. This example uses `link = <nowiki>"[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>` ({{m|nb|bystatus}}) is a Norwegian Bokmål word, and template calls aren't currently permitted in link strings), along with `plural_link = <nowiki>"[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]"</nowiki>`. * `category_link`: Spec indicating how to display the placetype when occurring in category descriptions. Defaults to the value of `link`, and in turn is overridden by more specific `category_link_*` keys; see below. Category-only placetypes (which are plural and end in `!`) usually use `category_link` in preference to `link`. The value of `category_link` can be any of the types of specs given above, but most commonly is a plural string with links in it, spelling out the description; in this case it is used directly. When both `category_link` and `link` are given, the value in `category_link` is typically longer and more descriptive. For example, `polity` uses `link = true`, which just generates a link `<nowiki>[[polity]]</nowiki>` or plural `<nowiki>[[polity|polities]]</nowiki>`, but specifies a separate `category_link = <nowiki>"[[independent]] or [[semi-]][[independent]] [[polity|polities]]"</nowiki>`, which clarifies in the category description what a polity is. * `category_link_top_level`: Spec indicating how to display top-level (bare/unqualified) categories, i.e. categories where the placetype is not followed by `in ``location`` ` or `of ``location`` `. If given, this overrides `category_link` for this type of category. * `category_link_before_noncity`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` does not refer to a city. If given, this overrides `category_link` for this type of category. * `category_link_before_city`: Spec indicating how to display qualified categories of the form ` ``placetypes`` in/of ``location`` ` where ``location`` refer to a city. If given, this overrides `category_link` for this type of category. An example where this is given is `neighborhood`, which uses the following specs:<ol> <li>`link = true`</li> <li>`category_link = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]"</nowiki>`</li> <li>`category_link_before_city = <nowiki>"[[neighborhood]]s, [[district]]s and other subportions"</nowiki>`</li> </ol> This has the effect of making the entry placetype `neighborhood` display as just `<nowiki>[[neighborhood]]</nowiki>`, while e.g. a category like `Neighborhoods of Chicago` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[Chicago]], ...</nowiki>` and a category like `Neighborhoods in Illinois, USA` displays as `<nowiki>[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]] in [[Illinois]], ...</nowiki>`. * `disallow_in_entries`: If specified, this placetype cannot occur as an entry placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. * `disallow_in_holonyms`: If specified, this placetype cannot occur as a holonym placetype, and the specified value (a message indicating what to use instead) is displayed in the error message. 2. There is currently one fallback-related property key recognized: * `fallback`: If specified, its value is a placetype which will be used for categorization purposes if no categories get added using the placetype itself. As an example, `branch` sets a fallback of `river` but also sets `preposition = "of"`, meaning that {{tl|place|en|branch|riv/Mississippi}} displays as `a branch of the Mississippi` (whereas `river` itself uses the preposition `in`), but otherwise categorizes the same as `river`. A more complex example is `area`, which sets a fallback of `geographic and cultural area` and also sets a category handler that checks for cities or city-like entities (e.g. boroughs) occurring as holonyms and categorizes the toponym under [[:Category:Neighborhoods of CITY]] (for recognized cities) or otherwise [[:Category:Neighborhoods of POLDIV]] (for the nearest containing recognized location). In addition, `area` is set as a political division of Kuwait, meaning if `c/Kuwait` occurs as holonym, the toponym is categorized under [[:Category:Areas of Kuwait]]. If none of these categories trigger, the fallback of `geographic and cultural area` will take effect, and the toponym will be categorized as e.g. [[:Category:Geographic and cultural areas of England]]. 3. There is currently one property to control irregular plurals of placetypes: * `plural`: If specified, its value is the plural of the placetype. Otherwise, the default pluralization algorithm in [[Module:en-utilities]] applies (which correctly pluralizes most words, including those ending in `-y`, `-ch`, `-sh`, `-x`, etc.). The value of `plural` is also used when converting a pluralized placetype into its singular equivalent; for example, since the placetype `kibbutz` has `plural = "kibbutzim"`, the placetype `kibbutzim` will be recognized as a plural and singularized to `kibbutz`. For this reason, it's occasionally necessary to specify a `plural` value even when the default pluralization algorithm works correctly, if the default singularization algorithm won't correctly reverse the pluralization (as with `pass` and other terms ending in `-ss`). 4. The following property keys relate to generating categories for entry placetypes and specifying the parents of those categories: * `class`: The general class of placetype. This is used for various purposes: (a) to categorize placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical` (note that these placetypes are not all treated alike); (b) to determine the parent category of bare placetype categories (e.g. [[:Category:Villages]] for placetype `village`); (c) to determine whether to add a parent category `political divisions of specific countries` to qualified placetype categories (e.g. [[:Category:Villages in Mali]]). The possible values are: *# `polity`: a more-or-less sovereign/independent polity, such as a country, kingdom or empire. *# `subpolity`: a non-sovereign division of a polity, above the level of an individual settlement. *# `settlement`: a city or smaller equivalent, such as a village. This also includes administrative divisions of a settlement, such as wards and barangays. *# `non-admin settlement`: similar to a settlement but without administrative or political significance, such as an unincorporated community, farm or neighborhood. *# `capital`: a settlement that is a capital. A former capital is generally still in existence, just not the capital any more. *# `natural feature`: any non-man-made feature, such as a lake, mountain, island, ocean, etc. *# `man-made structure`: a man-made feature below the level of a neighborhood, such as a house, airport, university, metro station, park or the like. *# `geographic region`: a geographic or cultural region or area that has no administrative significance. These may vary greatly in size but typically have some sort of cultural significance (possibly historical). The `former`, `ancient`, etc. qualifier has no effect on the category of these placetypes. *# `generic place`: a place that isn't further qualified into any specific subtype. * `former_type`: The class of placetype used for categorizing placetypes preceded by a qualifier such as `former`, `ancient`, `medieval` or `historical`. The possible values are the same as for `class` but with the addition of `dependent territory` (for colonies, protectorates and the like) and `!` (ignore the historical/former/ancient/etc. qualifier; used e.g. with `fictional location` and `mythological location`). If not specified, the value of `class` is used. When a qualifier such as `former`, `ancient`, `medieval` or `historical` is encountered (specifically, those in `former_qualifiers`), it is mapped using `former_qualifiers` to the appropriate internal qualifier or qualifiers (one or both of `ANCIENT` and/or `FORMER`, which are written in all-caps to distinguish them from user-specified qualifiers), which is prepended to the value of `former_type` or `class` to form a placetype whose properties are looked up to determine how to categorize the toponym in question. For example, if `medieval village` is given, we map `medieval` to `ANCIENT` and `FORMER`, and `village` to its `class` of `settlement`, and enter the placetypes `ANCIENT settlement` and `FORMER settlement` (in that order) into the list of equivalent placetypes returned by `get_placetype_equivs`. In this case, there is an entry in `placetype_data` for `ANCIENT settlement`, so its default category spec `Ancient settlements` is used as the category. If on the other hand `medieval kingdom` is given, where `kingdom` has a `class` value `polity`, we first look up `ANCIENT polity`, see there is no entry in `placetype_data` for it, and then look up `FORMER polity`, which exists and has a default category spec `Former polities`, which is used as the category. Note that if the placetype following the "former" qualifier is recognized in `placetype_data` but has no `former_type` or `class` and no fallback with a `former_type` or `class` specified, it is an internal error; but if the placetype isn't recognized (e.g. something like `former greenhouse` is specified and we don't have an entry for `greenhouse`), we just track the occurrence and end up not categorizing. * `bare_category_parent`: This specifies the first parent category of a bare placetype category named according to the placetype in question (e.g. [[:Category:Atolls]] for placetype `atoll`, or [[:Category:Named buildings]] for placetype `named buildings!`). If not specified, the first parent category is determined by the value of `class`, using the mapping `class_to_bare_category_parent` in [[Module:category tree/topic cat/data/Places]]. * `addl_bare_category_parents`: Extra parent categories to add a bare placetype category to (see `bare_category_parent` just above). * `bare_category_breadcrumb`: Breadcrumb for bare placetype categories. Also used as the sort key of `bare_category_parent` if it is a string. * `inherently_former`: If specified and the given placetype is used as an entry placetype, act as if `former` or `ancient` (depending on the value of `inherently_former`) were prefixed to the placetype. This is for placetypes that always refer to no-longer-existing entities, such as `satrapy` and `treaty port`. The value of `inherently_former` is a list of internal qualifiers (one or more of `ANCIENT` and/or `FORMER`), just as for `former_qualifiers`, and the implementation is the same. * `cat_handler`: Handler used to generate the categories to add a given toponym to, if its entry placetype is the placetype in question. Generally the `cat_handler` function checks the holonyms specified in order to determine which category or categories to generate. For example, `district_neighborhood_cat_handler` handles placetypes `district`, `neighborhood`, `subdivision`, `suburb` and the like, and either adds the toponym to a category like `Neighborhoods of ``city`` ` (if a recognized city is given as a holonym), or otherwise a category like `Neighborhoods in ``location`` ` (for the first recognized non-city location given as a holonym, if an unrecognized city or city-like entity is given before the recognized non-city). The algorithm that runs the category handlers iterates over holonyms from left to right, running the `cat_handler` function on each holonym in turn until one or more categories are returned; see below for more specifics. (Note that countries for which e.g. a `district` is a political division do not get the corresponding category added by the `district_neighborhood_cat_handler` function but by `political_division_cat_handler`.) `cat_handler` functions are called with one argument, `data`, describing the resolved entry placetype (i.e. after resolving placetype aliases and fallbacks) and the holonym being processed. The return value should be a list of category specs (categories minus the langcode prefix, with `+++` standing for the holonym key, or the value `true`, which stands for ` ``Placetypes`` in/of ``Holonym`` `, i.e. the pluralized placetype with the appropriate preposition as specified in `placetype_data`). `data` contains the following fields: ** `entry_placetype`: the resolved entry placetype for the entry placetype being processed (i.e. it will always have an entry in `placetype_data` but may not be the original placetype given by the user); ** `holonym_placetype` and `holonym_placename`: the holonym placetype and placename being processed; ** `holonym_index`: the index of the holonym being processed, or {nil} if we're handling an overriding holonym (FIXME: we will change the overriding holonym algorithm so there will be an index even when processing overriding holonyms); ** `place_desc`: a full description of the {{tl|place}} call, as specified at the top of [[Module:place]]; ** `from_demonym`: If set, we are called from [[Module:demonym]], triggered by {{tl|demonym-adj}} or {{tl|demonym-noun}}, instead of being triggered by {{tl|place}}. * `has_neighborhoods`: If `true`, the specified placetype is city-like. This is used in the `district_neighborhood_cat_handler` to determine whether to add a category such as `Neighborhoods in ``location`` `; see the section just above on `cat_handler`. 5. The following preposition-related property keys are recognized: * `preposition`: The preposition used after this placetype when it occurs as an entry placetype. Defaults to `"in"`. * `generic_before_non_cities`: If specified, the appropriate category description handler in [[Module:category tree/topic cat/data/Places]] will recognize categories of the form ` ``Placetype`` in/of ``location`` ` for the specified placetype and preposition, if ``location`` is a non-city. This is used to generate descriptions for categories added by category handlers and by explicit category specs in the placetype data. All placetypes that specify `generic_before_non_cities` or `generic_before_cities` *MUST* also specify a value for `class` so that the category tree code can determine whether it's a political or non-political division. * `generic_before_cities`: Like `generic_before_non_cities` but for locations referring to cities. 6. The following property keys control the auto-addition of affixes when formatting holonyms of a particular placetype: * `affix_type`: If specified, add the placetype as an affix before or after holonyms of this placetype. Possible values are: *# `"pref"` (the holonym will display as `(the) placetype of Holonym`, where `the` appears when the holonym directly follows an entry placetype); *# `"Pref"` (same as `"pref"` but the placetype is capitalized; each word is capitalized if there are multiple); *# `"suf"` (the holonym will display as `Holonym placetype`); *# `"Suf"` (the holonym will display as `Holonym Placetype`, i.e. same as `"suf"` but the placetype is capitalized). * `suffix`: String to use in place of the placetype itself when the placetype is displayed as a suffix after a holonym. Note that `suffix` can be used independently of `affix_type` because the user can also request a suffix explicitly using a syntax like `adr:suf/Occitania`, which will display as `Occitania region` because the placetype `administrative region` specifies `suffix = "region"`. * `prefix`: Like `suffix` but for use when the placetype is displayed as a prefix before the holonym. * `affix`: Like `suffix` and `prefix` but for use when the placetype is displayed as an affix either before or after the holonym. If both `suffix` or `prefix` and `affix` are given for a single placetype, `suffix` or `prefix` take precedence. * `no_affix_strings`: String or list of strings that, if they occur in the holonym, suppress the addition of any affix requested using `affix_type`. Defaults to the placetype itself. For example, `autonomous okrug` specifies `affix_type = "Suf"` so that `aokr/Nenets` displays as `Nenets Autonomous Okrug`, but also specifies `no_affix_strings = "okrug"` so that `aokr/Nenets Okrug` or `aokr/Nenets Autonomous Okrug` displays as specified, without a redundant `Autonomous Okrug` added. Matching is case-insensitive but whole-word. * `display_handler`: A function of two arguments, `holonym_placetype` and `holonym_placename` (specifying a holonym). Its return value is a string specifying the display form of the holonym. 7. The following property keys control the indefinite and definite articles used before entry placetypes and/or holonyms of the specified placetype. * `entry_placetype_use_the`: Use `"the"` before this placetype when it occurs as an entry placetype. * `entry_placetype_indefinite_article`: Indefinite article used before this placetype when it occurs as an entry placetype (usually `"a"`, specifically for placetypes beginning with u- that don't take the indefinite article `"an"`). Defaults to the appropriate indefinite article (`"a"` or `"an"` depending on whether the placetype begins with a vowel). Overridden by `entry_placetype_use_the`, and unlike for most properties, does not apply to equivalent placetypes (i.e. fallbacks or those formed by removing a qualifier from the beginning); only to the exact placetype specified. * `holonym_use_the`: Use `"the"` before holonyms of this placetype. '''NOTE:''' # The `link` property must be specified on all placetypes, except those ending in `!` (category-only placetypes), which must have either `link` or `category_link` specified. # Either the `class` or `former_type` property must be specified on all placetypes not ending in `!` that do not have a fallback (if a placetype has a fallback and omits the `class` and `former_type` properties, they are taken from the fallback). An internal error will result if a placetype has no `class` or `former_type` property derivable either directly or through a fallback, if an attempt is made to categorize a former/ancient/historical/etc. entity of this placetype. # It is possible to have multiple levels of fallback (e.g. `frazione` falls back to `hamlet`, which falls back to `village`). Fallback loops will cause an internal error. All placetypes specified as fallbacks must exist in `placetype_data` or an internal error occurs. ]==] export.placetype_data = { --[=[ If you need to sort the following, do this (using Vim): 1. Make sure all full-line comments are within the { ... } table, or are moved after and on the same line as single-line entries. 2. Make sure the table uses tabs everywhere for indent, and not spaces. 3. Mark the top of the table with `ma`, go to the bottom and execute the following two lines in sequence: :'a,.s/\n/\\n/g :s/\\n\(\t\[\)/\r\1/g The first command converts every newline to a literal `\n` sequence, so the whole thing becomes a single line, while the second command restores the newlines before the beginning of each entry. The effect is to convert all entries to a single line while not losing any information. (Potentially a negative lookahead could be used to do it all in one command.) 4. Execute the following to sort: :'a,.!perl -pe 's/^(\t\[")(.*?)(".*)$/$2 @@@ $1$2$3/' | sort -f | perl -pe 's/.*? @@@ //' Note that a simple `sort -f` (where `-f` means case-insensitive) would almost work, but it would sort "hill station" before "hill" and "county borough" before "county" because the space after e.g. "hill station" sorts before the quotation mark after e.g. "hill". The above command deals with this by extracting the key, prepending it followed by ` @@@ `, sorting, and then removing key (the classic decorate-sort-undecorate pattern). 5. Put the table back to multi-line format by marking the top of the table with `ma`, going to the bottom and executing :'a,.s/\\n/\r/g Note that for some reason, in order to get a match a newline in the left side of a replacement, you must use \n, but to insert a newline in the right sode of a replacement you must use \r. ]=] ["*"] = { link = false, cat_handler = generic_place_cat_handler, }, ["administrative atoll"] = { -- Maldives link = "+w:administrative divisions of the Maldives", preposition = "of", class = "subpolity", }, ["administrative capital"] = { link = "w", fallback = "capital city", }, ["administrative center"] = { link = "w", fallback = "non-city capital", }, ["administrative centre"] = { link = "w", fallback = "administrative center", }, ["administrative county"] = { link = "w", fallback = "county", }, ["administrative district"] = { link = "w", fallback = "district", }, ["administrative headquarters"] = { link = "separately", fallback = "administrative centre", }, ["administrative region"] = { link = true, preposition = "of", suffix = "region", -- but prefix is still "administrative region (of)" fallback = "region", class = "subpolity", }, ["administrative seat"] = { link = "w", fallback = "administrative centre", }, ["administrative territory"] = { link = "separately", preposition = "of", suffix = "territory", -- but prefix is still "administrative territory (of)" fallback = "territory", class = "subpolity", }, ["administrative unit"] = { -- Grrr, it's difficult to generalize about "administrative units". In Albania, "administrative unit" is an -- official term for a city-level division of municipalities; Wikipedia renders it using the more practical term -- "commune". In Pakistan, "administrative unit" is a collective term used to refer to all the different types -- of first-level divisions (four provinces, one federal territory, and two "disputed territories", i.e. Azad -- Kashmir and Gilgit-Balistan, that are variously described). For this reason, we set no fallback, but we need -- to include this so that it can be used as a placetype for Albania, categorizing as communes. link = "w", class = "subpolity", }, ["administrative village"] = { link = "w", preposition = "of", has_neighborhoods = true, class = "settlement", }, ["aimag"] = { -- used in Mongolia, Russia and China (Inner Mongolia); in Mongolia, equivalent to a province; -- in China, equivalent to a prefecture (below a province); in Russia, equivalent to a municipal district. link = "w", fallback = "prefecture", }, ["airport"] = { link = true, class = "man-made structure", default = {true}, }, ["alliance"] = { link = true, fallback = "confederation", }, ["archipelago"] = { link = true, fallback = "island", }, ["area"] = { link = true, preposition = "of", fallback = "geographic and cultural area", -- Areas can either be administrative divisions (specifically of Kuwait) or geographic areas. Assume the former -- when categorizing 'Areas' but the latter when handling e.g. 'historical area'. class = "subpolity", former_type = "geographic region", cat_handler = district_neighborhood_cat_handler, }, ["arm"] = { link = true, preposition = "of", class = "natural feature", default = {"海"}, }, ["arrondissement"] = { link = true, preposition = "of", -- FIXME!!! Grrrrr!!! In some countries, arrondissements are divisions of cities; in others, they are divisions -- of departments or provinces. Need to conditionalize on the country for both of the following. class = "subpolity", has_neighborhoods = true, }, ["associated province"] = { link = "separately", fallback = "province", }, ["atoll"] = { -- FIXME! Atolls are administrative divisions of the Maldives but natural features elsewhere. Need to -- conditionalize `class` on the country. See also `administrative atoll`. link = true, class = "natural feature", bare_category_parent = "islands", default = {true}, }, ["autonomous city"] = { link = "w", preposition = "of", fallback = "city", has_neighborhoods = true, }, ["autonomous community"] = { -- Spain; refers to regional entities, not village-like entities, as might be expected from "community" link = true, preposition = "of", class = "subpolity", }, ["autonomous island"] = { -- Comoros; seems like an administrative atoll of the Maldives. link = "+w:autonomous islands of Comoros", preposition = "of", class = "subpolity", }, ["autonomous oblast"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "oblast", class = "subpolity", }, ["autonomous okrug"] = { link = true, preposition = "of", affix_type = "Suf", no_affix_strings = "okrug", class = "subpolity", }, ["autonomous prefecture"] = { link = true, fallback = "prefecture", }, ["autonomous province"] = { link = "w", fallback = "province", }, ["autonomous region"] = { link = "w", preposition = "of", fallback = "administrative region", -- "administrative region" sets an affix of "region" but we want to display as "Tibet Autonomous Region" -- if the user writes 'ar:Suf/Tibet'. affix = "autonomous region", }, ["autonomous republic"] = { link = "w", preposition = "of", class = "subpolity", }, ["autonomous territorial unit"] = { -- Moldova; only two of them, one for Gagauzia and one for Transnistria. link = "w", preposition = "of", class = "subpolity", }, ["autonomous territory"] = { link = "w", fallback = "dependent territory", }, ["bailiwick"] = { -- Jersey, etc. link = true, fallback = "polity", }, ["barangay"] = { -- Philippines link = true, class = "settlement", -- Barangays are formal administrative divisions of a city rather than informal neighborhoods, but can use -- some of the properties of a neighborhood. fallback = "neighborhood", }, ["barrio"] = { -- Spanish-speaking countries; Philippines link = true, -- FIXME: Not completely correct, in some countries barrios are formal administrative divisions of a city. -- `class` will need to conditionalize on the country to be completely correct. fallback = "neighborhood", }, ["basin"] = { link = true, fallback = "lake", }, ["bay"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["beach"] = { link = true, class = "natural feature", addl_bare_category_parents = {"water"}, default = {true}, }, ["beach resort"] = { link = "w", fallback = "resort town", }, ["bishopric"] = { link = true, fallback = "polity", }, ["bodies of water!"] = { -- FIXME: This is (maybe?) a type category not a name category. There should be an option for this. We need to -- straighten out the type vs. name vs. related-to issue. category_link = "[[body of water|bodies of water]]", class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems", "water"}, }, ["borough"] = { link = true, preposition = "of", display_handler = borough_display_handler, has_neighborhoods = true, -- "former borough" could be a former settlement or a former part of a city but seems more likely to -- be a former subpolity, particularly in England. FIXME, we really need a handler to take care of this -- properly. class = "subpolity", -- Grr, some boroughs are city-like but some (e.g. in Britain) may be larger. }, ["borough seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["branch"] = { link = true, preposition = "of", fallback = "river", }, ["bridge"] = { link = true, class = "man-made structure", default = {"具名橋樑"}, }, ["building"] = { link = true, class = "man-made structure", default = {"具名建築物"}, }, ["built-up area"] = { link = "w", fallback = "area", }, ["burgh"] = { link = true, fallback = "borough", }, ["business park"] = { link = true, fallback = "park", }, ["caliphate"] = { link = true, fallback = "polity", }, ["canton"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["cape"] = { link = true, fallback = "headland", }, ["capital"] = { link = true, fallback = "capital city", }, ["capital city"] = { link = true, category_link = "[[capital city|capital cities]]: the [[seat of government|seats of government]] for a country or [[political]] [[division]] of a country", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", bare_category_parent = "cities", cat_handler = capital_city_cat_handler, default = {true}, -- The following is necessary so that e.g. [[Melbourne]] defined as {{place|en|capital city|s/Victoria|c/Australia}} -- gets categorized in the bare category [[Category:en:Melbourne]]; otherwise placetype 'capital city' wouldn't -- match against the placetype 'city' of Melbourne. fallback = "city", }, ["caplc"] = { link = "[[capital]] and [[large]]st [[city]]", plural_link = false, fallback = "capital city", }, ["captaincy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["caravan city"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"ANCIENT", "FORMER"}, }, ["castle"] = { link = true, fallback = "building", }, ["cathedral city"] = { link = true, fallback = "city", }, ["cattle station"] = { -- Australia link = true, fallback = "farm", }, ["census area"] = { link = true, affix_type = "Suf", has_neighborhoods = true, class = "non-admin settlement", }, ["census-designated place"] = { -- United States link = true, class = "non-admin settlement", }, ["census division"] = { -- Canada link = "w", preposition = "of", class = "subpolity", }, ["census town"] = { link = "w", fallback = "town", }, ["central business district"] = { link = true, fallback = "neighborhood", }, ["cercle"] = { -- Mali link = "+w:cercles of Mali", preposition = "of", class = "subpolity", }, ["ceremonial county"] = { link = true, fallback = "county", }, ["chain of islands"] = { link = "[[chain]] of [[island]]s", plural = "chains of islands", plural_link = "[[chain]]s of [[island]]s", fallback = "island", }, ["channel"] = { link = true, fallback = "strait", }, ["charter community"] = { -- Northwest Territories, Canada link = "w", fallback = "village", }, ["city"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["city-state"] = { link = true, category_link = "[[sovereign]] [[microstate]]s consisting of a single [[city]] and [[w:dependent territory|dependent territories]]", has_neighborhoods = true, class = "settlement", ["continent/*"] = {"城邦", "+++的市", "+++國家", "首都"}, default = {"城邦", "城市", "國家", "首都"}, }, ["civil parish"] = { -- Mostly England; similar to municipalities link = true, preposition = "of", affix_type = "suf", has_neighborhoods = true, class = "subpolity", }, ["claimed political division"] = { link = "[[claim]]ed [[political]] [[division]]", class = "subpolity", default = {true}, }, ["co-capital"] = { link = "[[co-]][[capital]]", fallback = "capital city", }, ["coal city"] = { link = "+w:coal town", fallback = "city", }, ["coal town"] = { link = "w", fallback = "town", }, ["collectivity"] = { link = "w", preposition = "of", -- No default; these are weird one-off governmental divisions in France (esp. for overseas collectivities) class = "subpolity", }, ["colony"] = { link = true, fallback = "dependent territory", }, ["comarca"] = { -- per Wikipedia: traditional region or local administrative division found in Portugal, Spain, and some of -- their former colonies, like Brazil, Nicaragua, and Panama. In the Valencian Community, for example, it -- sits between municipalities and provinces, something like a county or district. link = true, preposition = "of", class = "subpolity", }, ["commandery"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["commonwealth"] = { link = true, preposition = "of", -- No default; applies specifically to Puerto Rico class = "subpolity", }, ["commune"] = { link = true, fallback = "municipality", }, ["community"] = { link = true, category_link = "[[community|communities]] of all sizes", fallback = "village", }, ["community development block"] = { -- in India; appears to be similar to a rural municipality; groups several villages, unclear if there will be -- neighborhoods so I'm not setting `has_neighborhoods` for now link = "w", affix_type = "suf", no_affix_strings = "block", class = "subpolity", }, ["comune"] = { -- Italy, Switzerland link = true, fallback = "municipality", }, ["condominium"] = { link = true, fallback = "polity", }, ["confederacy"] = { link = true, fallback = "confederation", }, ["confederation"] = { link = true, fallback = "polity", }, ["constituency"] = { -- currently we have them as political divisions of Namibia but many countries have them link = true, preposition = "of", class = "subpolity", }, ["constituent country"] = { link = true, preposition = "of", class = "subpolity", }, ["constituent part"] = { link = "separately", preposition = "of", class = "subpolity", }, ["constituent republic"] = { -- Of Russia, Yugoslavia, etc. link = "separately", preposition = "of", class = "subpolity", }, ["counties and county-level cities!"] = { -- This is used when grouping counties and county-level cities under prefecture-level cities in China. category_link = "[[county|counties]] and [[county-level city|county-level cities]]", class = "subpolity", }, ["continent"] = { link = true, category_link = false, -- can't occur as a bare category class = "natural feature", default = {"大洲及大陸地區"}, }, ["continental region"] = { link = "separately", category_link = false, -- can't occur as a bare category class = "geographic region", fallback = "continent", }, ["continents and continental regions!"] = { category_link = "[[大洲]]以及大洲等級的[[地區]](如[[玻里尼西亞]])", class = "geographic region", }, ["council area"] = { link = true, -- in Scotland; similar to a county preposition = "of", affix_type = "suf", class = "subpolity", }, ["country"] = { link = true, class = "polity", ["continent/*"] = {"+++國家", "國家"}, default = {true}, }, ["country-like entities!"] = { category_link = "[[polity|polities]] not normally considered [[country|countries]] but treated similarly for categorization purposes; typically, [[unrecognized]] [[de-facto]] countries or [[w:dependent territory|dependent territories]]", class = "polity", }, ["county"] = { link = true, preposition = "of", display_handler = county_display_handler, class = "subpolity", }, ["county borough"] = { link = true, -- in Wales; similar to a county preposition = "of", affix_type = "suf", fallback = "borough", class = "subpolity", }, ["county seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["county town"] = { link = true, entry_placetype_use_the = true, preposition = "of", fallback = "town", has_neighborhoods = true, class = "capital", }, ["county-administered city"] = { -- In Taiwan, per Wikipedia similar to a Taiwanese township or district, which is a small city. -- NOT anything like a "county-level city" in PR China, which is a county masquerading as a city. link = "w", fallback = "city", has_neighborhoods = true, class = "settlement", }, ["county-controlled city"] = { -- Taiwan link = "w", fallback = "county-administered city", }, ["county-level city"] = { -- PR China link = "w", fallback = "prefecture-level city", }, ["crater lake"] = { link = true, fallback = "lake", }, ["creek"] = { link = true, fallback = "stream", }, ["Crown colony"] = { link = "+crown colony", fallback = "crown colony", }, ["crown colony"] = { link = true, fallback = "colony", }, ["Crown dependency"] = { link = true, fallback = "dependent territory", }, ["crown dependency"] = { link = true, fallback = "dependent territory", }, ["cultural area"] = { link = "w", fallback = "geographic and cultural area", }, ["cultural region"] = { link = "w", fallback = "geographic and cultural area", }, ["delegation"] = { -- Tunisia link = "+w:delegations of Tunisia", preposition = "of", class = "subpolity", }, ["department"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["departmental capital"] = { link = "separately", fallback = "capital city", }, ["dependency"] = { link = true, fallback = "dependent territory", }, ["dependent territory"] = { link = "w", preposition = "of", class = "subpolity", former_type = "dependent territory", bare_category_parent = "political divisions", ["country/*"] = {true}, default = {true}, }, ["desert"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems"}, default = {true}, }, ["deserted mediaeval village"] = { link = "w", fallback = "deserted medieval village", }, ["deserted medieval village"] = { link = "w", fallback = "ANCIENT settlement", }, ["direct-administered municipality"] = { -- China link = "+w:direct-administered municipalities of China", fallback = "municipality", }, ["direct-controlled municipality"] = { -- several countries link = "w", fallback = "municipality", }, ["distributary"] = { link = true, preposition = "of", fallback = "river", }, ["district"] = { link = true, preposition = "of", affix_type = "suf", -- Grrr! FIXME! Here is where we need handlers for `class`. Using similar logic to -- district_neighborhood_cat_handler, we need to check if we're below or above a city to determine if the class -- is "settlement" or "subpolity". class = "subpolity", cat_handler = district_neighborhood_cat_handler, -- No default. Countries for which districts are political divisions will get entries. }, ["districts and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Portugal. category_link = "[[district]]s and [[autonomous region]]s", class = "subpolity", }, ["districts and autonomous territorial units!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Moldova. category_link = "[[district]]s and [[w:autonomous territorial unit|autonomous territorial unit]]s", class = "subpolity", }, ["district capital"] = { link = "separately", fallback = "capital city", }, ["district headquarters"] = { link = "separately", fallback = "administrative centre", }, ["district municipality"] = { -- In Canada, a district municipality is equivalent to a rural municipality and won't have neighborhoods; in -- South Africa, district municipalities group local municipalities and hence won't have neighborhoods. link = "w", preposition = "of", affix_type = "suf", no_affix_strings = {"district", "municipality"}, fallback = "municipality", class = "subpolity", }, ["division"] = { link = true, preposition = "of", class = "subpolity", }, ["division capital"] = { link = "separately", fallback = "capital city", }, ["dome"] = { link = true, fallback = "mountain", }, ["dormant volcano"] = { link = true, fallback = "volcano", }, ["duchy"] = { link = true, fallback = "polity", }, ["emirate"] = { link = true, preposition = "of", -- FIXME: Can be subpolities (of the United Arab Emirates). fallback = "polity", }, ["empire"] = { link = true, fallback = "polity", }, ["enclave"] = { link = true, preposition = "of", -- Enclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["entity"] = { -- Bosnia and Herzegovina link = "+w:entities of Bosnia and Herzegovina", preposition = "of", class = "subpolity", }, ["escarpment"] = { link = true, fallback = "mountain", }, ["ethnographic region"] = { -- used in Lithuania link = "+w:ethnographic regions of Lithuania", fallback = "geographic and cultural area", }, ["exclave"] = { link = true, preposition = "of", -- exclaves can theoretically be any size but assume a subpolity. class = "subpolity", }, ["external territory"] = { link = "separately", fallback = "dependent territory", }, ["farm"] = { link = true, class = "non-admin settlement", default = {"農牧場"}, }, ["farms and ranches!"] = { category_link = "[[farm]]s and [[ranch]]es", class = "non-admin settlement", }, ["federal city"] = { link = "w", preposition = "of", fallback = "city", }, ["federal district"] = { link = true, preposition = "of", -- Might have neighborhoods as federal districts are often cities (e.g. Mexico City) has_neighborhoods = true, class = "settlement", }, ["federal subject"] = { -- In Russia; a generic term for first-level administrative divisions (republics, oblasts, okrugs, krais, -- autonomous okrugs and autonomous oblasts). link = "w", preposition = "of", class = "subpolity", }, ["federal territory"] = { link = "w", fallback = "territory", }, ["fictional location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["First Nations reserve"] = { -- Canada link = "[[First Nations]] [[w:Indian reserve|reserve]]", -- Wikipedia uses "Indian reserve"; presumably that is the legal term fallback = "Indian reserve", class = "subpolity", }, ["fjord"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["footpath"] = { link = true, fallback = "road", }, ["forest"] = { link = true, class = "natural feature", addl_bare_category_parents = {"ecosystems", "forestry"}, default = {true}, }, ["fort"] = { link = true, fallback = "building", }, ["fortress"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- fortresses -> fortresse, so put an entry here to ensure we singularize correctly. plural = "fortresses", fallback = "building", }, ["frazione"] = { link = "w", fallback = "hamlet", }, ["freeway"] = { link = true, fallback = "road", }, ["French prefecture"] = { link = "[[w:prefectures in France|prefecture]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", }, ["geographic and cultural area"] = { link = "+w:cultural area", -- `generic_before_non_cities` is used when generating the category description of categories of the format -- `Geographic and cultural areas of PLACE`. `preposition` is used when generating {{place}} description and -- categories for any placetype that falls back to `geographic and cultural area`. generic_before_non_cities = "of", preposition = "of", class = "geographic region", bare_category_parent = "places", ["country/*"] = {true}, ["constituent country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["geographic area"] = { link = "+w:geographic region", fallback = "geographic and cultural area", }, ["geographic region"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical area"] = { link = "w", fallback = "geographic and cultural area", }, ["geographical region"] = { link = "w", fallback = "geographic and cultural area", }, ["geopolitical zone"] = { -- Nigeria link = true, preposition = "of", class = "subpolity", }, ["gewog"] = { -- Bhutan link = true, preposition = "of", class = "subpolity", }, ["ghost town"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", bare_category_parent = "former settlements", cat_handler = city_type_cat_handler, default = {true}, }, ["glen"] = { link = true, fallback = "valley", }, ["governorate"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["greater administrative region"] = { -- China (former division) link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["gromada"] = { -- Poland (former division) link = "w", preposition = "of", affix_type = "Pref", class = "subpolity", inherently_former = {"FORMER"}, }, ["group of islands"] = { link = "[[group]] of [[island]]s", plural = "groups of islands", plural_link = "[[group]]s of [[island]]s", fallback = "island group", }, ["gulf"] = { link = true, preposition = "of", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["hamlet"] = { link = true, fallback = "village", }, ["harbor city"] = { link = "separately", fallback = "city", }, ["harbor town"] = { link = "separately", fallback = "town", }, ["harbour city"] = { link = "separately", fallback = "city", }, ["harbour town"] = { link = "separately", fallback = "town", }, ["headland"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["headquarters"] = { link = "w", fallback = "administrative centre", }, ["heath"] = { link = true, fallback = "moor", }, ["hemisphere"] = { link = true, entry_placetype_use_the = true, fallback = "continental region", }, ["highway"] = { link = true, fallback = "road", }, ["hill"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["hill station"] = { link = "w", fallback = "town", }, ["hill town"] = { link = "w", fallback = "town", }, ["historic region"] = { -- provided only for the link link = "+w:historical region", fallback = "FORMER geographic region", }, ["historical county"] = { -- needed for historical counties of England/etc. link = "+w:historic county", fallback = "FORMER subpolity", }, ["historical region"] = { -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["home rule city"] = { link = "w", fallback = "city", }, ["home rule municipality"] = { link = "w", fallback = "municipality", }, ["hot spring"] = { link = true, fallback = "spring", }, ["house"] = { link = true, fallback = "building", }, ["housing estate"] = { -- not the same as a housing project (i.e. public housing) link = true, -- not exactly the case but approximately fallback = "neighborhood", }, ["hromada"] = { -- Ukraine link = "w", disallow_in_entries = "Use placetype 'urban hromada', 'rural hromada' or 'settlement hromada' in place of bare 'hromada'", disallow_in_holonyms = "Use placetype 'urban hromada'/'uhrom', 'rural hromada'/'rhrom' or 'settlement hromada'/'shrom' in place of bare 'hromada'", preposition = "of", affix_type = "suf", class = "subpolity", }, ["inactive volcano"] = { link = "w", fallback = "dormant volcano", }, ["independent city"] = { link = true, fallback = "city", }, ["independent town"] = { link = "+independent city", fallback = "town", }, ["Indian reservation"] = { link = "w", -- In the US. Also known as "Native American reservation" or "domestic dependent nation", and the reservations -- themselves often use the term "nation" in their official name (e.g. the "Navajo Nation"). But Wikipedia puts -- the article at [[w:Indian reservation]] and uses that term when describing e.g. what the Navajo Nation is, -- so this must still be the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["Indian reserve"] = { link = "w", -- In Canada. "First Nations reserve" sounds more modern/PC but Wikipedia uses "Indian reserve"; presumably that -- is still the legal term. preposition = "of", class = "subpolity", default = {true}, }, ["inland sea"] = { -- note, we also have 'inland' as a qualifier link = true, fallback = "sea", }, ["inner city area"] = { link = "[[inner city]] [[area]]", fallback = "neighborhood", }, ["island"] = { link = true, preposition = "of", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["island country"] = { -- FIXME: The following should map to both 'island' and 'country'. link = "w", fallback = "country", }, ["island group"] = { link = "separately", fallback = "island", }, ["island municipality"] = { link = "w", fallback = "municipality", }, ["islet"] = { link = "w", fallback = "island", }, ["Israeli settlement"] = { link = "w", class = "settlement", default = {true}, }, ["judicial capital"] = { link = "w", fallback = "capital city", }, ["khanate"] = { link = true, fallback = "polity", }, ["kibbutz"] = { link = true, plural = "kibbutzim", class = "non-admin settlement", default = {true}, }, ["kingdom"] = { link = true, fallback = "monarchy", }, ["krai"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["lake"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["landforms!"] = { category_link = "[[landform]]s", bare_category_parent = "places", addl_bare_category_parents = {"地球"}, }, ["largest city"] = { link = "[[large]]st [[city]]", entry_placetype_use_the = true, fallback = "city", has_neighborhoods = true, }, ["league"] = { link = true, fallback = "confederation", }, ["legislative capital"] = { link = "separately", fallback = "capital city", }, ["library"] = { link = true, fallback = "building", }, ["lieutenancy area"] = { -- used in the United Kingdom; per Wikipedia: -- In England, lieutenancy areas are colloquially known as the ceremonial counties, although this phrase does -- not appear in any legislation referring to them. The lieutenancy areas of Scotland are subdivisions of -- Scotland that are more or less based on the counties of Scotland, making use of the major cities as separate -- entities.[2] In Wales, the lieutenancy areas are known as the preserved counties of Wales and are based on -- those used for lieutenancy and local government between 1974 and 1996. The lieutenancy areas of Northern -- Ireland correspond to the six counties and two former county boroughs.[3] link = "w", fallback = "ceremonial county", }, ["local authority district"] = { link = "w", fallback = "local government district", }, ["local government area"] = { -- Australia link = "w", preposition = "of", class = "subpolity", }, ["local council"] = { -- Malta; similar to municipalities link = "+w:local councils of Malta", preposition = "of", fallback = "municipality", }, ["local government district"] = { link = "w", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local government district with borough status"] = { link = "[[w:local government district|local government district]] with [[w:borough status|borough status]]", plural = "local government districts with borough status", plural_link = "[[w:local government district|local government districts]] with [[w:borough status|borough status]]", preposition = "of", affix_type = "suf", affix = "district", class = "subpolity", }, ["local urban district"] = { link = "w", fallback = "unincorporated community", }, ["locality"] = { link = "+w:locality (settlement)", -- not necessarily true, but usually is the case fallback = "village", }, ["London borough"] = { link = "w", preposition = "of", affix_type = "pref", affix = "borough", fallback = "local government district with borough status", has_neighborhoods = true, }, ["macroregion"] = { link = true, fallback = "region", }, ["man-made structures!"] = { category_link = "[[w:geographical feature#Engineered constructs|man-made structures]] such as [[airport]]s, [[university|universities]] and [[metro station]]s", bare_category_parent = "places", }, ["manor"] = { -- FIXME: or is this more like a farm? link = true, fallback = "building", }, ["marginal sea"] = { link = true, preposition = "of", fallback = "sea", }, ["market city"] = { link = "+market town", fallback = "city", }, ["market town"] = { link = true, fallback = "town", }, ["massif"] = { link = true, fallback = "mountain", }, ["megacity"] = { link = true, fallback = "city", }, ["metro station"] = { link = true, class = "man-made structure", }, ["metropolitan borough"] = { link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"borough", "city"}, fallback = "local government district", has_neighborhoods = true, }, ["metropolitan city"] = { -- These exist e.g. in Italy and are more like municipalities or even provinces than cities. link = true, preposition = "of", affix_type = "Pref", no_affix_strings = {"metropolitan", "city"}, class = "subpolity", }, ["metropolitan county"] = { link = true, fallback = "county", }, ["metropolitan municipality"] = { -- In South Africa, metropolitan municipalities group local municipalities and are like districts, between -- provinces and municipalities. -- In Turkey, metropolitan municipalities are provinces-level. link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"metropolitan", "municipality"}, fallback = "municipality", class = "subpolity", }, ["microdistrict"] = { -- residential complex in post-Soviet states link = true, fallback = "neighborhood", }, ["micronations!"] = { -- FIXME, merge with microstate category_link = "[[micronation]]s", bare_category_parent = "countries", }, ["microstate"] = { link = true, fallback = "country", }, ["military base"] = { link = "w", class = "settlement", -- or "man-made structure"? default = {true}, }, ["minster town"] = { -- England link = "separately", fallback = "town", }, ["monarchy"] = { link = true, fallback = "polity", }, ["moor"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "ecosystems"}, default = {true}, }, ["moorland"] = { link = true, fallback = "moor", }, ["motorway"] = { link = true, fallback = "road", }, ["mountain"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["mountain indigenous district"] = { -- Taiwan link = "+w:district (Taiwan)", fallback = "district", }, ["mountain indigenous township"] = { -- Taiwan link = "+w:township (Taiwan)", fallback = "township", }, ["mountain pass"] = { link = true, -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "mountain passes", class = "natural feature", addl_bare_category_parents = {"mountains"}, default = {true}, }, ["mountain range"] = { link = true, fallback = "mountain", }, ["mountainous region"] = { link = "separately", fallback = "region", }, ["mukim"] = { -- Malaysia, Brunei, Indonesia, Singapore link = true, preposition = "of", class = "subpolity", }, ["municipal district"] = { link = "w", -- meaning varies depending on the country; for now, assume no neighborhoods. -- FIXME: has_neighborhoods might have to be a function that looks at the containing holonyms. preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "municipality", }, ["municipality"] = { link = true, preposition = "of", has_neighborhoods = true, class = "subpolity", }, ["municipality with city status"] = { link = "[[municipality]] with [[w:city status|city status]]", plural = "municipalities with city status", plural_link = "[[municipality|municipalities]] with [[w:city status|city status]]", fallback = "municipality", }, ["museum"] = { link = true, fallback = "building", }, ["mythological location"] = { link = "separately", former_type = "!", class = "hypothetical location", bare_category_parent = "places", default = {true}, }, ["named bridges!"] = { category_link = "notable [[bridge]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"bridges"}, }, ["named buildings!"] = { category_link = "notable [[house]]s, [[library|libraries]] and other [[building]]s", bare_category_parent = "man-made structures", addl_bare_category_parents = {"buildings"}, }, ["named roads!"] = { category_link = "notable [[road]]s, [[highway]]s, [[trail]]s and similar linear structures", bare_category_parent = "man-made structures", addl_bare_category_parents = {"roads"}, }, ["national capital"] = { link = "w", fallback = "capital city", }, ["national park"] = { link = true, fallback = "park", }, ["natural features!"] = { category_link = "[[w:geographical feature#Natural features|natural features]] such as [[lake]]s, [[mountain]]s, [[island]]s and [[ocean]]s", bare_category_parent = "places", }, ["neighborhood"] = { -- The majority of the properties here apply to both `neighborhoods` and `neighbourhoods`; the choice of which -- one to use is made by district_neighborhood_cat_handler() based on the value of `british_spelling` for the -- location (city, political division, etc.) of the holonym that follows the word "neighbo(u)hoods" in the -- category name. It does *NOT* depend on whether the {{place}} call uses "neighborhoods" or "neighbourhoods". -- (In general it can't, because other things like "urban areas", "districts", "subdivisions" and the like also -- categorize as neighbo(u)rhoods.) link = true, -- See below. These are used by category handlers in [[Module:category tree/topic cat/data/Places]]. generic_before_non_cities = "in", generic_before_cities = "of", -- The following text is suitable for the top-level description of a neighborhood as well as categories of the -- form `Neighborhoods in POLDIV` e.g. `Neighborhoods in Illinois, USA` but not for categories of the form -- `Neighborhoods of Chicago`, where we'd get "... and other subportions of [[city|cities]] of [[Chicago]]". category_link = "[[neighborhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighborhood]]s, [[district]]s and other subportions", -- NOTE: This setting is needed for administrative divisions like barangays that fall back to `neighborhood`, -- when set in [[Module:place/locations]] for a specific country (e.g. the Philippines). The above settings -- for `generic_before_non_cities` and `generic_before_cities` are used by category handlers in -- [[Module:category tree/topic cat/data/Places]] for `Neighborhoods in POLDIV` and `Neighborhoods of CITY` -- categories. In fact, district_neighborhood_cat_handler() does not currently pay attention to them, but -- generates "of" before cities and "in" before non-cities regardless. (FIXME: We should change that.) preposition = "of", class = "non-admin settlement", cat_handler = district_neighborhood_cat_handler, }, ["neighbourhood"] = { link = true, category_link = "[[neighbourhood]]s, [[district]]s and other subportions of [[city|cities]]", category_link_before_city = "[[neighbourhood]]s, [[district]]s and other subportions", fallback = "neighborhood", }, ["new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", preposition = "in", class = "subpolity", --? }, ["new town"] = { link = true, fallback = "town", }, ["non-city capital"] = { link = "[[capital]]", entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", cat_handler = function(data) return capital_city_cat_handler(data, "non-city") end, -- FIXME, do we need the following? default = {true}, }, ["non-metropolitan county"] = { link = "w", fallback = "county", }, ["non-metropolitan district"] = { link = "w", fallback = "local government district", }, ["non-sovereign kingdom"] = { -- especially in Africa and Asia link = "+w:non-sovereign monarchy", generic_before_non_cities = "in", class = "subpolity", ["country/*"] = {true}, ["continent/*"] = {true}, default = {true}, }, ["non-sovereign monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["oblast"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["oblasts and autonomous republics!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Ukraine. category_link = "[[oblast]]s and [[w:autonomous republic|autonomous republic]]s", class = "subpolity", }, ["ocean"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"seas", "bodies of water"}, default = {true}, }, ["okrug"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["overseas collectivity"] = { link = "w", fallback = "collectivity", }, ["overseas department"] = { link = "w", fallback = "department", }, ["overseas territory"] = { link = "w", fallback = "dependent territory", }, ["parish"] = { link = true, preposition = "of", affix_type = "suf", class = "subpolity", }, ["parish municipality"] = { -- in Quebec, often similar to a rural village; the famous [[Saint-Louis-du-Ha! Ha!]] is one of them. link = "+w:parish municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, }, ["parish seat"] = { link = true, entry_placetype_use_the = true, preposition = "of", class = "capital", has_neighborhoods = true, }, ["park"] = { link = true, class = "man-made structure", default = {true}, }, ["pass"] = { link = "+mountain pass", -- The default plural algorithm gets this right but the singularization algorithm incorrectly converts -- passes -> passe, so put an entry here to ensure we singularize correctly. plural = "passes", fallback = "mountain pass", }, ["path"] = { link = true, fallback = "road", }, ["peak"] = { link = true, fallback = "mountain", }, ["peninsula"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, }, ["periphery"] = { link = true, preposition = "of", class = "subpolity", }, ["places!"] = { generic_before_non_cities = "in", generic_before_cities = "in", class = "generic place", category_link = "[[place]]s of all sorts", -- `category_link_top_level` control the description used in the top-level [[Category:Places]] and -- language-specific variants such as [[Category:en:Places]]. The actual text for a language-spefic variant is -- "{{{langname}}} names of [[geographical]] [[place]]s of all sorts; [[toponym]]s." where the "names of" -- portion is automatically generated by the appropriate handler in -- [[Module:category tree/topic cat/data/Places]]. category_link_top_level = "[[geographical]] [[place]]s of all sorts; [[toponym]]s", bare_category_parent = "names", }, ["planned community"] = { -- Include this so we don't categorize 'planned community' into villages, as 'community' does. link = true, class = "settlement", has_neighborhoods = true, }, ["plateau"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true}, -- FIXME: Should generate both "Plateaus" and the appropriate 'geographic and cultural area' category }, ["Polish colony"] = { link = "[[w:colony (Poland)|colony]]", affix_type = "suf", affix = "colony", fallback = "village", has_neighborhoods = true, }, ["political divisions!"] = { category_link = "[[political]] [[division]]s and [[subdivision]]s, such as [[state]]s, [[province]]s, [[county|counties]] or [[district]]s", bare_category_parent = "places", }, ["polity"] = { link = true, category_link = "[[independent]] or [[semi-]][[independent]] [[polity|polities]]", class = "polity", bare_category_parent = "places", default = {true}, }, ["populated place"] = { link = "+w:populated place", -- not necessarily true, but usually is the case fallback = "village", }, ["port"] = { link = true, class = "man-made structure", default = {true}, }, ["port city"] = { -- FIXME: should categorize into "Ports" as well as "Cities" link = true, fallback = "city", }, ["port town"] = { -- FIXME: should categorize into "Ports" as well as "Towns" link = "w", fallback = "town", }, ["prefecture"] = { -- FIXME! `prefecture` is like a county in Japan and elsewhere but a department capital city in France. -- May need `has_neighborhoods` to be a function. link = true, preposition = "of", display_handler = prefecture_display_handler, class = "subpolity", }, ["prefecture-level city"] = { -- China; they are huge entities with a central city; not cities themselves. link = "w", preposition = "of", class = "subpolity", }, ["preserved county"] = { -- In Wales; they are former counties enshrined in law; there are 8 of them and each consists of one or more -- "principal areas" (styled as "counties" or "county boroughs"), of which there are 22. link = "w", preposition = "of", class = "subpolity", inherently_former = {"FORMER"}, }, ["primary area"] = { -- a grouping of "districts" (neighborhoods) in Gothenburg, Sweden link = "+w:sv:primärområde", fallback = "neighborhood", }, ["principality"] = { link = true, fallback = "monarchy", }, ["promontory"] = { link = true, fallback = "headland", }, ["protectorate"] = { link = true, fallback = "dependent territory", }, ["province"] = { link = true, preposition = "of", display_handler = province_display_handler, class = "subpolity", }, ["provinces and autonomous regions!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case China. category_link = "[[province]]s and [[autonomous region]]s", class = "subpolity", }, ["provinces and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Canada and Pakistan. category_link = "[[province]]s and [[territory|territories]]", class = "subpolity", }, ["provincial capital"] = { link = "separately", fallback = "capital city", }, ["raion"] = { link = true, preposition = "of", affix_type = "Suf", class = "subpolity", }, ["ranch"] = { link = true, fallback = "farm", }, ["range"] = { -- FIXME: Where is this used? Is it a mountain range? link = true, holonym_use_the = true, class = "natural feature", }, ["regency"] = { link = true, preposition = "of", class = "subpolity", }, ["region"] = { link = true, preposition = "of", -- If 'region' isn't a specific administrative division, fall back to 'geographic and cultural area' fallback = "geographic and cultural area", -- "former region" is a subpolity but traditional/historic(al)/ancient/medieval/etc. is a geographic region class = "geographic region", }, ["regional capital"] = { link = "separately", fallback = "capital city", }, ["regional county municipality"] = { -- Quebec link = "w", preposition = "of", affix_type = "Suf", no_affix_strings = {"municipality", "county"}, fallback = "municipality", }, ["regional district"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "district", fallback = "district", }, ["regional municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", }, ["regional unit"] = { link = "w", preposition = "of", affix_type = "suf", class = "subpolity", }, ["registration county"] = { -- Used in Scotland for land registration purposes; formerly used in England, Wales and Ireland for statistical -- purposes (registration of births, deaths and marriages, and for the output of census information). link = "w", fallback = "county", }, ["republic"] = { -- Of Russia, Yugoslavia, etc. "Republics" in general are sovereign but we use "country" in that case. link = true, fallback = "constituent republic", }, ["research base"] = { link = "+w:research station", fallback = "research station", }, ["research station"] = { link = "w", class = "non-admin settlement", -- or "man-made structure"? default = {true}, }, ["reservoir"] = { link = true, fallback = "lake", }, ["residential area"] = { link = "separately", fallback = "neighborhood", }, ["resort city"] = { link = "w", fallback = "city", }, ["resort town"] = { link = "w", fallback = "town", }, ["river"] = { link = true, generic_before_non_cities = "in", holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, cat_handler = city_type_cat_handler, ["continent/*"] = {true}, default = {true}, }, ["river island"] = { link = "w", fallback = "island", }, ["road"] = { link = true, class = "man-made structure", default = {"具名道路"}, }, ["Roman province"] = { -- FIXME! Eliminate this in favor of 'former province|emp/Roman Empire' link = "w", default = {"羅馬帝國行省"}, class = "subpolity", }, ["royal borough"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = {"royal", "borough"}, fallback = "local government district with borough status", has_neighborhoods = true, }, ["royal burgh"] = { link = true, fallback = "borough", }, ["royal capital"] = { link = "w", fallback = "capital city", }, ["rural committee"] = { -- Hong Kong; a group of villages link = "w", affix_type = "Suf", has_neighborhoods = true, class = "settlement", }, ["rural community"] = { -- New Brunswick link = "+w:list of municipalities in New_Brunswick#Rural communities", fallback = "municipality", }, ["rural hromada"] = { link = "[[rural]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["rural municipality"] = { link = "w", preposition = "of", affix_type = "Pref", no_affix_strings = "municipality", fallback = "municipality", has_neighborhoods = true, --? }, ["rural township"] = { -- Taiwan link = "+w:rural township (Taiwan)", fallback = "township", }, ["sanctuary"] = { link = true, fallback = "temple", }, ["satrapy"] = { link = true, preposition = "of", class = "subpolity", inherently_former = {"ANCIENT", "FORMER"}, }, ["sea"] = { link = true, holonym_use_the = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["seaport"] = { link = true, fallback = "port", }, ["seat"] = { link = true, fallback = "administrative centre", }, ["self-administered area"] = { -- Myanmar (groups self-administered divisions and zones) link = "+w:self-administered zone", preposition = "of", class = "subpolity", }, ["self-administered division"] = { -- Myanmar (only one of them: Wa Self-Administered Division) link = "w", fallback = "self-administered area", }, ["self-administered zone"] = { -- Myanmar (five of them) link = "w", fallback = "self-administered area", }, ["separatist state"] = { link = "separately", fallback = "unrecognized country", }, ["settlement"] = { link = true, category_link = "[[settlement]]s such as [[city|cities]], [[village]]s and [[farm]]s", bare_category_parent = "places", -- not necessarily true, but usually is the case fallback = "village", }, ["settlement hromada"] = { link = "[[w:Populated places in Ukraine#Rural settlements|settlement]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["sheading"] = { -- Isle of Man link = true, fallback = "district", }, ["sheep station"] = { -- Australia link = true, fallback = "farm", }, ["shire"] = { link = true, fallback = "county", }, ["shire county"] = { link = "w", fallback = "county", }, ["shire town"] = { link = true, fallback = "county seat", }, ["ski resort city"] = { link = "[[ski resort]] [[city]]", fallback = "city", }, ["ski resort town"] = { link = "[[ski resort]] [[town]]", fallback = "town", }, ["spa city"] = { link = "+w:spa town", fallback = "city", }, ["spa town"] = { link = "w", fallback = "town", }, ["space station"] = { link = true, fallback = "research station", }, ["special administrative region"] = { -- in China; in practice they are city-like (Hong Kong, Macau); also [[Oecusse]] in East Timor is formally a -- "special administrative region"; North Korea had one such region planned (Sinuiju) but abandoned; Indonesia -- has similar "special regions" of Jakarta, Yogyakarta and Aceh; and South Sudan has three "special -- administrative areas" link = "+w:special administrative regions of China", preposition = "of", class = "subpolity", has_neighborhoods = true, --? -- no suffix since places in Hong Kong or Macau are listed without China, except Hong Kong and Macau themselves -- they also contain regions (or areas), e.g. [[Kowloon]], so it would be confusing suffix = "", }, ["special collectivity"] = { link = "w", fallback = "collectivity", }, ["special municipality"] = { -- formerly linked to the Taiwan article but there are also special municipalities of the Netherlands link = "w", fallback = "municipality", }, ["special ward"] = { -- Tokyo link = true, fallback = "municipality", }, ["spit"] = { link = true, fallback = "peninsula", }, ["spring"] = { link = true, class = "natural feature", default = {true}, }, ["star"] = { link = true, class = "natural feature", default = {true}, }, ["state"] = { link = true, preposition = "of", class = "subpolity", -- 'former/historical state' could refer either to a state of a country (a division) or a state = sovereign -- entity. The latter appears more common (e.g. in various "ancient states" of East Asia). former_type = "polity", }, ["states and territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case Australia. category_link = "[[state]]s and [[territory|territories]]", class = "subpolity", }, ["states and union territories!"] = { -- This and other similar "combined placetypes" are for use in the plural when grouping first-level -- administrative regions of certain countries, in this case India. category_link = "[[state]]s and [[union territory|union territories]]", class = "subpolity", }, ["state capital"] = { link = true, fallback = "capital city", }, ["state park"] = { link = true, fallback = "park", }, ["state-level new area"] = { -- China (type of economic development zone, varying greatly in size) link = "w", fallback = "new area", }, ["statistical region"] = { -- Slovenia link = true, fallback = "administrative region", }, ["statutory city"] = { link = "w", fallback = "city", }, ["statutory town"] = { link = "w", fallback = "town", }, ["strait"] = { link = true, class = "natural feature", addl_bare_category_parents = {"bodies of water"}, default = {true}, }, ["stream"] = { link = true, fallback = "river", }, ["street"] = { link = true, fallback = "road", }, ["strip"] = { link = true, fallback = "geographic region", }, ["strip of land"] = { link = "[[strip]] of [[land]]", plural = "strips of land", plural_link = "[[strip]]s of [[land]]", fallback = "geographic region", }, ["sub-metropolitan city"] = { link = "+w:List of cities in Nepal#Sub-metropolitan cities", fallback = "city", }, ["sub-prefectural city"] = { link = "w", fallback = "subprovincial city", }, ["subdistrict"] = { link = true, preposition = "of", has_neighborhoods = true, --? -- FIXME: subdistricts can be neighborhood-like (of Jakarta) or larger (in China); need a handler class = "subpolity", default = {true}, }, ["subdivision"] = { link = true, preposition = "of", affix_type = "suf", -- FIXME: subdivisions can be neighborhood-like or larger; need a handler class = "subpolity", cat_handler = district_neighborhood_cat_handler, }, ["submerged ghost town"] = { -- FIXME: Consider just having "submerged" as a qualifier. link = "[[submerged]] [[ghost town]]", fallback = "ghost town", }, ["subnational kingdom"] = { link = "+w:subnational monarchy", fallback = "non-sovereign kingdom", }, ["subnational monarchy"] = { link = "w", fallback = "non-sovereign kingdom", }, ["subprefecture"] = { link = true, affix_type = "suf", preposition = "of", class = "subpolity", }, ["subprovince"] = { link = true, preposition = "of", class = "subpolity", }, ["subprovincial city"] = { link = "w", -- China; special status given to certain prefecture-level cities fallback = "prefecture-level city", }, ["subprovincial district"] = { link = "w", -- China; special status given to Binhai New Area and Pudong New Area, which are county-level districts preposition = "of", class = "subpolity", }, ["subregion"] = { link = true, fallback = "geographic region", }, ["suburb"] = { link = true, -- The following text is suitable for the top-level description of a suburb as well as categories of the form -- 'Suburbs in POLDIV' e.g. 'Suburbs in Illinois, USA' but not for categories of the form 'Suburbs of Chicago', -- where we'd get "[[suburb]]s of [[city|cities]] of [[Chicago]]". category_link = "[[suburb]]s of [[city|cities]]", category_link_before_city = "[[suburb]]s", -- See comments under "neighborhood" for the following three settings. They are used by -- [[Module:category tree/topic cat/data/Places]] for generating the text of 'Suburbs in/of PLACE' categories -- but currently ignored by district_neighborhood_cat_handler (which actually generates the categories for a -- given page), which hardcodes "in" for non-cities and "of" for cities. (FIXME: Change this.) generic_before_non_cities = "in", generic_before_cities = "of", preposition = "of", has_neighborhoods = true, --? class = "non-admin settlement", --? cat_handler = district_neighborhood_cat_handler, }, ["suburban area"] = { link = "w", fallback = "suburb", }, ["subway station"] = { link = "w", fallback = "metro station", }, ["sum"] = { -- In China, Mongolia, Russia; something like a county in Mongolia but a township in China (Inner Mongolia), -- and equivalent to a [[selsoviet]] in the parts of Russia where it's in use (a rural council, below a raion). link = "+w:sum (administrative division)", -- This fallback is somewha arbitrary. We could use "county" but that has a display handler -- which we don't want to be active (FIXME: If the display handler would be active, that's a bug). fallback = "division", }, ["supercontinent"] = { link = true, fallback = "continent", }, ["tehsil"] = { link = true, affix_type = "suf", no_affix_strings = {"tehsil", "tahsil"}, class = "subpolity", }, ["temple"] = { link = true, fallback = "building", }, ["territorial authority"] = { link = "w", fallback = "district", }, ["territory"] = { link = true, preposition = "of", class = "subpolity", }, ["theme"] = { link = "+w:theme (Byzantine district)", preposition = "of", class = "subpolity", }, ["town"] = { link = true, generic_before_non_cities = "in", has_neighborhoods = true, class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["town with bystatus"] = { -- can't use templates in links currently link = "[[town]] with [[bystatus#Norwegian Bokmål|bystatus]]", plural = "towns with bystatus", plural_link = "[[town]]s with [[bystatus#Norwegian Bokmål|bystatus]]", fallback = "town", }, ["township"] = { link = true, has_neighborhoods = true, class = "settlement", --? default = {true}, }, ["township municipality"] = { -- Quebec link = "+w:township municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["traditional county"] = { link = true, fallback = "county", }, ["traditional region"] = { -- FIXME: Verify this works. Same for 'historic(al) region'. -- provided only for the link link = "w", fallback = "FORMER geographic region", }, ["trail"] = { link = true, fallback = "road", }, ["treaty port"] = { link = "w", fallback = "city", class = "settlement", inherently_former = {"FORMER"}, }, ["tributary"] = { link = true, preposition = "of", fallback = "river", }, ["underground station"] = { link = "w", fallback = "metro station", }, ["unincorporated area"] = { link = "w", -- I don't know if this fallback makes sense everywhere. fallback = "unincorporated community", }, ["unincorporated community"] = { link = true, generic_before_non_cities = "in", class = "non-admin settlement", }, ["unincorporated territory"] = { link = "w", fallback = "territory", }, ["union territory"] = { -- India link = true, preposition = "of", entry_placetype_indefinite_article = "a", class = "subpolity", }, ["unitary authority"] = { -- UK, New Zealand link = true, entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["unitary district"] = { link = "w", entry_placetype_indefinite_article = "a", fallback = "local government district", }, ["united township municipality"] = { -- Quebec link = "+w:united township municipality (Quebec)", entry_placetype_indefinite_article = "a", fallback = "township municipality", has_neighborhoods = true, --? }, ["university"] = { link = true, entry_placetype_indefinite_article = "a", class = "man-made structure", default = {true}, }, ["unrecognised country"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized and nearly unrecognized countries!"] = { category_link = "[[de facto]] [[independent]] [[state]]s with little or no {{w|international recognition}}", bare_category_parent = "country-like entities", }, ["unrecognized country"] = { link = "w", class = "polity", default = {"未受國際普遍承認國家"}, }, ["unrecognised state"] = { link = "w", fallback = "unrecognized country", }, ["unrecognized state"] = { link = "w", fallback = "unrecognized country", }, ["urban area"] = { link = "separately", fallback = "neighborhood", }, ["urban hromada"] = { link = "[[urban]] [[w:hromada|hromada]]", affix_type = "suf", fallback = "hromada", }, ["urban service area"] = { -- A strange beast existing in Alberta; technically a type of hamlet but in practice used for much larger -- cities and treated equivalent to a city. (There are only two of them, [[Fort McMurray]] and [[Sherwood Park]]). link = "w", fallback = "city", }, ["urban township"] = { link = "w", fallback = "township", }, ["urban-type settlement"] = { -- appears to be a particular type of small urban settlement in post-Soviet states, -- had an administrative function. link = "w", fallback = "town", }, ["valley"] = { link = true, class = "natural feature", addl_bare_category_parents = {"landforms", "water"}, default = {true}, }, ["viceroyalty"] = { -- in essence, a type of colony link = true, fallback = "dependent territory", }, ["village"] = { link = true, generic_before_non_cities = "in", category_link = "[[village]]s, [[hamlet]]s, and other small [[community|communities]] and [[settlement]]s", class = "settlement", cat_handler = city_type_cat_handler, default = {true}, }, ["village development committee"] = { -- former administrative structure in Nepal; also exists in India but not as a formal unit link = "+w:village development committee (Nepal)", inherently_former = {"FORMER"}, fallback = "village", }, ["village municipality"] = { -- Quebec link = "+w:village municipality (Quebec)", preposition = "of", fallback = "municipality", has_neighborhoods = true, --? }, ["voivodeship"] = { -- Poland link = true, display_handler = voivodeship_display_handler, preposition = "of", class = "subpolity", }, ["volcano"] = { link = true, plural = "volcanoes", class = "natural feature", addl_bare_category_parents = {"landforms"}, default = {true, "山"}, }, ["ward"] = { link = true, class = "settlement", -- Wards are formal administrative divisions of a city but have some properties of neighborhoods. fallback = "neighborhood", }, ["watercourse"] = { link = true, fallback = "channel", }, ["Welsh community"] = { -- Wales link = "[[w:community (Wales)|community]]", preposition = "of", affix_type = "suf", affix = "community", has_neighborhoods = true, class = "settlement", }, ["zone"] = { -- administrative division of Ethiopia, Qatar, Nepal, India link = "+w:zone#Place names", preposition = "of", class = "subpolity", }, ---------------------------------------------------------------------------------------------- -- Categories for former places -- ---------------------------------------------------------------------------------------------- ["ANCIENT capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", -- FIXME: Consider removing 'ancient settlements' here. Ancient capitals, like former capitals, often still -- exist but just aren't the capital any more. Maybe we should have an 'Ancient capitals' category. default = {"古代定居點", "歷史首府"}, }, ["ANCIENT non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "ANCIENT settlement", }, ["ANCIENT settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"古代定居點"}, }, ["ancient settlements!"] = { category_link = "former [[city|cities]], [[town]]s and [[village]]s that existed in [[antiquity]]", bare_category_parent = "former settlements", }, ["FORMER capital"] = { link = false, entry_placetype_use_the = true, preposition = "of", has_neighborhoods = true, class = "capital", default = {"歷史首府"}, }, ["former capitals!"] = { category_link = "former [[capital]] [[city|cities]] and [[town]]s", bare_category_parent = "settlements", }, ["former counties and county-level cities!"] = { -- For categorizing former counties and county-level cities of China category_link = "no-longer existing [[county|counties]] and [[county-level city|county-level cities]]", bare_category_breadcrumb = "counties and county-level cities", bare_category_parent = "former political divisions", }, ["FORMER county"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["FORMER county-level city"] = { -- For categorizing former counties and county-level cities of China link = false, fallback = "FORMER subpolity", }, ["former countries and country-like entities!"] = { category_link = "[[country|countries]] and similar [[polity|polities]] that no longer exist", bare_category_breadcrumb = "countries and country-like entities", bare_category_parent = "former polities", }, ["FORMER country"] = { link = false, class = "polity", default = {"Former countries and country-like entities"}, }, ["former dependent territories!"] = { category_link = "[[w:dependent territory|dependent territories]] (colonies, dependencies, protectorates, etc.) that no longer exist", bare_category_breadcrumb = "dependent territories", bare_category_parent = "former political divisions", }, ["FORMER dependent territory"] = { link = false, preposition = "of", class = "subpolity", default = {"Former dependent territories"}, }, ["former districts!"] = { -- For categorizing former districts of China category_link = "no-longer-existing [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "former political divisions", }, ["FORMER district"] = { -- For categorizing former districts of China link = false, fallback = "FORMER subpolity", }, ["FORMER geographic region"] = { link = false, fallback = "geographic and cultural area", }, ["FORMER man-made structure"] = { link = false, class = "man-made structure", default = {"Former man-made structures"}, }, ["former man-made structures!"] = { category_link = "man-made structures such as [[airport]]s and [[park]]s that no longer exist", bare_category_breadcrumb = "man-made structures", bare_category_parent = "former places", }, ["former municipalities!"] = { -- For categorizing former municipalities of the Netherlands category_link = "no-longer-existing [[municipality|municipalities]]", bare_category_breadcrumb = "municipalities", bare_category_parent = "former political divisions", }, ["FORMER municipality"] = { -- For categorizing former municipalities of the Netherlands link = false, fallback = "FORMER subpolity", }, ["FORMER natural feature"] = { link = false, class = "natural feature", default = {"Former natural features"}, }, ["former natural features!"] = { category_link = "natural features such as [[lake]]s, [[river]]s and [[island]]s that no longer exist", bare_category_breadcrumb = "natural features", bare_category_parent = "former places", }, ["FORMER non-admin settlement"] = { link = false, class = "non-admin settlement", fallback = "FORMER settlement", }, ["former places!"] = { category_link = "[[place]]s of all sorts that no longer exist", bare_category_breadcrumb = "former", bare_category_parent = "places", }, ["former political divisions!"] = { category_link = "[[political]] [[division]]s (states, provinces, counties, etc.) that no longer exist", bare_category_breadcrumb = "political divisions", bare_category_parent = "former places", }, ["former polities!"] = { category_link = "[[polity|polities]] (countries, kingdoms, empires, etc.) that no longer exist", bare_category_breadcrumb = "polities", bare_category_parent = "former places", }, ["FORMER polity"] = { link = false, class = "polity", default = {"Former polities"}, }, ["former prefectures!"] = { -- For categorizing former prefectures of China category_link = "no-longer-existing [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "former political divisions", }, ["FORMER prefecture"] = { -- For categorizing former prefectures of China link = false, fallback = "FORMER subpolity", }, ["former provinces!"] = { -- For categorizing former provinces of China, etc. category_link = "no-longer-existing [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "former political divisions", }, ["FORMER province"] = { -- For categorizing ancient/historical/former provinces of the Roman Empire link = false, fallback = "FORMER subpolity", }, ["former region"] = { -- A former region is considered a former political division, but not a 'historical/traditional/etc.' region. link = "separately", preposition = "of", inherently_former = {"FORMER"}, class = "subpolity", }, ["FORMER settlement"] = { link = false, has_neighborhoods = true, class = "settlement", default = {"Former settlements"}, }, ["former settlements!"] = { category_link = "[[city|cities]], [[town]]s and [[village]]s that no longer exist or have been merged or reclassified", bare_category_breadcrumb = "settlements", bare_category_parent = "former political divisions", }, ["FORMER subpolity"] = { link = false, preposition = "of", class = "subpolity", default = {"Former political divisions"}, }, ---------------------------------------------------------------------------------------------- -- form-of categories -- ---------------------------------------------------------------------------------------------- ---------- Abbreviations ---------- ["abbreviations of counties!"] = { -- For categorizing abbreviations of counties of e.g. England full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[county|counties]]", bare_category_breadcrumb = "counties", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of places", }, ["abbreviations of departments!"] = { -- For categorizing abbreviations of departments of e.g. France full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[department]]s", bare_category_breadcrumb = "departments", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of districts!"] = { -- For categorizing abbreviations of districts of e.g. ??? full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[district]]s", bare_category_breadcrumb = "districts", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of divisions!"] = { -- For categorizing abbreviations of divisions of e.g. Bangladesh full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[division]]s", bare_category_breadcrumb = "divisions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of former countries!"] = { full_category_link = "{{glossary|abbreviation}}s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "abbreviations of former places", }, ["abbreviations of former places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "abbreviations", bare_category_parent = "former places", addl_bare_category_parents = {{name = "abbreviations of places", sort = "former"}}, }, ["abbreviations of places!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "abbreviations", bare_category_parent = "places", }, ["abbreviations of political divisions!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[political]] [[division]]s", bare_category_breadcrumb = "political divisions", bare_category_parent = "abbreviations of places", }, ["abbreviations of prefectures!"] = { -- For categorizing abbreviations of prefectures of e.g. Japan full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[prefecture]]s", bare_category_breadcrumb = "prefectures", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces!"] = { -- For categorizing abbreviations of provinces of e.g. Canada full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s", bare_category_breadcrumb = "provinces", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of provinces and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[province]]s and [[territory|territories]]", bare_category_breadcrumb = "provinces and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of regions!"] = { -- For categorizing abbreviations of regions of e.g. Italy full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[administrative region]]s", bare_category_breadcrumb = "regions", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states!"] = { -- For categorizing abbreviations of states of e.g. the United States full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[territory|territories]]", bare_category_breadcrumb = "states and territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of states and union territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[state]]s and [[union territory|union territories]]", bare_category_breadcrumb = "states and union territories", bare_category_parent = "abbreviations of political divisions", }, ["abbreviations of territories!"] = { full_category_link = "{{glossary|abbreviation}}s of [[name]]s of [[territory|territories]]", bare_category_breadcrumb = "territories", bare_category_parent = "abbreviations of political divisions", }, ["ABBREVIATION_OF country"] = { link = false, default = {"Abbreviations of countries"}, }, ["ABBREVIATION_OF county"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF department"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF district"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF division"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF FORMER country"] = { link = false, default = {"Abbreviations of former countries"}, }, ["ABBREVIATION_OF FORMER place"] = { link = false, default = {"Abbreviations of former places"}, }, ["ABBREVIATION_OF place"] = { link = false, default = {"Abbreviations of places"}, }, ["ABBREVIATION_OF prefecture"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF province"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF region"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF state"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF subpolity"] = { link = false, default = {"Abbreviations of political divisions"}, }, ["ABBREVIATION_OF territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ["ABBREVIATION_OF union territory"] = { link = false, fallback = "ABBREVIATION_OF subpolity", }, ---------- Archaic forms ---------- ["archaic forms of places!"] = { full_category_link = "{{glossary|archaic}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "archaic forms", bare_category_parent = "places", }, ["ARCHAIC_FORM_OF place"] = { link = false, default = {"Archaic forms of places"}, }, ---------- Clippings ---------- ["clippings of places!"] = { full_category_link = "{{glossary|clipping}}s of [[name]]s of [[place]]s", bare_category_breadcrumb = "clippings", bare_category_parent = "places", }, ["CLIPPING_OF place"] = { link = false, default = {"Clippings of places"}, }, ---------- Dated forms ---------- ["dated forms of places!"] = { full_category_link = "{{glossary|dated}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "dated forms", bare_category_parent = "places", }, ["DATED_FORM_OF place"] = { link = false, default = {"Dated forms of places"}, }, ---------- Derogatory names ---------- ["derogatory names for cities!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[city|cities]]", bare_category_breadcrumb = "cities", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["derogatory names for continents!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for continents"}, }, ["derogatory names for countries!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for countries"}, }, ["derogatory names for places!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[place]]s", bare_category_breadcrumb = "derogatory names", bare_category_parent = "nicknames for places", }, ["derogatory names for states!"] = { full_category_link = "{{glossary|derogatory}} [[name]]s for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "derogatory names for places", addl_bare_category_parents = {"nicknames for states"}, }, ["DEROGATORY_NAME_FOR capital"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR city"] = { link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR continent"] = { link = false, default = {"Derogatory names for continents"}, }, ["DEROGATORY_NAME_FOR country"] = { link = false, default = {"Derogatory names for countries"}, }, ["DEROGATORY_NAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR place"] = { link = false, default = {"Derogatory names for places"}, }, ["DEROGATORY_NAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Derogatory names for cities"}, }, ["DEROGATORY_NAME_FOR state"] = { link = false, default = {"Derogatory names for states"}, }, ["DEROGATORY_NAME_FOR town"] = { link = false, default = {"Derogatory names for cities"}, }, ---------- Ellipses ---------- ["ellipses of places!"] = { full_category_link = "{{glossary|ellipsis|ellipses}} of [[name]]s of [[place]]s", bare_category_breadcrumb = "ellipses", bare_category_parent = "places", }, ["ELLIPSIS_OF place"] = { link = false, default = {"Ellipses of places"}, }, ---------- Former long-form names ---------- ["former long-form names of countries!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former long-form names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "long-form"}}, }, ["former long-form names of places!"] = { full_category_link = "no-longer-[[use]]d [[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form", bare_category_parent = "former names of places", }, ["FORMER_LONG_FORM_OF country"] = { link = false, default = {"Former long-form names of countries"}, }, ["FORMER_LONG_FORM_OF place"] = { link = false, default = {"Former long-form names of places"}, }, ---------- Former names ---------- ["former names of capitals!"] = { full_category_link = "[[former]] [[name]]s of [[capital city|capital cities]] that generally still exist but under a different name", bare_category_breadcrumb = "capitals", bare_category_parent = "former names of settlements", }, ["former names of countries!"] = { full_category_link = "[[former]] [[name]]s of [[country|countries]] that generally still exist but under a different name", bare_category_breadcrumb = "countries", bare_category_parent = "former names of places", }, ["former names of places!"] = { full_category_link = "[[former]] [[name]]s of [[place]]s that generally still exist but under a different name", bare_category_breadcrumb = "former names", bare_category_parent = "places", }, ["former names of political divisions!"] = { full_category_link = "[[former]] [[name]]s of [[political]] [[division]]s (states, provinces, counties, etc.) that generally still exist but under a different name", bare_category_breadcrumb = "political divisions", bare_category_parent = "former names of places", }, ["former names of polities!"] = { full_category_link = "[[former]] [[name]]s of [[polity|polities]] (e.g. [[country|countries]]) that generally still exist but under a different name", bare_category_breadcrumb = "polities", bare_category_parent = "former names of places", }, ["former names of settlements!"] = { full_category_link = "[[former]] [[name]]s of [[city|cities]], [[town]]s, [[village]]s, etc. that generally still exist but under a different name", bare_category_breadcrumb = "settlements", bare_category_parent = "former names of political divisions", }, ["FORMER_NAME_OF capital"] = { link = false, default = {"Former names of capitals"}, }, ["FORMER_NAME_OF country"] = { link = false, default = {"Former names of countries"}, }, ["FORMER_NAME_OF place"] = { link = false, default = {"Former names of places"}, }, ["FORMER_NAME_OF polity"] = { link = false, default = {"Former names of polities"}, }, ["FORMER_NAME_OF region"] = { link = false, fallback = "FORMER_NAME_OF subpolity", }, ["FORMER_NAME_OF settlement"] = { link = false, default = {"Former names of settlements"}, }, ["FORMER_NAME_OF subpolity"] = { link = false, default = {"Former names of political divisions"}, }, ---------- Former nicknames ---------- ["former nicknames for cities!"] = { full_category_link = "no-longer-used [[nickname]]s for [[city|cities]], e.g. the [[Eternal City]] for [[Kyoto]] during the {{w|Heian period}} ({{circa2|800–1100|short=yes}} {{AD}})", bare_category_breadcrumb = "cities", bare_category_parent = "former nicknames for places", addl_bare_category_parents = {"nicknames for cities"}, }, ["former nicknames for places!"] = { full_category_link = "no-longer-used [[nickname]]s for [[place]]s", bare_category_breadcrumb = "former", bare_category_parent = "nicknames for places", addl_bare_category_parents = {{name = "former names of places", sort = "nicknames"}}, }, ["FORMER_NICKNAME_FOR capital"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR city"] = { link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR place"] = { link = false, default = {"Former nicknames for places"}, }, ["FORMER_NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Former nicknames for cities"}, }, ["FORMER_NICKNAME_FOR town"] = { link = false, default = {"Former nicknames for cities"}, }, ---------- Former official names ---------- ["former official names of countries!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "former official names of places", addl_bare_category_parents = {{name = "former names of countries", sort = "official"}}, }, ["former official names of places!"] = { full_category_link = "no-longer-[[use]]d [[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "former names of places", }, ["FORMER_OFFICIAL_NAME_OF country"] = { link = false, default = {"Former official names of countries"}, }, ["FORMER_OFFICIAL_NAME_OF place"] = { link = false, default = {"Former official names of places"}, }, ---------- Long-form names ---------- ["long-form names of countries!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "long-form names of places", }, ["long-form names of places!"] = { full_category_link = "[[long]]-[[form]] (but typically [[unofficial]]) [[name]]s of [[place]]s", bare_category_breadcrumb = "long-form names", bare_category_parent = "places", }, ["LONG_FORM_OF country"] = { link = false, default = {"Long-form names of countries"}, }, ["LONG_FORM_OF place"] = { link = false, default = {"Long-form names of places"}, }, ---------- Nicknames ---------- ["nicknames for cities!"] = { full_category_link = "[[nickname]]s for [[city|cities]], e.g. the [[Big Apple]] for [[New York City]]", bare_category_breadcrumb = "cities", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"cities"}, }, ["nicknames for continents!"] = { full_category_link = "[[nickname]]s for [[continent]]s", bare_category_breadcrumb = "continents", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"continents"}, }, ["nicknames for countries!"] = { full_category_link = "[[nickname]]s for [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"countries"}, }, ["nicknames for places!"] = { full_category_link = "[[nickname]]s for [[place]]s", bare_category_breadcrumb = "places", bare_category_parent = "nicknames", addl_bare_category_parents = {"places"}, }, ["nicknames for states!"] = { -- For categorizing nicknames for states of e.g. the United States full_category_link = "[[nicknames]] for [[state]]s", bare_category_breadcrumb = "states", bare_category_parent = "nicknames for places", addl_bare_category_parents = {"states"}, }, ["NICKNAME_FOR capital"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR city"] = { link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR continent"] = { link = false, default = {"Nicknames for continents"}, }, ["NICKNAME_FOR country"] = { link = false, default = {"Nicknames for countries"}, }, ["NICKNAME_FOR metropolitan city"] = { -- "metropolitan city" doesn't fall back to "city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR place"] = { link = false, default = {"Nicknames for places"}, }, ["NICKNAME_FOR prefecture-level city"] = { -- "prefecture-level city" doesn't fall back to "city" but things like "county-level city" and -- "subprovincial city" fall back to "prefecture-level city" link = false, default = {"Nicknames for cities"}, }, ["NICKNAME_FOR state"] = { link = false, default = {"Nicknames for states"}, }, ["NICKNAME_FOR town"] = { link = false, default = {"Nicknames for cities"}, }, ---------- Obsolete forms ---------- ["obsolete forms of places!"] = { full_category_link = "{{glossary|obsolete}} [[form]]s of [[name]]s of [[place]]s", bare_category_breadcrumb = "obsolete forms", bare_category_parent = "places", }, ["OBSOLETE_FORM_OF place"] = { link = false, default = {"Obsolete forms of places"}, }, ---------- Official names ---------- ["official names of countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of places", }, ["official names of former countries!"] = { full_category_link = "[[official]] [[name]]s of [[country|countries]] that no longer [[exist]]", bare_category_breadcrumb = "countries", bare_category_parent = "official names of former places", }, ["official names of former places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s that no longer [[exist]]", bare_category_breadcrumb = "official names", bare_category_parent = "former places", addl_bare_category_parents = {{name = "official names of places", sort = "former"}}, }, ["official names of places!"] = { full_category_link = "[[official]] [[name]]s of [[place]]s", bare_category_breadcrumb = "official names", bare_category_parent = "places", }, ["OFFICIAL_NAME_OF country"] = { link = false, default = {"Official names of countries"}, }, ["OFFICIAL_NAME_OF FORMER country"] = { link = false, default = {"Official names of former countries"}, }, ["OFFICIAL_NAME_OF FORMER place"] = { link = false, default = {"Official names of former places"}, }, ["OFFICIAL_NAME_OF place"] = { link = false, default = {"Official names of places"}, }, ---------- Official nicknames ---------- ["official nicknames for places!"] = { full_category_link = "[[official]] [[nickname]]s for [[place]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for places", }, ["official nicknames for states!"] = { -- For categorizing official nicknames for states of e.g. the United States full_category_link = "[[official]] [[nicknames]] for [[state]]s", bare_category_breadcrumb = "official", bare_category_parent = "nicknames for states", addl_bare_category_parents = {"states"}, }, ["OFFICIAL_NICKNAME_FOR place"] = { link = false, default = {"Official nicknames for places"}, }, ["OFFICIAL_NICKNAME_FOR state"] = { link = false, default = {"Official nicknames for states"}, }, } export.plural_placetype_to_singular = {} for sg_placetype, spec in pairs(export.placetype_data) do if spec.plural then export.plural_placetype_to_singular[spec.plural] = sg_placetype end end ------------------------------------------------------------------------------------------ -- ZH: Chinese localization functions -- ------------------------------------------------------------------------------------------ --[==[ Get the Chinese display name for a placetype, resolving through the enwikt fallback chain. `holonym_placetype` (optional string) provides context for placetypes like `capital city` whose Chinese term depends on the containing administrative level (country → 首都, province → 省會, state → 首府, etc.). Returns two values: zh_name (string or array of regional variants), zh_suffix (string, array, or nil). Returns nil, nil if no Chinese data is available for the placetype or any of its fallbacks. ]==] function export.get_zh_placetype_name(placetype, holonym_placetype) placetype = export.resolve_placetype_aliases(placetype) local zh_name, zh_suffix, zh_by_holonym = m_zh_data.get_zh_placetype_props(placetype, export) if zh_name then local resolved = m_zh_data.resolve_zh_name(zh_name, zh_by_holonym, holonym_placetype) return resolved, zh_suffix end return nil, nil end --[==[ Get only the Chinese suffix for a placetype. Used when rendering holonym `:pref`/`:suf` modifiers in Chinese: the suffix is appended directly to the holonym name (e.g. `s:suf/New York` → 紐約州; `c:pref/Georgia` → 格魯吉亞國). Returns a string, an array of regional variants, or nil if no suffix is defined. ]==] function export.get_zh_placetype_suffix(placetype) placetype = export.resolve_placetype_aliases(placetype) local _, zh_suffix = m_zh_data.get_zh_placetype_props(placetype, export) return zh_suffix end --[==[ Chinese placetype "pluralization" — a no-op, since Chinese has no grammatical plural. Accepts and returns a string or an array (for multi-variant names) unchanged. Provided so that call sites shared with the English path can call a uniform function. ]==] function export.pluralize_zh_placetype(zh_name) return zh_name end --[==[ Get the entry preposition for Chinese display: "in" or "of". Identical to `get_placetype_entry_preposition` in semantics; the Chinese rendering maps these to different constructions: "in" → 位於 [holonyms] 的 [placetype] "of" → [holonyms] 的 [placetype] (no 位於 prefix) ]==] export.get_zh_entry_preposition = export.get_placetype_entry_preposition -- Re-export Chinese data tables so that [[Module:place]] only needs to require -- this module rather than both this module and [[Module:place/zh-data]] separately. export.zh_strings = m_zh_data.zh_strings export.zh_qualifiers = m_zh_data.zh_qualifiers export.zh_extra_info_labels = m_zh_data.zh_extra_info_labels export.zh_capital_label_by_holonym_type = m_zh_data.zh_capital_label_by_holonym_type export.format_zh_name = m_zh_data.format_zh_name return export 1oe9nhd0lj0667dlkp5lvycfq3zned3 Module:Transclude 828 3438213 9759389 9759364 2026-05-14T12:30:41Z TongcyDai 53191 9759389 Scribunto text/plain local export = {} local anchors_module = "Module:anchors" local debug_track_module = "Module:debug/track" local headword_data_module = "Module:headword/data" local labels_module = "Module:labels" local languages_module = "Module:languages" local links_module = "Module:links" local pages_module = "Module:pages" local parameters_module = "Module:parameters" local parse_interface_module = "Module:parse interface" local place_module = "Module:place" local string_char_module = "Module:string/char" local string_pattern_escape_module = "Module:string/patternEscape" local string_remove_comments_module = "Module:string/removeComments" local string_replacement_escape_module = "Module:string/replacementEscape" local string_utilities_module = "Module:string utilities" local table_module = "Module:table" local template_parser_module = "Module:template parser" local m_place = require(place_module) local zhlang = require(languages_module).getByCode("zh") local concat = table.concat local find = string.find local insert = table.insert local ipairs = ipairs local lower = string.lower local match = string.match local pairs = pairs local unpack = unpack or table.unpack -- Lua 5.2 compatibility local function codepoint(...) codepoint = require(string_utilities_module).codepoint return codepoint(...) end local function contains(...) contains = require(table_module).contains return contains(...) end local function deep_copy(...) deep_copy = require(table_module).deepCopy return deep_copy(...) end local function find_templates(...) find_templates = require(template_parser_module).find_templates return find_templates(...) end local function full_link(...) full_link = require(links_module).full_link return full_link(...) end local function is_preview(...) is_preview = require(pages_module).is_preview return is_preview(...) end local function pattern_escape(...) pattern_escape = require(string_pattern_escape_module) return pattern_escape(...) end local function process_params(...) process_params = require(parameters_module).process return process_params(...) end local function remove_comments(...) remove_comments = require(string_remove_comments_module) return remove_comments(...) end local function replacement_escape(...) replacement_escape = require(string_replacement_escape_module) return replacement_escape(...) end local function senseid(...) senseid = require(anchors_module).senseid return senseid(...) end local function show_labels(...) show_labels = require(labels_module).show_labels return show_labels(...) end local function split(...) split = require(string_utilities_module).split return split(...) end local function u(...) u = require(string_char_module) return u(...) end -- Add the page to a tracking "category". To see the pages in the "category", -- go to [[Wiktionary:Tracking/transclude/PAGE]] and click on "What links here". local function track(page) require(debug_track_module)("transclude/" .. page) return true end -- Split an argument on comma, but not comma followed by whitespace. local function split_on_comma(val) if val:find(",") then return require(parse_interface_module).split_on_comma(val) else return {val} end end -- Split list of labels. For compatibility, we allow splitting on semicolon, but will convert to splitting on -- comma not followed by space, for compatibility with other modules/params. local function split_labels(val) if val:find(";") then track("label-with-semicolon") return split(val, ";") else return split_on_comma(val) end end -- From [[Template:gloss]] -- local gloss_left = '<span class="mention-gloss-paren">(</span><span class="mention-gloss">' -- local gloss_right = '</span><span class="mention-gloss-paren">)</span>' local gloss_left = '<span class="mention-gloss-paren">(</span><span class="mention-gloss">' local gloss_right = '</span><span class="mention-gloss-paren">)</span>' -- Ensure that Wikicode (template calls, bracketed links, HTML, bold/italics, etc.) displays literally in error messages -- by inserting a Unicode word-joiner symbol after all characters that may trigger Wikicode interpretation. Replacing -- with equivalent HTML escapes doesn't work because they are displayed literally. I could not get this to work using -- <nowiki>...</nowiki> (those tags display literally), using using {{#tag:nowiki|...}} (same thing) or using -- mw.getCurrentFrame():extensionTag("nowiki", ...) (everything gets converted to a strip marker -- `UNIQ--nowiki-00000000-QINU` or similar). FIXME: This is a massive hack; there must be a better way. local function escape_wikicode(text) text = text:gsub("([%[<'{])", "%1" .. u(0x2060)) return text end local function preprocess(frame, text) if text:find("{") or text:find("<math>") then return frame:preprocess(text) else return text end end local function ine(arg) return arg ~= "" and arg or nil end local function discard(offset, iter, obj, index) return iter, obj, index + offset end local function remove_templates_if(haystack, predicate) local remaining = {} local last_start = 1 for template in find_templates(haystack) do local name = template:get_name() if name ~= nil and predicate(name, template:get_arguments(), next(remaining) == nil) then local index = template.index if last_start < index then local chunk = haystack:sub(last_start, index - 1) if chunk:find("%S") then insert(remaining, chunk) end end last_start = index + template.raw:len() end end if last_start == 1 then return haystack else insert(remaining, haystack:sub(last_start)) return concat(remaining) end end local function copy_unnamed_args_maybe_except_code(to, from, deny_list, first_argument) first_argument = first_argument or 2 for _, value in discard(first_argument - 1, ipairs(from)) do if not deny_list or not contains(deny_list, value) then insert(to, value) end end end local function parse_form_of_directive(value, param) local new_directive, new_value = value:match("^@([a-z -]+):(.*)$") if not new_directive then if param then error(("Misformatted value %s=%s; should be e.g. 'place_acronym_of=" .. "@init of:ehemalige jugoslawische Republik Mazedonien' to replace " .. "'@acronym of:...' with '@init of:...'"):format( param, value)) else error(("Misformatted form-of directive '%s'; should be e.g. '@ellip of:Santiago del Estero'"):format( value)) end end if not m_place.all_form_of_directives[new_directive] then local known_directives = {} for k, _ in pairs(m_place.all_form_of_directives) do insert(known_directives, '"' .. k .. '"') end table.sort(known_directives) known_directives = concat(known_directives, ", ") if param then error(("Unrecognized form-of directive '%s' in replacement @-directive %s=%s; " .. "recognized directives are %s"):format(new_directive, param, value, known_directives)) else error(("Unrecognized form-of directive '%s' in '%s'; recognized directives are %s"):format( new_directive, value, known_directives)) end else -- canonicalize replacement directive aliases new_directive = m_place.all_form_of_directives[new_directive].alias_of or new_directive end return new_directive, new_value end local function handle_definition_template(data) local name, args, transclude_args = data.name, data.template_args, data.transclude_args if name == "place" or name == "Place" then local place_form_of_directives = data.place_form_of_directives return { should_remove = true, must_be_first = true, generate = function(data) if data.formatted_to and data.formatted_to ~= "" then error("{{place}} cannot be used in conjunction with |to=") end local place_args = {} local langcode = data.lang:getCode() local place_translation_follows = transclude_args.place_translation_follows local include_place_extra_info = transclude_args.include_place_extra_info local drop_extra = not include_place_extra_info -- false or unspecified local extra_info_overridden_set = {} for _, extra_info_spec in pairs(m_place.extra_info_args) do local overriding_arg = transclude_args["place_" .. extra_info_spec.arg] if overriding_arg and overriding_arg[1] then extra_info_overridden_set[extra_info_spec.arg] = true end end local form_of_overridden_args = {} for form_of_directive, directive_spec in pairs(m_place.all_form_of_directives) do if not directive_spec.alias_of then local transclude_key = "place_" .. (form_of_directive:gsub(" ", "_")) local transclude_value = transclude_args[transclude_key] if transclude_value then local new_directive, new_value if transclude_value:find("^@") then new_directive, new_value = parse_form_of_directive(transclude_value, transclude_key) else new_directive = form_of_directive new_value = transclude_value end form_of_overridden_args[form_of_directive] = { new_directive = new_directive, new_value = new_value, } if directive_spec.default_foreign and place_translation_follows == nil then place_translation_follows = true end end end end place_args[1] = langcode place_args.pagename = data.source -- If form-of directives specified in the numeric args to {{tcl}}, they get inserted before any -- numeric args taken from {{place}}. local next_numarg = 2 for _, form_of_directive in ipairs(place_form_of_directives) do place_args[next_numarg] = ("@%s:%s"):format(form_of_directive.directive, form_of_directive.value) next_numarg = next_numarg + 1 end local saw_tcl_t local saw_t -- Copy the arguments but drop translations, maybe the "extra info", and maybe the numbered args -- (if tcl= given) local tcl_arg = ine(args.tcl) for key, val in pairs(args) do local base = tostring(key):match("^(.-)(%d*)$") if base == "tcl_t" or base == "tcl_tid" then saw_tcl_t = true -- otherwise ignore elseif base == "tcl_nolb" then data.nolb = val -- otherwise ignore elseif base == "t" or base == "tid" then if transclude_args.t[1] then -- ignore it if the user specified t= in {{tcl}}, otherwise keep it unless tcl_t is given else saw_t = true end elseif m_place.extra_info_arg_map[base] and extra_info_overridden_set[base] then -- don't copy any extra info arguments that we will be overriding, in case there are more -- original values than overrides for this particular argument elseif base == "" then if not tcl_arg and key > 1 then -- We want keys starting at 2 to go into positions starting at `next_numarg`. place_args[next_numarg + key - 2] = val end else place_args[key] = val end end local function sub_plus(t) if t:find("+") then t = t:gsub("+", replacement_escape(data.source)) end return t end -- If tcl= given, copy its value into the numeric args. if tcl_arg then place_args[next_numarg] = tcl_arg next_numarg = next_numarg + 1 place_args.a = nil end if transclude_args.t[1] then local argno = 1 for _, t in ipairs(transclude_args.t) do if t ~= "-" then place_args["t" .. (argno == 1 and "" or argno)] = sub_plus(t) argno = argno + 1 end end elseif langcode ~= "zh" then if saw_tcl_t then for key, val in pairs(args) do local base, num = tostring(key):match("^(.-)(%d*)$") if base == "tcl_t" then place_args["t" .. num] = sub_plus(val) elseif base == "tcl_tid" then place_args["tid" .. num] = val end end elseif saw_t then for key, val in pairs(args) do local base = tostring(key):match("^(.-)(%d*)$") if base == "t" or base == "tid" then place_args[key] = val end end else place_args["t"] = data.source place_args["tid"] = data.id end end place_args["sort"] = data.sort if data.nocat then place_args["nocat"] = "1" end if transclude_args.place_addl then place_args.addl = transclude_args.place_addl end if data.no_gloss then place_args["def"] = "-" else local gloss = data.gloss -- Copy overriding extra info values. They are in the term language rather than Chinese, -- which we signal through `extra_info_overridden_set`. for _, extra_info_spec in pairs(m_place.extra_info_args) do for i, v in ipairs(transclude_args["place_" .. extra_info_spec.arg]) do place_args[extra_info_spec.arg .. (i == 1 and "" or i)] = v end end if not args.tcl_noextratext and not tcl_arg and gloss ~= "" then -- Copy text after {{place}} into {{place}}, unless tcl= or tcl_noextratext= is given. local first_free = 2 while place_args[first_free] ~= nil do first_free = first_free + 1 end if place_args[first_free - 1]:find("<<") then -- new-style argument; concatenate to end of argument if not gloss:find("^[,;.]") then gloss = " " .. gloss end place_args[first_free - 1] = place_args[first_free - 1] .. gloss else -- old-style argument; add as separate argument if gloss:find("^,") then place_args[first_free] = gloss:gsub("^, *", "") elseif gloss:find("^;") then place_args[first_free] = ";" place_args[first_free + 1] = gloss:gsub("^; *", "") else -- the "*" ensures no extra comma place_args[first_free] = "*" .. gloss:gsub("^ *", "") end end end end return m_place.format { template_args = place_args, from_tcl = true, drop_extra_info = drop_extra, extra_info_overridden_set = extra_info_overridden_set, form_of_overridden_args = form_of_overridden_args, translation_follows = place_translation_follows, } end, } elseif name == "abbreviation of" or name == "abbr of" or name == "abbrev of" or name == "acronym of" or name == "ellipsis of" or name == "contraction of" or name == "contr of" or name == "initialism of" or name == "init of" or name == "short for" or name == "synonym of" then return { should_remove = true, must_be_first = true, generate = function(data) local formatted_gloss = "" if not data.no_gloss then local formatted_link = full_link{ term = args[2], alt = args[3], lang = data.source_lang, id = args["id"] } local after_link = "" if data.gloss ~= "" then local separator = (args["nodot"] and "") or ((args["dot"] or ";") .. " ") after_link = separator .. data.gloss end -- formatted_gloss = " " .. gloss_left .. formatted_link .. after_link .. gloss_right formatted_gloss = gloss_left .. formatted_link .. after_link .. gloss_right end return data.formatted_to .. full_link{ term = data.source, lang = data.source_lang, id = data.id } .. formatted_gloss end, } end return nil end function export.show(frame) local boolean = {type = "boolean"} local list = {list = true} local required = {required = true} local params = { [1] = {required = true, type = "language"}, -- langcode of target language (the current entry's language) [2] = {list = true, required = true}, -- source Chinese term to transclude from and/or form-or directives id = true, -- can have multiple comma-separated IDs sort = true, nogloss = {default = false, type = "boolean"}, no_truncate_gloss = boolean, -- Normally, we ignore most of the extra info (capital, largest city, official name, etc.) when transcluding -- {{place}} because the given terms are in Chinese and will likely differ from language to language. include_place_extra_info = boolean, -- Normally the translation (the transcluded page or overriding value in t=) comes first with the definition -- following in parens, but that may not produce sensible results in some cases. place_translation_follows = boolean, place_addl = true, lb = true, -- can have multiple comma-separated or (for compatibility) semicolon-separated labels nolb = true, -- can have multiple comma-separated or (for compatibility) semicolon-separated labels nocat = boolean, to = boolean, t = list, indent = true, dot = boolean, pagename = true, } for _, extra_arg_spec in ipairs(m_place.extra_info_args) do params["place_" .. extra_arg_spec.arg] = list end for form_of_directive, directive_spec in pairs(m_place.all_form_of_directives) do params["place_" .. (form_of_directive:gsub(" ", "_"))] = directive_spec.alias_of and {alias_of = "place_" .. (directive_spec.alias_of:gsub(" ", "_"))} or true end local args = process_params(frame:getParent().args, params) local pagename = args.pagename or mw.loadData(headword_data_module).pagename local language = args[1] local language_code = language:getCode() local source local place_form_of_directives = {} if args[2][1]:find("^@") then -- form-of directives in place of source for i, arg in ipairs(args[2]) do if arg:find("^@") then local directive, value = parse_form_of_directive(arg) insert(place_form_of_directives, { directive = directive, value = value, }) elseif i ~= #args[2] then error(("When form-of directives are specified, the source must come last, but saw source %s=%s " .. "when higher-numbered arguments exist"):format(i + 1, arg)) else source = arg end end if not source then source = place_form_of_directives[#place_form_of_directives].value:gsub("<.*", "") end elseif args[2][2] then error(("Extraneous argument 3=%s"):format(args[2][2])) else source = args[2][1] end local source_lang = zhlang local source_langcode = source_lang:getCode() local source_langname = source_lang:getFullName() local ids = args.id and split(args.id, ",") or {""} local sort = args.sort if source == "+" then source = pagename end local source_is_current_page = source == pagename local copy_sortkey = (sort == nil) and source_is_current_page local no_gloss = args.nogloss local labels = args.lb and split_labels(args.lb) or {} local to = args.to local function issue_error(msg) if source_is_current_page and is_preview() then msg = msg .. ". NOTE: You are in preview mode. If you're previewing only part of the page, try previewing the full page, as the error may go away." end error(msg) end local content = mw.title.new(source):getContent() if content == nil then issue_error("Couldn't find the entry [[" .. source .. "]]") end -- Remove HTML comments. content = remove_comments(content) -- Remove <ref></ref> with nothing inside the first <ref>. content = content:gsub("< *[rR][eE][fF] *>.-< */ *[rR][eE][fF] *>", "") -- Remove <ref ...></ref> but don't get confused by inline modifiers <ref:...>. content = content:gsub("< *[rR][eE][fF][^%a>/:][^>/]*>.-< */ *[rR][eE][fF] *>", "") -- Remove <ref/> with nothing inside the <ref>. content = content:gsub("< *[rR][eE][fF] */ *>", "") -- Remove <ref .../> but don't get confused by inline modifiers <ref:...>. content = content:gsub("< *[rR][eE][fF][^%a>/:][^>/]*/ *>", "") -- TODO: Handle <nowiki> (it's more complex than just cutting it out too). local retlines = {} for _, id in ipairs(ids) do local nolb local found_labels = {} local line_start, line if id == "" then id = nil end if id ~= nil then local senseid_start, senseid_end = content:find("{{ *senseid *| *" .. pattern_escape(source_langcode) .. " *| *" .. pattern_escape(id) .. " *}}") if senseid_start == nil then senseid_start, senseid_end = content:find("{{ *sid *| *" .. pattern_escape(source_langcode) .. " *| *" .. pattern_escape(id) .. " *}}") end if senseid_start == nil then local alternatives = nil for id in content:gmatch("{{ *senseid *| *" .. pattern_escape(source_langcode) .. " *| *([^}]*)}}") do alternatives = alternatives and alternatives .. ", " .. id or id end for id in content:gmatch("{{ *sid *| *" .. pattern_escape(source_langcode) .. " *| *([^}]*)}}") do alternatives = alternatives and alternatives .. ", " .. id or id end if alternatives then alternatives = ": Alternatives for |id= are: " .. alternatives else alternatives = "" end issue_error("Couldn't find the template {{[[Template:senseid|senseid]]|" .. source_langcode .. "|" .. id .. "}} within entry [[" .. source .. "]]" .. alternatives) end -- Do the following manually instead of using regex or iterators in hopes of saving memory. local newline, pound = 10, 35 line_start = senseid_start while line_start > 0 and content:byte(line_start - 1) ~= newline do line_start = line_start - 1 end local def_start = line_start while content:byte(def_start) == pound do def_start = def_start + 1 end local line_end = senseid_end while line_end < content:len() and content:byte(line_end + 1) ~= newline do line_end = line_end + 1 end line = content:sub(def_start, senseid_start - 1) .. content:sub(senseid_end + 1, line_end) else -- id == nil --l10n: 更改為匹配「漢語」或「汉语」,並相容簡繁轉換 -- local _, start_source = find(content, "==[ \t]*" .. pattern_escape(source_langname) .. "[ \t]*==") local _, start_source = find(content, "==[ \t]*[漢汉][語语][ \t]*==") if not start_source then issue_error(("Couldn't find L2 header for source language '%s' on page [[%s]]"):format(source_langname, source)) end -- Find index of start of next language; may be nil if no language follows. local _, start_next_lang = find(content, "\n==[^=\n]+==", start_source, false) content = content:sub(start_source, start_next_lang) while true do local next_line_start _, next_line_start = find(content, "\n#+[^:*]", line_start, false) if not next_line_start then break end if line_start then local first_line = match(content, "(.-)%f[\n%z]", line_start) local next_line = match(content, "(.-)%f[\n%z]", next_line_start + 1) issue_error(("No id specified and saw two definition lines '%s' and '%s' for source language '%s' on page [[%s]]"):format( escape_wikicode(first_line), escape_wikicode(next_line), source_langname, source)) end line_start = next_line_start + 1 end if not line_start then issue_error(("Couldn't find any definition lines for source language '%s' on page [[%s]]"):format( source_langname, source)) end line = match(content, "(.-)%f[\n%z]", line_start) end --[[ if to == nil then local i = line_start while i > 1 do i = i - 1 -- i is now the index of the newline while i > 1 and content:byte(i - 1) ~= 0xA do i = i - 1 end local header = content:match("^===+([^=\n]+)===+ *\n", i) if header then to = (header:match("Verb") ~= nil) break end end end ]]-- -- TODO: Remove this error once <nowiki> is handled correctly (see above TODO). if line:find("< *nowiki%W") or line:find("< */ *nowiki%W") then error("Cannot handle <nowiki>") end -- Quick'n'dirty templatization of manual cats so that the below code also works for them. for _, v in ipairs({{source_langcode .. ":", "c"}, {source_lang:getCanonicalName() .. " ", "cln"}, {"", "cat"}}) do line = line:gsub("%[%[ *Category *: *" .. v[1] .. "([^%]|]*)%]%]", "{{" .. v[2] .. "|" .. source_langcode .. "|%1}}") line = line:gsub("%[%[ *Category *%: *" .. v[1] .. "([^%]|]*)%|([^%]|]*)%]%]", "{{" .. v[2] .. "|" .. source_langcode .. "|%1|sort=%2}}") end -- Extract template information. local cats = {} local cats_cln = {} local cats_top = {} local encountered_label = false local generator = nil local sortkeys = {} local sortkey_most_frequent = nil local sortkey_most_frequent_n = 0 local function process_template(name, tempargs, is_at_the_start) -- Expand any nested templates in template arguments. local name = name and name:lower() or "" -- l10n for k, v in pairs(tempargs) do tempargs[k] = preprocess(frame, v) end local supports_sortkey = false local should_remove = true -- If set, removes the template from the line after processing. local must_be_first = false -- If set, ensures that nothing (except for removed templates) preceeds this template. local definition_template_handler = handle_definition_template { name = name, template_args = tempargs, transclude_args = args, place_form_of_directives = place_form_of_directives, } if definition_template_handler ~= nil then if generator ~= nil then error("Encountered {{[[Template:" .. name .. "|" .. name .. "]]}} even though a full definition template has already been processed") end should_remove = definition_template_handler.should_remove must_be_first = definition_template_handler.must_be_first generator = definition_template_handler.generate elseif name == "categorize" or name == "cat" then copy_unnamed_args_maybe_except_code(cats, tempargs) supports_sortkey = true elseif name == "catlangname" or name == "cln" then copy_unnamed_args_maybe_except_code(cats, tempargs) supports_sortkey = true elseif name == "catlangcode" or name == "topics" or name == "top" or name == "C" or name == "c" then copy_unnamed_args_maybe_except_code(cats_top, tempargs) supports_sortkey = true elseif name == "label" or name == "lbl" or name == "lb" then if encountered_label then error("Encountered multiple {{[[Template:label|label]]}} templates in the definition line") end encountered_label = true copy_unnamed_args_maybe_except_code(found_labels, tempargs) supports_sortkey = true must_be_first = true elseif name == "defdate" or name == "defdt" or name == "century" or name == "ref" or name == "refn" or name == "rfd-sense" or name == "rfv-sense" or name == "senseid" or name == "sid" or name == "zh-div" then -- Remove and do nothing. else -- We are dealing with a template other than the above hard-coded ones. -- If it contains the language code, we cannot handle it. if tempargs[1] == source_langcode then error("Cannot handle template {{[[Template:" .. name .. "|" .. name .. "]]}}") end supports_sortkey = tempargs["sort"] or tempargs["sort1"] -- TODO: This doesn't handle the case where there is only sortn but not sort1/sort. should_remove = false -- Leave the template in and just copy it, e.g. [[Template:,]], [[Template:gloss]], [[Template:qualifier]], [[Template:w]] etc. end if supports_sortkey then if tempargs["sort1"] ~= nil then error("Cannot handle multiple sort keys") end local sortkey = tempargs["sort"] if sortkey ~= nil then if sortkeys[sortkey] == nil then sortkeys[sortkey] = 1 else sortkeys[sortkey] = sortkeys[sortkey] + 1 end if sortkeys[sortkey] > sortkey_most_frequent_n then sortkey_most_frequent = sortkey sortkey_most_frequent_n = sortkeys[sortkey] end end end if must_be_first and not is_at_the_start then error("The template {{[[Template:" .. name .. "|" .. name .. "]]}} should occur to the front of the definition line") end return should_remove end line = remove_templates_if(line, process_template) line = line:gsub("^%s+", ""):gsub("%s+$", "") -- Prune ends. -- Tidy up the remaining definition (to be used as a gloss). -- Truncate full sentences after a period, as they won't be formatted well as a gloss. Require a space after -- the period as a possible way of reducing false positives with abbreviations. local gloss = line if not args.no_truncate_gloss then -- l10n: 中文使用全形句號截斷,不需要英文縮寫防誤判邏輯 --[[ -- Substitute a list of known abbreviations that shouldn't mark the end-point of the gloss, which will be reinserted after truncation. local abbrevs = {"A.D.", "B.C.", "B.C.E.", "c[af]?.", "C.E.", "e.g.", "fl.", "i.[ae].", "r.", "sc.", "scil.", "viz.", "vs?."} local substitutes, i = {}, 0 local function insert_substitute(m) i = i + 1 insert(substitutes, m) return u(0x80000 + i) end for j, abbrev in ipairs(abbrevs) do abbrev = abbrev:gsub("%.", "%%.") :gsub("%f[^.].", " *%0") abbrevs[j] = abbrev gloss = gloss:gsub("%f[%S]" .. abbrev .. "%f[%s]", insert_substitute) end gloss = gloss:gsub("%s*%. .*$", "") :gsub("\242[\128-\191]*", function(m) return substitutes[codepoint(m) - 0x80000] end) ]]-- gloss = gloss:gsub("。.*$", "") end -- l10n: 註解掉英文首字母小寫邏輯,將句尾半形句號改為去除全形句號 -- gloss = gloss:gsub("^%u", lower):gsub("%.$", "") gloss = gloss:gsub("。$", "") gloss = gloss:gsub("^{{1|([^}|]*)}}", "%1") -- Remove [[Template:1]] local _, link_end, link_dest_head, link_dest_tail, link_face_head, link_face_tail = gloss:find("^%[%[(.)([^|%]]*)|(.)([^%]]*)%]%]") -- Remove [[foo|Foo]] if link_end ~= nil and link_dest_tail == link_face_tail and link_face_head:lower() == link_dest_head then gloss = "[[" .. link_dest_head .. link_dest_tail .. gloss:sub(link_end - 1) end gloss = preprocess(frame, gloss) if copy_sortkey then sort = sortkey_most_frequent end local formatted_senseid = "" local formatted_senseid_close = "" if id ~= nil then formatted_senseid = senseid(language, id, "span") if formatted_senseid:find("<span") then formatted_senseid_close = "</span>" end end local formatted_categories = args.nocat and "" or ( ((next(cats ) == nil) and "" or frame:expandTemplate({title = "cat", args = {language_code, unpack(cats )}})) .. ((next(cats_cln) == nil) and "" or frame:expandTemplate({title = "cln", args = {language_code, unpack(cats_cln)}})) .. ((next(cats_top) == nil) and "" or frame:expandTemplate({title = "top", args = {language_code, unpack(cats_top)}})) ) -- l10n: 中文動詞不加 to -- local formatted_to = to and "to " or "" local formatted_to = "" local formatted_definition if generator ~= nil then local data = { frame = frame, lang = language, source = source, source_lang = source_lang, id = id, sort = sort, nocat = args.nocat, no_gloss = no_gloss, gloss = gloss, formatted_to = formatted_to, } formatted_definition = generator(data) nolb = data.nolb or nolb else local formatted_link = full_link{term = source, lang = source_lang, id = id} -- l10n: 移除全形括號前的空格 -- local formatted_gloss = no_gloss and "" or (" " .. gloss_left .. gloss .. gloss_right) local formatted_gloss = no_gloss and "" or (gloss_left .. gloss .. gloss_right) formatted_definition = formatted_to .. formatted_link .. formatted_gloss end nolb = args.nolb or nolb local labels_to_ignore = nil local ignore_all_labels = false if nolb then if nolb == "+" or nolb == "1" or nolb == "*" then ignore_all_labels = true else labels_to_ignore = split_labels(nolb) end end local this_labels = deep_copy(labels) if not ignore_all_labels then copy_unnamed_args_maybe_except_code(this_labels, found_labels, labels_to_ignore, 1) end local formatted_labels = (next(this_labels) == nil) and "" or (show_labels{labels = this_labels, lang = language, sort = sort} .. " ") insert(retlines, formatted_senseid .. formatted_categories .. formatted_labels .. formatted_definition .. formatted_senseid_close .. (args.dot and "。" or "")) end return concat(retlines, "\n" .. (args.indent or "#") .. " ") end return export 7k9zij5wlmlk29s5oyzjgf9c3zmpnjs welkne 0 3438650 9759390 2026-05-14T12:39:15Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==中古英語== {{was fwotd|enm|2026|5月|18日}} ===其他形式=== * {{alter|enm|welken|welkene|welcon|welkyn}} * {{alter|enm|walcne|walken|walkene|walkne|walkon|walkyn|walkyne||EA|ES|WM}} * {{alter|enm|weolcne|weolkene|weolkne|weolkyn|wolcne|wolken|wolkene|wolkne|wolkon|wolkyn||S|WM}} ===詞源=== {{etymid|enm|天空}} {{inh+|enm|ang|wolcnu}},{{m|ang|wolcen}}、{{m|ang|wolcn}} 的複數,{{inh+|enm|gmw-pro|*wolkn}}。 帶有 {{IPAch…」的新頁面 9759390 wikitext text/x-wiki ==中古英語== {{was fwotd|enm|2026|5月|18日}} ===其他形式=== * {{alter|enm|welken|welkene|welcon|welkyn}} * {{alter|enm|walcne|walken|walkene|walkne|walkon|walkyn|walkyne||EA|ES|WM}} * {{alter|enm|weolcne|weolkene|weolkne|weolkyn|wolcne|wolken|wolkene|wolkne|wolkon|wolkyn||S|WM}} ===詞源=== {{etymid|enm|天空}} {{inh+|enm|ang|wolcnu}},{{m|ang|wolcen}}、{{m|ang|wolcn}} 的複數,{{inh+|enm|gmw-pro|*wolkn}}。 帶有 {{IPAchar|/ɛ/}} 的形式反映了古英語旁系形式 {{m|ang||*welcn}}、{{m|ang||*welcne}},或者是從 {{IPAchar|/wɔ/}} 到 {{IPAchar|/wɛ/}} 的異化變化(西密德蘭方言為 {{IPAchar|/wœ/}};對比 {{m|enm|dwele}}、{{m|enm|Wednesday}});帶有 {{IPAchar|/ɔ/}} 的中古英語形式可能反映了這種變化的進一步發展,而不是{{m+|ang|wolcn}} 元音的直接延續。在西密德蘭,帶有 {{IPAchar|/a/}} 的形式反映了麥西亞古英語在唇音與 {{IPAchar|/l/}}、{{IPAchar|/r/}} 之間從 {{IPAchar|/o/}} 到 {{IPAchar|/ɑ/}} 的發展(參見 {{m|enm|morwe}}),而在東盎格利亞和埃塞克斯,它們大概反映了後來更為局限的從 {{IPAchar|/wɔl/}} 到 {{IPAchar|/wal/}} 的發展。 ===發音=== * {{IPA|enm|/ˈwɛlkən/|/ˈwɛlk(ə)nə/}} * {{IPA|enm|/ˈwalkən/|/ˈwalk(ə)nə/|aa=<<EA>>, <<ES>>, <<WM>>}} * {{IPA|enm|/ˈwœlkən/|/ˈwœlk(ə)nə/|/ˈwɔlkən/|/ˈwɔlk(ə)nə/|aa=<<S>>, <<WM>>}} ===名詞=== {{enm-noun|-}} # [[高空]],[[大氣層]]{{gloss|[[天氣]]現象發生的地方}} # 從[[地球]]上[[可見]]的[[外太空]];[[蒼穹]],[[天空]] #* {{RQ:Chaucer Canterbury Tales|title=Clerk's Tale|section=part 6|folio=liiii|verso=1|passage=Thus hath this pytous day a blyſful ende / For euery man & woman doth hys myght / Thys daye in myrth and reuel to dyſpende / Tyl on the '''welken''' ſhone the ſterres bryght / For more ſolempne in euery mannes ſyght / Thys feeſt was, and greater of coſtage / Then was the reuel of her mariage|t=因此這令人憐憫的一日迎來了幸福的終結 / 因為所有男女皆竭盡全力 / 在歡笑與狂歡中度過此日 / 直到'''蒼穹'''中閃耀著明亮的群星 / 因為在眾人眼中,這場筵席 / 顯得更加莊重,花費亦更為巨大 / 甚至勝過她出嫁時的狂歡}} # {{lb|enm|中世紀|_|宇宙學|nocat=1}} 其中一個[[天球]] # {{tlb|enm|Early ME}} [[雲]]{{gloss|[[水滴]]的[[聚集體]]}} ====派生語彙==== * {{desc|en|welkin|qq=文學}} ====參考資料==== * {{R:MED Online|welken|n|MED52126}} {{C|enm|天文學|大氣|天氣}} 18gjdktclvxc84ll4bdob5k3g53c4kk 9759391 9759390 2026-05-14T12:39:41Z TongcyDai 53191 9759391 wikitext text/x-wiki ==中古英語== {{was fwotd|enm|2026|5月|18日}} ===其他形式=== * {{alter|enm|welken|welkene|welcon|welkyn}} * {{alter|enm|walcne|walken|walkene|walkne|walkon|walkyn|walkyne||EA|ES|WM}} * {{alter|enm|weolcne|weolkene|weolkne|weolkyn|wolcne|wolken|wolkene|wolkne|wolkon|wolkyn||S|WM}} ===詞源=== {{etymid|enm|天空}} {{inh+|enm|ang|wolcnu}},{{m|ang|wolcen}}、{{m|ang|wolcn}} 的複數,{{inh+|enm|gmw-pro|*wolkn}}。 帶有 {{IPAchar|/ɛ/}} 的形式反映了古英語旁系形式 {{m|ang||*welcn}}、{{m|ang||*welcne}},或者是從 {{IPAchar|/wɔ/}} 到 {{IPAchar|/wɛ/}} 的異化變化(西密德蘭方言為 {{IPAchar|/wœ/}};對比 {{m|enm|dwele}}、{{m|enm|Wednesday}});帶有 {{IPAchar|/ɔ/}} 的中古英語形式可能反映了這種變化的進一步發展,而不是{{m+|ang|wolcn}} 元音的直接延續。在西密德蘭,帶有 {{IPAchar|/a/}} 的形式反映了麥西亞古英語在唇音與 {{IPAchar|/l/}}、{{IPAchar|/r/}} 之間從 {{IPAchar|/o/}} 到 {{IPAchar|/ɑ/}} 的發展(參見 {{m|enm|morwe}}),而在東盎格利亞和埃塞克斯,它們大概反映了後來更為局限的從 {{IPAchar|/wɔl/}} 到 {{IPAchar|/wal/}} 的發展。 ===發音=== * {{IPA|enm|/ˈwɛlkən/|/ˈwɛlk(ə)nə/}} * {{IPA|enm|/ˈwalkən/|/ˈwalk(ə)nə/|aa=<<EA>>, <<ES>>, <<WM>>}} * {{IPA|enm|/ˈwœlkən/|/ˈwœlk(ə)nə/|/ˈwɔlkən/|/ˈwɔlk(ə)nə/|aa=<<S>>, <<WM>>}} ===名詞=== {{enm-noun|-}} # [[高空]],[[大氣層]]{{gloss|[[天氣]]現象發生的地方}} # 從[[地球]]上[[可見]]的[[外太空]];[[蒼穹]],[[天空]] #* {{RQ:Chaucer Canterbury Tales|title=Clerk's Tale|section=part 6|folio=liiii|verso=1|passage=Thus hath this pytous day a blyſful ende / For euery man & woman doth hys myght / Thys daye in myrth and reuel to dyſpende / Tyl on the '''welken''' ſhone the ſterres bryght / For more ſolempne in euery mannes ſyght / Thys feeſt was, and greater of coſtage / Then was the reuel of her mariage|t=因此這令人憐憫的一日迎來了幸福的終結 / 因為所有男女皆竭盡全力 / 在歡笑與狂歡中度過此日 / 直到'''蒼穹'''中閃耀著明亮的群星 / 因為在眾人眼中,這場筵席 / 顯得更加莊重,花費亦更為巨大 / 甚至勝過她出嫁時的狂歡}} # {{lb|enm|中世紀|_|宇宙學|nocat=1}} [[天球]] # {{tlb|enm|Early ME}} [[雲]]{{gloss|[[水滴]]的[[聚集體]]}} ====派生語彙==== * {{desc|en|welkin|qq=文學}} ====參考資料==== * {{R:MED Online|welken|n|MED52126}} {{C|enm|天文學|大氣|天氣}} 0vw72oihfot05ei2olj4g69epbwyygc Wiktionary:外語每日一詞/2026年/5月18日 4 3438651 9759392 2026-05-14T12:40:20Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{FWOTD|enm|welkne|名詞|2026|5月|18日| # [[高空]],[[大氣層]]{{gloss|[[天氣]]現象發生的地方}} # 從[[地球]]上[[可見]]的[[外太空]];[[蒼穹]],[[天空]] # {{lb|enm|中世紀|_|宇宙學|nocat=1}} [[天球]] # {{tlb|enm|Early ME}} [[雲]]{{gloss|[[水滴]]的[[聚集體]]}} }}」的新頁面 9759392 wikitext text/x-wiki {{FWOTD|enm|welkne|名詞|2026|5月|18日| # [[高空]],[[大氣層]]{{gloss|[[天氣]]現象發生的地方}} # 從[[地球]]上[[可見]]的[[外太空]];[[蒼穹]],[[天空]] # {{lb|enm|中世紀|_|宇宙學|nocat=1}} [[天球]] # {{tlb|enm|Early ME}} [[雲]]{{gloss|[[水滴]]的[[聚集體]]}} }} gpkpp9zixt19aprrjywjv9d4schs4p7 filandón 0 3438652 9759393 2026-05-14T12:46:28Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==阿斯圖里亞斯語== {{was fwotd|ast|2026|5月|19日}} [[File:Filandón, por Luis Álvarez Catalá.jpg|thumb|路易斯·阿爾瓦雷斯·卡塔拉所作的《Filandón》(1872)]] ===詞源=== 源自 {{af|ast|filar|-ón}}。 ===發音=== {{ast-pr}} ===名詞=== {{ast-noun|m|filandones}} (或 '''{{l|ast|filandonos}}''') # {{lb|ast|historical|尤指女性}} [[紡紗]]與[[交際]]的[[晚間]][[聚會]] #: {{syn|ast|filaderu|fil…」的新頁面 9759393 wikitext text/x-wiki ==阿斯圖里亞斯語== {{was fwotd|ast|2026|5月|19日}} [[File:Filandón, por Luis Álvarez Catalá.jpg|thumb|路易斯·阿爾瓦雷斯·卡塔拉所作的《Filandón》(1872)]] ===詞源=== 源自 {{af|ast|filar|-ón}}。 ===發音=== {{ast-pr}} ===名詞=== {{ast-noun|m|filandones}} (或 '''{{l|ast|filandonos}}''') # {{lb|ast|historical|尤指女性}} [[紡紗]]與[[交際]]的[[晚間]][[聚會]] #: {{syn|ast|filaderu|fila|filadoriu|q3=西部}} #* {{quote-book|ast|title=Tiempos de Nublina|year=2004|author=Xosé María Rodríguez|location=(Patsuezu)|passage=Aiquí dientro faíase la mayor parte la vida porque’l cuartón yera too: ḷḷariega ya comedor; ḷḷugar d’esfoyaza ya matanza, au se curaba l’adobu ya onde s’axuntaba la vecindá al '''filandón''' nas ḷḷargas tardes-nueites de la seronda yal iviernu.|t=這裡發生了生活的大部分,因為主房間就是一切:是廚房和餐廳,是剝葉子和屠宰的地方,醃肉在這裡醃製,在秋冬的漫漫長夜裡,鄰居們聚集在這裡參加'''晚間聚會 '''。}} # 於家中舉辦的[[晚間]][[聚會]]或[[社交]][[活動]],尤見於冬季 # 一種大眾參與的[[舞蹈]],常見於[[婚禮]]等大型活動 ===延伸閱讀=== * {{R:ast:DGLA}} * {{R:ast:DALLA}} kfekraism3l7ajfirdwdyphn7ko574m Wiktionary:外語每日一詞/2026年/5月19日 4 3438653 9759394 2026-05-14T12:47:04Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{FWOTD|ast|filandón|名詞|2026|5月|19日| # {{lb|ast|historical|尤指女性}} [[紡紗]]與[[交際]]的[[晚間]][[聚會]] # 於家中舉辦的[[晚間]][[聚會]]或[[社交]][[活動]],尤見於冬季 # 一種大眾參與的[[舞蹈]],常見於[[婚禮]]等大型活動 }}」的新頁面 9759394 wikitext text/x-wiki {{FWOTD|ast|filandón|名詞|2026|5月|19日| # {{lb|ast|historical|尤指女性}} [[紡紗]]與[[交際]]的[[晚間]][[聚會]] # 於家中舉辦的[[晚間]][[聚會]]或[[社交]][[活動]],尤見於冬季 # 一種大眾參與的[[舞蹈]],常見於[[婚禮]]等大型活動 }} 6e8bv84lv79zobekwfau9zzua27ts16 filandones 0 3438654 9759395 2026-05-14T12:47:18Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==阿斯圖里亞斯語== ===名詞=== {{head|ast|名詞變格形}} # {{plural of|ast|filandón}}」的新頁面 9759395 wikitext text/x-wiki ==阿斯圖里亞斯語== ===名詞=== {{head|ast|名詞變格形}} # {{plural of|ast|filandón}} s2nx0tzrwgwd0vniyuhzthn6e3pz1pg Tân Bắc 0 3438655 9759404 2026-05-14T14:00:22Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==越南語== ===詞源=== {{vi-etym-sino|新北}}。 ===發音=== {{vi-IPA}} ===專有名詞=== {{vi-proper noun|head=[[tân|Tân]] [[bắc|Bắc]]}} # {{tcl|vi|新北|id=Q244898}}」的新頁面 9759404 wikitext text/x-wiki ==越南語== ===詞源=== {{vi-etym-sino|新北}}。 ===發音=== {{vi-IPA}} ===專有名詞=== {{vi-proper noun|head=[[tân|Tân]] [[bắc|Bắc]]}} # {{tcl|vi|新北|id=Q244898}} l72h9lakeaibiunvvsansczmk3hlk4b Category:漢語 臺灣地名 14 3438656 9759410 2026-05-14T14:21:01Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{auto cat}}」的新頁面 9759410 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx 노란색 0 3438657 9759420 2026-05-14T14:57:43Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==朝鮮語== ===詞源=== 源自 {{compound|ko|노란|t1=黄色|pos1={{m|ko|노랗다}}的現在時限定詞形式|색(色)|t2=颜色}}。 ===發音=== {{ko-IPA}} ===名詞=== {{ko-noun}} # [[黃色]] #: {{color panel|FFFF00}} ===參見=== {{table:colors/ko}} {{C|ko|彩虹顏色|黃色}}」的新頁面 9759420 wikitext text/x-wiki ==朝鮮語== ===詞源=== 源自 {{compound|ko|노란|t1=黄色|pos1={{m|ko|노랗다}}的現在時限定詞形式|색(色)|t2=颜色}}。 ===發音=== {{ko-IPA}} ===名詞=== {{ko-noun}} # [[黃色]] #: {{color panel|FFFF00}} ===參見=== {{table:colors/ko}} {{C|ko|彩虹顏色|黃色}} 5ohbwvj2rbsvge18ot51xy166k8lye3 Category:漢語 阿爾及利亞 14 3438658 9759446 2026-05-14T16:56:42Z TongcyBot 83009 養貓 9759446 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Mexico City 0 3438659 9759448 2026-05-14T17:13:13Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==英語== {{wp}} {{commonscat}} ===詞源=== {{cal|en|es-MX|Ciudad de México}}。 ===發音=== * {{IPA|en|/ˈmɛk.sɪ.kəʊ sɪti/|a=UK}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-Mexico City.wav|a=Southern England}} * {{IPA|en|/ˈmɛk.sɪ.koʊ sɪɾi/|a=US}} ===專有名詞=== {{en-prop|head=[[Mexico]] {{U|city}}}} # {{tcl|en|墨西哥城|id=Q1489}} #: {{syn|en|Mexico<q:罕用>}} #* {{quote-book |en |year=1971 |author=w:Lyndon Johnson |chap…」的新頁面 9759448 wikitext text/x-wiki ==英語== {{wp}} {{commonscat}} ===詞源=== {{cal|en|es-MX|Ciudad de México}}。 ===發音=== * {{IPA|en|/ˈmɛk.sɪ.kəʊ sɪti/|a=UK}} * {{audio|en|LL-Q1860 (eng)-Vealhurl-Mexico City.wav|a=Southern England}} * {{IPA|en|/ˈmɛk.sɪ.koʊ sɪɾi/|a=US}} ===專有名詞=== {{en-prop|head=[[Mexico]] {{U|city}}}} # {{tcl|en|墨西哥城|id=Q1489}} #: {{syn|en|Mexico<q:罕用>}} #* {{quote-book |en |year=1971 |author=w:Lyndon Johnson |chapter=The New Age of Regionalism |title=w:The Vantage Point |url=https://archive.org/details/vantagepointpers00john/ |publisher=w:Holt, Reinhart & Winston |ISBN=0-03-084492-4 |LCCN=74-102146 |OCLC=1067880747 |page=348 |pageurl=https://archive.org/details/vantagepointpers00john/page/348/ |text=I went to '''Mexico City''' on April 15, 1966, to unveil a statue of Abraham Lincoln, who had been a contemporary of Mexican leader Benito Juarez and was revered in Mexico, as in so many other nations.}} #* {{quote-journal|en|author=Michael Snyder|title=A Guide to Guadalajara, Mexico’s City of Makers|magazine=w:The New York Times Style Magazine|url=https://www.nytimes.com/2023/11/17/t-magazine/locals-guide-guadalajara-mexico.html|date=2023-11-17|passage=The writer Juan Rulfo, whose 1955 novel, “Pedro Páramo,” still stands as the central monument of modern Mexican literature, grew up in Jalisco and vividly depicted its arid, sun-blasted landscapes in his writing, while the architect Luis Barragán, who moved from Guadalajara to '''Mexico City''' in the 1930s, carried with him an appreciation for his home state’s cloisters, haciendas and humble country buildings, which he translated in his own work as austere, inscrutable volumes of stucco.|archiveurl=https://archive.ph/Zam8s|archivedate=2023-11-17}} ====派生詞彙==== * {{l|en|Mexico City policy}} ====派生語彙==== * {{desc|he|מֶקְסִיקוֹ סִיטִי|tr=meksiko siti|bor=1}} * {{desc|ja|メキシコシティ|tr=Mekishiko Shiti|bor=1}} * {{desc|ko|멕시코시티|bor=1}} * {{desc|th|เม็กซิโกซิตี้|tr=mék-sí-goo-sí-dtii|bor=1}} ===參見=== * {{l|en|chilango}} {{table:Mexico/en}} ==丹麥語== ===專有名詞=== {{head|da|專有名詞|head=Mexico City}} # {{tcl|da|墨西哥城|id=Q1489}} ==瑞典語== ===專有名詞=== {{sv-proper noun|n|head=Mexico City}} # {{tcl|da|墨西哥城|id=Q1489}} k429mudw8xmo0obnss41jtx1tpicl40 Category:源自墨西哥西班牙語的英語仿譯詞 14 3438660 9759450 2026-05-14T17:13:29Z TongcyBot 83009 養貓 9759450 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:派生自墨西哥西班牙語的葡萄牙語詞 14 3438661 9759452 2026-05-14T17:14:08Z TongcyBot 83009 養貓 9759452 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:源自墨西哥西班牙語的葡萄牙語仿譯詞 14 3438662 9759453 2026-05-14T17:14:13Z TongcyBot 83009 養貓 9759453 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Ciudad de México 0 3438663 9759455 2026-05-14T17:14:42Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{also|Ciudad de Mexico}} ==塞爾維亞-克羅地亞語== {{wp|sh:}} ===詞源=== {{bor+|sh|es|Ciudad de México}}。 ===專有名詞=== {{sh-propn||m|tr=Сјудад де Мехико}} # {{tcl|sh|墨西哥城|id=Q1489}} #: {{syn|sh|Meksiko Siti|Sjudad de Mehiko|Ciudad de Mexico}} ====相關詞彙==== * {{l|sh|Meksiko}} ==西班牙語== {{wp|es:}} ===發音=== {{es-pr|Ciudad de Méjico}} ===專有名詞=== {{es-prop|f|head=ciudad|C…」的新頁面 9759455 wikitext text/x-wiki {{also|Ciudad de Mexico}} ==塞爾維亞-克羅地亞語== {{wp|sh:}} ===詞源=== {{bor+|sh|es|Ciudad de México}}。 ===專有名詞=== {{sh-propn||m|tr=Сјудад де Мехико}} # {{tcl|sh|墨西哥城|id=Q1489}} #: {{syn|sh|Meksiko Siti|Sjudad de Mehiko|Ciudad de Mexico}} ====相關詞彙==== * {{l|sh|Meksiko}} ==西班牙語== {{wp|es:}} ===發音=== {{es-pr|Ciudad de Méjico}} ===專有名詞=== {{es-prop|f|head=[[ciudad|Ciudad]] [[de]] [[México]]}} # {{tcl|es|墨西哥城|id=Q1489}} #: {{syn|es|México D.F.|CDMX<q:abbreviation>}} #* {{quote-journal|es|author=Sean Lyngaas|title=El cártel de Sinaloa rastreó con un hacker a un funcionario del FBI y mató a posibles informantes, según Gobierno de EE.UU.|magazine=w:CNN en Español|url=https://cnnespanol.cnn.com/2025/06/28/eeuu/cartel-sinaloa-hacker-fbi-informantes-trax|date=2025-06-28|passage=Un cártel de droga mexicano contrató a un hacker para vigilar los movimientos de un alto funcionario del FBI en '''Ciudad de México''' en 2018 o incluso antes, recopilando información del sistema de cámaras de la ciudad que permitió al cártel matar a posibles informantes del FBI, según dijo en un nuevo informe el inspector general del Departamento de Justicia.|translation=}} ===參見=== {{table:Mexico/es}} 4lnawsfmy7wy7iqv1r5crwx3xhdq0v2 9759457 9759455 2026-05-14T17:14:59Z TongcyDai 53191 9759457 wikitext text/x-wiki {{also|Ciudad de Mexico}} ==塞爾維亞-克羅地亞語== {{wp|sh:}} ===詞源=== {{bor+|sh|es|Ciudad de México}}。 ===專有名詞=== {{sh-propn||m|tr=Сјудад де Мехико}} # {{tcl|sh|墨西哥城|id=Q1489}} #: {{syn|sh|Meksiko Siti|Sjudad de Mehiko|Ciudad de Mexico}} ====相關詞彙==== * {{l|sh|Meksiko}} ==西班牙語== {{wp|es:}} ===發音=== {{es-pr|Ciudad de Méjico}} ===專有名詞=== {{es-prop|f|head=[[ciudad|Ciudad]] [[de]] [[México]]}} # {{tcl|es|墨西哥城|id=Q1489}} #: {{syn|es|México D.F.|CDMX<q:縮寫>}} #* {{quote-journal|es|author=Sean Lyngaas|title=El cártel de Sinaloa rastreó con un hacker a un funcionario del FBI y mató a posibles informantes, según Gobierno de EE.UU.|magazine=w:CNN en Español|url=https://cnnespanol.cnn.com/2025/06/28/eeuu/cartel-sinaloa-hacker-fbi-informantes-trax|date=2025-06-28|passage=Un cártel de droga mexicano contrató a un hacker para vigilar los movimientos de un alto funcionario del FBI en '''Ciudad de México''' en 2018 o incluso antes, recopilando información del sistema de cámaras de la ciudad que permitió al cártel matar a posibles informantes del FBI, según dijo en un nuevo informe el inspector general del Departamento de Justicia.|translation=}} ===參見=== {{table:Mexico/es}} 0vfm55000h3xqvyb9q1j5q01u51ufdd Template:Es-prop 10 3438664 9759456 2026-05-14T17:14:58Z TongcyDai 53191 重定向页面至[[Template:Es-proper noun]] 9759456 wikitext text/x-wiki #REDIRECT [[Template:es-proper noun]] 7tow3mbdyprc7yvumpxybt599vyh5ew မၚ်္ဂလ 0 3438665 9759460 2026-05-14T17:18:36Z 咽頭べさ 92223 [[w:WP:AES|←]]建立內容為「{{also|မင်္ဂလ}} ==孟語== ===詞源=== {{bor+|mnw|pi|မၚ်္ဂလ}} ===發音=== * {{IPA|mnw|/mɛ̀ɑŋɡɛ̆̀ɬɛ̆̀/}} * {{audio|mnw|LL-Q13349 (mnw)-Intobesa (咽頭べさ)-{{PAGENAME}}.wav}} ===名詞=== {{head|mnw|名词}} # [[仪式]],[[典礼]] # [[曼荼羅]] ==巴利语== ===其他形式=== {{pi-alt|Latn=maṅgala}} ===發音=== {{IPA|pi|/məŋɡələ/}} * {{audio|pi|LL-Q100271134-Intobesa (咽頭べさ)-…」的新頁面 9759460 wikitext text/x-wiki {{also|မင်္ဂလ}} ==孟語== ===詞源=== {{bor+|mnw|pi|မၚ်္ဂလ}} ===發音=== * {{IPA|mnw|/mɛ̀ɑŋɡɛ̆̀ɬɛ̆̀/}} * {{audio|mnw|LL-Q13349 (mnw)-Intobesa (咽頭べさ)-{{PAGENAME}}.wav}} ===名詞=== {{head|mnw|名词}} # [[仪式]],[[典礼]] # [[曼荼羅]] ==巴利语== ===其他形式=== {{pi-alt|Latn=maṅgala}} ===發音=== {{IPA|pi|/məŋɡələ/}} * {{audio|pi|LL-Q100271134-Intobesa (咽頭べさ)-မၚ်္ဂလ.wav}} ===形容词=== {{pi-adj}} # {{pi-sc||maṅgala}} ===名詞=== {{pi-noun|n}} # {{pi-sc||maṅgala}} 3j3h6axbzv92nrcfc5a77vlaemv4tcc 9759719 9759460 2026-05-15T02:37:10Z Sayonzei 40728 9759719 wikitext text/x-wiki {{also|မင်္ဂလ}} ==孟語== ===詞源=== {{bor+|mnw|pi|မၚ်္ဂလ}}。 ===發音=== * {{IPA|mnw|/mɛ̀ɑŋɡɛ̆̀ɬɛ̆̀/}} * {{audio|mnw|LL-Q13349 (mnw)-Intobesa (咽頭べさ)-{{PAGENAME}}.wav}} ===名詞=== {{head|mnw|名词}} # [[仪式]],[[典礼]] # [[曼荼羅]] ==巴利语== ===其他形式=== {{pi-alt|Latn=maṅgala}} ===發音=== * {{IPA|pi|/məŋɡələ/}} * {{audio|pi|LL-Q100271134-Intobesa (咽頭べさ)-မၚ်္ဂလ.wav}} ===形容词=== {{pi-adj}} # {{pi-sc||maṅgala}} ===名詞=== {{pi-noun|n}} # {{pi-sc||maṅgala}} 7ezoviuf9y9fdgjh80jzhbj7xbfzeli 9759720 9759719 2026-05-15T02:42:24Z Sayonzei 40728 /* 名詞 */ 9759720 wikitext text/x-wiki {{also|မင်္ဂလ}} ==孟語== ===詞源=== {{bor+|mnw|pi|မၚ်္ဂလ}}。 ===發音=== * {{IPA|mnw|/mɛ̀ɑŋɡɛ̆̀ɬɛ̆̀/}} * {{audio|mnw|LL-Q13349 (mnw)-Intobesa (咽頭べさ)-{{PAGENAME}}.wav}} ===名詞=== {{head|mnw|名词}} # [[仪式]],[[典礼]] # [[曼伽羅]] ==巴利语== ===其他形式=== {{pi-alt|Latn=maṅgala}} ===發音=== * {{IPA|pi|/məŋɡələ/}} * {{audio|pi|LL-Q100271134-Intobesa (咽頭べさ)-မၚ်္ဂလ.wav}} ===形容词=== {{pi-adj}} # {{pi-sc||maṅgala}} ===名詞=== {{pi-noun|n}} # {{pi-sc||maṅgala}} p6qudcog1uug90aiot7cqiicgrilqbu 9759722 9759720 2026-05-15T02:45:10Z Sayonzei 40728 /* 名詞 */ 9759722 wikitext text/x-wiki {{also|မင်္ဂလ}} ==孟語== ===詞源=== {{bor+|mnw|pi|မၚ်္ဂလ}}。 ===發音=== * {{IPA|mnw|/mɛ̀ɑŋɡɛ̆̀ɬɛ̆̀/}} * {{audio|mnw|LL-Q13349 (mnw)-Intobesa (咽頭べさ)-{{PAGENAME}}.wav}} ===名詞=== {{head|mnw|名词}} # [[仪式]],[[典礼]] # {{lb|mnw|佛教}} [[吉祥佛]] ==巴利语== ===其他形式=== {{pi-alt|Latn=maṅgala}} ===發音=== * {{IPA|pi|/məŋɡələ/}} * {{audio|pi|LL-Q100271134-Intobesa (咽頭べさ)-မၚ်္ဂလ.wav}} ===形容词=== {{pi-adj}} # {{pi-sc||maṅgala}} ===名詞=== {{pi-noun|n}} # {{pi-sc||maṅgala}} asqhf9t4bq9ynk3onpevtf6wa1c8lsc မင်္ဂလ 0 3438666 9759461 2026-05-14T17:20:30Z 咽頭べさ 92223 [[w:WP:AES|←]]建立內容為「{{also|မၚ်္ဂလ}} ==巴利语== ===其他形式=== {{pi-alt|Latn=maṅgala}} ===發音=== {{IPA|pi|/məŋɡələ/}} * {{audio|pi|LL-Q100271134-Intobesa (咽頭べさ)-မၚ်္ဂလ.wav}} ===形容词=== {{pi-adj}} # {{pi-sc||maṅgala}} ===名詞=== {{pi-noun|n}} # {{pi-sc||maṅgala}}」的新頁面 9759461 wikitext text/x-wiki {{also|မၚ်္ဂလ}} ==巴利语== ===其他形式=== {{pi-alt|Latn=maṅgala}} ===發音=== {{IPA|pi|/məŋɡələ/}} * {{audio|pi|LL-Q100271134-Intobesa (咽頭べさ)-မၚ်္ဂလ.wav}} ===形容词=== {{pi-adj}} # {{pi-sc||maṅgala}} ===名詞=== {{pi-noun|n}} # {{pi-sc||maṅgala}} 6yk9u5khgn695sj5mvgmbvmc2gjdbkw 9759721 9759461 2026-05-15T02:45:06Z Sayonzei 40728 9759721 wikitext text/x-wiki {{also|မၚ်္ဂလ}} ==緬甸語== ===詞源=== {{bor+|my|pi|Maṅgala}}。{{doublet|my|မင်္ဂလာ}}。 ===發音=== {{my-IPA|မင်္ဂ'လ}} ===專有名詞=== {{my-proper noun}} # {{lb|my|佛教}} [[吉祥佛]] ====近義詞==== *{{l|my|မင်္ဂလဘုရား}} {{c|my|佛}} ==巴利语== ===其他形式=== {{pi-alt|Latn=maṅgala}} ===發音=== * {{IPA|pi|/məŋɡələ/}} * {{audio|pi|LL-Q100271134-Intobesa (咽頭べさ)-မၚ်္ဂလ.wav}} ===形容词=== {{pi-adj}} # {{pi-sc||maṅgala}} ====變格==== {{pi-decl-noun|g=m}} {{pi-decl-noun|မင်္ဂလာ|ā|f}} {{pi-decl-noun|g=n}} ===名詞=== {{pi-noun|n}} # {{pi-sc||maṅgala}} n92m0t0u7on5n6rhx0ff1pfcxsrnolk Category:Rhymes:加利西亞語/ambja 14 3438667 9759467 2026-05-14T20:47:20Z TongcyBot 83009 養貓 9759467 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:加利西亞語/ambja/2音節 14 3438668 9759468 2026-05-14T20:47:26Z TongcyBot 83009 養貓 9759468 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:斯洛伐克語/ia/3音節 14 3438669 9759469 2026-05-14T20:47:31Z TongcyBot 83009 養貓 9759469 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:中瓦斯特卡納瓦特爾語 贊比亞 14 3438670 9759470 2026-05-14T20:47:38Z TongcyBot 83009 養貓 9759470 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:中納瓦特爾語 贊比亞 14 3438671 9759471 2026-05-14T20:47:45Z TongcyBot 83009 養貓 9759471 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:丹麥語 贊比亞 14 3438672 9759472 2026-05-14T20:47:51Z TongcyBot 83009 養貓 9759472 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:加利西亞語 贊比亞 14 3438673 9759473 2026-05-14T20:48:02Z TongcyBot 83009 養貓 9759473 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:匈牙利語 贊比亞 14 3438674 9759474 2026-05-14T20:48:09Z TongcyBot 83009 養貓 9759474 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:印尼語 贊比亞 14 3438675 9759475 2026-05-14T20:48:16Z TongcyBot 83009 養貓 9759475 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:意大利語 贊比亞 14 3438676 9759476 2026-05-14T20:48:24Z TongcyBot 83009 養貓 9759476 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:拉丁語 外名 14 3438677 9759477 2026-05-14T20:48:32Z TongcyBot 83009 養貓 9759477 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:拉丁語 贊比亞 14 3438678 9759478 2026-05-14T20:48:43Z TongcyBot 83009 養貓 9759478 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:斯洛伐克語 贊比亞 14 3438679 9759479 2026-05-14T20:48:51Z TongcyBot 83009 養貓 9759479 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:斯瓦希里語 贊比亞 14 3438680 9759480 2026-05-14T20:48:59Z TongcyBot 83009 養貓 9759480 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:新挪威語 贊比亞 14 3438681 9759481 2026-05-14T20:49:06Z TongcyBot 83009 養貓 9759481 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:書面挪威語 贊比亞 14 3438682 9759482 2026-05-14T20:49:14Z TongcyBot 83009 養貓 9759482 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:波蘭語 贊比亞 14 3438683 9759483 2026-05-14T20:49:21Z TongcyBot 83009 養貓 9759483 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:瑞典語 贊比亞 14 3438684 9759484 2026-05-14T20:49:32Z TongcyBot 83009 養貓 9759484 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:英語 贊比亞 14 3438685 9759485 2026-05-14T20:49:40Z TongcyBot 83009 養貓 9759485 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:荷蘭語 贊比亞 14 3438686 9759486 2026-05-14T20:49:47Z TongcyBot 83009 養貓 9759486 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:西班牙語 贊比亞 14 3438687 9759487 2026-05-14T20:49:55Z TongcyBot 83009 養貓 9759487 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:齊切瓦語 贊比亞 14 3438688 9759488 2026-05-14T20:50:02Z TongcyBot 83009 養貓 9759488 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:漢語 津巴布韋 14 3438689 9759492 2026-05-14T20:52:52Z TongcyBot 83009 養貓 9759492 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:印尼語/abwe 14 3438690 9759498 2026-05-14T20:58:21Z TongcyBot 83009 養貓 9759498 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:印尼語/abwe/3音節 14 3438691 9759499 2026-05-14T20:58:26Z TongcyBot 83009 養貓 9759499 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:修納語 津巴布韋 14 3438692 9759500 2026-05-14T20:58:32Z TongcyBot 83009 養貓 9759500 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:匈牙利語 津巴布韋 14 3438693 9759501 2026-05-14T20:58:39Z TongcyBot 83009 養貓 9759501 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:南非語 津巴布韋 14 3438694 9759502 2026-05-14T20:58:45Z TongcyBot 83009 養貓 9759502 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:印尼語 津巴布韋 14 3438695 9759503 2026-05-14T20:58:52Z TongcyBot 83009 養貓 9759503 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:意大利語 津巴布韋 14 3438696 9759504 2026-05-14T20:58:58Z TongcyBot 83009 養貓 9759504 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:捷克語 津巴布韋 14 3438697 9759505 2026-05-14T20:59:05Z TongcyBot 83009 養貓 9759505 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:斯洛伐克語 津巴布韋 14 3438698 9759506 2026-05-14T20:59:12Z TongcyBot 83009 養貓 9759506 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:斯瓦希里語 津巴布韋 14 3438699 9759507 2026-05-14T20:59:18Z TongcyBot 83009 養貓 9759507 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:新挪威語 津巴布韋 14 3438700 9759508 2026-05-14T20:59:24Z TongcyBot 83009 養貓 9759508 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:書面挪威語 津巴布韋 14 3438701 9759509 2026-05-14T20:59:31Z TongcyBot 83009 養貓 9759509 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:波蘭語 津巴布韋 14 3438702 9759510 2026-05-14T20:59:37Z TongcyBot 83009 養貓 9759510 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:派生自修納語的印尼語詞 14 3438703 9759511 2026-05-14T20:59:44Z TongcyBot 83009 養貓 9759511 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:瑞典語 津巴布韋 14 3438704 9759512 2026-05-14T20:59:50Z TongcyBot 83009 養貓 9759512 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:聰加語 國家 14 3438705 9759514 2026-05-14T20:59:56Z TongcyBot 83009 養貓 9759514 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:聰加語 名稱分類列表 14 3438706 9759515 2026-05-14T21:00:02Z TongcyBot 83009 養貓 9759515 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:聰加語 津巴布韋 14 3438707 9759516 2026-05-14T21:00:11Z TongcyBot 83009 養貓 9759516 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:聰加語專有名詞 14 3438708 9759517 2026-05-14T21:00:18Z TongcyBot 83009 養貓 9759517 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:芬蘭語 津巴布韋 14 3438709 9759518 2026-05-14T21:00:23Z TongcyBot 83009 養貓 9759518 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:英語 津巴布韋 14 3438710 9759519 2026-05-14T21:00:34Z TongcyBot 83009 養貓 9759519 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:荷蘭語 津巴布韋 14 3438711 9759520 2026-05-14T21:00:40Z TongcyBot 83009 養貓 9759520 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:齊切瓦語 津巴布韋 14 3438712 9759521 2026-05-14T21:00:46Z TongcyBot 83009 養貓 9759521 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:地理文化區域 14 3438713 9759588 2026-05-14T22:28:52Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{auto cat}}」的新頁面 9759588 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:印地語 利比亞 14 3438714 9759625 2026-05-14T23:15:33Z TongcyBot 83009 養貓 9759625 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Antarktikā 0 3438715 9759643 2026-05-14T23:34:12Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「{{also|Antarktika|Antarktíka}} ==拉脫維亞語== ===專有名詞=== {{head|lv|專有名詞變格形|g=f}} # {{infl of|lv|Antarktika||loc|s}}」的新頁面 9759643 wikitext text/x-wiki {{also|Antarktika|Antarktíka}} ==拉脫維亞語== ===專有名詞=== {{head|lv|專有名詞變格形|g=f}} # {{infl of|lv|Antarktika||loc|s}} loxfdpqh57sxeaw4gezx59onm8pqyh6 Category:丹麥語 澳大利亞 14 3438716 9759659 2026-05-14T23:54:27Z TongcyBot 83009 養貓 9759659 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:德語 澳大利亞 14 3438717 9759660 2026-05-14T23:54:36Z TongcyBot 83009 養貓 9759660 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:法語 澳大利亞 14 3438718 9759661 2026-05-14T23:54:44Z TongcyBot 83009 養貓 9759661 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:門諾低地德語 地質學 14 3438719 9759662 2026-05-14T23:54:50Z TongcyBot 83009 養貓 9759662 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:門諾低地德語 地球科學 14 3438720 9759663 2026-05-14T23:54:56Z TongcyBot 83009 養貓 9759663 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:門諾低地德語 澳大利亞 14 3438721 9759664 2026-05-14T23:55:04Z TongcyBot 83009 養貓 9759664 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:門諾低地德語 大洋洲國家 14 3438722 9759665 2026-05-14T23:55:10Z TongcyBot 83009 養貓 9759665 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:門諾低地德語 大洋洲 14 3438723 9759666 2026-05-14T23:55:16Z TongcyBot 83009 養貓 9759666 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:日語 利比亞 14 3438724 9759671 2026-05-15T00:10:12Z TongcyBot 83009 養貓 9759671 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:亞美尼亞語 利比亞 14 3438725 9759672 2026-05-15T00:10:21Z TongcyBot 83009 養貓 9759672 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:保加利亞語 利比亞 14 3438726 9759674 2026-05-15T00:10:31Z TongcyBot 83009 養貓 9759674 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:哈薩克語 利比亞 14 3438727 9759675 2026-05-15T00:10:39Z TongcyBot 83009 養貓 9759675 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:孟加拉語 利比亞 14 3438728 9759676 2026-05-15T00:10:48Z TongcyBot 83009 養貓 9759676 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:緬甸語 利比亞 14 3438729 9759678 2026-05-15T00:11:01Z TongcyBot 83009 養貓 9759678 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:傣仂語 非洲 14 3438730 9759687 2026-05-15T00:29:07Z TongcyBot 83009 養貓 9759687 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:利古里亞語 非洲 14 3438731 9759689 2026-05-15T00:30:30Z TongcyBot 83009 養貓 9759689 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:威尼斯語 非洲 14 3438732 9759690 2026-05-15T00:30:45Z TongcyBot 83009 養貓 9759690 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:阿斯圖里亞斯語/eɾika 14 3438733 9759695 2026-05-15T00:36:19Z TongcyBot 83009 養貓 9759695 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:阿斯圖里亞斯語/eɾika/4音節 14 3438734 9759696 2026-05-15T00:36:24Z TongcyBot 83009 養貓 9759696 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:利古里亞語 美國 14 3438735 9759697 2026-05-15T00:36:32Z TongcyBot 83009 養貓 9759697 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:利古里亞語 北美洲國家 14 3438736 9759698 2026-05-15T00:36:38Z TongcyBot 83009 養貓 9759698 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:利古里亞語 北美洲 14 3438737 9759699 2026-05-15T00:36:43Z TongcyBot 83009 養貓 9759699 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:利古里亞語 美洲 14 3438738 9759700 2026-05-15T00:36:49Z TongcyBot 83009 養貓 9759700 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:火山 14 3438740 9759704 2026-05-15T00:39:57Z TongcyBot 83009 養貓 9759704 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:加利西亞語 北美洲 14 3438741 9759707 2026-05-15T00:41:48Z TongcyBot 83009 養貓 9759707 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx sudamericana 0 3438742 9759709 2026-05-15T00:42:31Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==意大利語== ===形容詞=== {{head|it|形容詞變格形}} # {{adj form of|it|sudamericano||f|s}} ===名詞=== {{it-noun|f}} # {{female equivalent of|it|sudamericano}} ==西班牙語== ===發音=== {{es-pr}} ===名詞=== {{es-noun|f}} # {{female equivalent of|es|sudamericano}} ===形容詞=== {{head|es|形容詞變格形}} # {{adj form of|es|sudamericano||f|s}}」的新頁面 9759709 wikitext text/x-wiki ==意大利語== ===形容詞=== {{head|it|形容詞變格形}} # {{adj form of|it|sudamericano||f|s}} ===名詞=== {{it-noun|f}} # {{female equivalent of|it|sudamericano}} ==西班牙語== ===發音=== {{es-pr}} ===名詞=== {{es-noun|f}} # {{female equivalent of|es|sudamericano}} ===形容詞=== {{head|es|形容詞變格形}} # {{adj form of|es|sudamericano||f|s}} 4zwkht7gaul2lgjm6nc8jl0wwaiw3af sudamericani 0 3438743 9759710 2026-05-15T00:42:33Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==意大利語== ===形容詞=== {{head|it|形容詞變格形}} # {{adj form of|it|sudamericano||m|p}} ===名詞=== {{head|it|名詞變格形|g=m-p}} # {{plural of|it|sudamericano}}」的新頁面 9759710 wikitext text/x-wiki ==意大利語== ===形容詞=== {{head|it|形容詞變格形}} # {{adj form of|it|sudamericano||m|p}} ===名詞=== {{head|it|名詞變格形|g=m-p}} # {{plural of|it|sudamericano}} gvo39l6mm2t1l426hpljpybsb3iikhd sudamericane 0 3438744 9759711 2026-05-15T00:42:35Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==意大利語== ===形容詞=== {{head|it|形容詞變格形}} # {{adj form of|it|sudamericano||f|p}} ===名詞=== {{head|it|名詞變格形|g=f-p}} # {{plural of|it|sudamericana}}」的新頁面 9759711 wikitext text/x-wiki ==意大利語== ===形容詞=== {{head|it|形容詞變格形}} # {{adj form of|it|sudamericano||f|p}} ===名詞=== {{head|it|名詞變格形|g=f-p}} # {{plural of|it|sudamericana}} h28cwdxujg7qkkd6mbhrw36lpos1zir sudamericanos 0 3438745 9759712 2026-05-15T00:42:37Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==西班牙語== ===發音=== {{es-pr}} ===形容詞=== {{head|es|形容詞變格形}} # {{adj form of|es|sudamericano||m|p}} ===名詞=== {{head|es|名詞變格形|g=m-p}} # {{plural of|es|sudamericano}}」的新頁面 9759712 wikitext text/x-wiki ==西班牙語== ===發音=== {{es-pr}} ===形容詞=== {{head|es|形容詞變格形}} # {{adj form of|es|sudamericano||m|p}} ===名詞=== {{head|es|名詞變格形|g=m-p}} # {{plural of|es|sudamericano}} nwzsvc1e3yqqddp3ys60egfjhtuxmqh sudamericanas 0 3438746 9759713 2026-05-15T00:42:38Z TongcyDai 53191 [[w:WP:AES|←]]建立內容為「==西班牙語== ===發音=== {{es-pr}} ===形容詞=== {{head|es|形容詞變格形}} # {{adj form of|es|sudamericano||f|p}} ===名詞=== {{head|es|名詞變格形|g=f-p}} # {{plural of|es|sudamericana}}」的新頁面 9759713 wikitext text/x-wiki ==西班牙語== ===發音=== {{es-pr}} ===形容詞=== {{head|es|形容詞變格形}} # {{adj form of|es|sudamericano||f|p}} ===名詞=== {{head|es|名詞變格形|g=f-p}} # {{plural of|es|sudamericana}} be8j96511gwhuuqvmmbrjnbxw1qzysf Category:Rhymes:西班牙語/anas/6音節 14 3438747 9759714 2026-05-15T00:42:56Z TongcyBot 83009 養貓 9759714 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Category:Rhymes:西班牙語/anos/6音節 14 3438748 9759715 2026-05-15T00:43:03Z TongcyBot 83009 養貓 9759715 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx engatilhar 0 3438749 9759724 2026-05-15T02:59:41Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===詞源=== 源自 {{af|pt|en-|gatilho|-ar}}。和{{cog|es|engatillar}} 同源。 ===發音=== {{pt-IPA}} * {{hyph|pt|en|ga|ti|lhar}} ===動詞=== {{pt-verb}} # [[上膛]] #* {{quote-book|pt|author=José Saramago|title=Ensaio sobre a cegueira|publisher=Caminho|year=1995|passage=Nervoso, o soldado saiu da guarita '''engatilhando''' a espingarda automática e olhou na direcção do portão.|translation=士兵紧张地走…」的新頁面 9759724 wikitext text/x-wiki ==葡萄牙語== ===詞源=== 源自 {{af|pt|en-|gatilho|-ar}}。和{{cog|es|engatillar}} 同源。 ===發音=== {{pt-IPA}} * {{hyph|pt|en|ga|ti|lhar}} ===動詞=== {{pt-verb}} # [[上膛]] #* {{quote-book|pt|author=José Saramago|title=Ensaio sobre a cegueira|publisher=Caminho|year=1995|passage=Nervoso, o soldado saiu da guarita '''engatilhando''' a espingarda automática e olhou na direcção do portão.|translation=士兵紧张地走出警卫室,给自动步枪'''上了膛''',望着大门的方向。}} # {{lb|pt|比喻}} [[準備]] ====變位==== {{pt-conj}} ===延伸閱讀=== * {{R:pt:Aulete}} * {{R:pt:Infopédia}} * {{R:pt:Michaelis}} * {{R:pt:Priberam}} 1nu3rz5pe4rt4va0pr4js5mcm4vrid8 engatilhado 0 3438750 9759725 2026-05-15T02:59:48Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===分詞=== {{pt-pp}} # {{past participle of|pt|engatilhar}}」的新頁面 9759725 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{pt-pp}} # {{past participle of|pt|engatilhar}} cgm2u21i22ob16z56bhpp99tbaw6mv0 engatilhada 0 3438751 9759726 2026-05-15T03:00:11Z Sayonzei 40728 創建葡萄牙語「[[engatilhado]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9759726 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{head|pt|過去分詞變格形}} # {{feminine singular of|pt|engatilhado}} tlrxrkraf5s4w6pvqyqjqv0glj30ij9 engatilhados 0 3438752 9759727 2026-05-15T03:00:12Z Sayonzei 40728 創建葡萄牙語「[[engatilhado]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9759727 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{head|pt|過去分詞變格形}} # {{masculine plural of|pt|engatilhado}} laqllaw9udfu4bw86t6foq4zjwbao01 engatilhadas 0 3438753 9759728 2026-05-15T03:00:15Z Sayonzei 40728 創建葡萄牙語「[[engatilhado]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9759728 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{head|pt|過去分詞變格形}} # {{feminine plural of|pt|engatilhado}} mjb4zfbebhwi8zif0334drsmu62n4mt engatillar 0 3438754 9759729 2026-05-15T03:02:29Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==西班牙語== ===詞源=== 源自 {{af|es|en-|gatillo|-ar}}。和{{cog|pt|engatilhar}} 同源。 ===發音=== {{es-pr}} ===動詞=== {{es-verb-auto}} # 使(金屬板)[[咬合]] # {{lb|es|建築學}} 用扣釘[[接合]] # {{lb|es|建築學}} [[固定]](地板的撑木) # [[夾]]住(畫板) ====變位==== {{es-conj-auto}} ===延伸閱讀=== * {{R:es:DRAE}}」的新頁面 9759729 wikitext text/x-wiki ==西班牙語== ===詞源=== 源自 {{af|es|en-|gatillo|-ar}}。和{{cog|pt|engatilhar}} 同源。 ===發音=== {{es-pr}} ===動詞=== {{es-verb-auto}} # 使(金屬板)[[咬合]] # {{lb|es|建築學}} 用扣釘[[接合]] # {{lb|es|建築學}} [[固定]](地板的撑木) # [[夾]]住(畫板) ====變位==== {{es-conj-auto}} ===延伸閱讀=== * {{R:es:DRAE}} o1hqjp1dx176ijd7ngrqmh2hb3qhy7j encarquilhar 0 3438755 9759730 2026-05-15T03:04:54Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===發音=== {{pt-IPA}} * {{hyph|pt|en|car|qui|lhar}} ===動詞=== {{pt-verb}} # 起[[皺紋]],變得[[皺巴巴]]的 ====變位==== {{pt-conj}} ===延伸閱讀=== * {{R:pt:Aulete}} * {{R:pt:Priberam}}」的新頁面 9759730 wikitext text/x-wiki ==葡萄牙語== ===發音=== {{pt-IPA}} * {{hyph|pt|en|car|qui|lhar}} ===動詞=== {{pt-verb}} # 起[[皺紋]],變得[[皺巴巴]]的 ====變位==== {{pt-conj}} ===延伸閱讀=== * {{R:pt:Aulete}} * {{R:pt:Priberam}} mpbuel4xv2z0opjcodsdq4074zbfx6i encarquilhado 0 3438756 9759731 2026-05-15T03:05:13Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===發音=== {{pt-IPA}} * {{hyph|pt|en|car|qui|lha|do}} ===形容詞=== {{pt-adj}} # 起[[皺紋]]的,[[皺巴巴]]的 #: {{syn|pt|enrugado|rugoso}} ===分詞=== {{pt-pp}} # {{past participle of|pt|encarquilhar}} ===延伸閱讀=== * {{R:pt:Aulete}} * {{R:pt:Priberam}}」的新頁面 9759731 wikitext text/x-wiki ==葡萄牙語== ===發音=== {{pt-IPA}} * {{hyph|pt|en|car|qui|lha|do}} ===形容詞=== {{pt-adj}} # 起[[皺紋]]的,[[皺巴巴]]的 #: {{syn|pt|enrugado|rugoso}} ===分詞=== {{pt-pp}} # {{past participle of|pt|encarquilhar}} ===延伸閱讀=== * {{R:pt:Aulete}} * {{R:pt:Priberam}} mnw7ysr0mxyfgs0xc3kw2bimrywxyps enlanguescer 0 3438757 9759732 2026-05-15T03:22:55Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===其他形式=== * {{alt|pt|elanguescer}} ===詞源=== 源自 {{af|pt|en-|languescer}}。 ===發音=== {{pt-IPA|enlanguescêr}} ===動詞=== {{pt-verb}} # {{lb|pt|不及物|反身}} [[衰弱]],[[虛弱]],[[萎靡]] ====變位==== {{pt-conj}} ====派生詞彙==== {{col|pt|enlanguescimento|enlanguescente|enlanguescência}} ===延伸閱讀=== * {{R:pt:Aulete}} * {{R:pt:Infopédia}} * {{R:pt:Michaelis}} * {{R:pt:Pri…」的新頁面 9759732 wikitext text/x-wiki ==葡萄牙語== ===其他形式=== * {{alt|pt|elanguescer}} ===詞源=== 源自 {{af|pt|en-|languescer}}。 ===發音=== {{pt-IPA|enlanguescêr}} ===動詞=== {{pt-verb}} # {{lb|pt|不及物|反身}} [[衰弱]],[[虛弱]],[[萎靡]] ====變位==== {{pt-conj}} ====派生詞彙==== {{col|pt|enlanguescimento|enlanguescente|enlanguescência}} ===延伸閱讀=== * {{R:pt:Aulete}} * {{R:pt:Infopédia}} * {{R:pt:Michaelis}} * {{R:pt:Priberam}} gvofhrxr95ta1nh8q2gwuo53ergyh20 enlamear 0 3438758 9759733 2026-05-15T03:25:11Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===詞源=== 源自 {{af|pt|en-|lama|-ear|t2=泥}}。 ===發音=== {{pt-IPA}} * {{hyphenation|pt|en|la|me|ar}} ===動詞=== {{pt-verb}} # {{lb|pt|及物}} 使[[沾]]滿[[泥]] # {{lb|pt|及物|比喻}} [[玷污]]、[[敗壞]]……的[[名聲]] ====變位==== {{pt-conj}} ===參考資料=== * {{R:pt:Aulete}} * {{R:pt:Priberam}}」的新頁面 9759733 wikitext text/x-wiki ==葡萄牙語== ===詞源=== 源自 {{af|pt|en-|lama|-ear|t2=泥}}。 ===發音=== {{pt-IPA}} * {{hyphenation|pt|en|la|me|ar}} ===動詞=== {{pt-verb}} # {{lb|pt|及物}} 使[[沾]]滿[[泥]] # {{lb|pt|及物|比喻}} [[玷污]]、[[敗壞]]……的[[名聲]] ====變位==== {{pt-conj}} ===參考資料=== * {{R:pt:Aulete}} * {{R:pt:Priberam}} r3xqsgdpl7wjhya8kx8ox04ifb9t41g enlameado 0 3438759 9759734 2026-05-15T03:25:14Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===分詞=== {{pt-pp}} # {{past participle of|pt|enlamear}}」的新頁面 9759734 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{pt-pp}} # {{past participle of|pt|enlamear}} l4i1dgdc2bgfu8k3bnnmy1227d84bhe enlameada 0 3438760 9759735 2026-05-15T03:25:54Z Sayonzei 40728 創建葡萄牙語「[[enlameado]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9759735 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{head|pt|過去分詞變格形}} # {{feminine singular of|pt|enlameado}} 57mgiwjvz0s5b6v9jaxjk8v4tdwve9n enlameados 0 3438761 9759736 2026-05-15T03:25:56Z Sayonzei 40728 創建葡萄牙語「[[enlameado]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9759736 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{head|pt|過去分詞變格形}} # {{masculine plural of|pt|enlameado}} 0pdi25h4p22kbe9adcgcqlalvusyep9 enlameadas 0 3438762 9759737 2026-05-15T03:26:01Z Sayonzei 40728 創建葡萄牙語「[[enlameado]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9759737 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{head|pt|過去分詞變格形}} # {{feminine plural of|pt|enlameado}} dag9txsw8m6uotju0tfdrvutmpqzv2t encruzar 0 3438763 9759738 2026-05-15T03:27:26Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===詞源=== 源自 {{af|pt|en-|cruz|-ar}}。 ===發音=== {{pt-IPA}} * {{hyph|pt|en|cru|zar}} ===動詞=== {{pt-verb}} {{tlb|pt|及物}} # 使呈[[交叉]]的樣子,擺成[[十字]]形 # [[穿過]] ====變位==== {{pt-conj}} ====近義詞==== {{col|pt|encruzilhar}} ===延伸閱讀=== * {{R:pt:Aulete}} * {{R:pt:DAN}} * {{R:pt:Priberam}}」的新頁面 9759738 wikitext text/x-wiki ==葡萄牙語== ===詞源=== 源自 {{af|pt|en-|cruz|-ar}}。 ===發音=== {{pt-IPA}} * {{hyph|pt|en|cru|zar}} ===動詞=== {{pt-verb}} {{tlb|pt|及物}} # 使呈[[交叉]]的樣子,擺成[[十字]]形 # [[穿過]] ====變位==== {{pt-conj}} ====近義詞==== {{col|pt|encruzilhar}} ===延伸閱讀=== * {{R:pt:Aulete}} * {{R:pt:DAN}} * {{R:pt:Priberam}} fte5xntid75fxljcolmi1sdh77j5hjx encruzilhar 0 3438764 9759739 2026-05-15T03:28:43Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==加利西亞語== ===動詞=== {{gl-reinteg-verb}} # {{gl-reinteg sp|encrucillar}} ====變位==== {{gl-reinteg-conj}} ====相關詞彙==== * {{l|gl|encruzilhada}} ===延伸閱讀=== * {{R:gl:Estraviz}} ==葡萄牙語== ===詞源=== 源自{{der|pt|la|*incruciculāre}}。 ===發音=== {{pt-IPA}} * {{hyph|pt|en|cru|zi|lhar}} ===動詞=== {{pt-verb}} {{tlb|pt|及物}} # 使呈[[交叉]]的樣子,擺成[[十字]]形 #: {{syn|pt|encru…」的新頁面 9759739 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{gl-reinteg-verb}} # {{gl-reinteg sp|encrucillar}} ====變位==== {{gl-reinteg-conj}} ====相關詞彙==== * {{l|gl|encruzilhada}} ===延伸閱讀=== * {{R:gl:Estraviz}} ==葡萄牙語== ===詞源=== 源自{{der|pt|la|*incruciculāre}}。 ===發音=== {{pt-IPA}} * {{hyph|pt|en|cru|zi|lhar}} ===動詞=== {{pt-verb}} {{tlb|pt|及物}} # 使呈[[交叉]]的樣子,擺成[[十字]]形 #: {{syn|pt|encruzar}} # [[穿過]] ====變位==== {{pt-conj}} ====相關詞彙==== * {{l|pt|encruzilhada}} ===參考資料=== * {{R:pt:Aulete}} * {{R:pt:Infopédia}} * {{R:pt:Priberam}} nq3gv5d2i4l8856skny7sjsnhrsuj4g encruzilhado 0 3438765 9759740 2026-05-15T03:28:47Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===分詞=== {{pt-pp}} # {{past participle of|pt|encruzilhar}}」的新頁面 9759740 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{pt-pp}} # {{past participle of|pt|encruzilhar}} aqq38y4xww6fmfqu85pndzkrgd8nkmf encruzilhados 0 3438766 9759741 2026-05-15T03:29:10Z Sayonzei 40728 創建葡萄牙語「[[encruzilhado]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9759741 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{head|pt|過去分詞變格形}} # {{masculine plural of|pt|encruzilhado}} fbr60qjs057ttgtyrgolkwvn8ysfrzo encruzilhadas 0 3438767 9759742 2026-05-15T03:29:18Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===名詞=== {{head|pt|名詞變格形}} # {{plural of|pt|encruzilhada}} ===分詞=== {{head|pt|過去分詞變格形}} # {{feminine plural of|pt|encruzilhado}}」的新頁面 9759742 wikitext text/x-wiki ==葡萄牙語== ===名詞=== {{head|pt|名詞變格形}} # {{plural of|pt|encruzilhada}} ===分詞=== {{head|pt|過去分詞變格形}} # {{feminine plural of|pt|encruzilhado}} lnbzzxt5v067bhtwm2fo7i7ttza1x1x encruzilhada 0 3438768 9759743 2026-05-15T03:30:38Z Sayonzei 40728 創建葡萄牙語「[[encruzilhado]]」的非詞元形式([[WT:ACCEL|ACCEL]]) 9759743 wikitext text/x-wiki {{also|Encruzilhada}} ==葡萄牙語== ===詞源=== 源自 {{m|pt|encruzilhar||穿過}},源自 {{m|pt|cruz||十字}},源自{{der|pt|roa-opt|cruz}},源自{{der|pt|la|crux||十字}},源自{{der|pt|ine-pro|*(s)ker-||轉,彎}}。 ===發音=== {{pt-IPA}} * {{hyph|pt|en|cru|zi|lha|da}} ===名詞=== {{pt-noun|f}} # [[十字路口]] #: {{syn|pt|ambívio|cruzamento|interseção}} # {{lb|pt|比喻}} 需要作出[[抉擇]]的[[境況]] ====相關詞彙==== {{col4|pt |cruz |cruzar |encruzilhar |encruzar }} ===分詞=== {{head|pt|過去分詞變格形}} # {{feminine singular of|pt|encruzilhado}} ===延伸閱讀=== * {{R:pt:Aulete}} * {{R:pt:Priberam}} {{C|pt|道路}} gn0vhm7nhi975zs0lopc3au2bzdbyo0 interseção 0 3438769 9759744 2026-05-15T03:30:58Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===其他形式=== * {{alt|pt|intersecção||葡萄牙}} ===詞源=== {{lbor|pt|la|intersectiō|intersectiōnem}}。 ===發音=== {{pt-IPA|intersèção}} * {{homophones|pt|intercessão|interceção}} * {{hyphenation|pt|in|ter|se|ção}} ===名詞=== {{pt-noun|f}} {{tlb|pt|巴西葡萄牙語拼寫|European Portuguese spelling}} # [[路口]] # {{lb|pt|幾何學}} [[交點]] # {{lb|pt|集合論}} [[交集]] ===延伸閱…」的新頁面 9759744 wikitext text/x-wiki ==葡萄牙語== ===其他形式=== * {{alt|pt|intersecção||葡萄牙}} ===詞源=== {{lbor|pt|la|intersectiō|intersectiōnem}}。 ===發音=== {{pt-IPA|intersèção}} * {{homophones|pt|intercessão|interceção}} * {{hyphenation|pt|in|ter|se|ção}} ===名詞=== {{pt-noun|f}} {{tlb|pt|巴西葡萄牙語拼寫|European Portuguese spelling}} # [[路口]] # {{lb|pt|幾何學}} [[交點]] # {{lb|pt|集合論}} [[交集]] ===延伸閱讀=== * {{R:pt:Priberam}} f2999v0phn0qtw10f85d2pdq6cgfrcz interseções 0 3438770 9759745 2026-05-15T03:31:02Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===名詞=== {{head|pt|名詞變格形|g=f}} # {{plural of|pt|interseção}}」的新頁面 9759745 wikitext text/x-wiki ==葡萄牙語== ===名詞=== {{head|pt|名詞變格形|g=f}} # {{plural of|pt|interseção}} hf9cjicw3yzvo6r22vj4es0wotlcu0j intersecção 0 3438771 9759746 2026-05-15T03:31:16Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===發音=== {{pt-IPA|intersècção}} * {{hyph|pt|in|ter|sec|ção}} ===名詞=== {{pt-noun|f}} {{tlb|pt|僅限|_|European Portuguese spelling}} # {{alternative form of|pt|interseção}} ===延伸閱讀=== * {{R:pt:Priberam}}」的新頁面 9759746 wikitext text/x-wiki ==葡萄牙語== ===發音=== {{pt-IPA|intersècção}} * {{hyph|pt|in|ter|sec|ção}} ===名詞=== {{pt-noun|f}} {{tlb|pt|僅限|_|European Portuguese spelling}} # {{alternative form of|pt|interseção}} ===延伸閱讀=== * {{R:pt:Priberam}} 6uaib4y982bp2acezyepirg0mde05td intersecções 0 3438772 9759747 2026-05-15T03:31:18Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==葡萄牙語== ===名詞=== {{head|pt|名詞變格形|g=f}} # {{plural of|pt|intersecção}}」的新頁面 9759747 wikitext text/x-wiki ==葡萄牙語== ===名詞=== {{head|pt|名詞變格形|g=f}} # {{plural of|pt|intersecção}} itkiwk2sxpcbyy9d6w4uyuqncunfqq2 encarquilhada 0 3438773 9759749 2026-05-15T03:34:47Z TongcyBot 83009 半自動導入非詞元形式 9759749 wikitext text/x-wiki ==葡萄牙語== ===形容詞=== {{head|pt|形容詞變格形}} # {{adj form of|pt|encarquilhado||f|s}} ===分詞=== {{head|pt|過去分詞變格形|g=f-s}} # {{feminine singular of|pt|encarquilhado}} fhjenj2hcio9n575t9wkbackspc2dqv encarquilha 0 3438774 9759750 2026-05-15T03:34:49Z TongcyBot 83009 半自動導入非詞元形式 9759750 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhadas 0 3438775 9759751 2026-05-15T03:34:52Z TongcyBot 83009 半自動導入非詞元形式 9759751 wikitext text/x-wiki ==葡萄牙語== ===形容詞=== {{head|pt|形容詞變格形}} # {{adj form of|pt|encarquilhado||f|p}} ===分詞=== {{head|pt|過去分詞變格形|g=f-p}} # {{feminine plural of|pt|encarquilhado}} p5rsrj04jhenygfxa3wh7waqscxdctm encarquilhados 0 3438776 9759752 2026-05-15T03:34:53Z TongcyBot 83009 半自動導入非詞元形式 9759752 wikitext text/x-wiki ==葡萄牙語== ===形容詞=== {{head|pt|形容詞變格形}} # {{adj form of|pt|encarquilhado||m|p}} ===分詞=== {{head|pt|過去分詞變格形|g=m-p}} # {{masculine plural of|pt|encarquilhado}} g1omwyochl5lgu3jpwy8mjcmlo1sdf3 encarquilhai 0 3438777 9759753 2026-05-15T03:34:56Z TongcyBot 83009 半自動導入非詞元形式 9759753 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhais 0 3438778 9759754 2026-05-15T03:34:57Z TongcyBot 83009 半自動導入非詞元形式 9759754 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilham 0 3438779 9759755 2026-05-15T03:35:00Z TongcyBot 83009 半自動導入非詞元形式 9759755 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhamos 0 3438780 9759756 2026-05-15T03:35:01Z TongcyBot 83009 半自動導入非詞元形式 9759756 wikitext text/x-wiki {{also|encarquilhámos}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} 2dstwm8ci9lvioo0hjksmlqiqo2lcos encarquilhando 0 3438781 9759757 2026-05-15T03:35:04Z TongcyBot 83009 半自動導入非詞元形式 9759757 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動名詞}} # {{gerund of|pt|encarquilhar}} r8iho8z4m50lokr0eypkz2ruxiub3om encarquilhara 0 3438782 9759758 2026-05-15T03:35:05Z TongcyBot 83009 半自動導入非詞元形式 9759758 wikitext text/x-wiki {{also|encarquilhará}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} f55gdligq6pmxkt8dqaougb7bwyeiul encarquilharam 0 3438783 9759759 2026-05-15T03:35:08Z TongcyBot 83009 半自動導入非詞元形式 9759759 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilharas 0 3438784 9759760 2026-05-15T03:35:09Z TongcyBot 83009 半自動導入非詞元形式 9759760 wikitext text/x-wiki {{also|encarquilharás}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} smouc6sdrvll9l5ap99pwvpzfwiwz1q encarquilhardes 0 3438785 9759761 2026-05-15T03:35:12Z TongcyBot 83009 半自動導入非詞元形式 9759761 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilharei 0 3438786 9759762 2026-05-15T03:35:13Z TongcyBot 83009 半自動導入非詞元形式 9759762 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhareis 0 3438787 9759763 2026-05-15T03:35:17Z TongcyBot 83009 半自動導入非詞元形式 9759763 wikitext text/x-wiki {{also|encarquilháreis}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} 40rakacshqy334w6r6zy3o90se1q44e encarquilharem 0 3438788 9759764 2026-05-15T03:35:18Z TongcyBot 83009 半自動導入非詞元形式 9759764 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilharemos 0 3438789 9759765 2026-05-15T03:35:21Z TongcyBot 83009 半自動導入非詞元形式 9759765 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhares 0 3438790 9759766 2026-05-15T03:35:22Z TongcyBot 83009 半自動導入非詞元形式 9759766 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilharia 0 3438791 9759767 2026-05-15T03:35:25Z TongcyBot 83009 半自動導入非詞元形式 9759767 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhariam 0 3438792 9759768 2026-05-15T03:35:26Z TongcyBot 83009 半自動導入非詞元形式 9759768 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilharias 0 3438793 9759769 2026-05-15T03:35:30Z TongcyBot 83009 半自動導入非詞元形式 9759769 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilharmos 0 3438794 9759770 2026-05-15T03:35:31Z TongcyBot 83009 半自動導入非詞元形式 9759770 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhará 0 3438795 9759771 2026-05-15T03:35:34Z TongcyBot 83009 半自動導入非詞元形式 9759771 wikitext text/x-wiki {{also|encarquilhara}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} la7fbcx14dzo8al42pupz5l95oh9lcs encarquilharás 0 3438796 9759772 2026-05-15T03:35:35Z TongcyBot 83009 半自動導入非詞元形式 9759772 wikitext text/x-wiki {{also|encarquilharas}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} 6dagxli7xxs7zcpfolmjzxea2mb9n0c encarquilharão 0 3438797 9759773 2026-05-15T03:35:38Z TongcyBot 83009 半自動導入非詞元形式 9759773 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilharíamos 0 3438798 9759774 2026-05-15T03:35:39Z TongcyBot 83009 半自動導入非詞元形式 9759774 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilharíeis 0 3438799 9759775 2026-05-15T03:35:42Z TongcyBot 83009 半自動導入非詞元形式 9759775 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhas 0 3438800 9759776 2026-05-15T03:35:43Z TongcyBot 83009 半自動導入非詞元形式 9759776 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhasse 0 3438801 9759777 2026-05-15T03:35:46Z TongcyBot 83009 半自動導入非詞元形式 9759777 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhassem 0 3438802 9759778 2026-05-15T03:35:48Z TongcyBot 83009 半自動導入非詞元形式 9759778 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhasses 0 3438803 9759779 2026-05-15T03:35:50Z TongcyBot 83009 半自動導入非詞元形式 9759779 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhaste 0 3438804 9759780 2026-05-15T03:35:52Z TongcyBot 83009 半自動導入非詞元形式 9759780 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhastes 0 3438805 9759781 2026-05-15T03:35:55Z TongcyBot 83009 半自動導入非詞元形式 9759781 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhava 0 3438806 9759782 2026-05-15T03:35:56Z TongcyBot 83009 半自動導入非詞元形式 9759782 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhavam 0 3438807 9759783 2026-05-15T03:35:59Z TongcyBot 83009 半自動導入非詞元形式 9759783 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhavas 0 3438808 9759784 2026-05-15T03:36:00Z TongcyBot 83009 半自動導入非詞元形式 9759784 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhe 0 3438809 9759785 2026-05-15T03:36:03Z TongcyBot 83009 半自動導入非詞元形式 9759785 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhei 0 3438810 9759786 2026-05-15T03:36:04Z TongcyBot 83009 半自動導入非詞元形式 9759786 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilheis 0 3438811 9759787 2026-05-15T03:36:07Z TongcyBot 83009 半自動導入非詞元形式 9759787 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhem 0 3438812 9759788 2026-05-15T03:36:08Z TongcyBot 83009 半自動導入非詞元形式 9759788 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhemos 0 3438813 9759789 2026-05-15T03:36:11Z TongcyBot 83009 半自動導入非詞元形式 9759789 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhes 0 3438814 9759790 2026-05-15T03:36:12Z TongcyBot 83009 半自動導入非詞元形式 9759790 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilho 0 3438815 9759791 2026-05-15T03:36:15Z TongcyBot 83009 半自動導入非詞元形式 9759791 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhou 0 3438816 9759792 2026-05-15T03:36:16Z TongcyBot 83009 半自動導入非詞元形式 9759792 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhámos 0 3438817 9759793 2026-05-15T03:36:18Z TongcyBot 83009 半自動導入非詞元形式 9759793 wikitext text/x-wiki {{also|encarquilhamos}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} 3rob44bn2jij7uph8x82nazod1jg01g encarquilháramos 0 3438818 9759794 2026-05-15T03:36:20Z TongcyBot 83009 半自動導入非詞元形式 9759794 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilháreis 0 3438819 9759795 2026-05-15T03:36:23Z TongcyBot 83009 半自動導入非詞元形式 9759795 wikitext text/x-wiki {{also|encarquilhareis}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} bjo0skd8cildq4rzla3e6fwj3gtg4mi encarquilhásseis 0 3438820 9759796 2026-05-15T03:36:24Z TongcyBot 83009 半自動導入非詞元形式 9759796 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhássemos 0 3438821 9759797 2026-05-15T03:36:27Z TongcyBot 83009 半自動導入非詞元形式 9759797 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilhávamos 0 3438822 9759798 2026-05-15T03:36:28Z TongcyBot 83009 半自動導入非詞元形式 9759798 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encarquilháveis 0 3438823 9759799 2026-05-15T03:36:31Z TongcyBot 83009 半自動導入非詞元形式 9759799 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encarquilhar}} noo07wkydwg978m45gj6jrvb6be5lti encruza 0 3438824 9759800 2026-05-15T03:36:32Z TongcyBot 83009 半自動導入非詞元形式 9759800 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzada 0 3438825 9759801 2026-05-15T03:36:35Z TongcyBot 83009 半自動導入非詞元形式 9759801 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{head|pt|過去分詞變格形|g=f-s}} # {{feminine singular of|pt|encruzado}} d36ed3pnzfufqu1b7fgvg87ull3rfsb encruzadas 0 3438826 9759802 2026-05-15T03:36:36Z TongcyBot 83009 半自動導入非詞元形式 9759802 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{head|pt|過去分詞變格形|g=f-p}} # {{feminine plural of|pt|encruzado}} 78hqghhmljqm90vyxe1maotc2dgmts6 encruzado 0 3438827 9759803 2026-05-15T03:36:39Z TongcyBot 83009 半自動導入非詞元形式 9759803 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{pt-pp}} # {{past participle of|pt|encruzar}} 8ykt4rhfgo5472cf7batkbrsued6c1c encruzados 0 3438828 9759804 2026-05-15T03:36:40Z TongcyBot 83009 半自動導入非詞元形式 9759804 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{head|pt|過去分詞變格形|g=m-p}} # {{masculine plural of|pt|encruzado}} nh5housms16e646a5om7xtegz3ii9f6 encruzai 0 3438829 9759805 2026-05-15T03:36:43Z TongcyBot 83009 半自動導入非詞元形式 9759805 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzais 0 3438830 9759806 2026-05-15T03:36:45Z TongcyBot 83009 半自動導入非詞元形式 9759806 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzam 0 3438831 9759807 2026-05-15T03:36:47Z TongcyBot 83009 半自動導入非詞元形式 9759807 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzamos 0 3438832 9759808 2026-05-15T03:36:49Z TongcyBot 83009 半自動導入非詞元形式 9759808 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzando 0 3438833 9759809 2026-05-15T03:36:51Z TongcyBot 83009 半自動導入非詞元形式 9759809 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動名詞}} # {{pt-verb form of|encruzar}} bbmq4l2p5qx4ggwjqba5fbq47z4nvjq encruzara 0 3438834 9759810 2026-05-15T03:36:52Z TongcyBot 83009 半自動導入非詞元形式 9759810 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzaram 0 3438835 9759811 2026-05-15T03:36:54Z TongcyBot 83009 半自動導入非詞元形式 9759811 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzaras 0 3438836 9759812 2026-05-15T03:36:57Z TongcyBot 83009 半自動導入非詞元形式 9759812 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzardes 0 3438837 9759813 2026-05-15T03:36:58Z TongcyBot 83009 半自動導入非詞元形式 9759813 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzarei 0 3438838 9759814 2026-05-15T03:37:00Z TongcyBot 83009 半自動導入非詞元形式 9759814 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzareis 0 3438839 9759815 2026-05-15T03:37:02Z TongcyBot 83009 半自動導入非詞元形式 9759815 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzarem 0 3438840 9759816 2026-05-15T03:37:04Z TongcyBot 83009 半自動導入非詞元形式 9759816 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzaremos 0 3438841 9759817 2026-05-15T03:37:06Z TongcyBot 83009 半自動導入非詞元形式 9759817 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzares 0 3438842 9759818 2026-05-15T03:37:08Z TongcyBot 83009 半自動導入非詞元形式 9759818 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzaria 0 3438843 9759819 2026-05-15T03:37:10Z TongcyBot 83009 半自動導入非詞元形式 9759819 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzariam 0 3438844 9759820 2026-05-15T03:37:12Z TongcyBot 83009 半自動導入非詞元形式 9759820 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzarias 0 3438845 9759821 2026-05-15T03:37:14Z TongcyBot 83009 半自動導入非詞元形式 9759821 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzarmos 0 3438846 9759822 2026-05-15T03:37:16Z TongcyBot 83009 半自動導入非詞元形式 9759822 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzará 0 3438847 9759823 2026-05-15T03:37:17Z TongcyBot 83009 半自動導入非詞元形式 9759823 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzarás 0 3438848 9759824 2026-05-15T03:37:20Z TongcyBot 83009 半自動導入非詞元形式 9759824 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzarão 0 3438849 9759825 2026-05-15T03:37:21Z TongcyBot 83009 半自動導入非詞元形式 9759825 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzaríamos 0 3438850 9759826 2026-05-15T03:37:24Z TongcyBot 83009 半自動導入非詞元形式 9759826 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzaríeis 0 3438851 9759827 2026-05-15T03:37:25Z TongcyBot 83009 半自動導入非詞元形式 9759827 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzas 0 3438852 9759828 2026-05-15T03:37:28Z TongcyBot 83009 半自動導入非詞元形式 9759828 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzasse 0 3438853 9759829 2026-05-15T03:37:29Z TongcyBot 83009 半自動導入非詞元形式 9759829 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzassem 0 3438854 9759830 2026-05-15T03:37:33Z TongcyBot 83009 半自動導入非詞元形式 9759830 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzasses 0 3438855 9759831 2026-05-15T03:37:34Z TongcyBot 83009 半自動導入非詞元形式 9759831 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzastes 0 3438856 9759832 2026-05-15T03:37:38Z TongcyBot 83009 半自動導入非詞元形式 9759832 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzaste 0 3438857 9759833 2026-05-15T03:37:38Z TongcyBot 83009 半自動導入非詞元形式 9759833 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzavam 0 3438858 9759834 2026-05-15T03:37:43Z TongcyBot 83009 半自動導入非詞元形式 9759834 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzava 0 3438859 9759835 2026-05-15T03:37:44Z TongcyBot 83009 半自動導入非詞元形式 9759835 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzavas 0 3438860 9759836 2026-05-15T03:37:46Z TongcyBot 83009 半自動導入非詞元形式 9759836 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruze 0 3438861 9759837 2026-05-15T03:37:47Z TongcyBot 83009 半自動導入非詞元形式 9759837 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzei 0 3438862 9759838 2026-05-15T03:37:50Z TongcyBot 83009 半自動導入非詞元形式 9759838 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzeis 0 3438863 9759839 2026-05-15T03:37:51Z TongcyBot 83009 半自動導入非詞元形式 9759839 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzem 0 3438864 9759840 2026-05-15T03:37:54Z TongcyBot 83009 半自動導入非詞元形式 9759840 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzemos 0 3438865 9759841 2026-05-15T03:37:56Z TongcyBot 83009 半自動導入非詞元形式 9759841 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzes 0 3438866 9759842 2026-05-15T03:37:58Z TongcyBot 83009 半自動導入非詞元形式 9759842 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzilha 0 3438867 9759843 2026-05-15T03:38:00Z TongcyBot 83009 半自動導入非詞元形式 9759843 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhache 0 3438868 9759844 2026-05-15T03:38:02Z TongcyBot 83009 半自動導入非詞元形式 9759844 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilhade 0 3438869 9759845 2026-05-15T03:38:04Z TongcyBot 83009 半自動導入非詞元形式 9759845 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilhades 0 3438870 9759846 2026-05-15T03:38:06Z TongcyBot 83009 半自動導入非詞元形式 9759846 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilhai 0 3438871 9759847 2026-05-15T03:38:09Z TongcyBot 83009 半自動導入非詞元形式 9759847 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhais 0 3438872 9759848 2026-05-15T03:38:10Z TongcyBot 83009 半自動導入非詞元形式 9759848 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilham 0 3438873 9759849 2026-05-15T03:38:13Z TongcyBot 83009 半自動導入非詞元形式 9759849 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhamos 0 3438874 9759850 2026-05-15T03:38:14Z TongcyBot 83009 半自動導入非詞元形式 9759850 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhando 0 3438875 9759851 2026-05-15T03:38:17Z TongcyBot 83009 半自動導入非詞元形式 9759851 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動名詞}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動名詞}} # {{pt-verb form of|encruzilhar}} qg5zkzo89vpolx4v2japrz5xx7f7ucd encruzilhara 0 3438876 9759852 2026-05-15T03:38:18Z TongcyBot 83009 半自動導入非詞元形式 9759852 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilharam 0 3438877 9759853 2026-05-15T03:38:21Z TongcyBot 83009 半自動導入非詞元形式 9759853 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilharas 0 3438878 9759854 2026-05-15T03:38:22Z TongcyBot 83009 半自動導入非詞元形式 9759854 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhardes 0 3438879 9759855 2026-05-15T03:38:25Z TongcyBot 83009 半自動導入非詞元形式 9759855 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilharedes 0 3438880 9759856 2026-05-15T03:38:26Z TongcyBot 83009 半自動導入非詞元形式 9759856 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilharei 0 3438881 9759857 2026-05-15T03:38:29Z TongcyBot 83009 半自動導入非詞元形式 9759857 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhareis 0 3438882 9759858 2026-05-15T03:38:30Z TongcyBot 83009 半自動導入非詞元形式 9759858 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilharem 0 3438883 9759859 2026-05-15T03:38:33Z TongcyBot 83009 半自動導入非詞元形式 9759859 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilharemos 0 3438884 9759860 2026-05-15T03:38:34Z TongcyBot 83009 半自動導入非詞元形式 9759860 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhares 0 3438885 9759861 2026-05-15T03:38:37Z TongcyBot 83009 半自動導入非詞元形式 9759861 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilharia 0 3438886 9759862 2026-05-15T03:38:38Z TongcyBot 83009 半自動導入非詞元形式 9759862 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhariam 0 3438887 9759863 2026-05-15T03:38:41Z TongcyBot 83009 半自動導入非詞元形式 9759863 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilharias 0 3438888 9759864 2026-05-15T03:38:43Z TongcyBot 83009 半自動導入非詞元形式 9759864 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilharmos 0 3438889 9759865 2026-05-15T03:38:46Z TongcyBot 83009 半自動導入非詞元形式 9759865 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhará 0 3438890 9759866 2026-05-15T03:38:47Z TongcyBot 83009 半自動導入非詞元形式 9759866 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilharám 0 3438891 9759867 2026-05-15T03:38:49Z TongcyBot 83009 半自動導入非詞元形式 9759867 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilharás 0 3438892 9759868 2026-05-15T03:38:51Z TongcyBot 83009 半自動導入非詞元形式 9759868 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilharão 0 3438893 9759869 2026-05-15T03:38:54Z TongcyBot 83009 半自動導入非詞元形式 9759869 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilharíades 0 3438894 9759870 2026-05-15T03:38:55Z TongcyBot 83009 半自動導入非詞元形式 9759870 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilharíais 0 3438895 9759871 2026-05-15T03:38:58Z TongcyBot 83009 半自動導入非詞元形式 9759871 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilharíamos 0 3438896 9759872 2026-05-15T03:38:59Z TongcyBot 83009 半自動導入非詞元形式 9759872 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilharíeis 0 3438897 9759873 2026-05-15T03:39:02Z TongcyBot 83009 半自動導入非詞元形式 9759873 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhas 0 3438898 9759874 2026-05-15T03:39:03Z TongcyBot 83009 半自動導入非詞元形式 9759874 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhasse 0 3438899 9759875 2026-05-15T03:39:05Z TongcyBot 83009 半自動導入非詞元形式 9759875 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhassem 0 3438900 9759876 2026-05-15T03:39:07Z TongcyBot 83009 半自動導入非詞元形式 9759876 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhasses 0 3438901 9759877 2026-05-15T03:39:10Z TongcyBot 83009 半自動導入非詞元形式 9759877 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhaste 0 3438902 9759878 2026-05-15T03:39:11Z TongcyBot 83009 半自動導入非詞元形式 9759878 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhastes 0 3438903 9759879 2026-05-15T03:39:14Z TongcyBot 83009 半自動導入非詞元形式 9759879 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhava 0 3438904 9759880 2026-05-15T03:39:15Z TongcyBot 83009 半自動導入非詞元形式 9759880 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhavam 0 3438905 9759881 2026-05-15T03:39:18Z TongcyBot 83009 半自動導入非詞元形式 9759881 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhavas 0 3438906 9759882 2026-05-15T03:39:19Z TongcyBot 83009 半自動導入非詞元形式 9759882 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhe 0 3438907 9759883 2026-05-15T03:39:22Z TongcyBot 83009 半自動導入非詞元形式 9759883 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhedes 0 3438908 9759884 2026-05-15T03:39:24Z TongcyBot 83009 半自動導入非詞元形式 9759884 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilhei 0 3438909 9759885 2026-05-15T03:39:26Z TongcyBot 83009 半自動導入非詞元形式 9759885 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilheis 0 3438910 9759886 2026-05-15T03:39:28Z TongcyBot 83009 半自動導入非詞元形式 9759886 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhem 0 3438911 9759887 2026-05-15T03:39:30Z TongcyBot 83009 半自動導入非詞元形式 9759887 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhemos 0 3438912 9759888 2026-05-15T03:39:32Z TongcyBot 83009 半自動導入非詞元形式 9759888 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhes 0 3438913 9759889 2026-05-15T03:39:36Z TongcyBot 83009 半自動導入非詞元形式 9759889 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilho 0 3438914 9759890 2026-05-15T03:39:37Z TongcyBot 83009 半自動導入非詞元形式 9759890 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhou 0 3438915 9759891 2026-05-15T03:39:40Z TongcyBot 83009 半自動導入非詞元形式 9759891 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhámos 0 3438916 9759892 2026-05-15T03:39:41Z TongcyBot 83009 半自動導入非詞元形式 9759892 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} 234hcv9b1220oi0osnevfni8vvs4847 encruzilhárades 0 3438917 9759893 2026-05-15T03:39:44Z TongcyBot 83009 半自動導入非詞元形式 9759893 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilhárais 0 3438918 9759894 2026-05-15T03:39:45Z TongcyBot 83009 半自動導入非詞元形式 9759894 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilháramos 0 3438919 9759895 2026-05-15T03:39:48Z TongcyBot 83009 半自動導入非詞元形式 9759895 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilháreis 0 3438920 9759896 2026-05-15T03:39:49Z TongcyBot 83009 半自動導入非詞元形式 9759896 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhárom 0 3438921 9759897 2026-05-15T03:39:52Z TongcyBot 83009 半自動導入非詞元形式 9759897 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilhássedes 0 3438922 9759898 2026-05-15T03:39:53Z TongcyBot 83009 半自動導入非詞元形式 9759898 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilhásseis 0 3438923 9759899 2026-05-15T03:39:55Z TongcyBot 83009 半自動導入非詞元形式 9759899 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhássemos 0 3438924 9759900 2026-05-15T03:39:57Z TongcyBot 83009 半自動導入非詞元形式 9759900 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilhávades 0 3438925 9759901 2026-05-15T03:40:00Z TongcyBot 83009 半自動導入非詞元形式 9759901 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilhávais 0 3438926 9759902 2026-05-15T03:40:01Z TongcyBot 83009 半自動導入非詞元形式 9759902 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} cisqv8f0u0p835teuwkoi8gvhn3hyy7 encruzilhávamos 0 3438927 9759903 2026-05-15T03:40:04Z TongcyBot 83009 半自動導入非詞元形式 9759903 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzilháveis 0 3438928 9759904 2026-05-15T03:40:05Z TongcyBot 83009 半自動導入非詞元形式 9759904 wikitext text/x-wiki ==加利西亞語== ===動詞=== {{head|gl|動詞變位形式}} # {{gl-reinteg-verb form of|encruzilhar}} ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzilhar}} q13kt1bv115svq6cwzmuznx0jhxdpsp encruzo 0 3438929 9759905 2026-05-15T03:40:07Z TongcyBot 83009 半自動導入非詞元形式 9759905 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzou 0 3438930 9759906 2026-05-15T03:40:09Z TongcyBot 83009 半自動導入非詞元形式 9759906 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzámos 0 3438931 9759907 2026-05-15T03:40:12Z TongcyBot 83009 半自動導入非詞元形式 9759907 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzáramos 0 3438932 9759908 2026-05-15T03:40:13Z TongcyBot 83009 半自動導入非詞元形式 9759908 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzáreis 0 3438933 9759909 2026-05-15T03:40:16Z TongcyBot 83009 半自動導入非詞元形式 9759909 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzásseis 0 3438934 9759910 2026-05-15T03:40:17Z TongcyBot 83009 半自動導入非詞元形式 9759910 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzássemos 0 3438935 9759911 2026-05-15T03:40:20Z TongcyBot 83009 半自動導入非詞元形式 9759911 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzávamos 0 3438936 9759912 2026-05-15T03:40:21Z TongcyBot 83009 半自動導入非詞元形式 9759912 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 encruzáveis 0 3438937 9759913 2026-05-15T03:40:24Z TongcyBot 83009 半自動導入非詞元形式 9759913 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|encruzar}} suf72lka6yzqs87my69zryl2nlk1r73 engatilha 0 3438938 9759914 2026-05-15T03:40:25Z TongcyBot 83009 半自動導入非詞元形式 9759914 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhai 0 3438939 9759915 2026-05-15T03:40:28Z TongcyBot 83009 半自動導入非詞元形式 9759915 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhais 0 3438940 9759916 2026-05-15T03:40:29Z TongcyBot 83009 半自動導入非詞元形式 9759916 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilham 0 3438941 9759917 2026-05-15T03:40:32Z TongcyBot 83009 半自動導入非詞元形式 9759917 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhamos 0 3438942 9759918 2026-05-15T03:40:33Z TongcyBot 83009 半自動導入非詞元形式 9759918 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhando 0 3438943 9759919 2026-05-15T03:40:36Z TongcyBot 83009 半自動導入非詞元形式 9759919 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動名詞}} # {{pt-verb form of|engatilhar}} ng4u5zlbtoa3vw3hihqeolv06uv72lo engatilhara 0 3438944 9759920 2026-05-15T03:40:37Z TongcyBot 83009 半自動導入非詞元形式 9759920 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilharam 0 3438945 9759921 2026-05-15T03:40:40Z TongcyBot 83009 半自動導入非詞元形式 9759921 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilharas 0 3438946 9759922 2026-05-15T03:40:41Z TongcyBot 83009 半自動導入非詞元形式 9759922 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhardes 0 3438947 9759923 2026-05-15T03:40:43Z TongcyBot 83009 半自動導入非詞元形式 9759923 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilharei 0 3438948 9759924 2026-05-15T03:40:45Z TongcyBot 83009 半自動導入非詞元形式 9759924 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhareis 0 3438949 9759925 2026-05-15T03:40:47Z TongcyBot 83009 半自動導入非詞元形式 9759925 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilharem 0 3438950 9759926 2026-05-15T03:40:50Z TongcyBot 83009 半自動導入非詞元形式 9759926 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilharemos 0 3438951 9759927 2026-05-15T03:40:51Z TongcyBot 83009 半自動導入非詞元形式 9759927 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhares 0 3438952 9759928 2026-05-15T03:40:53Z TongcyBot 83009 半自動導入非詞元形式 9759928 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilharia 0 3438953 9759929 2026-05-15T03:40:55Z TongcyBot 83009 半自動導入非詞元形式 9759929 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhariam 0 3438954 9759930 2026-05-15T03:40:57Z TongcyBot 83009 半自動導入非詞元形式 9759930 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilharias 0 3438955 9759931 2026-05-15T03:41:00Z TongcyBot 83009 半自動導入非詞元形式 9759931 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilharmos 0 3438956 9759932 2026-05-15T03:41:02Z TongcyBot 83009 半自動導入非詞元形式 9759932 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhará 0 3438957 9759933 2026-05-15T03:41:03Z TongcyBot 83009 半自動導入非詞元形式 9759933 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilharás 0 3438958 9759934 2026-05-15T03:41:06Z TongcyBot 83009 半自動導入非詞元形式 9759934 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilharão 0 3438959 9759935 2026-05-15T03:41:07Z TongcyBot 83009 半自動導入非詞元形式 9759935 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilharíamos 0 3438960 9759936 2026-05-15T03:41:10Z TongcyBot 83009 半自動導入非詞元形式 9759936 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilharíeis 0 3438961 9759937 2026-05-15T03:41:11Z TongcyBot 83009 半自動導入非詞元形式 9759937 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhas 0 3438962 9759938 2026-05-15T03:41:14Z TongcyBot 83009 半自動導入非詞元形式 9759938 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhasse 0 3438963 9759939 2026-05-15T03:41:15Z TongcyBot 83009 半自動導入非詞元形式 9759939 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhassem 0 3438964 9759940 2026-05-15T03:41:18Z TongcyBot 83009 半自動導入非詞元形式 9759940 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhasses 0 3438965 9759941 2026-05-15T03:41:19Z TongcyBot 83009 半自動導入非詞元形式 9759941 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhaste 0 3438966 9759942 2026-05-15T03:41:22Z TongcyBot 83009 半自動導入非詞元形式 9759942 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhastes 0 3438967 9759943 2026-05-15T03:41:23Z TongcyBot 83009 半自動導入非詞元形式 9759943 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhava 0 3438968 9759944 2026-05-15T03:41:25Z TongcyBot 83009 半自動導入非詞元形式 9759944 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhavam 0 3438969 9759945 2026-05-15T03:41:27Z TongcyBot 83009 半自動導入非詞元形式 9759945 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhavas 0 3438970 9759946 2026-05-15T03:41:29Z TongcyBot 83009 半自動導入非詞元形式 9759946 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhe 0 3438971 9759947 2026-05-15T03:41:31Z TongcyBot 83009 半自動導入非詞元形式 9759947 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhei 0 3438972 9759948 2026-05-15T03:41:33Z TongcyBot 83009 半自動導入非詞元形式 9759948 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilheis 0 3438973 9759949 2026-05-15T03:41:35Z TongcyBot 83009 半自動導入非詞元形式 9759949 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhem 0 3438974 9759950 2026-05-15T03:41:37Z TongcyBot 83009 半自動導入非詞元形式 9759950 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhemos 0 3438975 9759951 2026-05-15T03:41:39Z TongcyBot 83009 半自動導入非詞元形式 9759951 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhes 0 3438976 9759952 2026-05-15T03:41:41Z TongcyBot 83009 半自動導入非詞元形式 9759952 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilho 0 3438977 9759953 2026-05-15T03:41:43Z TongcyBot 83009 半自動導入非詞元形式 9759953 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhou 0 3438978 9759954 2026-05-15T03:41:45Z TongcyBot 83009 半自動導入非詞元形式 9759954 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhámos 0 3438979 9759955 2026-05-15T03:41:47Z TongcyBot 83009 半自動導入非詞元形式 9759955 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilháramos 0 3438980 9759956 2026-05-15T03:41:49Z TongcyBot 83009 半自動導入非詞元形式 9759956 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilháreis 0 3438981 9759957 2026-05-15T03:41:51Z TongcyBot 83009 半自動導入非詞元形式 9759957 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhásseis 0 3438982 9759958 2026-05-15T03:41:53Z TongcyBot 83009 半自動導入非詞元形式 9759958 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhássemos 0 3438983 9759959 2026-05-15T03:41:55Z TongcyBot 83009 半自動導入非詞元形式 9759959 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilhávamos 0 3438984 9759960 2026-05-15T03:41:57Z TongcyBot 83009 半自動導入非詞元形式 9759960 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilháveis 0 3438985 9759961 2026-05-15T03:41:59Z TongcyBot 83009 半自動導入非詞元形式 9759961 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|engatilhar}} nnv0xackk413vg79awu3elc5ahpcylw engatilla 0 3438986 9759962 2026-05-15T03:42:01Z TongcyBot 83009 半自動導入非詞元形式 9759962 wikitext text/x-wiki {{also|engatillá}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} hausroroa93819i6gu99f9yfc30vega engatillaba 0 3438987 9759963 2026-05-15T03:42:03Z TongcyBot 83009 半自動導入非詞元形式 9759963 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillabais 0 3438988 9759964 2026-05-15T03:42:05Z TongcyBot 83009 半自動導入非詞元形式 9759964 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillaban 0 3438989 9759965 2026-05-15T03:42:06Z TongcyBot 83009 半自動導入非詞元形式 9759965 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillabas 0 3438990 9759966 2026-05-15T03:42:08Z TongcyBot 83009 半自動導入非詞元形式 9759966 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillad 0 3438991 9759967 2026-05-15T03:42:10Z TongcyBot 83009 半自動導入非詞元形式 9759967 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillada 0 3438992 9759968 2026-05-15T03:42:12Z TongcyBot 83009 半自動導入非詞元形式 9759968 wikitext text/x-wiki ==西班牙語== ===發音=== {{es-pr}} ===分詞=== {{head|es|過去分詞變格形|g=f-s}} # {{feminine singular of|es|engatillado}} 6wkl2xsa572qtnxs7lnq8euxscxhtd7 engatilladas 0 3438993 9759969 2026-05-15T03:42:14Z TongcyBot 83009 半自動導入非詞元形式 9759969 wikitext text/x-wiki ==西班牙語== ===發音=== {{es-pr}} ===分詞=== {{head|es|過去分詞變格形|g=f-p}} # {{feminine plural of|es|engatillado}} 4khtkvzng3607eyq774uh20di6hhueu engatillado 0 3438994 9759970 2026-05-15T03:42:16Z TongcyBot 83009 半自動導入非詞元形式 9759970 wikitext text/x-wiki ==西班牙語== ===發音=== {{es-pr}} ===分詞=== {{es-past participle}} # {{past participle of|es|engatillar}} 0j3e7pdm0y1mvw4w504fl43lzkfixj0 engatillados 0 3438995 9759971 2026-05-15T03:42:18Z TongcyBot 83009 半自動導入非詞元形式 9759971 wikitext text/x-wiki ==西班牙語== ===發音=== {{es-pr}} ===分詞=== {{head|es|過去分詞變格形|g=m-p}} # {{masculine plural of|es|engatillado}} kpzcu1vipxn5t1j2oif0kk2blo8698p engatillamos 0 3438996 9759972 2026-05-15T03:42:21Z TongcyBot 83009 半自動導入非詞元形式 9759972 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillan 0 3438997 9759973 2026-05-15T03:42:22Z TongcyBot 83009 半自動導入非詞元形式 9759973 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillando 0 3438998 9759974 2026-05-15T03:42:25Z TongcyBot 83009 半自動導入非詞元形式 9759974 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動名詞}} # {{es-verb form of|engatillar}} p81cj7918rro6hfym9uisdwsn5lzhcx engatillara 0 3438999 9759975 2026-05-15T03:42:26Z TongcyBot 83009 半自動導入非詞元形式 9759975 wikitext text/x-wiki {{also|engatillará}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} hxoug0z414s7y9ksdqfmsvp33p69yc2 engatillarais 0 3439000 9759976 2026-05-15T03:42:29Z TongcyBot 83009 半自動導入非詞元形式 9759976 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillaran 0 3439001 9759977 2026-05-15T03:42:30Z TongcyBot 83009 半自動導入非詞元形式 9759977 wikitext text/x-wiki {{also|engatillarán}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} f6w3fionpvz1ood1pm32wifenx4ke8z engatillaras 0 3439002 9759978 2026-05-15T03:42:33Z TongcyBot 83009 半自動導入非詞元形式 9759978 wikitext text/x-wiki {{also|engatillarás}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4gid88pc76lbvjpylm7wtyv2szrv273 engatillare 0 3439003 9759979 2026-05-15T03:42:34Z TongcyBot 83009 半自動導入非詞元形式 9759979 wikitext text/x-wiki {{also|engatillaré}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} eqv9c394ru5hbxjqunum219c4wfw5pw engatillareis 0 3439004 9759980 2026-05-15T03:42:37Z TongcyBot 83009 半自動導入非詞元形式 9759980 wikitext text/x-wiki {{also|engatillaréis}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 2y7itti2apais62b68kuday9icl72hs engatillaremos 0 3439005 9759981 2026-05-15T03:42:38Z TongcyBot 83009 半自動導入非詞元形式 9759981 wikitext text/x-wiki {{also|engatilláremos}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} i03twe4b4ycust0v2v8wwg3cgng43yv engatillaren 0 3439006 9759982 2026-05-15T03:42:41Z TongcyBot 83009 半自動導入非詞元形式 9759982 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillares 0 3439007 9759983 2026-05-15T03:42:42Z TongcyBot 83009 半自動導入非詞元形式 9759983 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillarla 0 3439008 9759984 2026-05-15T03:42:45Z TongcyBot 83009 半自動導入非詞元形式 9759984 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillarlas 0 3439009 9759985 2026-05-15T03:42:46Z TongcyBot 83009 半自動導入非詞元形式 9759985 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillarle 0 3439010 9759986 2026-05-15T03:42:49Z TongcyBot 83009 半自動導入非詞元形式 9759986 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillarles 0 3439011 9759987 2026-05-15T03:42:50Z TongcyBot 83009 半自動導入非詞元形式 9759987 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillarlo 0 3439012 9759988 2026-05-15T03:42:52Z TongcyBot 83009 半自動導入非詞元形式 9759988 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillarlos 0 3439013 9759989 2026-05-15T03:42:54Z TongcyBot 83009 半自動導入非詞元形式 9759989 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillarme 0 3439014 9759990 2026-05-15T03:42:56Z TongcyBot 83009 半自動導入非詞元形式 9759990 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillarnos 0 3439015 9759991 2026-05-15T03:42:58Z TongcyBot 83009 半自動導入非詞元形式 9759991 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillaron 0 3439016 9759992 2026-05-15T03:43:00Z TongcyBot 83009 半自動導入非詞元形式 9759992 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillaros 0 3439017 9759993 2026-05-15T03:43:01Z TongcyBot 83009 半自動導入非詞元形式 9759993 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillarse 0 3439018 9759994 2026-05-15T03:43:04Z TongcyBot 83009 半自動導入非詞元形式 9759994 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillarte 0 3439019 9759995 2026-05-15T03:43:05Z TongcyBot 83009 半自動導入非詞元形式 9759995 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillará 0 3439020 9759996 2026-05-15T03:43:08Z TongcyBot 83009 半自動導入非詞元形式 9759996 wikitext text/x-wiki {{also|engatillara}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} cbdcv8wczbwsmo4n2b66k649hmonkbp engatillarán 0 3439021 9759997 2026-05-15T03:43:09Z TongcyBot 83009 半自動導入非詞元形式 9759997 wikitext text/x-wiki {{also|engatillaran}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} gva6afa91qielsp66cby3wmgy8icjw2 engatillarás 0 3439022 9759998 2026-05-15T03:43:12Z TongcyBot 83009 半自動導入非詞元形式 9759998 wikitext text/x-wiki {{also|engatillaras}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 3jfxxswuo3dsl1g5wzuirt86868ho8w engatillaré 0 3439023 9759999 2026-05-15T03:43:13Z TongcyBot 83009 半自動導入非詞元形式 9759999 wikitext text/x-wiki {{also|engatillare}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} rbuv03z62hii75vxsw9nlvfp91ug0p8 engatillaréis 0 3439024 9760000 2026-05-15T03:43:16Z TongcyBot 83009 半自動導入非詞元形式 9760000 wikitext text/x-wiki {{also|engatillareis}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} l09jt9rv7uwhltw64largt0loty4byw engatillaría 0 3439025 9760001 2026-05-15T03:43:17Z TongcyBot 83009 半自動導入非詞元形式 9760001 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillaríais 0 3439026 9760002 2026-05-15T03:43:20Z TongcyBot 83009 半自動導入非詞元形式 9760002 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillaríamos 0 3439027 9760003 2026-05-15T03:43:21Z TongcyBot 83009 半自動導入非詞元形式 9760003 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillarían 0 3439028 9760004 2026-05-15T03:43:24Z TongcyBot 83009 半自動導入非詞元形式 9760004 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillarías 0 3439029 9760005 2026-05-15T03:43:25Z TongcyBot 83009 半自動導入非詞元形式 9760005 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillas 0 3439030 9760006 2026-05-15T03:43:28Z TongcyBot 83009 半自動導入非詞元形式 9760006 wikitext text/x-wiki {{also|engatillás}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 5hu677e73yjizh83lab9gm6mg6d8om8 engatillase 0 3439031 9760007 2026-05-15T03:43:29Z TongcyBot 83009 半自動導入非詞元形式 9760007 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillaseis 0 3439032 9760008 2026-05-15T03:43:32Z TongcyBot 83009 半自動導入非詞元形式 9760008 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillasen 0 3439033 9760009 2026-05-15T03:43:33Z TongcyBot 83009 半自動導入非詞元形式 9760009 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillases 0 3439034 9760010 2026-05-15T03:43:35Z TongcyBot 83009 半自動導入非詞元形式 9760010 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillaste 0 3439035 9760011 2026-05-15T03:43:37Z TongcyBot 83009 半自動導入非詞元形式 9760011 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillasteis 0 3439036 9760012 2026-05-15T03:43:39Z TongcyBot 83009 半自動導入非詞元形式 9760012 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatille 0 3439037 9760013 2026-05-15T03:43:40Z TongcyBot 83009 半自動導入非詞元形式 9760013 wikitext text/x-wiki {{also|engatillé}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} tcmwnz5b11i1nua9bd1woc6quyuznzz engatillemos 0 3439038 9760014 2026-05-15T03:43:43Z TongcyBot 83009 半自動導入非詞元形式 9760014 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillen 0 3439039 9760015 2026-05-15T03:43:44Z TongcyBot 83009 半自動導入非詞元形式 9760015 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatilles 0 3439040 9760016 2026-05-15T03:43:47Z TongcyBot 83009 半自動導入非詞元形式 9760016 wikitext text/x-wiki {{also|engatillés}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} r9wuza76pt0vzt392h7qjgvizk63m41 engatillo 0 3439041 9760017 2026-05-15T03:43:48Z TongcyBot 83009 半自動導入非詞元形式 9760017 wikitext text/x-wiki {{also|engatilló}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} o97fiq4wh36iuwl8qogm36yvjl8z4y4 engatillá 0 3439042 9760018 2026-05-15T03:43:52Z TongcyBot 83009 半自動導入非詞元形式 9760018 wikitext text/x-wiki {{also|engatilla}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} l5br6wymaqkk8hb1m6itcsogk1zargi engatillábamos 0 3439043 9760019 2026-05-15T03:43:53Z TongcyBot 83009 半自動導入非詞元形式 9760019 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatilláis 0 3439044 9760020 2026-05-15T03:43:56Z TongcyBot 83009 半自動導入非詞元形式 9760020 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillándola 0 3439045 9760021 2026-05-15T03:43:57Z TongcyBot 83009 半自動導入非詞元形式 9760021 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillándolas 0 3439046 9760022 2026-05-15T03:44:00Z TongcyBot 83009 半自動導入非詞元形式 9760022 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillándole 0 3439047 9760023 2026-05-15T03:44:01Z TongcyBot 83009 半自動導入非詞元形式 9760023 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillándoles 0 3439048 9760024 2026-05-15T03:44:04Z TongcyBot 83009 半自動導入非詞元形式 9760024 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillándolo 0 3439049 9760025 2026-05-15T03:44:05Z TongcyBot 83009 半自動導入非詞元形式 9760025 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillándolos 0 3439050 9760026 2026-05-15T03:44:07Z TongcyBot 83009 半自動導入非詞元形式 9760026 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillándome 0 3439051 9760027 2026-05-15T03:44:09Z TongcyBot 83009 半自動導入非詞元形式 9760027 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillándonos 0 3439052 9760028 2026-05-15T03:44:11Z TongcyBot 83009 半自動導入非詞元形式 9760028 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillándoos 0 3439053 9760029 2026-05-15T03:44:13Z TongcyBot 83009 半自動導入非詞元形式 9760029 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillándose 0 3439054 9760030 2026-05-15T03:44:15Z TongcyBot 83009 半自動導入非詞元形式 9760030 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillándote 0 3439055 9760031 2026-05-15T03:44:17Z TongcyBot 83009 半自動導入非詞元形式 9760031 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatilláramos 0 3439056 9760032 2026-05-15T03:44:19Z TongcyBot 83009 半自動導入非詞元形式 9760032 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatilláremos 0 3439057 9760033 2026-05-15T03:44:21Z TongcyBot 83009 半自動導入非詞元形式 9760033 wikitext text/x-wiki {{also|engatillaremos}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} q90d3tdpx5ah01tlcwcmvg631p39dd9 engatillás 0 3439058 9760034 2026-05-15T03:44:23Z TongcyBot 83009 半自動導入非詞元形式 9760034 wikitext text/x-wiki {{also|engatillas}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 0f4v4azr2e1vq3io8pmly5zrjxvbs0y engatillásemos 0 3439059 9760035 2026-05-15T03:44:25Z TongcyBot 83009 半自動導入非詞元形式 9760035 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillé 0 3439060 9760036 2026-05-15T03:44:27Z TongcyBot 83009 半自動導入非詞元形式 9760036 wikitext text/x-wiki {{also|engatille}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} tj7txhop1lm7u7vxgxqow3hmv8nqw6n engatilléis 0 3439061 9760037 2026-05-15T03:44:29Z TongcyBot 83009 半自動導入非詞元形式 9760037 wikitext text/x-wiki ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} 4erc4v3l5ju6ko1go79gd1ly43f612z engatillés 0 3439062 9760038 2026-05-15T03:44:31Z TongcyBot 83009 半自動導入非詞元形式 9760038 wikitext text/x-wiki {{also|engatilles}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} irlivqfsj8ljbq7rpg1d39stm2bo9bk engatilló 0 3439063 9760039 2026-05-15T03:44:32Z TongcyBot 83009 半自動導入非詞元形式 9760039 wikitext text/x-wiki {{also|engatillo}} ==西班牙語== ===動詞=== {{head|es|動詞變位形式}} # {{es-verb form of|engatillar}} qkjxeell1d1iw3su4s7i3uzfjwbezpq enlameai 0 3439064 9760040 2026-05-15T03:44:35Z TongcyBot 83009 半自動導入非詞元形式 9760040 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameais 0 3439065 9760041 2026-05-15T03:44:36Z TongcyBot 83009 半自動導入非詞元形式 9760041 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameamos 0 3439066 9760042 2026-05-15T03:44:39Z TongcyBot 83009 半自動導入非詞元形式 9760042 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameando 0 3439067 9760043 2026-05-15T03:44:40Z TongcyBot 83009 半自動導入非詞元形式 9760043 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動名詞}} # {{gerund of|pt|enlamear}} 0x7b63qzr6wza3ogin4urcnu0ts29vn enlameara 0 3439068 9760044 2026-05-15T03:44:43Z TongcyBot 83009 半自動導入非詞元形式 9760044 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlamearam 0 3439069 9760045 2026-05-15T03:44:45Z TongcyBot 83009 半自動導入非詞元形式 9760045 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlamearas 0 3439070 9760046 2026-05-15T03:44:47Z TongcyBot 83009 半自動導入非詞元形式 9760046 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameardes 0 3439071 9760047 2026-05-15T03:44:48Z TongcyBot 83009 半自動導入非詞元形式 9760047 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlamearei 0 3439072 9760048 2026-05-15T03:44:51Z TongcyBot 83009 半自動導入非詞元形式 9760048 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameareis 0 3439073 9760049 2026-05-15T03:44:52Z TongcyBot 83009 半自動導入非詞元形式 9760049 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlamearem 0 3439074 9760050 2026-05-15T03:44:54Z TongcyBot 83009 半自動導入非詞元形式 9760050 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlamearemos 0 3439075 9760051 2026-05-15T03:44:56Z TongcyBot 83009 半自動導入非詞元形式 9760051 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameares 0 3439076 9760052 2026-05-15T03:44:58Z TongcyBot 83009 半自動導入非詞元形式 9760052 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlamearia 0 3439077 9760053 2026-05-15T03:45:00Z TongcyBot 83009 半自動導入非詞元形式 9760053 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameariam 0 3439078 9760054 2026-05-15T03:45:02Z TongcyBot 83009 半自動導入非詞元形式 9760054 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlamearias 0 3439079 9760055 2026-05-15T03:45:04Z TongcyBot 83009 半自動導入非詞元形式 9760055 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlamearmos 0 3439080 9760056 2026-05-15T03:45:06Z TongcyBot 83009 半自動導入非詞元形式 9760056 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameará 0 3439081 9760057 2026-05-15T03:45:08Z TongcyBot 83009 半自動導入非詞元形式 9760057 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlamearás 0 3439082 9760058 2026-05-15T03:45:10Z TongcyBot 83009 半自動導入非詞元形式 9760058 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlamearão 0 3439083 9760059 2026-05-15T03:45:12Z TongcyBot 83009 半自動導入非詞元形式 9760059 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlamearíamos 0 3439084 9760060 2026-05-15T03:45:14Z TongcyBot 83009 半自動導入非詞元形式 9760060 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlamearíeis 0 3439085 9760061 2026-05-15T03:45:15Z TongcyBot 83009 半自動導入非詞元形式 9760061 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameasse 0 3439086 9760062 2026-05-15T03:45:17Z TongcyBot 83009 半自動導入非詞元形式 9760062 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameassem 0 3439087 9760063 2026-05-15T03:45:19Z TongcyBot 83009 半自動導入非詞元形式 9760063 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameasses 0 3439088 9760064 2026-05-15T03:45:21Z TongcyBot 83009 半自動導入非詞元形式 9760064 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameaste 0 3439089 9760065 2026-05-15T03:45:23Z TongcyBot 83009 半自動導入非詞元形式 9760065 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameastes 0 3439090 9760066 2026-05-15T03:45:26Z TongcyBot 83009 半自動導入非詞元形式 9760066 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameava 0 3439091 9760067 2026-05-15T03:45:27Z TongcyBot 83009 半自動導入非詞元形式 9760067 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameavam 0 3439092 9760068 2026-05-15T03:45:29Z TongcyBot 83009 半自動導入非詞元形式 9760068 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameavas 0 3439093 9760069 2026-05-15T03:45:32Z TongcyBot 83009 半自動導入非詞元形式 9760069 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameei 0 3439094 9760070 2026-05-15T03:45:34Z TongcyBot 83009 半自動導入非詞元形式 9760070 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameeis 0 3439095 9760071 2026-05-15T03:45:36Z TongcyBot 83009 半自動導入非詞元形式 9760071 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameemos 0 3439096 9760072 2026-05-15T03:45:37Z TongcyBot 83009 半自動導入非詞元形式 9760072 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameia 0 3439097 9760073 2026-05-15T03:45:39Z TongcyBot 83009 半自動導入非詞元形式 9760073 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameiam 0 3439098 9760074 2026-05-15T03:45:41Z TongcyBot 83009 半自動導入非詞元形式 9760074 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameias 0 3439099 9760075 2026-05-15T03:45:43Z TongcyBot 83009 半自動導入非詞元形式 9760075 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameie 0 3439100 9760076 2026-05-15T03:45:46Z TongcyBot 83009 半自動導入非詞元形式 9760076 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameiem 0 3439101 9760077 2026-05-15T03:45:47Z TongcyBot 83009 半自動導入非詞元形式 9760077 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameies 0 3439102 9760078 2026-05-15T03:45:50Z TongcyBot 83009 半自動導入非詞元形式 9760078 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameio 0 3439103 9760079 2026-05-15T03:45:51Z TongcyBot 83009 半自動導入非詞元形式 9760079 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameou 0 3439104 9760080 2026-05-15T03:45:54Z TongcyBot 83009 半自動導入非詞元形式 9760080 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameámos 0 3439105 9760081 2026-05-15T03:45:55Z TongcyBot 83009 半自動導入非詞元形式 9760081 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameáramos 0 3439106 9760082 2026-05-15T03:45:58Z TongcyBot 83009 半自動導入非詞元形式 9760082 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameáreis 0 3439107 9760083 2026-05-15T03:45:59Z TongcyBot 83009 半自動導入非詞元形式 9760083 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameásseis 0 3439108 9760084 2026-05-15T03:46:02Z TongcyBot 83009 半自動導入非詞元形式 9760084 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameássemos 0 3439109 9760085 2026-05-15T03:46:03Z TongcyBot 83009 半自動導入非詞元形式 9760085 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameávamos 0 3439110 9760086 2026-05-15T03:46:06Z TongcyBot 83009 半自動導入非詞元形式 9760086 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlameáveis 0 3439111 9760087 2026-05-15T03:46:08Z TongcyBot 83009 半自動導入非詞元形式 9760087 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlamear}} ely5zocqnribzic19byoccmcwf034w9 enlanguesce 0 3439112 9760088 2026-05-15T03:46:10Z TongcyBot 83009 半自動導入非詞元形式 9760088 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescei 0 3439113 9760089 2026-05-15T03:46:12Z TongcyBot 83009 半自動導入非詞元形式 9760089 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesceis 0 3439114 9760090 2026-05-15T03:46:14Z TongcyBot 83009 半自動導入非詞元形式 9760090 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescem 0 3439115 9760091 2026-05-15T03:46:15Z TongcyBot 83009 半自動導入非詞元形式 9760091 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescemos 0 3439116 9760092 2026-05-15T03:46:17Z TongcyBot 83009 半自動導入非詞元形式 9760092 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescendo 0 3439117 9760093 2026-05-15T03:46:19Z TongcyBot 83009 半自動導入非詞元形式 9760093 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動名詞}} # {{pt-verb form of|enlanguescer}} lgev4dh3gxtsop4146000b58eq7e00v enlanguescera 0 3439118 9760094 2026-05-15T03:46:21Z TongcyBot 83009 半自動導入非詞元形式 9760094 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesceram 0 3439119 9760095 2026-05-15T03:46:23Z TongcyBot 83009 半自動導入非詞元形式 9760095 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesceras 0 3439120 9760096 2026-05-15T03:46:25Z TongcyBot 83009 半自動導入非詞元形式 9760096 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescerdes 0 3439121 9760097 2026-05-15T03:46:27Z TongcyBot 83009 半自動導入非詞元形式 9760097 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescerei 0 3439122 9760098 2026-05-15T03:46:29Z TongcyBot 83009 半自動導入非詞元形式 9760098 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescereis 0 3439123 9760099 2026-05-15T03:46:31Z TongcyBot 83009 半自動導入非詞元形式 9760099 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescerem 0 3439124 9760100 2026-05-15T03:46:33Z TongcyBot 83009 半自動導入非詞元形式 9760100 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesceremos 0 3439125 9760101 2026-05-15T03:46:34Z TongcyBot 83009 半自動導入非詞元形式 9760101 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesceres 0 3439126 9760102 2026-05-15T03:46:37Z TongcyBot 83009 半自動導入非詞元形式 9760102 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesceria 0 3439127 9760103 2026-05-15T03:46:38Z TongcyBot 83009 半自動導入非詞元形式 9760103 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesceriam 0 3439128 9760104 2026-05-15T03:46:41Z TongcyBot 83009 半自動導入非詞元形式 9760104 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescerias 0 3439129 9760105 2026-05-15T03:46:42Z TongcyBot 83009 半自動導入非詞元形式 9760105 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescermos 0 3439130 9760106 2026-05-15T03:46:45Z TongcyBot 83009 半自動導入非詞元形式 9760106 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescerá 0 3439131 9760107 2026-05-15T03:46:46Z TongcyBot 83009 半自動導入非詞元形式 9760107 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescerás 0 3439132 9760108 2026-05-15T03:46:49Z TongcyBot 83009 半自動導入非詞元形式 9760108 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescerão 0 3439133 9760109 2026-05-15T03:46:50Z TongcyBot 83009 半自動導入非詞元形式 9760109 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesceríamos 0 3439134 9760110 2026-05-15T03:46:53Z TongcyBot 83009 半自動導入非詞元形式 9760110 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesceríeis 0 3439135 9760111 2026-05-15T03:46:54Z TongcyBot 83009 半自動導入非詞元形式 9760111 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesces 0 3439136 9760112 2026-05-15T03:46:57Z TongcyBot 83009 半自動導入非詞元形式 9760112 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescesse 0 3439137 9760113 2026-05-15T03:46:58Z TongcyBot 83009 半自動導入非詞元形式 9760113 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescessem 0 3439138 9760114 2026-05-15T03:47:01Z TongcyBot 83009 半自動導入非詞元形式 9760114 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescesses 0 3439139 9760115 2026-05-15T03:47:02Z TongcyBot 83009 半自動導入非詞元形式 9760115 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesceste 0 3439140 9760116 2026-05-15T03:47:05Z TongcyBot 83009 半自動導入非詞元形式 9760116 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescestes 0 3439141 9760117 2026-05-15T03:47:06Z TongcyBot 83009 半自動導入非詞元形式 9760117 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesceu 0 3439142 9760118 2026-05-15T03:47:09Z TongcyBot 83009 半自動導入非詞元形式 9760118 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesci 0 3439143 9760119 2026-05-15T03:47:10Z TongcyBot 83009 半自動導入非詞元形式 9760119 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescia 0 3439144 9760120 2026-05-15T03:47:13Z TongcyBot 83009 半自動導入非詞元形式 9760120 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesciam 0 3439145 9760121 2026-05-15T03:47:14Z TongcyBot 83009 半自動導入非詞元形式 9760121 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescias 0 3439146 9760122 2026-05-15T03:47:17Z TongcyBot 83009 半自動導入非詞元形式 9760122 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescida 0 3439147 9760123 2026-05-15T03:47:18Z TongcyBot 83009 半自動導入非詞元形式 9760123 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{head|pt|過去分詞變格形|g=f-s}} # {{feminine singular of|pt|enlanguescido}} dhdajomh0z7xakndhz0t8t45zj7e4ya enlanguescidas 0 3439148 9760124 2026-05-15T03:47:21Z TongcyBot 83009 半自動導入非詞元形式 9760124 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{head|pt|過去分詞變格形|g=f-p}} # {{feminine plural of|pt|enlanguescido}} r08n6i8tqdyvnmrbhz8stp24luan84f enlanguescido 0 3439149 9760125 2026-05-15T03:47:22Z TongcyBot 83009 半自動導入非詞元形式 9760125 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{pt-pp}} # {{past participle of|pt|enlanguescer}} mzneqznd2s0oyj4ahkl2hauwm29dwyp enlanguescidos 0 3439150 9760126 2026-05-15T03:47:24Z TongcyBot 83009 半自動導入非詞元形式 9760126 wikitext text/x-wiki ==葡萄牙語== ===分詞=== {{head|pt|過去分詞變格形|g=m-p}} # {{masculine plural of|pt|enlanguescido}} ad57b6zu974cd5f40qcbiwdc3hixdf8 enlanguescêramos 0 3439151 9760127 2026-05-15T03:47:26Z TongcyBot 83009 半自動導入非詞元形式 9760127 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescêreis 0 3439152 9760128 2026-05-15T03:47:28Z TongcyBot 83009 半自動導入非詞元形式 9760128 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescêsseis 0 3439153 9760129 2026-05-15T03:47:30Z TongcyBot 83009 半自動導入非詞元形式 9760129 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescêssemos 0 3439154 9760130 2026-05-15T03:47:32Z TongcyBot 83009 半自動導入非詞元形式 9760130 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescíamos 0 3439155 9760131 2026-05-15T03:47:34Z TongcyBot 83009 半自動導入非詞元形式 9760131 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguescíeis 0 3439156 9760132 2026-05-15T03:47:36Z TongcyBot 83009 半自動導入非詞元形式 9760132 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesça 0 3439157 9760133 2026-05-15T03:47:37Z TongcyBot 83009 半自動導入非詞元形式 9760133 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesçais 0 3439158 9760134 2026-05-15T03:47:40Z TongcyBot 83009 半自動導入非詞元形式 9760134 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesçam 0 3439159 9760135 2026-05-15T03:47:41Z TongcyBot 83009 半自動導入非詞元形式 9760135 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesçamos 0 3439160 9760136 2026-05-15T03:47:44Z TongcyBot 83009 半自動導入非詞元形式 9760136 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesças 0 3439161 9760137 2026-05-15T03:47:46Z TongcyBot 83009 半自動導入非詞元形式 9760137 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd enlanguesço 0 3439162 9760138 2026-05-15T03:47:48Z TongcyBot 83009 半自動導入非詞元形式 9760138 wikitext text/x-wiki ==葡萄牙語== ===動詞=== {{head|pt|動詞變位形式}} # {{pt-verb form of|enlanguescer}} eo3ty7pihlkgk1malf1yktqsxu0lazd 文格 0 3439163 9760145 2026-05-15T06:09:42Z Fglffer 55252 新詞條 9760145 wikitext text/x-wiki ==漢語== {{zh-forms}} ===發音=== {{zh-pron |m=wéngé |cat=n }} ===名詞=== {{head|zh|名詞}} # [[文章]]的[[風格]] # [[公文]][[用紙]] ==日語== {{ja-kanjitab|ぶん|かく|yomi=o}} ===發音=== {{ja-pron|ぶんかく|acc=0|acc_ref=DJR}} ===名詞=== {{ja-noun|ぶんかく}} # [[文章]]的[[風格]] ===來源=== <references/> ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=문격}} # {{hanja form of|문격}} 64mjpe21s0sjp4onpxspn87tsdp0sim ぶんかく 0 3439164 9760146 2026-05-15T06:11:27Z Fglffer 55252 新詞條 9760146 wikitext text/x-wiki ==日語== {{ja-see|文革|文格|分画}} cmmvo5opjy7nuscm7s7019ijebdbx83 磇霜 0 3439165 9760152 2026-05-15T06:28:13Z Fglffer 55252 新詞條 9760152 wikitext text/x-wiki ==漢語== {{zh-see|砒霜}} 95ajyxiv8enuwma991tb840mffkjexg ひりつ 0 3439166 9760158 2026-05-15T06:47:08Z Fglffer 55252 新詞條 9760158 wikitext text/x-wiki ==日語== {{ja-see-kango|比率}} npb568a2fnblwxiqc96uyklq042hi0t 鼓舞人心 0 3439167 9760161 2026-05-15T07:00:22Z Fglffer 55252 新詞條 9760161 wikitext text/x-wiki ==漢語== {{zh-forms|type=22}} ===發音=== {{zh-pron |m=gǔwǔrénxīn |c=gu2 mou5 jan4 sam1 |cat=id }} ===俗語=== {{head|zh|俗語}} # [[振奮]]人們的[[信心]];[[增強]]人們的[[勇氣]] 2wzneij7bd856kdepfp0fmhero2tr1m 故國 0 3439168 9760167 2026-05-15T08:13:41Z Fglffer 55252 [[w:WP:AES|←]]建立內容為「==漢語== {{zh-forms|s=故国}} ===發音=== {{zh-pron |m=gùguó |c=gu3 gwok3 |mc=y |oc=2,1 |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|literary}} [[歷史]][[悠久]]的[[國家]] # {{lb|zh|literary}} [[古國]] # {{lb|zh|literary}} [[祖國]] # {{lb|zh|literary}} [[家鄉]] # {{lb|zh|literary}} 已經[[滅亡]]的國家 # {{lb|zh|literary}} [[舊都]];[[古城]] ====同義詞==== * {{s|祖國}} {{syn-saurus|zh|祖國}} *…」的新頁面 9760167 wikitext text/x-wiki ==漢語== {{zh-forms|s=故国}} ===發音=== {{zh-pron |m=gùguó |c=gu3 gwok3 |mc=y |oc=2,1 |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|literary}} [[歷史]][[悠久]]的[[國家]] # {{lb|zh|literary}} [[古國]] # {{lb|zh|literary}} [[祖國]] # {{lb|zh|literary}} [[家鄉]] # {{lb|zh|literary}} 已經[[滅亡]]的國家 # {{lb|zh|literary}} [[舊都]];[[古城]] ====同義詞==== * {{s|祖國}} {{syn-saurus|zh|祖國}} * {{s|家鄉}} {{syn-saurus|zh|家鄉}} {{C|zh|國家}} ==日語== {{ja-kanjitab|こ|こく|yomi=o}} ===名詞=== {{ja-noun|ここく}} # {{ja-kyu sp|故国}} ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=고국}} # {{hanja form of|고국}} rh8ondhktcuu6m9tku4w3mbeuvlznd5 9760173 9760167 2026-05-15T08:23:12Z Sayonzei 40728 /* 名詞 */ 9760173 wikitext text/x-wiki ==漢語== {{zh-forms|s=故国}} ===發音=== {{zh-pron |m=gùguó |c=gu3 gwok3 |mc=y |oc=2,1 |cat=n }} ===名詞=== {{head|zh|名詞}} # {{lb|zh|literary}} [[歷史]][[悠久]]的[[國家]] # {{lb|zh|literary}} [[古國]] # {{lb|zh|literary}} [[祖國]] #* {{zh-x|苟 與 人 之 異,惡{wù} 往 而 不 黜 乎?猶且 黜 乎?寧 於 故國 爾。|ref=Zhanguoce}} # {{lb|zh|literary}} [[家鄉]] # {{lb|zh|literary}} 已經[[滅亡]]的國家 #* {{zh-x|小樓 昨夜 又 東風,故國 不堪回首 月明 中。||CI|ref=南唐·{{w|李煜}}《[[s:虞美人 (春花秋月何時了)|虞美人·春花秋月何時了]]》}} # {{lb|zh|literary}} [[舊都]];[[古城]] #* {{zh-x|齊 人 攻 ^衛,拔 故國,殺 @^子良;^衛 人 不 割,而 故地 複 反。|ref=Shiji}} ====同義詞==== * {{s|祖國}} {{syn-saurus|zh|祖國}} * {{s|家鄉}} {{syn-saurus|zh|家鄉}} {{C|zh|國家}} ==日語== {{ja-kanjitab|こ|こく|yomi=o}} ===名詞=== {{ja-noun|ここく}} # {{ja-kyu sp|故国}} ==朝鮮語== {{ko-hanjatab}} ===名詞=== {{ko-noun|hangeul=고국}} # {{hanja form of|고국}} lmnct6tl0d98or2sxo5igwxezdq9dwg hiritsu 0 3439169 9760168 2026-05-15T08:16:22Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==日語== ===羅馬化=== {{ja-romaji}} # {{ja-romanization of|ひりつ}}」的新頁面 9760168 wikitext text/x-wiki ==日語== ===羅馬化=== {{ja-romaji}} # {{ja-romanization of|ひりつ}} 68rla4xpx4i3jkspw1izoe8bri2ju4e honpō 0 3439170 9760170 2026-05-15T08:18:02Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==日語== ===羅馬化=== {{ja-rom}} # {{ja-rom of|ほんぽう}}」的新頁面 9760170 wikitext text/x-wiki ==日語== ===羅馬化=== {{ja-rom}} # {{ja-rom of|ほんぽう}} 4qbqp674grxl2uf84ppx1ysfe02tbj4 seichi 0 3439171 9760174 2026-05-15T08:23:40Z Sayonzei 40728 [[w:WP:AES|←]]建立內容為「==日語== ===羅馬化=== {{ja-romaji}} # {{ja-romanization of|せいち}}」的新頁面 9760174 wikitext text/x-wiki ==日語== ===羅馬化=== {{ja-romaji}} # {{ja-romanization of|せいち}} apv76wvd5kuqykk1n80xtxvfm2yelny こうたん 0 3439172 9760177 2026-05-15T08:28:18Z Fglffer 55252 新詞條 9760177 wikitext text/x-wiki ==日語== {{ja-see|後端|降誕|荒誕}} gk6kmdwi4038uqf7tnpbhgbkvmydbvv