Wiksiyonaryo tlwiktionary https://tl.wiktionary.org/wiki/Wiksiyonaryo:Unang_Pahina MediaWiki 1.46.0-wmf.24 case-sensitive Midya Natatangi Usapan Tagagamit Usapang tagagamit Wiksiyonaryo Usapang Wiksiyonaryo Talaksan Usapang talaksan MediaWiki Usapang MediaWiki Padron Usapang padron Tulong Usapang tulong Kategorya Usapang kategorya TimedText TimedText talk Module Module talk Event Event talk pok-pok 0 4467 176758 12685 2026-04-27T09:43:44Z Hiyuune 5522 Removed redirect to [[pokpok]] 176758 wikitext text/x-wiki {{also|pokpok}} =={{=tl=}}== ===Pangngalan=== {{tl-noun|b=+}} # {{alt sp|tl|pokpok}} 4qmqh94c8dojaoyh2s1rflyhcaymqrg fisarmonica 0 5382 176762 165384 2026-04-27T11:13:30Z Hiyuune 5522 176762 wikitext text/x-wiki =={{=it=}}== ===Etimolohiya=== {{uder|it|grc|φῦσα}} + {{m|it|armonica}}, ''pambabae ng'': {{m|it|armonico}}, ''palakasama'' ===Pagbigkas=== * {{audio|it|LL-Q652 (ita)-LangPao-fisarmonica.wav}} ===Pangngalan=== {{it-noun|f}} # [[akurdyon]] ===Anagramo=== * {{anagrams|it|a=aacfiimnors|africanismo}} {{C|it|Instrumentong musikal}} 6gbx7846rpwzmupj27sfh8ywm1eeal5 due 0 9454 176755 168645 2026-04-27T09:32:40Z Hiyuune 5522 176755 wikitext text/x-wiki =={{=en=}}== {{wp|en:}} ===Pang-ukol=== {{en-adj}} # ukol sa k289uql86qt53j5qqra2et6tan726q5 首发 0 9807 176747 148449 2026-04-27T00:09:41Z Yivan000 4078 176747 wikitext text/x-wiki =={{=zh=}}== {{zh-see|首發}} pb784y452ojfekq47okq9f5hz04d85f atmosfeer 0 14261 176735 175642 2026-04-26T14:25:15Z Hiyuune 5522 /* {{=nl=}} */ 176735 wikitext text/x-wiki =={{=nl=}}== ===Pagbigkas=== * {{IPA|nl|/ˌɑt.mɔˈsfeːr/|/ˌɑt.mɔsˈfeːr/}} * {{audio|nl|Nl-atmosfeer.ogg}} * {{hyphenation|nl|at|mo|sfeer}} * {{rhyme|nl|eːr|s=3}} ===Pangngalan=== {{nl-noun|m|-en|+}} # {{lb|nl|planets|meteorology|astronomy}} [[atmospera]] #: {{syn|nl|dampkring}} ====Katawagang hinango==== * {{l|nl|atmosferisch}} ====Salitang inapo==== * {{desc|af|atmosfeer}} * {{desc|id|bor=1|atmosfer}} 6oejck9x3oqn66yw4hq9md8vvj1btij aardmannetje 0 14999 176732 175645 2026-04-26T12:27:11Z Hiyuune 5522 /* Nerlandes */ 176732 wikitext text/x-wiki =={{=nl=}}== ===Pangngalan=== {{nl-noun|n|-|+}} # [[pilyo]] 3chhxigkqrgdi9ibi594etkcavffgiy bandeloosheid 0 15118 176752 175639 2026-04-27T09:19:56Z Hiyuune 5522 /* {{=nl=}} */ 176752 wikitext text/x-wiki =={{=nl=}}== ===Pangngalan=== {{nl-noun|f|bandeloosheden|-}} # [[pahintulot]] 5ek0pvm5lcfivq5facsae7euknay5nc bulbo oculare 0 20035 176756 146924 2026-04-27T09:33:33Z Hiyuune 5522 176756 wikitext text/x-wiki =={{=it=}}== ===Pangngalan=== {{it-noun|m}} # {{lb|it|anatomy}} bilog o bolo ng mata tiiatorq7zf4u62x23lhtjfyzhjizv1 Padron:request box 10 27534 176739 102500 2026-04-26T14:34:43Z Hiyuune 5522 176739 wikitext text/x-wiki {{#invoke:checkparams|error}}<!-- Validate template parameters --><templatestyles src="Module:message box/styles.css" />{{#ifeq:{{yesno|{{{inline|}}}}}|yes|{{maintenance line|{{{2}}}}} |<div class="noprint request-box" style="width: fit-content"> {{{!}} {{!}}{{{1}}} {{!}}{{{2}}} {{!}}}</div>}}<!-- --><noinclude>{{documentation}}</noinclude> h2fcg1bmjq0i7fbdgbwm54672hqp22g Module:labels/data/topical 828 31282 176754 176223 2026-04-27T09:29:53Z Hiyuune 5522 176754 Scribunto text/plain local labels = {} -- To sort these, you first have to convert each label section into a single line, and then sort the lines, and undo -- the single-line conversion. This can be done using Vim commands, something like this: -- 1. Mark the first line to be changed using `ma`. -- 2. Go to the last line and use `'a,.s/\n/\\n/g` to convert newlines to \n sequences. -- 3. Use `'a,.s/\\n\\n/\r/g` to convert sequences of two \n's (marking section divisions) back to newlines. -- 4. Go to the last line again and use `'a,.!sort -f -d` to sort. The `-f` makes it case-insensitive and the `-d` -- selects "dictionary order", which is needed to get 'yoga' to sort before 'yoga pose' instead of the other way -- around. -- 5. Go to the last line again and use `'a,.s/\\n/\r/g` to convert \n sequences back to newlines. -- 6. Go to the last line again and use `'a,.s/^labels/\rlabels/` to put an extra newline before each section. labels["3D printing"] = { aliases = {"3D printer", "3D printers"}, Wiktionary = "3D printing#Noun", Wikipedia = true, Wikidata = "Q229367", topical_categories = true, } labels["ABDL"] = { aliases = {"AB/DL"}, Wiktionary = true, Wikipedia = true, topical_categories = true, } labels["Abrahamism"] = { Wiktionary = "Abrahamism#Noun", topical_categories = true, } labels["accounting"] = { Wiktionary = "accounting#Noun", topical_categories = true, } labels["acoustics"] = { Wiktionary = true, topical_categories = true, } labels["acting"] = { Wiktionary = "acting#Noun", topical_categories = true, } labels["advertising"] = { Wiktionary = "advertising#Noun", topical_categories = true, } labels["aeronautics"] = { Wiktionary = true, topical_categories = true, } labels["aerospace"] = { Wiktionary = true, topical_categories = true, } labels["aesthetic"] = { aliases = {"aesthetics"}, Wiktionary = true, topical_categories = "Aesthetics", } labels["agrikultura"] = { --TLCHANGE aliases = {"agriculture", "farming"}, --TLCHANGE Wiktionary = true, topical_categories = true, } labels["Ahmadiyya"] = { aliases = {"Ahmadiyyat", "Ahmadi"}, Wiktionary = true, topical_categories = true, } labels["aircraft"] = { Wiktionary = true, topical_categories = true, } labels["alchemy"] = { Wiktionary = true, topical_categories = true, } labels["alcoholic beverages"] = { aliases = {"alcohol"}, display = "[[alcoholic#Adjective|alcoholic]] [[beverage]]s", topical_categories = true, } labels["alcoholism"] = { Wiktionary = true, topical_categories = true, } labels["algebra"] = { Wiktionary = true, topical_categories = true, } labels["algebraic geometry"] = { Wiktionary = true, topical_categories = true, } labels["algebraic topology"] = { Wiktionary = true, topical_categories = true, } labels["alternative history"] = { aliases = {"alt hist", "alternate history"}, Wikidata = "Q224989", topical_categories = true, } labels["alternative medicine"] = { Wiktionary = true, topical_categories = true, } labels["alt-right"] = { aliases = {"altright", "Alt-right", "Altright"}, Wiktionary = true, topical_categories = true, } labels["amateur radio"] = { aliases = {"ham radio"}, Wiktionary = true, topical_categories = true, } labels["American football"] = { Wiktionary = true, topical_categories = "Football (American)", } labels["amino acid"] = { display = "[[biochemistry]]", topical_categories = "Amino acids", } labels["analytic geometry"] = { Wiktionary = true, topical_categories = "Geometry", } labels["analytical chemistry"] = { display = "[[analytical]] [[chemistry]]", topical_categories = true, } labels["anarchism"] = { Wiktionary = true, topical_categories = true, } labels["anatomiya"] = { --TLCHANGE aliases = {"anatomy"}, --TLCHANGE Wiktionary = true, topical_categories = true, } labels["Ancient Greece"] = { aliases = {"ancient Greece"}, Wiktionary = true, topical_categories = true, } labels["Ancient Rome"] = { aliases = {"ancient Rome"}, Wiktionary = true, topical_categories = true, } labels["Anglicanism"] = { aliases = {"Anglican", "Anglicanist", "Anglican Church"}, Wiktionary = true, topical_categories = true, } labels["animation"] = { Wiktionary = true, topical_categories = true, } labels["anime"] = { Wiktionary = true, topical_categories = "Japanese fiction", } labels["anthropology"] = { Wiktionary = true, topical_categories = true, } labels["Arabian god"] = { display = "[[Arabian]] [[mythology]]", topical_categories = "Arabian deities", } labels["arachnology"] = { Wiktionary = true, topical_categories = true, } labels["archaeological culture"] = { aliases = {"archeological culture", "archaeological cultures", "archeological cultures"}, display = "[[archaeology]]", topical_categories = "Archaeological cultures", } labels["archaeology"] = { aliases = {"archeology"}, Wiktionary = true, topical_categories = true, } labels["archery"] = { Wiktionary = true, topical_categories = true, } labels["architectural element"] = { aliases = {"architectural elements"}, display = "[[architecture]]", topical_categories = "Architectural elements", } labels["architecture"] = { Wiktionary = true, topical_categories = true, } labels["Argentine politics"] = { aliases = {"Argentina politics", "Argentinian politics"}, Wikipedia = "Politics of Argentina", topical_categories = true, } labels["arithmetic"] = { Wiktionary = true, topical_categories = true, } labels["Armenian mythology"] = { display = "[[Armenian]] [[mythology]]", topical_categories = true, } labels["art"] = { aliases = {"arts"}, Wiktionary = "art#Noun", topical_categories = true, } labels["Arthurian legend"] = { aliases = {"Arthurian mythology"}, Wikipedia = "Matter_of_Britain#Arthurian_legend", topical_categories = "Arthurian mythology", } labels["artificial intelligence"] = { aliases = {"AI"}, Wiktionary = true, topical_categories = true, } labels["artillery"] = { display = "[[weaponry]]", topical_categories = true, } labels["artistic work"] = { display = "[[art#Noun|art]]", topical_categories = "Artistic works", } labels["asterism"] = { display = "[[uranography]]", topical_categories = "Asterisms", } labels["asteroid"] = { display = "[[astronomy]]", topical_categories = {"Asteroids", "Astronomy"} } labels["astrology"] = { aliases = {"horoscope", "zodiac"}, Wiktionary = true, topical_categories = true, } labels["astronautics"] = { aliases = {"rocketry"}, Wiktionary = true, topical_categories = true, } labels["astronomy"] = { Wiktionary = true, topical_categories = true, } labels["astrophysics"] = { Wiktionary = true, topical_categories = true, } labels["Asturian mythology"] = { display = "[[Asturian]] [[mythology]]", topical_categories = true, } labels["athletics"] = { Wiktionary = true, topical_categories = true, } labels["Australian Aboriginal mythology"] = { Wikipedia = true, topical_categories = true, } labels["Australian politics"] = { Wikipedia = "Politics of Australia", topical_categories = true, } labels["Australian rules football"] = { Wiktionary = true, topical_categories = true, } labels["autism"] = { Wiktionary = true, Wikipedia = true, topical_categories = true, } labels["auto parts"] = { display = "[[automotive]]", topical_categories = true, } labels["automotive"] = { aliases = {"automotives"}, Wiktionary = true, topical_categories = true, } labels["aviation"] = { aliases = {"air transport"}, Wiktionary = true, topical_categories = true, } labels["backgammon"] = { Wiktionary = true, topical_categories = true, } labels["bacteria"] = { display = "[[bacteriology]]", topical_categories = true, } labels["bacteriology"] = { Wiktionary = true, topical_categories = true, } labels["badminton"] = { Wiktionary = true, topical_categories = true, } labels["baking"] = { Wiktionary = "baking#Noun", topical_categories = true, } labels["ball games"] = { aliases = {"ball sports"}, display = "[[ball game]]s", topical_categories = true, } labels["ballet"] = { Wiktionary = true, topical_categories = true, } labels["ballistics"] = { Wiktionary = true, topical_categories = true, } labels["Bangladeshi politics"] = { Wikipedia = "Politics of Bangladesh", topical_categories = true, } labels["banking"] = { Wiktionary = "banking#Noun", topical_categories = true, } labels["baseball"] = { Wiktionary = true, topical_categories = true, } labels["basketball"] = { Wiktionary = true, topical_categories = true, } labels["BDSM"] = { Wiktionary = true, topical_categories = true, } labels["beekeeping"] = { aliases = {"melittology", "apiology", "apidology"}, -- could potentially be split out Wiktionary = true, topical_categories = true, } labels["beer"] = { Wiktionary = true, topical_categories = true, } labels["betting"] = { aliases = {"bet", "bets"}, display = "[[gambling#Noun|gambling]]", topical_categories = true, } labels["biblical"] = { aliases = {"Bible", "bible", "Biblical"}, Wiktionary = "Bible", topical_categories = "Bible", } labels["biblical character"] = { aliases = {"Biblical character", "biblical figure", "Biblical figure"}, display = "[[Bible|biblical]]", topical_categories = "Biblical characters", } labels["bibliography"] = { Wiktionary = true, topical_categories = true, } labels["bicycle parts"] = { aliases = {"bicycle part"}, display = "[[w:List of bicycle parts|cycling]]", topical_categories = true, } labels["billiards"] = { aliases = {"cue sports"}, Wiktionary = true, topical_categories = true, } labels["bingo"] = { Wiktionary = true, topical_categories = true, } labels["biochemistry"] = { Wiktionary = true, topical_categories = true, } labels["biology"] = { aliases = {"biological"}, Wiktionary = true, topical_categories = true, } labels["biotechnology"] = { aliases = {"biotechnological"}, Wiktionary = true, topical_categories = true, } labels["birdwatching"] = { aliases = {"birding"}, Wiktionary = "birdwatching#Noun", topical_categories = true, } labels["blacksmithing"] = { aliases = {"blacksmith"}, Wiktionary = true, topical_categories = true, } labels["blogging"] = { aliases = {"blog"}, Wiktionary = "blogging#Noun", topical_categories = "Internet", } labels["board games"] = { aliases = {"board game"}, display = "[[board game]]s", topical_categories = true, } labels["board sports"] = { Wiktionary = "boardsport", topical_categories = true, } labels["bodybuilding"] = { Wiktionary = "bodybuilding#Noun", topical_categories = true, } labels["book of the Bible"] = { aliases = {"book of the bible", "books of the Bible", "books of the bible", "Biblical book", "biblical book"}, display = "[[Bible|biblical]]", topical_categories = "Books of the Bible", } labels["bookbinding"] = { Wiktionary = true, topical_categories = true, } labels["botany"] = { Wiktionary = true, topical_categories = true, } labels["bowling"] = { Wiktionary = "bowling#Noun", topical_categories = true, } labels["bowls"] = { aliases = {"lawn bowls", "crown green bowls"}, Wiktionary = true, topical_categories = "Bowls (game)", } labels["boxing"] = { Wiktionary = "boxing#Noun", topical_categories = true, } labels["brass instruments"] = { aliases = {"brass instrument"}, display = "[[music]]", topical_categories = true, } labels["Brazilian politics"] = { Wikipedia = "Politics of Brazil", topical_categories = true, } labels["brewing"] = { Wiktionary = "brewing#Noun", topical_categories = true, } labels["bridge"] = { Wiktionary = "bridge#English:_game", topical_categories = true, } labels["broadcasting"] = { Wiktionary = "broadcasting#Noun", topical_categories = true, } labels["bryology"] = { Wiktionary = true, topical_categories = true, } labels["Buddhism"] = { Wiktionary = true, topical_categories = true, } labels["Buddhist deity"] = { aliases = {"Buddhist god", "Buddhist goddess"}, display = "[[Buddhism]]", topical_categories = "Buddhist deities", } labels["bullfighting"] = { aliases = {"bullfight"}, Wiktionary = true, topical_categories = true, } labels["business"] = { aliases = {"professional"}, Wiktionary = true, topical_categories = true, } labels["Byzantine Empire"] = { aliases = {"Byzantine"}, Wiktionary = true, topical_categories = true, } labels["calculus"] = { Wiktionary = true, topical_categories = true, } labels["calligraphy"] = { Wiktionary = true, topical_categories = true, } labels["Calvinism"] = { aliases = {"Calvinist", "Reformed Christianity", "Calvinist Church", "Reformed Church"}, Wikipedia = true, topical_categories = true, } labels["Canadian football"] = { Wiktionary = true, topical_categories = true, } labels["Canadian politics"] = { Wikipedia = "Politics of Canada", topical_categories = true, } labels["Candomblé"] = { aliases = {"candomblé"}, Wiktionary = true, topical_categories = true, } labels["canid"] = { display = "[[zoology]]", topical_categories = "Canids", } labels["canoeing"] = { aliases = {"canoe"}, Wiktionary = "canoeing#Noun", topical_categories = "Water sports", } labels["capitalism"] = { aliases = {"capitalist"}, Wiktionary = true, topical_categories = true, } labels["carbohydrate"] = { aliases = {"carbohydrates"}, display = "[[biochemistry]]", topical_categories = "Carbohydrates", } labels["carboxylic acid"] = { aliases = {"carboxylic acids"}, display = "[[organic chemistry]]", topical_categories = "Carboxylic acids", } labels["card games"] = { aliases = {"cards", "card game", "playing card"}, display = "[[card game]]s", topical_categories = true, } labels["cardiology"] = { Wiktionary = true, topical_categories = true, } labels["carpentry"] = { Wiktionary = true, topical_categories = true, } labels["cartography"] = { Wiktionary = true, topical_categories = true, } labels["cartomancy"] = { Wiktionary = true, topical_categories = true, } labels["castells"] = { Wiktionary = true, topical_categories = true, } labels["category theory"] = { Wiktionary = true, topical_categories = true, } labels["Catholicism"] = { aliases = {"catholicism", "Catholic", "catholic"}, Wiktionary = true, topical_categories = true, } labels["caving"] = { Wiktionary = "caving#Noun", topical_categories = true, } labels["cellular automata"] = { Wiktionary = true, topical_categories = true, } labels["Celtic mythology"] = { display = "[[Celtic]] [[mythology]]", topical_categories = true, } labels["ceramics"] = { Wiktionary = true, topical_categories = true, } labels["cheerleading"] = { Wiktionary = "cheerleading#Noun", topical_categories = true, } labels["chemical element"] = { display = "[[chemistry]]", topical_categories = "Chemical elements", } labels["chemical engineering"] = { Wiktionary = true, topical_categories = true, } labels["chemistry"] = { aliases = {"chemical"}, Wiktionary = true, topical_categories = true, } labels["chess"] = { Wiktionary = true, topical_categories = true, } labels["children's games"] = { aliases = {"children's game"}, display = "[[children|children's]] [[game]]s", topical_categories = true, } labels["Chilean politics"] = { Wikipedia = "Politics of Chile", topical_categories = true, } labels["Chinese astronomy"] = { display = "[[Chinese]] [[astronomy]]", topical_categories = true, } labels["Chinese calligraphy"] = { display = "[[Chinese]] [[calligraphy]]", topical_categories = "Calligraphy", } labels["Chinese constellation"] = { display = "[[Chinese]] [[astronomy]]", topical_categories = "Constellations", } labels["Chinese folk religion"] = { display = "[[Chinese]] [[folk religion]]", topical_categories = "Religion", } labels["Chinese linguistics"] = { display = "[[Chinese]] [[linguistics]]", topical_categories = "Linguistics", } labels["Chinese mythology"] = { display = "[[Chinese]] [[mythology]]", topical_categories = true, } labels["Chinese philosophy"] = { display = "[[Chinese]] [[philosophy]]", topical_categories = true, } labels["Chinese phonetics"] = { display = "[[Chinese]] [[phonetics]]", topical_categories = true, } labels["Chinese religion"] = { display = "[[Chinese]] [[religion]]", topical_categories = "Religion", } labels["Chinese star"] = { display = "[[Chinese]] [[astronomy]]", topical_categories = "Stars", } labels["Christianity"] = { aliases = {"christianity", "Christian", "christian"}, Wiktionary = true, topical_categories = true, } labels["Church of England"] = { aliases = {"C of E", "CofE"}, Wikipedia = true, topical_categories = true, } labels["Church of the East"] = { Wiktionary = true, topical_categories = true, } labels["cinematography"] = { aliases = {"filmology"}, Wiktionary = true, topical_categories = true, } labels["cladistics"] = { Wiktionary = true, topical_categories = "Taxonomy", } labels["classical mechanics"] = { Wiktionary = true, topical_categories = true, } labels["classical studies"] = { Wiktionary = true, topical_categories = true, } labels["climate change"] = { Wiktionary = true, topical_categories = true, } labels["climatology"] = { Wiktionary = true, topical_categories = true, } labels["climbing"] = { aliases = {"rock climbing"}, Wiktionary = "climbing#Noun", topical_categories = true, } labels["clinical psychology"] = { display = "[[clinical]] [[psychology]]", topical_categories = true, } labels["clothing"] = { Wiktionary = "clothing#Noun", topical_categories = true, } labels["cloud computing"] = { Wiktionary = true, topical_categories = "Computing", } labels["cockfighting"] = { aliases = {"cockfight"}, Wiktionary = true, topical_categories = true, } labels["codicology"] = { Wiktionary = true, topical_categories = true, } labels["coenzyme"] = { aliases = {"coenzymes"}, display = "[[biochemistry]]", topical_categories = "Coenzymes", } labels["coins"] = { -- Do not merge with "numismatics", as the category is different. aliases = {"coin"}, display = "[[numismatics]]", topical_categories = true, } labels["collectible card games"] = { aliases = {"trading card games", "collectible cards", "trading cards"}, Wikipedia = true, topical_categories = true, } labels["combinatorics"] = { Wiktionary = true, topical_categories = true, } labels["comedy"] = { Wiktionary = true, topical_categories = true, } labels["comics"] = { Wiktionary = true, topical_categories = true, } labels["commerce"] = { Wiktionary = true, topical_categories = true, } labels["commercial law"] = { display = "[[commercial#Adjective|commercial]] [[law]]", topical_categories = true, } labels["communication"] = { aliases = {"communications"}, Wiktionary = true, topical_categories = true, } labels["communism"] = { aliases = {"Communism", "communist"}, Wiktionary = true, topical_categories = true, } labels["compilation"] = { aliases = {"compiler"}, display = "[[software]] [[compilation]]", topical_categories = true, } labels["complex analysis"] = { Wiktionary = true, topical_categories = true, } labels["computational linguistics"] = { Wiktionary = true, topical_categories = true, } labels["computer chess"] = { Wiktionary = true, topical_categories = true, } labels["computer games"] = { aliases = {"computer game", "computer gaming"}, display = "[[computer game]]s", topical_categories = "Video games", } labels["computer graphics"] = { Wiktionary = true, topical_categories = true, } labels["computer hardware"] = { display = "[[computer]] [[hardware]]", topical_categories = true, } labels["computer languages"] = { aliases = {"computer language", "programming language", "programming languages"}, display = "[[computer language]]s", topical_categories = true, } labels["computer science"] = { aliases = {"comp sci", "CompSci", "compsci"}, Wiktionary = true, topical_categories = true, } labels["computer security"] = { Wiktionary = true, topical_categories = true, } labels["computing"] = { aliases = {"computer", "computers"}, Wiktionary = "computing#Noun", topical_categories = true, } labels["computing theory"] = { aliases = {"comptheory", "computability theory"}, display = "[[computing#Noun|computing]] [[theory]]", topical_categories = "Theory of computing", } labels["conchology"] = { Wiktionary = true, topical_categories = true, } labels["Confucianism"] = { Wiktionary = true, topical_categories = true, } labels["conlanging"] = { aliases = {"conlang", "conlanger", "constructed languages", "constructed language"}, Wiktionary = true, topical_categories = true, } labels["conservatism"] = { aliases = {"conservative"}, Wiktionary = true, topical_categories = true, } labels["conspiracy theories"] = { aliases = {"conspiracy theory", "conspiracy"}, Wiktionary = "conspiracy theory#Noun", topical_categories = true, } labels["constellation"] = { display = "[[astronomy]]", topical_categories = "Constellations", } labels["construction"] = { Wiktionary = true, topical_categories = true, } labels["control theory"] = { Wiktionary = true, topical_categories = true, } labels["cooking"] = { aliases = {"culinary", "cuisine", "cookery", "gastronomy"}, Wiktionary = "cooking#Noun", topical_categories = true, } labels["cookware"] = { aliases = {"bakeware"}, display = "[[cooking#Noun|cooking]]", topical_categories = "Cookware and bakeware", } labels["Coptic Orthodoxy"] = { aliases = {"Coptic Orthodox", "Coptic Orthodox Church"}, Wikipedia = true, topical_categories = true, } labels["copyright"] = { aliases = {"copyright law", "intellectual property", "intellectual property law", "IP law"}, display = "[[copyright]] [[law]]", topical_categories = true, } labels["copyright license"] = { aliases = {"copyright licenses", "license", "copyright licence", "copyright licences", "licence"}, display = "[[w:Copyright license|copyright law]]", Wikipedia = true, topical_categories = "Copyright licenses", } labels["cosmetics"] = { aliases = {"cosmetology"}, Wiktionary = true, topical_categories = true, } labels["cosmology"] = { Wiktionary = true, topical_categories = true, } labels["creationism"] = { aliases = {"baraminology"}, Wiktionary = "creationism#English", topical_categories = true, } labels["cribbage"] = { Wiktionary = true, topical_categories = true, } labels["cricket"] = { Wiktionary = true, topical_categories = true, } labels["crime"] = { aliases = {"criminal"}, Wiktionary = true, topical_categories = true, } labels["criminal law"] = { Wiktionary = true, topical_categories = true, } labels["criminology"] = { Wiktionary = true, topical_categories = true, } labels["crochet"] = { aliases = {"crocheting"}, Wiktionary = true, topical_categories = true, } labels["croquet"] = { Wiktionary = true, topical_categories = true, } labels["crosswording"] = { aliases = {"crosswords", "cruciverbalism", "cryptic crosswords", "crossword puzzles"}, Wiktionary = true, topical_categories = true, } labels["cryptocurrencies"] = { aliases = {"cryptocurrency", "crypto"}, Wiktionary = "cryptocurrency", topical_categories = "Cryptocurrency", } labels["cryptography"] = { aliases = {"cryptographic"}, Wiktionary = true, topical_categories = true, } labels["cryptozoology"] = { Wiktionary = true, topical_categories = true, } labels["crystallography"] = { Wiktionary = true, topical_categories = true, } labels["cultural anthropology"] = { Wiktionary = true, topical_categories = true, } labels["curling"] = { Wiktionary = true, topical_categories = true, } labels["currencies"] = { -- Do not merge with "numismatics", as the category is different. aliases = {"currency"}, display = "[[numismatics]]", topical_categories = true, } labels["cybernetics"] = { aliases = {"cybernetic"}, Wiktionary = true, topical_categories = true, } labels["cybersecurity"] = { Wiktionary = true, topical_categories = "Networking", } labels["cycle racing"] = { aliases = {"cycle sport"}, Wikipedia = "cycle sport", topical_categories = true, } labels["cycling"] = { aliases = {"bicycling", "bicycle", "bike"}, Wiktionary = "cycling#Noun", topical_categories = true, } labels["cytology"] = { aliases = {"cell biology", "cellular biology"}, Wiktionary = true, topical_categories = true, } labels["dance"] = { aliases = {"dancing"}, Wiktionary = "dance#Noun", topical_categories = true, } labels["dances"] = { display = "[[dance#Noun|dance]]", topical_categories = true, } labels["darts"] = { Wiktionary = true, topical_categories = true, } labels["data management"] = { Wiktionary = true, topical_categories = true, } labels["data modeling"] = { Wiktionary = true, topical_categories = true, } labels["databases"] = { aliases = {"database"}, display = "[[database]]s", topical_categories = true, } labels["decision theory"] = { Wiktionary = true, topical_categories = true, } labels["deltiology"] = { Wiktionary = true, topical_categories = true, } labels["demography"] = { aliases = {"demographics"}, Wiktionary = true, topical_categories = true, } labels["demonym"] = { aliases = {"demonyms"}, Wiktionary = true, topical_categories = "Demonyms", } labels["demoscene"] = { topical_categories = true, } labels["dentistry"] = { aliases = {"dentist"}, Wiktionary = true, topical_categories = true, } labels["dermatology"] = { Wiktionary = true, topical_categories = true, } labels["design"] = { Wiktionary = "design#Noun", topical_categories = true, } labels["dice games"] = { aliases = {"dice"}, display = "[[dice game]]s", topical_categories = true, } labels["dictation"] = { Wiktionary = true, topical_categories = true, } labels["differential geometry"] = { Wiktionary = true, topical_categories = true, } labels["diplomacy"] = { Wiktionary = true, topical_categories = true, } labels["disc golf"] = { Wiktionary = true, topical_categories = true, } labels["disease"] = { aliases = {"diseases"}, display = "[[pathology]]", topical_categories = "Diseases", } labels["divination"] = { Wiktionary = true, topical_categories = true, } labels["diving"] = { Wiktionary = "diving#Noun", topical_categories = true, } labels["dominoes"] = { Wiktionary = true, topical_categories = true, } labels["dou dizhu"] = { Wikipedia = true, topical_categories = true, } labels["drama"] = { Wiktionary = true, topical_categories = true, } labels["dressage"] = { Wiktionary = true, topical_categories = true, } labels["E number"] = { display = "[[food]] [[manufacture]]", plain_categories = "European food additive numbers", } labels["early Christianity"] = { aliases = {"early christianity", "Early Christianity", "early Church", "early church", "Early Church", "the early Church", "the early church", "the Early Church"}, Wikipedia = true, topical_categories = true, } labels["earth science"] = { Wiktionary = true, topical_categories = "Earth sciences", } labels["Eastern Catholicism"] = { aliases = {"Eastern Catholic"}, Wikipedia = true, topical_categories = true, } labels["Eastern Christianity"] = { aliases = {"Eastern christianity", "Eastern Christian", "Eastern christian", "Eastern Church", "Eastern church"}, Wikipedia = true, topical_categories = true, } labels["Eastern Orthodoxy"] = { aliases = {"Eastern Orthodox", "Eastern Orthodox Church"}, Wikipedia = true, topical_categories = true, } labels["eating disorders"] = { aliases = {"eating disorder"}, display = "[[eating disorder]]s", topical_categories = true, } labels["ecology"] = { Wiktionary = true, topical_categories = true, } labels["economics"] = { Wiktionary = true, topical_categories = true, } labels["education"] = { Wiktionary = true, topical_categories = true, } labels["Egyptian god"] = { aliases = {"Egyptian goddess", "Egyptian deity"}, display = "[[Egyptian]] [[mythology]]", topical_categories = "Egyptian deities", } labels["Egyptian mythology"] = { display = "[[Egyptian]] [[mythology]]", topical_categories = true, } labels["Egyptology"] = { Wiktionary = true, aliases = {"Ancient Egypt"}, topical_categories = "Ancient Egypt", } labels["electrencephalography"] = { Wiktionary = true, topical_categories = true, } labels["electrical engineering"] = { Wiktionary = true, topical_categories = true, } labels["electricity"] = { aliases = {"electrical"}, Wiktionary = true, topical_categories = true, } labels["electrodynamics"] = { Wiktionary = true, topical_categories = true, } labels["electromagnetism"] = { Wiktionary = true, topical_categories = true, } labels["electronics"] = { Wiktionary = true, topical_categories = true, } labels["element symbol"] = { -- Compare "systematic element symbol" and "obsolete element symbol". display = "[[chemistry]]", plain_categories = "Symbols for chemical elements", } labels["embryology"] = { Wiktionary = true, topical_categories = true, } labels["emergency medicine"] = { Wiktionary = true, topical_categories = true, } labels["emergency services"] = { Wiktionary = true, topical_categories = true, } labels["endocrinology"] = { Wiktionary = true, topical_categories = true, } labels["engineering"] = { Wiktionary = "engineering#Noun", topical_categories = true, } labels["enterprise engineering"] = { Wiktionary = true, topical_categories = true, } labels["entomology"] = { Wiktionary = true, topical_categories = true, } labels["enzyme"] = { aliases = {"enzymes"}, display = "[[biochemistry]]", topical_categories = "Enzymes", } labels["epidemiology"] = { Wiktionary = true, topical_categories = true, } labels["epigraphy"] = { Wiktionary = true, topical_categories = true, } labels["epistemology"] = { Wiktionary = true, topical_categories = true, } labels["equestrianism"] = { aliases = {"equestrian", "horses", "horsemanship"}, Wiktionary = true, topical_categories = true, } labels["espionage"] = { Wiktionary = true, topical_categories = true, } labels["ethics"] = { aliases = {"ethical"}, Wiktionary = true, topical_categories = true, } labels["ethnography"] = { Wiktionary = true, topical_categories = true, } labels["ethology"] = { Wiktionary = true, topical_categories = true, } labels["EU politics"] = { aliases = {"European Union politics"}, Wikipedia = "Politics of the European Union", topical_categories = true, } labels["European folklore"] = { display = "[[European]] [[folklore]]", topical_categories = true, } labels["European politics"] = { Wikipedia = "Politics of Europe", topical_categories = true, } labels["European Union"] = { aliases = {"EU"}, Wiktionary = true, topical_categories = true, } labels["Evangelicalism"] = { aliases = {"Evangelical", "evangelical", "Evangelical Christianity", "Evangelical Christian", "Evangelical Protestantism", "Evangelical Protestant"}, Wikipedia = true, topical_categories = true, } labels["evolutionary theory"] = { aliases = {"evolutionary biology"}, Wiktionary = true, topical_categories = true, } labels["exercise"] = { Wiktionary = true, topical_categories = true, } labels["eye color"] = { aliases = {"eye colour"}, display = "[[eye]] [[color]]", topical_categories = "Eye colors", } labels["eyewear"] = { Wiktionary = true, topical_categories = true, } labels["fairy tale"] = { -- names of fairy tales aliases = {"fairytale", "fairy-tale"}, Wiktionary = true, topical_categories = true, } labels["fairy tales"] = { -- relating to fairy tales aliases = {"fairytales", "fairy-tales"}, Wiktionary = true, topical_categories = true, } labels["falconry"] = { Wiktionary = true, topical_categories = true, } labels["fantasy"] = { Wiktionary = true, topical_categories = true, } labels["farriery"] = { Wiktionary = true, topical_categories = true, } labels["fascism"] = { Wiktionary = true, topical_categories = true, } labels["fashion"] = { Wiktionary = true, topical_categories = true, } labels["fatty acid"] = { display = "[[organic chemistry]]", topical_categories = "Fatty acids", } labels["felid"] = { aliases = {"cat"}, display = "[[zoology]]", topical_categories = "Felids", } labels["feminism"] = { Wiktionary = true, topical_categories = true, } labels["fencing"] = { Wiktionary = "fencing#Noun", topical_categories = true, } labels["feudalism"] = { Wiktionary = true, topical_categories = true, } labels["fiction"] = { aliases = {"fictional"}, Wiktionary = true, topical_categories = true, } labels["fictional character"] = { display = "[[fiction]]", topical_categories = "Fictional characters", } labels["field hockey"] = { Wiktionary = true, topical_categories = true, } labels["figure of speech"] = { display = "[[rhetoric]]", topical_categories = "Figures of speech", } labels["figure skating"] = { Wiktionary = true, topical_categories = true, } labels["file format"] = { Wiktionary = true, topical_categories = "File formats", } labels["film"] = { Wiktionary = "film#Noun", topical_categories = true, } labels["film genre"] = { aliases = {"cinema"}, display = "[[film#Noun|film]]", topical_categories = "Film genres", } labels["finance"] = { Wiktionary = "finance#Noun", topical_categories = true, } labels["Finnic mythology"] = { aliases = {"Finnish mythology"}, display = "[[Finnic]] [[mythology]]", topical_categories = true, } labels["firearms"] = { aliases = {"firearm"}, display = "[[firearm]]s", topical_categories = true, } labels["firefighting"] = { Wiktionary = true, topical_categories = true, } labels["fish"] = { display = "[[zoology]]", topical_categories = true, } labels["fishing"] = { aliases = {"angling"}, Wiktionary = "fishing#Noun", topical_categories = true, } labels["flamenco"] = { Wiktionary = true, topical_categories = true, } labels["fluid dynamics"] = { Wiktionary = true, topical_categories = true, } labels["fluid mechanics"] = { Wiktionary = true, topical_categories = "Mechanics", } labels["folklore"] = { Wiktionary = true, topical_categories = true, } labels["footwear"] = { Wiktionary = true, topical_categories = true, } labels["forestry"] = { Wiktionary = true, topical_categories = true, } labels["Forteana"] = { Wiktionary = true, topical_categories = true, } labels["Freemasonry"] = { aliases = {"freemasonry"}, Wiktionary = true, topical_categories = true, } labels["French politics"] = { Wikipedia = "Politics of France", topical_categories = true, } labels["functional analysis"] = { Wiktionary = true, topical_categories = true, } labels["functional group prefix"] = { display = "[[organic chemistry]]", topical_categories = "Functional group prefixes", } labels["functional group suffix"] = { display = "[[organic chemistry]]", topical_categories = "Functional group suffixes", } labels["functional programming"] = { Wiktionary = true, topical_categories = "Programming", } labels["furniture"] = { Wiktionary = true, topical_categories = true, } labels["furry fandom"] = { aliases = {"furry", "furry community", "fursuit", "kemonā", "kemona", "kemono", "kemonomimi"}, display = "[[furry#Noun|furry]] [[fandom]]", topical_categories = true, } labels["fuzzy logic"] = { Wiktionary = true, topical_categories = true, } labels["Gaelic football"] = { Wiktionary = true, topical_categories = true, } labels["galaxy"] = { display = "[[astronomy]]", topical_categories = "Galaxies", } labels["gambling"] = { Wiktionary = "gambling#Noun", topical_categories = true, } labels["game theory"] = { Wiktionary = true, topical_categories = true, } labels["games"] = { aliases = {"game"}, Wiktionary = "game#Noun", topical_categories = true, } labels["gaming"] = { Wiktionary = "gaming#Noun", topical_categories = true, } labels["gender critical"] = { aliases = {"gender-critical", "gender critical feminism", "gender-critical feminism", "GC", "GCF", "trans-exclusionary radical feminism", "TERF", "TERFism"}, Wiktionary = "gender-critical#Adjective", Wikipedia = "Gender-critical feminism", topical_categories = "Gender-critical feminism", } labels["genealogy"] = { Wiktionary = true, topical_categories = true, } labels["general semantics"] = { Wiktionary = true, topical_categories = true, } labels["genetic disorder"] = { display = "[[medical]] [[genetics]]", topical_categories = "Genetic disorders", } labels["genetics"] = { Wiktionary = true, topical_categories = true, } labels["geography"] = { Wiktionary = true, topical_categories = true, } labels["geological period"] = { Wikipedia = true, topical_categories = "Geological periods", } labels["geology"] = { Wiktionary = true, topical_categories = true, } labels["geometry"] = { aliases = {"geometric", "geometrical"}, Wiktionary = true, topical_categories = true, } labels["geomorphology"] = { Wiktionary = true, topical_categories = true, } labels["geopolitics"] = { Wiktionary = true, topical_categories = true, } labels["German politics"] = { Wikipedia = "Politics of Germany", topical_categories = true, } labels["Germanic paganism"] = { aliases = {"Asatru", "Ásatrú", "Germanic neopaganism", "Germanic Paganism", "Heathenry", "heathenry", "Norse neopaganism", "Norse paganism"}, display = "[[Germanic#Adjective|Germanic]] [[paganism]]", topical_categories = true, } labels["gerontology"] = { Wiktionary = true, topical_categories = true, } labels["gladiatorial combat"] = { Wikipedia = true, topical_categories = true, } labels["glassblowing"] = { Wiktionary = true, topical_categories = true, } labels["Gnosticism"] = { aliases = {"gnosticism"}, Wiktionary = true, topical_categories = true, } labels["go"] = { aliases = {"Go", "game of go", "game of Go"}, display = "{{l|en|go|id=game}}", topical_categories = true, } labels["golf"] = { aliases = {"golfing"}, Wiktionary = true, topical_categories = true, } labels["government"] = { Wiktionary = true, topical_categories = true, } labels["balarila"] = { --TLCHANGE aliases = {"grammar", "gramatika", "grammatical"}, --TLCHANGE Wiktionary = true, topical_categories = true, } labels["grammatical case"] = { display = "[[grammar]]", topical_categories = "Grammatical cases", } labels["grammatical mood"] = { display = "[[grammar]]", topical_categories = "Grammatical moods", } labels["graph theory"] = { Wiktionary = true, topical_categories = true, } labels["graphic design"] = { Wiktionary = true, topical_categories = true, } labels["graphical user interface"] = { aliases = {"GUI"}, Wiktionary = true, topical_categories = true, } labels["Greek god"] = { aliases = {"Greek goddess", "Greek deity"}, display = "[[Greek]] [[mythology]]", topical_categories = "Greek deities", } labels["Greek mythology"] = { display = "[[Greek]] [[mythology]]", topical_categories = true, } labels["Greek Orthodoxy"] = { aliases = {"Greek Orthodox", "Greek Orthodox Church"}, Wikipedia = true, topical_categories = true, } labels["group theory"] = { Wiktionary = true, topical_categories = true, } labels["gun mechanisms"] = { aliases = {"firearm mechanism", "firearm mechanisms", "gun mechanism"}, display = "[[firearm]]s", topical_categories = true, } labels["gun sports"] = { aliases = {"shooting sports"}, display = "[[gun]] [[sport]]s", topical_categories = true, } labels["gymnastics"] = { Wiktionary = true, Wikipedia = true, topical_categories = true, } labels["gynaecology"] = { aliases = {"gynecology"}, Wiktionary = true, topical_categories = true, } labels["hair color"] = { aliases = {"hair colour"}, display = "[[hair]] [[color]]", topical_categories = "Hair colors", } labels["hairdressing"] = { Wiktionary = true, topical_categories = true, } labels["hanafuda"] = { Wikipedia = true, topical_categories = true, } labels["hand games"] = { aliases = {"hand game"}, display = "[[hand]] [[game]]s", topical_categories = true, } labels["handball"] = { Wiktionary = true, topical_categories = true, } labels["Hawaiian mythology"] = { display = "[[Hawaiian]] [[mythology]]", topical_categories = true, } labels["headwear"] = { display = "[[clothing#Noun|clothing]]", topical_categories = true, } labels["healthcare"] = { Wiktionary = true, topical_categories = true, } labels["helminthology"] = { Wiktionary = true, topical_categories = true, } labels["hematology"] = { aliases = {"haematology"}, Wiktionary = true, topical_categories = true, } labels["heraldic charge"] = { aliases = {"heraldiccharge"}, display = "[[heraldry]]", topical_categories = "Heraldic charges", } labels["heraldry"] = { Wiktionary = true, topical_categories = true, } labels["herbalism"] = { Wiktionary = true, topical_categories = true, } labels["herpetology"] = { Wiktionary = true, topical_categories = true, } labels["Hindu god"] = { display = "[[Hinduism]]", topical_categories = "Hindu deities", } labels["Hinduism"] = { Wiktionary = true, topical_categories = true, } labels["Hindutva"] = { Wiktionary = true, topical_categories = true, } labels["historical currencies"] = { aliases = {"historical currency"}, display = "[[numismatics]]", sense_categories = "historical", topical_categories = "Historical currencies", } labels["historical linguistics"] = { Wiktionary = true, topical_categories = "Linguistics", } labels["historical period"] = { aliases = {"historical periods"}, display = "[[history]]", topical_categories = "Historical periods", } labels["historiography"] = { Wiktionary = true, topical_categories = true, } labels["history"] = { Wiktionary = true, topical_categories = true, } labels["hockey"] = { display = "[[field hockey]] or [[ice hockey]]", topical_categories = {"Field hockey", "Ice hockey"}, } labels["homeopathy"] = { Wiktionary = true, topical_categories = true, } labels["Hong Kong politics"] = { aliases = {"HK politics"}, Wikipedia = "Politics of Hong Kong", topical_categories = true, } labels["hormone"] = { display = "[[biochemistry]]", topical_categories = "Hormones", } labels["horse color"] = { aliases = {"horse colour"}, display = "[[horse]] [[color]]", topical_categories = "Horse colors", } labels["horse racing"] = { Wiktionary = true, topical_categories = true, } labels["horticulture"] = { aliases = {"gardening"}, Wiktionary = true, topical_categories = true, } labels["HTML"] = { Wiktionary = "Hypertext Markup Language", topical_categories = true, } labels["human resources"] = { aliases = {"HR"}, Wiktionary = true, topical_categories = true, } labels["humanities"] = { Wiktionary = true, topical_categories = true, } labels["hunting"] = { Wiktionary = "hunting#Noun", topical_categories = true, } labels["hurling"] = { Wiktionary = "hurling#Noun", topical_categories = true, } labels["hydroacoustics"] = { Wikipedia = true, topical_categories = true, } labels["hydrocarbon chain prefix"] = { display = "[[organic chemistry]]", topical_categories = "Hydrocarbon chain prefixes", } labels["hydrocarbon chain suffix"] = { display = "[[organic chemistry]]", topical_categories = "Hydrocarbon chain suffixes", } labels["hydrology"] = { Wiktionary = true, topical_categories = true, } labels["ice hockey"] = { Wiktionary = true, topical_categories = true, } labels["ichthyology"] = { Wiktionary = true, topical_categories = true, } labels["idol fandom"] = { aliases = {"idol"}, display = "[[idol]] [[fandom]]", topical_categories = true, } labels["immunochemistry"] = { Wiktionary = true, topical_categories = true, } labels["immunology"] = { Wiktionary = true, topical_categories = true, } labels["import/export"] = { aliases = {"import", "export"}, display = "[[import#Noun|import]]/[[export#Noun|export]]", topical_categories = true, } labels["incoterm"] = { display = "[[Incoterm]]", topical_categories = "Incoterms", } labels["Indian politics"] = { Wikipedia = "Politics of India", topical_categories = true, } labels["Indo-European studies"] = { aliases = {"indo-european studies"}, Wiktionary = true, topical_categories = true, } labels["Indonesian politics"] = { aliases = {"Indonesia politics"}, Wikipedia = "Politics of Indonesia", topical_categories = true, } labels["information science"] = { Wiktionary = true, topical_categories = true, } labels["information technology"] = { aliases = {"IT"}, Wiktionary = true, topical_categories = "Computing", } labels["information theory"] = { Wiktionary = true, topical_categories = true, } labels["inheritance law"] = { Wiktionary = true, topical_categories = true, } labels["inorganic chemistry"] = { Wiktionary = true, topical_categories = true, } labels["inorganic compound"] = { display = "[[inorganic chemistry]]", topical_categories = "Inorganic compounds", } labels["insurance"] = { Wiktionary = true, topical_categories = true, } labels["international law"] = { Wiktionary = true, topical_categories = true, } labels["international relations"] = { Wiktionary = true, topical_categories = true, } labels["international standards"] = { aliases = {"international standard", "ISO", "International Organization for Standardization", "International Organisation for Standardisation"}, Wikipedia = "International standard", } labels["Internet"] = { aliases = {"internet", "online"}, Wiktionary = true, topical_categories = true, } labels["Iranian mythology"] = { display = "[[Iranian]] [[mythology]]", topical_categories = true, } labels["Irish mythology"] = { display = "[[Irish]] [[mythology]]", topical_categories = true, } labels["Irish politics"] = { Wikipedia = "Politics of the Republic of Ireland", topical_categories = true, } labels["Islam"] = { aliases = {"islam", "Islamic", "Muslim"}, Wikipedia = true, topical_categories = true, } labels["Islamic finance"] = { aliases = {"Islamic banking", "Muslim finance", "Muslim banking", "Sharia-compliant finance"}, Wikipedia = true, topical_categories = true, } labels["Islamic law"] = { aliases = {"Islamic legal", "Sharia"}, Wikipedia = true, topical_categories = true, } labels["isotope"] = { display = "[[physics]]", topical_categories = "Isotopes", } labels["Jainism"] = { Wiktionary = true, Wikipedia = true, topical_categories = true, } labels["Japanese fiction"] = { -- aliases = {"anime", "manga", "anime and manga", "manga and anime"}, display = "[[Japanese#Adjective|Japanese]] [[fiction]]", Wikipedia = true, topical_categories = true, } labels["Japanese god"] = { display = "[[Japanese#Adjective|Japanese]] [[mythology]]", topical_categories = "Japanese deities", } labels["Japanese mythology"] = { display = "[[Japanese#Adjective|Japanese]] [[mythology]]", topical_categories = true, } labels["Japanese politics"] = { Wikipedia = "Politics of Japan", topical_categories = true, } labels["Japanese pornography"] = { aliases = {"Japanese porn", "hentai", "adult anime", "erotic anime", "ero anime"}, display = "[[Japanese#Adjective|Japanese]] [[pornography]]", Wikipedia = true, topical_categories = true, } labels["Java programming language"] = { aliases = {"JavaPL", "Java PL"}, Wikipedia = "Java (programming language)", topical_categories = true, } labels["jazz"] = { Wiktionary = "jazz#Noun", topical_categories = true, } labels["jewelry"] = { aliases = {"jewellery"}, Wiktionary = true, topical_categories = true, } labels["Jewish law"] = { aliases = {"Halacha", "Halachah", "Halakha", "Halakhah", "halacha", "halachah", "halakha", "halakhah", "Jewish Law", "jewish law"}, display = "[[Jewish]] [[law]]", topical_categories = true, } labels["journalism"] = { Wiktionary = true, topical_categories = "Mass media", } labels["Judaism"] = { Wiktionary = true, topical_categories = true, } labels["judo"] = { Wiktionary = true, topical_categories = true, } labels["juggling"] = { Wiktionary = "juggling#Noun", topical_categories = true, } labels["karuta"] = { Wiktionary = true, topical_categories = true, } labels["kendo"] = { Wiktionary = true, topical_categories = true, } labels["knitting"] = { Wiktionary = "knitting#Noun", topical_categories = true, } labels["Korean mythology"] = { display = "[[Korean#Adjective|Korean]] [[mythology]]", topical_categories = true, } labels["labour"] = { aliases = {"labor", "labour movement", "labor movement"}, Wiktionary = true, topical_categories = true, } labels["labour law"] = { aliases = {"labor law"}, Wiktionary = true, topical_categories = "Law", } labels["lacrosse"] = { Wiktionary = true, topical_categories = true, } labels["landforms"] = { display = "[[geography]]", topical_categories = true, } labels["batas"] = { --TLCHANGE aliases = {"legal", "law"}, --TLCHANGE Wiktionary = "batas#Tagalog",--TLCHANGE topical_categories = true, } labels["kapulisan"] = { --TLCHANGE aliases = {"police", "policing", "law enforcement"}, --TLCHANGE Wiktionary = true, topical_categories = true, } labels["leatherworking"] = { Wiktionary = true, topical_categories = true, } labels["leftism"] = { aliases = {"leftist"}, Wiktionary = true, topical_categories = true, } labels["letterpress"] = { aliases = {"metal type", "metal typesetting"}, display = "[[letterpress]] [[typography]]", topical_categories = "Typography", } labels["leksikograpiya"] = {--TLCHANGE aliases = {"lexicography"}, --TLCHANGE Wiktionary = true, topical_categories = true, } labels["LGBTQ"] = { aliases = {"LGBT", "LGBT+", "LGBT*", "LGBTQ+", "LGBTQ*", "LGBTQIA", "LGBTQIA+", "LGBTQIA*", "queer"}, Wiktionary = true, topical_categories = true, } labels["liberalism"] = { aliases = {"liberal"}, Wiktionary = true, topical_categories = true, } labels["library science"] = { Wiktionary = true, topical_categories = true, } labels["lichenology"] = { Wiktionary = true, topical_categories = true, } labels["limnology"] = { Wiktionary = true, topical_categories = "Ecology", } labels["linear algebra"] = { aliases = {"vector algebra"}, Wiktionary = true, topical_categories = true, } labels["linguistic morphology"] = { display = "[[linguistic]] [[morphology]]", topical_categories = true, } labels["linguistics"] = { aliases = {"linguistic", "philology"}, Wiktionary = true, topical_categories = true, } labels["lipid"] = { aliases = {"lipids"}, display = "[[biochemistry]]", topical_categories = "Lipids", } labels["literature"] = { Wiktionary = true, topical_categories = true, } labels["logic"] = { Wiktionary = true, topical_categories = true, } labels["logical fallacy"] = { aliases = {"fallacies"}, display = "[[rhetoric]]", topical_categories = "Logical fallacies", } labels["logistics"] = { Wiktionary = true, topical_categories = true, } labels["luge"] = { Wiktionary = true, topical_categories = true, } labels["Lutheranism"] = { aliases = {"Lutheran", "Lutheranist", "Lutheran Church"}, Wikipedia = true, topical_categories = true, } labels["lutherie"] = { Wiktionary = true, topical_categories = true, } labels["machine learning"] = { aliases = {"ML"}, Wiktionary = true, topical_categories = true, } labels["machining"] = { Wiktionary = "machining#Noun", topical_categories = true, } labels["macroeconomics"] = { Wiktionary = true, topical_categories = "Economics", } labels["mahjong"] = { Wiktionary = true, topical_categories = true, } labels["malacology"] = { Wiktionary = true, topical_categories = true, } labels["Malaysian politics"] = { aliases = {"Malaysia politics"}, Wikipedia = "Politics of Malaysia", topical_categories = true, } labels["mammalogy"] = { Wiktionary = true, topical_categories = true, } labels["management"] = { Wiktionary = true, topical_categories = true, } labels["manga"] = { aliases = {"Japanese comics"}, Wiktionary = true, topical_categories = "Japanese fiction", } labels["manhua"] = { aliases = {"Chinese comics"}, Wiktionary = true, topical_categories = "Chinese fiction", } labels["manhwa"] = { aliases = {"Korean comics"}, Wiktionary = true, topical_categories = "Korean fiction", } labels["Manichaeism"] = { Wiktionary = true, topical_categories = true, } labels["manufacturing"] = { Wiktionary = "manufacturing#Noun", topical_categories = true, } labels["Maoism"] = { aliases = {"Maoist"}, Wiktionary = true, topical_categories = true, } labels["marching"] = { Wiktionary = "marching#Noun", topical_categories = true, } labels["marine biology"] = { aliases = {"coral science"}, Wiktionary = true, topical_categories = true, } labels["marketing"] = { Wiktionary = "marketing#Noun", topical_categories = true, } labels["martial arts"] = { Wiktionary = true, topical_categories = true, } labels["Marxism"] = { aliases = {"Marxist"}, Wiktionary = true, topical_categories = true, } labels["masonry"] = { Wiktionary = true, topical_categories = true, } labels["massage"] = { Wiktionary = true, topical_categories = true, } labels["materials science"] = { Wiktionary = true, topical_categories = true, } labels["mathematical analysis"] = { aliases = {"analysis"}, Wiktionary = true, topical_categories = true, } labels["mathematics"] = { aliases = {"math", "maths"}, Wiktionary = true, topical_categories = true, } labels["measure theory"] = { Wiktionary = true, topical_categories = true, } labels["mechanical engineering"] = { Wiktionary = true, topical_categories = true, } labels["mechanics"] = { Wiktionary = true, topical_categories = true, } labels["media"] = { Wiktionary = true, topical_categories = true, } labels["mediaeval folklore"] = { aliases = {"medieval folklore"}, display = "[[mediaeval]] [[folklore]]", topical_categories = "European folklore", } labels["medical genetics"] = { display = "[[medical]] [[genetics]]", topical_categories = true, } labels["medical sign"] = { aliases = {"medical symptoms", "symptom", "symptoms"}, display = "[[medicine]]", topical_categories = "Medical signs and symptoms", } labels["medisina"] = { --TLCHANGE aliases = {"medical", "medicine"}, --TLCHANGE Wiktionary = true, topical_categories = true, } labels["Meitei god"] = { aliases = {"Meitei goddess", "Meitei deity"}, display = "[[Meitei]] [[mythology]]", topical_categories = "Meitei deities", } labels["mental health"] = { Wiktionary = true, topical_categories = true, } labels["Mesopotamian god"] = { aliases = {"Mesopotamian goddess", "Mesopotamian diety"}, display = "[[Mesopotamian]] [[mythology]]", topical_categories = "Mesopotamian deities", } labels["Mesopotamian mythology"] = { display = "[[Mesopotamian]] [[mythology]]", topical_categories = true, } labels["metadata"] = { Wiktionary = true, topical_categories = "Data management", } labels["metallurgy"] = { Wiktionary = true, topical_categories = true, } labels["metalworking"] = { Wiktionary = true, topical_categories = true, } labels["metamaterial"] = { display = "[[physics]]", topical_categories = "Metamaterials", } labels["metaphysics"] = { Wiktionary = true, topical_categories = true, } labels["meteorolohiya"] = { --TLCHANGE aliases = {"meteorology"}, --TLCHANGE display = "[[meteorolohiya]]", --TLCHANGE "[[meteorology]]", topical_categories = true, --TLCHANGE "Meteorology", } labels["Methodism"] = { aliases = {"Methodist", "methodism", "methodist"}, Wiktionary = true, topical_categories = true, } labels["metrology"] = { Wiktionary = true, topical_categories = true, } labels["Mexican politics"] = { aliases = {"Mexico politics"}, Wikipedia = "Politics of Mexico", topical_categories = true, } labels["microbiology"] = { Wiktionary = true, topical_categories = true, } labels["microelectronics"] = { Wiktionary = true, topical_categories = true, } labels["micronationalism"] = { aliases = {"micronation", "micronations"}, Wiktionary = true, topical_categories = true, } labels["microscopy"] = { Wiktionary = true, topical_categories = true, } labels["military"] = { aliases = {"army"}, Wiktionary = true, topical_categories = true, } labels["military ranks"] = { aliases = {"military rank"}, display = "[[military]]", topical_categories = true, } labels["military unit"] = { display = "[[military]]", topical_categories = "Military units", } labels["milling"] = { Wiktionary = true, topical_categories = true, } labels["Minecraft"] = { display = "''[[Minecraft]]''", topical_categories = true, } labels["mineral"] = { display = "[[mineralogy]]", topical_categories = "Minerals", } labels["mineralogy"] = { Wiktionary = true, topical_categories = true, } labels["mining"] = { Wiktionary = "mining#Noun", topical_categories = true, } labels["mobile phones"] = { aliases = {"cell phone", "cell phones", "mobile phone", "mobile telephony", "smartphone", "smartphones", "mobile"}, display = "[[mobile telephone|mobile telephony]]", topical_categories = true, } labels["molecular biology"] = { Wiktionary = true, topical_categories = true, } labels["monarkiya"] = { --TLCHANGE aliases = {"monarchy"}, --TLCHANGE Wiktionary = true, topical_categories = true, } labels["pera"] = { --TLCHANGE aliases = {"money"}, --TLCHANGE Wiktionary = true, topical_categories = true, } labels["Mormonism"] = { Wiktionary = true, topical_categories = true, } labels["motor racing"] = { -- There are other types of racing, but 99% of the time "racing" on its own refers to motorsports. aliases = {"motor sport", "motorsport", "motorsports", "racing"}, Wiktionary = true, topical_categories = true, } labels["motorcycling"] = { aliases = {"motorcycle", "motorcycles", "motorbike"}, Wiktionary = "motorcycling#Noun", topical_categories = "Motorcycles", } labels["multiplicity"] = { aliases = {"plurality", "polypsychism", "dissociative identity disorder", "DID"}, display = "{{l|en|multiplicity|id=multiple personalities}}", topical_categories = "Multiplicity (psychology)", } labels["muscle"] = { aliases = {"muscles"}, display = "[[anatomy]]", topical_categories = "Muscles", } labels["mushroom"] = { aliases = {"mushrooms"}, display = "[[mycology]]", topical_categories = "Mushrooms", } labels["musika"] = { --TLCHANGE aliases = {"music", "musical"}, --TLCHANGE Wiktionary = true, topical_categories = true, } labels["music genre"] = { display = "[[music]]", topical_categories = "Musical genres", } labels["music industry"] = { Wikipedia = true, topical_categories = true, } labels["musical instruments"] = { aliases = {"musical instrument"}, display = "[[music]]", topical_categories = true, } labels["musician"] = { display = "[[music]]", topical_categories = "Musicians", } labels["musicology"] = { Wiktionary = true, topical_categories = "Music", } labels["mycology"] = { Wiktionary = true, topical_categories = true, } labels["mysticism"] = { Wiktionary = true, topical_categories = true, } labels["mythological creature"] = { aliases = {"mythological creatures"}, display = "[[mythology]]", topical_categories = "Mythological creatures", } labels["mythology"] = { Wiktionary = true, topical_categories = true, } labels["nanotechnology"] = { Wiktionary = true, topical_categories = true, } labels["narratology"] = { Wiktionary = true, topical_categories = true, } labels["nautical"] = { Wiktionary = true, topical_categories = true, } labels["Navajo mythology"] = { display = "[[Navajo]] [[mythology]]", topical_categories = true, } labels["navigation"] = { Wiktionary = true, topical_categories = true, } labels["Nazism"] = { -- see also Neo-Nazism aliases = {"nazism", "Nazi", "nazi", "Nazis", "nazis"}, Wikipedia = true, topical_categories = true, } labels["nematology"] = { Wiktionary = true, topical_categories = "Zoology", } labels["neo-Nazism"] = { -- Often used to indicate Nazi-used jargon; compare "white supremacist ideology" aliases = {"Neo-Nazism", "Neo-nazism", "neo-nazism", "Neo-Nazi", "Neo-nazi", "neo-Nazi", "neo-nazi", "Neo-Nazis", "Neo-nazis", "neo-Nazis", "neo-nazis", "NeoNazism", "Neonazism", "neoNazism", "neonazism", "NeoNazi", "Neonazi", "neoNazi", "neonazi", "NeoNazis", "Neonazis", "neoNazis", "neonazis"}, Wikipedia = true, topical_categories = true, } labels["netball"] = { Wiktionary = true, topical_categories = true, } labels["networking"] = { Wiktionary = "networking#Noun", topical_categories = true, } labels["neuroanatomy"] = { Wiktionary = true, topical_categories = true, } labels["neurology"] = { Wiktionary = true, topical_categories = true, } labels["neuroscience"] = { Wiktionary = true, topical_categories = true, } labels["neurosurgery"] = { Wiktionary = true, topical_categories = true, } labels["neurotoxin"] = { display = "[[neurotoxicology]]", topical_categories = "Neurotoxins", } labels["neurotransmitter"] = { display = "[[biochemistry]]", topical_categories = "Neurotransmitters", } labels["New Zealand politics"] = { Wikipedia = "Politics of New Zealand", topical_categories = true, } labels["newspapers"] = { display = "[[newspaper]]s", topical_categories = true, } labels["Norse god"] = { aliases = {"Norse goddess", "Norse deity"}, display = "[[Norse]] [[mythology]]", topical_categories = "Norse deities", } labels["Norse mythology"] = { display = "[[Norse]] [[mythology]]", topical_categories = true, } labels["nuclear energy"] = { Wiktionary = true, topical_categories = true, } labels["nuclear physics"] = { Wiktionary = true, topical_categories = true, } labels["number theory"] = { Wiktionary = true, topical_categories = true, } labels["numismatics"] = { Wiktionary = true, topical_categories = "Currency", } labels["nutrition"] = { Wiktionary = true, topical_categories = true, } labels["object-oriented programming"] = { aliases = {"object-oriented", "OOP"}, Wiktionary = true, topical_categories = true, } labels["obsolete element symbol"] = { display = "[[chemistry]], [[obsolete]]", plain_categories = "Obsolete symbols for chemical elements", } labels["obstetrics"] = { aliases = {"obstetric"}, Wiktionary = true, topical_categories = true, } labels["occult"] = { Wiktionary = true, topical_categories = true, } labels["oceanography"] = { Wiktionary = true, topical_categories = true, } labels["Odinani"] = { aliases = {"Odinala", "Omenala", "Odinana", "Omenana", "Igbo religion"}, Wikipedia = true, topical_categories = true, } labels["oenology"] = { Wiktionary = true, topical_categories = true, } labels["oil industry"] = { aliases = {"oil", "oil drilling", "petroleum industry", "petroleum"}, Wikipedia = true, topical_categories = true, } labels["oncology"] = { Wiktionary = true, topical_categories = true, } labels["online gaming"] = { aliases = {"online games", "MMO", "MMORPG"}, display = "[[online]] [[gaming#Noun|gaming]]", topical_categories = "Video games", } labels["onomastics"] = { Wiktionary = true, topical_categories = true, } labels["opera"] = { Wiktionary = true, topical_categories = true, } labels["operating systems"] = { display = "[[operating system]]s", topical_categories = "Software", } labels["ophthalmology"] = { Wiktionary = true, topical_categories = true, } labels["optics"] = { Wiktionary = true, topical_categories = true, } labels["organic chemistry"] = { Wiktionary = true, topical_categories = true, } labels["organic compound"] = { display = "[[organic chemistry]]", topical_categories = "Organic compounds", } labels["Oriental Orthodoxy"] = { aliases = {"Oriental Orthodox", "Oriental Orthodox Church"}, Wikipedia = true, topical_categories = true, } labels["ornithology"] = { Wiktionary = true, topical_categories = true, } labels["orthodontics"] = { Wiktionary = true, topical_categories = "Dentistry", } labels["orthography"] = { Wiktionary = true, topical_categories = true, } labels["paganism"] = { aliases = {"pagan", "neopagan", "neopaganism", "neo-pagan", "neo-paganism"}, Wiktionary = true, topical_categories = true, } labels["pain"] = { display = "[[medicine]]", topical_categories = true, } labels["paintball"] = { Wiktionary = true, topical_categories = true, } labels["painting"] = { Wiktionary = "painting#Noun", topical_categories = true, } labels["Pakistani politics"] = { Wikipedia = "Politics of Pakistan", topical_categories = true, } labels["palaeography"] = { aliases = {"paleography"}, Wiktionary = true, topical_categories = true, } labels["paleontology"] = { aliases = {"palaeontology"}, Wiktionary = true, topical_categories = true, } labels["Palestinian politics"] = { aliases = {"Palestine politics"}, Wikipedia = "Politics of the Palestinian National Authority", topical_categories = true, } labels["palmistry"] = { Wiktionary = true, topical_categories = true, } labels["palynology"] = { Wiktionary = true, topical_categories = true, } labels["papermaking"] = { Wiktionary = true, topical_categories = true, } labels["paraphilia"] = { aliases = {"paraphilias", "paraphilic", "fetish", "fetishes", "fetishism", "fetishistic", "fetishization", "fetishisation"}, Wiktionary = "paraphilia#Noun", topical_categories = "Paraphilias", } labels["parapsychology"] = { Wiktionary = true, topical_categories = true, } labels["parasitology"] = { Wiktionary = true, topical_categories = true, } labels["bahagi ng pananalita"] = { --TLCHANGE aliases = {"PoS", "part of speech"}, --TLCHANGE display = "[[balarila]]", --TLCHANGE "[[grammar]]", topical_categories = "Balarila", --TLCHANGE "Parts of speech", } labels["particle"] = { aliases = {"subatomic particle", "subatomic particles"}, display = "[[particle physics]]", topical_categories = "Subatomic particles", } labels["particle physics"] = { Wiktionary = true, topical_categories = true, } labels["pasteurization"] = { aliases = {"pasteurisation"}, Wiktionary = true, topical_categories = true, } labels["patent law"] = { aliases = {"patents"}, display = "[[patent#Noun|patent]] [[law]]", topical_categories = true, } labels["pathology"] = { Wiktionary = true, topical_categories = true, } labels["pensions"] = { aliases = {"pension"}, display = "[[pension]]s", topical_categories = true, } labels["percussion instruments"] = { aliases = {"percussion instrument"}, display = "[[music]]", topical_categories = true, } labels["perfumery"] = { Wiktionary = true, topical_categories = true, } labels["Peruvian politics"] = { Wikipedia = "Politics of Peru", topical_categories = true, } labels["pesäpallo"] = { aliases = {"pesapallo"}, Wiktionary = true, topical_categories = true, } labels["petrochemistry"] = { Wiktionary = true, topical_categories = true, } labels["petrology"] = { Wiktionary = true, topical_categories = true, } labels["pharmaceutical drug"] = { display = "[[pharmacology]]", topical_categories = "Pharmaceutical drugs", } labels["pharmaceutical effect"] = { display = "[[pharmacology]]", topical_categories = "Pharmaceutical effects", } labels["pharmacology"] = { Wiktionary = true, topical_categories = true, } labels["pharmacy"] = { Wiktionary = true, topical_categories = true, } labels["pharyngology"] = { Wiktionary = true, topical_categories = true, } labels["philately"] = { Wiktionary = true, topical_categories = true, } labels["politika ng Pilipinas"] = { --TLCHANGE aliases = {"Filipino politics", "Philippine politics"}, --TLCHANGE Wikipedia = "Politika ng Pilipinas", --TLCHANGE topical_categories = true, } labels["Philmont Scout Ranch"] = { aliases = {"Philmont"}, Wikipedia = true, topical_categories = true, } labels["philosophy"] = { Wiktionary = true, topical_categories = true, } labels["phonetics"] = { aliases = {"phonetic"}, Wiktionary = true, topical_categories = true, } labels["phonology"] = { aliases = {"phonological"}, Wiktionary = true, topical_categories = true, } labels["photography"] = { aliases = {"photograph"}, Wiktionary = true, topical_categories = true, } labels["phrenology"] = { Wiktionary = true, topical_categories = true, } labels["physical chemistry"] = { Wiktionary = true, topical_categories = true, } labels["physics"] = { Wiktionary = true, topical_categories = true, } labels["physiology"] = { Wiktionary = true, topical_categories = true, } labels["phytopathology"] = { Wiktionary = true, topical_categories = true, } labels["pinball"] = { Wiktionary = true, topical_categories = true, } labels["planetology"] = { Wiktionary = true, topical_categories = true, } labels["plant"] = { aliases = {"plants"}, display = "[[botany]]", topical_categories = "Plants", } labels["plant disease"] = { aliases = {"plant diseases"}, display = "[[phytopathology]]", topical_categories = "Plant diseases", } labels["plastic surgery"] = { Wiktionary = true, topical_categories = true, } labels["playground games"] = { aliases = {"playground game"}, display = "[[playground]] [[game]]s", topical_categories = true, } labels["poetry"] = { Wiktionary = true, topical_categories = true, } labels["poison"] = { display = "[[toxicology]]", topical_categories = "Poisons", } labels["Pokémon"] = { aliases = {"Pokemon"}, display = "''[[w:Pokémon|Pokémon]]''", Wikipedia = true, topical_categories = true, } labels["poker"] = { Wiktionary = true, topical_categories = true, } labels["poker slang"] = { display = "[[poker]] [[slang]]", topical_categories = "Poker", } labels["political science"] = { Wiktionary = true, topical_categories = true, } labels["political subdivision"] = { display = "[[government]]", topical_categories = "Political subdivisions", } labels["politics"] = { aliases = {"political"}, Wiktionary = true, topical_categories = true, } labels["pornography"] = { aliases = {"porn", "porno", "adult video", "adult videos"}, Wiktionary = true, topical_categories = true, } labels["Portuguese folklore"] = { display = "[[Portuguese#Adjective|Portuguese]] [[folklore]]", topical_categories = "European folklore", } labels["Portuguese politics"] = { Wikipedia = "Politics of Portugal", topical_categories = true, } labels["post"] = { aliases = {"mail", "postal"}, display = "[[postal]]", topical_categories = true, } labels["postal abbreviation"] = { aliases = {"postal abbr", "postal abbrev"}, display = "[[postal]]", topical_categories = "Postal abbreviations", } labels["potential theory"] = { Wiktionary = true, topical_categories = true, } labels["pottery"] = { Wiktionary = true, topical_categories = "Ceramics", } labels["pragmatics"] = { Wiktionary = true, topical_categories = true, } labels["printing"] = { Wiktionary = "printing#Noun", topical_categories = true, } labels["probability theory"] = { Wiktionary = true, topical_categories = true, } labels["professional wrestling"] = { aliases = {"pro wrestling"}, Wiktionary = true, topical_categories = true, } labels["programming"] = { aliases = {"computer programming"}, Wiktionary = "programming#Noun", topical_categories = true, } labels["property law"] = { aliases = {"land law", "real estate law"}, Wiktionary = true, topical_categories = true, } labels["prosody"] = { Wiktionary = true, topical_categories = true, } labels["protein"] = { aliases = {"proteins"}, display = "[[biochemistry]]", topical_categories = "Proteins", } labels["Protestantism"] = { aliases = {"protestantism", "Protestant", "protestant"}, Wiktionary = true, topical_categories = true, } labels["pseudoscience"] = { Wiktionary = true, topical_categories = true, } labels["psychiatry"] = { Wiktionary = true, topical_categories = true, } labels["psychoanalysis"] = { Wiktionary = true, topical_categories = true, } labels["psychology"] = { Wiktionary = true, topical_categories = true, } labels["psychotherapy"] = { Wiktionary = true, topical_categories = true, } labels["publishing"] = { Wiktionary = "publishing#Noun", topical_categories = true, } labels["pulmonology"] = { Wiktionary = true, topical_categories = true, } labels["pyrotechnics"] = { Wiktionary = true, aliases = { "firework", "fireworks" }, topical_categories = true, } labels["QAnon"] = { aliases = {"Qanon"}, Wikipedia = true, topical_categories = true, } labels["Quakerism"] = { Wiktionary = true, topical_categories = true, } labels["quantum computing"] = { Wiktionary = true, topical_categories = true, } labels["quantum mechanics"] = { aliases = {"quantum physics"}, Wiktionary = true, topical_categories = true, } labels["Quimbanda"] = { Wiktionary = true, topical_categories = true, } labels["radiation"] = { -- TODO: What kind of topic is "radiation"? Is it specific kinds of radiation? That would be a set-type category. display = "[[physics]]", topical_categories = true, } labels["radio"] = { Wiktionary = true, topical_categories = true, } labels["Raëlism"] = { Wiktionary = true, topical_categories = true, } labels["rail transport"] = { aliases = {"rail", "railroading", "railroads"}, Wiktionary = true, topical_categories = "Rail transportation", } labels["Rastafari"] = { aliases = {"Rasta", "rasta", "Rastafarian", "rastafarian", "Rastafarianism"}, Wiktionary = true, topical_categories = true, } labels["real estate"] = { Wiktionary = true, topical_categories = true, } labels["real tennis"] = { Wiktionary = true, topical_categories = "Tennis", } labels["recreational mathematics"] = { Wiktionary = true, topical_categories = "Mathematics", } labels["Reddit"] = { Wiktionary = true, topical_categories = true, } labels["regular expressions"] = { aliases = {"regex"}, display = "[[regular expression]]s", topical_categories = true, } labels["relativity"] = { Wiktionary = true, topical_categories = true, } labels["religion"] = { Wiktionary = true, topical_categories = true, } labels["rhetoric"] = { Wiktionary = true, topical_categories = true, } labels["rhythmic gymnastics"] = { Wiktionary = true, Wikipedia = true, topical_categories = true, } labels["road transport"] = { aliases = {"roads"}, Wikipedia = true, topical_categories = true, } labels["robotics"] = { Wiktionary = true, topical_categories = true, } labels["rock"] = { aliases = {"rocks"}, display = "[[geology]]", topical_categories = "Rocks", } labels["rock paper scissors"] = { topical_categories = true, } labels["roleplaying games"] = { aliases = {"role playing games", "role-playing games", "RPG", "RPGs"}, display = "[[roleplaying game]]s", topical_categories = "Role-playing games", } labels["roller derby"] = { Wiktionary = true, topical_categories = true, } labels["Roman Catholicism"] = { aliases = {"Roman Catholic", "Roman Catholic Church"}, Wiktionary = true, topical_categories = true, } labels["Roman Empire"] = { Wiktionary = true, topical_categories = true, } labels["Roman god"] = { aliases = {"Roman goddess", "Roman deity"}, display = "[[Roman]] [[mythology]]", topical_categories = "Roman deities", } labels["Roman mythology"] = { display = "[[Roman]] [[mythology]]", topical_categories = true, } labels["Roman numerals"] = { display = "[[Roman numeral]]s", topical_categories = true, } labels["roofing"] = { Wiktionary = "roofing#Noun", topical_categories = true, } labels["rosiculture"] = { Wiktionary = true, topical_categories = true, } labels["rowing"] = { Wiktionary = "rowing#Noun", topical_categories = true, } labels["Rubik's Cube"] = { aliases = {"Rubik's cubes", "Magic Cube", "magic cube"}, Wiktionary = "Rubik's cube", topical_categories = true, } labels["rugby"] = { Wiktionary = true, topical_categories = true, } labels["rugby league"] = { Wiktionary = true, topical_categories = true, } labels["rugby union"] = { Wiktionary = true, topical_categories = true, } labels["Russian Orthodoxy"] = { aliases = {"Russian Orthodox", "Russian Orthodox Church"}, Wikipedia = true, topical_categories = true, } labels["sailing"] = { Wiktionary = "sailing#Noun", topical_categories = true, } labels["schools"] = { display = "[[education]]", topical_categories = true, } labels["science fiction"] = { aliases = {"scifi", "sci fi", "sci-fi"}, Wiktionary = true, topical_categories = true, } labels["sciences"] = { aliases = {"science", "scientific"}, Wiktionary = true, topical_categories = true, } labels["Scientology"] = { Wiktionary = true, topical_categories = true, } labels["Scots law"] = { -- Note: this is the usual term, not "Scottish law". aliases = {"Scottish law", "Scotland law", "Scots Law", "Scottish Law", "Scotland Law"}, Wikipedia = true, topical_categories = true, } labels["Scouting"] = { aliases = {"scouting"}, display = "[[scouting]]", topical_categories = true, } labels["Scrabble"] = { display = "''[[Scrabble]]''", Wikipedia = true, topical_categories = true, } labels["scrapbooks"] = { display = "[[scrapbook]]s", topical_categories = true, } labels["sculpture"] = { Wiktionary = true, topical_categories = true, } labels["seduction community"] = { aliases = {"pickup artist", "pickup artists", "pickup artistry", "pickup community"}, Wikipedia = true, topical_categories = true, } labels["seismology"] = { Wiktionary = true, topical_categories = true, } labels["self-harm"] = { aliases = {"selfharm", "self harm", "self-harm community"}, Wiktionary = true, topical_categories = true, } labels["semantics"] = { Wiktionary = true, topical_categories = true, } labels["semiconductors"] = { display = "[[semiconductor]]s", topical_categories = true, } labels["semiotics"] = { Wiktionary = true, topical_categories = true, } labels["SEO"] = { Wiktionary = "search engine optimization", topical_categories = {"Internet", "Marketing"}, } labels["set theory"] = { Wiktionary = true, topical_categories = true, } labels["sewing"] = { Wiktionary = "sewing#Noun", topical_categories = true, } labels["sex"] = { Wiktionary = true, topical_categories = true, } labels["sex position"] = { display = "[[sex]]", topical_categories = "Sex positions", } labels["sexology"] = { Wiktionary = true, topical_categories = true, } labels["sexuality"] = { Wiktionary = true, topical_categories = true, } labels["Shaivism"] = { Wiktionary = true, topical_categories = true, } labels["shamanism"] = { aliases = {"Shamanism"}, Wiktionary = true, topical_categories = true, } labels["Shi'ism"] = { aliases = {"Shia", "Shi'ite", "Shi'i"}, display = "[[Shia Islam]]", topical_categories = true, } labels["Shinto"] = { Wiktionary = true, topical_categories = true, } labels["ship parts"] = { display = "[[nautical]]", topical_categories = "Ship parts", } labels["shipping"] = { Wiktionary = "shipping#Noun", topical_categories = true, } labels["shoemaking"] = { Wiktionary = true, topical_categories = true, } labels["shogi"] = { Wiktionary = true, topical_categories = true, } labels["signal processing"] = { Wikipedia = true, topical_categories = true, } labels["Sikhism"] = { aliases = {"Sikh"}, Wiktionary = true, topical_categories = true, } labels["Singaporean politics"] = { Wikipedia = "Politics of Singapore", topical_categories = true, } labels["singing"] = { Wiktionary = "singing#Noun", topical_categories = true, } labels["skateboarding"] = { Wiktionary = "skateboarding#Noun", topical_categories = true, } labels["skating"] = { Wiktionary = "skating#Noun", topical_categories = true, } labels["skeleton"] = { display = "[[anatomy]]", topical_categories = true, } labels["skiing"] = { Wiktionary = "skiing#Noun", topical_categories = true, } labels["skydiving"] = { Wiktionary = "skydiving#Noun", topical_categories = true, } labels["Slavic god"] = { display = "[[Slavic]] [[mythology]]", topical_categories = "Slavic deities", } labels["Slavic mythology"] = { display = "[[Slavic]] [[mythology]]", topical_categories = true, } labels["smoking"] = { Wiktionary = "smoking#Noun", topical_categories = true, } labels["snooker"] = { Wiktionary = "snooker#Noun", topical_categories = true, } labels["snowboarding"] = { Wiktionary = "snowboarding#Noun", topical_categories = true, } labels["soccer"] = { aliases = {"football", "association football"}, Wiktionary = true, topical_categories = "Football (soccer)", } labels["social media"] = { Wiktionary = true, topical_categories = true, } labels["social sciences"] = { aliases = {"social science"}, display = "[[social science]]s", topical_categories = true, } labels["socialism"] = { Wiktionary = true, topical_categories = true, } labels["sociolinguistics"] = { Wiktionary = true, topical_categories = true, } labels["sociology"] = { Wiktionary = true, topical_categories = true, } labels["softball"] = { Wiktionary = true, topical_categories = true, } labels["software"] = { Wiktionary = true, topical_categories = true, } labels["software architecture"] = { Wiktionary = true, topical_categories = {"Software engineering", "Programming"}, } labels["software engineering"] = { aliases = {"software development"}, Wiktionary = true, topical_categories = true, } labels["soil science"] = { Wiktionary = true, topical_categories = true, } labels["sound"] = { Wiktionary = "sound#Noun", topical_categories = true, } labels["sound engineering"] = { Wiktionary = true, topical_categories = true, } labels["South Korean idol fandom"] = { aliases = {"Korean idol fandom", "Korean idol"}, display = "[[South Korean]] [[idol]] [[fandom]]", topical_categories = true, } labels["South Park"] = { display = "''[[w:South Park|South Park]]''", Wikipedia = true, topical_categories = true, } labels["Soviet Union"] = { aliases = {"USSR", "Soviet"}, Wiktionary = true, topical_categories = true, } labels["space flight"] = { aliases = {"spaceflight", "space travel"}, Wiktionary = true, topical_categories = "Space", } labels["space science"] = { aliases = {"space"}, Wiktionary = true, topical_categories = "Space", } labels["Spanish politics"] = { Wikipedia = "Politics of Spain", topical_categories = true, } labels["spectroscopy"] = { Wiktionary = true, topical_categories = true, } labels["speedrunning"] = { aliases = {"speedrun", "speedruns"}, Wiktionary = true, topical_categories = true, } labels["spinning"] = { Wiktionary = true, topical_categories = true, } labels["spiritualism"] = { Wiktionary = true, topical_categories = true, } labels["sports"] = { aliases = {"sport"}, Wiktionary = true, topical_categories = true, } labels["square dancing"] = { aliases = {"square dance"}, Wiktionary = true, topical_categories = true, } labels["squash"] = { Wikipedia = "Squash (sport)", topical_categories = true, } labels["standard of identity"] = { display = "[[standard of identity|standards of identity]]", topical_categories = "Standards of identity", } labels["star"] = { display = "[[astronomy]]", topical_categories = "Stars", } labels["Star Wars"] = { display = "''[[Star Wars]]''", topical_categories = true, } labels["statistical mechanics"] = { Wiktionary = true, topical_categories = true, } labels["statistics"] = { Wiktionary = true, topical_categories = true, } labels["steroid"] = { display = "[[biochemistry]]", topical_categories = "Steroids", } labels["steroid hormone"] = { aliases = {"steroid drug"}, display = "[[biochemistry]], [[steroids]]", topical_categories = "Hormones", } labels["stock market"] = { Wiktionary = true, topical_categories = true, } labels["stock ticker symbol"] = { aliases = {"stock symbol"}, Wiktionary = true, topical_categories = "Stock symbols for companies", } labels["string instruments"] = { aliases = {"string instrument"}, display = "[[music]]", topical_categories = true, } labels["subculture"] = { Wiktionary = true, topical_categories = "Culture", } labels["Sufism"] = { aliases = {"Sufi Islam"}, Wikipedia = true, topical_categories = true, } labels["sugar acid"] = { display = "[[organic chemistry]]", topical_categories = "Sugar acids", } labels["sumo"] = { Wiktionary = true, topical_categories = true, } labels["supply chain"] = { Wiktionary = true, topical_categories = true, } labels["surface feature"] = { display = "[[planetology]]", topical_categories = "Planetary nomenclature", } labels["surfing"] = { aliases = {"surf"}, Wiktionary = "surfing#Noun", topical_categories = true, } labels["surgery"] = { Wiktionary = true, topical_categories = true, } labels["surveying"] = { Wiktionary = "surveying#Noun", topical_categories = true, } labels["sushi"] = { Wiktionary = true, topical_categories = true, } labels["swimming"] = { Wiktionary = "swimming#Noun", topical_categories = true, } labels["Swiss politics"] = { Wikipedia = "Politics of Switzerland", topical_categories = true, } labels["swords"] = { display = "[[sword]]s", topical_categories = true, } labels["Syriac Orthodoxy"] = { aliases = {"Syriac Orthodox", "Syriac Orthodox Church"}, Wikipedia = true, topical_categories = true, } labels["systematic element symbol"] = { display = "[[chemistry]]", plain_categories = "Systematic chemical symbols", } labels["systematics"] = { Wiktionary = true, topical_categories = "Taxonomy", } labels["systems engineering"] = { Wiktionary = true, topical_categories = true, } labels["systems theory"] = { Wiktionary = true, topical_categories = true, } labels["table tennis"] = { Wiktionary = true, topical_categories = true, } labels["Taoism"] = { aliases = {"Daoism"}, Wiktionary = true, topical_categories = true, } labels["tarot"] = { Wiktionary = true, topical_categories = "Cartomancy", } labels["taxation"] = { aliases = {"tax", "taxes"}, Wiktionary = true, topical_categories = true, } labels["taxonomic name"] = { display = "[[taxonomy]]", topical_categories = "Taxonomic names", } labels["taxonomy"] = { Wiktionary = true, topical_categories = true, } labels["technology"] = { Wiktionary = true, topical_categories = true, } labels["telecommunications"] = { aliases = {"telecommunication", "telecom"}, Wiktionary = true, topical_categories = true, } labels["telegraphy"] = { Wiktionary = true, topical_categories = true, } labels["telephony"] = { aliases = {"telephone", "telephones"}, Wiktionary = true, topical_categories = true, } labels["television"] = { aliases = {"TV"}, Wiktionary = true, topical_categories = true, } labels["tennis"] = { Wiktionary = true, topical_categories = true, } labels["teratology"] = { Wiktionary = true, topical_categories = true, } labels["Tetris"] = { Wiktionary = true, topical_categories = true, } labels["textiles"] = { Wiktionary = true, topical_categories = true, } labels["textual criticism"] = { Wiktionary = true, topical_categories = true, } labels["theater"] = { aliases = {"theatre"}, Wiktionary = true, topical_categories = true, } labels["theology"] = { Wiktionary = true, topical_categories = true, } labels["thermodynamics"] = { Wiktionary = true, topical_categories = true, } labels["Thracian god"] = { aliases = {"Thracian goddess", "Thracian deity"}, display = "[[w:Thracian religion|Thracian religion]]", Wikipedia = "Thracian religion", topical_categories = "Thracian deities", } labels["Tibetan Buddhism"] = { Wiktionary = true, topical_categories = "Buddhism", } labels["tiddlywinks"] = { Wiktionary = true, topical_categories = true, } labels["TikTok aesthetic"] = { display = "[[TikTok]] aesthetic", topical_categories = "Aesthetics", } labels["timber industry"] = { aliases = {"timber", "wood industry", "lumber industry", "lumber", "logging"}, Wikipedia = true, topical_categories = true, } labels["time"] = { Wiktionary = true, topical_categories = true, } labels["tincture"] = { display = "[[heraldry]]", topical_categories = "Heraldic tinctures", } labels["topology"] = { Wiktionary = true, topical_categories = true, } labels["tort law"] = { Wiktionary = true, topical_categories = "Law", } labels["tourism"] = { aliases = {"tourist"}, Wiktionary = true, topical_categories = true, } labels["toxicology"] = { Wiktionary = true, topical_categories = true, } labels["trading"] = { aliases = {"trade"}, Wiktionary = "trading#Noun", topical_categories = true, } labels["trading cards"] = { display = "[[trading card]]s", topical_categories = true, } labels["traditional Chinese medicine"] = { aliases = {"TCM", "Chinese medicine"}, Wiktionary = true, topical_categories = true, } labels["traditional Korean medicine"] = { aliases = {"Korean medicine"}, topical_categories = true, } labels["transgender"] = { aliases = {"trans"}, Wiktionary = true, topical_categories = true, } labels["translation studies"] = { Wiktionary = true, topical_categories = true, } labels["transport"] = { aliases = {"transportation"}, Wiktionary = true, topical_categories = true, } labels["traumatology"] = { Wiktionary = true, topical_categories = "Emergency medicine", } labels["travel"] = { aliases = {"travelling"}, Wiktionary = true, topical_categories = true, } labels["trigonometric function"] = { display = "[[trigonometry]]", topical_categories = "Trigonometric functions", } labels["trigonometry"] = { Wiktionary = true, topical_categories = true, } labels["trust law"] = { Wiktionary = true, topical_categories = "Law", } labels["Tumblr aesthetic"] = { display = "[[Tumblr]] [[aesthetic]]", topical_categories = "Aesthetics", } labels["Twitter"] = { aliases = {"twitter", "X"}, Wiktionary = "Twitter#Proper noun", topical_categories = true, } labels["two-up"] = { Wiktionary = true, topical_categories = true, } labels["typography"] = { aliases = {"typesetting"}, Wiktionary = true, topical_categories = true, } labels["ufology"] = { Wiktionary = true, topical_categories = true, } labels["UK politics"] = { Wikipedia = "Politics of the United Kingdom", topical_categories = true, } labels["Umbanda"] = { Wiktionary = true, topical_categories = true, } labels["underwater diving"] = { aliases = {"scuba", "scuba diving"}, display = "[[underwater]] [[diving#Noun|diving]]", topical_categories = true, } labels["Unicode"] = { aliases = {"Unicode standard"}, Wikipedia = true, topical_categories = true, } labels["United Nations"] = { aliases = {"UN"}, display = "[[United Nations|UN]]", Wikipedia = true, topical_categories = true, } labels["urban studies"] = { aliases = {"urbanism", "urban planning"}, Wiktionary = true, topical_categories = true, } labels["urology"] = { Wiktionary = true, topical_categories = true, } labels["US politics"] = { Wikipedia = "Politics of the United States", topical_categories = true, } labels["Vaishnavism"] = { aliases = {"Vaishnavist"}, Wiktionary = true, topical_categories = true, } labels["Valentinianism"] = { aliases = {"valentinianism", "Valentinianist", "valentinianist"}, Wikipedia = true, topical_categories = true, } labels["Vedic religion"] = { aliases = {"Vedic Hinduism", "Vedism", "Vedicism", "Ancient Hinduism", "ancient Hinduism"}, Wikipedia = "Historical Vedic religion", topical_categories = true, } labels["vegetable"] = { aliases = {"vegetables"}, Wiktionary = true, topical_categories = "Vegetables", } labels["vehicles"] = { aliases = {"vehicle"}, display = "[[vehicle]]s", topical_categories = true, } labels["Venezuelan politics"] = { aliases = {"Venezuela politics"}, Wikipedia = "Politics of Venezuela", topical_categories = true, } labels["veterinary disease"] = { display = "[[veterinary medicine]]", topical_categories = "Veterinary diseases", } labels["veterinary medicine"] = { aliases = {"veterinary", "vet"}, Wiktionary = true, topical_categories = true, } labels["video compression"] = { Wikipedia = true, topical_categories = true, } labels["video game genre"] = { display = "[[video game]]s", topical_categories = "Video game genres", } labels["video games"] = { aliases = {"video game", "video gaming"}, display = "[[video game]]s", topical_categories = true, } labels["virology"] = { Wiktionary = true, topical_categories = true, } labels["virus"] = { display = "[[virology]]", topical_categories = "Viruses", } labels["vitamin"] = { display = "[[biochemistry]]", topical_categories = "Vitamins", } labels["viticulture"] = { Wiktionary = true, topical_categories = {"Horticulture", "Wine"}, } labels["volcanology"] = { aliases = {"vulcanology"}, Wiktionary = true, topical_categories = true, } labels["volleyball"] = { Wiktionary = true, topical_categories = true, } labels["voodoo"] = { Wiktionary = true, topical_categories = true, } labels["war"] = { aliases = {"warfare"}, Wiktionary = true, topical_categories = true, } labels["water sports"] = { aliases = {"watersport", "watersports", "water sport"}, Wiktionary = "watersport", topical_categories = true, } labels["watercraft"] = { display = "[[nautical]]", topical_categories = true, } labels["weaponry"] = { aliases = {"weapon", "weapons"}, Wiktionary = true, topical_categories = "Weapons", } labels["weather"] = { topical_categories = true, } labels["weaving"] = { Wiktionary = "weaving#Noun", topical_categories = true, } labels["web design"] = { Wiktionary = true, topical_categories = true, aliases = {"Web design"} } labels["web development"] = { Wiktionary = true, topical_categories = {"Programming", "Web design"}, } labels["weightlifting"] = { Wiktionary = true, topical_categories = true, } labels["white supremacy"] = { -- Often used to indicate Nazi-used jargon; compare "neo-Nazism" aliases = {"white nationalism", "white nationalist", "white power", "white racism", "white supremacist ideology", "white supremacism", "white supremacist"}, Wikipedia = true, topical_categories = "White supremacist ideology", } labels["Wicca"] = { Wiktionary = true, topical_categories = true, } labels["wiki jargon"] = { aliases = {"wiki", "wikis"}, display = "[[wiki]] [[jargon]]", topical_categories = "Wiki", } labels["Wikimedia jargon"] = { aliases = {"WMF", "WMF jargon", "Wiktionary", "Wiktionary jargon", "Wikipedia", "Wikipedia jargon"}, display = "[[w:Wikimedia Foundation|Wikimedia]] [[jargon]]", topical_categories = "Wikimedia", } labels["wind instruments"] = { aliases = {"wind instrument"}, display = "[[music]]", topical_categories = true, } labels["wine"] = { Wiktionary = true, topical_categories = true, } labels["winemaking"] = { Wiktionary = true, topical_categories = "Wine", } labels["winter sports"] = { display = "[[winter sport]]s", topical_categories = true, } labels["woodwind instruments"] = { aliases = {"woodwind instrument"}, display = "[[music]]", topical_categories = true, } labels["woodworking"] = { Wiktionary = true, topical_categories = true, } labels["World War I"] = { aliases = {"World War 1", "WWI", "WW I", "WW1", "WW 1"}, Wikipedia = true, topical_categories = true, } labels["World War II"] = { aliases = {"World War 2", "WWII", "WW II", "WW2", "WW 2"}, Wikipedia = true, topical_categories = true, } labels["wrestling"] = { Wiktionary = "wrestling#Noun", topical_categories = true, } labels["writing"] = { Wiktionary = "writing#Noun", topical_categories = true, } labels["xiangqi"] = { aliases = {"Chinese chess"}, Wiktionary = true, topical_categories = true, } labels["Yazidism"] = { aliases = {"Yezidism"}, Wiktionary = true, topical_categories = true, } labels["yoga"] = { Wiktionary = true, topical_categories = true, } labels["yoga pose"] = { aliases = {"asana"}, display = "[[yoga]]", topical_categories = "Yoga poses", } labels["zodiac constellations"] = { display = "[[astronomy]]", topical_categories = "Constellations in the zodiac", } labels["zoolohiya"] = { --TLCHANGE aliases = {"zoology"}, --TLCHANGE Wiktionary = true, topical_categories = true, } labels["zootomy"] = { Wiktionary = true, topical_categories = "Animal body parts", } labels["Zoroastrianism"] = { Wiktionary = true, topical_categories = true, } -- Deprecated/do not use warning (ambiguous, unsuitable etc) labels["deprecated label"] = { aliases = {"emergency", "greekmyth", "industry", "morphology", "musici", "quantum", "vector"}, display = "<span style=\"color:var(--wikt-palette-red,red);\"><b>deprecated label</b></span>", deprecated = true, } return require("Module:labels").finalize_data(labels) o4i0lltc8mic8tg0ferzs0g5ma73yzv lipanj 0 32263 176757 159090 2026-04-27T09:37:12Z Hiyuune 5522 176757 wikitext text/x-wiki =={{=sh=}}== {{wp|hr:}} ===Panghaliling anyo=== * {{alt|sh|lip||abbreviation}} ===Pagbigkas=== * {{sh-IPA|lȋpanj}} * {{hyphenation|sh|li|panj}} ===Pangngalan=== {{sh-noun|lȋpanj|m-in|adj=lȋpanjskī}} # {{lb|sh|Croatia}} [[Hunyo]] #: {{syn|sh|jȗni<ll:Bosnia,Serbia>}} ====Saukol==== {{sh-decl-noun |lȋpanj|lȋpnji |lȋpnja|lipanja |lipnju|lipnjima |lipanj|lipnje |lipnju|lipnji |lipnju|lipnjima |lipnjem|lipnjima }} t1cbxbnfmq7oywflm2q376k5d4l6gcf 176759 176757 2026-04-27T11:06:20Z Hiyuune 5522 /* {{=sh=}} */ 176759 wikitext text/x-wiki =={{=sh=}}== {{wp|hr:}} ===Panghaliling anyo=== * {{alt|sh|lip||abbreviation}} ===Pagbigkas=== * {{sh-IPA|lȋpanj}} * {{hyphenation|sh|li|panj}} ===Pangngalan=== {{sh-noun|lȋpanj|m-in|adj=lȋpanjskī}} # {{lb|sh|Croatia}} [[Hunyo]] #: {{syn|sh|jȗni<ll:Bosnia,Serbia>}} ====Deklinasyon==== {{sh-decl-noun |lȋpanj|lȋpnji |lȋpnja|lipanja |lipnju|lipnjima |lipanj|lipnje |lipnju|lipnji |lipnju|lipnjima |lipnjem|lipnjima }} 9kz6qnkdwd4auj2xpdgzcvt8mmwpdwe Module:languages/data/3/i/extra 828 33137 176719 174762 2026-04-26T12:13:06Z Yivan000 4078 176719 Scribunto text/plain local m = {} m["iai"] = { } m["ian"] = { } m["iar"] = { } m["iba"] = { } m["ibb"] = { } m["ibd"] = { } m["ibe"] = { } m["ibg"] = { } m["ibh"] = { } m["ibl"] = { otherNames = {"Ibaloy", "Inibaloi", "Inibaloy"}, } m["ibm"] = { } m["ibn"] = { } m["ibr"] = { } m["ibu"] = { } m["iby"] = { } m["ica"] = { } m["ich"] = { otherNames = {"Etekwe", "Icen", "Itchen"}, } m["icl"] = { } m["icr"] = { otherNames = {"San Andrés-Providencia Creole"}, } m["ida"] = { } m["idb"] = { } m["idc"] = { } m["idd"] = { } m["ide"] = { } m["idi"] = { } m["idr"] = { } m["ids"] = { } m["idt"] = { } m["idu"] = { } m["ifa"] = { otherNames = {"Amganad Ifugaw"}, } m["ifb"] = { otherNames = {"Batad Ifugaw", "Ifugaw", "Batad"}, } m["ife"] = { } m["iff"] = { otherNames = {"Utaha"}, } m["ifk"] = { otherNames = {"Tuwali Ifugaw"}, } m["ifm"] = { } m["ifu"] = { otherNames = {"Mayoyao Ifugaw"}, } m["ify"] = { } m["igb"] = { otherNames = {"Igbira"}, } m["ige"] = { } m["igg"] = { } m["igl"] = { } m["igm"] = { } m["ign"] = { otherNames = {"Ignaciano Moxos", "Moxo", "Moxos", "Mojo", "Moxa"}, } m["igo"] = { varieties = {"Mirkuk", "Nuclear Isebe", "Urukun"}, } m["igs"] = { } m["igw"] = { } m["ihb"] = { } m["ihi"] = { } m["ihp"] = { } m["ijc"] = { otherNames = {"Kolokuma", "Ekpetiama", "Gbanran", "Central-Western Ijo"}, } m["ije"] = { } m["ijj"] = { } m["ijn"] = { } m["ijs"] = { otherNames = {"Southeastern Ijo", "Nembe"}, } m["ike"] = { } m["iki"] = { } m["ikk"] = { } m["ikl"] = { otherNames = {"Kulu"}, } m["iko"] = { } m["ikp"] = { } m["ikr"] = { otherNames = {"Ikarranggal", "Ikarranggali"}, } m["iks"] = { otherNames = {"Inuit Uukturausingit", "ISL", "IUR"}, } m["ikt"] = { otherNames = {"Western Canadian Inuktitut", "Western Canadian Inuktun", "Western Canadian Inuit"}, } m["ikv"] = { } m["ikw"] = { } m["ikx"] = { } m["ikz"] = { } m["ila"] = { } m["ilb"] = { } m["ilg"] = { otherNames = {"Garig"}, } m["ili"] = { } m["ilk"] = { } m["ill"] = { aliases = {"Ilanun", "Iranun (Malaysia)", "Iranun (Philippines)"}, } m["ilo"] = { aliases = {"Ilocano", "Iloko"}, --TLCHANGE {"Ilokano", "Iloko"}, } m["ils"] = { } m["ilu"] = { } m["ilv"] = { } m["ima"] = { } m["imi"] = { aliases = {"Anamuxra"}, } m["iml"] = { otherNames = {"Lower Coquille", "Miluk Coos"}, } m["imn"] = { } m["imo"] = { aliases = {"Ibo Ugu", "Imbo Ungu"}, varieties = {{"Aua", "Awa"}}, } m["imr"] = { } m["ims"] = { } m["imy"] = { } m["inb"] = { } m["ing"] = { } m["inh"] = { } m["inj"] = { } m["inl"] = { } m["inm"] = { } m["inn"] = { } m["ino"] = { } m["inp"] = { } m["ins"] = { } m["int"] = { } m["inz"] = { } m["ior"] = { } m["iou"] = { } m["iow"] = { otherNames = {"Iowa", "Otoe", "Oto", "Iowa-Otoe-Missouria", "Jiwere", "Jíwere", "Baxoje", "Báxoje", "Báxoje-Jíwere-Ñút'achi", "Báxoje-Jiwére-Ñútˀačhi", "Maʔúŋke", "Nut'achi"}, } m["ipi"] = { aliases = {"Paiela", "Porgera", "Tipinini"}, } m["ipo"] = { } m["iqu"] = { } m["iqw"] = { } m["ire"] = { } m["irh"] = { } m["iri"] = { otherNames = {"Irigwe"}, } m["irk"] = { } m["irn"] = { otherNames = {"Irántxe"}, } m["irr"] = { } m["iru"] = { } m["irx"] = { aliases = {"Kamrau"}, varieties = {{"Ira", "North Kamberau", "North Kamrau"}, {"Asienara", "South Kamberau", "South Kamrau"}}, } m["iry"] = { } m["isa"] = { } m["isc"] = { } m["isd"] = { otherNames = {"Isneg"}, } m["ise"] = { } m["isg"] = { } m["ish"] = { } m["isi"] = { otherNames = {"Isibiri", "Nkem", "Nkim", "Nkum"}, } m["isk"] = { } m["ism"] = { } m["isn"] = { } m["iso"] = { } m["isr"] = { } m["ist"] = { } m["isu"] = { otherNames = {"Isu (Menchum Division)"}, } m["isv"] = { } m["itb"] = { } m["itd"] = { aliases = {"Southern Tidong", "Nonukan Tidung", "Nonukan Tidong"}, } m["ite"] = { otherNames = {"Itoreauhip"}, } m["iti"] = { } m["itk"] = { } m["itl"] = { otherNames = {"Western Itelmen", "Kamchadal"}, } m["itm"] = { } m["ito"] = { } m["itr"] = { } m["its"] = { aliases = {"Isekiri"}, } m["itt"] = { } m["itv"] = { otherNames = {"Itawis", "Tawit", "Malaweg", "Malaueg"}, -- Malaweg may need own code } m["itw"] = { } m["itx"] = { } m["ity"] = { } m["itz"] = { otherNames = {"Itzaʼ", "Itza", "Itzá", "Itzaj"}, } m["ium"] = { } m["ivb"] = { otherNames = {"Ibataan", "Itbayat", "Itbayaten", "Babuyan", "Isamurongen", "Ivatan"}, -- or is Isamurongen ivv } m["ivv"] = { otherNames = {"Ivatanen", "Basco Ivatan", "Ivasayen"}, } m["iwk"] = { } m["iwm"] = { aliases = {"May River Iwam"}, } m["iwo"] = { aliases = {"Morop-Dintere", "Morop", "Murop"}, -- Morop-Dintere per Glottolog -- Wikipedia lists two varieties, Dintere and Komanarepket ("may be a distinct language") and says Murop is an alias -- for the whole language. varieties = {"Dintere", "Komanarepket"}, } m["iws"] = { } m["ixc"] = { } m["ixl"] = { otherNames = {"Ixhil"}, } m["iya"] = { } m["iyo"] = { } m["iyx"] = { otherNames = {"Yaka (Republic of Congo)", "Yaka"}, -- a dialect of West Teke; distinguish from 'axk' and especially 'yaf' } m["izh"] = { aliases = {"Izhorian"}, } m["izi"] = { } m["izr"] = { } m["izz"] = { otherNames = {"Izii", "Izzi"}, } return m m6xxdnl01s6p28n3zzg6em5cwd9w7xa Module:languages/data/3/m/extra 828 33143 176731 174766 2026-04-26T12:20:56Z Yivan000 4078 enwikt parity 176731 Scribunto text/plain local m = {} m["maa"] = { } m["mab"] = { } m["mad"] = { } m["mae"] = { } m["maf"] = { } m["mag"] = { } m["mai"] = { } m["maj"] = { } m["mak"] = { aliases = {"Makassarese", "Makassar", "Macassar"}, } m["mam"] = { } m["man"] = { } m["maq"] = { } m["mas"] = { } m["mat"] = { aliases = {"San Francisco Matlatzinca", -- Glottolog's name "San Francisco Oxtotilpa Matlatzinca"}, } m["mau"] = { } m["mav"] = { } m["maw"] = { } m["max"] = { } m["maz"] = { } m["mba"] = { } m["mbb"] = { } m["mbc"] = { aliases = {"Makushi", "Makusi", "Makuxi", "Macusi", "Macussi", "Teweya", "Teueia"}, } m["mbd"] = { } m["mbe"] = { aliases = {"Molala", "Molalla", "Molele"}, } m["mbf"] = { } m["mbh"] = { } m["mbi"] = { } m["mbj"] = { } m["mbk"] = { } m["mbl"] = { } m["mbm"] = { } m["mbn"] = { } m["mbo"] = { -- is, like 'bqz', 'bsi' and 'bss', a dialect of Manenguba aliases = {"Mbo"}, } m["mbp"] = { aliases = {"Damana", "Dʉmʉna", "Malayo"}, } m["mbq"] = { } m["mbr"] = { } m["mbs"] = { } m["mbt"] = { } m["mbu"] = { } m["mbv"] = { } m["mbw"] = { aliases = {"Mareng", "Yoadabe-Watoare"}, -- per Wikipedia varieties = {"Central Maring", "Eastern Maring", "Kambegl", "Karamba", "Timbunki", "Tsuwenki"}, } m["mbx"] = { aliases = {"Mari", "Sepik Mari", "Mari (East Sepik Province)", -- used by Glottolog } } m["mby"] = { } m["mbz"] = { } m["mca"] = { } m["mcb"] = { } m["mcc"] = { } m["mcd"] = { } m["mce"] = { } m["mcf"] = { } m["mcg"] = { } m["mch"] = { aliases = {"Makiritare", "Maquiritari", "Ye'kuana", "Yekuana", "So'to"}, varieties = {"Maitsi", {"Mayongong", "Maiongong"}, "De'kwana"}, } m["mci"] = { varieties = {"East Mese", "West-Central Mese", "Zezagi"}, } m["mcj"] = { } m["mck"] = { } m["mcl"] = { } m["mcm"] = { other_names = {"Malacca Creole Portuguese", "Malaccan Creole Portuguese"}, } m["mcn"] = { other_names = {"Massa", "Masa"}, } m["mco"] = { } m["mcp"] = { } m["mcq"] = { -- varieties per Glottolog varieties = {"Afore", "Akabafa", "Averi", "Chimona", {"Dea", "Dea (Ese)"}, "Jimuni", "Karira", "Mesari", "Minjori", "Muaturaina", "Nami", "Numba", {"Oko", "Oko (Papua New Guinea)"}, "Wakue"}, } m["mcr"] = { } m["mcs"] = { } m["mcu"] = { } -- mcv (Minanibai) merged into ffi (Foia Foia) per Glottolog m["mcw"] = { other_names = {"Mawa (Chad)", "Mahwa"}, } m["mcx"] = { } m["mcy"] = { } m["mcz"] = { } m["mda"] = { other_names = {"Mada"}, } m["mdb"] = { } m["mdc"] = { aliases = {"Male (Papua New Guinea)"}, -- Glottolog } m["mdd"] = { } m["mde"] = { } m["mdf"] = { aliases = {"Mordvin"}, } m["mdg"] = { } m["mdh"] = { aliases = {"Maguindanaon"}, } m["mdi"] = { } m["mdj"] = { } m["mdk"] = { } m["mdl"] = { } m["mdm"] = { } m["mdn"] = { } m["mdp"] = { } m["mdq"] = { } m["mdr"] = { } m["mds"] = { other_names = {"Maria (New Guinea)", "Maria (Papua New Guinea)"}, -- varieties per Glottolog varieties = {"Amota", "Didigaru", "Gebi", "Imila", "Maria", "Oibu", "Uderi"}, } m["mdt"] = { } m["mdu"] = { } m["mdv"] = { } m["mdw"] = { } m["mdx"] = { } m["mdy"] = { } m["mdz"] = { } m["mea"] = { } m["meb"] = { aliases = {"Ikobi", "Ikobi-Mina"}, varieties = {"Gorau", "Mena", "Meni", "Pimuru", "Utabi"}, } m["mec"] = { other_names = {"Leelawarra", "Leelalwarra", "Mala", "Marra"}, } m["med"] = { -- Glottolog says there is a Tembagla dialect. Wikipedia says Tembagla is the same as Bo-Ung, which is a sister -- language to Melpa. One or both are confused. aliases = {"Medlpa", "Melepa"}, } m["mee"] = { } m["mef"] = { } m["meh"] = { } m["mei"] = { } m["mej"] = { aliases = {"Mejah", "Meax"}, varieties = {"Irires", "Manokwari Meyah", "Mekeyiba Efej", "Sidei", "Testega"}, } m["mek"] = { } m["mel"] = { } m["mem"] = { } m["men"] = { aliases = {"Mende"}, } m["meo"] = { aliases = {"Syburi Malay", "Satun Malay"}, } m["mep"] = { aliases = {"Miriwung"}, } m["meq"] = { } m["mer"] = { } m["mes"] = { } m["met"] = { other_names = {"Nenaya", "Nengaya", "Nineia"}, } m["meu"] = { other_names = {"Pure Motu", "True Motu"}, } m["mev"] = { } m["mew"] = { } m["mey"] = { } m["mez"] = { } m["mfa"] = { } m["mfb"] = { } m["mfc"] = { } m["mfd"] = { } m["mfe"] = { other_names = {"Mauritian"}, } m["mff"] = { other_names = {"Bukwen", "Mashi"}, } m["mfg"] = { other_names = {"Mogofin"}, } m["mfh"] = { } m["mfi"] = { other_names = {"Mandara"}, } m["mfj"] = { } m["mfk"] = { } m["mfl"] = { } m["mfm"] = { } m["mfn"] = { } m["mfo"] = { } m["mfp"] = { } m["mfq"] = { } m["mfr"] = { other_names = {"Marrithiyal", "Marithiel", "Maridhiel", "Maridhiyel", "Berringen", "Bringen", "Brinken", "Nganygit", "Marriammu", "Mare-Ammu", "Maridjabin", "Maredyerbin", "Maretyabin", "Maridyerbin", "Maritjabin", "Marridan", "Meradan", "Marramanindjdji", "Marramaninydyi", "Marimanindji", "Mariyedi"}, } m["mfs"] = { } m["mft"] = { } m["mfu"] = { } m["mfv"] = { } m["mfw"] = { varieties = {"Iaibu", "Nuclear Mulaha"}, } m["mfx"] = { } m["mfy"] = { } m["mfz"] = { } m["mga"] = { } m["mgb"] = { } m["mgc"] = { } m["mgd"] = { } m["mge"] = { } m["mgf"] = { } m["mgg"] = { } m["mgh"] = { } m["mgi"] = { other_names = {"Lijili", "Migili", "Mijili"}, } m["mgj"] = { } m["mgk"] = { pseudo_families = "paa", } m["mgl"] = { } m["mgm"] = { } m["mgn"] = { } m["mgo"] = { } m["mgp"] = { } m["mgq"] = { } m["mgr"] = { } m["mgs"] = { other_names = {"Kimanda", "Kinyasa", "Nyasa"}, } m["mgt"] = { aliases = {"Mongol"}, varieties = {"Kaimbal", {"Mongol", "Mongol (Papua New Guinea)"}}, } m["mgu"] = { -- varieties per Glottolog varieties = {"Asiaoro", "Baibara", "Borebo", "Darava", "Derebai", "Domara", "Geagea", "Ilai", "Island"}, } m["mgv"] = { } m["mgw"] = { other_names = {"Matuumbi", "Kimatumbi", "Kimatuumbi"}, } m["mgy"] = { } m["mgz"] = { } m["mha"] = { } m["mhb"] = { } m["mhc"] = { } m["mhd"] = { other_names = {"Ma'a", "Normal Mbugu", "Inner Mbugu"}, } m["mhe"] = { aliases = {"Mah Meri"}, } m["mhf"] = { } m["mhg"] = { other_names = {"Margu", "Marrku"}, } m["mhi"] = { } m["mhj"] = { other_names = {"Moghol"}, } m["mhk"] = { } m["mhl"] = { } m["mhm"] = { } m["mhn"] = { } m["mho"] = { } m["mhp"] = { } m["mhq"] = { } m["mhr"] = { other_names = {"Meadow Mari", "Lowland Mari", "Midland Mari", "Standard Mari", "Upo Mari", "Mari", "Mari (Russia)"}, } m["mhs"] = { other_names = {"Buru"}, } m["mht"] = { other_names = {"Mandauaca", "Mandawaka", "Mandawaca", "Mandauaka", "Mandauáka"}, } m["mhu"] = { other_names = {"Darang", "Digaro-Mishmi", "Digaro Mishmi"}, } m["mhw"] = { } m["mhx"] = { other_names = {"Langsu", "Maru"}, } m["mhy"] = { } m["mhz"] = { other_names = {"Mor", "Moor", "Austronesian Mor"}, } m["mia"] = { } m["mib"] = { } m["mic"] = { } m["mid"] = { } m["mie"] = { } m["mif"] = { } m["mig"] = { other_names = {"Chalcatongo Mixtec"}, } m["mih"] = { } m["mii"] = { } m["mij"] = { other_names = {"Abar", "Missong", "Munken", "Ngun"}, } m["mik"] = { } m["mil"] = { } m["mim"] = { } m["min"] = { } m["mio"] = { } m["mip"] = { } m["miq"] = { other_names = {"Miskitu"}, } m["mir"] = { } m["mit"] = { } m["miu"] = { } m["miw"] = { } m["mix"] = { } m["miy"] = { } m["miz"] = { } m["mjb"] = { aliases = {"Maklere"}, -- Makasae-Makalero is a grouping } m["mjc"] = { } m["mjd"] = { } m["mje"] = { } m["mji"] = { } m["mjj"] = { } m["mjk"] = { } m["mjl"] = { } m["mjm"] = { } m["mjn"] = { aliases = {"Ma"}, varieties = {"Mina"}, } m["mjo"] = { } m["mjp"] = { } m["mjq"] = { } m["mjr"] = { } m["mjs"] = { other_names = {"Chip"}, } m["mjt"] = { other_names = {"Sauria Paharia", "Sawriya", "Sawriya Pahariya", "Sawriya Malto", "Malto", "Malti", "Maltu", "Maler"}, } m["mju"] = { } m["mjv"] = { } m["mjw"] = { other_names = {"Arleng", "Mikir"}, } m["mjx"] = { } m["mjy"] = { } m["mjz"] = { } m["mka"] = { } m["mkb"] = { } m["mkc"] = { } m["mke"] = { } m["mkf"] = { } m["mkg"] = { other_names = {"Mak"}, } m["mki"] = { } m["mkj"] = { } m["mkk"] = { } m["mkl"] = { } m["mkm"] = { } m["mkn"] = { } m["mko"] = { } m["mkp"] = { } m["mkq"] = { } m["mkr"] = { aliases = {"Manep"}, } m["mks"] = { } m["mkt"] = { } m["mku"] = { } m["mkv"] = { aliases = {"Mavea", "Mafea", "Mavia"}, } m["mkx"] = { } m["mky"] = { } m["mkz"] = { aliases = {"Makasai"}, -- Makasae-Makalero is a grouping } m["mla"] = { other_names = {"Malo", "Tamabo", "Maloese"}, } m["mlb"] = { } m["mlc"] = { other_names = {"Man Cao Lan"}, } m["mle"] = { } m["mlf"] = { aliases = {"Thin", "Prai"}, } m["mlh"] = { varieties = {"Mape-East", "Mape-West", "Nagac"}, } m["mli"] = { } m["mlj"] = { } m["mlk"] = { } m["mll"] = { } m["mlm"] = { } m["mln"] = { } m["mlo"] = { } m["mlp"] = { other_names = {"Mugil"}, } m["mlq"] = { } m["mlr"] = { } m["mls"] = { } m["mlu"] = { other_names = {"Toqabaqita"}, } m["mlv"] = { other_names = {"Motlav", "Volow"}, -- or Volow could be separated as a language } m["mlw"] = { } m["mlx"] = { } m["mlz"] = { } m["mma"] = { } m["mmb"] = { } m["mmc"] = { } m["mmd"] = { } m["mme"] = { aliases = {"Dirak", "Mae"}, } m["mmf"] = { } m["mmg"] = { } m["mmh"] = { } m["mmi"] = { aliases = {"Musar", "Amben"}, } m["mmj"] = { } m["mmk"] = { } m["mml"] = { } m["mmm"] = { } m["mmn"] = { } m["mmo"] = { } m["mmp"] = { } m["mmq"] = { other_names = {"Musak", "Mabɨŋ", "Mabing"}, } m["mmr"] = { } m["mmt"] = { } m["mmu"] = { } m["mmv"] = { } m["mmw"] = { } m["mmx"] = { } m["mmy"] = { } m["mmz"] = { } m["mna"] = { } m["mnb"] = { } m["mnc"] = { } m["mnd"] = { other_names = {"Monde", "Salamãi", "Salamai", "Salamaikã", "Sanamaica", "Sanamaiká", "Sanamaykã"}, } m["mne"] = { } m["mnf"] = { } m["mng"] = { } m["mnh"] = { other_names = {"Mono (Democratic Republic of the Congo)", "Mono"}, } m["mni"] = { aliases = {"Meitei", "Meithei"}, } m["mnj"] = { other_names = {"Munjani", "Mundzhan", "Mundzhani", "Mundzi"}, } m["mnk"] = { other_names = {"Mandingo"}, } m["mnl"] = { } m["mnm"] = { } m["mnn"] = { } m["mnp"] = { aliases = {"Northern Min Chinese", "Min Bei", "Min Bei Chinese", "Min Pei", "Min Pei Chinese"}, } m["mnq"] = { aliases = {"Mendriq", "Menriq"}, } m["mnr"] = { other_names = {"Mono (United States of America)", "Mono", "Western Mono", "Monache", "Monachi", "Owens Valley Paiute", "Eastern Mono"}, } m["mnt"] = { other_names = {"Mayi-Kulan", "Wunumara", "Mayi-Yapi", "Mayi-Thakurti"}, } m["mnu"] = { } m["mnv"] = { other_names = {"Rennell-Bellona"}, } m["mnw"] = { aliases = {"Peguan", "Talaing", "Raman"}, } m["mnx"] = { aliases = {"Mantion", "Manikion", "Sogh"}, -- Manikion is our old name } m["mny"] = { } m["mnz"] = { varieties = {"Awembak"}, } m["moa"] = { } m["moc"] = { other_names = {"Mbocobí", "Mokoví", "Moqoyt"}, } m["mod"] = { } m["moe"] = { } m["mog"] = { } m["moh"] = { } m["moi"] = { } m["moj"] = { } m["mok"] = { } m["mom"] = { } m["moo"] = { other_names = {"Monam", "Bonam"}, } m["mop"] = { other_names = {"Mopan", "Mopán Maya", "Mopán"}, } m["moq"] = { aliases = {"Mor", "Papuan Mor", "Mor (Bomberai Peninsula)"}, -- latter is Glottolog's name pseudo_families = "paa", } m["mor"] = { } m["mos"] = { other_names = {"More", "Mossi", "Moshi", "Mõõré", "Mòoré", "Mooré", "Moré", "Möré"}, } m["mot"] = { other_names = {"Bari", "Baria", "Barira", "Motilón", "Motilon", "Motilone"}, } m["mou"] = { } m["mov"] = { } m["mow"] = { other_names = {"Moi"}, } m["mox"] = { } m["moy"] = { } m["moz"] = { aliases = {"Mokulu", "Mokilko"}, } m["mpa"] = { } m["mpb"] = { } m["mpc"] = { } m["mpd"] = { } m["mpe"] = { } m["mpg"] = { } m["mph"] = { } m["mpi"] = { } m["mpj"] = { other_names = {"Yulparija", "Yulparitja"}, } m["mpk"] = { other_names = {"Mbara"}, } m["mpl"] = { } m["mpm"] = { } m["mpn"] = { } m["mpo"] = { } m["mpp"] = { varieties = {"Central Migabac", "North Migabac", "South Migabac"}, } m["mpq"] = { } m["mpr"] = { } m["mps"] = { aliases = {"Daribi", "Karimui"}, varieties = {"Erave River"}, } m["mpt"] = { varieties = {"Mianmin", "Upper August River", "Usage"}, } m["mpu"] = { other_names = {"Macurapi", "Makurápi", "Massaka"}, } m["mpv"] = { } m["mpw"] = { } m["mpx"] = { } m["mpy"] = { } m["mpz"] = { } m["mqa"] = { } m["mqb"] = { } m["mqc"] = { } m["mqe"] = { } m["mqf"] = { } m["mqg"] = { } m["mqh"] = { } m["mqi"] = { } m["mqj"] = { } m["mqk"] = { } m["mql"] = { } m["mqm"] = { } m["mqn"] = { } m["mqo"] = { varieties = {"North Modole", "South Modole"}, } m["mqp"] = { } m["mqq"] = { } m["mqr"] = { } m["mqs"] = { } m["mqt"] = { } m["mqu"] = { } m["mqv"] = { } m["mqw"] = { } m["mqx"] = { } m["mqy"] = { } m["mqz"] = { other_names = {"Pano"}, } m["mra"] = { } m["mrb"] = { aliases = {"Marino", "North Maewo"}, } m["mrc"] = { } m["mrd"] = { } m["mre"] = { } m["mrf"] = { } m["mrg"] = { other_names = {"Mishing", "Plains Miri", "Takam", "Hill Miri", "Sarak"}, } m["mrh"] = { other_names = {"Chin Mara", "Lakher", "Mara", "Maram", "Mira", "Zao"}, } m["mrj"] = { other_names = {"Hill Mari", "Mountain Mari", "Highland Mari"}, } m["mrk"] = { } m["mrl"] = { } m["mrm"] = { aliases = {"Merlav", "Merelava"}, } m["mrn"] = { other_names = {"Maringe"}, } m["mro"] = { aliases = {"Mro", "Mrung"}, } m["mrp"] = { } m["mrq"] = { } m["mrr"] = { other_names = {"Garhchiroli Maria", "Madia", "Madiya", "Maria (India)", "Maria"}, -- the last four are also names of mrr's sibling lect, daq } m["mrs"] = { } m["mrt"] = { other_names = {"Marghi Central", "Marghi"}, } m["mru"] = { other_names = {"Mono"}, } m["mrv"] = { } m["mrw"] = { } m["mrx"] = { aliases = {"Maremgi"}, -- Glottolog; name of village, Dineor is the autonym } m["mry"] = { } m["mrz"] = { varieties = {"Central Marind", "Coastal Marind", "Gawir", "Southeast Marind", "Tugeri", -- Coastal Marind varieties }, } m["msb"] = { other_names = {"Masbateño", "Masbateno", "Minasbate"}, } m["msc"] = { } m["msd"] = { } m["mse"] = { } m["msf"] = { other_names = {"Mekwei (New Guinea)", "Menggwei"}, } m["msg"] = { } m["msi"] = { } m["msj"] = { other_names = {"Madi"}, } m["msk"] = { } m["msl"] = { } m["msm"] = { } m["msn"] = { } m["mso"] = { } m["msp"] = { other_names = {"Manitsawá", "Mantizula"}, } m["msq"] = { } m["msr"] = { } m["mss"] = { } m["msu"] = { } m["msv"] = { } m["msw"] = { } m["msx"] = { } m["msy"] = { } m["msz"] = { } m["mta"] = { } m["mtb"] = { } m["mtc"] = { } m["mtd"] = { } m["mte"] = { other_names = {"Mono", "Mono-Alu"}, } m["mtf"] = { aliases = {"Murik", "Murik (Papua New Guinea)", "Sepik Murik"}, } m["mtg"] = { } m["mth"] = { } m["mti"] = { -- Maiwa is both an alias and a variety (per Glottolog) aliases = {"Maiwa", "Maiwa (Papua New Guinea)"}, varieties = {"Gairen", "Gwareta", "Maiwa", "Manigara", "Oren"}, } m["mtj"] = { varieties = {"Northern Moskona", "Southern Moskona"}, } m["mtk"] = { } m["mtl"] = { } m["mtm"] = { aliases = {"Mator-Taygi-Karagas"}, -- Glottolog's name varieties = {{"Taygi", "Taigi"}, {"Karagas", "Karagas (Mator)"}, "Nuclear Mator"}, } m["mtn"] = { } m["mto"] = { } m["mtp"] = { } m["mtq"] = { } m["mtr"] = { } m["mts"] = { } m["mtt"] = { } m["mtu"] = { } m["mtv"] = { -- Molet is a separate (sister) language. } m["mtw"] = { } m["mtx"] = { } m["mty"] = { aliases = {"Nabi-Metan"}, -- Glottolog's name } m["mua"] = { } m["mub"] = { } m["muc"] = { } m["mud"] = { } m["mue"] = { } m["mug"] = { } m["muh"] = { other_names = {"Mundu"}, } m["mui"] = { aliases = {"Musi Malay", "Palembang Malay", "Basa Pelembang Sari-sari"}, varieties = {"Sekayu", "Kelingi", "Penukal"}, } m["muj"] = { } m["mul"] = { } m["mum"] = { } m["muo"] = { } m["mup"] = { } m["muq"] = { } m["mur"] = { } m["mus"] = { other_names = {"Muscogee"}, } m["mut"] = { } m["muu"] = { } m["muv"] = { } m["mux"] = { -- Wikipedia has this under [[w:Tembagla language]] but that may be one of the dialects, since Wikipedia lists -- "Tembalo"/"Tembaglo" as a dialect. Glottolog claims that Tembagla is actually a dialect of the related -- Melpa language so someone is confused. For the moment I have removed Tembalo/Tembaglo/Tembagla from both. aliases = {"Mbo-Ung"}, -- former ISO name varieties = {"Mara-Gomu", {"Miyemu", "Miyem"}, "Ku Waru"}, } m["muy"] = { } m["muz"] = { } m["mva"] = { } m["mvb"] = { } m["mvd"] = { } m["mvg"] = { } m["mvh"] = { } m["mvi"] = { } m["mvk"] = { } m["mvl"] = { other_names = {"Mbara", "Midjamba"}, } m["mvm"] = { } m["mvn"] = { } m["mvo"] = { } m["mvp"] = { } m["mvq"] = { } m["mvr"] = { } m["mvs"] = { pseudo_families = "paa", } m["mvt"] = { } m["mvu"] = { } m["mvv"] = { } m["mvw"] = { } m["mvx"] = { } m["mvy"] = { } m["mvz"] = { aliases = {"Masqan", "Maskan", "Meskan", "Mäsqan"}, } m["mwa"] = { } m["mwb"] = { } m["mwc"] = { } m["mwe"] = { aliases = {"Chimwera", "Cimwera", "Mwela"}, } m["mwf"] = { } m["mwg"] = { } m["mwh"] = { } m["mwi"] = { } m["mwk"] = { } m["mwl"] = { } m["mwm"] = { } m["mwn"] = { } m["mwo"] = { aliases = {"Central Maewo"}, } m["mwp"] = { } m["mwq"] = { other_names = {"Mün", "Müün Chin"}, } m["mwr"] = { other_names = {"Merwari", "Dhundari", "Shekhawati", "Harauti", "Goaria", "Gurgula"}, } m["mws"] = { } m["mwt"] = { } m["mwu"] = { } m["mwv"] = { } m["mww"] = { aliases = {"Hmong Daw"}, } m["mwz"] = { } m["mxa"] = { } m["mxb"] = { } m["mxd"] = { } m["mxe"] = { } m["mxf"] = { } m["mxg"] = { } m["mxh"] = { } m["mxi"] = { aliases = {"Ajami", "Andalusi Romance"}, } m["mxj"] = { other_names = {"Miju Mishmi", "Miju-Mishmi", "Geman Deng", "Geman", "Kaman", "Kman", "Midzu"}, } m["mxk"] = { } m["mxl"] = { } m["mxm"] = { } m["mxn"] = { aliases = {"Moi"}, -- Mekwei is a different language (msf) sometimes called Mooi varieties = {"Moi Asli", "Moi Segin"}, } m["mxo"] = { } m["mxp"] = { } m["mxq"] = { } m["mxr"] = { other_names = {"Murik", "Kayan Murik"}, } m["mxs"] = { } m["mxt"] = { } m["mxu"] = { other_names = {"Mada"}, } m["mxv"] = { } m["mxw"] = { } m["mxx"] = { other_names = {"Mawukakan", "Mahu", "Maou", "Mau", "Mawu"}, } m["mxy"] = { } m["mxz"] = { } m["myb"] = { } m["myc"] = { } m["mye"] = { } m["myf"] = { } m["myg"] = { } m["myh"] = { } m["myj"] = { } m["myk"] = { } m["myl"] = { } m["mym"] = { } m["myo"] = { } m["myp"] = { } m["myr"] = { } m["mys"] = { } m["myu"] = { } m["myv"] = { aliases = {"Mordvin"}, } m["myw"] = { } m["myx"] = { other_names = {"Masaaba"}, } m["myy"] = { other_names = {"Buhagana", "Bujagana", "Wahana"}, } m["myz"] = { } m["mza"] = { } m["mzb"] = { other_names = {"Mozabite", "Tumẓabt"}, } m["mzc"] = { } m["mzd"] = { } m["mze"] = { } m["mzg"] = { } m["mzh"] = { } m["mzi"] = { } m["mzj"] = { } m["mzk"] = { } m["mzl"] = { } m["mzm"] = { } m["mzn"] = { aliases = {"Mazandarani", "Tabari"}, } m["mzo"] = { } m["mzp"] = { pseudo_families = "sai", } m["mzq"] = { } m["mzr"] = { } m["mzs"] = { aliases = {"Macanese Creole", "Macanese patois"}, } m["mzt"] = { } m["mzu"] = { aliases = {"Itutang-Inapang"}, -- Glottolog's name } m["mzv"] = { } m["mzw"] = { } m["mzx"] = { } m["mzy"] = { } m["mzz"] = { } return m gbe0xlmbixvfy3b0qcaxws7hndfxy7z Module:place/locations 828 34597 176761 176645 2026-04-27T11:09:17Z Hiyuune 5522 176761 Scribunto text/plain local export = {} export.force_cat = false -- set to true to force category generation even on non-mainspace pages local m_table = require("Module:table") local string_utilities_module = "Module:string utilities" local en_utilities_module = "Module:en-utilities" local insert = table.insert local concat = table.concat local dump = mw.dumpObject local unpack = unpack or table.unpack -- Lua 5.2 compatibility --[==[ intro: This module contains data on all known locations, along with some lower-level code to process them (higher-level known-location code is in [[Module:place/placetypes]]). You must load this module using require(), not using mw.loadData(). ===Location data=== '''NOTE: In order to understand the following better, first read the introductory documentation in [[Module:place]], especially the section `More about known locations`.''' The bulk of the code in this module (after some helper functions and placetype tables) describes the known locations and their relationships. Locations are grouped into ''location groups'' that share some common properties (examples are states of the United States and cities in Brazil). Each location group is associated with two tables, a ''data table'' that lists the locations and their individual properties, and a ''metadata table'' that lists group-level properties and defaults for the location properties. Each metadata table points to the associated data table (i.e. contains the data table as its `data` field), and the global `locations` variable holds a list of all group metadata tables. A given location is generally described by three values: (a) the group metadata table for the group the location is part of; (b) the location's canonical ''key'', which is the actual key in the group's data table and is globally unique across all locations; and (c) the location's ''spec'', which is the initialized object describing the properties of the location and comes from the value in the data table corresponding to the canonical key, transformed by the `initialize_spec()` function. These are typically named `group`, `key` and `spec`, respectively and in that order, and are found in the arguments to many functions. In a per-group data table, the keys are either ''canonical keys'' describing locations (which, as mentioned above, must be globally unique) or ''alias keys'' specifying an allowed alias for a given location. There may be multiple aliases for a given location and the alias keys only need to be unique within a particular group data table, not across all groups. It is also possible for the same string to serve as an alias key in one group and a canonical key in another group. (For example, `Newcastle` appears as an alias key in two different groups, referring to two different locations, canonically known as `Newcastle upon Tyne`, for the city in England, and `Newcastle, New South Wales`, for the city in New South Wales, Australia; and `Birmingham` appears both as a canonical key in the group of English cities and an alias key for canonical `Birmingham, Alabama` in the group of US cities.) The corresponding value objects are different for canonical and alias keys. Corresponding to canonical keys are ''location specs'', describing the properies of the location that cannot be derived from default properties of the group or global defaults. Corresponding to alias keys are ''alias specs'', which are highly restricted in the properties they can contain, and whose properties do not have per-group defaults, but only global defaults. The canonical key is always the same as the bare category corresponding to the location, which is one of the reasons it must be globally unique. For example, the country of Georgia uses the canonical key `Georgia` and corresponding bare category [[:Category:Georgia]], while the US state of Georgia uses the canonical key `Georgia, USA` and corresponding bare category [[:Category:Georgia, USA]]. The following conventions are followed in naming keys: * Countries, ''country-like entities'' (which are a mixture of unrecognized de-facto states and dependent territories) and ''former countries'' (which also includes other types of polities, such as the Roman Empire) use their unqualified placename as the canonical key. (See the documentation for [[Module:place]] for the distinction between keys and placenames, which is critical to understand when working with location data.) This also applies to constituent countries (such as England, Aruba and the Faroe Islands) and constituent parts of grouped dependent territories (such as the island of Saint Helena, which is administratively part of the British overseas territory of Saint Helena, Ascension and Tristan da Cunha). * Cities (including prefecture-level cities in China, which behave in most respects more like non-city administrative divisions) also normally use their unqualified placename as the canonical key, but if this causes name conflicts or ambiguities, they use a ''qualified key'' containing either the country name or immediate containing division (if different) following a comma, such as the case of `Newcastle, New South Wales` and `Birmingham, Alabama` above. Examples of name conflicts are the two cities just given; examples of ambiguities are the major cities of León and Mérida in Mexico and city of Cartagena, Colombia, which are given the respective canonical keys of `León, Guanajuato`, `Mérida, Yucatán` and `Cartagena, Colombia` to avoid ambiguity with the well-known respective cities of the same name in Spain, even though none of those cities are large enough to be included as known locations in this module. (The cutoff is generally having a metro area of at least 1,000,000 inhabitants, although there are exceptions.) * Administrative divisions of countries, other than the exceptions noted above for constituent countries and dependent territories, use a qualified key that contains the name of the country or constituent country in it, e.g. `Normandy, France` (a region), `Calvados, France` (a department in the region of Normandy), `Herefordshire, England` (a ceremonial county), `Northwest Territories, Canada` (a territory), `Central Finland, Finland` (a region), `Antalya Province, Turkey` (a province), `Cluj County, Romania` (a county), `County Cork, Ireland` (a county) and `New York, USA` (a state). As shown in these various examples, (a) first and second-level divisions are sometimes both included (as in France, the United Kingdom and China); (b) the qualifier after the comma is sometimes a constituent country (England) instead of a country (United Kingdom), and is sometimes abbreviated (USA rather than United States or Unites States of America); (c) the word `the` is not normally included in the key even if the location is normally preceded by `the` when following a preposition (there is a property in the location and alias specs to indicate this), except in a very few cases (most notably `The Hague`); (d) the country is included as a qualifier even if it creates an apparent redundancy, as with `Central Finland, Finland`; and (e) sometimes the placetype is included in the key, as with provinces in Turkey and several other countries; states in Nigeria; and counties in Ireland, Romania and several other countries. Whether the placetype is included, and whether it follows or precedes the placename, depends on per-country conventions. For example, provinces in Turkey, Iran and several other countries (likewise for states in Nigeria, oblasts in Russia, etc.) conventionally include the word "Province", "State", "Oblast" etc. in their name because they are normally named after the largest city in the division, which would otherwise lead to ambiguity; and counties in Ireland and Northern Ireland (and likewise County Durham, England) normally have the word "County" preceding rather than following them in their conventional name, so we follow this practice. The Wikipedia article naming scheme for a given administrative division is a strong clue as to how the division is normally referred to, and we usually follow this practice. (A minor exception is that the Wikipedia articles for provinces in Iran, Laos and Thailand include the word `province` with an initial lowercase letter while provinces elsewhere, e.g. North and South Korea, Saudi Arabia and Turkey, use uppercase `Province`; we normalize to uppercase `Province` in all cases.) As mentioned above, associated with canonical keys in the group data table are location specs, which are objects containing properties. It is important here to distinguish ''initialized specs'' from ''uninitialized specs''. Unininitialized specs are as directly specified in [[Module:place/locations]], containing only those properties that differ from the per-group or global defaults. Initialized specs result from calling `initialize_spec()` on an uninitialized spec (it is idempotent in that it will do nothing if encountering an already-initialized spec). This copies all group-level defaults that are not overridden in the location spec itself from the group-level metadata table into the location spec, so that in general, no more reference need be made to the group to fetch the correct value of a given location property. (The initialization process also does more transformations in a few cases, noted below.) Note that the default value of a given property is stored under a key in the group metadata table that is preceded by the string `default_`; for example, the default value corresponding to the `placetype` property of a given location is specified in the `default_placetype` key in the group metadata table. The following are the properties of the location spec. * `placetype`: String specifying the placetype of the location (e.g. "country", "state", province"). This can also be a table of such types; in this case, the first listed type is the canonical type that will be used in descriptions, but the location will be recognized (e.g. in a holonym, or for categorizing into the bare category) when tagged with any of the specified types. The placetype '''must''' be either specified on an individual location or defaulted at the group level, or an error occurs. * `container`: Either a string, a ''canonicalized container'' structure or a list of either type, specifying the immediate ''container'' (or containers) of the given location. A container is another location which this location is considered to be directly part of, either politically or (above the country level) geographically. Some locations belong to multiple immediate containers; this applies especially to transcontinental countries such as Russia and Turkey. Containers can themselves have containers, forming a tree (or more correctly, a [[w:directed acyclic graph]]) of locations. The list of immediate container(s), followed by the container(s) of the container(s), etc., is termed the ''container trail'', and some functions compute and return this trail as part of their operation. When a location spec is initialized, the given container spec is canonicalized into ''canonical container form'', which consists of a list of canonicalized container structures, each of which is of the form `{key = "``container_key``", placetype = "``container_placetype``"}`, where ``container_key`` is a canonical location key and ``container_placetype`` should be the listed placetype for the location, or the first listed placetype if there are multiple. (FIXME: Since the key uniquely identifies the container location, we should eliminate the placetype from the container structure.) The list of canonicalized container structures is stored into the `.containers` field of the location spec (this happens even if the container value is unset in its uninitialized spec form, causing it to default to the corresponding group-level value), and the `.container` field is set to {nil}. The canonicalization process is described in more detail below under [[#Container spec canonicalization]]. * `divs`: List of recognized political divisions; e.g. for the Netherlands, a specification of the form `divs = {"provinces", "municipalities"}` will allow categories such as [[:Category:de:Provinces of the Netherlands]] and [[:Category:pt:Municipalities of the Netherlands]] to be created. Any division that appears here must also be found in `placetype_data`, or an error occurs. The entities appearing in the `divs` list can be structures as well as just strings; this is explained more below under [[#Location divisions]]. Additional political divisions that apply to all locations in a group can be specified at the group level using the group-only property `addl_divs`, which has the same format as `divs`. This is intended to be used in the situation where some division types are shared among all locations in the group and others differ from location to location. An example where this is used is the United States, where `census-designated places` is specified in the group-level `addl_divs` so that all 50 states have census-designated places categorized as e.g. [[:Category:Census-designated places in Arizona, USA]], but `counties` and `county seats` are specified in the group-level `default_divs` because not all states have counties and county seats (Alaska has boroughs and borough seats and Louisiana has parishes and parish seats), and some states have additional divisions (New Jersey and Pennsylvania also have boroughs, while Colorado and Connecticut have municipalities). Note that under most circumstances (particularly, if `container_parent_type` is not set as a property associated with the division type), any division type specified on a sub-country-level location must also be specified on all containers up through the country. For example, since French departments specify `communes` and `municipalities` in `default_divs`, the same division types must be (and are) specified on French regions and for France itself. * `keydesc`: String directly specifying a description of the location, for use in generating the contents of category pages related to the location. In place of a string, a function of three arguments (`group`, `key`, `spec`, as is normal for locations) that computes the location description can also be given. This is used, for example, for Russian federal subjects; see `construct_russia_federal_subject_keydesc`. The special string `+++` contained in the keydesc is replaced with the default value of the location description, which specifies the location's placename, placetype, and the corresponding values for each container in the container trail, generally up through (but not beyond) the country level; see `no_include_container_in_desc` below. The location description is used to construct the full description of various categories, such as bare location categories, whose description generally reads `"{{(((}}langname}}} terms related to the people, culture, or territory of ``keydesc``."` where ``keydesc`` is the specified or auto-constructed location description. * `fulldesc`: String overriding the full description for the bare location category (but not for any other category). This is currently used only for the location `Earth`, at the very top of the tree (because the standard `people, culture or territory of ...` text doesn't make sense here), and for `Antarctica` (because it has no permanent inhabitants). FIXME: This should be renamed `bare_category_fulldesc`. * `addl_parents`: Specify additional parents for the bare location category, in addition to the category or categories generated based on the immediate container(s). For example, `Hawaii, USA` specifies `Polynesia` as an additional parent category; both `North Korea` and `South Korea` specify `Korea` (which is a specially handled location category) as an additional parent; and `Earth` specifies `nature` (not a location category, but still a topic category) as an additional parent (which in this case becomes the first parent, as `Earth` has no container). The only restriction on the categories in `addl_parents` is that they must be topic categories, because each language-specific version of the bare location category gets the corresponding language-specific versions of the categories in `addl_parents`. FIXME: This shoudl be renamed `bare_category_addl_parents`. * `wp`: Spec describing how to construct the Wikipedia article for the location. Each spec is either `true` (equivalent to `"%l"`, i.e. use the full location placename directly) or a string containing formatting directives, indicating how to construct the article name. The allowed formatting directives are `%l` (the full location placename), `%e` (the elliptical location placename) and `%c` (the full placename of the first immediate container). For example, the default value of `wp` for the group of United States cities is `"%l, %c"` since the city articles tend to be named e.g. `Austin, Texas` (but with many exceptions, specified using `wp` fields at the city level). Another example is Thai provinces, which specify a group-level default of `"%e province"` as the Wikipedia articles have lowercase `province` in their name but the Thai province keys specified in this module have uppercase `Province`. Here we have to use `%e` to get the placename without the word `Province` in it. The default is `true`, which simply uses the full location placename as the article name. Note that the Wikipedia article, along with the Wikipedia and Commons category pages, are shown in the upper right of bare category pages. * `wpcat`: Spec describing how to construct the Wikipedia category page for the location (i.e. the page listing articles and categories relevant to the location). The format is the same as with `wp`, and it defaults to the value of `wp`. It rarely needs to be specified because the category page and the article page almost always follow the same format. * `commonscat`: Spec describing how to construct the Commons category page for the location (i.e. the page on the MediaWiki Commons site listing articles and categories relevant to the location). It has the same format as `wp` and `wpcat` and defaults to `wpcat`, which is usually (but not always) correct. * `the`: Boolean specifying whether a location should be preceded by `the` when following a preposition, e.g. in category names such as [[:Category:Cities in the Northern Territory, Australia]] and in old-style place descriptions when the location occurs as the first holonym, such as the city [[Darwin]] described using {{tl|place|city|terr/Northern Territory|c/Australia}}. Note that the global default for this and all Boolean properties is {nil}, which amounts to the same as {false}. * `british_spelling`: Boolean indicating whether the location in question uses British spelling. Currently this only affects whether the spelling `neighborhoods` or `neighbourhoods` is used in categories such as [[:Category:Neighborhoods of New York City]] and [[:Category:Neighbourhoods of Sydney]]. This usually needs to be set only at the top level (i.e. country or country-like entity), because lower-level entities look up the container trail for any container that has `british_spelling = true` set, and if found, assume that British spelling applies. The general principle used in setting this is that all countries in Europe, all dependent territories of any such country, all former British colonies, and any dependent territories of these former colonies, are assumed to use British spelling, while all other countries and associated dependent territories are assumed to use American spelling. This can potentially be modified on a case-by-case basis. * `is_city`: Boolean indicating whether the location in question is a city. This is explicitly set to `true` for city-states (e.g. Monaco and Vatican City), dependent territories that are cities (e.g. Hong Kong, Macau, Bonaire, Gibraltar, etc.), certain city-level administrative divisions (such as `City of Belfast, Northern Ireland`) and (through a group-levell setting) New York boroughs. In addition, it is set to `true` in initialize_spec() whenever the group-level `default_placetype == "city"`, so that all cities get it set without explicitly needing to add a group-level setting for this. Note that the condition `default_placetype == "city"` intentionally excludes Chinese prefecture-level cities, which aren't really cities in that (for example) they don't directly contain neighborhoods, but do contain cities within them. This setting is used in various places: (a) to add cities, rivers, etc. to categories like [[:Category:Rivers in Osaka Prefecture, Japan]] and [[:Category:Cities in Wuhan]] for holonyms that are ''not'' cities; (b) to add districts, neighborhoods, and the like to categories like [[:Category:Neighborhoods of Brooklyn]] and [[:Category:Neighborhoods of Monaco]] for holoynms that ''are'' cities; (c) generally, to determine which "generic" placetypes (cities, rivers, neighborhoods, etc.) apply to the location. (Those that can occur with cities have a `generic_before_cities` setting in [[Module:place/placetypes]], and those that can occur with non-cities have a `generic_before_non_cities` setting.) * `is_former_place`: Boolean that should be set on former places such as the Soviet Union and the Roman Empire. For such places, categories such as [[:Category:fr:Rivers in the Soviet Union]] are neither generated nor recognized (more generally, no "generic" placetypes apply except for `places`), and category descriptions include the word `former`. * `overriding_bare_label_parents`: Document me! * `bare_category_parent_type`: Document me! * `no_container_cat`: Document me! * `no_container_parent`: Document me! * `no_generic_place_cat`: Document me! * `no_check_holonym_mismatch`: Document me! * `no_auto_augment_container`: Document me! * `no_include_container_in_desc`: Document me! ====Location divisions==== The `divs` field of a location describes the recognized political division types of that location. Specifying a given division type will cause places defined as being of the specified division type and with the location as a holonym will cause the place to be categorized as ` ``placetypes`` in/of ``location`` `; for example, specifying that the United States has `"states"` as a division will cause anything defined as {{tl|place|fr|state|c/US}} to be categorized under [[:Category:fr:States of the United States]]. Note that you do not have to explicitly specify division types for "generic" placetypes (those that have a `generic_before_non_cities` field if the location is not a city, or that have a `generic_before_cities` field if the location is a city); this includes things like cities, towns, villages, neighbo(u)rhoods and rivers. A given element in the `divs` list is usually a string naming a plural placetype; the placetype is automatically converted to the singular for recognizing the placetype in a {{tl|place}} spec, and irregular plurals such as `kibbutzim` are handled correctly as long as the placetype specifies an appropriate `plural` field (if the `plural` isn't explicitly given, the default singularization algorithm in [[Module:en-utilities]] is run, which gets most things correctly but has problems with `passes` and `fortresses`, which are singularized to `passe` and `fortresse`; for this reason, an explicit plural entry is added to terms in ''-ss''). In place of a string, an object can be given with the plural placetype in the `type` field; this allows additional properties to be specified along with the placetype. An example of this is the `divs` list for Canada: { ["Canada"] = {divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, "counties", "districts", "municipalities", "regional municipalities", "rural municipalities", "parishes", "Indian reserves", "census divisions", {type = "townships", prep = "in"}, }, ...}, } Here, both provinces and territories are set to categorize as `provinces and territories`, meaning that there is a single category [[:Category:Provinces and territories of Canada]] rather than separate categories for provinces and territories. Similar things are done for other countries that have more than one type of first-level administrative division (e.g. Australia, China, India and Pakistan). Note that any placetype listed under `cat_as` must exist in the table of placetypes in [[Module:place/placetypes]], and in fact there is a category-only entry there for `provinces and territories!` (the use of exclamation point following a plural placetype means that the placetype is present only for use in categories and won't be recognized as the placetype field in a {{tl|place}} description). In addition, townships are declared to use `in` rather than `of` as the preposition in the category; hence the category name will be [[:Category:Townships in Canada]] rather than [[:Category:Townships of Canada]]. (The use of `in` vs. `of` is somewhat related to whether a given placetype is an official administrative or statistical division of the location in question and comes in a defined list, in which case `of` should be used, or is more ill-defined, in which case `in` should be used; the default is `of`, and the use of `in` with `townships` is probably by analogy with the use of `in` with cities and towns.) Another more complex example is the divisions given for Quebec: { ["Quebec, Canada"] = {divs = { "counties", {type = "regional county municipalities", container_parent_type = "regional municipalities"}, {type = "regions", container_parent_type = false}, {type = "townships", prep = "in"}, {type = "parish municipalities", cat_as = {{type = "parishes", container_parent_type = "counties"}, "municipalities"}}, {type = "township municipalities", cat_as = {{type = "townships", prep = "in"}, "municipalities"}}, {type = "village municipalities", cat_as = {{type = "villages", prep = "in"}, "municipalities"}}, }, ...}, } Here, `container_parent_type` controls the second parent category of the placetype/location category associated with the entry. In this case, for example, [[:Category:Counties of Quebec, Canada]] will have [[:Category:Counties of Canada]] as its second or ''container-level'' parent. However, this doesn't make sense for `regional county municipalities`, which exist only in Quebec (so the parent category [[:Category:Regional county municipalities of Canada]] would have only one subcategory); but they are similar to regional municipalities in British Columbia, Nova Scotia and Ontario, so the `container_parent_type = "regional municipalities"` spec causes the container-level parent of this category to be [[:Category:Regional municipalities of Canada]]. Likewise, `regions` as administrative divisions (as opposed to mere geographic regions) exist only in Quebec; they have no equivalent elsewhere, so we disable the container-level parent using `container_parent_type = false`. The specs for `parish municipalities`, `township municipalities` and `village municipalities` show both that multiple types can be specified under `cat_as` (here, for example, we categorize `parish municipalities` as both `parishes` and `municipalities`) and that these types can themselves have properties, just as for entries directly under `divs`. Specifically, `{type = "parishes", container_parent_type = "counties"}` means that any place defined as a parish municipality in Quebec will be categorized under both [[:Category:Parishes of Quebec, Canada]] and [[:Category:Municipalities of Quebec, Canada]], and that the former will have a container-level parent of [[:Category:Counties of Canada]] (rather than the default of [[:Category:Parishes of Canada]]). Similarly, `township municipalities` will be categorized under both [[:Category:Townships in Quebec, Canada]] (''not'' [[:Category:Townships of Quebec, Canada]]) and [[:Category:Municipalities of Quebec, Canada]]. ====Container spec canonicalization==== A fully canonicalized container spec for a given location consists of a list of ''canonicalized container objects'', each with a `key` and `placetype` field. The `key` field should name the canonical key of some other location at a higher level (e.g. French cities are contained in French departments, which are contained in French regions, which are contained in France, which is contained in Europe, which is contained in Eurasia, which is contained in the Earth). The `placetype` field should correspond to the first (canonical) placetype listed for the key in question. The process of initializing a locaion spec converts the container spec in `.container` into a canonicalized spec in `.containers` and removes the spec from `.container`. It works as follows: # If the `container` field is missing, and there is a group-level `default_container` field, it is used in its place. For example, none of the Brazilian states listed in `brazil_states` specifies a container, but the group specifies `default_container = "Brazil"`. # A single string or canonicalized container object is allowed and made into a one-element list. # If a list element is a string that did ''not'' come from `default_container`, and there is a group-level `canonicalize_key_container` field, it is assumed to be a one-argument function and is called on the string to get a canonicalized container object. # Any remaining strings are assumed to be countries and are used directly as the `key`, with `placetype` set to `"country"`. ====Alias keys==== Aliases can be provided for canonical keys using ''alias keys''. Alias keys have a very different location spec structure from canonical keys. This structure does not, in general, have defaults at the group level and is not initialized using `initialize_spec()`, but is used as-is. The following properties are recognized in an alias location spec: * `alias_of`: The canonical key of which this key is an alias. Required. * `the`: If true, this alias key is preceded by `the` following a preposition. Defaults to the group-level `default_the` but does not pay attention to the value of `the` for the corresponding canonical key. * `display`: This is a display alias, meaning that holonyms using the placename corresponding to this alias will be converted to the placename corresponding to the canonical key when formatting the holonym for display. (Otherwise, the aliasing applies only to categorization.) If the value is true, the display canonicalization is to the placename of the canonical key; otherwise, the value should be a key whose corresponding placename is used when display canonicalizing. * `placetype`: The placetype of the alias. Rarely needs to be specified as it defaults to the canonical key's placetype, and if that is unspecified, to the group-level default placetype. ====Location group metadata tables==== As mentioned above, associated with each location group is a ''metadata table'' listing group-level properties. The metadata table contains two types of keys: group-level defaults (named like the corresponding location-level keys but preceded by `default_`, e.g. `default_placetype` corresponding to the location-level `placetype` key) and group-only keys, which are mostly functions. The following are the possible group-only keys: * `data`: This points to the group data table for the group, as described above. * `key_to_placename`: This is a function of one argument to transform the location's key (whether canonical or alias) into the full and elliptical placenames. The difference between full and elliptical placenames is described in the documentation for [[Module:place]], but in essence, it applies for keys that include the placetype in them (e.g. `Phuket Province, Thailand` or `County Mayo, Ireland`), in which case the full placename includes the placetype and the elliptical placename does not. For keys that do not include the placetype in them (e.g. `Arizona, USA` or `Gloucestershire, England`), the full and elliptical placenames are identical. Note that neither the full nor the elliptical placename includes the container in it; hence, for `Phuket Province, Thailand`, the full placename is `Phuket Province` and the elliptical placename is just `Phuket`. (Note that the full vs. elliptical placename distinction is intended only for handling cases where the placetype follows or precedes the raw placename and there is no difference between the two in whether they are normally preceded by `the`. More complex situations, such as `State of Mexico` (which normally takes `the`) vs. just `Mexico` (which doesn't), or `Islamabad Capital Territory` vs. just `Islamabad`, should be handled instead by aliases.) The `key_to_placename` function takes one argument, the key, and returns two arguments, the full and elliptical placenames, respectively. If left undefined, the default is to chop off anything starting with a comma and return the result as both full and elliptical placename, and if specifically set to `false`, the key is used directly as both full and elliptical placename. If it needs to be defined, it is best to use the helper function `make_key_to_placename`, if possible (or `make_irish_type_key_to_placename` in the case of Ireland and Northern Ireland, where `County` precedes), rather than rolling your own. In addition, you should use the global `key_to_placename` function (which takes care of the default implementation and such) rather than directly calling the function in the `key_to_placename` field. * `placename_to_key`: This is approximately the inverse of `key_to_placename`, transforming a placename (which can be either in full or elliptical form) into the corresponding key. As with `key_to_placename`, if you need to define this (generally, when the full and elliptical placenames are different), prefer using `make_placename_to_key` (or `make_irish_type_placename_to_key` for Ireland and Northern Ireland) to rolling your own. In addition, similarly to `key_to_placename`, use the global `placename_to_key` function to convert placenames to keys rather than directly invoking the function in the `placename_to_key` field. If the field is set to `false`, the placename is used unchanged as the key. Otherwise, the default algorithm works as follows: *# If the group-level `default_placetype == "city"`, use the placename unchanged as the key. *# Otherwise, if the group-level `default_container` exists and is a string, append it to the placename after a comma + space and use the result as the key. *# Otherwise, if the group-level `default_container` is a canonical container object (an object with `key` and `placetype` fields), and the `placetype` field is either `country` or `constituent country`, append the `key` field to the placename after a comma + space and use the result as the key. *# Otherwise, use the placename unchanged as the key. * `canonicalize_key_container`: A function of one argument to convert the specified `container` field, when a string, to canonical form. Described in more detail above under [[#Container spec canonicalization]]. It is preferable to construct the function using `make_canonicalize_key_container`, if possible, rather than rolling your own. * `addl_divs`: Additional political divisions appended, for all locations in the group, to the list of divisions derived from the location-level `divs` or group-level `default_divs` fields to get the final list of divisions for the location. See [[#Location divisions]] for more details. ]==] ----------------------------------------------------------------------------------- -- Helper functions -- ----------------------------------------------------------------------------------- --[==[ Throw an error. `fmt` is a format string and the remaining arguments are passed through `mw.dumpObject` and then used to format the format string as if `fmt:format(...)` were called. In general, callers should use `internal_error` unless the error was due to bad user input rather than a logic error (which usually isn't the case in deep back-end code like this). ]==] function export.process_error(fmt, ...) local args = {...} for i = 1, select("#", ...) do args[i] = dump(args[i]) end return error(string.format(fmt, unpack(args))) end --[==[ Throw an internal error (a logic error that should never happen unless there is a bug in the code, as opposed to a user error triggered by bad input or a system error due to something like running out of memory or hitting a time limit). `fmt` is a format string and the remaining arguments are passed through `mw.dumpObject` and then used to format the format string as if `fmt:format(...)` were called. ]==] function export.internal_error(fmt, ...) export.process_error("Internal error: " .. fmt, ...) end local internal_error = export.internal_error -- Return whether `list_or_element` (a list of strings, or a single string) "contains" `item` (a string). If -- `list_or_element` is a list, this returns true if `item` is in the list; otherwise it returns true if `item` -- equals `list_or_element`. local function list_or_element_contains(list_or_element, item) if type(list_or_element) == "table" then return m_table.contains(list_or_element, item) and true or false end return list_or_element == item end --[==[ Call the location group's `key_to_placename` function if it exists (see the comment at the top of [[Module:place]] for the distinction between keys and placenames). Two values are returned, the full and elliptical placenames (e.g. full `"County Durham"` vs. elliptical `"Durham"`). If the group does not define `key_to_placename`, both full and elliptical placenames are computed by chopping off anything starting with a comma. ]==] function export.key_to_placename(group, key) if group.key_to_placename == false then return key, key end if group.key_to_placename then local full_placename, elliptical_placename = group.key_to_placename(key) if type(full_placename) ~= "string" then internal_error("Key %s returned a non-string full placename: %s", key, full_placename) end if type(elliptical_placename) ~= "string" then internal_error("Key %s returned a non-string elliptical placename: %s", key, elliptical_placename) end return full_placename, elliptical_placename end key = key:gsub(",.*", "") return key, key end --[==[ Call the location group's `placename_to_key` function if it exists (see the comment at the top of [[Module:place]] for the distinction between keys and placenames) and return the result. If `placename_to_key` exists with the value `false`, return the placename unchanged. If the group does not define `placename_to_key`, and it defines a `default_container` whose placetype is either `country` or `constituent country`, the container name is appended to the placename after a comma and a space. Otherwise the placename is returned unchanged. ]==] function export.placename_to_key(group, placename) if group.placename_to_key == false then return placename elseif group.placename_to_key then local key = group.placename_to_key(placename) if type(key) ~= "string" then internal_error("Placename %s returned a non-string key: %s", placename, key) end return key elseif group.default_placetype == "city" then return placename else local defcon = group.default_container if not defcon then return placename elseif type(defcon) == "string" then return placename .. ", " .. defcon elseif type(defcon) == "table" and (defcon.placetype == "bansa" or --TLCHANGE "country" defcon.placetype == "constituent country") then return placename .. ", " .. defcon.key else return placename end end end --[==[ Initialize the location spec `spec`, augmenting it with default values taken from `group` if the spec itself doesn't specify values for the properties. This sets `containers` to a canonicalized list of objects, each with `key` and `placetype` keys, describing the immediate containers of the location, and erases (sets to nil) the original non-canonicalized `container` field. (Most locations have only one immediate container but some, e.g. Russia, have more than one. Containers should be carefully distinguished from category parents. Generally the container is the first category parent, or the first ``n`` parents if there are ``n`` containers, but there may be additional category parents, which indicate some sort of relation between the category parent and the location but not necessarily one of containment.) This function is idempotent in that nothing happens if called more than once on the same spec. FIXME: Consider reimplementing this in a more standardly object-oriented way using metatables. ]==] function export.initialize_spec(group, key, spec) if spec.initialized then return end local container = spec.container local containers local container_from_default if not container then container = group.default_container container_from_default = true end if container then if type(container) == "string" or container.key then container = {container} end containers = {} for _, cont in ipairs(container) do if type(cont) == "string" then if group.canonicalize_key_container and not container_from_default then cont = group.canonicalize_key_container(cont) else --TLCHANGE cont = {key = cont, placetype = "country"} cont = {key = cont, placetype = "bansa"} end end insert(containers, cont) end end spec.containers = containers spec.container = nil local function value_with_default(val, default_val) if val == nil then return default_val else return val end end local function set_or_default(prop) spec[prop] = value_with_default(spec[prop], group["default_" .. prop]) end set_or_default("placetype") if not spec.placetype then internal_error("No placetype found in key %s for spec %s or in group `default_placetype`", key, spec) end set_or_default("divs") spec.addl_divs = group.addl_divs for _, prop in ipairs { "keydesc", "fulldesc", "addl_parents", "overriding_bare_label_parents", "bare_category_parent_type", "wp", "wpcat", "commonscat", "british_spelling", "the", "no_container_cat", "no_container_parent", "no_generic_place_cat", "no_check_holonym_mismatch", "no_auto_augment_container", "no_include_container_in_desc", "is_city", "is_former_place", } do set_or_default(prop) end -- `default_placetype == "city"` is correct; if `default_placetype` has something else like `prefecture-level city` -- as the canonical placetype but also lists `city` (as Chinese prefecture-level cities do), don't mark as -- is_city. spec.is_city = value_with_default(spec.is_city, group.default_placetype == "city") spec.initialized = true end --[=[ Given a location group, key and possible placetypes that the placename must match, check if the key exists in the group with at least one of the group's key's placetypes matching one of the passed-in placetypes. If so, return two values: the group key (which potentially could differ from the passed-in key due to aliases) and the corresponding spec object, which (as with all functions that return spec objects) has been initialized using `initialize_spec()` (i.e. default property values have been copied from the group into the spec, if the spec doesn't itself specify a value for the property in question). `alias_resolution` controls how aliases are resolved. Normally, both display and category aliases are followed, and the returned key will reflect the canonical location key. However, if `alias_resolution` is {"none"}, no alias following happens. In that case, if the key specifies an alias, the spec for the alias rather than the spec for the canonical location is returned, and importantly, it is returned uninitialized, meaning that properties from the group are not copied into the spec. (If the key specifies a canonical location, its spec is returned initialized, as in the normal case where `alias_resolution` is unspecified.) The caller needs to check whether the returned spec is an alias by looking for an `alias_of` property. If `alias_resolution` is {"display"}, the behavior is the same as for {"none"} except that if the alias contains a setting `display = true`, the returned key will reflect the canonical location key, and if the alias contains a setting `display = ``string`` `, the returned key will reflect that string. This is a low-level function meant for internal use; external callers should generally use `get_matching_location` (for internally-derived locations), `find_matching_holonym_location` (for externally-derived locations) or `find_canonical_key` (for known-canonical locations where the placetype isn't known). ]=] local function find_matching_key_in_group(group, placetypes, key, alias_resolution) if alias_resolution ~= nil and alias_resolution ~= "none" and alias_resolution ~= "display" and alias_resolution ~= "all" then internal_error("Bad value for 'alias_resolution': %s", alias_resolution) end local spec = group.data[key] if not spec then return nil end local function check_correct_placetype(placetype) if type(placetype) == "table" then for _, pt in ipairs(placetype) do if list_or_element_contains(placetypes, pt) then return true end end return false else return list_or_element_contains(placetypes, placetype) end end if spec.alias_of then local resolved_key = spec.alias_of local resolved_spec = group.data[resolved_key] if not resolved_spec then internal_error("Key %s is an alias of %s, which doesn't exist", key, resolved_key) elseif resolved_spec.alias_of then internal_error("Key %s is an alias of %s, which is itself an alias; indirect aliasing not allowed", key, resolved_key) end if alias_resolution == "none" or alias_resolution == "display" then -- We could be working with non-initialized/defaulted spec, since we're pulling it directly from the group. local placetype = spec.placetype or resolved_spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s in any of spec %s, alias-resolved spec %s or in group " .. "`default_placetype`", key, spec, resolved_spec) end if not check_correct_placetype(placetype) then return nil end if alias_resolution == "display" then if spec.display == true then key = resolved_key elseif spec.display then key = spec.display end end return key, spec end key = resolved_key spec = resolved_spec end -- We could be working with non-initialized/defaulted spec, since we're pulling it directly from the group. local placetype = spec.placetype or group.default_placetype if not placetype then internal_error("No placetype found for key %s in spec %s or group `default_placetype`", key, spec) end if not check_correct_placetype(placetype) then return nil end export.initialize_spec(group, key, spec) return key, spec end --[=[ Given a location group, placename and possible placetypes that the placename must match, check if the placename exists in the group with at least one of the placetypes of the key in the group that corresponds to the placename matching one of the passed-in placetypes. If so, return two values: the key corrsponding to the passed-in placename and the corresponding spec object. This is similar to `find_matching_key_in_group()` but works with placenames rather than keys. `alias_resolution` is as in `find_matching_key_in_group()`. This is a low-level function meant for internal use; external callers should generally use `get_matching_location` (for internally-derived locations), `find_matching_holonym_location` (for externally-derived locations) or `find_canonical_key` (for known-canonical locations where the placetype isn't known). ]=] local function find_matching_placename_in_group(group, placetypes, placename, alias_resolution) local key = export.placename_to_key(group, placename) return find_matching_key_in_group(group, placetypes, key, alias_resolution) end --[==[ If `key` is a canonical known location key (i.e. not an alias), return the corresponding group and initialized spec. If no such key exists, return {nil}. This throws an internal error if two locations with the same key are found. ]==] function export.find_canonical_key(key) local found_locations = {} for _, group in ipairs(export.locations) do local spec = group.data[key] if not spec then -- do nothing elseif spec.alias_of then mw.log(("Skipping alias '%s' of canonical '%s'"):format(key, spec.alias_of)) else insert(found_locations, {group, spec}) end end if not found_locations[1] then return nil elseif found_locations[2] then internal_error("Found multiple matching locations for canonical key %s: %s", key, found_locations) else local group, spec = unpack(found_locations[1]) export.initialize_spec(group, key, spec) return group, spec end end --[==[ Iterator that returns all locations matching a given description, where the description consists of either a placename or a key along with a list of possible placetypes. Usually there will be at most one such location. The iterator returns three values at each iteration: the location group, canonical key by which the location is known and the spec object describing the location. `data` contains the following possible fields: * `placetypes`: A list of possible placetypes, one of which must match one of the location's placetypes; or a string specifying a placetype, which must match one of the location's placetypes. This must be specified. * `placename`: The placename of the location. Either this or `key` must be specified. * `key`: The key of the location. Either this or `placename` must be specified. * `alias_resolution`: If specified, it behaves the same as for `find_matching_key_in_group`. The spec is normally initialized using `initialize_spec()` prior to it being returned (but may not be if `alias_resolution` is given and the specified key or placename is an alias; see the documentation for `find_matching_key_in_group`). ]==] function export.iterate_matching_location(data) local i = 0 local n = #export.locations return function() while true do i = i + 1 if i > n then break end local group = export.locations[i] local key, spec if data.placename then key, spec = find_matching_placename_in_group(group, data.placetypes, data.placename, data.alias_resolution) else if not data.key then internal_error("'.placename' or '.key' must be defined: %s", data) end key, spec = find_matching_key_in_group(group, data.placetypes, data.key, data.alias_resolution) end if key then return group, key, spec end end end end --[==[ Return the location matching a given description, where the description consists of either a placename or a key along with a list of possible placetypes. This is similar to `iterate_matching_location()` but throws an internal error if there is not exactly one location found; as such, it is for use with internally specified locations (such as the containers of known locations) rather than externally specified locations, which may not match a known location and in some cases may match multiple known locations. For finding an externally specified location, consider using `find_matching_holonym_location`, which returns {nil} rather than throwing an error if the location isn't found, but also (more importantly) checks to make sure there are no conflicting holonyms among the user-specified holonyms (e.g. {{tl|place|city|s/Delaware|c/USA|t=Newark}} will not match the known location `Newark` (in New Jersey, not Delaware). ]==] function export.get_matching_location(data) local all_found = {} for group, key, spec in export.iterate_matching_location(data) do insert(all_found, {group, key, spec}) end if not all_found[1] then internal_error("Couldn't find matching location for data %s", data) elseif all_found[2] then internal_error("Found multiple matching locations for data %s: %s", data, all_found) else return unpack(all_found[1]) end end --[==[ Successively iterate over a location's containers, and then the containers of those containers, etc. Keep in mind that locations may have multiple containers (e.g. Russia has both Europe and Asia as containers, and both Europe and Asia have Eurasia as their container). A given container will never be returned twice (e.g. in the case where a specific location A has locations B and C as containers, and B has C as its container, C will not be returned twice). An internal error happens if a container loop is detected. The return value is a list of location objects, each of which contains `group`, `key` and `spec` fields. ]==] function export.iterate_containers(group, key, spec) local keys_seen = {} keys_seen[key] = true local iterations = 0 local last_iteration_containers = {{group = group, key = key, spec = spec}} return function() iterations = iterations + 1 if iterations > 10 then internal_error("Probable loop in containers when processing key %s", key) end local next_iteration_containers = {} for _, location in ipairs(last_iteration_containers) do local containers = location.spec.containers if containers then for _, container in ipairs(containers) do local container_group, container_key, container_spec = export.get_matching_location { placetypes = container.placetype, key = container.key, } if not keys_seen[container_key] then insert(next_iteration_containers, { group = container_group, key = container_key, spec = container_spec }) keys_seen[container_key] = true end end end end if not next_iteration_containers[1] then return nil end last_iteration_containers = next_iteration_containers return next_iteration_containers end end --[==[ Given a placename, convert it into a link (two-part if `display_form` is given and differs from `placename`) and add `"the "` to the beginning if called for in `spec`. ]==] function export.construct_linked_placename(spec, placename, display_form) local linked_placename = display_form and placename ~= display_form and ("[[%s|%s]]"):format(placename, display_form) or ("[[%s]]"):format(placename) if spec.the then linked_placename = "the " .. linked_placename end return linked_placename end --[=[ This is typically used to define `key_to_placename`. It generates a function that chops off parts of a string (a location key), typically at the end, in order to get the full and elliptical versions of a placename. (See the documentation above for `key_to_placename` under "Location group tables" for the difference between full and elliptical placenames.) `container_patterns` is a Lua pattern or a list of possible patterns matching the container at the end of the key, which will be used to remove that container. If multiple patterns are specified, each one is tried until one matches. If `container_patterns` is omitted, this part of the process is skipped. The reulting string becomes the full placename. If `divtype_patterns` is specified, it is likewise either a Lua pattern or list of possible patterns to match and remove the political division affixed onto the end (or possibly the beginning) of the key in the keys of certain countries (such as South Korean and North Korean counties, which include the word "County" in the key). The resulting chopped string becomes the elliptical placename. If `divtype_patterns` is omitted, this part of the process is skipped and the full and elliptical placenames are the same. Typical usage is as follows: ``` key_to_placename = make_key_to_placename(", England$"), ``` or (when the political division is part of the key) ``` key_to_placename = make_key_to_placename(", South Korea$", " County$") ``` ]=] local function make_key_to_placename(container_patterns, divtype_patterns) if type(container_patterns) == "string" then container_patterns = {container_patterns} end if type(divtype_patterns) == "string" then divtype_patterns = {divtype_patterns} end return function(key) local full_placename = key if container_patterns then for _, container_pattern in ipairs(container_patterns) do local nsubs full_placename, nsubs = full_placename:gsub(container_pattern, "") if nsubs > 0 then break end end end local elliptical_placename = full_placename if divtype_patterns then for _, divtype_pattern in ipairs(divtype_patterns) do local nsubs elliptical_placename, nsubs = elliptical_placename:gsub(divtype_pattern, "") if nsubs > 0 then break end end end return full_placename, elliptical_placename end end --[=[ This is typically used to define `placename_to_key`. It generates a function that appends a string to the end of a given placename to get the key (see the definition of `placename_to_key` above in the documentation under "Location group tables"). Optional `divtype_suffix` is a raw string (which should not contain hyphens or other characters that have special meaning in Lua patterns) to be appended first to the placename; if already present at the end, it is not appended. `container_suffix` is then added in the same fashion if given. Typical usage is like this: ``` placename_to_key = make_placename_to_key(", England") ``` (which will convert e.g. `"Hampshire"` into `"Hampshire, England"`) or ``` placename_to_key = make_placename_to_key(", South Korea", " County") ``` (which will convert e.g. `"Gangwon"` or `"Gangwon County"` into `"Gangwon County, South Korea"`). ]=] local function make_placename_to_key(container_suffix, divtype_suffix) return function(placename) local key = placename if divtype_suffix then if not key:find(divtype_suffix .. "$") then key = key .. divtype_suffix end end if container_suffix then key = key .. container_suffix end return key end end --[=[ This is typically used to define `canonicalize_key_container`, which converts a container as specified in the location data into the canonical form containing both the full container key and its placetype. It generates a function to do the canonicalization of a given container. If the container is a string, `suffix` is appended onto the string (use {nil} or {""} if there is no suffix to append), and the placetype is set to `placetype`. Otherwise the container is left as-is. Typical usage is like this: ``` canonicalize_key_container = make_canonicalize_key_container(", Canada", "province") ``` which will convert e.g. `"Ontario"` into `{key = "Ontario, Canada", placetype = "province"}`. ]=] local function make_canonicalize_key_container(suffix, placetype) return function(container) if type(container) == "string" then return {key = container .. (suffix or ""), placetype = placetype} else return container end end end ----------------------------------------------------------------------------------- -- Top-level tables -- ----------------------------------------------------------------------------------- export.continents = { --TLCHANGE ["Earth"] = {the = true, placetype = "planet", addl_parents = {"nature"}, ["Daigdig"] = {the = true, placetype = "planeta", addl_parents = {"kalikasan"}, fulldesc = "=the planet [[Earth]] and the features found on it"}, ["Africa"] = {placetype = "continent", container = {key = "Earth", placetype = "planet"}}, ["America"] = {placetype = {"supercontinent", "continent"}, container = {key = "Earth", placetype = "planet"}, keydesc = "[[America]], in the sense of [[North America]] and [[South America]] combined", wp = "Americas"}, ["Americas"] = {alias_of = "America", the = true}, ["North America"] = {placetype = "continent", container = {key = "America", placetype = "supercontinent"}}, ["Caribbean"] = {the = true, placetype = {"continental region", "region"}, container = {key = "North America", placetype = "continent"}}, ["Central America"] = {placetype = {"continental region", "region"}, container = {key = "North America", placetype = "continent"}}, ["South America"] = {placetype = "continent", container = {key = "America", placetype = "supercontinent"}}, ["Antarctica"] = {placetype = "continent", container = {key = "Earth", placetype = "planet"}, fulldesc = "=the territory of [[Antarctica]]"}, --TLCHANGE ["Eurasia"] = {placetype = {"supercontinent", "continent"}, container = {key = "Earth", placetype = "planet"}, ["Eurasya"] = {placetype = {"superkontinente", "kontinente"}, container = {key = "Daigdig", placetype = "planeta"}, keydesc = "[[Eurasia]], i.e. [[Europe]] and [[Asia]] together"}, --TLCHANGE ["Asia"] = {placetype = "continent", container = {key = "Eurasia", placetype = "supercontinent"}}, ["Asya"] = {placetype = "kontinente", container = {key = "Eurasya", placetype = "superkontinente"}}, ["Europe"] = {placetype = "continent", container = {key = "Eurasia", placetype = "supercontinent"}}, ["Oceania"] = {placetype = "continent", container = {key = "Earth", placetype = "planet"}}, ["Melanesia"] = {placetype = {"continental region", "region"}, container = {key = "Oceania", placetype = "continent"}}, ["Micronesia"] = {placetype = {"continental region", "region"}, container = {key = "Oceania", placetype = "continent"}}, ["Polynesia"] = {placetype = {"continental region", "region"}, container = {key = "Oceania", placetype = "continent"}}, } export.continents_group = { default_overriding_bare_label_parents = {}, -- container parents should be used default_divs = {{type = "mga bansa", prep = "sa"}}, --TLCHANGE {{type = "countries", prep = "in"}}, -- It's enough to mention the first-level continent or continent group. It seems excessive to write e.g. -- "El Salvador, a country in Central America, a continental region in North America, a continent in America, ...". default_no_include_container_in_desc = true, default_no_container_cat = true, default_no_container_parent = true, default_no_auto_augment_container = true, default_no_generic_place_cat = true, -- French Guyana is in France but not in Europe, which should not be an issue, so don't check holonym mismatches at -- this level. We also run into problems with supercontinents, which have "continent" as the fallback and cause -- mismatches. default_no_check_holonym_mismatch = true, data = export.continents, } -- Countries: including those with partial recognition that are normally considered countries (e.g. Kosovo, Taiwan). export.countries = { ["Afghanistan"] = {container = "Asia", divs = {"provinces", "districts"}}, ["Albania"] = {container = "Europe", divs = {"counties", "municipalities", "communes", {type = "administrative units", cat_as = "communes"}, }, british_spelling = true}, ["Algeria"] = {container = "Africa", divs = {"provinces", "communes", "districts", "municipalities"}}, ["Andorra"] = {container = "Europe", divs = {"parishes"}, british_spelling = true}, ["Angola"] = {container = "Africa", divs = {"provinces", "municipalities"}}, ["Antigua and Barbuda"] = {container = "Caribbean", divs = {"provinces"}, british_spelling = true}, ["Argentina"] = {container = "South America", divs = {"provinces", "departments", "municipalities"}}, ["Armenia"] = {container = {"Europe", "Asia"}, divs = {"provinces", "districts", "municipalities"}, british_spelling = true}, ["Republic of Armenia"] = {alias_of = "Armenia", the = true}, -- differs in "the" -- Both a country and continent ["Australia"] = {container = "Oceania", divs = { {type = "states", cat_as = "states and territories"}, {type = "territories", cat_as = "states and territories"}, {type = "ABBREVIATION_OF states", cat_as = "abbreviations of states and territories"}, {type = "ABBREVIATION_OF territories", cat_as = "abbreviations of states and territories"}, "local government areas", "dependent territories", }, british_spelling = true}, ["Austria"] = {container = "Europe", divs = {"states", "districts", "municipalities"}, british_spelling = true}, ["Azerbaijan"] = {container = {"Europe", "Asia"}, divs = {"districts", "municipalities"}, british_spelling = true}, ["Bahamas"] = {the = true, container = "Caribbean", divs = {"districts"}, british_spelling = true, wp = "The %l"}, ["Bahrain"] = {container = "Asia", divs = {"governorates"}}, ["Bangladesh"] = {container = "Asia", divs = {"divisions", "districts", "municipalities"}, british_spelling = true}, ["Barbados"] = {container = "Caribbean", divs = {"parishes"}, british_spelling = true}, ["Belarus"] = {container = "Europe", divs = {"regions", "districts"}, british_spelling = true}, ["Belgium"] = {container = "Europe", divs = {"regions", "provinces", "municipalities"}, british_spelling = true}, ["Belize"] = {container = "Central America", divs = {"districts"}, british_spelling = true}, ["Benin"] = {container = "Africa", divs = {"departments", "communes"}}, ["Bhutan"] = {container = "Asia", divs = {"districts", "gewogs"}}, ["Bolivia"] = {container = "South America", divs = {"provinces", "departments", "municipalities"}}, ["Bosnia and Herzegovina"] = {container = "Europe", divs = {"entities", "cantons", "municipalities"}, british_spelling = true}, ["Bosnia and Hercegovina"] = {alias_of = "Bosnia and Herzegovina", display = true}, ["Bosnia-Herzegovina"] = {alias_of = "Bosnia and Herzegovina", display = true}, ["Bosnia-Hercegovina"] = {alias_of = "Bosnia and Herzegovina", display = true}, ["Bosnia"] = {alias_of = "Bosnia and Herzegovina", display = true}, ["Botswana"] = {container = "Africa", divs = {"districts", "subdistricts"}, british_spelling = true}, ["Brazil"] = {container = "South America", divs = { "states", "municipalities", "macroregions", {type = "ABBREVIATION_OF states", cat_as = "abbreviations of states"}, }}, ["Brunei"] = {container = "Asia", divs = {"districts", "mukims"}, british_spelling = true}, ["Bulgaria"] = {container = "Europe", divs = {"provinces", "municipalities"}, british_spelling = true}, ["Burkina Faso"] = {container = "Africa", divs = {"regions", "departments", "provinces"}}, ["Burundi"] = {container = "Africa", divs = {"provinces", "communes"}}, ["Cambodia"] = {container = "Asia", divs = {"provinces", "districts"}}, ["Cameroon"] = {container = "Africa", divs = {"regions", "departments"}}, ["Canada"] = {container = "North America", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, {type = "ABBREVIATION_OF provinces", cat_as = "abbreviations of provinces and territories"}, {type = "ABBREVIATION_OF territories", cat_as = "abbreviations of provinces and territories"}, "counties", "districts", "municipalities", "regional municipalities", "rural municipalities", "parishes", -- Don't change the following to something more politically correct (e.g. "First Nations reserves") until/unless -- the Canadian government makes a similar switch (and note that as of Apr 18 2025, the Wikipedia article is -- still at [[w:Indian reserves]]). "Indian reserves", "census divisions", {type = "townships", prep = "in"}, }, british_spelling = true}, ["Cape Verde"] = {container = "Africa", divs = {"municipalities", "parishes"}}, ["Cabo Verde"] = {alias_of = "Cape Verde", display = true}, ["Central African Republic"] = {the = true, container = "Africa", divs = {"prefectures", "subprefectures"}}, ["CAR"] = {alias_of = "Central African Republic", display = true, the = true}, ["C.A.R"] = {alias_of = "Central African Republic", display = true, the = true}, ["Chad"] = {container = "Africa", divs = {"regions", "departments"}}, ["Chile"] = {container = "South America", divs = {"regions", "provinces", "communes"}}, ["China"] = {container = "Asia", divs = { {type = "provinces", cat_as = "provinces and autonomous regions"}, {type = "autonomous regions", cat_as = "provinces and autonomous regions"}, {type = "FORMER provinces", cat_as = "former provinces"}, "special administrative regions", "prefectures", {type = "FORMER prefectures", cat_as = "former prefectures"}, "prefecture-level cities", {type = "counties", cat_as = "counties and county-level cities"}, {type = "county-level cities", cat_as = "counties and county-level cities"}, {type = "FORMER counties", cat_as = "former counties and county-level cities"}, {type = "FORMER county-level cities", cat_as = "former counties and county-level cities"}, -- "towns" (but not "townships") are automatically added as they are specified as generic_before_non_cities. "districts", {type = "FORMER districts", cat_as = "former districts"}, "subdistricts", "townships", "municipalities", {type = "direct-administered municipalities", cat_as = "municipalities"}, }}, ["People's Republic of China"] = {alias_of = "China", the = true}, -- differs in "the" ["Colombia"] = {container = "South America", divs = {"departments", "municipalities"}}, ["Comoros"] = {the = true, container = "Africa", divs = {"autonomous islands"}}, ["Costa Rica"] = {container = "Central America", divs = {"provinces", "cantons"}}, ["Croatia"] = {container = "Europe", divs = {"counties", "municipalities"}, british_spelling = true}, ["Cuba"] = {container = "Caribbean", divs = {"provinces", "municipalities"}}, ["Cyprus"] = {container = {"Europe", "Asia"}, divs = {"districts"}, british_spelling = true}, ["Czech Republic"] = {the = true, container = "Europe", divs = {"regions", "districts", "municipalities"}, british_spelling = true}, ["Czechia"] = {alias_of = "Czech Republic"}, -- differs in "the" ["Democratic Republic of the Congo"] = {the = true, container = "Africa", divs = {"provinces", "territories"}}, ["Congo"] = {alias_of = "Democratic Republic of the Congo", display = true, the = true}, ["DRC"] = {alias_of = "Democratic Republic of the Congo", display = true, the = true}, ["D.R.C"] = {alias_of = "Democratic Republic of the Congo", display = true, the = true}, ["Denmark"] = {container = "Europe", divs = {"regions", "municipalities", "dependent territories"}, british_spelling = true, -- Wikipedia separates [[w:Denmark]] (constituent country) from [[w:Danish Realm]] (country) }, ["Djibouti"] = {container = "Africa", divs = {"regions", "districts"}}, ["Dominica"] = {container = "Caribbean", divs = {"parishes"}, british_spelling = true}, ["Dominican Republic"] = {the = true, container = "Caribbean", divs = {"provinces", "municipalities"}, keydesc = "the [[Dominican Republic]], the country that shares the [[Caribbean]] island of [[Hispaniola]] with [[Haiti]]"}, ["East Timor"] = {container = "Asia", divs = {"municipalities"}, wp = "Timor-Leste"}, ["Timor-Leste"] = {alias_of = "East Timor", display = true}, ["Ecuador"] = {container = "South America", divs = {"provinces", "cantons"}}, ["Egypt"] = {container = "Africa", divs = {"governorates", "regions"}, british_spelling = true}, ["El Salvador"] = {container = "Central America", divs = {"departments", "municipalities"}}, ["Equatorial Guinea"] = {container = "Africa", divs = {"provinces"}}, ["Eritrea"] = {container = "Africa", divs = {"regions", "subregions"}}, ["Estonia"] = {container = "Europe", divs = {"counties", "municipalities"}, british_spelling = true}, ["Eswatini"] = {container = "Africa", british_spelling = true}, ["Swaziland"] = {alias_of = "Eswatini", display = true}, ["Ethiopia"] = {container = "Africa", divs = {"regions", "zones"}}, ["Federated States of Micronesia"] = {the = true, container = "Micronesia", divs = {"states"}}, ["Micronesia"] = {alias_of = "Federated States of Micronesia"}, ["Fiji"] = {container = "Melanesia", divs = {"divisions", "provinces"}, british_spelling = true}, ["Finland"] = {container = "Europe", divs = {"regions", "municipalities"}, british_spelling = true}, ["France"] = {container = "Europe", divs = {"regions", "cantons", "collectivities", "communes", {type = "municipalities", cat_as = "communes"}, "departments", {type = "prefectures", cat_as = {"prefectures", "departmental capitals"}}, {type = "French prefectures", cat_as = {"prefectures", "departmental capitals"}}, "dependent territories", "territories", "provinces", }, british_spelling = true}, ["Gabon"] = {container = "Africa", divs = {"provinces", "departments"}}, ["Gambia"] = {the = true, container = "Africa", divs = {"divisions", "districts"}, british_spelling = true, wp = "The %l"}, ["Georgia"] = {container = {"Europe", "Asia"}, divs = {"regions", "districts"}, keydesc = "the country of [[Georgia]], in [[Eurasia]]", british_spelling = true, wp = "%l (country)"}, ["Germany"] = {container = "Europe", divs = { "states", -- Bavaria, Baden-Württemberg, Hesse and North Rhine-Westphalia have administrative regions as divisions, but -- there aren't really enough of them to categorize per state. "regions", "municipalities", "districts"}, british_spelling = true}, ["Ghana"] = {container = "Africa", divs = {"regions", "districts"}, british_spelling = true}, ["Greece"] = {container = "Europe", divs = {"regions", "regional units", "municipalities", {type = "peripheries", cat_as = {"regions"}}, }, british_spelling = true}, ["Grenada"] = {container = "Caribbean", divs = {"parishes"}, british_spelling = true}, ["Guatemala"] = {container = "Central America", divs = {"departments", "municipalities"}}, ["Guinea"] = {container = "Africa", divs = {"regions", "prefectures"}}, ["Guinea-Bissau"] = {container = "Africa", divs = {"regions"}}, ["Guyana"] = {container = "South America", divs = {"regions"}, british_spelling = true}, ["Haiti"] = {container = "Caribbean", divs = {"departments", "arrondissements"}}, ["Honduras"] = {container = "Central America", divs = {"departments", "municipalities"}}, ["Hungary"] = {container = "Europe", divs = {"counties", "districts"}, british_spelling = true}, ["Iceland"] = {container = "Europe", divs = {"regions", "municipalities", "counties"}, british_spelling = true}, --TLCHANGE ["India"] = {container = "Asia", divs = { ["Indiya"] = {container = "Asya", divs = { {type = "states", cat_as = "states and union territories"}, {type = "union territories", cat_as = "states and union territories"}, {type = "ABBREVIATION_OF states", cat_as = "abbreviations of states and union territories"}, {type = "ABBREVIATION_OF union territories", cat_as = "abbreviations of states and union territories"}, "divisions", "districts", "municipalities", }, british_spelling = true}, ["Indonesia"] = {container = "Asia", divs = {"regencies", "provinces", {type = "ABBREVIATION_OF provinces", cat_as = "abbreviations of provinces"}, }}, ["Iran"] = {container = "Asya", divs = {"provinces", "counties"}}, ["Iraq"] = {container = "Asia", divs = {"governorates", "districts"}}, ["Ireland"] = {container = "Europe", addl_parents = {"British Isles"}, divs = {"counties", "districts", "provinces"}, british_spelling = true, wp = "Republic of %l"}, ["Republic of Ireland"] = {alias_of = "Ireland", the = true}, -- differs in "the" --TLCHANGE ["Israel"] = {container = "Asia", divs = {"districts"}}, ["Israel"] = {container = "Asya", divs = {"mga distrito"}}, ["Italy"] = {container = "Europe", divs = { "regions", "provinces", "metropolitan cities", "municipalities", {type = "autonomous regions", cat_as = "regions"}, }, british_spelling = true}, ["Ivory Coast"] = {container = "Africa", divs = {"districts", "regions"}}, -- We should really be using Ivory Coast (common name) but there are political ramifications to the use of -- Côte d'Ivoire so don't make it a display alias. ["Côte d'Ivoire"] = {alias_of = "Ivory Coast"}, ["Jamaica"] = {container = "Caribbean", divs = {"parishes"}, british_spelling = true}, ["Japan"] = {container = "Asia", divs = {"prefectures", "subprefectures", "municipalities"}}, ["Jordan"] = {container = "Asia", divs = {"governorates"}}, ["Kazakhstan"] = {container = {"Asia", "Europe"}, divs = {"regions", "districts"}}, --TLCHANGE ["Kenya"] = {container = "Africa", divs = {"counties"}, british_spelling = true}, ["Kenya"] = {container = "Africa", divs = {"mga kondado"}, british_spelling = true}, ["Kiribati"] = {container = "Micronesia", british_spelling = true}, ["Kosovo"] = {container = "Europe", divs = {"districts", "municipalities"}, british_spelling = true}, ["Kuwait"] = {container = "Asia", divs = {"governorates", "areas"}}, ["Kyrgyzstan"] = {container = "Asia", divs = {"regions", "districts"}}, --TLCHANGE ["Laos"] = {container = "Asia", divs = {"provinces", "districts"}}, ["Laos"] = {container = "Asya", divs = {"mga lalawigan", "mga distrito"}}, ["Latvia"] = {container = "Europe", divs = {"municipalities"}, british_spelling = true}, ["Lebanon"] = {container = "Asia", divs = {"governorates", "districts"}}, ["Lesotho"] = {container = "Africa", divs = {"districts"}, british_spelling = true}, ["Liberia"] = {container = "Africa", divs = {"counties", "districts"}}, ["Libya"] = {container = "Africa", divs = {"districts", "municipalities"}}, ["Liechtenstein"] = {container = "Europe", divs = {"municipalities"}, british_spelling = true}, ["Lithuania"] = {container = "Europe", divs = {"counties", "municipalities"}, british_spelling = true}, ["Luxembourg"] = {container = "Europe", divs = {"cantons", "districts"}, british_spelling = true}, ["Madagascar"] = {container = "Africa", divs = {"regions", "districts"}}, ["Malawi"] = {container = "Africa", divs = {"regions", "districts"}, british_spelling = true}, ["Malaysia"] = {container = "Asia", divs = {"states", "federal territories", "districts"}, british_spelling = true}, ["Maldives"] = {the = true, container = "Asia", divs = {"provinces", "administrative atolls"}, british_spelling = true}, ["Mali"] = {container = "Africa", divs = {"regions", "cercles"}}, ["Malta"] = {container = "Europe", divs = {"regions", "local councils"}, british_spelling = true}, ["Marshall Islands"] = {the = true, container = "Micronesia", divs = {"municipalities"}}, ["Mauritania"] = {container = "Africa", divs = {"regions", "departments"}}, ["Mauritius"] = {container = "Africa", divs = {"districts"}, british_spelling = true}, ["Mexico"] = {container = "North America", addl_parents = {"Central America"}, divs = { "states", "municipalities", {type = "ABBREVIATION_OF states", cat_as = "abbreviations of states"}, }}, ["Moldova"] = {container = "Europe", divs = { {type = "districts", cat_as = "districts and autonomous territorial units"}, {type = "autonomous territorial units", cat_as = "districts and autonomous territorial units"}, "communes", "municipalities", }, british_spelling = true}, ["Monaco"] = {placetype = {"city-state", "country"}, container = "Europe", -- We want the first placetype to be 'city-state' so the description of Monaco says it's a city-state, but we -- want its parent to be "countries in Europe". bare_category_parent_type = {type = "countries", prep = "in"}, is_city = true, british_spelling = true}, ["Mongolia"] = {container = "Asia", divs = {"provinces", "districts"}}, ["Montenegro"] = {container = "Europe", divs = {"municipalities"}}, ["Morocco"] = {container = "Africa", divs = {"regions", "prefectures", "provinces"}}, ["Mozambique"] = {container = "Africa", divs = {"provinces", "districts"}}, ["Myanmar"] = {container = "Asia", divs = {"regions", "states", "union territories", {type = "self-administered zones", cat_as = "self-administered areas"}, {type = "self-administered divisions", cat_as = "self-administered areas"}, "districts"}}, ["Burma"] = {alias_of = "Myanmar"}, -- not display-canonicalizing; has political connotations ["Namibia"] = {container = "Africa", divs = {"regions", "constituencies"}, british_spelling = true}, ["Nauru"] = {container = "Micronesia", divs = {"districts"}, british_spelling = true}, ["Nepal"] = {container = "Asia", divs = {"provinces", "districts"}}, ["Netherlands"] = {the = true, placetype = {"country", "constituent country"}, container = "Europe", divs = {"provinces", "municipalities", {type = "FORMER municipalities", cat_as = "former municipalities"}, "dependent territories", "constituent countries"}, british_spelling = true, -- Wikipedia separates [[w:Netherlands]] (constituent country) from [[w:Kingdom of the Netherlands]] -- (country) }, ["New Zealand"] = {container = "Polynesia", divs = { "regions", "dependent territories", "territorial authorities", {type = "districts", cat_as = "territorial authorities"}, }, british_spelling = true}, ["Nicaragua"] = {container = "Central America", divs = {"departments", "municipalities"}}, ["Niger"] = {container = "Africa", divs = {"regions", "departments"}}, ["Nigeria"] = {container = "Africa", divs = { "states", -- Categorize the Federal Capital Territory as a state because there's only one of it; we could categorize -- everything under 'states and territories' but that seems a bit pointless. {type = "federal territories", cat_as = "states"}, "local government areas", }, british_spelling = true}, ["North Korea"] = {container = "Asia", addl_parents = {"Korea"}, divs = {"provinces", "counties"}}, ["North Macedonia"] = {container = "Europe", divs = {"regions", "municipalities"}, british_spelling = true}, ["Macedonia"] = {alias_of = "North Macedonia", display = true}, ["Republic of North Macedonia"] = {alias_of = "North Macedonia", the = true}, -- differs in "the" ["Republic of Macedonia"] = {alias_of = "North Macedonia", the = true}, -- differs in "the" ["Norway"] = {container = "Europe", divs = {"counties", "municipalities", "dependent territories", "districts", "unincorporated areas"}, british_spelling = true}, ["Oman"] = {container = "Asia", divs = {"governorates", "provinces"}}, ["Pakistan"] = {container = "Asya", divs = { {type = "provinces", cat_as = "provinces and territories"}, {type = "administrative territories", cat_as = "provinces and territories"}, {type = "federal territories", cat_as = "provinces and territories"}, {type = "territories", cat_as = "provinces and territories"}, "divisions", "districts", }, british_spelling = true}, ["Palau"] = {container = "Micronesia", divs = {"states"}}, ["Palestine"] = {container = "Asia", divs = {"governorates"}}, ["State of Palestine"] = {alias_of = "Palestine", the = true}, -- differs in "the" ["Panama"] = {container = "Central America", divs = {"provinces", "districts"}}, ["Papua New Guinea"] = {container = "Melanesia", divs = {"provinces", "districts"}, british_spelling = true}, ["Paraguay"] = {container = "South America", divs = {"departments", "districts"}}, ["Peru"] = {container = "South America", divs = {"regions", "provinces", "districts"}}, --TLCHANGE ["Philippines"] = {the = true, container = "Asia", divs = {"regions", "provinces", "districts", "municipalities", "barangays"}}, ["Pilipinas"] = {container = "Asya", divs = {"mga rehiyon", "mga lalawigan", "mga distrito", "mga bayan", "mga barangay"}}, ["Poland"] = {divs = {"voivodeships", "counties", {type = "Polish colonies", cat_as = {{type = "villages", prep = "in"}}}, }, container = "Europe", british_spelling = true}, ["Portugal"] = {container = "Europe", divs = { {type = "autonomous regions", cat_as = "districts and autonomous regions"}, {type = "districts", cat_as = "districts and autonomous regions"}, "provinces", "municipalities"}, british_spelling = true}, ["Qatar"] = {container = "Asia", divs = {"municipalities", "zones"}}, ["Republic of the Congo"] = {the = true, container = "Africa", divs = {"departments", "districts"}}, ["Congo Republic"] = {alias_of = "Republic of the Congo", display = true, the = true}, ["Romania"] = {container = "Europe", divs = { "regions", "counties", "communes", {type = "ABBREVIATION_OF counties", cat_as = "abbreviations of counties"}, }, british_spelling = true}, ["Russia"] = {container = {"Europe", "Asia"}, divs = { "federal subjects", "republics", "autonomous oblasts", "autonomous okrugs", "oblasts", "krais", "federal cities", "districts", "federal districts"}, british_spelling = true}, ["Rwanda"] = {container = "Africa", divs = {"provinces", "districts"}}, ["Saint Kitts and Nevis"] = {container = "Caribbean", divs = {"parishes"}, british_spelling = true}, ["Saint Kitts"] = {alias_of = "Saint Kitts and Nevis", display = true}, ["Saint Lucia"] = {container = "Caribbean", divs = {"districts"}, british_spelling = true}, ["Saint Vincent and the Grenadines"] = {container = "Caribbean", divs = {"parishes"}, british_spelling = true}, ["Saint Vincent"] = {alias_of = "Saint Vincent and the Grenadines", display = true}, ["SVG"] = {alias_of = "Saint Vincent and the Grenadines", display = true}, ["S.V.G"] = {alias_of = "Saint Vincent and the Grenadines", display = true}, ["Samoa"] = {container = "Polynesia", divs = {"districts"}, british_spelling = true}, ["San Marino"] = {container = "Europe", divs = {"municipalities"}, british_spelling = true}, ["São Tomé and Príncipe"] = {container = "Africa", divs = {"districts"}}, ["São Tome and Principe"] = {alias_of = "São Tomé and Príncipe", display = true}, ["São Tomé"] = {alias_of = "São Tomé and Príncipe", display = true}, ["São Tome"] = {alias_of = "São Tomé and Príncipe", display = true}, ["Saudi Arabia"] = {container = "Asia", divs = {"provinces", "governorates"}}, ["Senegal"] = {container = "Africa", divs = {"regions", "departments"}}, ["Serbia"] = {container = "Europe", divs = {"districts", "municipalities", "autonomous provinces"}}, ["Seychelles"] = {container = "Africa", divs = {"districts"}, british_spelling = true}, ["Sierra Leone"] = {container = "Africa", divs = {"provinces", "districts"}, british_spelling = true}, ["Singapore"] = {container = "Asia", divs = {"districts", "regions"}, british_spelling = true}, ["Slovakia"] = {container = "Europe", divs = {"regions", "districts"}, british_spelling = true}, ["Slovenia"] = {container = "Europe", divs = {"statistical regions", "municipalities"}, british_spelling = true}, -- Note: While the official name does not include "the" at the beginning, -- it sounds strange in English to leave it out and it's commonly included. ["Solomon Islands"] = {the = true, container = "Melanesia", divs = {"provinces"}, british_spelling = true}, ["Somalia"] = {container = "Africa", divs = {"regions", "districts"}}, ["South Africa"] = {container = "Africa", divs = { "provinces", "districts", {type = "district municipalities", cat_as = "districts"}, {type = "metropolitan municipalities", cat_as = "districts"}, "municipalities", }, british_spelling = true}, ["South Korea"] = {container = "Asia", addl_parents = {"Korea"}, divs = {"provinces", "counties", "districts"}}, ["South Sudan"] = {container = "Africa", divs = {"regions", "states", "counties"}, british_spelling = true}, ["Spain"] = {container = "Europe", divs = {"autonomous communities", "provinces", "municipalities", "comarcas", "autonomous cities"}, british_spelling = true}, ["Sri Lanka"] = {container = "Asia", divs = {"provinces", "districts"}, british_spelling = true}, ["Sudan"] = {container = "Africa", divs = {"states", "districts"}, british_spelling = true}, ["Suriname"] = {container = "South America", divs = {"districts"}}, ["Sweden"] = {container = "Europe", divs = {"provinces", "counties", "municipalities"}, british_spelling = true}, ["Switzerland"] = {container = "Europe", divs = {"cantons", "municipalities", "districts"}, british_spelling = true}, ["Syria"] = {container = "Asia", divs = {"governorates", "districts"}}, ["Taiwan"] = {container = "Asia", divs = {"counties", "districts", "townships", "special municipalities"}}, ["Republic of China"] = {alias_of = "Taiwan", the = true}, -- differs in "the", different political connotations ["Tajikistan"] = {container = "Asia", divs = {"regions", "districts"}}, ["Tanzania"] = {container = "Africa", divs = {"regions", "districts"}, british_spelling = true}, ["Thailand"] = {container = "Asia", divs = {"provinces", "districts", "subdistricts"}}, ["Togo"] = {container = "Africa", divs = {"provinces", "prefectures"}}, ["Tonga"] = {container = "Polynesia", divs = {"divisions"}, british_spelling = true}, ["Trinidad and Tobago"] = {container = "Caribbean", divs = {"regions", "municipalities"}, british_spelling = true}, ["Tunisia"] = {container = "Africa", divs = {"governorates", "delegations"}}, ["Turkey"] = {container = {"Europe", "Asia"}, divs = {"provinces", "districts"}}, -- Foreign names generally get display-canonicalized. ["Türkiye"] = {alias_of = "Turkey", display = true}, ["Turkmenistan"] = {container = "Asia", divs = { -- The 5 regions are often also called provinces "regions", {type = "provinces", cat_as = "regions"}, "districts"}, }, ["Tuvalu"] = {container = "Polynesia", divs = {"atolls"}, british_spelling = true}, ["Uganda"] = {container = "Africa", divs = {"districts", "counties"}, british_spelling = true}, ["Ukraine"] = {container = "Europe", divs = { {type = "oblasts", cat_as = "oblasts and autonomous republics"}, {type = "autonomous republics", cat_as = "oblasts and autonomous republics"}, "raions", "hromadas", }, british_spelling = true}, ["United Arab Emirates"] = {the = true, container = "Asia", divs = {"emirates"}}, -- Abbreviations get display-canonicalized. ["UAE"] = {alias_of = "United Arab Emirates", display = true, the = true}, ["U.A.E."] = {alias_of = "United Arab Emirates", display = true, the = true}, ["United Kingdom"] = {the = true, container = "Europe", addl_parents = {"British Isles"}, divs = {"constituent countries", "counties", "districts", "boroughs", "territories", "dependent territories", "traditional counties"}, keydesc = "the [[United Kingdom]] of Great Britain and Northern Ireland", british_spelling = true}, -- Abbreviations get display-canonicalized. ["UK"] = {alias_of = "United Kingdom", display = true, the = true}, ["U.K."] = {alias_of = "United Kingdom", display = true, the = true}, ["United States"] = {the = true, container = "North America", divs = {"counties", "county seats", "states", "territories", "dependent territories", {type = "ABBREVIATION_OF states", cat_as = "abbreviations of states"}, {type = "DEROGATORY_NAME_FOR states", cat_as = "derogatory names for states"}, {type = "NICKNAME_FOR states", cat_as = "nicknames for states"}, {type = "OFFICIAL_NICKNAME_FOR states", cat_as = "official nicknames for states"}, {type = "boroughs", prep = "in"}, -- exist in Pennsylvania and New Jersey "municipalities", -- these exist politically at least in Colorado and Connecticut {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, -- Don't change the following to something more politically correct until/unless the US government makes a -- similar switch (and note that as of Apr 18 2025, the Wikipedia article is still at -- [[w:Indian reservations]]). "Indian reservations", }}, -- Abbreviations and long forms (when possible) get display-canonicalized. ["US"] = {alias_of = "United States", display = true, the = true}, ["U.S."] = {alias_of = "United States", display = true, the = true}, ["USA"] = {alias_of = "United States", display = true, the = true}, ["U.S.A."] = {alias_of = "United States", display = true, the = true}, ["United States of America"] = {alias_of = "United States", display = true, the = true}, ["Uruguay"] = {container = "South America", divs = {"departments", "municipalities"}}, ["Uzbekistan"] = {container = "Asia", divs = {"regions", "districts"}}, ["Vanuatu"] = {container = "Melanesia", divs = {"provinces"}, british_spelling = true}, ["Vatican City"] = {placetype = {"city-state", "country"}, container = "Europe", -- First placetype should be 'city-state' for to shown up in its description, -- Its parent should still be "countries in Europe". bare_category_parent_type = {type = "countries", prep = "in"}, addl_parents = {"Rome"}, is_city = true, british_spelling = true}, ["Vatican"] = {alias_of = "Vatican City", the = true}, -- differs in "the" ["Venezuela"] = {container = "South America", divs = {"states", "municipalities"}}, ["Vietnam"] = {container = "Asya", divs = {"mga lalawigan", "mga distrito", "mga bayan"}}, ["Western Sahara"] = {placetype = {"territory", "country"}, container = "Africa", bare_category_parent_type = {type = "countries", prep = "in"}, }, -- Not display-canonicalizable both due to differences in 'the' and the sovereignty dispute over Western Sahara ["Sahrawi Arab Democratic Republic"] = {alias_of = "Western Sahara", the = true}, ["SADR"] = {alias_of = "Sahrawi Arab Democratic Republic", display = true, the = true}, ["Yemen"] = {container = "Asia", divs = {"governorates", "districts"}}, ["Zambia"] = {container = "Africa", divs = {"provinces", "districts"}, british_spelling = true}, ["Zimbabwe"] = {container = "Africa", divs = {"provinces", "districts"}, british_spelling = true}, } local function canonicalize_continent_container(key) if type(key) ~= "string" then return key end if export.continents[key] then return {key = key, placetype = export.continents[key].placetype} end internal_error("Unrecognized key %s in `canonicalize_continent_like`", key) end export.countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"+++", "mga bansa"},--TLCHANGE {"+++", "countries"}, default_placetype = "bansa", --TLCHANGE "country", default_no_container_cat = true, default_no_container_parent = true, -- No need to augment country holonyms with continents; not needed for disambiguation. default_no_auto_augment_container = true, data = export.countries, } -- Country-like entities: typically overseas territories or de-facto independent countries, which in both cases -- are not internationally recognized as sovereign nations but which we treat similarly to countries. export.country_like_entities = { -- British Overseas Territory ["Akrotiri and Dhekelia"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Cyprus", "Europe", "Asia"}, british_spelling = true, }, -- Åland: Listed as a region of Finland. Wikipedia lists this under "dependent territories" in -- [[w:List of sovereign states and dependent territories by continent]]. -- unincorporated territory of the United States ["American Samoa"] = { placetype = {"unincorporated territory", "overseas territory", "territory"}, container = "United States", addl_parents = {"Polynesia"}, }, -- British Overseas Territory ["Anguilla"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Caribbean"}, british_spelling = true, }, -- de-facto independent state, internationally recognized as part of Georgia ["Abkhazia"] = { placetype = {"unrecognized country", "country"}, addl_parents = {"Georgia", "Europe", "Asia"}, divs = {"districts"}, keydesc = "the de-facto independent state of [[Abkhazia]], internationally recognized as part of the country of [[Georgia]]", british_spelling = true, }, -- Australian external territory ["Ashmore and Cartier Islands"] = { the = true, placetype = {"external territory", "territory"}, container = "Australia", addl_parents = {"Asia"}, }, -- constituent country of the Netherlands ["Aruba"] = { placetype = {"constituent country", "country"}, container = "Netherlands", addl_parents = {"Caribbean"}, british_spelling = true, }, -- British Overseas Territory ["Bermuda"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"North America"}, british_spelling = true, }, -- special municipality of the Netherlands ["Bonaire"] = { placetype = {"special municipality", "municipality", "overseas territory", "territory"}, container = "Netherlands", addl_parents = {"Caribbean"}, is_city = true, british_spelling = true, }, -- British Overseas Territory ["British Indian Ocean Territory"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Asia"}, british_spelling = true, }, -- British Overseas Territory ["British Virgin Islands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Caribbean"}, british_spelling = true, }, -- Norwegian dependent territory ["Bouvet Island"] = { placetype = {"dependent territory", "territory"}, container = "Norway", addl_parents = {"Africa"}, british_spelling = true, }, -- British Overseas Territory ["Cayman Islands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Caribbean"}, british_spelling = true, }, -- Australian external territory ["Christmas Island"] = { placetype = {"external territory", "territory"}, container = "Australia", addl_parents = {"Asia"}, british_spelling = true, }, -- Sui generis French "state private property" per Wikipedia; classify as overseas territory like the -- French Southern and Antarctic Lands. ["Clipperton Island"] = { placetype = {"overseas territory", "territory"}, container = "France", addl_parents = {"North America"}, }, -- Australian external territory; also called the Keeling Islands or (officially) the Cocos (Keeling) Islands ["Cocos Islands"] = { the = true, placetype = {"external territory", "territory"}, container = "Australia", addl_parents = {"Asia"}, wp = "Cocos (Keeling) Islands", british_spelling = true, }, ["Cocos (Keeling) Islands"] = {alias_of = "Cocos Islands", display = true, the = true}, ["Keeling Islands"] = {alias_of = "Cocos Islands", display = true, the = true}, -- self-governing but in free association with New Zealand ["Cook Islands"] = { the = true, placetype = {"country"}, container = "New Zealand", addl_parents = {"Polynesia"}, british_spelling = true, }, -- constituent country of the Netherlands ["Curaçao"] = { placetype = {"constituent country", "country"}, container = "Netherlands", addl_parents = {"Caribbean"}, british_spelling = true, }, -- special territory of Chile ["Easter Island"] = { placetype = {"special territory", "territory"}, container = "Chile", addl_parents = {"Polynesia"}, }, -- British Overseas Territory ["Falkland Islands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"South America"}, british_spelling = true, }, -- autonomous territory of Denmark ["Faroe Islands"] = { the = true, placetype = {"autonomous territory", "territory"}, container = "Denmark", addl_parents = {"Europe"}, british_spelling = true, }, -- overseas department and region of France ["French Guiana"] = { placetype = {"overseas department", "department", "administrative region", "region"}, container = "France", divs = {"communes"}, addl_parents = {"South America"}, british_spelling = true, }, -- overseas collectivity of France ["French Polynesia"] = { placetype = {"overseas collectivity", "collectivity"}, container = "France", addl_parents = {"Polynesia"}, british_spelling = true, }, -- French overseas territory ["French Southern and Antarctic Lands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "France", addl_parents = {"Africa"}, }, -- British Overseas Territory ["Gibraltar"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Europe"}, is_city = true, british_spelling = true, }, -- autonomous territory of Denmark ["Greenland"] = { placetype = {"autonomous territory", "territory"}, container = "Denmark", addl_parents = {"North America"}, divs = {"municipalities"}, british_spelling = true, }, -- overseas department and region of France ["Guadeloupe"] = { placetype = {"overseas department", "department", "administrative region", "region"}, container = "France", addl_parents = {"Caribbean"}, divs = {"communes"}, british_spelling = true, }, -- unincorporated territory of the United States ["Guam"] = { placetype = {"unincorporated territory", "overseas territory", "territory"}, container = "United States", addl_parents = {"Micronesia"}, }, -- self-governing British Crown dependency; technically called the Bailiwick of Guernsey ["Guernsey"] = { placetype = {"crown dependency", "dependency", "dependent territory", "bailiwick", "territory"}, container = "United Kingdom", addl_parents = {"British Isles", "Europe"}, british_spelling = true, wp = "Bailiwick of %l", }, ["Bailiwick of Guernsey"] = {alias_of = "Guernsey", the = true}, -- Australian external territory ["Heard Island and McDonald Islands"] = { the = true, placetype = {"external territory", "territory"}, container = "Australia", addl_parents = {"Africa"}, }, -- special administrative region of China ["Hong Kong"] = { placetype = {"special administrative region", "city"}, container = "China", is_city = true, british_spelling = true, }, -- self-governing British Crown dependency ["Isle of Man"] = { the = true, placetype = {"crown dependency", "dependency", "dependent territory", "territory"}, container = "United Kingdom", addl_parents = {"British Isles", "Europe"}, british_spelling = true, }, -- Norwegian unincorporated area ["Jan Mayen"] = { placetype = {"unincorporated area", "dependent territory", "territory", "island"}, container = "Norway", addl_parents = {"Europe"}, british_spelling = true, }, -- self-governing British Crown dependency; technically called the Bailiwick of Jersey ["Jersey"] = { placetype = {"crown dependency", "dependency", "dependent territory", "bailiwick", "territory"}, container = "United Kingdom", addl_parents = {"British Isles", "Europe"}, british_spelling = true, }, ["Bailiwick of Jersey"] = {alias_of = "Jersey", the = true}, -- special administrative region of China ["Macau"] = { placetype = {"special administrative region", "city"}, container = "China", is_city = true, british_spelling = true, }, -- overseas department and region of France ["Martinique"] = { placetype = {"overseas department", "department", "administrative region", "region"}, container = "France", divs = {"communes"}, addl_parents = {"Caribbean"}, british_spelling = true, }, -- overseas department and region of France ["Mayotte"] = { placetype = {"overseas department", "department", "administrative region", "region"}, container = "France", divs = {"communes"}, addl_parents = {"Africa"}, british_spelling = true, }, -- British Overseas Territory ["Montserrat"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Caribbean"}, british_spelling = true, }, -- special collectivity of France ["New Caledonia"] = { placetype = {"special collectivity", "collectivity"}, container = "France", addl_parents = {"Melanesia"}, british_spelling = true, }, -- dependent territory of New Zealand ["New Zealand Subantarctic Islands"] = { the = true, placetype = {"dependent territory", "territory"}, container = "New Zealand", addl_parents = {"Antarctica"}, british_spelling = true, }, -- self-governing but in free association with New Zealand ["Niue"] = { placetype = {"country"}, container = "New Zealand", addl_parents = {"Polynesia"}, british_spelling = true, }, -- Australian external territory ["Norfolk Island"] = { placetype = {"external territory", "territory"}, container = "Australia", addl_parents = {"Polynesia"}, british_spelling = true, }, -- de-facto independent state, internationally recognized as part of Cyprus ["Northern Cyprus"] = { placetype = {"unrecognized country", "country"}, addl_parents = {"Cyprus", "Turkey", "Europe", "Asia"}, divs = {"districts"}, keydesc = "the de-facto independent state of [[Northern Cyprus]], internationally recognized as part of the country of [[Cyprus]]", british_spelling = true, }, -- commonwealth, unincorporated territory of the United States ["Northern Mariana Islands"] = { the = true, placetype = {"commonwealth", "unincorporated territory", "overseas territory", "territory"}, container = "United States", addl_parents = {"Micronesia"}, }, -- British Overseas Territory ["Pitcairn Islands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Polynesia"}, british_spelling = true, }, -- commonwealth of the United States ["Puerto Rico"] = { placetype = {"commonwealth", "overseas territory", "territory"}, container = "United States", addl_parents = {"Caribbean"}, divs = {"municipalities"}, }, -- overseas department and region of France ["Réunion"] = { placetype = {"overseas department", "department", "administrative region", "region"}, container = "France", divs = {"communes"}, addl_parents = {"Africa"}, british_spelling = true, }, -- special municipality of the Netherlands ["Saba"] = { placetype = {"special municipality", "municipality", "overseas territory", "territory"}, container = "Netherlands", addl_parents = {"Caribbean"}, is_city = true, british_spelling = true, }, -- overseas collectivity of France ["Saint Barthélemy"] = { placetype = {"overseas collectivity", "collectivity"}, container = "France", addl_parents = {"Caribbean"}, british_spelling = true, }, -- British Overseas Territory ["Saint Helena, Ascension and Tristan da Cunha"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", divs = {{type = "constituent parts", container_parent_type = false}}, addl_parents = {"Atlantic Ocean", "Africa"}, british_spelling = true, }, -- constituent parts of the combined oveseas territory ["Ascension Island"] = { placetype = {"constituent part", "territory", "island"}, container = {key = "Saint Helena, Ascension and Tristan da Cunha", placetype = "overseas territory"}, addl_parents = {"Atlantic Ocean"}, overriding_bare_label_parents = {}, no_container_cat = false, no_container_parent = false, no_auto_augment_container = false, }, ["Saint Helena"] = { placetype = {"constituent part", "territory", "island"}, container = {key = "Saint Helena, Ascension and Tristan da Cunha", placetype = "overseas territory"}, addl_parents = {"Atlantic Ocean"}, overriding_bare_label_parents = {}, no_container_cat = false, no_container_parent = false, no_auto_augment_container = false, }, ["Tristan da Cunha"] = { placetype = {"constituent part", "territory", "archipelago"}, container = {key = "Saint Helena, Ascension and Tristan da Cunha", placetype = "overseas territory"}, addl_parents = {"Atlantic Ocean"}, overriding_bare_label_parents = {}, no_container_cat = false, no_container_parent = false, no_auto_augment_container = false, }, -- overseas collectivity of France ["Saint Martin"] = { placetype = {"overseas collectivity", "collectivity"}, container = "France", addl_parents = {"Caribbean"}, british_spelling = true, }, -- overseas collectivity of France ["Saint Pierre and Miquelon"] = { placetype = {"overseas collectivity", "collectivity"}, container = "France", divs = {"communes"}, addl_parents = {"North America"}, british_spelling = true, }, -- special municipality of the Netherlands ["Sint Eustatius"] = { placetype = {"special municipality", "municipality", "overseas territory", "territory"}, container = "Netherlands", addl_parents = {"Caribbean"}, is_city = true, british_spelling = true, }, -- constituent country of the Netherlands ["Sint Maarten"] = { placetype = {"constituent country", "country"}, container = "Netherlands", addl_parents = {"Caribbean"}, british_spelling = true, }, -- de-facto independent state, internationally recognized as part of Somalia ["Somaliland"] = { placetype = {"unrecognized country", "country"}, addl_parents = {"Somalia", "Africa"}, keydesc = "the de-facto independent state of [[Somaliland]], internationally recognized as part of the country of [[Somalia]]", british_spelling = true, }, -- British Overseas Territory -- FIXME: We should form the group "South Georgia and the South Sandwich Islands" like we did for -- "Saint Helena, Ascension and Tristan da Cunha". ["South Georgia"] = { placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Atlantic Ocean"}, british_spelling = true, }, -- de-facto independent state, internationally recognized as part of Georgia ["South Ossetia"] = { placetype = {"unrecognized country", "country"}, addl_parents = {"Georgia", "Europe", "Asia"}, keydesc = "the de-facto independent state of [[South Ossetia]], internationally recognized as part of the country of [[Georgia]]", british_spelling = true, }, -- British Overseas Territory ["South Sandwich Islands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Atlantic Ocean"}, wp = true, wpcat = "South Georgia and the South Sandwich Islands", british_spelling = true, }, -- Norwegian unincorporated area ["Svalbard"] = { placetype = {"unincorporated area", "dependent territory", "territory", "archipelago"}, container = "Norway", addl_parents = {"Europe"}, british_spelling = true, }, -- dependent territory of New Zealand ["Tokelau"] = { placetype = {"dependent territory", "territory"}, container = "New Zealand", addl_parents = {"Polynesia"}, british_spelling = true, }, -- de-facto independent state, internationally recognized as part of Moldova ["Transnistria"] = { placetype = {"unrecognized country", "country"}, addl_parents = {"Moldova", "Europe"}, keydesc = "the de-facto independent state of [[Transnistria]], internationally recognized as part of [[Moldova]]", british_spelling = true, }, -- British Overseas Territory ["Turks and Caicos Islands"] = { the = true, placetype = {"overseas territory", "territory"}, container = "United Kingdom", addl_parents = {"Caribbean"}, british_spelling = true, }, -- unincorporated territory of the United States ["United States Minor Outlying Islands"] = { the = true, placetype = {"unincorporated territory", "overseas territory", "territory"}, container = "United States", addl_parents = {"Islands", "Micronesia", "Polynesia", "Caribbean"}, }, -- FIXME: We should add entries for the other minor outlying islands. -- Baker Island (Oceania) -- Howland Island (Oceania) -- Jarvis Island (Oceania) -- Johnston Atoll (Oceania) -- Kingman Reef (Oceania) -- Midway Atoll (Oceania) -- Navassa Island (Caribbean) -- Palmyra Atoll (Oceania) -- Wake Island (Oceania) ["Wake Island"] = { placetype = {"unincorporated territory", "overseas territory", "territory"}, container = "United States", addl_parents = {"Micronesia"}, }, -- unincorporated territory of the United States ["United States Virgin Islands"] = { the = true, placetype = {"unincorporated territory", "overseas territory", "territory"}, container = "United States", addl_parents = {"Caribbean"}, }, ["U.S. Virgin Islands"] = {alias_of = "United States Virgin Islands", display = true, the = true}, ["US Virgin Islands"] = {alias_of = "United States Virgin Islands", display = true, the = true}, -- overseas collectivity of France ["Wallis and Futuna"] = { placetype = {"overseas collectivity", "collectivity"}, container = "France", addl_parents = {"Polynesia"}, british_spelling = true, }, } export.country_like_entities_group = { -- don't do any transformations between key and placename; in particular, don't chop off anything from -- "Saint Helena, Ascension and Tristan da Cunha". key_to_placename = false, placename_to_key = false, canonicalize_key_container = make_canonicalize_key_container(nil, "country"), default_overriding_bare_label_parents = {"country-like entities"}, default_no_container_cat = true, default_no_container_parent = true, -- These entities often aren't really part of their container; a village in Wallis and Futuna (an overseas -- collectivity of France in Polynesia), for example, shouldn't be treated as a village in France, nor as a village -- in Europe. default_no_auto_augment_container = true, data = export.country_like_entities, } -- Former countries and such; we don't create "Cities in ..." categories because they don't exist anymore export.former_countries = { -- de-facto independent state of Armenian ethnicity, internationally recognized as part of Azerbaijan -- (also known as Nagorno-Karabakh) -- NOTE: Formerly listed Armenia as a parent; this seems politically non-neutral so I've taken it out. ["Artsakh"] = { placetype = {"unrecognized country", "country"}, addl_parents = {"Azerbaijan", "Europe", "Asia"}, keydesc = "the former de-facto independent state of [[Artsakh]], internationally recognized as part of [[Azerbaijan]]", british_spelling = true, }, ["Nagorno-Karabakh"] = {alias_of = "Artsakh"}, ["Czechoslovakia"] = {container = "Europe", british_spelling = true}, ["East Germany"] = {container = "Europe", addl_parents = {"Germany"}, british_spelling = true}, ["North Vietnam"] = {container = "Asia", addl_parents = {"Vietnam"}}, ["Persia"] = {placetype = {"empire", "country"}, container = "Asia", divs = {"provinces"}}, ["Byzantine Empire"] = { the = true, placetype = {"empire", "country"}, container = {"Europe", "Africa", "Asia"}, addl_parents = {"Ancient Europe", "Ancient Near East"}, divs = { "provinces", "themes", }}, ["Roman Empire"] = { the = true, placetype = {"empire", "country"}, container = {"Europe", "Africa", "Asia"}, addl_parents = {"Rome"}, divs = { "provinces", {type = "FORMER provinces", cat_as = "provinces"}, }}, ["South Vietnam"] = {container = "Asia", addl_parents = {"Vietnam"}}, ["Soviet Union"] = { the = true, container = {"Europe", "Asia"}, divs = {"republics", "autonomous republics"}, british_spelling = true}, ["West Germany"] = {container = "Europe", addl_parents = {"Germany"}, british_spelling = true}, ["Yugoslavia"] = {container = "Europe", divs = {"districts"}, keydesc = "the former [[Kingdom of Yugoslavia]] (1918–1943) or the former [[Socialist Federal Republic of Yugoslavia]] (1943–1992)", british_spelling = true}, } export.former_countries_group = { canonicalize_key_container = canonicalize_continent_container, default_overriding_bare_label_parents = {"former countries and country-like entities"}, default_is_former_place = true, default_placetype = "country", default_no_container_cat = true, default_no_container_parent = true, -- No need to augment country holonyms with continents; not needed for disambiguation. default_no_auto_augment_container = true, data = export.former_countries, } ----------------------------------------------------------------------------------- -- Subpolity tables -- ----------------------------------------------------------------------------------- export.australia_states_and_territories = { ["Australian Capital Territory, Australia"] = {the = true, placetype = "territory"}, ["Jervis Bay Territory, Australia"] = {the = true, placetype = "territory"}, ["New South Wales, Australia"] = {}, ["Northern Territory, Australia"] = {the = true, placetype = "territory"}, ["Queensland, Australia"] = {}, ["South Australia, Australia"] = {}, ["Tasmania, Australia"] = {}, ["Victoria, Australia"] = {}, ["Western Australia, Australia"] = {}, } -- states and territories of Australia export.australia_group = { default_container = "Australia", default_placetype = "state", default_divs = "local government areas", data = export.australia_states_and_territories, } export.austria_states = { ["Vienna, Austria"] = {}, ["Lower Austria, Austria"] = {}, ["Upper Austria, Austria"] = {}, ["Styria, Austria"] = {}, ["Tyrol, Austria"] = {wp = "Tyrol (state)"}, ["Carinthia, Austria"] = {}, ["Salzburg, Austria"] = {wp = "Salzburg (state)"}, ["Vorarlberg, Austria"] = {}, ["Burgenland, Austria"] = {}, } -- states of Austria export.austria_group = { default_container = "Austria", default_placetype = "state", default_divs = "municipalities", data = export.austria_states, } export.bangladesh_divisions = { ["Barisal Division, Bangladesh"] = {}, ["Chittagong Division, Bangladesh"] = {}, ["Dhaka Division, Bangladesh"] = {}, ["Khulna Division, Bangladesh"] = {}, ["Mymensingh Division, Bangladesh"] = {}, ["Rajshahi Division, Bangladesh"] = {}, ["Rangpur Division, Bangladesh"] = {}, ["Sylhet Division, Bangladesh"] = {}, } -- divisions of Bangladesh export.bangladesh_group = { key_to_placename = make_key_to_placename(", Bangladesh$", " Division$"), placename_to_key = make_placename_to_key(", Bangladesh", " Division"), default_container = "Bangladesh", default_placetype = "division", default_divs = "districts", data = export.bangladesh_divisions, } export.brazil_states = { ["Acre, Brazil"] = {wp = "%l (state)"}, ["Alagoas, Brazil"] = {}, ["Amapá, Brazil"] = {}, ["Amazonas, Brazil"] = {wp = "%l (Brazilian state)"}, ["Bahia, Brazil"] = {}, ["Ceará, Brazil"] = {}, ["Distrito Federal, Brazil"] = {wp = "Federal District (Brazil)"}, ["Espírito Santo, Brazil"] = {}, ["Goiás, Brazil"] = {}, ["Maranhão, Brazil"] = {}, ["Mato Grosso, Brazil"] = {}, ["Mato Grosso do Sul, Brazil"] = {}, ["Minas Gerais, Brazil"] = {}, ["Pará, Brazil"] = {}, ["Paraíba, Brazil"] = {}, ["Paraná, Brazil"] = {wp = "%l (state)"}, ["Pernambuco, Brazil"] = {}, ["Piauí, Brazil"] = {}, ["Rio de Janeiro, Brazil"] = {wp = "%l (state)"}, ["Rio Grande do Norte, Brazil"] = {}, ["Rio Grande do Sul, Brazil"] = {}, ["Rondônia, Brazil"] = {}, ["Roraima, Brazil"] = {}, ["Santa Catarina, Brazil"] = {wp = "%l (state)"}, ["São Paulo, Brazil"] = {wp = "%l (state)"}, ["Sergipe, Brazil"] = {}, ["Tocantins, Brazil"] = {}, } -- states of Brazil export.brazil_group = { default_container = "Brazil", default_placetype = "estado", --TLCHANGE "state", default_divs = "mga bayan",--TLCHANGE "municipalities", data = export.brazil_states, } -- provinces (a.k.a. oblasts) of Bulgaria export.bulgaria_provinces = { ["Blagoevgrad Province, Bulgaria"] = {}, ["Burgas Province, Bulgaria"] = {}, ["Dobrich Province, Bulgaria"] = {}, ["Gabrovo Province, Bulgaria"] = {}, ["Haskovo Province, Bulgaria"] = {}, ["Kardzhali Province, Bulgaria"] = {}, ["Kyustendil Province, Bulgaria"] = {}, ["Lovech Province, Bulgaria"] = {}, ["Montana Province, Bulgaria"] = {}, ["Pazardzhik Province, Bulgaria"] = {}, ["Pernik Province, Bulgaria"] = {}, ["Pleven Province, Bulgaria"] = {}, ["Plovdiv Province, Bulgaria"] = {}, ["Razgrad Province, Bulgaria"] = {}, ["Ruse Province, Bulgaria"] = {}, ["Shumen Province, Bulgaria"] = {}, ["Silistra Province, Bulgaria"] = {}, ["Sliven Province, Bulgaria"] = {}, ["Smolyan Province, Bulgaria"] = {}, ["Sofia City Province, Bulgaria"] = {}, ["Sofia Province, Bulgaria"] = {}, ["Stara Zagora Province, Bulgaria"] = {}, ["Targovishte Province, Bulgaria"] = {}, ["Varna Province, Bulgaria"] = {}, ["Veliko Tarnovo Province, Bulgaria"] = {}, ["Vidin Province, Bulgaria"] = {}, ["Vratsa Province, Bulgaria"] = {}, ["Yambol Province, Bulgaria"] = {}, } export.bulgaria_group = { key_to_placename = make_key_to_placename(", Bulgaria$", " Province$"), placename_to_key = make_placename_to_key(", Bulgaria", " Province"), default_container = "Bulgaria", --== source: https://en.wikipedia.org/wiki/NUTS_statistical_regions_of_Bulgaria == divs = {"regions", "planning regions", "provinces", "municipalities", "settlements"}, default_placetype = "province", data = export.bulgaria_provinces, } export.canada_provinces_and_territories = { ["Alberta, Canada"] = {divs = { {type = "municipal districts", container_parent_type = "rural municipalities"}, }}, ["British Columbia, Canada"] = {divs = {type = "regional districts", container_parent_type = false}, "regional municipalities", }, ["Manitoba, Canada"] = {divs = {"rural municipalities"}}, ["New Brunswick, Canada"] = {divs = {"counties", "parishes", {type = "civil parishes", cat_as = "parishes"}}}, ["Newfoundland and Labrador, Canada"] = {}, ["Northwest Territories, Canada"] = {the = true, placetype = "territory"}, ["Nova Scotia, Canada"] = {divs = {"counties", "regional municipalities"}}, ["Nunavut, Canada"] = {placetype = "territory"}, ["Ontario, Canada"] = {divs = {"counties", "regional municipalities", {type = "townships", prep = "in"}}}, ["Prince Edward Island, Canada"] = {divs = {"counties", "parishes", "rural municipalities"}}, ["Saskatchewan, Canada"] = {divs = {"rural municipalities"}}, ["Quebec, Canada"] = {divs = { "counties", {type = "regional county municipalities", container_parent_type = "regional municipalities"}, -- administrative regions have an official (but non-governmental) function but there don't appear to be any -- equivalent regions elsewhere in Canada, so disable the [[Category:Regions of Canada]] grouping {type = "regions", container_parent_type = false}, {type = "townships", prep = "in"}, {type = "parish municipalities", cat_as = {{type = "parishes", container_parent_type = "counties"}, "municipalities"}}, {type = "township municipalities", cat_as = {{type = "townships", prep = "in"}, "municipalities"}}, {type = "village municipalities", cat_as = {{type = "villages", prep = "in"}, "municipalities"}}, }}, ["Yukon, Canada"] = {placetype = "territory"}, ["Yukon Territory, Canada"] = {alias_of = "Yukon, Canada", the = true}, } -- provinces and territories of Canada export.canada_group = { default_container = "Canada", default_placetype = "province", data = export.canada_provinces_and_territories, } export.china_provinces_and_autonomous_regions = { -- direct-administered municipalities are not here but below under prefecture-level cities ["Anhui, China"] = {}, ["Fujian, China"] = {}, ["Fuchien, China"] = {alias_of = "Fujian, China", display = true}, ["Gansu, China"] = {}, ["Guangdong, China"] = {}, ["Guangxi, China"] = {placetype = "autonomous region"}, ["Guizhou, China"] = {}, ["Hainan, China"] = {}, ["Hebei, China"] = {}, ["Heilongjiang, China"] = {}, ["Henan, China"] = {}, ["Hubei, China"] = {}, ["Hunan, China"] = {}, ["Inner Mongolia, China"] = {placetype = "autonomous region"}, ["Jiangsu, China"] = {}, ["Jiangxi, China"] = {}, ["Jilin, China"] = {}, ["Liaoning, China"] = {}, ["Ningxia, China"] = {placetype = "autonomous region"}, ["Qinghai, China"] = {}, ["Shaanxi, China"] = {}, ["Shandong, China"] = {}, ["Shanxi, China"] = {}, ["Sichuan, China"] = {}, ["Tibet, China"] = {placetype = "autonomous region", wp = "Tibet Autonomous Region"}, ["Xinjiang, China"] = {placetype = "autonomous region"}, ["Yunnan, China"] = {}, ["Zhejiang, China"] = {}, } -- provinces and autonomous regions of China export.china_group = { default_container = "China", default_placetype = "province", default_divs = { "prefectures", "prefecture-level cities", "districts", "subdistricts", "townships", {type = "counties", cat_as = "counties and county-level cities"}, {type = "county-level cities", cat_as = "counties and county-level cities"}, }, data = export.china_provinces_and_autonomous_regions, } export.china_prefecture_level_cities = { -- In China, a "prefecture-level city" is not a city in any real sense. It is rather a prefecture, which is an -- administrative unit smaller than a province but bigger than a county, which is administratively controlled by -- the chief city of the prefecture (which bears the same name as the prefecture), in a unified government. Prior -- to the mid-1980's, in fact, prefecture-level cities *were* prefectures, and a few of them (especially in the -- western portion of China) have not yet been converted. Generally a given province is entirely tiled by -- prefecture-level cities, another indication that they should be treated as prefectures and not cities per se. -- Yet another indication is that prefecture-level cities can contain counties and county-level cities (which, much -- like prefecture-level cities, are effectively counties surrounding a chief city of the county, again which bears -- the same name as the county-level city). -- -- For this reason, we treat prefecture-level cities as non-city political divisions, and separately enumerate the -- most populous so we can separately categorize districts and counties under them instead of lumping them at the -- province level. -- -- Note also that China separately distinguishes "urban area" from "metro area". Sometimes the two figures are -- identical but sometimes the metro area is larger (and very occasionally smaller, which I assume is an error). I'm -- guessing that the "urban area" is the contiguous urban area over a certain density while the metro area includes -- all urban areas above a certain density; when the latter is greater, it's because of satellite cities in the -- metro area separated by suburban/exurban or rural land. -- At first I chose all prefecture/province-level cities with a total prefecture/province-level population of at -- least 6,000,000 per the 2020 census with data taken from https://www.citypopulation.de/en/china/admin/ (a total -- of 67, including the four direct-administered municipalities), and also chose all prefecture/province-level -- cities whose "urban population" was at least 2,000,000 per the 2020 census with data taken from Wikipedia -- [[w:List of cities in China by population#Cities and towns by population]] (a total of 61 cities; if we cut off -- at 1.5 million we'd have 84 cities, and if we cut off at 1 million we'd have 105 cities). Merging them produces -- 87 cities. Note that this leaves off a few well-known cities (Guilin, Qiqihar, Kashgar, Lhasa, ...) but includes -- a lot of obscure cities. -- -- At a later date I added all cities from citypopulation.de whose "urban" population per the 2020 China census was -- >= 1 million, and then finally added all urban agglomerations from citypopulation.de whose 2025-01-01 estimate -- was >= 1 million. These are sorted below by the urban agglomeration value (which is generally of the "adm-urb" = -- "administrative area (urban population)" type) and sometimes groups nearby cities into a single agglomeration -- (most notably in the case of the Pearl River Delta, grouped under Guangzhou with an agglomeration population of -- 72,700,000 but including a large number of nearby large cities in the agglomeration (although for some reason not -- Hong Kong, maybe due to the administrative issues involved). In addition, citypopulation.de includes divisions -- under a prefecture-level city if they are city-like and have an agglomeration population of at least 1 million; -- this includes several county-level cities, one county and one district (Wanzhou, a "district" of Chongqing -- despite being 142 miles away). None of the county-level cities or counties have districts under them, only -- subdistricts, towns and townships. ["Guangzhou"] = {container = "Guangdong"}, -- 18.7 prefectural, 18.8 urban; sub-provincial city; 16.097 urban (72.700 adm-urb including Dongguan, Foshan, Huizhou, Jiangmen, Shenzhen, Zhongshan) per citypopulation.de ["Dongguan"] = {container = "Guangdong"}, -- 10.5 prefectural, 10.5 urban; 9.645 per citypopulation.de; included by citypopulation.de in Guangzhou agglomeration ["Foshan"] = {container = "Guangdong"}, -- 9.5 prefectural, 9.5 urban; 9.043 per citypopulation.de; included by citypopulation.de in Guangzhou agglomeration ["Huizhou"] = {container = "Guangdong"}, -- 6.0 prefectural, 2.5 urban; 2.900 per citypopulation.de; included by citypopulation.de in Guangzhou agglomeration ["Jiangmen"] = {container = "Guangdong"}, -- 4.798 prefectural, 2.7 urban; 1.795 per citypopulation.de; included by citypopulation.de in Guangzhou agglomeration ["Shenzhen"] = {container = "Guangdong"}, -- 17.5 prefectural, 14.7 urban; sub-provincial city; 17.445 per citypopulation.de; included by citypopulation.de in Guangzhou agglomeration ["Zhongshan"] = {container = "Guangdong"}, -- 4.418 prefectural, 4.4 urban; 3.842 per citypopulation.de; included by citypopulation.de in Guangzhou agglomeration ["Shanghai"] = {placetype = {"direct-administered municipality", "municipality", "city"}}, -- 24.9 prefectural, 29.9 urban; 21.910 urban (41.600 adm-urb including Changshu, Changzhou, Suzhou, Wuxi) per citypopulation.de ["Changshu"] = {container = "Jiangsu"}, -- 1.231 urban per citypopulation.de; included by citypopulation.de in Shanghai agglomeration -- NOTE: Not to be confused with Cangzhou in Hebei ["Changzhou"] = {container = "Jiangsu"}, -- 5.278 prefectural, 3.6 urban; 3.187 urban per citypopulation.de; included by citypopulation.de in Shanghai agglomeration -- NOTE: There is also a prefecture-level city Suzhou in Anhui with 5.3 million prefectural inhabitants ["Suzhou"] = {container = "Jiangsu"}, -- 12.8 prefectural, 4.3 urban; 5.893 urban per citypopulation.de; included by citypopulation.de in Shanghai agglomeration ["Wuxi"] = {container = "Jiangsu"}, -- 7.5 prefectural, 3.3 urban; 3.957 per citypopulation.de; included by citypopulation.de in Shanghai agglomeration ["Beijing"] = {placetype = {"direct-administered municipality", "municipality", "city"}}, -- 21.9 prefectural, 21.9 urban; 18.961 urban (21.500 adm-urb) per citypopulation.de ["Chengdu"] = {container = "Sichuan"}, -- 20.9 prefectural, 16.9 urban; sub-provincial city; 13.568 urban (18.100 adm-urb) per citypopulation.de ["Xiamen"] = {container = "Fujian"}, -- 5.163 prefectural, 5.2 urban; sub-provincial city; 4.617 urban (15.400 adm-urb including Jinjiang, Quanzhou, Putian) per citypopulation.de ["Jinjiang"] = {container = "Fujian"}, -- 1.416 urban per citypopulation.de; included by citypopulation.de in Xiamen agglomeration ["Quanzhou"] = {container = "Fujian"}, -- 8.8 prefectural, 1.7 urban (6.7 metro); 1.469 urban per citypopulation.de; included by citypopulation.de in Xiamen agglomeration ["Putian"] = {container = "Fujian"}, -- 3.210 prefectural, 2.0 urban; 1.539 urban per citypopulation.de; included by citypopulation.de in Xiamen agglomeration ["Hangzhou"] = {container = "Zhejiang"}, -- 11.9 prefectural, 10.7 urban; sub-provincial city; 9.236 urban (14.600 adm-urb including Shaoxing) per citypopulation.de ["Shaoxing"] = {container = "Zhejiang"}, -- 5.270 prefectural, 2.5 urban; 2.333 urban per citypopulation.de; included by citypopulation.de in Hangzhou agglomeration ["Xi'an"] = {container = "Shaanxi"}, -- 12.1 prefectural, 11.9 urban; sub-provincial city; 9.393 urban (13.400 adm-urb including Xianyang) per citypopulation.de ["Xianyang"] = {container = "Shaanxi"}, -- 1.193 urban per citypopulation.de; included by citypopulation.de in Xi'an agglomeration ["Chongqing"] = {placetype = {"direct-administered municipality", "municipality", "city"}}, -- 32.1 prefectural, 16.9 urban; 9.581 urban (12.900 adm-urb) per citypopulation.de ["Wuhan"] = {container = "Hubei"}, -- 12.4 prefectural, 12.3 urban; sub-provincial city; 10.495 urban (12.600 adm-urb) per citypopulation.de ["Tianjin"] = {placetype = {"direct-administered municipality", "municipality", "city"}}, -- 13.9 prefectural, 13.9 urban; 11.052 urban (11.700 adm-urb) per citypopulation.de ["Changsha"] = {container = "Hunan"}, -- 10.0 prefectural, 6.0 urban; 5.630 urban (11.500 adm-urb including Xiangtan, Zhuzhou) per citypopulation.de -- Changsha County -- 1.024 urban per citypopulation.de ["Zhuzhou"] = {container = "Hunan"}, -- 1.510 urban per citypopulation.de; included by citypopulation.de in Changsha agglomeration ["Zhengzhou"] = {container = "Henan"}, -- 12.6 prefectural, 6.7 urban; 6.461 urban (10.300 adm-urb) per citypopulation.de ["Nanjing"] = {container = "Jiangsu"}, -- 9.3 prefectural, 9.3 urban; sub-provincial city; 7.520 urban (9.500 adm-urb including Ma'anshan) per citypopulation.de ["Shenyang"] = {container = "Liaoning"}, -- 9.1 prefectural, 7.9 urban; sub-provincial city; 7.026 urban (8.800 adm-urb including Fushun) per citypopulation.de ["Fushun"] = {container = "Liaoning"}, -- 1.229 urban per citypopulation.de; included by citypopulation.de in Shenyang agglomeration ["Hefei"] = {container = "Anhui"}, -- 9.4 prefectural, 4.2 urban; 5.056 urban (8.200 adm-urb) per citypopulation.de ["Shantou"] = {container = "Guangdong"}, -- 5.502 prefectural, 4.3 urban; 3.839 urban (8.050 adm-urb including Chaozhou, Jieyang, Puning) per citypopulation.de ["Chaozhou"] = {container = "Guangdong"}, -- 1.254 urban per citypopulation.de; included by citypopulation.de in Shantou agglomeration ["Jieyang"] = {container = "Guangdong"}, -- 1.243 urban per citypopulation.de; included by citypopulation.de in Shantou agglomeration ["Qingdao"] = {container = "Shandong"}, -- 10.1 prefectural, 7.1 urban; sub-provincial city; 6.165 urban (7.700 adm-urb) per citypopulation.de ["Ningbo"] = {container = "Zhejiang"}, -- 9.4 prefectural, 5.1 urban; sub-provincial city; 3.731 urban (7.600 adm-urb including Cixi, Yuyao) per citypopulation.de ["Cixi"] = {container = "Zhejiang"}, -- 1.458 urban per citypopulation.de; included by citypopulation.de in Ningbo agglomeration ["Yuyao"] = {container = "Zhejiang"}, -- 1.014 urban per citypopulation.de; included by citypopulation.de in Ningbo agglomeration -- Hong Kong 7.500 agglomeration per citypopulation.de 2025-01-01 estimate including Kowloon, Victoria ["Wenzhou"] = {container = "Zhejiang"}, -- 9.6 prefectural, 3.6 urban; 2.582 urban (7.000 adm-urb including Rui'an, Cangnan, Pingyang) per citypopulation.de -- Rui'an is a "county-level city" of the "prefecture-level city" of Wenzhou but in fact is 19 miles away from Wenzhou city proper (urban core to urban core). ["Rui'an"] = {placetype = "county-level city", container = {key = "Wenzhou", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}}, -- 1.013 urban per citypopulation.de; included by citypopulation.de in Wenzhou agglomeration ["Kunming"] = {container = "Yunnan"}, -- 8.5 prefectural, 6.0 urban; 5.273 urban (6.800 adm-urb) per citypopulation.de -- includes Láiwú city ["Jinan"] = {container = "Shandong", wp = "%l, %c"}, -- 9.2 prefectural, 8.4 urban; sub-provincial city; 5.648 urban (6.750 adm-urb) per citypopulation.de -- includes Xīnjí city ["Shijiazhuang"] = {container = "Hebei"}, -- 11.2 prefectural, 4.1 urban; 5.090 urban (6.450 adm-urb) per citypopulation.de ["Taiyuan"] = {container = "Shanxi"}, -- 5.304 prefectural, 4.5 urban; 4.304 urban (6.150 adm-urb) per citypopulation.de ["Harbin"] = {container = "Heilongjiang"}, -- 10.0 prefectural, 7.0 urban; sub-provincial city; 5.243 urban (5.550 adm-urb) per citypopulation.de ["Nanning"] = {container = {key = "Guangxi, China", placetype = "autonomous region"}}, -- 8.7 prefectural, 3.8 urban; 4.583 urban (5.550 adm-urb) per citypopulation.de ["Dalian"] = {container = "Liaoning"}, -- 7.5 prefectural, 5.7 urban; sub-provincial city; 4.914 urban (5.400 adm-urb) per citypopulation.de ["Guiyang"] = {container = "Guizhou"}, -- 5.987 prefectural, 3.5 urban; 4.021 urban (5.300 adm-urb) per citypopulation.de ["Changchun"] = {container = "Jilin"}, -- 9.1 prefectural, 5.7 urban; sub-provincial city; 4.557 urban (5.200 adm-urb) per citypopulation.de ["Nanchang"] = {container = "Jiangxi"}, -- 6.3 prefectural, 3.6 (3.9?) urban, 5.3 metro; 3.519 urban (5.150 adm-urb) per citypopulation.de ["Ürümqi"] = {container = {key = "Xinjiang, China", placetype = "autonomous region"}}, -- 4.054 prefectural, 4.3 urban; 3.843 urban (5.000 adm-urb) per citypopulation.de ["Urumqi"] = {alias_of = "Ürümqi", display = true}, ["Fuzhou"] = {container = "Fujian"}, -- 8.3 prefectural, 4.1 urban; 3.723 urban (4.775 adm-urb) per citypopulation.de ["Linyi"] = {container = "Shandong"}, -- 11.0 prefectural, 2.3 urban; 2.744 urban (4.650 adm-urb) per citypopulation.de ["Zibo"] = {container = "Shandong"}, -- 4.704 prefectural, 2.6 urban; 2.750 urban (3.975 adm-urb) per citypopulation.de ["Luoyang"] = {container = "Henan"}, -- 7.1 prefectural, 2.4 urban; 2.231 urban (3.750 adm-urb) per citypopulation.de ["Lanzhou"] = {container = "Gansu"}, -- 4.359 prefectural, 3.1 urban; 3.013 urban (3.575 adm-urb) per citypopulation.de ["Nantong"] = {container = "Jiangsu"}, -- 7.7 prefectural, 2.3 urban; 2.988 urban (3.475 adm-urb) citypopulation.de ["Weifang"] = {container = "Shandong"}, -- 9.4 prefectural, 2.7 urban; 1.998 urban (3.325 adm-urb) per citypopulation.de ["Jiangyin"] = {container = "Jiangsu"}, -- 1.331 urban (3.200 adm-urb including Zhangjiagang) per citypopulation.de ["Zhangjiagang"] = {container = "Jiangsu"}, -- 1.056 urban per citypopulation.de; included in Jiangyin figures ["Xuzhou"] = {container = "Jiangsu"}, -- 9.1 prefectural, 2.6 urban; 2.846 urban (3.150 adm-urb) per citypopulation.de ["Handan"] = {container = "Hebei"}, -- 9.4 prefectural, 2.8 urban; 2.095 urban (2.925 adm-urb) per citypopulation.de ["Hohhot"] = {container = {key = "Inner Mongolia, China", placetype = "autonomous region"}}, -- 3.446 prefectural, 2.7 urban; 2.373 urban (2.850 adm-urb) per citypopulation.de ["Haikou"] = {container = "Hainan"}, -- 2.873 prefectural, 2.3 urban; 2.349 urban (2.800 adm-urb) per citypopulation.de ["Tangshan"] = {container = "Hebei"}, -- 7.7 prefectural, 3.4 urban; 2.550 urban (2.750 adm-urb) per citypopulation.de ["Xinxiang"] = {container = "Henan"}, -- 6.3 prefectural, 1.2 urban, 2.7 metro; 1.271 urban (2.700 adm-urb) per citypopulation.de ["Yiwu"] = {container = "Zhejiang"}, -- 1.481 urban (2.700 adm-urb) per citypopulation.de ["Zhuhai"] = {container = "Guangdong"}, -- 2.439 prefectural, 2.4 urban; 2.207 urban (2.675 adm-urb) per citypopulation.de ["Taizhou, Zhejiang"] = {container = "Zhejiang"}, -- 6.6 prefectural, 1.6 urban; 1.486 urban (2.625 adm-urb) per citypopulation.de ["Taizhou"] = {alias_of = "Taizhou, Zhejiang"}, ["Yantai"] = {container = "Shandong"}, -- 7.1 prefectural, 2.5 urban; 2.312 urban (2.550 adm-urb) per citypopulation.de ["Yinchuan"] = {container = {key = "Ningxia, China", placetype = "autonomous region"}}, -- 1.663 urban (2.525 adm-urb) per citypopulation.de ["Liuzhou"] = {container = {key = "Guangxi, China", placetype = "autonomous region"}}, -- 4.157 prefectural, 2.2 urban; 2.205 urban (2.500 adm-urb) per citypopulation.de ["Anshan"] = {container = "Liaoning"}, -- 1.480 urban (2.350 adm-urb including Liáoyáng) per citypopulation.de ["Yangzhou"] = {container = "Jiangsu"}, -- 2.067 urban (2.300 adm-urb) per citypopulation.de ["Jiaxing"] = {container = "Zhejiang"}, -- 1.188 urban (2.275 adm-urb) per citypopulation.de ["Xining"] = {container = "Qinghai"}, -- 1.677 urban (2.250 adm-urb) per citypopulation.de -- includes Dìngzhōu city and Xióngān Xīnqū ["Baoding"] = {container = "Hebei"}, -- 11.5 prefectural, 2.0 urban; 1.940 urban (2.225 adm-urb) per citypopulation.de ["Baotou"] = {container = {key = "Inner Mongolia, China", placetype = "autonomous region"}}, -- 2.709 prefectural, 2.2 urban; 2.104 urban (2.200 adm-urb) per citypopulation.de ["Ganzhou"] = {container = "Jiangxi"}, -- 9.0 prefectural, 1.6 urban; 1.778 urban (2.150 adm-urb) per citypopulation.de ["Pingdingshan"] = {container = "Henan"}, -- 1.046 urban (2.100 adm-urb) per citypopulation.de ["Zunyi"] = {container = "Guizhou"}, -- 6.6 prefectural, 2.4 urban/metro; 1.675 urban (2.025 adm-urb) per citypopulation.de ["Bengbu"] = {container = "Anhui"}, -- 1.078 urban (2.000 adm-urb) per citypopulation.de ["Datong"] = {container = "Shanxi"}, -- 3.105 prefectural, 2.0 urban; 1.810 urban (2.000 adm-urb) per citypopulation.de ["Anyang"] = {container = "Henan"}, -- 1.188 urban (1.960 adm-urb) per citypopulation.de ["Huai'an"] = {container = "Jiangsu"}, -- 4.556 prefectural, 2.6 urban; 1.805 urban (1.940 adm-urb) per citypopulation.de ["Zaozhuang"] = {container = "Shandong"}, -- 1.350 urban (1.900 adm-urb) per citypopulation.de ["Zhanjiang"] = {container = "Guangdong"}, -- 7.0 prefectural, 1.9 urban; 1.401 urban (1.890 adm-urb) per citypopulation.de ["Huainan"] = {container = "Anhui"}, -- 1.256 urban (1.880 adm-urb) per citypopulation.de ["Jining"] = {container = "Shandong"}, -- 8.4 prefectural, 1.5 urban; 1.700 urban (1.880 adm-urb) per citypopulation.de ["Daqing"] = {container = "Heilongjiang"}, -- 1.604 urban (1.860 adm-urb) per citypopulation.de ["Wuhu"] = {container = "Anhui"}, -- 1.598 urban (1.850 adm-urb) per citypopulation.de ["Guilin"] = {container = {key = "Guangxi, China", placetype = "autonomous region"}}, -- 1.361 urban (1.830 adm-urb) per citypopulation.de ["Mianyang"] = {container = "Sichuan"}, -- 1.549 urban (1.800 adm-urb) per citypopulation.de ["Xiangyang"] = {container = "Hubei"}, -- 1.686 urban (1.800 adm-urb) per citypopulation.de ["Huzhou"] = {container = "Zhejiang"}, -- 1.084 urban (1.750 adm-urb) per citypopulation.de ["Puyang"] = {container = "Henan"}, -- 0.824 urban (1.750 adm-urb) per citypopulation.de ["Shangqiu"] = {container = "Henan"}, -- 7.8 prefectural, 1.9 urban (2.8 metro); 1.031 urban (1.750 adm-urb) per citypopulation.de ["Qinhuangdao"] = {container = "Hebei"}, -- 1.520 urban (1.740 adm-urb) per citypopulation.de ["Xingtai"] = {container = "Hebei"}, -- 7.1 prefectural, 971,000 urban; 1.5 urban (1.700 adm-urb) per citypopulation.de ["Nanyang"] = {container = "Henan", wp = "%l, %c"}, -- 9.7 prefectural, 2.1 urban/metro; 1.481 urban (1.680 adm-urb) per citypopulation.de ["Jiaozuo"] = {container = "Henan"}, -- 0.875 urban (1.640 adm-urb) per citypopulation.de ["Jilin City"] = {container = "Jilin"}, -- 1.509 urban (1.610 adm-urb) per citypopulation.de ["Jilin"] = {alias_of = "Jilin City"}, ["Jinhua"] = {container = "Zhejiang"}, -- 7.1 prefectural, 1.5 urban; 1.041 urban (1.590 adm-urb) per citypopulation.de ["Shangrao"] = {container = "Jiangxi"}, -- 6.5 prefectural, 2.1 urban, 1.3 metro [sic]; 1.342 urban (1.580 adm-urb) per citypopulation.de ["Heze"] = {container = "Shandong"}, -- 8.8 prefectural, 1.3 urban; 1.294 urban (1.570 adm-urb) per citypopulation.de ["Yulin"] = {container = {key = "Guangxi, China", placetype = "autonomous region"}, wp = "%l, %c"}, -- 0.878 urban (1.570 adm-urb) per citypopulation.de ["Tai'an"] = {container = "Shandong"}, -- 1.417 urban (1.560 adm-urb) per citypopulation.de ["Weihai"] = {container = "Shandong"}, -- 1.340 urban (1.510 adm-urb) per citypopulation.de -- Taizhou, Jiangsu would be here (1.490 adm-urb) but moved to china_prefecture_level_cities_2 to avoid clash ["Yancheng"] = {container = "Jiangsu"}, -- 6.7 prefectural, 1.6 urban; 1.353 urban (1.460 adm-urb) per citypopulation.de ["Zhangjiakou"] = {container = "Hebei"}, -- 1.339 urban (1.450 adm-urb) per citypopulation.de ["Maoming"] = {container = "Guangdong"}, -- 6.2 prefectural, 2.5 urban; 1.308 urban (1.440 adm-urb) per citypopulation.de ["Nanchong"] = {container = "Sichuan"}, -- 1.254 urban (1.440 adm-urb) per citypopulation.de ["Fuyang"] = {container = "Anhui", wp = "%l, %c"}, -- 8.2 prefectural, 2.1 urban; 1.191 urban (1.410 adm-urb) per citypopulation.de ["Xuchang"] = {container = "Henan"}, -- 0.850 urban (1.390 adm-urb) per citypopulation.de ["Yichang"] = {container = "Hubei"}, -- 1.284 urban (1.390 adm-urb) per citypopulation.de ["Dazhou"] = {container = "Sichuan"}, -- 1.136 urban (1.380 adm-urb) per citypopulation.de ["Kaifeng"] = {container = "Henan"}, -- 1.194 urban (1.340 adm-urb) per citypopulation.de ["Luzhou"] = {container = "Sichuan"}, -- 1.128 urban (1.340 adm-urb) per citypopulation.de ["Qingyuan"] = {container = "Guangdong"}, -- 1.198 urban (1.340 adm-urb) per citypopulation.de ["Huaibei"] = {container = "Anhui"}, -- 0.831 urban (1.330 adm-urb) per citypopulation.de ["Yibin"] = {container = "Sichuan"}, -- 1.101 urban (1.310 adm-urb) per citypopulation.de ["Lu'an"] = {container = "Anhui"}, -- 1.070 urban (1.300 adm-urb) per citypopulation.de ["Dezhou"] = {container = "Shandong"}, -- 0.843 urban (1.290 adm-urb) per citypopulation.de ["Rizhao"] = {container = "Shandong"}, -- 1.147 urban (1.270 adm-urb) per citypopulation.de ["Changzhi"] = {container = "Shanxi"}, -- 1.047 urban (1.250 adm-urb) per citypopulation.de ["Hengyang"] = {container = "Hunan"}, -- 6.6 prefectural, 1.5 urban; 1.185 urban (1.250 adm-urb) per citypopulation.de ["Jinzhou"] = {container = "Liaoning"}, -- 1.021 urban (1.240 adm-urb) per citypopulation.de ["Liaocheng"] = {container = "Shandong"}, -- 1.020 urban (1.240 adm-urb) per citypopulation.de ["Changde"] = {container = "Hunan"}, -- 1.101 urban (1.230 adm-urb) per citypopulation.de ["Suqian"] = {container = "Jiangsu"}, -- 1.082 urban (1.230 adm-urb) per citypopulation.de ["Xinyang"] = {container = "Henan"}, -- 6.2 prefectural, 1.4 urban/metro; 1.015 urban (1.230 adm-urb) per citypopulation.de ["Baoji"] = {container = "Shaanxi"}, -- 1.108 urban (1.220 adm-urb) per citypopulation.de ["Yueyang"] = {container = "Hunan"}, -- 1.125 urban (1.220 adm-urb) per citypopulation.de ["Zhenjiang"] = {container = "Jiangsu"}, -- 1.124 urban (1.210 adm-urb) per citypopulation.de -- Wanzhou is a "district" of the "direct-administered municipality" of Chongqing but in fact is 142 miles away from Chongqing city proper. ["Wanzhou"] = {placetype = "district", container = {key = "Chongqing", placetype = "direct-administered municipality"}, divs = {"subdistricts", "townships"}, wp = "%l, %c"}, -- 1.078 urban (1.190 adm-urb) per citypopulation.de ["Ulanhad"] = {container = {key = "Inner Mongolia, China", placetype = "autonomous region"}}, -- 1.093 urban (1.180 adm-urb) per citypopulation.de ["Chifeng"] = {alias_of = "Ulanhad"}, ["Ulankhad"] = {alias_of = "Ulanhad", display = true}, ["Ezhou"] = {container = "Hubei"}, -- < 0.750 urban (1.180 adm-urb) per citypopulation.de ["Zhaoqing"] = {container = "Guangdong"}, -- 1.036 urban (1.160 adm-urb) per citypopulation.de ["Lianyungang"] = {container = "Jiangsu"}, -- 4.599 prefectural, 2.0 urban; 1.071 urban (1.150 adm-urb) per citypopulation.de ["Qujing"] = {container = "Yunnan"}, -- 0.976 urban (1.150 adm-urb) per citypopulation.de -- Shuyang is a "county" of the "prefecture-level city" of Suqian but in fact is 38 miles away from Suqian city proper (urban core to urban core). -- The county itself is 37 miles by 34 miles. ["Shuyang"] = {placetype = "county", container = {key = "Suqian", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "%l County"}, -- 0.986 urban (1.120 adm-urb) per citypopulation.de -- Yongkang is a "county-level city" of the "prefecture-level city" of Jinhua but in fact is 32 miles away from Jinhua city proper (urban core to urban core). ["Yongkang"] = {placetype = "county-level city", container = {key = "Jinhua", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}, wp = "%l, Zhejiang"}, -- < 0.750 urban (1.110 adm-urb) per citypopulation.de ["Zhoukou"] = {container = "Henan"}, -- 9.0 prefectural, 721,000 urban (1.6 metro); < 0.750 urban (1.100 adm-urb) per citypopulation.de ["Beihai"] = {container = {key = "Guangxi, China", placetype = "autonomous region"}}, -- < 1 urban (1.090 adm-urb) per citypopulation.de ["Jiujiang"] = {container = "Jiangxi"}, -- < 0.750 urban (1.080 adm-urb) per citypopulation.de ["Shaoyang"] = {container = "Hunan"}, -- 6.6 prefectural, 802,000 urban, 1.4 metro; < 1 urban (1.080 adm-urb) per citypopulation.de ["Chuzhou"] = {container = "Anhui"}, -- < 0.750 urban (1.070 adm-urb) per citypopulation.de ["Hengshui"] = {container = "Hebei"}, -- 0.885 urban (1.070 adm-urb) per citypopulation.de ["Shiyan"] = {container = "Hubei"}, -- 0.955 urban (1.070 adm-urb) per citypopulation.de ["Huludao"] = {container = "Liaoning"}, -- 0.764 urban (1.060 adm-urb) per citypopulation.de ["Dongying"] = {container = "Shandong"}, -- 0.961 urban (1.050 adm-urb) per citypopulation.de ["Guigang"] = {container = {key = "Guangxi, China", placetype = "autonomous region"}}, -- 0.921 urban (1.050 adm-urb) per citypopulation.de -- Liuyang is a "county-level city" of the "prefecture-level city" of Changsha but in fact is 47 miles away from Changsha city proper (urban core to urban core). ["Liuyang"] = {placetype = "county-level city", container = {key = "Changsha", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}}, -- 0.886 urban (1.040 adm-urb) per citypopulation.de -- NOTE: Not to be confused with Changzhou in Jiangsu ["Cangzhou"] = {container = "Hebei"}, -- 7.3 prefectural, 621,000 urban; 0.759 urban (1.030 adm-urb) per citypopulation.de ["Liupanshui"] = {container = "Guizhou"}, -- < 0.750 urban (1.030 adm-urb) per citypopulation.de ["Panjin"] = {container = "Liaoning"}, -- 0.980 urban (1.030 adm-urb) per citypopulation.de ["Qiqihar"] = {container = "Heilongjiang"}, -- 1.030 urban (1.030 adm-urb) per citypopulation.de ["Linfen"] = {container = "Shanxi"}, -- < 0.750 urban (1.010 adm-urb) per citypopulation.de -- Tengzhou is a "county-level city" of the "prefecture-level city" of Zaozhuang but in fact is 30 miles away from Zaozhuang city proper (urban core to urban core). ["Tengzhou"] = {placetype = "county-level city", container = {key = "Zaozhuang", placetype = "prefecture-level city"}, divs = {"subdistricts", "townships"}}, -- 0.937 urban (1.010 adm-urb) per citypopulation.de -- 3 extra that got added in earlier incarnations and aren't found in the "major agglomerations of the world" page https://citypopulation.de/en/world/agglomerations/ reference date 2025-01-01 ["Kunshan"] = {container = "Jiangsu"}, -- 1.652 urban (2020 China census) per citypopulation.de ["Zhumadian"] = {container = "Henan"}, -- 7.0 prefectural, 722,000 urban per Wikipedia; 0.754 urban per citypopulation.de ["Bijie"] = {container = "Guizhou"}, -- 6.9 prefectural, ? urban, ? metro (not listed in Wikipedia); < 0.750 urban per citypopulation.de } export.china_prefecture_level_cities_group = { -- don't do any transformations between key and placename; in particular, don't chop off anything from -- "Taizhou, Zhejiang" or "Suzhou, Anhui". key_to_placename = false, placename_to_key = false, -- don't add ", China" to make the key default_container = "China", canonicalize_key_container = make_canonicalize_key_container(", China", "province"), -- Prefecture-level cities aren't really cities but allow them to be identified that way, as many people -- don't understand how Chinese administrative divisions work. default_placetype = {"prefecture-level city", "city"}, default_divs = { -- "towns" (but not "townships") are automatically added as they are specified as generic_before_non_cities, -- and prefecture-level cities (as well as county-level cities) are considered non-cities. "districts", "subdistricts", "townships", {type = "counties", cat_as = "counties and county-level cities"}, {type = "county-level cities", cat_as = "counties and county-level cities"}, }, data = export.china_prefecture_level_cities, } -- Needed to avoid problems with two cities called Taizhou and Suzhou. export.china_prefecture_level_cities_2 = { -- NOTE: There is also a larger and better-known prefecture-level city Taizhou in Zhejiang. ["Taizhou, Jiangsu"] = {container = "Jiangsu"}, -- 1.3 urban (1.490 adm-urb) per citypopulation.de 2020 census ["Taizhou"] = {alias_of = "Taizhou, Jiangsu"}, -- NOTE: There is also a larger and better-known prefecture-level city Suzhou in Jiangsu. ["Suzhou, Anhui"] = {container = "Anhui"}, -- 5.3 prefectural, 1.766 metro and "urban"; < 1 urban (1.010 adm-urb) per citypopulation.de 2020 census -- hopefully this will work because we also have Suzhou as a key by itself for the larger, more-well-known Suzhou in Jiangsu ["Suzhou"] = {alias_of = "Suzhou, Anhui"}, } export.china_prefecture_level_cities_group_2 = { -- don't do any transformations between key and placename; in particular, don't chop off anything from -- "Taizhou, Jiangsu". placename_to_key = false, -- don't add ", China" to make the key default_container = "China", canonicalize_key_container = make_canonicalize_key_container(", China", "province"), -- Prefecture-level cities aren't really cities but allow them to be identified that way, as many people -- don't understand how Chinese administrative divisions work. default_placetype = {"prefecture-level city", "city"}, default_divs = { -- "towns" (but not "townships") are automatically added as they are specified as generic_before_non_cities, -- and prefecture-level cities (as well as county-level cities) are considered non-cities. "districts", "subdistricts", "townships", {type = "counties", cat_as = "counties and county-level cities"}, {type = "county-level cities", cat_as = "counties and county-level cities"}, }, data = export.china_prefecture_level_cities_2, } export.finland_regions = { ["Lapland, Finland"] = {wp = "%l (%c)"}, ["North Ostrobothnia, Finland"] = {}, ["Northern Ostrobothnia, Finland"] = {alias_of = "North Ostrobothnia, Finland", display = true}, ["Kainuu, Finland"] = {}, ["North Karelia, Finland"] = {}, ["Northern Savonia, Finland"] = {}, ["North Savo, Finland"] = {alias_of = "Northern Savonia, Finland", display = true}, ["Southern Savonia, Finland"] = {}, ["South Savo, Finland"] = {alias_of = "Southern Savonia, Finland", display = true}, ["South Karelia, Finland"] = {}, ["Central Finland, Finland"] = {}, ["South Ostrobothnia, Finland"] = {}, ["Southern Ostrobothnia, Finland"] = {alias_of = "South Ostrobothnia, Finland", display = true}, ["Ostrobothnia, Finland"] = {wp = "%l (region)"}, ["Central Ostrobothnia, Finland"] = {}, ["Pirkanmaa, Finland"] = {}, ["Satakunta, Finland"] = {}, ["Päijänne Tavastia, Finland"] = {}, ["Päijät-Häme, Finland"] = {alias_of = "Päijänne Tavastia, Finland", display = true}, ["Tavastia Proper, Finland"] = {}, ["Kanta-Häme, Finland"] = {alias_of = "Tavastia Proper, Finland", display = true}, ["Kymenlaakso, Finland"] = {}, ["Uusimaa, Finland"] = {}, ["Southwest Finland, Finland"] = {}, ["Åland Islands, Finland"] = {the = true, wp = "Åland"}, ["Åland, Finland"] = {alias_of = "Åland Islands, Finland"}, -- differs in "the" } -- regions of Finland export.finland_group = { default_container = "Finland", default_placetype = "region", default_divs = "municipalities", data = export.finland_regions, } export.france_administrative_regions = { ["Auvergne-Rhône-Alpes, France"] = {}, ["Bourgogne-Franche-Comté, France"] = {}, ["Brittany, France"] = {wp = "%l (administrative region)"}, ["Centre-Val de Loire, France"] = {}, ["Corsica, France"] = {}, -- overseas departments are handled in `export.country_like_entities` -- ["French Guiana"] = {}, ["Grand Est, France"] = {}, -- ["Guadeloupe"] = {}, ["Hauts-de-France, France"] = {}, ["Île-de-France, France"] = {}, -- ["Martinique"] = {}, -- ["Mayotte"] = {}, ["Normandy, France"] = {wp = "%l (administrative region)"}, ["Nouvelle-Aquitaine, France"] = {}, ["Occitania, France"] = {wp = "%l (administrative region)"}, ["Occitanie, France"] = {alias_of = "Occitania, France", display = true}, ["Pays de la Loire, France"] = {}, ["Provence-Alpes-Côte d'Azur, France"] = {}, -- ["Réunion"] = {}, } -- administrative regions of France export.france_group = { default_container = "France", -- Canonically these are 'administrative regions' but also treat as 'region' ('administrative region' falls back -- to 'region'). default_placetype = "region", default_divs = { "communes", {type = "municipalities", cat_as = "communes"}, "departments", {type = "prefectures", cat_as = {"prefectures", "departmental capitals"}}, {type = "French prefectures", cat_as = {"prefectures", "departmental capitals"}}, }, data = export.france_administrative_regions, } export.france_departments = { ["Ain, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 01 ["Aisne, France"] = {container = "Hauts-de-France"}, -- 02 ["Allier, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 03 ["Alpes-de-Haute-Provence, France"] = {container = "Provence-Alpes-Côte d'Azur"}, -- 04 ["Hautes-Alpes, France"] = {container = "Provence-Alpes-Côte d'Azur"}, -- 05 ["Alpes-Maritimes, France"] = {container = "Provence-Alpes-Côte d'Azur"}, -- 06 ["Ardèche, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 07 ["Ardennes, France"] = {container = "Grand Est", wp = "%l (department)"}, -- 08 ["Ariège, France"] = {container = "Occitania", wp = "%l (department)"}, -- 09 ["Aube, France"] = {container = "Grand Est"}, -- 10 ["Aude, France"] = {container = "Occitania"}, -- 11 ["Aveyron, France"] = {container = "Occitania"}, -- 12 ["Bouches-du-Rhône, France"] = {container = "Provence-Alpes-Côte d'Azur"}, -- 13 ["Calvados, France"] = {container = "Normandy", wp = "%l (department)"}, -- 14 ["Cantal, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 15 ["Charente, France"] = {container = "Nouvelle-Aquitaine"}, -- 16 ["Charente-Maritime, France"] = {container = "Nouvelle-Aquitaine"}, -- 17 ["Cher, France"] = {container = "Centre-Val de Loire", wp = "%l (department)"}, -- 18 ["Corrèze, France"] = {container = "Nouvelle-Aquitaine"}, -- 19 ["Corse-du-Sud, France"] = {container = "Corsica"}, -- 2A ["Haute-Corse, France"] = {container = "Corsica"}, -- 2B ["Côte-d'Or, France"] = {container = "Bourgogne-Franche-Comté"}, -- 21 ["Côte d'Or, France"] = {alias_of = "Côte-d'Or, France", display = true}, ["Côtes-d'Armor, France"] = {container = "Brittany"}, -- 22 ["Côtes d'Armor, France"] = {alias_of = "Côtes-d'Armor, France", display = true}, ["Creuse, France"] = {container = "Nouvelle-Aquitaine"}, -- 23 ["Dordogne, France"] = {container = "Nouvelle-Aquitaine"}, -- 24 ["Doubs, France"] = {container = "Bourgogne-Franche-Comté"}, -- 25 ["Drôme, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 26 ["Eure, France"] = {container = "Normandy"}, -- 27 ["Eure-et-Loir, France"] = {container = "Centre-Val de Loire"}, -- 28 ["Finistère, France"] = {container = "Brittany"}, -- 29 ["Gard, France"] = {container = "Occitania"}, -- 30 ["Haute-Garonne, France"] = {container = "Occitania"}, -- 31 ["Gers, France"] = {container = "Occitania"}, -- 32 ["Gironde, France"] = {container = "Nouvelle-Aquitaine"}, -- 33 ["Hérault, France"] = {container = "Occitania"}, -- 34 ["Ille-et-Vilaine, France"] = {container = "Brittany"}, -- 35 ["Indre, France"] = {container = "Centre-Val de Loire"}, -- 36 ["Indre-et-Loire, France"] = {container = "Centre-Val de Loire"}, -- 37 ["Isère, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 38 ["Jura, France"] = {container = "Bourgogne-Franche-Comté", wp = "%l (department)"}, -- 39 ["Landes, France"] = {container = "Nouvelle-Aquitaine", wp = "%l (department)"}, -- 40 ["Loir-et-Cher, France"] = {container = "Centre-Val de Loire"}, -- 41 ["Loire, France"] = {container = "Auvergne-Rhône-Alpes", wp = "%l (department)"}, -- 42 ["Haute-Loire, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 43 ["Loire-Atlantique, France"] = {container = "Pays de la Loire"}, -- 44 ["Loiret, France"] = {container = "Centre-Val de Loire"}, -- 45 ["Lot, France"] = {container = "Occitania", wp = "%l (department)"}, -- 46 ["Lot-et-Garonne, France"] = {container = "Nouvelle-Aquitaine"}, -- 47 ["Lozère, France"] = {container = "Occitania"}, -- 48 ["Maine-et-Loire, France"] = {container = "Pays de la Loire"}, -- 49 ["Manche, France"] = {container = "Normandy"}, -- 50 ["Marne, France"] = {container = "Grand Est", wp = "%l (department)"}, -- 51 ["Haute-Marne, France"] = {container = "Grand Est"}, -- 52 ["Mayenne, France"] = {container = "Pays de la Loire"}, -- 53 ["Meurthe-et-Moselle, France"] = {container = "Grand Est"}, -- 54 ["Meuse, France"] = {container = "Grand Est", wp = "%l (department)"}, -- 55 ["Morbihan, France"] = {container = "Brittany"}, -- 56 ["Moselle, France"] = {container = "Grand Est", wp = "%l (department)"}, -- 57 ["Nièvre, France"] = {container = "Bourgogne-Franche-Comté"}, -- 58 ["Nord, France"] = {container = "Hauts-de-France", wp = "%l (French department)"}, -- 59 ["Oise, France"] = {container = "Hauts-de-France"}, -- 60 ["Orne, France"] = {container = "Normandy"}, -- 61 ["Pas-de-Calais, France"] = {container = "Hauts-de-France"}, -- 62 ["Puy-de-Dôme, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 63 ["Pyrénées-Atlantiques, France"] = {container = "Nouvelle-Aquitaine"}, -- 64 ["Hautes-Pyrénées, France"] = {container = "Occitania"}, -- 65 ["Pyrénées-Orientales, France"] = {container = "Occitania"}, -- 66 ["Bas-Rhin, France"] = {container = "Grand Est"}, -- 67 ["Haut-Rhin, France"] = {container = "Grand Est"}, -- 68 ["Rhône, France"] = {container = "Auvergne-Rhône-Alpes", wp = "%l (department)"}, -- 69D ["Metropolis of Lyon, France"] = {container = "Auvergne-Rhône-Alpes", the = true}, -- 69M ["Lyon Metropolis, France"] = {alias_of = "Metropolis of Lyon, France"}, ["Lyon, France"] = {alias_of = "Metropolis of Lyon, France"}, ["Haute-Saône, France"] = {container = "Bourgogne-Franche-Comté"}, -- 70 ["Saône-et-Loire, France"] = {container = "Bourgogne-Franche-Comté"}, -- 71 ["Sarthe, France"] = {container = "Pays de la Loire"}, -- 72 ["Savoie, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 73 ["Haute-Savoie, France"] = {container = "Auvergne-Rhône-Alpes"}, -- 74 ["Paris, France"] = {container = "Île-de-France"}, -- 75 ["Seine-Maritime, France"] = {container = "Normandy"}, -- 76 ["Seine-et-Marne, France"] = {container = "Île-de-France"}, -- 77 ["Yvelines, France"] = {container = "Île-de-France"}, -- 78 ["Deux-Sèvres, France"] = {container = "Nouvelle-Aquitaine"}, -- 79 ["Somme, France"] = {container = "Hauts-de-France", wp = "%l (department)"}, -- 80 ["Tarn, France"] = {container = "Occitania", wp = "%l (department)"}, -- 81 ["Tarn-et-Garonne, France"] = {container = "Occitania"}, -- 82 ["Var, France"] = {container = "Provence-Alpes-Côte d'Azur", wp = "%l (department)"}, -- 83 ["Vaucluse, France"] = {container = "Provence-Alpes-Côte d'Azur"}, -- 84 ["Vendée, France"] = {container = "Pays de la Loire"}, -- 85 ["Vienne, France"] = {container = "Nouvelle-Aquitaine", wp = "%l (department)"}, -- 86 ["Haute-Vienne, France"] = {container = "Nouvelle-Aquitaine"}, -- 87 ["Vosges, France"] = {container = "Grand Est", wp = "%l (department)"}, -- 88 ["Yonne, France"] = {container = "Bourgogne-Franche-Comté"}, -- 89 ["Territoire de Belfort, France"] = {container = "Bourgogne-Franche-Comté"}, -- 90 ["Essonne, France"] = {container = "Île-de-France"}, -- 91 ["Hauts-de-Seine, France"] = {container = "Île-de-France"}, -- 92 ["Seine-Saint-Denis, France"] = {container = "Île-de-France"}, -- 93 ["Val-de-Marne, France"] = {container = "Île-de-France"}, -- 94 ["Val-d'Oise, France"] = {container = "Île-de-France"}, -- 95 --["Guadeloupe"] = {container = "Guadeloupe"}, -- 971 --["Martinique"] = {container = "Martinique"}, -- 972 --["Guyane"] = {container = "French Guiana", wp = "French Guiana"}, -- 973 --["La Réunion"] = {container = "Réunion", wp = "Réunion"}, -- 974 --["Mayotte"] = {container = "Mayotte"}, -- 976 } export.france_departments_group = { placename_to_key = make_placename_to_key(", France"), canonicalize_key_container = make_canonicalize_key_container(", France", "region"), default_placetype = "department", default_divs = { "communes", {type = "municipalities", cat_as = "communes"}, }, data = export.france_departments, } export.germany_states = { ["Baden-Württemberg, Germany"] = {}, ["Bavaria, Germany"] = {}, -- Berlin, Bremen and Hamburg are effectively city-states and don't have districts ([[Kreise]]), so override -- the default_divs setting. Better not to include them at all since they're included as cities down below. -- ["Berlin"] = {divs = {}}, ["Brandenburg, Germany"] = {}, -- ["Bremen"] = {divs = {}}, -- ["Hamburg"] = {divs = {}}, ["Hesse, Germany"] = {}, ["Lower Saxony, Germany"] = {}, ["Mecklenburg-Vorpommern, Germany"] = {}, ["Mecklenburg-Western Pomerania, Germany"] = {alias_of = "Mecklenburg-Vorpommern, Germany", display = true}, ["North Rhine-Westphalia, Germany"] = {}, ["Rhineland-Palatinate, Germany"] = {}, ["Saarland, Germany"] = {}, ["Saxony, Germany"] = {}, ["Saxony-Anhalt, Germany"] = {}, ["Schleswig-Holstein, Germany"] = {}, ["Thuringia, Germany"] = {}, } -- states of Germany export.germany_group = { default_container = "Germany", default_placetype = "state", default_divs = {"districts", "municipalities"}, data = export.germany_states, } export.greece_regions = { ["Attica, Greece"] = {wp = "%l (region)"}, ["Central Greece, Greece"] = {wp = "%l (administrative region)"}, ["Central Macedonia, Greece"] = {}, ["Crete, Greece"] = {}, ["Eastern Macedonia and Thrace, Greece"] = {}, ["Epirus, Greece"] = {wp = "%l (region)"}, ["Ionian Islands, Greece"] = {the = true, wp = "%l (region)"}, ["North Aegean, Greece"] = {the = true}, -- I would expect 'the Peloponnese' but Wikipedia mostly has categories like [[w:Category:Geography of Peloponnese (region)]] -- and [[w:Category:Buildings and structures in Peloponnese (region)]]; only [[w:Category:People from the Peloponnese (region)]] -- has "the" in it. ["Peloponnese, Greece"] = {wp = "%l (region)"}, ["South Aegean, Greece"] = {the = true}, ["Thessaly, Greece"] = {}, ["Western Greece, Greece"] = {}, ["Western Macedonia, Greece"] = {}, ["Mount Athos, Greece"] = {placetype = {"autonomous region", "region"}, wp = "Monastic community of Mount Athos"}, } -- regions of Greece export.greece_group = { default_container = "Greece", default_placetype = "region", data = export.greece_regions, } local india_polity_with_divisions = {"divisions", "districts"} local india_polity_without_divisions = {"districts"} -- States and union territories of India. Only some of them are divided into divisions. export.india_states_and_union_territories = { ["Andaman and Nicobar Islands, India"] = {the = true, placetype = "union territory", divs = india_polity_without_divisions}, ["Andhra Pradesh, India"] = {divs = india_polity_without_divisions}, ["Arunachal Pradesh, India"] = {divs = india_polity_with_divisions}, ["Assam, India"] = {divs = india_polity_with_divisions}, ["Bihar, India"] = {divs = india_polity_with_divisions}, ["Chandigarh, India"] = {placetype = "union territory", divs = india_polity_without_divisions}, ["Chhattisgarh, India"] = {divs = india_polity_with_divisions}, ["Dadra and Nagar Haveli and Daman and Diu, India"] = {placetype = "union territory", divs = india_polity_without_divisions}, ["Delhi, India"] = {placetype = "union territory", divs = india_polity_with_divisions}, ["Goa, India"] = {divs = india_polity_without_divisions}, ["Gujarat, India"] = {divs = india_polity_without_divisions}, ["Haryana, India"] = {divs = india_polity_with_divisions}, ["Himachal Pradesh, India"] = {divs = india_polity_with_divisions}, ["Jammu and Kashmir, India"] = {placetype = "union territory", divs = india_polity_with_divisions, wp = "%l (union territory)"}, ["Jharkhand, India"] = {divs = india_polity_with_divisions}, ["Karnataka, India"] = {divs = india_polity_with_divisions}, ["Kerala, India"] = {divs = india_polity_without_divisions}, ["Ladakh, India"] = {placetype = "union territory", divs = india_polity_with_divisions}, ["Lakshadweep, India"] = {placetype = "union territory", divs = india_polity_without_divisions}, ["Madhya Pradesh, India"] = {divs = india_polity_with_divisions}, ["Maharashtra, India"] = {divs = india_polity_with_divisions}, ["Manipur, India"] = {divs = india_polity_without_divisions}, ["Meghalaya, India"] = {divs = india_polity_with_divisions}, ["Mizoram, India"] = {divs = india_polity_without_divisions}, ["Nagaland, India"] = {divs = india_polity_with_divisions}, ["Odisha, India"] = {divs = india_polity_with_divisions}, ["Puducherry, India"] = {placetype = "union territory", divs = india_polity_without_divisions, wp = "%l (union territory)"}, ["Pondicherry, India"] = {alias_of = "Puducherry, India", display = true}, ["Punjab, India"] = {divs = india_polity_with_divisions, wp = "%l, %c"}, ["Rajasthan, India"] = {divs = india_polity_with_divisions}, ["Sikkim, India"] = {divs = india_polity_without_divisions}, ["Tamil Nadu, India"] = {divs = india_polity_without_divisions}, ["Telangana, India"] = {divs = india_polity_without_divisions}, ["Tripura, India"] = {divs = india_polity_without_divisions}, ["Uttar Pradesh, India"] = {divs = india_polity_with_divisions}, ["Uttarakhand, India"] = {divs = india_polity_with_divisions}, ["West Bengal, India"] = {divs = india_polity_with_divisions}, } -- states and union territories of India export.india_group = { default_container = "Indiya", --TLCHANGE "India", default_placetype = "state", data = export.india_states_and_union_territories, } export.indonesia_provinces = { ["Aceh, Indonesia"] = {}, ["Bali, Indonesia"] = {}, ["Bangka Belitung Islands, Indonesia"] = {the = true}, ["Banten, Indonesia"] = {}, ["Bengkulu, Indonesia"] = {}, ["Central Java, Indonesia"] = {}, ["Central Kalimantan, Indonesia"] = {}, ["Central Papua, Indonesia"] = {}, ["Central Sulawesi, Indonesia"] = {}, ["East Java, Indonesia"] = {}, ["East Kalimantan, Indonesia"] = {}, ["East Nusa Tenggara, Indonesia"] = {}, ["Gorontalo, Indonesia"] = {}, ["Highland Papua, Indonesia"] = {wp = "%l"}, ["Special Capital Region of Jakarta, Indonesia"] = {the = true, wp = "Jakarta"}, ["Jakarta, Indonesia"] = {alias_of = "Special Capital Region of Jakarta, Indonesia"}, ["Jambi, Indonesia"] = {}, ["Lampung, Indonesia"] = {}, ["Maluku, Indonesia"] = {}, ["North Kalimantan, Indonesia"] = {}, ["North Maluku, Indonesia"] = {}, ["North Sulawesi, Indonesia"] = {}, ["North Papua, Indonesia"] = {}, ["North Sumatra, Indonesia"] = {}, ["Papua, Indonesia"] = {wp = "%l (province)"}, ["Riau, Indonesia"] = {}, ["Riau Islands, Indonesia"] = {the = true}, ["Southeast Sulawesi, Indonesia"] = {}, ["South Kalimantan, Indonesia"] = {}, ["South Papua, Indonesia"] = {}, ["South Sulawesi, Indonesia"] = {}, ["South Sumatra, Indonesia"] = {}, ["Southwest Papua, Indonesia"] = {}, ["West Java, Indonesia"] = {}, ["West Kalimantan, Indonesia"] = {}, ["West Nusa Tenggara, Indonesia"] = {}, ["West Papua, Indonesia"] = {wp = "%l (province)"}, ["West Sulawesi, Indonesia"] = {}, ["West Sumatra, Indonesia"] = {}, ["Special Region of Yogyakarta, Indonesia"] = {the = true}, ["Yogyakarta, Indonesia"] = {alias_of = "Special Region of Yogyakarta, Indonesia"}, } -- provinces of Indonesia export.indonesia_group = { default_container = "Indonesia", default_placetype = "province", -- per https://www.quora.com/Does-Indonesia-use-British-or-American-English, Indonesia tends to use American -- spellings. data = export.indonesia_provinces, } export.iran_provinces = { ["Alborz Province, Iran"] = {}, -- abbreviation AL, capital [[w:Karaj]] ["Ardabil Province, Iran"] = {}, -- abbreviation AR, capital [[w:Ardabil]] ["Bushehr Province, Iran"] = {}, -- abbreviation BU, capital [[w:Bushehr]] ["Chaharmahal and Bakhtiari Province, Iran"] = {}, -- abbreviation CB, capital [[w:Shahr-e Kord]] ["East Azerbaijan Province, Iran"] = {}, -- abbreviation EA, capital [[w:Tabriz]] ["Fars Province, Iran"] = {}, -- abbreviation FA, capital [[w:Shiraz]] ["Pars Province, Iran"] = {alias_of = "Fars Province, Iran", display = true}, ["Gilan Province, Iran"] = {}, -- abbreviation GN, capital [[w:Rasht]] ["Golestan Province, Iran"] = {}, -- abbreviation GO, capital [[w:Gorgan]] ["Hamadan Province, Iran"] = {}, -- abbreviation HA, capital [[w:Hamadan]] ["Hormozgan Province, Iran"] = {}, -- abbreviation HO, capital [[w:Bandar Abbas]] ["Ilam Province, Iran"] = {}, -- abbreviation IL, capital [[w:Ilam, Iran|Ilam]] ["Isfahan Province, Iran"] = {}, -- abbreviation IS, capital [[w:Isfahan]] ["Kerman Province, Iran"] = {}, -- abbreviation KN, capital [[w:Kerman]] ["Kermanshah Province, Iran"] = {}, -- abbreviation KE, capital [[w:Kermanshah]] ["Khuzestan Province, Iran"] = {}, -- abbreviation KH, capital [[w:Ahvaz]] ["Kohgiluyeh and Boyer-Ahmad Province, Iran"] = {}, -- abbreviation KB, capital [[w:Yasuj]] ["Kurdistan Province, Iran"] = {}, -- abbreviation KU, capital [[w:Sanandaj]] ["Lorestan Province, Iran"] = {}, -- abbreviation LO, capital [[w:Khorramabad]] ["Markazi Province, Iran"] = {}, -- abbreviation MA, capital [[w:Arak, Iran|Arak]] ["Mazandaran Province, Iran"] = {}, -- abbreviation MN, capital [[w:Sari, Iran|Sari]] ["North Khorasan Province, Iran"] = {}, -- abbreviation NK, capital [[w:Bojnord]] ["Qazvin Province, Iran"] = {}, -- abbreviation QA, capital [[w:Qazvin]] ["Qom Province, Iran"] = {}, -- abbreviation QM, capital [[w:Qom]] ["Razavi Khorasan Province, Iran"] = {}, -- abbreviation RK, capital [[w:Mashhad]] ["Semnan Province, Iran"] = {}, -- abbreviation SE, capital [[w:Semnan, Iran|Semnan]] ["Sistan and Baluchestan Province, Iran"] = {}, -- abbreviation SB, capital [[w:Zahedan]] ["South Khorasan Province, Iran"] = {}, -- abbreviation SK, capital [[w:Birjand]] ["Tehran Province, Iran"] = {}, -- abbreviation TE, capital [[w:Tehran]] ["West Azerbaijan Province, Iran"] = {}, -- abbreviation WA, capital [[w:Urmia]] ["Yazd Province, Iran"] = {}, -- abbreviation YA, capital [[w:Yazd]] ["Zanjan Province, Iran"] = {}, -- abbreviation ZA, capital [[w:Zanjan, Iran|Zanjan]] } -- provinces of Iran export.iran_group = { key_to_placename = make_key_to_placename(", Iran", " Province$"), placename_to_key = make_placename_to_key(", Iran", " Province"), default_container = "Iran", default_placetype = "province", -- There aren't nearly enough counties of Iran currently entered in any language to allow for categorizing them -- per-province. (As of 2025-05-09, there are only 6 counties in each of [[Category:en:Counties of Iran]], -- [[Category:fa:Counties of Iran]] and [[Category:ar:Counties of Iran]].) -- default_divs = "counties", -- For obscure reasons, provinces of Iran, Laos, Thailand and Vietnam use lowercase 'province' default_wp = "%e province", data = export.iran_provinces, } export.ireland_counties = { ["County Carlow, Ireland"] = {}, ["County Cavan, Ireland"] = {}, ["County Clare, Ireland"] = {}, ["County Cork, Ireland"] = {}, ["County Donegal, Ireland"] = {}, ["County Dublin, Ireland"] = {}, ["County Galway, Ireland"] = {}, ["County Kerry, Ireland"] = {}, ["County Kildare, Ireland"] = {}, ["County Kilkenny, Ireland"] = {}, ["County Laois, Ireland"] = {}, ["County Leitrim, Ireland"] = {}, ["County Limerick, Ireland"] = {}, ["County Longford, Ireland"] = {}, ["County Louth, Ireland"] = {}, ["County Mayo, Ireland"] = {}, ["County Meath, Ireland"] = {}, ["County Monaghan, Ireland"] = {}, ["County Offaly, Ireland"] = {}, ["County Roscommon, Ireland"] = {}, ["County Sligo, Ireland"] = {}, ["County Tipperary, Ireland"] = {}, ["County Waterford, Ireland"] = {}, ["County Westmeath, Ireland"] = {}, ["County Wexford, Ireland"] = {}, ["County Wicklow, Ireland"] = {}, } local function make_irish_type_key_to_placename(container_pattern) return function(key) key = key:gsub(container_pattern, "") local elliptical_key = key:gsub("^County ", "") return key, elliptical_key end end local function make_irish_type_placename_to_key(container_suffix) return function(placename) if not placename:find("^County ") and not placename:find("^City ") then placename = "County " .. placename end return placename .. container_suffix end end -- counties of Ireland export.ireland_group = { key_to_placename = make_irish_type_key_to_placename(", Ireland$"), placename_to_key = make_irish_type_placename_to_key(", Ireland"), default_container = "Ireland", default_placetype = "county", data = export.ireland_counties, } export.italy_administrative_regions = { ["Abruzzo, Italy"] = {}, ["Aosta Valley, Italy"] = {placetype = {"autonomous region", "administrative region", "region"}}, ["Apulia, Italy"] = {}, ["Basilicata, Italy"] = {}, ["Calabria, Italy"] = {}, ["Campania, Italy"] = {}, ["Emilia-Romagna, Italy"] = {}, ["Friuli-Venezia Giulia, Italy"] = {placetype = {"autonomous region", "administrative region", "region"}}, ["Lazio, Italy"] = {}, ["Liguria, Italy"] = {}, ["Lombardy, Italy"] = {}, ["Marche, Italy"] = {}, ["Molise, Italy"] = {}, ["Piedmont, Italy"] = {}, ["Sardinia, Italy"] = {placetype = {"autonomous region", "administrative region", "region"}}, ["Sicily, Italy"] = {placetype = {"autonomous region", "administrative region", "region"}}, ["Trentino-Alto Adige, Italy"] = {placetype = {"autonomous region", "administrative region", "region"}}, ["Tuscany, Italy"] = {}, ["Umbria, Italy"] = {}, ["Veneto, Italy"] = {}, } -- administrative regions of Italy export.italy_group = { default_container = "Italy", default_placetype = "region", data = export.italy_administrative_regions, } -- table of Japanese prefectures; interpolated into the main 'places' table, but also needed separately export.japan_prefectures = { ["Aichi Prefecture, Japan"] = {}, ["Akita Prefecture, Japan"] = {}, ["Aomori Prefecture, Japan"] = {}, ["Chiba Prefecture, Japan"] = {}, ["Ehime Prefecture, Japan"] = {}, ["Fukui Prefecture, Japan"] = {}, ["Fukuoka Prefecture, Japan"] = {}, ["Fukushima Prefecture, Japan"] = {}, ["Gifu Prefecture, Japan"] = {}, ["Gunma Prefecture, Japan"] = {}, ["Hiroshima Prefecture, Japan"] = {}, ["Hokkaido Prefecture, Japan"] = {divs = "subprefectures", wp = "Hokkaido"}, ["Hyōgo Prefecture, Japan"] = {}, ["Hyogo Prefecture, Japan"] = {alias_of = "Hyōgo Prefecture, Japan", display = true}, ["Ibaraki Prefecture, Japan"] = {}, ["Ishikawa Prefecture, Japan"] = {}, ["Iwate Prefecture, Japan"] = {}, ["Kagawa Prefecture, Japan"] = {}, ["Kagoshima Prefecture, Japan"] = {}, ["Kanagawa Prefecture, Japan"] = {}, ["Kōchi Prefecture, Japan"] = {}, ["Kochi Prefecture, Japan"] = {alias_of = "Kōchi Prefecture, Japan", display = true}, ["Kumamoto Prefecture, Japan"] = {}, ["Kyoto Prefecture, Japan"] = {}, ["Mie Prefecture, Japan"] = {}, ["Miyagi Prefecture, Japan"] = {}, ["Miyazaki Prefecture, Japan"] = {}, ["Nagano Prefecture, Japan"] = {}, ["Nagasaki Prefecture, Japan"] = {}, ["Nara Prefecture, Japan"] = {}, ["Niigata Prefecture, Japan"] = {}, ["Ōita Prefecture, Japan"] = {}, ["Oita Prefecture, Japan"] = {alias_of = "Ōita Prefecture, Japan", display = true}, ["Okayama Prefecture, Japan"] = {}, ["Okinawa Prefecture, Japan"] = {}, ["Osaka Prefecture, Japan"] = {}, ["Saga Prefecture, Japan"] = {}, ["Saitama Prefecture, Japan"] = {}, ["Shiga Prefecture, Japan"] = {}, ["Shimane Prefecture, Japan"] = {}, ["Shizuoka Prefecture, Japan"] = {}, ["Tochigi Prefecture, Japan"] = {}, ["Tokushima Prefecture, Japan"] = {}, ["Tottori Prefecture, Japan"] = {}, ["Toyama Prefecture, Japan"] = {}, ["Wakayama Prefecture, Japan"] = {}, ["Yamagata Prefecture, Japan"] = {}, ["Yamaguchi Prefecture, Japan"] = {}, ["Yamanashi Prefecture, Japan"] = {}, } -- prefectures of Japan export.japan_group = { key_to_placename = make_key_to_placename(", Japan$", " Prefecture$"), placename_to_key = make_placename_to_key(", Japan", " Prefecture"), default_container = "Japan", default_placetype = "prefecture", data = export.japan_prefectures, } export.laos_provinces = { ["Attapeu Province, Laos"] = {}, ["Bokeo Province, Laos"] = {}, ["Bolikhamxai Province, Laos"] = {}, ["Champasak Province, Laos"] = {}, ["Houaphanh Province, Laos"] = {}, ["Khammouane Province, Laos"] = {}, ["Luang Namtha Province, Laos"] = {}, ["Luang Prabang Province, Laos"] = {}, ["Oudomxay Province, Laos"] = {}, ["Phongsaly Province, Laos"] = {}, ["Salavan Province, Laos"] = {}, ["Savannakhet Province, Laos"] = {}, ["Vientiane Province, Laos"] = {}, ["Vientiane Prefecture, Laos"] = {placetype = "prefecture", wp = "%l"}, ["Sainyabuli Province, Laos"] = {}, ["Sekong Province, Laos"] = {}, ["Xaisomboun Province, Laos"] = {}, ["Xiangkhouang Province, Laos"] = {}, } local function laos_placename_to_key(placename) if placename == "Vientiane Prefecture" then return placename .. ", Laos" end if placename:find(" Province$") then return placename .. ", Laos" end return placename .. " Province, Laos" end -- provinces of Laos export.laos_group = { key_to_placename = make_key_to_placename(", Laos$", {" Province$", " Prefecture$"}), placename_to_key = laos_placename_to_key, default_container = "Laos", default_placetype = "province", -- For obscure reasons, provinces of Iran, Laos, Thailand and Vietnam use lowercase 'province' default_wp = "%e province", data = export.laos_provinces, } export.lebanon_governorates = { ["Akkar Governorate, Lebanon"] = {}, ["Baalbek-Hermel Governorate, Lebanon"] = {}, ["Beirut Governorate, Lebanon"] = {}, ["Beqaa Governorate, Lebanon"] = {}, ["Keserwan-Jbeil Governorate, Lebanon"] = {}, ["Mount Lebanon Governorate, Lebanon"] = {}, ["Nabatieh Governorate, Lebanon"] = {}, -- These two are generic enough that we don't want to automatically augment a use of `gov/North Governorate` or -- `gov/South Governorate` with `c/Lebanon`. ["North Governorate, Lebanon"] = {no_auto_augment_container = true}, ["South Governorate, Lebanon"] = {no_auto_augment_container = true}, } -- governorates of Lebanon export.lebanon_group = { key_to_placename = make_key_to_placename(", Lebanon$", " Governorate$"), placename_to_key = make_placename_to_key(", Lebanon", " Governorate"), default_container = "Lebanon", default_placetype = "governorate", data = export.lebanon_governorates, } export.malaysia_states = { ["Johor, Malaysia"] = {}, ["Kedah, Malaysia"] = {}, ["Kelantan, Malaysia"] = {}, ["Malacca, Malaysia"] = {}, ["Negeri Sembilan, Malaysia"] = {}, ["Pahang, Malaysia"] = {}, ["Penang, Malaysia"] = {}, ["Perak, Malaysia"] = {}, ["Perlis, Malaysia"] = {}, ["Sabah, Malaysia"] = {}, ["Sarawak, Malaysia"] = {}, ["Selangor, Malaysia"] = {}, ["Terengganu, Malaysia"] = {}, } -- states of Malaysia export.malaysia_group = { default_container = "Malaysia", default_placetype = "state", default_wp = "%l, %c", data = export.malaysia_states, } export.malta_regions = { -- Some of the regions are generic enough that we don't want to automatically augment a use of e.g. -- `r/Northern Region` with `c/Malta`. In particular; -- * "Eastern Region" also occurs at least in Ghana, Uganda, Iceland, Nigeria, Venezuela, North Macedonia and -- El Salvador; -- * "Northern Region" also occurs at least in Ghana, Uganda, Malawi, Nigeria, Canada and South Africa; -- * "Western Region" also occurs at least in Abu Dhabi, Bahrain, South Africa, Ghana, Iceland, Nepal, Nigeria, -- Serbia and Uganda; -- * "Southern Region" also occurs at least in Nigeria, Eritrea, Iceland, Ireland, Malawi and Serbia. ["Eastern Region, Malta"] = {no_auto_augment_container = true}, ["Gozo Region, Malta"] = {wp = "%l"}, ["Northern Region, Malta"] = {no_auto_augment_container = true}, ["Port Region, Malta"] = {}, ["Southern Region, Malta"] = {no_auto_augment_container = true}, ["Western Region, Malta"] = {no_auto_augment_container = true}, } -- regions of Malta export.malta_group = { key_to_placename = make_key_to_placename(", Malta$", " Region"), placename_to_key = make_placename_to_key(", Malta", " Region"), default_container = "Malta", default_placetype = "region", default_wp = "%l, %c", default_the = true, data = export.malta_regions, } export.mexico_states = { ["Aguascalientes, Mexico"] = {}, ["Baja California, Mexico"] = {}, -- not display-canonicalizing because the "Norte" could be for emphasis ["Baja California Norte, Mexico"] = {alias_of = "Baja California, Mexico"}, ["Baja California Sur, Mexico"] = {}, ["Campeche, Mexico"] = {}, ["Chiapas, Mexico"] = {}, ["Chihuahua, Mexico"] = {wp = "%l (state)"}, ["Coahuila, Mexico"] = {}, ["Colima, Mexico"] = {}, ["Durango, Mexico"] = {}, ["Guanajuato, Mexico"] = {}, ["Guerrero, Mexico"] = {}, ["Hidalgo, Mexico"] = {wp = "%l (state)"}, ["Jalisco, Mexico"] = {}, ["State of Mexico, Mexico"] = {the = true}, ["Mexico, Mexico"] = {alias_of = "State of Mexico, Mexico"}, -- differs in "the" -- ["Mexico City, Mexico"] = {}, doesn't belong here because it's a city ["Michoacán, Mexico"] = {}, ["Michoacan, Mexico"] = {alias_of = "Michoacán, Mexico", display = true}, ["Morelos, Mexico"] = {}, ["Nayarit, Mexico"] = {}, ["Nuevo León, Mexico"] = {}, ["Nuevo Leon, Mexico"] = {alias_of = "Nuevo León, Mexico", display = true}, ["Oaxaca, Mexico"] = {}, ["Puebla, Mexico"] = {}, ["Querétaro, Mexico"] = {}, ["Queretaro, Mexico"] = {alias_of = "Querétaro, Mexico", display = true}, ["Quintana Roo, Mexico"] = {}, ["San Luis Potosí, Mexico"] = {}, ["San Luis Potosi, Mexico"] = {alias_of = "San Luis Potosí, Mexico", display = true}, ["Sinaloa, Mexico"] = {}, ["Sonora, Mexico"] = {}, ["Tabasco, Mexico"] = {}, ["Tamaulipas, Mexico"] = {}, ["Tlaxcala, Mexico"] = {}, ["Veracruz, Mexico"] = {}, ["Yucatán, Mexico"] = {}, ["Yucatan, Mexico"] = {alias_of = "Yucatán, Mexico", display = true}, ["Zacatecas, Mexico"] = {}, } -- Mexican states export.mexico_group = { default_container = "Mexico", default_placetype = "state", data = export.mexico_states, } export.moldova_districts_and_autonomous_territorial_units = { ["Anenii Noi District, Moldova"] = {}, -- capital [[Anenii Noi]] ["Basarabeasca District, Moldova"] = {}, -- capital [[Basarabeasca]] ["Briceni District, Moldova"] = {}, -- capital [[Briceni]] ["Cahul District, Moldova"] = {}, -- capital [[Cahul]] ["Cantemir District, Moldova"] = {}, -- capital [[Cantemir, Moldova|Cantemir]] ["Călărași District, Moldova"] = {}, -- capital [[Călărași, Moldova|Călărași]] ["Căușeni District, Moldova"] = {}, -- capital [[Căușeni]] ["Cimișlia District, Moldova"] = {}, -- capital [[Cimișlia]] ["Criuleni District, Moldova"] = {}, -- capital [[Criuleni]] ["Dondușeni District, Moldova"] = {}, -- capital [[Dondușeni]] ["Drochia District, Moldova"] = {}, -- capital [[Drochia]] ["Dubăsari District, Moldova"] = {}, -- capital [[Cocieri]] ["Edineț District, Moldova"] = {}, -- capital [[Edineț]] ["Fălești District, Moldova"] = {}, -- capital [[Fălești]] ["Florești District, Moldova"] = {}, -- capital [[Florești, Moldova|Florești]] ["Glodeni District, Moldova"] = {}, -- capital [[Glodeni]] ["Hîncești District, Moldova"] = {}, -- capital [[Hîncești]] ["Ialoveni District, Moldova"] = {}, -- capital [[Ialoveni]] ["Leova District, Moldova"] = {}, -- capital [[Leova]] ["Nisporeni District, Moldova"] = {}, -- capital [[Nisporeni]] ["Ocnița District, Moldova"] = {}, -- capital [[Ocnița]] ["Orhei District, Moldova"] = {}, -- capital [[Orhei]] ["Rezina District, Moldova"] = {}, -- capital [[Rezina]] ["Rîșcani District, Moldova"] = {}, -- capital [[Rîșcani]] ["Sîngerei District, Moldova"] = {}, -- capital [[Sîngerei]] ["Soroca District, Moldova"] = {}, -- capital [[Soroca]] ["Strășeni District, Moldova"] = {}, -- capital [[Strășeni]] ["Șoldănești District, Moldova"] = {}, -- capital [[Șoldănești]] ["Ștefan Vodă District, Moldova"] = {}, -- capital [[Ștefan Vodă]] ["Taraclia District, Moldova"] = {}, -- capital [[Taraclia]] ["Telenești District, Moldova"] = {}, -- capital [[Telenești]] ["Ungheni District, Moldova"] = {}, -- capital [[Ungheni]] ["Chișinău, Moldova"] = {placetype = "municipality"}, ["Bălți, Moldova"] = {placetype = "municipality"}, ["Gagauzia, Moldova"] = {placetype = {"autonomous territorial unit", "autonomous region", "region"}}, -- capital [[Comrat]] -- the remainder are under the de-facto control of the unrecognized state of Transnistria ["Bender, Moldova"] = {placetype = "municipality"}, ["Tighina, Moldova"] = {alias_of = "Bender, Moldova"}, ["Transnistria, Moldova"] = {placetype = {"autonomous territorial unit", "autonomous region", "region"}}, -- capital [[Tiraspol]] ["Left Bank of the Dniester, Moldova"] = {alias_of = "Transnistria, Moldova", the = true}, ["Administrative-Territorial Units of the Left Bank of the Dniester, Moldova"] = {alias_of = "Transnistria, Moldova", the = true}, } local function moldova_placename_to_key(placename) local elliptical_key = placename .. ", Moldova" if export.moldova_districts_and_autonomous_territorial_units[elliptical_key] then return elliptical_key end if placename:find(" District$") then return placename .. ", Moldova" end return placename .. " District, Moldova" end -- Moldovan districts (raions) and autonomous territorial units export.moldova_group = { key_to_placename = make_key_to_placename(", Moldova$", " District"), placename_to_key = moldova_placename_to_key, default_container = "Moldova", default_placetype = {"district", "raion"}, default_divs = "communes", data = export.moldova_districts_and_autonomous_territorial_units, } export.morocco_regions = { ["Tangier-Tetouan-Al Hoceima, Morocco"] = {}, ["Oriental, Morocco"] = {wp = "%l (%c)"}, ["L'Oriental, Morocco"] = {alias_of = "Oriental, Morocco", display = true}, ["Fez-Meknes, Morocco"] = {}, ["Rabat-Sale-Kenitra, Morocco"] = {wp = "Rabat-Salé-Kénitra"}, ["Rabat-Salé-Kénitra, Morocco"] = {alias_of = "Rabat-Sale-Kenitra, Morocco", display = true}, ["Beni Mellal-Khenifra, Morocco"] = {wp = "Béni Mellal-Khénifra"}, ["Béni Mellal-Khénifra, Morocco"] = {alias_of = "Beni Mellal-Khenifra, Morocco", display = true}, ["Casablanca-Settat, Morocco"] = {}, ["Marrakesh-Safi, Morocco"] = {wp = "Marrakesh–Safi"}, -- WP title has en-dash ["Marrakech-Safi, Morocco"] = {alias_of = "Marrakesh-Safi, Morocco", display = true}, ["Draa-Tafilalet, Morocco"] = {wp = "Drâa-Tafilalet"}, ["Drâa-Tafilalet, Morocco"] = {alias_of = "Draa-Tafilalet, Morocco", display = true}, ["Souss-Massa, Morocco"] = {}, ["Guelmim-Oued Noun, Morocco"] = { keydesc = "+++. '''NOTE:''' This region lies partly within the disputed territory of [[Western Sahara]]" }, ["Laayoune-Sakia El Hamra, Morocco"] = { wp = "Laâyoune-Sakia El Hamra", keydesc = "+++. '''NOTE:''' This region lies almost completely within the disputed territory of [[Western Sahara]]", }, ["Laâyoune-Sakia El Hamra, Morocco"] = {alias_of = "Laayoune-Sakia El Hamra, Morocco", display = true}, ["Dakhla-Oued Ed-Dahab, Morocco"] = { keydesc = "+++. '''NOTE:''' This region lies completely within the disputed territory of [[Western Sahara]]", }, } -- regions of Morocco export.morocco_group = { default_container = "Morocco", default_placetype = "region", data = export.morocco_regions, } export.egypt_governorates = { ["Cairo Governorate, Egypt"] = {}, ["Giza Governorate, Egypt"] = {}, ["Sharqia Governorate, Egypt"] = {}, ["Dakahlia Governorate, Egypt"] = {}, ["Beheira Governorate, Egypt"] = {}, ["Minya Governorate, Egypt"] = {}, ["Qalyubia Governorate, Egypt"] = {}, ["Sohag Governorate, Egypt"] = {}, ["Alexandria Governorate, Egypt"] = {}, ["Gharbia Governorate, Egypt"] = {}, ["Asyut Governorate, Egypt"] = {}, ["Monufia Governorate, Egypt"] = {}, ["Faiyum Governorate, Egypt"] = {}, ["Kafr El Sheikh Governorate, Egypt"] = {}, ["Qena Governorate, Egypt"] = {}, ["Beni Suef Governorate, Egypt"] = {}, ["Damietta Governorate, Egypt"] = {}, ["Aswan Governorate, Egypt"] = {}, ["Ismailia Governorate, Egypt"] = {}, ["Luxor Governorate, Egypt"] = {}, ["Suez Governorate, Egypt"] = {}, ["Port Said Governorate, Egypt"] = {}, ["Matrouh Governorate, Egypt"] = {}, ["North Sinai Governorate, Egypt"] = {}, ["Red Sea Governorate, Egypt"] = {}, ["New Valley Governorate, Egypt"] = {}, ["South Sinai Governorate, Egypt"] = {}, } -- governorates of Egypt export.egypt_group = { key_to_placename = make_key_to_placename(", Egypt$", " Governorate$"), placename_to_key = make_placename_to_key(", Egypt", " Governorate"), default_container = "Egypt", default_placetype = "governorate", data = export.egypt_governorates, } export.netherlands_provinces = { ["Drenthe, Netherlands"] = {}, ["Flevoland, Netherlands"] = {}, ["Friesland, Netherlands"] = {}, ["Gelderland, Netherlands"] = {}, ["Groningen, Netherlands"] = {wp = "%l (province)"}, ["Limburg, Netherlands"] = {wp = "%l (%c)"}, ["North Brabant, Netherlands"] = {}, -- Foreign forms get display-canonicalized. ["Noord-Brabant, Netherlands"] = {alias_of = "North Brabant, Netherlands", display = true}, ["North Holland, Netherlands"] = {}, ["Noord-Holland, Netherlands"] = {alias_of = "North Holland, Netherlands", display = true}, ["Overijssel, Netherlands"] = {}, ["South Holland, Netherlands"] = {}, ["Zuid-Holland, Netherlands"] = {alias_of = "South Holland, Netherlands", display = true}, ["Utrecht, Netherlands"] = {wp = "%l (province)"}, ["Zeeland, Netherlands"] = {}, } -- provinces of the Netherlands export.netherlands_group = { default_container = "Netherlands", default_placetype = "province", default_divs = "municipalities", data = export.netherlands_provinces, } export.new_zealand_regions = { -- North Island regions ["Northland, New Zealand"] = {wp = "%l Region"}, -- ISO 3166-2 code NZ-NTL, number 1, capital [[Whangārei]] ["Auckland, New Zealand"] = {wp = "%l Region"}, -- ISO 3166-2 code NZ-AUK, number 2, capital [[Auckland]] ["Waikato, New Zealand"] = {}, -- ISO 3166-2 code NZ-WKO, number 3, capital [[Hamilton, New Zealand|Hamilton]] ["Bay of Plenty, New Zealand"] = {the = true, wp = "%l Region"}, -- ISO 3166-2 code NZ-BOP, number 4, capital [[Whakatāne]] ["Gisborne, New Zealand"] = {placetype = {"region", "district"}, wp = "%l District"}, -- ISO 3166-2 code NZ-GIS, number 5, capital [[Gisborne, New Zealand|Gisborne]] ["Hawke's Bay, New Zealand"] = {}, -- ISO 3166-2 code NZ-HKB, number 6, capital [[Napier, New Zealand|Napier]] ["Taranaki, New Zealand"] = {}, -- ISO 3166-2 code NZ-TKI, number 7, capital [[Stratford, New Zealand|Stratford]] ["Manawatū-Whanganui, New Zealand"] = {}, -- ISO 3166-2 code NZ-MWT, number 8, capital [[Palmerston North]] ["Manawatu-Whanganui, New Zealand"] = {alias_of = "Manawatū-Whanganui, New Zealand", display = true}, ["Manawatu-Wanganui, New Zealand"] = {alias_of = "Manawatū-Whanganui, New Zealand", display = true}, ["Wellington, New Zealand"] = {wp = "%l Region"}, -- ISO 3166-2 code NZ-WGN, number 9, capital [[Wellington]] -- South Island regions ["Tasman, New Zealand"] = {placetype = {"region", "district"}, wp = "%l District"}, -- ISO 3166-2 code NZ-TAS, number 10, capital [[Richmond, New Zealand|Richmond]] ["Nelson, New Zealand"] = {placetype = {"region", "city"}, wp = "%l, %c", is_city = true}, -- ISO 3166-2 code NZ-NSN, number 11, capital [[Nelson, New Zealand|Nelson]] ["Marlborough, New Zealand"] = {placetype = {"region", "district"}, wp = "%l District"}, -- ISO 3166-2 code NZ-MBH, number 12, capital [[Blenheim, New Zealand|Blenheim]] ["West Coast, New Zealand"] = {the = true, wp = "%l Region"}, -- ISO 3166-2 code NZ-WTC, number 13, capital [[Greymouth]] ["Canterbury, New Zealand"] = {wp = "%l Region"}, -- ISO 3166-2 code NZ-CAN, number 14, capital [[Christchurch]] ["Otago, New Zealand"] = {}, -- ISO 3166-2 code NZ-OTA, number 15, capital [[Dunedin]] ["Southland, New Zealand"] = {wp = "%l Region"}, -- ISO 3166-2 code NZ-STL, number 16, capital [[Invercargill]] } -- regions of New Zealand export.new_zealand_group = { default_container = "New Zealand", default_placetype = "region", data = export.new_zealand_regions, } export.nigeria_states = { ["Abia State, Nigeria"] = {}, ["Adamawa State, Nigeria"] = {}, ["Akwa Ibom State, Nigeria"] = {}, ["Anambra State, Nigeria"] = {}, ["Bauchi State, Nigeria"] = {}, ["Bayelsa State, Nigeria"] = {}, ["Benue State, Nigeria"] = {}, ["Borno State, Nigeria"] = {}, ["Cross River State, Nigeria"] = {}, ["Delta State, Nigeria"] = {}, ["Ebonyi State, Nigeria"] = {}, ["Edo State, Nigeria"] = {}, ["Ekiti State, Nigeria"] = {}, ["Enugu State, Nigeria"] = {}, ["Federal Capital Territory, Nigeria"] = { -- not a state but allow it to be referenced as one in holonyms placetype = {"federal territory", "territory", "state"}, the = true, wp = "%l (%c)", }, ["Gombe State, Nigeria"] = {}, ["Imo State, Nigeria"] = {}, ["Jigawa State, Nigeria"] = {}, ["Kaduna State, Nigeria"] = {}, ["Kano State, Nigeria"] = {}, ["Katsina State, Nigeria"] = {}, ["Kebbi State, Nigeria"] = {}, ["Kogi State, Nigeria"] = {}, ["Kwara State, Nigeria"] = {}, ["Lagos State, Nigeria"] = {}, ["Nasarawa State, Nigeria"] = {}, ["Niger State, Nigeria"] = {}, ["Ogun State, Nigeria"] = {}, ["Ondo State, Nigeria"] = {}, ["Osun State, Nigeria"] = {}, ["Oyo State, Nigeria"] = {}, ["Plateau State, Nigeria"] = {}, ["Rivers State, Nigeria"] = {}, ["Sokoto State, Nigeria"] = {}, ["Taraba State, Nigeria"] = {}, ["Yobe State, Nigeria"] = {}, ["Zamfara State, Nigeria"] = {}, } -- states of Nigeria export.nigeria_group = { key_to_placename = make_key_to_placename(", Nigeria$", " State$"), placename_to_key = make_placename_to_key(", Nigeria", " State"), default_container = "Nigeria", default_placetype = "state", data = export.nigeria_states, } export.north_korea_provinces = { ["Chagang Province, North Korea"] = {}, ["North Hamgyong Province, North Korea"] = {}, ["South Hamgyong Province, North Korea"] = {}, ["North Hwanghae Province, North Korea"] = {}, ["South Hwanghae Province, North Korea"] = {}, ["Kangwon Province, North Korea"] = {wp = "%l (%c)"}, ["North Pyongan Province, North Korea"] = {}, ["South Pyongan Province, North Korea"] = {}, ["Ryanggang Province, North Korea"] = {}, } -- provinces of North Korea export.north_korea_group = { key_to_placename = make_key_to_placename(", North Korea$", " Province$"), placename_to_key = make_placename_to_key(", North Korea", " Province"), default_container = "North Korea", default_placetype = "province", data = export.north_korea_provinces, } export.norwegian_counties = { ["Oslo, Norway"] = {}, ["Rogaland, Norway"] = {}, ["Møre og Romsdal, Norway"] = {}, ["Nordland, Norway"] = {}, ["Østfold, Norway"] = {}, ["Akershus, Norway"] = {}, ["Buskerud, Norway"] = {}, -- the following two were merged into Innlandet -- ["Hedmark, Norway"] = {}, -- ["Oppland, Norway"] = {}, ["Innlandet, Norway"] = {}, ["Vestfold, Norway"] = {}, ["Telemark, Norway"] = {}, -- the following two were merged into Agder -- ["Aust-Agder, Norway"] = {}, -- ["Vest-Agder, Norway"] = {}, ["Agder, Norway"] = {}, -- the following two were merged into Vestland -- ["Hordaland, Norway"] = {}, -- ["Sogn og Fjordane, Norway"] = {}, ["Vestland, Norway"] = {}, ["Trøndelag, Norway"] = {}, ["Troms, Norway"] = {}, ["Finnmark, Norway"] = {}, } -- counties of Norway export.norway_group = { default_container = "Norway", default_placetype = "county", data = export.norwegian_counties, } export.pakistan_provinces_and_territories = { ["Azad Kashmir, Pakistan"] = { placetype = {"administrative territory", "autonomous territory", "territory"}, }, ["Azad Jammu and Kashmir, Pakistan"] = {alias_of = "Azad Kashmir, Pakistan", display = true}, ["Balochistan, Pakistan"] = {wp = "%l, %c"}, ["Gilgit-Baltistan, Pakistan"] = { placetype = {"administrative territory", "territory"}, }, ["Islamabad Capital Territory, Pakistan"] = { the = true, divs = {}, -- no divisions placetype = {"federal territory", "administrative territory", "territory"}, }, -- Islamabad is an accepted alias for Islamabad Capital Territory given the above placetypes ["Islamabad, Pakistan"] = {alias_of = "Islamabad Capital Territory, Pakistan"}, ["Khyber Pakhtunkhwa, Pakistan"] = {}, ["Punjab, Pakistan"] = {wp = "%l, %c"}, ["Sindh, Pakistan"] = {}, } -- provinces and territories of Pakistan export.pakistan_group = { default_container = "Pakistan", default_placetype = "province", default_divs = "divisions", data = export.pakistan_provinces_and_territories, } export.philippines_provinces = { --TLCHANGE ALL OF THIS change "Philippines" to "Pilipinas" ["Abra, Pilipinas"] = {wp = "%l (province)"}, ["Agusan del Norte, Pilipinas"] = {}, ["Agusan del Sur, Pilipinas"] = {}, ["Aklan, Pilipinas"] = {}, ["Albay, Pilipinas"] = {}, ["Antique, Pilipinas"] = {wp = "%l (province)"}, ["Apayao, Pilipinas"] = {}, ["Aurora, Pilipinas"] = {wp = "%l (province)"}, ["Basilan, Pilipinas"] = {}, ["Bataan, Pilipinas"] = {}, ["Batanes, Pilipinas"] = {}, ["Batangas, Pilipinas"] = {}, ["Benguet, Pilipinas"] = {}, ["Biliran, Pilipinas"] = {}, ["Bohol, Pilipinas"] = {}, ["Bukidnon, Pilipinas"] = {}, ["Bulacan, Pilipinas"] = {}, ["Cagayan, Pilipinas"] = {}, ["Camarines Norte, Pilipinas"] = {}, ["Camarines Sur, Pilipinas"] = {}, ["Camiguin, Pilipinas"] = {}, ["Capiz, Pilipinas"] = {}, ["Catanduanes, Pilipinas"] = {}, ["Cavite, Pilipinas"] = {}, ["Cebu, Pilipinas"] = {}, ["Cotabato, Pilipinas"] = {}, ["Davao de Oro, Pilipinas"] = {}, ["Davao del Norte, Pilipinas"] = {}, ["Davao del Sur, Pilipinas"] = {}, ["Davao Occidental, Pilipinas"] = {}, ["Davao Oriental, Pilipinas"] = {}, ["Dinagat Islands, Pilipinas"] = {the = true}, ["Eastern Samar, Pilipinas"] = {}, ["Guimaras, Pilipinas"] = {}, ["Ifugao, Pilipinas"] = {}, ["Ilocos Norte, Pilipinas"] = {}, ["Ilocos Sur, Pilipinas"] = {}, ["Iloilo, Pilipinas"] = {}, ["Isabela, Pilipinas"] = {wp = "%l (province)"}, ["Kalinga, Pilipinas"] = {wp = "%l (province)"}, ["La Union, Pilipinas"] = {}, ["Laguna, Pilipinas"] = {wp = "%l (province)"}, ["Lanao del Norte, Pilipinas"] = {}, ["Lanao del Sur, Pilipinas"] = {}, ["Leyte, Pilipinas"] = {wp = "%l (province)"}, ["Maguindanao del Norte, Pilipinas"] = {}, ["Maguindanao del Sur, Pilipinas"] = {}, ["Marinduque, Pilipinas"] = {}, ["Masbate, Pilipinas"] = {}, ["Misamis Occidental, Pilipinas"] = {}, ["Misamis Oriental, Pilipinas"] = {}, ["Mountain Province, Pilipinas"] = {}, ["Negros Occidental, Pilipinas"] = {}, ["Negros Oriental, Pilipinas"] = {}, ["Northern Samar, Pilipinas"] = {}, ["Nueva Ecija, Pilipinas"] = {}, ["Nueva Vizcaya, Pilipinas"] = {}, ["Occidental Mindoro, Pilipinas"] = {}, ["Oriental Mindoro, Pilipinas"] = {}, ["Palawan, Pilipinas"] = {}, ["Pampanga, Pilipinas"] = {}, ["Pangasinan, Pilipinas"] = {}, ["Quezon, Pilipinas"] = {}, ["Quirino, Pilipinas"] = {}, ["Rizal, Pilipinas"] = {wp = "%l (province)"}, ["Romblon, Pilipinas"] = {}, ["Samar, Pilipinas"] = {wp = "%l (province)"}, ["Sarangani, Pilipinas"] = {}, ["Siquijor, Pilipinas"] = {}, ["Sorsogon, Pilipinas"] = {}, ["South Cotabato, Pilipinas"] = {}, ["Southern Leyte, Pilipinas"] = {}, ["Sultan Kudarat, Pilipinas"] = {}, ["Sulu, Pilipinas"] = {}, ["Surigao del Norte, Pilipinas"] = {}, ["Surigao del Sur, Pilipinas"] = {}, ["Tarlac, Pilipinas"] = {}, ["Tawi-Tawi, Pilipinas"] = {}, ["Zambales, Pilipinas"] = {}, ["Zamboanga del Norte, Pilipinas"] = {}, ["Zamboanga del Sur, Pilipinas"] = {}, ["Zamboanga Sibugay, Pilipinas"] = {}, -- not a province but treated as one; allow it to be referred to as a province in holonyms ["Metro Manila, Pilipinas"] = {placetype = {"region", "province"}}, } -- provinces of the Philippines export.philippines_group = { default_container = "Pilipinas", --TLCHANGE "Philippines", default_placetype = "lalawigan", --TLCHANGE "province", default_divs = {"mga bayan", "mga barangay"}, --TLCHANGE {"municipalities", "barangays"}, data = export.philippines_provinces, } export.poland_voivodeships = { ["Lower Silesian Voivodeship, Poland"] = {}, -- abbr DS, code 02, capital Wrocław ["Kuyavian-Pomeranian Voivodeship, Poland"] = {}, -- abbr KP, code 04, capital Bydgoszcz (seat of voivode), Toruń (seat of sejmik and marshal) ["Lublin Voivodeship, Poland"] = {}, -- abbr LU, code 06, capital Lublin ["Lubusz Voivodeship, Poland"] = {}, -- abbr LB, code 08, capital Gorzów Wielkopolski (seat of voivode), Zielona Góra (seat of sejmik and marshal) ["Lodz Voivodeship, Poland"] = {wp = "Łódź Voivodeship"}, -- abbr LD, code 10, capital Łódź ["Łódź Voivodeship, Poland"] = {alias_of = "Lodz Voivodeship, Poland", display = true, display_as_full = true}, ["Lesser Poland Voivodeship, Poland"] = {}, -- abbr MA, code 12, capital Kraków ["Masovian Voivodeship, Poland"] = {}, -- abbr MZ, code 14, capital Warsaw ["Opole Voivodeship, Poland"] = {}, -- abbr OP, code 16, capital Opole ["Subcarpathian Voivodeship, Poland"] = {}, -- abbr PK, code 18, capital Rzeszów ["Podlaskie Voivodeship, Poland"] = {}, -- abbr PD, code 20, capital Białystok ["Pomeranian Voivodeship, Poland"] = {}, -- abbr PM, code 22, capital Gdańsk ["Silesian Voivodeship, Poland"] = {}, -- abbr SL, code 24, capital Katowice ["Holy Cross Voivodeship, Poland"] = {wp = "Świętokrzyskie Voivodeship"}, -- abbr SK, code 26, capital Kielce ["Świętokrzyskie Voivodeship, Poland"] = {alias_of = "Holy Cross Voivodeship, Poland", display = true, display_as_full = true}, ["Warmian-Masurian Voivodeship, Poland"] = {}, -- abbr WN, code 28, capital Olsztyn ["Greater Poland Voivodeship, Poland"] = {}, -- abbr WP, code 30, capital Poznań ["West Pomeranian Voivodeship, Poland"] = {}, -- abbr ZP, code 32, capital Szczecin } -- voivodeships of Poland export.poland_group = { key_to_placename = make_key_to_placename(", Poland$", " Voivodeship$"), placename_to_key = make_placename_to_key(", Poland", " Voivodeship"), default_container = "Poland", default_placetype = "voivodeship", default_divs = { -- "counties", -- not enough of them currently {type = "Polish colonies", cat_as = {{type = "villages", prep = "in"}}}, }, data = export.poland_voivodeships, } export.portugal_districts_and_autonomous_regions = { ["Azores, Portugal"] = {the = true, placetype = {"autonomous region", "region"}}, ["Aveiro District, Portugal"] = {}, ["Beja District, Portugal"] = {}, ["Braga District, Portugal"] = {}, ["Bragança District, Portugal"] = {}, ["Castelo Branco District, Portugal"] = {}, ["Coimbra District, Portugal"] = {}, ["Évora District, Portugal"] = {}, ["Faro District, Portugal"] = {}, ["Guarda District, Portugal"] = {}, ["Leiria District, Portugal"] = {}, ["Lisbon District, Portugal"] = {}, ["Lisboa District, Portugal"] = {alias_of = "Lisbon District, Portugal", display = true}, ["Madeira, Portugal"] = {placetype = {"autonomous region", "region"}}, ["Portalegre District, Portugal"] = {}, ["Porto District, Portugal"] = {}, ["Santarém District, Portugal"] = {}, ["Setúbal District, Portugal"] = {}, ["Viana do Castelo District, Portugal"] = {}, ["Vila Real District, Portugal"] = {}, ["Viseu District, Portugal"] = {}, } local function portugal_placename_to_key(placename) if placename == "Azores" or placename == "Madeira" then return placename .. ", Portugal" end if placename:find(" District$") then return placename .. ", Portugal" end return placename .. " District, Portugal" end -- districts and autonomous regions of Portugal export.portugal_group = { key_to_placename = make_key_to_placename(", Portugal$", " District$"), placename_to_key = portugal_placename_to_key, default_container = "Portugal", default_placetype = "district", default_divs = "municipalities", data = export.portugal_districts_and_autonomous_regions, } export.romania_counties = { ["Alba County, Romania"] = {}, ["Arad County, Romania"] = {}, ["Argeș County, Romania"] = {}, ["Bacău County, Romania"] = {}, ["Bihor County, Romania"] = {}, ["Bistrița-Năsăud County, Romania"] = {}, ["Botoșani County, Romania"] = {}, ["Brașov County, Romania"] = {}, ["Brăila County, Romania"] = {}, -- Bucharest: not in a county ["Buzău County, Romania"] = {}, ["Caraș-Severin County, Romania"] = {}, ["Cluj County, Romania"] = {}, ["Constanța County, Romania"] = {}, ["Covasna County, Romania"] = {}, ["Călărași County, Romania"] = {}, ["Dolj County, Romania"] = {}, ["Dâmbovița County, Romania"] = {}, ["Galați County, Romania"] = {}, ["Giurgiu County, Romania"] = {}, ["Gorj County, Romania"] = {}, ["Harghita County, Romania"] = {}, ["Hunedoara County, Romania"] = {}, ["Ialomița County, Romania"] = {}, ["Iași County, Romania"] = {}, ["Ilfov County, Romania"] = {}, ["Maramureș County, Romania"] = {}, ["Mehedinți County, Romania"] = {}, ["Mureș County, Romania"] = {}, ["Neamț County, Romania"] = {}, ["Olt County, Romania"] = {}, ["Prahova County, Romania"] = {}, ["Satu Mare County, Romania"] = {}, ["Sibiu County, Romania"] = {}, ["Suceava County, Romania"] = {}, ["Sălaj County, Romania"] = {}, ["Teleorman County, Romania"] = {}, ["Timiș County, Romania"] = {}, ["Tulcea County, Romania"] = {}, ["Vaslui County, Romania"] = {}, ["Vrancea County, Romania"] = {}, ["Vâlcea County, Romania"] = {}, } -- counties of Romania export.romania_group = { key_to_placename = make_key_to_placename(", Romania$", " County$"), placename_to_key = make_placename_to_key(", Romania", " County"), default_container = "Romania", default_placetype = "county", default_divs = "communes", data = export.romania_counties, } local function make_russia_federal_subject_spec(spectype, use_the, wp) return { placetype = spectype, the = not not use_the, bare_category_parent_type = {"federal subjects", spectype .. "s"}, wp = wp, } end local russia_autonomous_okrug_no_the = {placetype = {"autonomous okrug", "okrug"}, bare_category_parent_type = {"federal subjects", "autonomous okrugs"}} local russia_autonomous_okrug_the = {placetype = {"autonomous okrug", "okrug"}, bare_category_parent_type = {"federal subjects", "autonomous okrugs"}, the = true} local russia_krai = make_russia_federal_subject_spec("krai") local russia_oblast = make_russia_federal_subject_spec("oblast") local russia_republic_the = make_russia_federal_subject_spec("republic", "use the") local russia_republic_no_the = make_russia_federal_subject_spec("republic") export.russia_federal_subjects = { -- autonomous oblasts ["Jewish Autonomous Oblast, Russia"] = {the = true, placetype = {"autonomous oblast", "oblast"}, bare_category_parent_type = {"federal subjects", "autonomous oblasts"}}, -- autonomous okrugs ["Chukotka Autonomous Okrug, Russia"] = russia_autonomous_okrug_the, ["Chukotka, Russia"] = {alias_of = "Chukotka Autonomous Okrug, Russia"}, ["Khanty-Mansi Autonomous Okrug, Russia"] = russia_autonomous_okrug_the, ["Khanty-Mansia, Russia"] = {alias_of = "Khanty-Mansi Autonomous Okrug, Russia"}, ["Khantia-Mansia, Russia"] = {alias_of = "Khanty-Mansi Autonomous Okrug, Russia"}, ["Yugra, Russia"] = {alias_of = "Khanty-Mansi Autonomous Okrug, Russia"}, ["Nenets Autonomous Okrug, Russia"] = russia_autonomous_okrug_the, ["Nenetsia, Russia"] = {alias_of = "Nenets Autonomous Okrug, Russia"}, ["Yamalo-Nenets Autonomous Okrug, Russia"] = russia_autonomous_okrug_the, ["Yamalia, Russia"] = {alias_of = "Yamalo-Nenets Autonomous Okrug, Russia"}, -- krais ["Altai Krai, Russia"] = russia_krai, ["Kamchatka Krai, Russia"] = russia_krai, ["Khabarovsk Krai, Russia"] = russia_krai, ["Krasnodar Krai, Russia"] = russia_krai, ["Krasnoyarsk Krai, Russia"] = russia_krai, ["Perm Krai, Russia"] = russia_krai, ["Primorsky Krai, Russia"] = russia_krai, ["Stavropol Krai, Russia"] = russia_krai, ["Zabaykalsky Krai, Russia"] = russia_krai, -- oblasts ["Amur Oblast, Russia"] = russia_oblast, ["Arkhangelsk Oblast, Russia"] = russia_oblast, ["Astrakhan Oblast, Russia"] = russia_oblast, ["Belgorod Oblast, Russia"] = russia_oblast, ["Bryansk Oblast, Russia"] = russia_oblast, ["Chelyabinsk Oblast, Russia"] = russia_oblast, ["Irkutsk Oblast, Russia"] = russia_oblast, ["Ivanovo Oblast, Russia"] = russia_oblast, ["Kaliningrad Oblast, Russia"] = russia_oblast, ["Kaluga Oblast, Russia"] = russia_oblast, ["Kemerovo Oblast, Russia"] = russia_oblast, ["Kirov Oblast, Russia"] = russia_oblast, ["Kostroma Oblast, Russia"] = russia_oblast, ["Kurgan Oblast, Russia"] = russia_oblast, ["Kursk Oblast, Russia"] = russia_oblast, ["Leningrad Oblast, Russia"] = russia_oblast, ["Lipetsk Oblast, Russia"] = russia_oblast, ["Magadan Oblast, Russia"] = russia_oblast, ["Moscow Oblast, Russia"] = russia_oblast, ["Murmansk Oblast, Russia"] = russia_oblast, ["Nizhny Novgorod Oblast, Russia"] = russia_oblast, ["Novgorod Oblast, Russia"] = russia_oblast, ["Novosibirsk Oblast, Russia"] = russia_oblast, ["Omsk Oblast, Russia"] = russia_oblast, ["Orenburg Oblast, Russia"] = russia_oblast, ["Oryol Oblast, Russia"] = russia_oblast, ["Penza Oblast, Russia"] = russia_oblast, ["Pskov Oblast, Russia"] = russia_oblast, ["Rostov Oblast, Russia"] = russia_oblast, ["Ryazan Oblast, Russia"] = russia_oblast, ["Sakhalin Oblast, Russia"] = russia_oblast, ["Samara Oblast, Russia"] = russia_oblast, ["Saratov Oblast, Russia"] = russia_oblast, ["Smolensk Oblast, Russia"] = russia_oblast, ["Sverdlovsk Oblast, Russia"] = russia_oblast, ["Tambov Oblast, Russia"] = russia_oblast, ["Tomsk Oblast, Russia"] = russia_oblast, ["Tula Oblast, Russia"] = russia_oblast, ["Tver Oblast, Russia"] = russia_oblast, ["Tyumen Oblast, Russia"] = russia_oblast, ["Ulyanovsk Oblast, Russia"] = russia_oblast, ["Vladimir Oblast, Russia"] = russia_oblast, ["Volgograd Oblast, Russia"] = russia_oblast, ["Vologda Oblast, Russia"] = russia_oblast, ["Voronezh Oblast, Russia"] = russia_oblast, ["Yaroslavl Oblast, Russia"] = russia_oblast, -- republics -- -- We only need to include cases that aren't just shortened versions of the full federal subject name (i.e. where -- words like "Republic" and "Oblast" are omitted but the name is not otherwise modified; these are handled by -- key_to_placename). Non-display-canonicalizing aliases are generally due to differences in the presence or absence -- of "the". ["Adygea, Russia"] = russia_republic_no_the, ["Republic of Adygea, Russia"] = {alias_of = "Adygea, Russia", the = true}, ["Bashkortostan, Russia"] = russia_republic_no_the, ["Republic of Bashkortostan, Russia"] = {alias_of = "Bashkortostan, Russia", the = true}, ["Bashkiria, Russia"] = {alias_of = "Bashkortostan, Russia"}, ["Buryatia, Russia"] = russia_republic_no_the, ["Republic of Buryatia, Russia"] = {alias_of = "Buryatia, Russia", the = true}, ["Dagestan, Russia"] = russia_republic_no_the, ["Republic of Dagestan, Russia"] = {alias_of = "Dagestan, Russia", the = true}, ["Ingushetia, Russia"] = russia_republic_no_the, ["Republic of Ingushetia, Russia"] = {alias_of = "Ingushetia, Russia", the = true}, ["Kalmykia, Russia"] = russia_republic_no_the, ["Republic of Kalmykia, Russia"] = {alias_of = "Kalmykia, Russia", the = true}, ["Karelia, Russia"] = make_russia_federal_subject_spec("republic", nil, "Republic of Karelia"), ["Republic of Karelia, Russia"] = {alias_of = "Karelia, Russia", the = true}, ["Khakassia, Russia"] = russia_republic_no_the, ["Republic of Khakassia, Russia"] = {alias_of = "Khakassia, Russia", the = true}, ["Mordovia, Russia"] = russia_republic_no_the, ["Republic of Mordovia, Russia"] = {alias_of = "Mordovia, Russia", the = true}, ["North Ossetia-Alania, Russia"] = make_russia_federal_subject_spec("republic", nil, "North Ossetia–Alania"), -- with en-dash ["Republic of North Ossetia-Alania, Russia"] = {alias_of = "North Ossetia-Alania, Russia", the = true}, ["North Ossetia, Russia"] = {alias_of = "North Ossetia-Alania, Russia", display = true}, ["Alania, Russia"] = {alias_of = "North Ossetia-Alania, Russia", display = true}, ["Tatarstan, Russia"] = russia_republic_no_the, ["Republic of Tatarstan, Russia"] = {alias_of = "Tatarstan, Russia", the = true}, ["Altai Republic, Russia"] = russia_republic_the, ["Chechnya, Russia"] = russia_republic_no_the, ["Chechen Republic, Russia"] = {alias_of = "Chechnya, Russia", the = true}, ["Chuvashia, Russia"] = russia_republic_no_the, ["Chuvash Republic, Russia"] = {alias_of = "Chuvashia, Russia", the = true}, ["Kabardino-Balkaria, Russia"] = russia_republic_no_the, ["Kabardino-Balkariya, Russia"] = {alias_of = "Kabardino-Balkaria, Russia", display = true}, ["Kabardino-Balkarian Republic, Russia"] = {alias_of = "Kabardino-Balkaria, Russia", the = true}, ["Kabardino-Balkar Republic, Russia"] = {alias_of = "Kabardino-Balkaria, Russia", display = "Kabardino-Balkarian Republic, Russia", the = true}, ["Karachay-Cherkessia, Russia"] = russia_republic_no_the, ["Karachay-Cherkess Republic, Russia"] = {alias_of = "Karachay-Cherkessia, Russia"}, ["Komi, Russia"] = make_russia_federal_subject_spec("republic", nil, "Komi Republic"), ["Komi Republic, Russia"] = {alias_of = "Komi, Russia", the = true}, ["Mari El, Russia"] = russia_republic_no_the, ["Mari El Republic, Russia"] = {alias_of = "Mari El, Russia", the = true}, ["Sakha, Russia"] = make_russia_federal_subject_spec("republic", nil, "Sakha Republic"), ["Sakha Republic, Russia"] = {alias_of = "Sakha, Russia", the = true}, ["Yakutia, Russia"] = {alias_of = "Sakha, Russia"}, ["Yakutiya, Russia"] = {alias_of = "Sakha, Russia", display = "Yakutia, Russia"}, ["Republic of Yakutia (Sakha), Russia"] = {alias_of = "Sakha, Russia", display = "Sakha Republic, Russia", the = true}, ["Tuva, Russia"] = russia_republic_no_the, ["Tyva, Russia"] = {alias_of = "Tuva, Russia", display = true}, ["Tuva Republic, Russia"] = {alias_of = "Tuva, Russia", the = true}, ["Tyva Republic, Russia"] = {alias_of = "Tuva, Russia", display= "Tuva Republic, Russia", the = true}, ["Udmurtia, Russia"] = russia_republic_no_the, ["Udmurt Republic, Russia"] = {alias_of = "Udmurtia, Russia", the = true}, -- Not included due to being unrecognized and only partly controlled: -- ["Crimea, Russia"] = make_russia_federal_subject_spec("republic", nil, "Republic of Crimea (Russia)") -- ["Donetsk People's Republic, Russia"] = russia_republic_the, -- ["Luhansk People's Republic, Russia"] = russia_republic_the, -- ["Zaporozhye Oblast, Russia"] = make_russia_federal_subject_spec("oblast", nil, "Russian occupation of Zaporizhzhia Oblast"), -- ["Kherson Oblast, Russia"] = make_russia_federal_subject_spec("oblast", nil, "Russian occupation of Kherson Oblast"), -- There are also federal cities (not included because they're cities): -- Moscow, Saint Petersburg; Sevastopol (unrecognized; same status as for "Crimea, Russia" above) } local function russia_key_to_placename(key) key = key:gsub(",.*", "") local full_placename = key if key == "Jewish Autonomous Oblast" then return full_placename, full_placename end local elliptical_placename for _, suffix in ipairs({"Krai", "Oblast"}) do elliptical_placename = key:match("^(.*) " .. suffix .. "$") if elliptical_placename then return full_placename, elliptical_placename end end return full_placename, full_placename end local function russia_placename_to_key(placename) local key = placename .. ", Russia" if export.russia_federal_subjects[key] then return key end -- We allow the user to say e.g. "obl/Samara" in place of "obl/Samara Oblast". for _, suffix in ipairs({"Krai", "Oblast"}) do local suffixed_key = placename .. " " .. suffix .. ", Russia" if export.russia_federal_subjects[suffixed_key] then return suffixed_key end end return placename .. ", Russia" end local function construct_russia_federal_subject_keydesc(group, key, spec) local placename = key:gsub(",.*", "") local linked_placename = export.construct_linked_placename(spec, placename) local placetype = spec.placetype if type(placetype) == "table" then placetype = placetype[1] end if placetype == "oblast" then -- Hack: Oblasts generally don't have entries under "Foo Oblast" -- but just under "Foo", so fix the linked key appropriately; -- doesn't apply to the Jewish Autonomous Oblast linked_placename = linked_placename:gsub(" Oblast%]%]", "%]%] Oblast") end return linked_placename .. ", a [[federal subject]] ([[" .. placetype .. "]]) of [[Russia]]" end -- federal subjects of Russia export.russia_group = { key_to_placename = russia_key_to_placename, placename_to_key = russia_placename_to_key, default_container = "Russia", default_keydesc = construct_russia_federal_subject_keydesc, default_overriding_bare_label_parents = {"federal subjects of Russia", "+++"}, data = export.russia_federal_subjects, } export.saudi_arabia_provinces = { ["Riyadh Province, Saudi Arabia"] = {}, ["Mecca Province, Saudi Arabia"] = {}, -- Name is too generic to assume it's in Saudi Arabia if not specified. ["Eastern Province, Saudi Arabia"] = {no_auto_augment_container = true, wp = "%l, %c"}, ["Medina Province, Saudi Arabia"] = {wp = "%l (%c)"}, ["Aseer Province, Saudi Arabia"] = {wp = "Asir"}, ["Asir Province, Saudi Arabia"] = {alias_of = "Aseer Province, Saudi Arabia", display = true}, ["Jazan Province, Saudi Arabia"] = {}, ["Qassim Province, Saudi Arabia"] = {wp = "Al-Qassim Province"}, ["Al-Qassim Province, Saudi Arabia"] = {alias_of = "Qassim Province, Saudi Arabia", display = true}, ["Tabuk Province, Saudi Arabia"] = {}, ["Hail Province, Saudi Arabia"] = {wp = "Ḥa'il Province"}, ["Ha'il Province, Saudi Arabia"] = {alias_of = "Hail Province, Saudi Arabia", display = true}, ["Ḥa'il Province, Saudi Arabia"] = {alias_of = "Hail Province, Saudi Arabia", display = true}, ["Al-Jouf Province, Saudi Arabia"] = {wp = "Al-Jawf Province"}, ["Al-Jawf Province, Saudi Arabia"] = {alias_of = "Al-Jouf Province, Saudi Arabia", display = true}, ["Najran Province, Saudi Arabia"] = {}, ["Northern Borders Province, Saudi Arabia"] = {}, ["Al-Bahah Province, Saudi Arabia"] = {}, } -- provinces of Saudi Arabia export.saudi_arabia_group = { key_to_placename = make_key_to_placename(", Saudi Arabia$", " Province$"), placename_to_key = make_placename_to_key(", Saudi Arabia", " Province"), default_container = "Saudi Arabia", default_placetype = "province", data = export.saudi_arabia_provinces, } export.south_africa_provinces = { ["Eastern Cape, South Africa"] = {the = true}, ["Free State, South Africa"] = {the = true, wp = "%l (province)"}, ["Gauteng, South Africa"] = {}, ["KwaZulu-Natal, South Africa"] = {}, ["Limpopo, South Africa"] = {}, ["Mpumalanga, South Africa"] = {}, -- per Wikipedia and other sources, `North West` doesn't normally have `the` before it ["North West, South Africa"] = {wp = "%l (South African province)"}, ["Northern Cape, South Africa"] = {the = true}, ["Western Cape, South Africa"] = {the = true}, } -- provinces of South Africa export.south_africa_group = { default_container = "South Africa", default_placetype = "province", default_divs = "municipalities", data = export.south_africa_provinces, } export.south_korea_provinces = { ["North Chungcheong Province, South Korea"] = {}, ["South Chungcheong Province, South Korea"] = {}, ["Gangwon Province, South Korea"] = {wp = "%l, %c"}, ["Gyeonggi Province, South Korea"] = {}, ["North Gyeongsang Province, South Korea"] = {}, ["South Gyeongsang Province, South Korea"] = {}, ["North Jeolla Province, South Korea"] = {}, ["South Jeolla Province, South Korea"] = {}, ["Jeju Province, South Korea"] = {}, } -- provinces of South Korea export.south_korea_group = { key_to_placename = make_key_to_placename(", South Korea$", " Province$"), placename_to_key = make_placename_to_key(", South Korea", " Province"), default_container = "South Korea", default_placetype = "province", data = export.south_korea_provinces, } export.spain_autonomous_communities = { ["Andalusia, Spain"] = {}, ["Aragon, Spain"] = {}, ["Asturias, Spain"] = {}, ["Balearic Islands, Spain"] = {the = true}, ["Basque Country, Spain"] = {the = true, wp = "%l (autonomous community)"}, ["Canary Islands, Spain"] = {the = true}, ["Cantabria, Spain"] = {}, ["Castile and León, Spain"] = {}, ["Castilla-La Mancha, Spain"] = {wp = "Castilla–La Mancha"}, -- with en-dash ["Catalonia, Spain"] = {}, ["Community of Madrid, Spain"] = {the = true}, ["Extremadura, Spain"] = {}, ["Galicia, Spain"] = {wp = "%l (Spain)"}, ["La Rioja, Spain"] = {}, ["Murcia, Spain"] = {wp = "Region of %l"}, ["Navarre, Spain"] = {}, ["Valencia, Spain"] = {wp = "Valencian Community"}, ["Valencian Community, Spain"] = {alias_of = "Valencia, Spain", the = true}, } -- autonomous communities of Spain export.spain_group = { default_container = "Spain", default_placetype = "autonomous community", default_divs = {"municipalities", "comarcas"}, data = export.spain_autonomous_communities, } export.taiwan_counties = { ["Changhua County, Taiwan"] = {}, ["Chiayi County, Taiwan"] = {}, ["Hsinchu County, Taiwan"] = {}, ["Hualien County, Taiwan"] = {}, ["Kinmen County, Taiwan"] = {wp = "Kinmen"}, ["Lienchiang County, Taiwan"] = {wp = "Matsu Islands"}, ["Miaoli County, Taiwan"] = {}, ["Nantou County, Taiwan"] = {}, ["Penghu County, Taiwan"] = {wp = "Penghu"}, ["Pingtung County, Taiwan"] = {}, ["Taitung County, Taiwan"] = {}, ["Yilan County, Taiwan"] = {wp = "%l, %c"}, ["Yunlin County, Taiwan"] = {}, } -- counties of Taiwan export.taiwan_group = { key_to_placename = make_key_to_placename(", Taiwan$", " County$"), placename_to_key = make_placename_to_key(", Taiwan", " County"), default_container = "Taiwan", default_placetype = "county", default_divs = {"districts", "townships"}, data = export.taiwan_counties, } export.thailand_provinces = { -- Bangkok (special administrative area) ["Amnat Charoen Province, Thailand"] = {}, ["Ang Thong Province, Thailand"] = {}, ["Bueng Kan Province, Thailand"] = {}, ["Buriram Province, Thailand"] = {}, ["Chachoengsao Province, Thailand"] = {}, ["Chai Nat Province, Thailand"] = {}, ["Chaiyaphum Province, Thailand"] = {}, ["Chanthaburi Province, Thailand"] = {}, ["Chiang Mai Province, Thailand"] = {}, ["Chiang Rai Province, Thailand"] = {}, ["Chonburi Province, Thailand"] = {}, ["Chumphon Province, Thailand"] = {}, ["Kalasin Province, Thailand"] = {}, ["Kamphaeng Phet Province, Thailand"] = {}, ["Kanchanaburi Province, Thailand"] = {}, ["Khon Kaen Province, Thailand"] = {}, ["Krabi Province, Thailand"] = {}, ["Lampang Province, Thailand"] = {}, ["Lamphun Province, Thailand"] = {}, ["Loei Province, Thailand"] = {}, ["Lopburi Province, Thailand"] = {}, ["Mae Hong Son Province, Thailand"] = {}, ["Maha Sarakham Province, Thailand"] = {}, ["Mukdahan Province, Thailand"] = {}, ["Nakhon Nayok Province, Thailand"] = {}, ["Nakhon Pathom Province, Thailand"] = {}, ["Nakhon Phanom Province, Thailand"] = {}, ["Nakhon Ratchasima Province, Thailand"] = {}, ["Nakhon Sawon Province, Thailand"] = {}, ["Nakhon Si Thammarat Province, Thailand"] = {}, ["Nan Province, Thailand"] = {}, ["Narathiwat Province, Thailand"] = {}, ["Nong Bua Lamphu Province, Thailand"] = {}, ["Nong Khai Province, Thailand"] = {}, ["Nonthaburi Province, Thailand"] = {}, ["Pathum Thani Province, Thailand"] = {}, ["Pattani Province, Thailand"] = {}, ["Phang Nga Province, Thailand"] = {}, ["Phatthalung Province, Thailand"] = {}, ["Phayao Province, Thailand"] = {}, ["Phetchabun Province, Thailand"] = {}, ["Phetchaburi Province, Thailand"] = {}, ["Phichit Province, Thailand"] = {}, ["Phitsanulok Province, Thailand"] = {}, ["Phra Nakhon Si Ayutthaya Province, Thailand"] = {}, ["Phrae Province, Thailand"] = {}, ["Phuket Province, Thailand"] = {}, ["Prachinburi Province, Thailand"] = {}, ["Prachuap Khiri Khan Province, Thailand"] = {}, ["Ranong Province, Thailand"] = {}, ["Ratchaburi Province, Thailand"] = {}, ["Rayong Province, Thailand"] = {}, ["Roi Et Province, Thailand"] = {}, ["Sa Kaeo Province, Thailand"] = {}, ["Sakon Nakhon Province, Thailand"] = {}, ["Samut Prakan Province, Thailand"] = {}, ["Samut Sakhon Province, Thailand"] = {}, ["Samut Songkhram Province, Thailand"] = {}, ["Saraburi Province, Thailand"] = {}, ["Satun Province, Thailand"] = {}, ["Sing Buri Province, Thailand"] = {}, ["Sisaket Province, Thailand"] = {}, ["Songkhla Province, Thailand"] = {}, ["Sukhothai Province, Thailand"] = {}, ["Suphan Buri Province, Thailand"] = {}, ["Surat Thani Province, Thailand"] = {}, ["Surin Province, Thailand"] = {}, ["Tak Province, Thailand"] = {}, ["Trang Province, Thailand"] = {}, ["Trat Province, Thailand"] = {}, ["Ubon Ratchathani Province, Thailand"] = {}, ["Udon Thani Province, Thailand"] = {}, ["Uthai Thani Province, Thailand"] = {}, ["Uttaradit Province, Thailand"] = {}, ["Yala Province, Thailand"] = {}, ["Yasothon Province, Thailand"] = {}, } -- provinces of Thailand export.thailand_group = { key_to_placename = make_key_to_placename(", Thailand$", " Province$"), placename_to_key = make_placename_to_key(", Thailand", " Province"), default_container = "Thailand", default_placetype = "province", default_divs = "districts", -- For obscure reasons, provinces of Iran, Laos, Thailand and Vietnam use lowercase 'province' default_wp = "%e province", data = export.thailand_provinces, } export.turkey_provinces = { ["Adana Province, Turkey"] = {}, -- code 01 ["Adıyaman Province, Turkey"] = {}, -- code 02 ["Afyonkarahisar Province, Turkey"] = {}, -- code 03 ["Ağrı Province, Turkey"] = {}, -- code 04 ["Amasya Province, Turkey"] = {}, -- code 05 ["Ankara Province, Turkey"] = {}, -- code 06 ["Antalya Province, Turkey"] = {}, -- code 07 ["Artvin Province, Turkey"] = {}, -- code 08 ["Aydın Province, Turkey"] = {}, -- code 09 ["Balıkesir Province, Turkey"] = {}, -- code 10 ["Bilecik Province, Turkey"] = {}, -- code 11 ["Bingöl Province, Turkey"] = {}, -- code 12 ["Bitlis Province, Turkey"] = {}, -- code 13 ["Bolu Province, Turkey"] = {}, -- code 14 ["Burdur Province, Turkey"] = {}, -- code 15 ["Bursa Province, Turkey"] = {}, -- code 16 ["Çanakkale Province, Turkey"] = {}, -- code 17 ["Çankırı Province, Turkey"] = {}, -- code 18 ["Çorum Province, Turkey"] = {}, -- code 19 ["Denizli Province, Turkey"] = {}, -- code 20 ["Diyarbakır Province, Turkey"] = {}, -- code 21 ["Edirne Province, Turkey"] = {}, -- code 22 ["Elazığ Province, Turkey"] = {}, -- code 23 ["Elâzığ Province, Turkey"] = {alias_of = "Elazığ Province, Turkey", display = true}, ["Erzincan Province, Turkey"] = {}, -- code 24 ["Erzurum Province, Turkey"] = {}, -- code 25 ["Eskişehir Province, Turkey"] = {}, -- code 26 ["Gaziantep Province, Turkey"] = {}, -- code 27 ["Giresun Province, Turkey"] = {}, -- code 28 ["Gümüşhane Province, Turkey"] = {}, -- code 29 ["Hakkâri Province, Turkey"] = {}, -- code 30 ["Hakkari Province, Turkey"] = {alias_of = "Hakkâri Province, Turkey", display = true}, ["Hatay Province, Turkey"] = {}, -- code 31 ["Isparta Province, Turkey"] = {}, -- code 32 ["Mersin Province, Turkey"] = {}, -- code 33 -- ["Istanbul Province, Turkey"] = {}, -- code 34; this is coextensive with the city itself ["İzmir Province, Turkey"] = {}, -- code 35 ["Izmir Province, Turkey"] = {alias_of = "İzmir Province, Turkey", display = true}, ["Kars Province, Turkey"] = {}, -- code 36 ["Kastamonu Province, Turkey"] = {}, -- code 37 ["Kayseri Province, Turkey"] = {}, -- code 38 ["Kırklareli Province, Turkey"] = {}, -- code 39 ["Kırşehir Province, Turkey"] = {}, -- code 40 ["Kocaeli Province, Turkey"] = {}, -- code 41 ["Konya Province, Turkey"] = {}, -- code 42 ["Kütahya Province, Turkey"] = {}, -- code 43 ["Malatya Province, Turkey"] = {}, -- code 44 ["Manisa Province, Turkey"] = {}, -- code 45 ["Kahramanmaraş Province, Turkey"] = {}, -- code 46 ["Mardin Province, Turkey"] = {}, -- code 47 ["Muğla Province, Turkey"] = {}, -- code 48 ["Muş Province, Turkey"] = {}, -- code 49 ["Nevşehir Province, Turkey"] = {}, -- code 50 ["Niğde Province, Turkey"] = {}, -- code 51 ["Ordu Province, Turkey"] = {}, -- code 52 ["Rize Province, Turkey"] = {}, -- code 53 ["Sakarya Province, Turkey"] = {}, -- code 54 ["Samsun Province, Turkey"] = {}, -- code 55 ["Siirt Province, Turkey"] = {}, -- code 56 ["Sinop Province, Turkey"] = {}, -- code 57 ["Sivas Province, Turkey"] = {}, -- code 58 ["Tekirdağ Province, Turkey"] = {}, -- code 59 ["Tokat Province, Turkey"] = {}, -- code 60 ["Trabzon Province, Turkey"] = {}, -- code 61 ["Tunceli Province, Turkey"] = {}, -- code 62 ["Şanlıurfa Province, Turkey"] = {}, -- code 63 ["Uşak Province, Turkey"] = {}, -- code 64 ["Van Province, Turkey"] = {}, -- code 65 ["Yozgat Province, Turkey"] = {}, -- code 66 ["Zonguldak Province, Turkey"] = {}, -- code 67 ["Aksaray Province, Turkey"] = {}, -- code 68 ["Bayburt Province, Turkey"] = {}, -- code 69 ["Karaman Province, Turkey"] = {}, -- code 70 ["Kırıkkale Province, Turkey"] = {}, -- code 71 ["Batman Province, Turkey"] = {}, -- code 72 ["Şırnak Province, Turkey"] = {}, -- code 73 ["Bartın Province, Turkey"] = {}, -- code 74 ["Ardahan Province, Turkey"] = {}, -- code 75 ["Iğdır Province, Turkey"] = {}, -- code 76 ["Yalova Province, Turkey"] = {}, -- code 77 ["Karabük Province, Turkey"] = {}, -- code 78 ["Kilis Province, Turkey"] = {}, -- code 79 ["Osmaniye Province, Turkey"] = {}, -- code 80 ["Düzce Province, Turkey"] = {}, -- code 81 } -- provinces of Turkey export.turkey_group = { key_to_placename = make_key_to_placename(", Turkey$", " Province$"), placename_to_key = make_placename_to_key(", Turkey", " Province"), default_container = "Turkey", default_placetype = "province", default_divs = "districts", data = export.turkey_provinces, } export.ukraine_oblasts = { ["Cherkasy Oblast, Ukraine"] = {}, -- capital [[Cherkasy]], license plate prefix CA, IA ["Chernihiv Oblast, Ukraine"] = {}, -- capital [[Chernihiv]], license plate prefix CB, IB ["Chernivtsi Oblast, Ukraine"] = {}, -- capital [[Chernivtsi]], license plate prefix CE, IE -- apparently will be renamed to 'Dnipro Oblast' ["Dnipropetrovsk Oblast, Ukraine"] = {}, -- capital [[Dnipro]], license plate prefix AE, KE ["Donetsk Oblast, Ukraine"] = {}, -- capital ''[[Donetsk]] ([[Kramatorsk]])'', license plate prefix AH, KH ["Ivano-Frankivsk Oblast, Ukraine"] = {}, -- capital [[Ivano-Frankivsk]], license plate prefix AT, KT ["Kharkiv Oblast, Ukraine"] = {}, -- capital [[Kharkiv]], license plate prefix AX, KX ["Kherson Oblast, Ukraine"] = {}, -- capital ''[[Kherson]]'', license plate prefix ''BT, HT'' ["Khmelnytskyi Oblast, Ukraine"] = {}, -- capital [[Khmelnytskyi]], license plate prefix BX, HX -- apparently will be renamed to 'Kropyvnytskyi Oblast' ["Kirovohrad Oblast, Ukraine"] = {}, -- capital [[Kropyvnytskyi]], license plate prefix BA, HA ["Kyiv Oblast, Ukraine"] = {}, -- capital [[Kyiv]], license plate prefix AI, KI ["Kiev Oblast, Ukraine"] = {alias_of = "Kyiv Oblast, Ukraine", display = true}, ["Luhansk Oblast, Ukraine"] = {}, -- capital ''[[Luhansk]] ([[Sievierodonetsk]])'', license plate prefix BB, HB ["Lviv Oblast, Ukraine"] = {}, -- capital [[Lviv]], license plate prefix BC, HC ["Mykolaiv Oblast, Ukraine"] = {}, -- capital [[Mykolaiv]], license plate prefix BE, HE ["Odesa Oblast, Ukraine"] = {}, -- capital [[Odesa]], license plate prefix BH, HH ["Odessa Oblast, Ukraine"] = {alias_of = "Odesa Oblast, Ukraine", display = true}, ["Poltava Oblast, Ukraine"] = {}, -- capital [[Poltava]], license plate prefix BI, HI ["Rivne Oblast, Ukraine"] = {}, -- capital [[Rivne]], license plate prefix BK, HK ["Sumy Oblast, Ukraine"] = {}, -- capital [[Sumy]], license plate prefix BM, HM ["Ternopil Oblast, Ukraine"] = {}, -- capital [[Ternopil]], license plate prefix BO, HO ["Vinnytsia Oblast, Ukraine"] = {}, -- capital [[Vinnytsia]], license plate prefix AB, KB ["Volyn Oblast, Ukraine"] = {}, -- capital [[Lutsk]], license plate prefix AC, KC ["Zakarpattia Oblast, Ukraine"] = {}, -- capital [[Uzhhorod]], license plate prefix AO, KO ["Zaporizhzhia Oblast, Ukraine"] = {}, -- capital ''[[Zaporizhzhia]]'', license plate prefix AP, KP ["Zaporizhia Oblast, Ukraine"] = {alias_of = "Zaporizhzhia Oblast, Ukraine", display = true}, ["Zhytomyr Oblast, Ukraine"] = {}, -- capital [[Zhytomyr]], license plate prefix AM, KM } -- oblasts of Ukraine export.ukraine_group = { key_to_placename = make_key_to_placename(", Ukraine$", " Oblast$"), placename_to_key = make_placename_to_key(", Ukraine", " Oblast"), default_container = "Ukraine", default_placetype = "oblast", default_divs = {"raions", "hromadas"}, data = export.ukraine_oblasts, } export.united_kingdom_constituent_countries = { ["England"] = {divs = { "counties", "districts", {type = "local government districts", cat_as = "districts"}, { type = "local government districts with borough status", cat_as = {"districts", "boroughs"}, }, {type = "boroughs", cat_as = {"districts", "boroughs"}}, {type = "civil parishes", container_parent_type = false}, }}, ["Northern Ireland"] = { placetype = {"constituent country", "province", "country"}, divs = {"counties", "districts"}, }, ["Scotland"] = {divs = { {type = "council areas", container_parent_type = false}, "districts", }}, ["Wales"] = {divs = { "counties", {type = "county boroughs", container_parent_type = false}, {type = "communities", container_parent_type = false}, {type = "Welsh communities", cat_as = {{type = "communities", container_parent_type = false}}}, }}, } -- constituent countries and provinces of the United Kingdom export.united_kingdom_group = { placename_to_key = false, default_container = "United Kingdom", default_placetype = {"constituent country", "country"}, addl_divs = { "traditional counties", {type = "historical counties", cat_as = "traditional counties"}, }, -- Don't create categories like 'Category:en:Towns in the United Kingdom' -- or 'Category:en:Places in the United Kingdom'. default_no_container_cat = true, data = export.united_kingdom_constituent_countries, } export.england_counties = { -- NOTE: We used to have various other "no longer" counties commented out, which seems to refer to counties that -- existed officially at some point between 1889 and 1974, which I have removed. I have only kept the three -- ceremonial counties that existed from 1974 (when ceremonial counties were created) to 1996, as well as those -- still considered "historic counties" per [[w:Historic counties of England]]. -- ["Avon, England"] = {wp = "%l (county)"}, -- no longer (1974 to 1996) ["Bedfordshire, England"] = {}, ["Berkshire, England"] = {}, -- ["Brighton and Hove, England"] = {}, -- city -- ["Bristol, England"] = {}, -- city ["Buckinghamshire, England"] = {}, ["Cambridgeshire, England"] = {}, ["Cheshire, England"] = {}, -- ["Cleveland, England"] = {wp = "%l (county)"}, -- no longer (1974 to 1996) ["Cornwall, England"] = {}, -- ["Cumberland, England"] = {}, -- no longer (historic county) ["Cumbria, England"] = {}, ["Derbyshire, England"] = {}, ["Devon, England"] = {}, ["Dorset, England"] = {}, ["County Durham, England"] = {}, ["East Sussex, England"] = {}, ["Essex, England"] = {}, ["Gloucestershire, England"] = {}, ["Greater London, England"] = {}, ["Greater Manchester, England"] = {}, ["Hampshire, England"] = {}, ["Herefordshire, England"] = {}, ["Hertfordshire, England"] = {}, -- ["Humberside, England"] = {}, -- no longer (1974 to 1996) -- ["Huntingdonshire, England"] = {}, -- no longer (historic county) ["Isle of Wight, England"] = {the = true}, ["Kent, England"] = {}, ["Lancashire, England"] = {}, ["Leicestershire, England"] = {}, ["Lincolnshire, England"] = {}, ["Merseyside, England"] = {}, -- ["Middlesex, England"] = {}, -- no longer (historic county) ["Norfolk, England"] = {}, ["Northamptonshire, England"] = {}, ["Northumberland, England"] = {}, ["North Yorkshire, England"] = {}, ["Nottinghamshire, England"] = {}, ["Oxfordshire, England"] = {}, ["Rutland, England"] = {}, ["Shropshire, England"] = {}, ["Somerset, England"] = {}, ["South Humberside, England"] = {}, ["South Yorkshire, England"] = {}, ["Staffordshire, England"] = {}, ["Suffolk, England"] = {}, ["Surrey, England"] = {}, -- ["Sussex, England"] = {}, -- no longer (historic county) ["Tyne and Wear, England"] = {}, ["Warwickshire, England"] = {}, ["West Midlands, England"] = {the = true, wp = "%l (county)"}, -- ["Westmorland, England"] = {}, -- no longer (historic county) ["West Sussex, England"] = {}, ["West Yorkshire, England"] = {}, ["Wiltshire, England"] = {}, ["Worcestershire, England"] = {}, -- ["Yorkshire, England"] = {}, -- no longer (historic county) ["East Riding of Yorkshire, England"] = {the = true}, } -- counties of England export.england_group = { default_container = {key = "England", placetype = "constituent country"}, default_placetype = "county", default_divs = { "districts", {type = "local government districts", cat_as = "districts"}, { type = "local government districts with borough status", cat_as = {"districts", "boroughs"}, }, {type = "boroughs", cat_as = {"districts", "boroughs"}}, "civil parishes", }, data = export.england_counties, } export.northern_ireland_counties = { ["County Antrim, Northern Ireland"] = {}, ["County Armagh, Northern Ireland"] = {}, ["City of Belfast, Northern Ireland"] = {the = true, is_city = true, wp = "Belfast"}, ["County Down, Northern Ireland"] = {}, ["County Fermanagh, Northern Ireland"] = {}, ["County Londonderry, Northern Ireland"] = {}, ["City of Derry, Northern Ireland"] = {the = true, is_city = true, wp = "Derry"}, ["County Tyrone, Northern Ireland"] = {}, } -- counties of Northern Ireland export.northern_ireland_group = { key_to_placename = make_irish_type_key_to_placename(", Northern Ireland$"), placename_to_key = make_irish_type_placename_to_key(", Northern Ireland"), default_container = {key = "Northern Ireland", placetype = "constituent country"}, default_placetype = "county", data = export.northern_ireland_counties, } export.scotland_council_areas = { ["Aberdeenshire, Scotland"] = {}, ["Angus, Scotland"] = {wp = "%l, %c"}, ["Argyll and Bute, Scotland"] = {}, ["City of Aberdeen, Scotland"] = {the = true, wp = "Aberdeen"}, ["Aberdeen"] = {alias_of = "City of Aberdeen, Scotland"}, ["Aberdeen City"] = {alias_of = "City of Aberdeen, Scotland"}, ["City of Dundee, Scotland"] = {the = true, wp = "Dundee"}, ["Dundee"] = {alias_of = "City of Dundee, Scotland"}, ["Dundee City"] = {alias_of = "City of Dundee, Scotland"}, ["City of Edinburgh, Scotland"] = {the = true, wp = "%l council area"}, ["Edinburgh"] = {alias_of = "City of Edinburgh, Scotland"}, ["City of Glasgow, Scotland"] = {the = true, wp = "Glasgow"}, ["Glasgow"] = {alias_of = "City of Glasgow, Scotland"}, ["Clackmannanshire, Scotland"] = {}, ["Dumfries and Galloway, Scotland"] = {}, ["East Ayrshire, Scotland"] = {}, ["East Dunbartonshire, Scotland"] = {}, ["East Lothian, Scotland"] = {}, ["East Renfrewshire, Scotland"] = {}, ["Falkirk, Scotland"] = {wp = "%l council area"}, ["Fife, Scotland"] = {}, ["Highland, Scotland"] = {wp = "%l council area"}, ["Inverclyde, Scotland"] = {}, ["Midlothian, Scotland"] = {}, ["Moray, Scotland"] = {}, ["North Ayrshire, Scotland"] = {}, ["North Lanarkshire, Scotland"] = {}, ["Orkney Islands, Scotland"] = {the = true}, ["Perth and Kinross, Scotland"] = {}, ["Renfrewshire, Scotland"] = {}, ["Scottish Borders, Scotland"] = {the = true}, ["Shetland Islands, Scotland"] = {the = true}, ["South Ayrshire, Scotland"] = {}, ["South Lanarkshire, Scotland"] = {}, ["Stirling, Scotland"] = {wp = "%l council area"}, ["West Dunbartonshire, Scotland"] = {}, ["West Lothian, Scotland"] = {}, ["Western Isles, Scotland"] = {the = true, wp = "Outer Hebrides"}, ["Na h-Eileanan Siar, Scotland"] = {alias_of = "Western Isles, Scotland"}, } -- council areas of Scotland export.scotland_group = { default_container = {key = "Scotland", placetype = "constituent country"}, default_placetype = "council area", data = export.scotland_council_areas, } export.wales_principal_areas = { ["Blaenau Gwent, Wales"] = {}, ["Bridgend, Wales"] = {wp = "%l County Borough"}, ["Caerphilly, Wales"] = {wp = "%l County Borough"}, -- ["Cardiff, Wales"] = {placetype = "city"}, ["Carmarthenshire, Wales"] = {placetype = "county"}, ["Ceredigion, Wales"] = {placetype = "county"}, ["Conwy, Wales"] = {wp = "%l County Borough"}, ["Denbighshire, Wales"] = {placetype = "county"}, ["Flintshire, Wales"] = {placetype = "county"}, ["Gwynedd, Wales"] = {placetype = "county"}, ["Isle of Anglesey, Wales"] = {the = true, placetype = "county"}, ["Anglesey, Wales"] = {alias_of = "Isle of Anglesey, Wales"}, -- differs in "the" ["Merthyr Tydfil, Wales"] = {wp = "%l County Borough"}, ["Monmouthshire, Wales"] = {placetype = "county"}, ["Neath Port Talbot, Wales"] = {}, -- ["Newport, Wales"] = {placetype = "city", wp = "%l, %c"}, ["Pembrokeshire, Wales"] = {placetype = "county"}, ["Powys, Wales"] = {placetype = "county"}, ["Rhondda Cynon Taf, Wales"] = {}, -- ["Swansea, Wales"] = {placetype = "city"}, ["Torfaen, Wales"] = {}, ["Vale of Glamorgan, Wales"] = {the = true}, ["Wrexham, Wales"] = {wp = "%l County Borough"}, } -- principal areas (cities, counties and county boroughs) of Wales export.wales_group = { default_container = {key = "Wales", placetype = "constituent country"}, default_placetype = "county borough", data = export.wales_principal_areas, } export.united_states_states = { ["Alabama, USA"] = {}, ["Alaska, USA"] = {divs = { {type = "boroughs", container_parent_type = "counties"}, {type = "borough seats", container_parent_type = "county seats"}, }}, ["Arizona, USA"] = {}, ["Arkansas, USA"] = {}, ["California, USA"] = {}, ["Colorado, USA"] = {divs = {"counties", "county seats", "municipalities"}}, ["Connecticut, USA"] = {divs = {"counties", "county seats", "municipalities"}}, ["Delaware, USA"] = {}, ["Florida, USA"] = {}, ["Georgia, USA"] = {wp = "%l (U.S. state)"}, ["Hawaii, USA"] = {addl_parents = {"Polynesia"}}, ["Idaho, USA"] = {}, ["Illinois, USA"] = {}, ["Indiana, USA"] = {}, ["Iowa, USA"] = {}, ["Kansas, USA"] = {}, ["Kentucky, USA"] = {}, ["Louisiana, USA"] = {divs = { {type = "parishes", container_parent_type = "counties"}, {type = "parish seats", container_parent_type = "county seats"}, }}, ["Maine, USA"] = {}, ["Maryland, USA"] = {}, ["Massachusetts, USA"] = {}, ["Michigan, USA"] = {}, ["Minnesota, USA"] = {}, ["Mississippi, USA"] = {}, ["Missouri, USA"] = {}, ["Montana, USA"] = {}, ["Nebraska, USA"] = {}, ["Nevada, USA"] = {}, ["New Hampshire, USA"] = {}, ["New Jersey, USA"] = {divs = { "counties", "county seats", {type = "boroughs", prep = "in"}, }}, ["New Mexico, USA"] = {}, ["New York, USA"] = {wp = "%l (state)"}, ["North Carolina, USA"] = {}, ["North Dakota, USA"] = {}, ["Ohio, USA"] = {}, ["Oklahoma, USA"] = {}, ["Oregon, USA"] = {}, ["Pennsylvania, USA"] = {divs = { "counties", "county seats", {type = "boroughs", prep = "in"}, }}, ["Rhode Island, USA"] = {}, ["South Carolina, USA"] = {}, ["South Dakota, USA"] = {}, ["Tennessee, USA"] = {}, ["Texas, USA"] = {}, ["Utah, USA"] = {}, ["Vermont, USA"] = {}, ["Virginia, USA"] = {}, ["Washington, USA"] = {wp = "%l (state)"}, ["West Virginia, USA"] = {}, ["Wisconsin, USA"] = {}, ["Wyoming, USA"] = {}, } -- states of the United States export.united_states_group = { placename_to_key = make_placename_to_key(", USA"), default_container = "United States", default_placetype = "state", default_divs = {"counties", "county seats"}, addl_divs = { {type = "census-designated places", prep = "in"}, {type = "unincorporated communities", prep = "in"}, }, data = export.united_states_states, } export.vietnam_provinces = { -- [[Northeast (Vietnam)|Northeast]] region ["Bắc Giang Province, Vietnam"] = {}, -- capital [[Bắc Giang]] ["Bắc Kạn Province, Vietnam"] = {}, -- capital [[Bắc Kạn]] ["Cao Bằng Province, Vietnam"] = {}, -- capital [[Cao Bằng]] ["Hà Giang Province, Vietnam"] = {}, -- capital [[Hà Giang]] ["Lạng Sơn Province, Vietnam"] = {}, -- capital [[Lạng Sơn]] ["Phú Thọ Province, Vietnam"] = {}, -- capital [[Việt Trì]] ["Quảng Ninh Province, Vietnam"] = {}, -- capital [[Hạ Long]] ["Thái Nguyên Province, Vietnam"] = {}, -- capital [[Thái Nguyên]] ["Tuyên Quang Province, Vietnam"] = {}, -- capital [[Tuyên Quang]] -- [[Northwest (Vietnam)|Northwest]] region ["Lào Cai Province, Vietnam"] = {}, -- capital [[Lào Cai]] ["Yên Bái Province, Vietnam"] = {}, -- capital [[Yên Bái]] ["Điện Biên Province, Vietnam"] = {}, -- capital [[Điện Biên Phủ]] ["Hoà Bình Province, Vietnam"] = {}, -- capital [[Hoà Bình City|Hoà Bình]] ["Hòa Bình Province, Vietnam"] = {alias_of = "Hoà Bình Province, Vietnam", display = true}, ["Lai Châu Province, Vietnam"] = {}, -- capital [[Lai Châu]] ["Sơn La Province, Vietnam"] = {}, -- capital [[Sơn La]] -- [[Red River Delta]] region ["Bắc Ninh Province, Vietnam"] = {}, -- capital [[Bắc Ninh]] ["Hà Nam Province, Vietnam"] = {}, -- capital [[Phủ Lý]] ["Hải Dương Province, Vietnam"] = {}, -- capital [[Hải Dương]] ["Hưng Yên Province, Vietnam"] = {}, -- capital [[Hưng Yên]] ["Nam Định Province, Vietnam"] = {}, -- capital [[Nam Định]] ["Ninh Bình Province, Vietnam"] = {}, -- capital [[Ninh Bình|Hoa Lư]] ["Thái Bình Province, Vietnam"] = {}, -- capital [[Thái Bình]] ["Vĩnh Phúc Province, Vietnam"] = {}, -- capital [[Vĩnh Yên]] -- ["Hanoi"] = {placetype = {"municipality", "city"}}, -- capital [[Hoàn Kiếm district]] -- ["Haiphong"] = {placetype = {"municipality", "city"}}, -- capital [[Hồng Bàng district]] -- [[North Central Coast]] region ["Hà Tĩnh Province, Vietnam"] = {}, -- capital [[Hà Tĩnh]] ["Nghệ An Province, Vietnam"] = {}, -- capital [[Vinh]] ["Quảng Bình Province, Vietnam"] = {}, -- capital [[Đồng Hới]] ["Quảng Trị Province, Vietnam"] = {}, -- capital [[Đông Hà]] ["Thanh Hoá Province, Vietnam"] = {}, -- capital [[Thanh Hoá]] ["Thanh Hóa Province, Vietnam"] = {alias_of = "Thanh Hoá Province, Vietnam", display = true}, -- ["Hue"] = {placetype = {"municipality", "city"}, wp = "Huế"}, -- capital [[Thuận Hoá district]] -- [[Central Highlands (Vietnam)|Central Highlands]] region ["Đắk Lắk Province, Vietnam"] = {}, -- capital [[Buôn Ma Thuột]] ["Đăk Nông Province, Vietnam"] = {}, -- capital [[Gia Nghĩa]] ["Gia Lai Province, Vietnam"] = {}, -- capital [[Pleiku]] ["Kon Tum Province, Vietnam"] = {}, -- capital [[Kon Tum]] ["Lâm Đồng Province, Vietnam"] = {}, -- capital [[Đà Lạt]] -- [[South Central Coast]] region ["Bình Định Province, Vietnam"] = {}, -- capital [[Quy Nhon]] ["Bình Thuận Province, Vietnam"] = {}, -- capital [[Phan Thiết]] ["Khánh Hoà Province, Vietnam"] = {}, -- capital [[Nha Trang]] ["Khánh Hòa Province, Vietnam"] = {alias_of = "Khánh Hoà Province, Vietnam", display = true}, ["Ninh Thuận Province, Vietnam"] = {}, -- capital [[Phan Rang–Tháp Chàm]] ["Phú Yên Province, Vietnam"] = {}, -- capital [[Tuy Hoà]] ["Quảng Nam Province, Vietnam"] = {}, -- capital [[Tam Kỳ]] ["Quảng Ngãi Province, Vietnam"] = {}, -- capital [[Quảng Ngãi]] -- ["Da Nang"] = {placetype = {"municipality", "city"}}, -- capital [[Hải Châu district]] -- [[Southeast (Vietnam)|Southeast]] region ["Bà Rịa–Vũng Tàu Province, Vietnam"] = {}, -- capital [[Bà Rịa]] ["Bình Dương Province, Vietnam"] = {}, -- capital [[Thủ Dầu Một]] ["Bình Phước Province, Vietnam"] = {}, -- capital [[Đồng Xoài]] ["Đồng Nai Province, Vietnam"] = {}, -- capital [[Biên Hoà]] ["Tây Ninh Province, Vietnam"] = {}, -- capital [[Tây Ninh]] -- ["Ho Chi Minh City"] = {placetype = {"municipality", "city"}}, -- capital [[District 1, Ho Chi Minh City|'''District 1''']] -- [[Mekong Delta]] region ["An Giang Province, Vietnam"] = {}, -- capital [[Long Xuyên]] ["Bạc Liêu Province, Vietnam"] = {}, -- capital [[Bạc Liêu]] ["Bến Tre Province, Vietnam"] = {}, -- capital [[Bến Tre]] ["Cà Mau Province, Vietnam"] = {}, -- capital [[Cà Mau]] ["Đồng Tháp Province, Vietnam"] = {}, -- capital [[Cao Lãnh City|Cao Lãnh]] ["Hậu Giang Province, Vietnam"] = {}, -- capital [[Vị Thanh]] ["Kiên Giang Province, Vietnam"] = {}, -- capital [[Rạch Giá]] ["Long An Province, Vietnam"] = {}, -- capital [[Tân An]] ["Sóc Trăng Province, Vietnam"] = {}, -- capital [[Sóc Trăng]] ["Tiền Giang Province, Vietnam"] = {}, -- capital [[Mỹ Tho]] ["Trà Vinh Province, Vietnam"] = {}, -- capital [[Trà Vinh]] ["Vĩnh Long Province, Vietnam"] = {}, -- capital [[Vĩnh Long]] -- ["Can Tho"] = {placetype = {"municipality", "city"}, wp = "Cần Thơ"}, -- capital [[Ninh Kiều district]] } -- provinces of Vietnam export.vietnam_group = { key_to_placename = make_key_to_placename(", Vietnam$", " Province$"), placename_to_key = make_placename_to_key(", Vietnam", ""), default_container = "Vietnam", default_placetype = "mga lalawigan", -- There may not be enough districts to subcategorize like this. -- default_divs = "districts", -- For obscure reasons, provinces of Iran, Laos, Thailand and Vietnam use lowercase 'province' default_wp = "%e", data = export.vietnam_provinces, } ----------------------------------------------------------------------------------- -- City data -- ----------------------------------------------------------------------------------- export.australia_cities = { ["Adelaide"] = {container = "South Australia"}, -- 1,450,000 (Agglomeration) ["Brisbane"] = {container = "Queensland"}, -- 3,450,000 (Conglomeration; including the Gold Coast [750,997 2024 estiamte]) ["Canberra"] = {container = {key = "Australian Capital Territory, Australia", placetype = "territory"}}, -- 510,641 (2024 estimate) ["Melbourne"] = {container = "Victoria"}, -- 5,200,000 (Agglomeration) ["Newcastle, New South Wales"] = {container = "New South Wales", wp = "%l, %c"}, -- 534,033 (2024 estimate) ["Newcastle"] = {alias_of = "Newcastle, New South Wales"}, ["Perth"] = {container = "Western Australia"}, -- 2,350,000 (Agglomeration) ["Sydney"] = {container = "New South Wales"}, -- 5,100,000 (Agglomeration) } export.australia_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Australia", "state"), default_placetype = "city", data = export.australia_cities, } export.brazil_cities = { -- Figures from citypopulation.de; retrieved 2025-04-27; reference date 2025-01-01. ["São Paulo"] = {container = "São Paulo"}, -- 22,600,000 (Consolidated Urban Area; including Guarulhos) ["Sao Paulo"] = {alias_of = "São Paulo", display = true}, ["Rio de Janeiro"] = {container = "Rio de Janeiro"}, -- 13,600,000 (Consolidated Urban Area) ["Belo Horizonte"] = {container = "Minas Gerais"}, -- 5,300,000 ["Recife"] = {container = "Pernambuco"}, -- 4,100,000 ["Porto Alegre"] = {container = "Rio Grande do Sul"}, -- 3,950,000 (Consolidated Urban Area) ["Brasília"] = {container = "Distrito Federal"}, -- 3,850,000 ["Brasilia"] = {alias_of = "Brasília", display = true}, ["Fortaleza"] = {container = "Ceará"}, -- 3,825,000 ["Salvador"] = {container = "Bahia", wp = "%l, %c", commonscat = "%l (%c)"}, -- 3,400,000 ["Curitiba"] = {container = "Paraná"}, -- 3,375,000 ["Campinas"] = {container = "São Paulo"}, -- 3,250,000 ["Goiânia"] = {container = "Goiás"}, -- 2,525,000 ["Goiania"] = {alias_of = "Goiânia", display = true}, ["Manaus"] = {container = "Amazonas"}, -- 2,275,000 ["Belém"] = {container = "Pará"}, -- 2,200,000 ["Belem"] = {alias_of = "Belém", display = true}, ["Vitória"] = {container = "Espírito Santo", wp = "%l, %c"}, -- 1,870,000 ["Vitoria"] = {alias_of = "Vitória", display = true}, ["Santos"] = {container = "São Paulo", wp = "%l, %c"}, -- 1,760,000 ["São Luís"] = {container = "Maranhão", wp = "%l, %c"}, -- 1,530,000 ["Sao Luis"] = {alias_of = "São Luís", display = true}, ["Natal"] = {container = "Rio Grande do Norte", wp = "%l, %c"}, -- 1,360,000 ["Florianópolis"] = {container = "Santa Catarina"}, -- 1,260,000 ["Florianopolis"] = {alias_of = "Florianópolis", display = true}, ["Maceió"] = {container = "Alagoas"}, -- 1,220,000 ["Maceio"] = {alias_of = "Maceió", display = true}, ["João Pessoa"] = {container = "Paraíba", wp = "%l, %c"}, -- 1,210,000 ["Joao Pessoa"] = {alias_of = "João Pessoa", display = true}, ["São José dos Campos"] = {container = "São Paulo"}, -- 1,090,000 ["Sao Jose dos Campos"] = {alias_of = "São José dos Campos", display = true}, ["Londrina"] = {container = "Paraná"}, -- 1,050,000 ["Teresina"] = {container = "Piauí"}, -- 1,040,000 } export.brazil_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Brazil", "state"), default_placetype = "city", data = export.brazil_cities, } export.canada_cities = { -- Figures from citypopulation.de; retrieved 2025-04-27; reference date 2025-01-01. ["Toronto"] = {container = "Ontario"}, -- 7,850,000 (Consolidated Urban Area; including Hamilton) ["Montreal"] = {container = "Quebec"}, -- 4,500,000 (Consolidated Urban Area) ["Vancouver"] = {container = "British Columbia"}, -- 3,175,000 (Consolidated Urban Area) ["Calgary"] = {container = "Alberta"}, -- 1,510,000 (Consolidated Urban Area) ["Edmonton"] = {container = "Alberta"}, -- 1,460,000 (Consolidated Urban Area) ["Ottawa"] = {container = "Ontario"}, -- 1,390,000 (Consolidated Urban Area) ["Quebec City"] = {container = "Quebec"}, -- 839,311 metro per Wikipedia (2021 census) ["Winnipeg"] = {container = "Manitoba"}, -- 834,678 metro per Wikipedia (2021 census) ["Hamilton"] = {container = "Ontario", wp = "%l, %c"}, -- 785,184 metro per Wikipedia (2021 census) ["Kitchener"] = {container = "Ontario", wp = "%l, %c"}, -- 575,847 metro per Wikipedia (2021 census) } export.canada_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Canada", "province"), default_placetype = "city", data = export.canada_cities, } export.france_cities = { -- Figures from citypopulation.de unless otherwise indicated; retrieved 2025-04-26; reference date 2025-01-01. ["Paris"] = {container = "Île-de-France"}, -- 11,500,000 (Conglomeration) ["Lyon"] = {container = "Auvergne-Rhône-Alpes"}, -- 2,050,000 (Conglomeration) ["Lyons"] = {alias_of = "Lyon", display = true}, ["Marseille"] = {container = "Provence-Alpes-Côte d'Azur"}, -- 1,710,000 (Conglomeration) ["Marseilles"] = {alias_of = "Marseille", display = true}, ["Lille"] = {container = "Hauts-de-France"}, -- 1,320,000 (Conglomeration) ["Bordeaux"] = {container = "Nouvelle-Aquitaine"}, -- 1,160,000 (Conglomeration) ["Toulouse"] = {container = "Occitania"}, -- 1,150,000 (Conglomeration) ["Nice"] = {container = "Provence-Alpes-Côte d'Azur"}, ["Nantes"] = {container = "Pays de la Loire"}, ["Strasbourg"] = {container = "Grand Est"}, ["Rennes"] = {container = "Brittany"}, } export.france_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", France", "region"), default_placetype = "city", data = export.france_cities, } export.germany_cities = { -- Figures from citypopulation.de unless otherwise indicated; retrieved 2025-04-26; reference date 2025-01-01. -- listed under Rhein-Ruhr Area, total population 10,900,000 (Consolidated Urban Area) ["Cologne"] = {container = "North Rhine-Westphalia"}, ["Köln"] = {alias_of = "Cologne", display = true}, ["Düsseldorf"] = {container = "North Rhine-Westphalia"}, ["Dusseldorf"] = {alias_of = "Düsseldorf", display = true}, ["Dortmund"] = {container = "North Rhine-Westphalia"}, ["Essen"] = {container = "North Rhine-Westphalia"}, ["Duisberg"] = {container = "North Rhine-Westphalia"}, ["Berlin"] = {}, -- 4,700,000 ["Frankfurt"] = {container = "Hesse"}, -- 3,225,000 ["Frankfurt am Main"] = {alias_of = "Frankfurt"}, -- not a display alias as it's longer ["Hamburg"] = {}, -- 2,900,000 ["Munich"] = {container = "Bavaria"}, -- 2,300,000 ["Stuttgart"] = {container = "Baden-Württemberg"}, -- 2,300,000 ["Mannheim"] = {container = "Baden-Württemberg"}, -- 1,550,000 ["Nuremberg"] = {container = "Bavaria"}, -- 1,120,000 ["Hanover"] = {"Lower Saxony"}, -- 1,090,000 ["Bielefeld"] = {container = "North Rhine-Westphalia"}, -- 1,080,000 ["Leipzig"] = {container = "Saxony"}, -- 1,080,000 ["Aachen"] = {container = "North Rhine-Westphalia"}, -- 1,000,000 ["Aix-la-Chapelle"] = {alias_of = "Aachen"}, -- historical; not a display alias ["Bremen"] = {}, } export.germany_cities_group = { default_container = "Germany", canonicalize_key_container = make_canonicalize_key_container(", Germany", "state"), default_placetype = "city", data = export.germany_cities, } export.india_cities = { -- This lists the 65 metro areas per Demographia's 2023 estimates, as found in -- [[w:List_of_million-plus_urban_agglomerations_in_India]]. The last census in India (as of April 2025) was -- conducted in 2011, and the results are not accurate any more. ["Delhi"] = {container = {key = "Delhi, India", placetype = "union territory"}}, -- 31,190,000 ["Mumbai"] = {container = "Maharashtra"}, -- 25,189,000 ["Kolkata"] = {container = "West Bengal"}, -- 21,747,000 ["Bangalore"] = {container = "Karnataka", wp = "Bengaluru"}, -- 15,257,000 ["Bengaluru"] = {alias_of = "Bangalore"}, ["Chennai"] = {container = "Tamil Nadu"}, -- 11,570,000 ["Hyderabad"] = {container = "Telangana"}, -- 9,797,000 ["Ahmedabad"] = {container = "Gujarat"}, -- 8,006,000 ["Pune"] = {container = "Maharashtra"}, -- 6,819,000 ["Surat"] = {container = "Gujarat"}, -- 6,601,000 ["Lucknow"] = {container = "Uttar Pradesh"}, -- 4,661,000 ["Jaipur"] = {container = "Rajasthan"}, -- 4,360,000 ["Kanpur"] = {container = "Uttar Pradesh"}, -- 4,350,000 ["Indore"] = {container = "Madhya Pradesh"}, -- 3,765,000 ["Nagpur"] = {container = "Maharashtra"}, -- 3,493,000 ["Patna"] = {container = "Bihar"}, -- 3,331,000 ["Varanasi"] = {container = "Uttar Pradesh"}, -- 3,229,000 ["Kozhikode"] = {container = "Kerala"}, -- 3,049,000 ["Thiruvananthapuram"] = {container = "Kerala"}, -- 2,851,000 ["Agra"] = {container = "Uttar Pradesh"}, -- 2,737,000 ["Bhopal"] = {container = "Madhya Pradesh"}, -- 2,562,000 ["Coimbatore"] = {container = "Tamil Nadu"}, -- 2,551,000 ["Allahabad"] = {container = "Uttar Pradesh", wp = "Prayagraj"}, -- 2,438,000 ["Prayagraj"] = {alias_of = "Allahabad"}, ["Kochi"] = {container = "Kerala"}, -- 2,381,000 ["Ludhiana"] = {container = "Punjab"}, -- 2,205,000 ["Vadodara"] = {container = "Gujarat"}, -- 2,182,000 ["Chandigarh"] = {container = {key = "Chandigarh, India", placetype = "union territory"}}, -- 2,168,000 ["Madurai"] = {container = "Tamil Nadu"}, -- 2,048,000 ["Meerut"] = {container = "Uttar Pradesh"}, -- 2,011,000 ["Visakhapatnam"] = {container = "Andhra Pradesh"}, -- 2,005,000 ["Jamshedpur"] = {container = "Jharkhand"}, -- 1,925,000 ["Malappuram"] = {container = "Kerala"}, -- 1,868,000 ["Nashik"] = {container = "Maharashtra"}, -- 1,810,000 ["Asansol"] = {container = "West Bengal"}, -- 1,720,000 ["Aligarh"] = {container = "Uttar Pradesh"}, -- 1,660,000 ["Ranchi"] = {container = "Jharkhand"}, -- 1,638,000 ["Thrissur"] = {container = "Kerala"}, -- 1,578,000 ["Kollam"] = {container = "Kerala"}, -- 1,576,000 ["Jabalpur"] = {container = "Madhya Pradesh"}, -- 1,533,000 ["Dhanbad"] = {container = "Jharkhand"}, -- 1,503,000 ["Jodhpur"] = {container = "Rajasthan"}, -- 1,497,000 ["Aurangabad"] = {container = "Maharashtra"}, -- 1,490,000 ["Chhatrapati Sambhajinagar"] = {alias_of = "Aurangabad"}, ["Rajkot"] = {container = "Gujarat"}, -- 1,487,000 ["Gwalior"] = {container = "Madhya Pradesh"}, -- 1,477,000 ["Raipur"] = {container = "Chhattisgarh"}, -- 1,429,000 ["Gorakhpur"] = {container = "Uttar Pradesh"}, -- 1,410,000 ["Kannur"] = {container = "Kerala"}, -- 1,360,000 ["Bareilly"] = {container = "Uttar Pradesh"}, -- 1,355,000 ["Guwahati"] = {container = "Assam"}, -- 1,355,000 ["Moradabad"] = {container = "Uttar Pradesh"}, -- 1,345,000 ["Amritsar"] = {container = "Punjab"}, -- 1,313,000 ["Mysore"] = {container = "Karnataka"}, -- 1,296,000 ["Bhilai"] = {container = "Chhattisgarh"}, -- 1,293,000 ["Durg-Bhilainagar"] = {alias_of = "Bhilai"}, ["Durg-Bhilai"] = {alias_of = "Bhilai"}, ["Durg"] = {alias_of = "Bhilai"}, ["Bhilainagar"] = {alias_of = "Bhilai"}, ["Vijayawada"] = {container = "Andhra Pradesh"}, -- 1,232,000 ["Srinagar"] = {container = {key = "Jammu and Kashmir, India", placetype = "union territory"}}, -- 1,212,000 ["Salem"] = {container = "Tamil Nadu", wp = "%l, %c"}, -- 1,189,000 ["Kota"] = {container = "Rajasthan"}, -- 1,172,000 ["Jalandhar"] = {container = "Punjab"}, -- 1,165,000 ["Saharanpur"] = {container = "Uttar Pradesh"}, -- 1,152,000 ["Dehradun"] = {container = "Uttarakhand"}, -- 1,136,000 ["Tiruchirappalli"] = {container = "Tamil Nadu"}, -- 1,131,000 ["Bhubaneswar"] = {container = "Odisha"}, -- 1,112,000 ["Jammu"] = {container = {key = "Jammu and Kashmir, India", placetype = "union territory"}}, -- 1,103,000 ["Solapur"] = {container = "Maharashtra"}, -- 1,082,000 ["Hubli-Dharwad"] = {container = "Karnataka", wp = "Hubli–Dharwad"}, -- 1,062,000; wp with en dash ["Hubli"] = {alias_of = "Hubli-Dharwad"}, ["Dharwad"] = {alias_of = "Hubli-Dharwad"}, ["Puducherry"] = {container = {key = "Puducherry, India", placetype = "union territory"}}, -- 1,024,000 ["Pondicherry"] = {alias_of = "Puducherry", display = true}, -- satellite/secondary cities of metro area (none in citypopulation.de) ["Ghaziabad"] = {container = "Uttar Pradesh"}, -- 1,729,000 city, 2,358,525 urban agglomeration per 2011 census; 3,406,061 2025 estimate from official website; part of Delhi metro area ["Faridabad"] = {container = "Haryana"}, -- 1,414,050 city per 2011 census; part of Delhi metro area ["Thane"] = {container = "Maharashtra"}, -- 1,841,488 city per 2011 census; part of Mumbai metro area ["Kalyan-Dombivli"] = {container = "Maharashtra"}, -- 1,246,381 city per 2011 census; part of Mumbai metro area ["Kalyan-Dombivali"] = {alias_of = "Kalyan-Dombivli", display = true}, ["Kalyan"] = {alias_of = "Kalyan-Dombivli"}, ["Dombivli"] = {alias_of = "Kalyan-Dombivli"}, ["Dombivali"] = {alias_of = "Kalyan-Dombivli"}, ["Vasai-Virar"] = {container = "Maharashtra"}, -- 1,221,233 city per 2011 census; part of Mumbai metro area ["Vasai"] = {alias_of = "Vasai-Virar"}, ["Virar"] = {alias_of = "Vasai-Virar"}, ["Navi Mumbai"] = {container = "Maharashtra"}, -- 1,120,547 city per 2011 census; part of Mumbai metro area ["Howrah"] = {container = "West Bengal"}, -- 1,077,075 city ("metropolis"), 2,811,344 "metro" per 2011 census; part of Kolkata metro area ["Pimpri-Chinchwad"] = {container = "Maharashtra"}, -- 1,727,692 per 2011 census; part of Pune metro area ["Pimpri Chinchwad"] = {alias_of = "Pimpri-Chinchwad", display = true}, } export.india_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", India", "state"), default_placetype = "city", data = export.india_cities, } export.indonesia_cities = { -- cities where the city proper has more than 1,000,000 people as of mid-2023 estimate ["Jakarta"] = {container = "Special Capital Region of Jakarta", divs = { {type = "subdistricts", container_parent_type = false}, }}, ["Surabaya"] = {container = "East Java"}, ["Bekasi"] = {container = "West Java"}, -- part of Jakarta metro area ["Bandung"] = {container = "West Java"}, ["Medan"] = {container = "North Sumatra"}, ["Depok"] = {container = "West Java"}, -- part of Jakarta metro area ["Tangerang"] = {container = "Banten"}, -- part of Jakarta metro area ["Palembang"] = {container = "South Sumatra"}, ["Semarang"] = {container = "Central Java"}, ["Makassar"] = {container = "South Sulawesi"}, ["South Tangerang"] = {container = "Banten"}, -- part of Jakarta metro area ["Batam"] = {container = "Riau Islands"}, ["Bogor"] = {container = "West Java"}, -- part of Jakarta metro area ["Pekanbaru"] = {container = "Riau"}, ["Bandar Lampung"] = {container = "Lampung"}, -- other metro areas over 1,000,000 people ["Padang"] = {container = "West Sumatra"}, ["Samarinda"] = {container = "East Kalimantan"}, ["Malang"] = {container = "East Java"}, ["Yogyakarta"] = {container = "Special Region of Yogyakarta"}, ["Denpasar"] = {container = "Bali"}, ["Cirebon"] = {container = "West Java"}, ["Surakarta"] = {container = "Central Java"}, ["Banjarmasin"] = {container = "South Kalimantan"}, ["Tasikmalaya"] = {container = "West Java"}, } export.indonesia_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Indonesia", "province"), default_placetype = "city", data = export.indonesia_cities, } export.italy_cities = { -- Data per [[w:List_of_metropolitan_areas_of_Italy]]. There are several lists given; the most recent one, used -- here, only gives estimates as of Jan 1, 2014. ["Milan"] = {container = "Lombardy"}, -- 6,623,798 ["Naples"] = {container = "Campania"}, -- 5,294,546 ["Rome"] = {container = "Lazio"}, -- 4,447,881 ["Turin"] = {container = "Piedmont"}, -- 1,865,284 ["Venice"] = {container = "Veneto"}, -- 1,645,900 ["Florence"] = {container = "Tuscany"}, -- 1,485,030 ["Bari"] = {container = "Apulia"}, -- 1,257,459 ["Palermo"] = {container = "Sicily"}, -- 1,183,084 -- include a few just below 1,000,000 metro area that may be above it by now (depending on the definition). ["Catania"] = {container = "Sicily"}, -- 988,240 ["Brescia"] = {container = "Lombardy"}, -- 924,090 ["Genoa"] = {container = "Liguria"}, -- 861,318 } export.italy_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Italy", "region"), default_placetype = "city", data = export.italy_cities, } export.japan_cities = { -- Population figures from [[w:List of cities in Japan]]. Metro areas from -- [[w:List of metropolitan areas in Japan]]. ["Tokyo"] = {keydesc = "[[Tokyo]] Metropolis, the [[capital city]] and a [[prefecture]] of [[Japan]] (which is a country in [[Asia]])", placetype = {"city", "prefecture"}, divs = { {type = "special wards", container_parent_type = false}, {type = "cities", prep = "in"}, }, }, ["Yokohama"] = {container = "Kanagawa"}, -- 3,697,894 ["Osaka"] = {container = "Osaka"}, -- 2,668,586 ["Nagoya"] = {container = "Aichi"}, -- 2,283,289 -- FIXME, Hokkaido is handled specially. ["Sapporo"] = {container = "Hokkaido"}, -- 1,918,096 ["Fukuoka"] = {container = "Fukuoka"}, -- 1,581,527 ["Kobe"] = {container = "Hyōgo"}, -- 1,530,847 ["Kyoto"] = {container = "Kyoto"}, -- 1,474,570 ["Kawasaki"] = {container = "Kanagawa", wp = "%l, Kanagawa"}, -- 1,373,630 ["Saitama"] = {container = "Saitama", wp = "%l (city)", commonscat = "%l, %c"}, -- 1,192,418 ["Hiroshima"] = {container = "Hiroshima"}, -- 1,163,806 ["Sendai"] = {container = "Miyagi"}, -- 1,029,552 -- the remaining cities are considered "central cities" in a 1,000,000+ metro area -- (sometimes there is more than one central city in the area). ["Kitakyushu"] = {container = "Fukuoka"}, -- 986,998 ["Chiba"] = {container = "Chiba", wp = "%l (city)", commonscat = "%l, %c"}, -- 938,695 ["Sakai"] = {container = "Osaka"}, -- 835,333 ["Niigata"] = {container = "Niigata", wp = "%l (city)", commonscat = "%l, %c"}, -- 813,053 ["Hamamatsu"] = {container = "Shizuoka"}, -- 811,431 ["Shizuoka"] = {container = "Shizuoka", wp = "%l (city)", commonscat = "%l, %c"}, -- 710,944 ["Sagamihara"] = {container = "Kanagawa"}, -- 706,342 ["Okayama"] = {container = "Okayama"}, -- 701,293 ["Kumamoto"] = {container = "Kumamoto"}, -- 670,348 ["Kagoshima"] = {container = "Kagoshima"}, -- 605,196 -- skipped 6 cities (Funabashi, Hachiōji, Kawaguchi, Himeji, Matsuyama, Higashiōsaka) -- with population in the range 509k - 587k because not central cities in any -- 1,000,000+ metro area. ["Utsunomiya"] = {container = "Tochigi"}, -- 507,833 } export.japan_cities_group = { default_container = "Japan", canonicalize_key_container = make_canonicalize_key_container(" Prefecture, Japan", "prefecture"), default_placetype = "city", data = export.japan_cities, } export.mexico_cities = { ["Mexico City"] = {}, -- its own state ["Monterrey"] = {container = "Nuevo León"}, ["Guadalajara"] = {container = "Jalisco"}, ["Puebla"] = {container = "Puebla", wp = "%l (city)"}, ["Toluca"] = {container = "State of Mexico"}, ["Tijuana"] = {container = "Baja California"}, -- Include the state in the category for León due to possible confusion with León, Spain. ["León, Guanajuato"] = {container = "Guanajuato", wp = "%l, %c"}, ["León"] = {alias_of = "León, Guanajuato"}, ["Leon"] = {alias_of = "León, Guanajuato", display = true}, ["Querétaro"] = {container = "Querétaro", wp = "%l (city)"}, ["Queretaro"] = {alias_of = "Querétaro", display = true}, ["Ciudad Juárez"] = {container = "Chihuahua"}, ["Juárez"] = {alias_of = "Ciudad Juárez"}, ["Juarez"] = {alias_of = "Ciudad Juárez", display = "Juárez"}, ["Torreón"] = {container = "Coahuila"}, ["Torreon"] = {alias_of = "Torreón", display = true}, -- Include the state in the category for Mérida due to possible confusion with Mérida, Spain or -- Mérida, Venezuela. ["Mérida, Yucatán"] = {container = "Yucatán", wp = "%l, %c"}, ["Mérida"] = {alias_of = "Mérida, Yucatán"}, ["Merida"] = {alias_of = "Mérida, Yucatán", display = true}, ["San Luis Potosí"] = {container = "San Luis Potosí", wp = "%l (city)"}, ["San Luis Potosi"] = {alias_of = "San Luis Potosí", display = true}, ["Aguascalientes"] = {container = "Aguascalientes", wp = "%l (city)"}, ["Mexicali"] = {container = "Baja California"}, } export.mexico_cities_group = { default_container = "Mexico", canonicalize_key_container = make_canonicalize_key_container(", Mexico", "state"), default_placetype = "city", data = export.mexico_cities, } export.nigeria_cities = { -- Figures from citypopulation.de unless otherwise indicated; retrieved 2025-04-26; reference date 2025-01-01. ["Lagos"] = {container = "Lagos"}, -- 21,300,000 (unindicated; population of low reliability) ["Kano"] = {container = "Kano", wp = "%l (city)"}, -- 5,350,000 (unindicated; population of low reliability) ["Ibadan"] = {container = "Oyo"}, -- 3,400,000 (unindicated; population of low reliability) ["Abuja"] = {container = {key = "Federal Capital Territory, Nigeria", placetype = "federal territory"}}, -- 3,050,000 (unindicated; population of low reliability) ["Port Harcourt"] = {container = "Rivers"}, -- 2,250,000 (unindicated; population of low reliability) ["Kaduna"] = {container = "Kaduna"}, -- 1,980,000 (unindicated; population of low reliability) ["Benin City"] = {container = "Edo"}, -- 1,790,000 (unindicated; population of low reliability) ["Aba"] = {container = "Abia", wp = "%l, Nigeria"}, -- 1,280,000 (unindicated; population of low reliability) ["Onitsha"] = {container = "Anambra"}, -- 1,230,000 (unindicated; population of low reliability) ["Maiduguri"] = {container = "Borno"}, -- 1,190,000 (unindicated; population of low reliability) ["Ilorin"] = {container = "Kwara"}, -- 1,160,000 (unindicated; population of low reliability) ["Sokoto"] = {container = "Sokoto", wp = "%l (city)"}, -- 1,140,000 (unindicated; population of low reliability) ["Jos"] = {container = "Plateau"}, -- 1,110,000 (unindicated; population of low reliability) ["Zaria"] = {container = "Kaduna"}, -- 1,050,000 (unindicated; population of low reliability) ["Enugu"] = {container = "Enugu", wp = "%l (city)"}, -- 1,010,000 (unindicated; population of low reliability) } export.nigeria_cities_group = { default_container = "Nigeria", canonicalize_key_container = make_canonicalize_key_container(" State, Nigeria", "state"), default_placetype = "city", data = export.nigeria_cities, } export.pakistan_cities = { -- Figures from citypopulation.de; retrieved 2025-04-26; reference date 2025-01-01. ["Karachi"] = {container = "Sindh"}, -- 21,000,000 (Consolidated Urban Area) ["Lahore"] = {container = "Punjab"}, -- 14,600,000 (Consolidated Urban Area) ["Rawalpindi"] = {container = "Punjab"}, -- 5,600,000 (Consolidated Urban Area; including Islamabad) ["Islamabad"] = {container = {key = "Islamabad Capital Territory, Pakistan", placetype = "federal territory"}}, -- 5,600,000 (Consolidated Urban Area; including Rawalpindi) ["Faisalabad"] = {container = "Punjab"}, -- 4,125,000 (Consolidated Urban Area) ["Gujranwala"] = {container = "Punjab"}, -- 3,450,000 (Consolidated Urban Area) -- there is also Hyderabad in India (very confusing) ["Hyderabad, Pakistan"] = {container = "Sindh", wp = "%l, %c"}, -- 2,475,000 (Consolidated Urban Area) ["Hyderabad"] = {alias_of = "Hyderabad, Pakistan"}, ["Multan"] = {container = "Punjab"}, -- 2,425,000 (Consolidated Urban Area) ["Peshawar"] = {container = "Khyber Pakhtunkhwa"}, -- 2,150,000 (Consolidated Urban Area) ["Quetta"] = {container = "Balochistan"}, -- 1,720,000 (Urban Area) ["Sargodha"] = {container = "Punjab"}, -- 1,080,000 (Urban Area) ["Sialkot"] = {container = "Punjab"}, -- 1,050,000 (Consolidated Urban Area) } export.pakistan_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Pakistan", "province"), default_placetype = "city", data = export.pakistan_cities, } export.philippines_cities = { -- Skipped some cities in Metro Manila (Taguig, Pasig) which don't have districts. -- Other cities outside Metro Manila skipped as not central city in their urban area. ["Quezon City"] = {container = {key = "Metro Manila, Philippines", placetype = "region"}}, -- Don't display-canonicalize Foo to Foo City as it may make the display weird. ["Quezon"] = {alias_of = "Quezon City"}, ["Manila"] = {container = {key = "Metro Manila, Philippines", placetype = "region"}}, ["Davao City"] = {container = "Davao del Sur"}, ["Davao"] = {alias_of = "Davao City"}, ["Caloocan"] = {container = {key = "Metro Manila, Philippines", placetype = "region"}}, ["Zamboanga City"] = {container = "Zamboanga del Sur"}, ["Zamboanga"] = {alias_of = "Zamboanga City"}, ["Cebu City"] = {container = "Cebu"}, ["Cebu"] = {alias_of = "Cebu City"}, ["Antipolo"] = {container = "Rizal"}, ["Cagayan de Oro"] = {container = "Misamis Oriental"}, ["Dasmariñas"] = {container = "Cavite"}, ["Dasmarinas"] = {alias_of = "Dasmariñas", display = true}, ["General Santos"] = {container = "South Cotabato"}, ["San Jose del Monte"] = {container = "Bulacan"}, ["Bacolod"] = {container = "Negros Occidental"}, ["Calamba"] = {container = "Laguna", wp = "%l, %c"}, ["Angeles"] = {container = "Pampanga", wp = "Angeles City"}, ["Angeles City"] = {alias_of = "Angeles"}, ["Iloilo City"] = {container = "Iloilo"}, ["Iloilo"] = {alias_of = "Iloilo City"}, } export.philippines_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Pilipinas", "lalawigan"), --TLCHANGE make_canonicalize_key_container(", Philippines", "province"), default_placetype = "city", data = export.philippines_cities, } export.russia_cities = { -- Figures from citypopulation.de; retrieved 2025-04-26; reference date 2025-01-01. ["Moscow"] = {}, -- 18,800,000 (Agglomeration) ["Saint Petersburg"] = {}, -- 6,350,000 (Agglomeration) ["Novosibirsk"] = {container = "Novosibirsk Oblast"}, -- 1,820,000 (Agglomeration) ["Yekaterinburg"] = {container = "Sverdlovsk Oblast"}, -- 1,810,000 (Agglomeration) ["Nizhny Novgorod"] = {container = "Nizhny Novgorod Oblast"}, -- 1,620,000 (Agglomeration) ["Kazan"] = {container = {key = "Tatarstan, Russia", placetype = "republic"}}, -- 1,560,000 (Agglomeration) ["Chelyabinsk"] = {container = "Chelyabinsk Oblast"}, -- 1,430,000 (Agglomeration) ["Rostov-on-Don"] = {container = "Rostov Oblast"}, -- 1,390,000 (Agglomeration) ["Rostov-na-Donu"] = {alias_of = "Rostov-on-Don", display = true}, ["Krasnodar"] = {container = {key = "Krasnodar Krai, Russia", placetype = "krai"}}, -- 1,370,000 (Agglomeration) ["Samara"] = {container = "Samara Oblast"}, -- 1,350,000 (Agglomeration) ["Krasnoyarsk"] = {container = {key = "Krasnoyarsk Krai, Russia", placetype = "krai"}}, -- 1,270,000 (Agglomeration) ["Ufa"] = {container = {key = "Bashkortostan, Russia", placetype = "republic"}}, -- 1,230,000 (Agglomeration) ["Saratov"] = {container = "Saratov Oblast"}, -- 1,170,000 (Agglomeration) ["Omsk"] = {container = "Omsk Oblast"}, -- 1,140,000 (Agglomeration) ["Voronezh"] = {container = "Voronezh Oblast"}, -- 1,130,000 (Agglomeration) ["Volgograd"] = {container = "Volgograd Oblast"}, -- 1,080,000 (Agglomeration) ["Perm"] = {container = {key = "Perm Krai, Russia", placetype = "krai"}, wp = "%l, Russia"}, -- 1,070,000 (Agglomeration) } export.russia_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Russia", "oblast"), default_container = "Russia", default_placetype = "city", data = export.russia_cities, } export.saudi_arabia_cities = { -- Figures for the first five from [[w:List of cities and towns in Saudi Arabia]] as of 2022. Unclear if these are -- metro, urban or city proper figures. ["Riyadh"] = {container = "Riyadh"}, -- 7,000,100; 7,700,000 per citypopulation.de 2025-01-01 (Agglomeration) ["Jeddah"] = {container = "Mecca"}, -- 3,751,917; 3,950,000 per citypopulation.de 2025-01-01 (Agglomeration) ["Jedda"] = {alias_of = "Jeddah", display = true}, ["Jiddah"] = {alias_of = "Jeddah", display = true}, ["Jidda"] = {alias_of = "Jeddah", display = true}, ["Dammam"] = {container = "Eastern"}, -- 2,638,166; 2,925,000 per citypopulation.de 2025-01-01 (Agglomeration) ["Mecca"] = {container = "Mecca"}, -- 2,385,509; 2,675,000 per citypopulation.de 2025-01-01 (Agglomeration) ["Makkah"] = {alias_of = "Mecca", display = true}, ["Medina"] = {container = "Medina"}, -- 1,477,023; 1,530,000 per citypopulation.de 2025-01-01 (City) ["Hofuf"] = {container = "Eastern"}, -- 1,060,000 per citypopulation.de 2025-01-01 (Agglomeration) ["Khamis Mushait"] = {container = "Aseer"}, -- 1,030,000 per citypopulation.de 2025-01-01 (Agglomeration) ["Khamis Mushayt"] = {alias_of = "Khamis Mushait", display = true}, } export.saudi_arabia_cities_group = { canonicalize_key_container = make_canonicalize_key_container(" Province, Saudi Arabia", "province"), default_placetype = "city", data = export.saudi_arabia_cities, } export.south_korea_cities = { -- All cities listed are not associated with any county. ["Seoul"] = {}, ["Busan"] = {}, ["Incheon"] = {}, ["Daegu"] = {}, ["Daejeon"] = {}, ["Gwangju"] = {}, ["Ulsan"] = {}, } export.south_korea_cities_group = { default_container = "South Korea", canonicalize_key_container = make_canonicalize_key_container(" County, South Korea", "province"), default_placetype = "city", data = export.south_korea_cities, } export.spain_cities = { ["Madrid"] = {container = "Community of Madrid"}, ["Barcelona"] = {container = "Catalonia"}, ["Valencia"] = {container = "Valencia"}, ["Seville"] = {container = "Andalusia"}, ["Bilbao"] = {container = "Basque Country"}, } export.spain_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", Spain", "autonomous community"), default_placetype = "city", data = export.spain_cities, } export.taiwan_cities = { ["New Taipei City"] = {}, ["New Taipei"] = {alias_of = "New Taipei City", display = true}, ["Taichung"] = {}, ["Kaohsiung"] = {wp = "%l, Taiwan"}, ["Taipei"] = {}, ["Taoyuan"] = {}, ["Tainan"] = {}, -- these last three are not special municipalities ["Chiayi"] = {placetype = "city"}, ["Hsinchu"] = {placetype = "city"}, ["Keelung"] = {placetype = "city"}, } export.taiwan_cities_group = { placename_to_key = false, -- don't add ", Taiwan" to make the key canonicalize_key_container = make_canonicalize_key_container(", Taiwan", "county"), default_container = "Taiwan", default_placetype = {"special municipality", "municipality", "city"}, default_is_city = true, default_divs = {"districts"}, data = export.taiwan_cities, } -- NOTE: It's OK to mix cities from different constituent countries; as long as the immediate container is correct, -- everything else will be figured out. export.united_kingdom_cities = { ["London"] = {container = "Greater London"}, ["Manchester"] = {container = "Greater Manchester"}, ["Birmingham"] = {container = "West Midlands"}, ["Liverpool"] = {container = "Merseyside"}, ["Glasgow"] = {container = {key = "City of Glasgow, Scotland", placetype = "council area"}}, ["Leeds"] = {container = "West Yorkshire"}, ["Newcastle upon Tyne"] = {container = "Tyne and Wear"}, ["Newcastle"] = {alias_of = "Newcastle upon Tyne"}, ["Bristol"] = {container = {key = "England", placetype = "constituent country"}}, ["Cardiff"] = {container = {key = "Wales", placetype = "constituent country"}}, ["Portsmouth"] = {container = "Hampshire"}, ["Edinburgh"] = {container = {key = "City of Edinburgh, Scotland", placetype = "council area"}}, -- under 1,000,000 people but principal areas of Wales; requested by [[User:Donnanz]] ["Swansea"] = {container = {key = "Wales", placetype = "constituent country"}}, ["Newport"] = {container = {key = "Wales", placetype = "constituent country"}, wp = "Newport, Wales"}, } export.united_kingdom_cities_group = { canonicalize_key_container = make_canonicalize_key_container(", England", "county"), default_placetype = "city", data = export.united_kingdom_cities, } export.united_states_cities = { -- top 50 CSA's by population, with the top and sometimes 2nd or 3rd city listed ["New York City"] = {container = "New York", wp = "%l", divs = { {type = "boroughs", container_parent_type = false}, }}, -- Don't display-canonicalize as it may make the display weird (e.g. in the context New York, New York). ["New York"] = {alias_of = "New York City"}, ["Newark"] = {container = "New Jersey"}, ["Los Angeles"] = {container = "California", wp = "%l"}, ["Long Beach"] = {container = "California"}, ["Riverside"] = {container = "California"}, ["Chicago"] = {container = "Illinois", wp = "%l"}, ["Washington, D.C."] = {wp = "%l"}, ["Washington, DC"] = {alias_of = "Washington, D.C.", display = true}, ["Washington D.C."] = {alias_of = "Washington, D.C.", display = true}, ["Washington DC"] = {alias_of = "Washington, D.C.", display = true}, -- Don't display-canonicalize as it may make the display weird (e.g. if the holonym is followed by a District of -- Columbia holonym). ["Washington"] = {alias_of = "Washington, D.C."}, ["Baltimore"] = {container = "Maryland", wp = "%l"}, -- to avoid conflict with San Jose in Costa Rica ["San Jose, California"] = {container = "California"}, ["San Jose"] = {alias_of = "San Jose, California"}, ["San Francisco"] = {container = "California", wp = "%l"}, ["Oakland"] = {container = "California"}, ["Boston"] = {container = "Massachusetts", wp = "%l"}, ["Providence"] = {container = "Rhode Island"}, ["Dallas"] = {container = "Texas", wp = "%l", commonscat = "%l, %c"}, ["Fort Worth"] = {container = "Texas"}, ["Philadelphia"] = {container = "Pennsylvania", wp = "%l"}, ["Houston"] = {container = "Texas", wp = "%l"}, ["Miami"] = {container = "Florida", wp = "%l", commonscat = "%l, %c"}, ["Atlanta"] = {container = "Georgia", wp = "%l"}, ["Detroit"] = {container = "Michigan", wp = "%l"}, ["Phoenix"] = {container = "Arizona", wp = "%l", commonscat = "%l, %c"}, ["Mesa"] = {container = "Arizona"}, ["Seattle"] = {container = "Washington", wp = "%l"}, ["Orlando"] = {container = "Florida"}, ["Minneapolis"] = {container = "Minnesota", wp = "%l"}, ["Cleveland"] = {container = "Ohio", wp = "%l", commonscat = "%l, %c"}, ["Denver"] = {container = "Colorado", wp = "%l", commonscat = "%l, %c"}, ["San Diego"] = {container = "California", wp = "%l", commonscat = "%l, %c"}, ["Portland"] = {container = "Oregon"}, ["Tampa"] = {container = "Florida"}, ["St. Louis"] = {container = "Missouri", wp = "%l", commonscat = "%l, %c"}, ["Saint Louis"] = {alias_of = "St. Louis", display = true}, ["Charlotte"] = {container = "North Carolina"}, ["Sacramento"] = {container = "California"}, ["Pittsburgh"] = {container = "Pennsylvania", wp = "%l"}, ["Salt Lake City"] = {container = "Utah", wp = "%l"}, ["San Antonio"] = {container = "Texas", wp = "%l", commonscat = "%l, %c"}, ["Columbus"] = {container = "Ohio"}, ["Kansas City"] = {container = "Missouri", wp = "%l metropolitan area", commonscat = "%l, %c"}, ["Indianapolis"] = {container = "Indiana", wp = "%l"}, ["Las Vegas"] = {container = "Nevada", wp = "%l"}, ["Cincinnati"] = {container = "Ohio", wp = "%l", commonscat = "%l, %c"}, ["Austin"] = {container = "Texas"}, ["Milwaukee"] = {container = "Wisconsin", wp = "%l", commonscat = "%l, %c"}, ["Raleigh"] = {container = "North Carolina"}, ["Nashville"] = {container = "Tennessee"}, ["Virginia Beach"] = {container = "Virginia"}, ["Norfolk"] = {container = "Virginia"}, ["Greensboro"] = {container = "North Carolina"}, ["Winston-Salem"] = {container = "North Carolina"}, ["Jacksonville"] = {container = "Florida"}, ["New Orleans"] = {container = "Louisiana", wp = "%l"}, ["Louisville"] = {container = "Kentucky"}, ["Greenville"] = {container = "South Carolina"}, ["Hartford"] = {container = "Connecticut"}, ["Oklahoma City"] = {container = "Oklahoma", wp = "%l"}, ["Grand Rapids"] = {container = "Michigan"}, ["Memphis"] = {container = "Tennessee"}, ["Birmingham, Alabama"] = {container = "Alabama"}, ["Birmingham"] = {alias_of = "Birmingham, Alabama"}, ["Fresno"] = {container = "California"}, ["Richmond"] = {container = "Virginia"}, ["Harrisburg"] = {container = "Pennsylvania"}, -- any major city of top 50 MSA's that's missed by previous ["Buffalo"] = {container = "New York"}, -- any of the top 50 city by city population that's missed by previous ["El Paso"] = {container = "Texas"}, ["Albuquerque"] = {container = "New Mexico"}, ["Tucson"] = {container = "Arizona"}, ["Colorado Springs"] = {container = "Colorado"}, ["Omaha"] = {container = "Nebraska"}, ["Tulsa"] = {container = "Oklahoma"}, -- skip Arlington, Texas; too obscure and likely to be interpreted as Arlington, Virginia } export.united_states_cities_group = { default_container = "United States", canonicalize_key_container = make_canonicalize_key_container(", USA", "state"), default_placetype = "city", default_wp = "%l, %c", data = export.united_states_cities, } export.new_york_boroughs = { ["Bronx"] = {the = true, wp = "The Bronx"}, ["Brooklyn"] = {}, ["Manhattan"] = {}, ["Queens"] = {}, ["Staten Island"] = {}, } export.new_york_boroughs_group = { default_container = {key = "New York City", placetype = "city"}, default_placetype = "borough", default_is_city = true, data = export.new_york_boroughs, } export.vietnam_cities = { -- Figures from citypopulation.de (retrieved 2025-04-26; reference date 2025-01-01) unless otherwise indicated. ["Ho Chi Minh City"] = {}, -- 14,300,000 (Agglomeration; inclunding Bien Hoa) ["Saigon"] = {alias_of = "Ho Chi Minh City"}, ["Hanoi"] = {}, -- 7,350,000 (Agglomeration) ["Da Nang"] = {}, -- 1,500,000 (Agglomeration) ["Danang"] = {alias_of = "Da Nang", display = true}, ["Haiphong"] = {}, -- 1,450,000 (Agglomeration) ["Hai Phong"] = {alias_of = "Haiphong", display = true}, -- This is the one entry in this list that is not a province-level municipality; instead it's a "provincial city" -- meaning it is directly under its province as opposed to being contained in a district. ["Bien Hoa"] = {placetype = "city", container = "Đồng Nai", wp = "Biên Hòa"}, -- 1,272,235 (2022 city population per Wikipedia) ["Biên Hòa"] = {alias_of = "Bien Hoa", display = true}, ["Biên Hoà"] = {alias_of = "Bien Hoa", display = true}, -- These two not in citypopulation.de because the urban population may be slightly under 1,000,000, but they are -- both province-level municipalities and close to the 1,000,000 mark. ["Can Tho"] = {wp = "Cần Thơ"}, -- 1,456,000 municipality (2019 census), 994,704 urban (2022 General Statistics Office of Vietnam estimate); capital [[Ninh Kiều district]] ["Cần Thơ"] = {alias_of = "Can Tho", display = true}, ["Hue"] = {wp = "Huế"}, -- 1,257,000 municipality (2019 census), 840,000 urban (2022 General Statistics Office of Vietnam estimate); -- capital [[Thuận Hóa district]] ["Huế"] = {alias_of = "Hue", display = true}, } export.vietnam_cities_group = { placename_to_key = false, -- don't add ", Vietnam" to make the key default_container = "Vietnam", canonicalize_key_container = make_canonicalize_key_container(" , Vietnam", "mga lalawigan"), -- Most of the cities listed are province-level municipalities in addition, which contain a certain amount of -- rural territory surrounding the city, but not enough to separate the municipality from the city as distinct -- known locations. default_placetype = {"mga bayan", "mga lungsod"}, default_is_city = true, -- There may not be enough districts to subcategorize like this. -- default_divs = "districts", data = export.vietnam_cities, } export.misc_cities = { ------------------ Africa ------------------- -- Sorted by country and then within the country, by decreasing population; figures from citypopulation.de -- (retrieved 2025-04-26; reference date 2025-01-01) unless otherwise indicated; combined with data from -- [[w:List of urban areas in Africa by population]]. ["Algiers"] = {container = "Algeria"}, -- 4,325,000 (Consolidated Urban Area) ["Oran"] = {container = "Algeria"}, -- 1,640,000 (Consolidated Urban Area) ["Luanda"] = {container = "Angola"}, -- 9,650,000 (Urban Area) ["Benguela"] = {container = "Angola"}, -- 1,420,000 (Urban Area) ["Cotonou"] = {container = "Benin"}, -- 2,150,000 (Agglomeration) ["Ouagadougou"] = {container = "Burkina Faso"}, -- 3,425,000 (Agglomeration) ["Bobo-Dioulasso"] = {container = "Burkina Faso"}, -- 1,100,000 (Agglomeration) ["Bujumbura"] = {container = "Burundi"}, -- 1,143,202 (Urban Area 2023 per PopulationStat, cited in Wikipedia) ["Yaoundé"] = {container = "Cameroon"}, -- 3,975,000 (City) ["Yaounde"] = {alias_of = "Yaoundé", display = true}, ["Douala"] = {container = "Cameroon"}, -- 3,900,000 (City) ["Bangui"] = {container = "Central African Republic"}, -- 1,680,000 (Agglomeration) ["N'Djamena"] = {container = "Chad"}, -- 1,950,000 (City) ["Ndjamena"] = {alias_of = "N'Djamena", display = true}, ["Kinshasa"] = {container = "Democratic Republic of the Congo"}, -- 16,300,000 (City; population of low reliability) ["Lubumbashi"] = {container = "Democratic Republic of the Congo"}, -- 2,875,000 (City; population of low reliability) ["Mbuji-Mayi"] = {container = "Democratic Republic of the Congo"}, -- 2,500,000 (City; population of low reliability) ["Kananga"] = {container = "Democratic Republic of the Congo"}, -- 1,370,000 (City; population of low reliability) ["Kisangani"] = {container = "Democratic Republic of the Congo"}, -- 1,300,000 (City; population of low reliability) ["Bukavu"] = {container = "Democratic Republic of the Congo"}, -- 1,100,000 (City; population of low reliability) ["Goma"] = {container = "Democratic Republic of the Congo"}, -- 1,010,000 (City; population of low reliability) ["Tshikapa"] = {container = "Democratic Republic of the Congo"}, -- 1,020,468 (2023 Wikipedia [[w:List of cities with over one million inhabitants]] from populationstat.com; not in citypopulation.de) ["Cairo"] = {container = "Egypt"}, -- 22,800,000 (Agglomeration, including Giza and Subhra El Kheima) ["Alexandria"] = {container = "Egypt"}, -- 6,250,000 (Agglomeration) ["Giza"] = {container = "Egypt"}, -- 4,458,135 (2023 from citypopulation.de) ["Shubra El Kheima"] = {container = "Egypt"}, -- 1,240,239 (2021 from citypopulation.de) ["Asmara"] = {container = "Eritrea"}, -- 1,090,000 (City; population of low reliability) ["Asmera"] = {alias_of = "Asmara", display = true}, ["Addis Ababa"] = {container = "Ethiopia"}, -- 4,825,000 (Agglomeration) ["Banjul"] = {container = "Gambia"}, -- 1,170,000 (Agglomeration) ["Accra"] = {container = "Ghana"}, -- 6,800,000 (Agglomeration) ["Kumasi"] = {container = "Ghana"}, -- 2,900,000 (Agglomeration) ["Conakry"] = {container = "Guinea"}, -- 2,975,000 (Consolidated Urban Area) ["Abidjan"] = {container = "Ivory Coast"}, -- 7,050,000 (Agglomeration) ["Nairobi"] = {container = "Kenya"}, -- 6,900,000 (unindicated) ["Mombasa"] = {container = "Kenya"}, -- 1,370,000 (City) ["Monrovia"] = {container = "Liberia"}, -- 1,940,000 (Urban Area) ["Tripoli"] = {container = "Libya", wp = "%l, %c"}, -- 1,870,000 (unindicated) ["Antananarivo"] = {container = "Madagascar"}, -- 3,150,000 (Agglomeration) ["Lilongwe"] = {container = "Malawi"}, -- 1,210,000 (City) ["Bamako"] = {container = "Mali"}, -- 5,700,000 (Agglomeration) ["Nouakchott"] = {container = "Mauritania"}, -- 1,500,000 (City) ["Casablanca"] = {container = {key = "Casablanca-Settat, Morocco", placetype = "region"}}, -- 4,450,000 (Municipality (urban population)) ["Rabat"] = {container = {key = "Rabat-Sale-Kenitra, Morocco", placetype = "region"}}, -- 2,125,000 (Municipality (urban population)) ["Tangier"] = {container = {key = "Tangier-Tetouan-Al Hoceima, Morocco", placetype = "region"}}, -- 1,410,000 (Municipality (urban population)) ["Tanger"] = {alias_of = "Tangier", display = true}, ["Tangiers"] = {alias_of = "Tangier", display = true}, ["Fez"] = {container = {key = "Fez-Meknes, Morocco", placetype = "region"}, wp = "%l, Morocco"}, -- 1,310,000 (Municipality (urban population)) ["Fes"] = {alias_of = "Fez", display = true}, ["Fès"] = {alias_of = "Fez", display = true}, ["Agadir"] = {container = {key = "Souss-Massa, Morocco", placetype = "region"}}, -- 1,270,000 (Municipality (urban population)) ["Marrakesh"] = {container = {key = "Marrakesh-Safi, Morocco", placetype = "region"}}, -- 1,140,000 (Municipality (urban population)) ["Marrakech"] = {alias_of = "Marrakesh", display = true}, ["Maputo"] = {container = "Mozambique"}, -- 2,575,000 (Agglomeration) ["Niamey"] = {container = "Niger"}, -- 1,530,000 (City) ["Brazzaville"] = {container = "Republic of the Congo"}, -- 2,475,000 (Agglomeration) ["Pointe-Noire"] = {container = "Republic of the Congo"}, -- 1,480,000 (City) ["Kigali"] = {container = "Rwanda"}, -- 1,960,000 (Municipality (urban population)) ["Dakar"] = {container = "Senegal"}, -- 4,225,000 (Agglomeration) ["Touba"] = {container = "Senegal"}, -- 1,320,000 (Agglomeration) ["Freetown"] = {container = "Sierra Leone"}, -- 1,420,000 (Agglomeration) ["Mogadishu"] = {container = "Somalia"}, -- 2,250,000 (unindicated; population of low reliability) ["Johannesburg"] = {container = {key = "Gauteng, South Africa", placetype = "province"}}, -- 14,800,000 (Consolidated Urban Area; including Pretoria, Soweto, etc.) ["Cape Town"] = {container = {key = "Western Cape, South Africa", placetype = "province"}}, -- 5,100,000 (Consolidated Urban Area) ["Durban"] = {container = {key = "KwaZulu-Natal, South Africa", placetype = "province"}}, -- 3,900,000 (Consolidated Urban Area) ["Pretoria"] = {container = {key = "Gauteng, South Africa", placetype = "province"}}, -- 2,921,488 (2011 census) ["Port Elizabeth"] = {container = {key = "Eastern Cape, South Africa", placetype = "province"}, wp = "Gqeberha"}, -- 1,200,000 (Consolidated Urban Area) ["Gqeberha"] = {alias_of = "Port Elizabeth"}, -- official name; not a display alias ["Khartoum"] = {container = "Sudan"}, -- 7,200,000 (unindicated; population of low reliability) ["Dar es Salaam"] = {container = "Tanzania"}, -- 6,650,000 (Agglomeration) ["Mwanza"] = {container = "Tanzania"}, -- 1,340,000 (Agglomeration) ["Mwanza City"] = {alias_of = "Mwanza", display = true}, ["Arusha"] = {container = "Tanzania"}, -- 1,190,000 (Agglomeration) ["Zanzibar"] = {container = "Tanzania"}, -- 1,030,000 (Agglomeration) ["Lomé"] = {container = "Togo"}, -- 2,625,000 (unindicated) ["Lome"] = {alias_of = "Lomé", display = true}, ["Tunis"] = {container = "Tunisia"}, -- 2,725,000 (Municipality (urban population)) ["Sousse"] = {container = "Tunisia"}, -- 1,180,000 (Municipality (urban population)) ["Soussa"] = {alias_of = "Sousse", display = true}, ["Kampala"] = {container = "Uganda"}, -- 4,300,000 (unindicated) ["Lusaka"] = {container = "Zambia"}, -- 3,000,000 (Consolidated Urban Area) ["Harare"] = {container = "Zimbabwe"}, -- 2,675,000 (Agglomeration) ------------------ Asia ------------------- -- sorted by country and then within the country, by decreasing population; figures from citypopulation.de -- (retrieved 2025-04-26; reference date 2025-01-01) unless otherwise indicated. ["Kabul"] = {container = "Afghanistan"}, -- 5,250,000 (Agglomeration) ["Baku"] = {container = "Azerbaijan"}, -- 3,725,000 (Administrative Area (urban population)) ["Manama"] = {container = "Bahrain"}, -- 1,560,000 (unindicated) ["Dhaka"] = {container = {key = "Dhaka Division, Bangladesh", placetype = "division"}}, -- 23,100,000 (Agglomeration) ["Dacca"] = {alias_of = "Dhaka", display = true}, ["Chittagong"] = {container = {key = "Chittagong Division, Bangladesh", placetype = "division"}}, -- 5,050,000 (Agglomeration) ["Gazipur"] = {container = {key = "Dhaka Division, Bangladesh", placetype = "division"}}, -- 2,674,697 (City per 2022; countied in citypopulation.de as part of Dhaka metro area) ["Khulna"] = {container = {key = "Khulna Division, Bangladesh", placetype = "division"}}, -- 1,210,000 (Agglomeration) ["Phnom Penh"] = {container = "Cambodia"}, -- 2,925,000 (Agglomeration) ["Tehran"] = {container = {key = "Tehran Province, Iran", placetype = "province"}}, -- 16,800,000 (Agglomeration) ["Teheran"] = {alias_of = "Tehran", display = true}, ["Mashhad"] = {container = {key = "Razavi Khorasan Province, Iran", placetype = "province"}}, -- 3,475,000 (Agglomeration) ["Mashad"] = {alias_of = "Mashhad", display = true}, ["Meshhed"] = {alias_of = "Mashhad", display = true}, ["Meshed"] = {alias_of = "Mashhad", display = true}, ["Isfahan"] = {container = {key = "Isfahan Province, Iran", placetype = "province"}}, -- 3,425,000 (Agglomeration) ["Esfahan"] = {alias_of = "Isfahan", display = true}, ["Tabriz"] = {container = {key = "East Azerbaijan Province, Iran", placetype = "province"}}, -- 1,970,000 (Agglomeration) ["Shiraz"] = {container = {key = "Fars Province, Iran", placetype = "province"}}, -- 1,950,000 (Agglomeration) ["Ahvaz"] = {container = {key = "Khuzestan Province, Iran", placetype = "province"}}, -- 1,550,000 (Agglomeration) ["Qom"] = {container = {key = "Qom Province, Iran", placetype = "province"}}, -- 1,450,000 (City) ["Kermanshah"] = {container = {key = "Kermanshah Province, Iran", placetype = "province"}}, -- 1,130,000 (City) ["Baghdad"] = {container = "Iraq"}, -- 7,800,000 (Administrative Area (urban population)) ["Basra"] = {container = "Iraq"}, -- 1,710,000 (Administrative Area (urban population)) ["Mosul"] = {container = "Iraq"}, -- 1,550,000 (Administrative Area (urban population)) ["Erbil"] = {container = "Iraq"}, -- 1,220,000 (Administrative Area (urban population)) ["Kirkuk"] = {container = "Iraq"}, -- 1,160,000 (Administrative Area (urban population)) ["Najaf"] = {container = "Iraq"}, -- 1,050,000 (Administrative Area (urban population)) ["Tel Aviv"] = {container = "Israel"}, -- 3,000,000 (Agglomeration) -- Jerusalem is not recognized internationally as part of either Israel or Palestine, but as a -- [[w:corpus separatum]], so put the container as "Asia" and list Israel and Palestine as additional parents for -- categorization purposes. ["Jerusalem"] = {container = {key = "Asia", placetype = "continent"}, addl_parents = {"Israel", "Palestine"}}, -- 1,080,000 (Agglomeration) ["Amman"] = {container = "Jordan"}, -- 6,150,000 (unindicated) ["Irbid"] = {container = "Jordan"}, -- 1,070,000 (unindicated) ["Almaty"] = {container = "Kazakhstan"}, -- 2,700,000 (Agglomeration) ["Alma-Ata"] = {alias_of = "Almaty"}, -- former name, sometimes still used; don't display-canonicalize ["Astana"] = {container = "Kazakhstan"}, -- 1,600,000 (Agglomeration) ["Shymkent"] = {container = "Kazakhstan"}, -- 1,370,000 (Agglomeration) ["Kuwait City"] = {container = "Kuwait"}, -- 5,050,000 (Agglomeration) ["Bishkek"] = {container = "Kyrgyzstan"}, -- 1,540,000 (Agglomeration) ["Beirut"] = {container = "Lebanon"}, -- 1,930,000 (unindicated; population of low reliability) -- Kuala Lumpur is a federal capital city, not in any state ["Kuala Lumpur"] = {container = "Malaysia"}, -- 9,550,000 (Agglomeration) -- there are various George Towns and Georgetowns ["George Town, Malaysia"] = {container = {key = "Penang, Malaysia", placetype = "state"}, wp = "%l, %c"}, -- 2,075,000 (Agglomeration) ["George Town"] = {alias_of = "George Town, Malaysia"}, ["Ulaanbaatar"] = {container = "Mongolia"}, -- 1,610,000 (City) ["Ulan Bator"] = {alias_of = "Ulaanbaatar", display = true}, ["Yangon"] = {container = "Myanmar"}, -- 5,650,000 (Municipality (urban population)) ["Rangoon"] = {alias_of = "Yangon", display = true}, ["Mandalay"] = {container = "Myanmar"}, -- 1,600,000 (Municipality (urban population)) ["Kathmandu"] = {container = "Nepal"}, -- 3,175,000 (Agglomeration) -- Pyongyang is a directly governed city, not in any province ["Pyongyang"] = {container = "North Korea"}, -- 3,025,000 (Administrative Area (urban population)) ["Muscat"] = {container = "Oman"}, -- 1,620,000 (Agglomeration) ["Gaza"] = {container = "Palestine", wp = "Gaza City"}, -- 2,275,000 (unindicated) ["Gaza City"] = {alias_of = "Gaza"}, ["Doha"] = {container = "Qatar"}, -- 2,650,000 (Agglomeration) ["Colombo"] = {container = "Sri Lanka"}, -- 4,975,000 (unindicated) ["Damascus"] = {container = "Syria"}, -- 3,975,000 (unindicated; population of low reliability) ["Aleppo"] = {container = "Syria"}, -- 1,980,000 (unindicated; population of low reliability) ["Dushanbe"] = {container = "Tajikistan"}, -- 1,270,000 (City) ["Bangkok"] = {container = "Thailand"}, -- 21,800,000 (Agglomeration) -- Chiang Mai not in citypopulation.de, but 1,198,000 urban population in 2021 per Wikipedia -- [[w:List_of_municipalities_in_Thailand#Largest_cities_by_urban_population]] ["Chiang Mai"] = {container = {key = "Chiang Mai Province, Thailand", placetype = "province"}}, ["Chonburi"] = {container = {key = "Chonburi Province, Thailand", placetype = "province"}}, -- 1,570,000 (Agglomeration; including Pattaya) -- metro area population stats from https://www.statista.com/statistics/255483/biggest-cities-in-turkey/ as of 2021; -- second source is citypopulation.de reference date 2025-01-01. ["Istanbul"] = {placetype = {"city", "province"}, divs = {"districts"}, container = "Turkey"}, -- 15.2 million; 16,000,000 (Agglomeration) ["İstanbul"] = {alias_of = "Istanbul", display = true}, ["Ankara"] = {container = {key = "Ankara Province, Turkey", placetype = "province"}}, -- 5.15 million; 5,200,000 (Agglomeration) ["Izmir"] = {container = {key = "İzmir Province, Turkey", placetype = "province"}, wp = "İzmir"}, -- 2.95 million; 3,025,000 (Agglomeration) ["İzmir"] = {alias_of = "Izmir", display = true}, ["Bursa"] = {container = {key = "Bursa Province, Turkey", placetype = "province"}}, -- 2.02 million; 2,200,000 (Agglomeration) ["Adana"] = {container = {key = "Adana Province, Turkey", placetype = "province"}}, -- 1.77 million; 1,780,000 (Agglomeration) ["Gaziantep"] = {container = {key = "Gaziantep Province, Turkey", placetype = "province"}}, -- 1.71 million; 1,750,000 (Agglomeration) ["Antalya"] = {container = {key = "Antalya Province, Turkey", placetype = "province"}}, -- 1.3 million; 1,400,000 (Agglomeration) ["Konya"] = {container = {key = "Konya Province, Turkey", placetype = "province"}}, -- 1.35 million; 1,390,000 (Agglomeration) ["Diyarbakır"] = {container = {key = "Diyarbakır Province, Turkey", placetype = "province"}}, -- 1.07 million; 1,100,000 (Agglomeration) -- Diyarbakır is more common per Ngrams and Google Scholar, but Diyarbakir is the Kurdish form, so we should not -- display-canonicalize to the Turkish form Diyarbakır. ["Diyarbakir"] = {alias_of = "Diyarbakır"}, ["Mersin"] = {container = {key = "Mersin Province, Turkey", placetype = "province"}}, -- 1.03 million; 1,060,000 (Agglomeration) ["Ashgabat"] = {container = "Turkmenistan"}, -- 1,150,000 (Agglomeration) ["Dubai"] = {container = "United Arab Emirates"}, -- 6,050,000 (Agglomeration; including Sharjah) ["Abu Dhabi"] = {container = "United Arab Emirates"}, -- 1,850,000 (City) ["Sharjah"] = {container = "United Arab Emirates"}, -- 1,800,000 (Metro area 2022-2023 per Wikipedia; separate from Dubai) ["Tashkent"] = {container = "Uzbekistan"}, -- 3,850,000 (unindicated) ["Sanaa"] = {container = "Yemen"}, -- 3,275,000 (City; population of low reliability) ["Sana'a"] = {alias_of = "Sanaa", display = true}, ["Aden"] = {container = "Yemen"}, -- 1,079,060 (?; 2023 estimate from World Population Review per Wikipedia) ------------------ Europe or Europe-like (Caucasus etc.) --------------------- ["Yerevan"] = {container = "Armenia"}, -- 1,520,000 (Agglomeration) ["Vienna"] = {container = "Austria"}, -- 2,375,000 (Agglomeration) ["Minsk"] = {container = "Belarus"}, -- 2,100,000 (unindicated) ["Brussels"] = {container = "Belgium"}, -- 2,800,000 (Consolidated Urban Area) ["Antwerp"] = {container = "Belgium"}, -- 1,270,000 (Consolidated Urban Area) ["Sofia"] = {container = "Bulgaria"}, -- 1,260,000 (Agglomeration) ["Zagreb"] = {container = "Croatia"}, ["Prague"] = {container = "Czech Republic"}, -- 1,470,000 (Agglomeration) ["Brno"] = {container = "Czech Republic"}, -- 729,405 (metro area per Wikipedia as of 2024-01-01 Czech Statistical Office) ["Olomouc"] = {container = "Czech Republic"}, -- 102,293 (city; included only because someone went crazy creating Olomouc-related terms) ["Copenhagen"] = {container = "Denmark"}, -- 1,800,000 (Consolidated Urban Area) ["Helsinki"] = {container = {key = "Uusimaa, Finland", placetype = "region"}}, -- 1,560,000 (Consolidated Urban Area) ["Tbilisi"] = {container = "Georgia"}, -- 1,430,000 (Agglomeration) ["Athens"] = {container = "Greece"}, ["Thessaloniki"] = {container = "Greece"}, ["Budapest"] = {container = "Hungary"}, -- FIXME, per Wikipedia "County Dublin" is now the "Dublin Region" ["Dublin"] = {container = {key = "County Dublin, Ireland", placetype = "county"}}, ["Riga"] = {container = "Latvia"}, ["Amsterdam"] = {container = {key = "North Holland, Netherlands", placetype = "province"}}, ["Rotterdam"] = {container = {key = "South Holland, Netherlands", placetype = "province"}}, ["The Hague"] = {container = {key = "South Holland, Netherlands", placetype = "province"}}, -- Christchurch (metro 546,600) and Wellington (metro 439,800) are too small to make it. ["Auckland"] = {container = {key = "Auckland, New Zealand", placetype = "region"}}, ["Oslo"] = {container = {key = "Oslo, Norway", placetype = "county"}}, ["Warsaw"] = {container = {key = "Masovian Voivodeship, Poland", placetype = "voivodeship"}}, ["Katowice"] = {container = {key = "Silesian Voivodeship, Poland", placetype = "voivodeship"}}, --- Ngrams (up through 2022) and Google Scholar (>= 2024) confirms the common form "Krakow" without accent. ["Krakow"] = {container = {key = "Lesser Poland Voivodeship, Poland", placetype = "voivodeship"}, wp = "Kraków"}, ["Kraków"] = {alias_of = "Krakow", display = true}, ["Cracow"] = {alias_of = "Krakow", display = true}, --- Ngrams (up through 2022) and Google Scholar (>= 2024) confirm "Gdańsk" and "Poznań" with accent. ["Gdańsk"] = {container = {key = "Pomeranian Voivodeship, Poland", placetype = "voivodeship"}}, ["Gdansk"] = {alias_of = "Gdańsk", display = true}, ["Poznań"] = {container = {key = "Greater Poland Voivodeship, Poland", placetype = "voivodeship"}}, ["Poznan"] = {alias_of = "Poznań", display = true}, --- Ngrams (up through 2022) and Google Scholar (>= 2024) confirms the common form "Lodz" without accents. ["Lodz"] = {container = {key = "Lodz Voivodeship, Poland", placetype = "voivodeship"}, wp = "Łódź"}, ["Łódź"] = {alias_of = "Lodz", display = true}, ["Lisbon"] = {container = {key = "Lisbon District, Portugal", placetype = "district"}}, ["Porto"] = {container = {key = "Porto District, Portugal", placetype = "district"}}, ["Oporto"] = {alias_of = "Porto", display = true}, ["Bucharest"] = {container = "Romania"}, ["Belgrade"] = {container = "Serbia"}, ["Stockholm"] = {container = "Sweden"}, ["Zurich"] = {container = "Switzerland"}, --- Ngrams (up through 2022) and Google Scholar (>= 2024) confirms the common form "Zurich" without umlaut. --- Even Wikipedia uses the form without umlaut. ["Zürich"] = {alias_of = "Zurich", display = true}, ["Kyiv"] = {container = "Ukraine"}, -- not in Kyiv Oblast -- Don't display-canonicalize Kiev -> Kyiv because in ancient contexts, Kiev is still more common. ["Kiev"] = {alias_of = "Kyiv"}, ["Kharkiv"] = {container = {key = "Kharkiv Oblast, Ukraine", placetype = "oblast"}}, ["Odessa"] = {container = {key = "Odesa Oblast, Ukraine", placetype = "oblast"}, wp = "Odesa"}, -- Don't display-canonicalize Odesa -> Odessa because it may be interpreted as a political statement. ["Odesa"] = {alias_of = "Odessa"}, ------------------ North America, South America --------------------- -- Primary figures from citypopulation.de retrieved on 2025-04-26 (reference date 2025-01-01); -- Wikipedia metropolitan figures from [[w:List of metropolitan areas in the Americas]] based on per-country data; -- Wikipedia city limits figures from [[w:List of largest cities in the Americas]]. ["Buenos Aires"] = {container = "Argentina"}, -- 16,800,000 (Consolidated Urban Area; 13,985,794 metropolitan area per Wikipedia) ["Córdoba, Argentina"] = {container = "Argentina", wp = "%l, %c"}, -- 1,810,000 (Consolidated Urban Area; 1,505,25 city limits per Wikipedia) -- to avoid confusion with Córdoba in Spain ["Córdoba"] = {alias_of = "Córdoba, Argentina"}, ["Cordoba"] = {alias_of = "Córdoba, Argentina", display = "Córdoba"}, ["Rosario"] = {container = "Argentina", wp = "%l, Santa Fe"}, -- 1,510,000 (Consolidated Urban Area; 1,348,725 metropolitan area per Wikipedia) ["Mendoza"] = {container = "Argentina", wp = "%l, %c"}, -- 1,180,000 (Consolidated Urban Area) ["San Miguel de Tucumán"] = {container = "Argentina"}, -- 1,110,000 (Consolidated Urban Area) ["Tucumán"] = {alias_of = "San Miguel de Tucumán"}, ["Tucuman"] = {alias_of = "San Miguel de Tucumán", display = "Tucumán"}, ["Santa Cruz de la Sierra"] = {container = "Bolivia"}, -- 1,960,000 (Consolidated Urban Area); 1,606,671 (city limits per Wikipedia) ["Santa Cruz"] = {alias_of = "Santa Cruz de la Sierra"}, ["La Paz"] = {container = "Bolivia"}, -- 1,870,000 (Consolidated Urban Area; composed of El Alto, now slightly larger, and La Paz) ["El Alto"] = {container = "Bolivia"}, ["Cochabamba"] = {container = "Bolivia"}, -- 1,280,000 (Consolidated Urban Area) ["Santiago"] = {container = "Chile"}, -- 8,400,000 (Consolidated Urban Area; 6,903,479 city limits? per Wikipedia) ["Valparaíso"] = {container = "Chile"}, -- 1,060,000 (Consolidated Urban Area) ["Valparaiso"] = {alias_of = "Valparaíso"}, -- 1,060,000 (Consolidated Urban Area) ["Bogotá"] = {container = "Colombia"}, -- 10,600,000 (Agglomeration; 12,772,828 metropolitan area per Wikipedia) ["Bogota"] = {alias_of = "Bogotá", display = true}, ["Medellín"] = {container = "Colombia"}, -- 4,350,000 (Agglomeration; 4,068,000 metropolitan area per Wikipedia) ["Medellin"] = {alias_of = "Medellín", display = true}, ["Cali"] = {container = "Colombia"}, -- 2,975,000 (Agglomeration; 2,837,000 metropolitan area per Wikipedia) ["Barranquilla"] = {container = "Colombia"}, -- 2,375,000 (Agglomeration; 1,341,160 city limits per Wikipedia) ["Bucaramanga"] = {container = "Colombia"}, -- 1,380,000 (Agglomeration) ["Cartagena, Colombia"] = {container = "Colombia", wp = "%l, %c"}, -- 1,250,000 (Agglomeration) -- to avoid confusion with Cartagena, Spain ["Cartagena"] = {alias_of = "Cartagena, Colombia"}, ["Cúcuta"] = {container = "Colombia"}, -- 1,130,000 (Agglomeration) ["Cucuta"] = {alias_of = "Cúcuta", display = true}, -- to avoid conflict with San Jose, California ["San José, Costa Rica"] = {container = "Costa Rica", wp = "%l, %c"}, -- 2,450,000 (Municipality (urban population); 3,160,000 metropolitan area per Wikipedia) ["San José"] = {alias_of = "San José, Costa Rica"}, ["San Jose"] = {alias_of = "San José, Costa Rica"}, -- display = "San José"; causes error due to San Jose alias for California city; FIXME ["Havana"] = {container = "Cuba"}, -- 2,150,000 (City; 2,137,847 city limits? per Wikipedia) ["Santo Domingo"] = {container = "Dominican Republic"}, -- 3,900,000 (Municipality (urban population); 4,274,651 ??? per Wikipedia) ["Guayaquil"] = {container = "Ecuador"}, -- 3,350,000 (Agglomeration; 3,092,000 metro area? per Wikipedia) ["Quito"] = {container = "Ecuador"}, -- 2,875,000 (Agglomeration; 2,889,703 metro area? per Wikipedia) ["San Salvador"] = {container = "El Salvador"}, -- 1,580,000 (Municipality (urban population)) ["Guatemala City"] = {container = "Guatemala"}, -- 3,375,000 (Municipality (urban population); 3,160,000 metro area? per Wikipedia) ["Port-au-Prince"] = {container = "Haiti"}, -- 3,050,000 (Agglomeration; population of low reliability; 2,915,000 metro area? per Wikipedia) ["San Pedro Sula"] = {container = "Honduras"}, -- 1,330,000 (Consolidated Urban Area) ["Tegucigalpa"] = {container = "Honduras"}, -- 1,220,000 (Urban Area) ["Managua"] = {container = "Nicaragua"}, -- 1,400,000 (Consolidated Urban Area) ["Panama City"] = {container = "Panama"}, -- 1,430,000 (Urban Area) ["Asunción"] = {container = "Paraguay"}, -- 2,350,000 (Municipality (urban population)) ["Lima"] = {container = "Peru"}, -- 12,000,000 (Agglomeration; 11,283,787 ??? per Wikipedia) ["Arequipa"] = {container = "Peru"}, -- 1,210,000 (Agglomeration) ["San Juan"] = {container = {key = "Puerto Rico", placetype = "commonwealth"}, wp = "%l, %c"}, -- 1,910,000 (Consolidated Urban Area) ["Montevideo"] = {container = "Uruguay"}, -- 1,810,000 (Agglomeration; 1,302,954 ??? per Wikipedia) ["Caracas"] = {container = "Venezuela"}, -- 3,850,000 (Consolidated Urban Area; 5,243,301 ??? per Wikipedia) ["Maracaibo"] = {container = "Venezuela"}, -- 2,825,000 (Consolidated Urban Area; 5,278,448 ??? per Wikipedia) -- to avoid confusion with Valencia (city and autonomous community of Spain) ["Valencia, Venezuela"] = {container = "Venezuela", wp = "%l, %c"}, -- 2,100,000 (Consolidated Urban Area) ["Valencia"] = {alias_of = "Valencia, Venezuela"}, ["Maracay"] = {container = "Venezuela"}, -- 1,480,000 (Consolidated Urban Area) ["Barquisimeto"] = {container = "Venezuela"}, -- 1,360,000 (Consolidated Urban Area) } export.misc_cities_group = { canonicalize_key_container = make_canonicalize_key_container(nil, "bansa"), --TLCHANGE make_canonicalize_key_container(nil, "country"), default_placetype = "city", data = export.misc_cities, } --[==[ var: List of all known locations, in groups. The first group lists continents and continental regions, followed by three groups listing top-level locations: countries, "country-like entities" (de-facto/unrecognized/etc. countries and dependent territories) and former polities (countries, empires, etc.). After that come first-level subpolities (administrative divisions) of several, mostly large, countries, followed by groups of cities. China and the United Kingdom include second-level subpolities (in the case of China, only the largest ones as the full list runs in the hundreds). ]==] export.locations = { export.continents_group, export.countries_group, export.country_like_entities_group, export.former_countries_group, export.australia_group, export.austria_group, export.bangladesh_group, export.brazil_group, export.bulgaria_group, export.canada_group, export.china_group, export.china_prefecture_level_cities_group, export.china_prefecture_level_cities_group_2, export.egypt_group, export.finland_group, export.france_group, export.france_departments_group, export.germany_group, export.greece_group, export.india_group, export.indonesia_group, export.iran_group, export.ireland_group, export.italy_group, export.japan_group, export.laos_group, export.lebanon_group, export.malaysia_group, export.malta_group, export.mexico_group, export.moldova_group, export.morocco_group, export.netherlands_group, export.new_zealand_group, export.nigeria_group, export.north_korea_group, export.norway_group, export.pakistan_group, export.philippines_group, export.poland_group, export.portugal_group, export.romania_group, export.russia_group, export.saudi_arabia_group, export.south_africa_group, export.south_korea_group, export.spain_group, export.taiwan_group, export.thailand_group, export.turkey_group, export.ukraine_group, export.united_kingdom_group, export.united_states_group, export.england_group, export.northern_ireland_group, export.scotland_group, export.wales_group, export.vietnam_group, export.australia_cities_group, export.brazil_cities_group, export.canada_cities_group, export.france_cities_group, export.germany_cities_group, export.india_cities_group, export.indonesia_cities_group, export.italy_cities_group, export.japan_cities_group, export.mexico_cities_group, export.nigeria_cities_group, export.pakistan_cities_group, export.philippines_cities_group, export.russia_cities_group, export.saudi_arabia_cities_group, export.south_korea_cities_group, export.spain_cities_group, export.taiwan_cities_group, export.united_kingdom_cities_group, export.united_states_cities_group, export.new_york_boroughs_group, export.vietnam_cities_group, export.misc_cities_group, } return export nifcmlgu562u4qlwr221lvxl63vrvsa Module:sl-nouns 828 37642 176740 175650 2026-04-26T14:36:31Z Hiyuune 5522 176740 Scribunto text/plain local export = {} local lang = require("Module:languages").getByCode("sl") -- Functions that do the actual inflecting by creating the forms of a basic term. local inflections = {} -- Checks each form for the presence of accent marks. -- If any form doesn't contain any accent marks, flag the entry for attention. local function check_accents(args, data) -- Do we need to check? local noacc = args["noacc"]; if noacc == "" then noacc = nil end if noacc then return end -- Yes, we do need to check. for key, subforms in pairs(data.forms) do for key2, subform in ipairs(subforms) do if not require("Module:sl-common").has_accents(subform) then table.insert(data.categories, "Requests for accents in Slovene noun entries") return -- So that we don't add the category more than once end end end end -- Make the table local function make_table(data) local function repl(param) local accel = false -- Temporary local no_store = false if param == "info" then return mw.getContentLanguage():ucfirst(data.info or "") elseif string.sub(param, 1, 1) == "!" then no_store = true param = string.sub(param, 2) elseif string.sub(param, 1, 1) == "#" then accel = false param = string.sub(param, 2) end local forms = data.forms[param] if not forms then return "&mdash;" end local ret = {} for key, subform in ipairs(forms) do table.insert(ret, require("Module:links").full_link({lang = lang, term = subform, accel = accel and {form = param, no_store = no_store} or nil})) end return table.concat(ret, "<br/>") end local wikicode if data.num then wikicode = mw.getCurrentFrame():expandTemplate{ title = 'sl-non-tonal', args = { intro = 'section' } } .. '\n' .. [=[ {| class="inflection-table vsSwitcher" data-toggle-category="inflection" style="border: 1px solid var(--wikt-palette-grey, #9e9e9e);" |- style="background: var(--wikt-palette-lightblue, #d9ebff); text-align: left;" ! class="vsToggleElement" colspan="2" | {{{info}}} |- class="vsShow" ! style="width: 11em; background: var(--wikt-palette-lighterblue, #ebf4ff);" | nominative | style="width: 11em;" colspan="2" | {{{!nom_]=] .. data.num .. [=[}}} |- class="vsShow" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | genitive | colspan="2" | {{{!gen_]=] .. data.num .. [=[}}} |- class="vsHide" ! style="background: var(--wikt-palette-lightblue, #d9ebff); width: 11em;" | ! style="background: var(--wikt-palette-lightblue, #d9ebff); width: 11em;" | ]=] .. (data.num == "pl" and "plural" or data.num == "du" and "dual" or "singular") .. [=[ |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | nominative<br><small>(imenovȃlnik)</small> | {{{nom_]=] .. data.num .. [=[}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | genitive<br><small>(rodȋlnik)</small> | {{{gen_]=] .. data.num .. [=[}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | dative<br><small>(dajȃlnik)</small> | {{{dat_]=] .. data.num .. [=[}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | accusative<br><small>(tožȋlnik)</small> | {{{acc_]=] .. data.num .. [=[}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | locative<br><small>(mẹ̑stnik)</small> | {{{loc_]=] .. data.num .. [=[}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | instrumental<br><small>(orọ̑dnik)</small> | {{{ins_]=] .. data.num .. [=[}}} |}]=] else wikicode = mw.getCurrentFrame():expandTemplate{ title = 'sl-non-tonal', args = { intro = 'section' } } .. '\n' .. [=[ {| class="inflection-table vsSwitcher" data-toggle-category="inflection" style="border: 1px solid var(--wikt-palette-grey, #9e9e9e);" |- style="background: var(--wikt-palette-lightblue, #d9ebff); text-align: left;" ! class="vsToggleElement" colspan="4" | {{{info}}} |- class="vsShow" ! style="width: 11em; background: var(--wikt-palette-lighterblue, #ebf4ff);" | nom. sing. | style="width: 11em;" colspan="3" | {{{!nom_sg}}} |- class="vsShow" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | gen. sing. | colspan="3" | {{{!gen_sg}}} |- class="vsHide" ! style="background: var(--wikt-palette-lightblue, #d9ebff); width: 11em;" | ! style="background: var(--wikt-palette-lightblue, #d9ebff); width: 11em;" | singular ! style="background: var(--wikt-palette-lightblue, #d9ebff); width: 11em;" | dual ! style="background: var(--wikt-palette-lightblue, #d9ebff); width: 11em;" | plural |- class="vsHide" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | nominative<br><small>(imenovȃlnik)</small> | {{{nom_sg}}} | {{{nom_du}}} | {{{nom_pl}}} |- class="vsHide" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | genitive<br><small>(rodȋlnik)</small> | {{{gen_sg}}} | {{{gen_du}}} | {{{gen_pl}}} |- class="vsHide" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | dative<br><small>(dajȃlnik)</small> | {{{dat_sg}}} | {{{dat_du}}} | {{{dat_pl}}} |- class="vsHide" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | accusative<br><small>(tožȋlnik)</small> | {{{acc_sg}}} | {{{acc_du}}} | {{{acc_pl}}} |- class="vsHide" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | locative<br><small>(mẹ̑stnik)</small> | {{{loc_sg}}} | {{{loc_du}}} | {{{loc_pl}}} |- class="vsHide" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | instrumental<br><small>(orọ̑dnik)</small> | {{{ins_sg}}} | {{{ins_du}}} | {{{ins_pl}}} |}]=] end return mw.ustring.gsub(wikicode, "{{{([^}]+)}}}", repl) .. require("Module:utilities").format_categories(data.categories, lang) end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local infl_type = frame.args[1] or error("Inflection type has not been specified.") local args = frame:getParent().args local num = args["n"]; if num == "" then num = nil end local data = {forms = {}, info = nil, categories = {}, num = num} if inflections[infl_type] then inflections[infl_type](args, data) else error("Unknown inflection type '" .. infl_type .. "'") end check_accents(args, data) return make_table(data) end local function make_endingless_stem(stem) local stem_noaccents = mw.ustring.lower(require("Module:sl-common").remove_accents(stem)) if mw.ustring.find(stem_noaccents, "[^aeioujlrv][ln]j$") then return mw.ustring.gsub(stem, "([ln]j)$", "e%1") elseif mw.ustring.find(stem_noaccents, "[^aeiouln]j$") then return mw.ustring.gsub(stem, "j$", "ij") elseif mw.ustring.find(stem_noaccents, "[^aeiou]r$") or mw.ustring.find(stem_noaccents, "[^aeioujlrv][lmnv]$") then return mw.ustring.gsub(stem, "(.)$", "e%1") else return stem end end -- Masculine o-stem inflections["m"] = function(args, data) local stem_noending = args[1]; if stem_noending == "" then stem_noending = nil end local stem = args[2]; if stem == "" then stem = nil end local anim = args["a"]; if not anim or anim == "" then anim = false else anim = true end local nom_pl = args["nom_pl"]; if nom_pl == "" then nom_pl = nil end local nom_pl2 = args["nom_pl2"]; if nom_pl2 == "" then nom_pl2 = nil end if not stem_noending then if mw.title.getCurrentTitle().nsText == "Padron" then stem_noending = "-" else error("1st parameter (stem) has not been specified.") end end if not stem then stem = stem_noending stem_noending = make_endingless_stem(stem) end -- Is this a hard stem or a soft stem? local oe = "o" local hs = "hard" data.info = "masculine " .. (anim and "anim." or "inan.") if require("Module:sl-common").is_soft(stem) then oe = "e" hs = "soft" end data.info = data.info .. ", " .. hs .. " o-stem" table.insert(data.categories, "Slovene masculine " .. hs .. " o-stem nouns") -- Categorize further local stem_noaccents = require("Module:sl-common").remove_accents(stem) local stem_noending_noaccents = require("Module:sl-common").remove_accents(stem_noending) local corrected_stem = nil if stem_noaccents == stem_noending_noaccents then corrected_stem = stem_noending elseif stem_noaccents == mw.ustring.gsub(stem_noending_noaccents, "e([ln]j)$", "%1") then corrected_stem = mw.ustring.gsub(stem_noending, "e([ln]j)$", "%1") elseif stem_noaccents == mw.ustring.gsub(stem_noending_noaccents, "e(.)$", "%1") then corrected_stem = mw.ustring.gsub(stem_noending, "e(.)$", "%1") elseif stem_noaccents == mw.ustring.gsub(stem_noending_noaccents, "[aeiou]$", "") then table.insert(data.categories, "Slovene masculine o-stem nouns with final vowel") corrected_stem = mw.ustring.gsub(stem_noending, "[aeiou]$", "") elseif stem_noaccents == stem_noending_noaccents .. "j" then table.insert(data.categories, "Slovene masculine soft o-stem nouns with j-infix") corrected_stem = stem_noending .. "j" elseif stem_noaccents == stem_noending_noaccents .. "-j" then table.insert(data.categories, "Slovene masculine soft o-stem nouns with j-infix") corrected_stem = stem_noending .. "-j" elseif stem_noaccents == stem_noending_noaccents .. "n" then table.insert(data.categories, "Slovene masculine hard o-stem nouns with n-infix") corrected_stem = stem_noending .. "n" elseif stem_noaccents == stem_noending_noaccents .. "t" then table.insert(data.categories, "Slovene masculine hard o-stem nouns with t-infix") corrected_stem = stem_noending .. "t" else table.insert(data.categories, "Slovene irregular nouns") end if corrected_stem and stem ~= corrected_stem then table.insert(data.categories, "Slovene nouns with accent alternations") end -- Singular data.forms["nom_sg"] = {stem_noending} data.forms["acc_sg"] = {anim and stem .. "a" or stem_noending} data.forms["gen_sg"] = {stem .. "a"} data.forms["dat_sg"] = {stem .. "u"} data.forms["loc_sg"] = {stem .. "u"} data.forms["ins_sg"] = {stem .. oe .. "m"} -- Dual data.forms["nom_du"] = {stem .. "a"} data.forms["acc_du"] = {stem .. "a"} data.forms["gen_du"] = {stem .. oe .. "v"} data.forms["dat_du"] = {stem .. oe .. "ma"} data.forms["loc_du"] = {stem .. "ih"} data.forms["ins_du"] = {stem .. oe .. "ma"} -- Plural data.forms["nom_pl"] = {nom_pl or stem .. "i", nom_pl2} data.forms["acc_pl"] = {stem .. "e"} data.forms["gen_pl"] = {stem .. oe .. "v"} data.forms["dat_pl"] = {stem .. oe .. "m"} data.forms["loc_pl"] = {stem .. "ih"} data.forms["ins_pl"] = {stem .. "i"} end -- Masculine o-stem, plural in -ôv- inflections["m-ov"] = function(args, data) local stem_noending = args[1]; if stem_noending == "" then stem_noending = nil end local stem = args[2]; if stem == "" then stem = nil end local gen_sg_ending = args[3]; if gen_sg_ending == "" then gen_sg_ending = nil end local anim = args["a"]; if not anim or anim == "" then anim = false else anim = true end if not stem_noending then if mw.title.getCurrentTitle().nsText == "Padron" then stem_noending = "-" else error("1st parameter (stem) has not been specified.") end end if not stem then stem = stem_noending stem_noending = make_endingless_stem(stem) end local stem_noaccents = require("Module:sl-common").remove_accents(stem) local gen_sg = stem .. "a" if gen_sg_ending == "á" or gen_sg_ending == "ú" then gen_sg = stem_noaccents .. gen_sg_ending elseif gen_sg_ending then error("3rd parameter (genitive singular ending) must be \"á\" or \"ú\".") end -- Is this a hard stem or a soft stem? local oe = "o" local hs = "hard" data.info = "masculine " .. (anim and "anim." or "inan.") if require("Module:sl-common").is_soft(stem) then oe = "e" hs = "soft" end data.info = data.info .. ", " .. hs .. " o-stem" table.insert(data.categories, "Slovene masculine " .. hs .. " o-stem nouns") if gen_sg_ending then data.info = data.info .. ", long mixed accent" table.insert(data.categories, "Slovene masculine o-stem nouns with long mixed accent") end if data.num ~= "sg" then data.info = data.info .. ", plural in " .. require("Module:links").full_link({lang = lang, alt = "-ôv-"}, "term") table.insert(data.categories, "Slovene masculine o-stem nouns with plural in -ov-") end -- Categorize further local stem_noending_noaccents = require("Module:sl-common").remove_accents(stem_noending) local corrected_stem = nil if stem_noaccents == stem_noending_noaccents then corrected_stem = stem_noending elseif stem_noaccents == mw.ustring.gsub(stem_noending_noaccents, "e([ln]j)$", "%1") then corrected_stem = mw.ustring.gsub(stem_noending, "e([ln]j)$", "%1") elseif stem_noaccents == mw.ustring.gsub(stem_noending_noaccents, "e(.)$", "%1") then corrected_stem = mw.ustring.gsub(stem_noending, "e(.)$", "%1") elseif stem_noaccents == mw.ustring.gsub(stem_noending_noaccents, "[aeiou]$", "") then table.insert(data.categories, "Slovene masculine o-stem nouns with final vowel") corrected_stem = mw.ustring.gsub(stem_noending, "[aeiou]$", "") elseif stem_noaccents == stem_noending_noaccents .. "j" then table.insert(data.categories, "Slovene masculine soft o-stem nouns with j-infix") corrected_stem = stem_noending .. "j" elseif stem_noaccents == stem_noending_noaccents .. "-j" then table.insert(data.categories, "Slovene masculine soft o-stem nouns with j-infix") corrected_stem = stem_noending .. "-j" elseif stem_noaccents == stem_noending_noaccents .. "n" then table.insert(data.categories, "Slovene masculine hard o-stem nouns with n-infix") corrected_stem = stem_noending .. "n" elseif stem_noaccents == stem_noending_noaccents .. "t" then table.insert(data.categories, "Slovene masculine hard o-stem nouns with t-infix") corrected_stem = stem_noending .. "t" else table.insert(data.categories, "Slovene irregular nouns") end if corrected_stem and stem ~= corrected_stem then table.insert(data.categories, "Slovene nouns with accent alternations") end -- Singular data.forms["nom_sg"] = {stem_noending} data.forms["acc_sg"] = {anim and gen_sg or stem_noending} data.forms["gen_sg"] = {gen_sg} data.forms["dat_sg"] = {stem .. "u"} data.forms["loc_sg"] = {stem .. "u"} data.forms["ins_sg"] = {stem .. oe .. "m"} -- Dual data.forms["nom_du"] = {stem_noaccents .. "ôva"} data.forms["acc_du"] = {stem_noaccents .. "ôva"} data.forms["gen_du"] = {stem_noaccents .. "ôv"} data.forms["dat_du"] = {stem_noaccents .. "ôvoma"} data.forms["loc_du"] = {stem_noaccents .. "ôvih"} data.forms["ins_du"] = {stem_noaccents .. "ôvoma"} -- Plural data.forms["nom_pl"] = {stem_noaccents .. "ôvi"} data.forms["acc_pl"] = {stem_noaccents .. "ôve"} data.forms["gen_pl"] = {stem_noaccents .. "ôv"} data.forms["dat_pl"] = {stem_noaccents .. "ôvom"} data.forms["loc_pl"] = {stem_noaccents .. "ôvih"} data.forms["ins_pl"] = {stem_noaccents .. "ôvi"} end -- Masculine a-stem inflections["m-a"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end local anim = args["a"]; if not anim or anim == "" then anim = false else anim = true end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noending = make_endingless_stem(stem) data.info = "masculine " .. (anim and "anim." or "inan.") .. ", a-stem" table.insert(data.categories, "Slovene masculine a-stem nouns") -- Singular data.forms["nom_sg"] = {stem .. "a"} data.forms["acc_sg"] = {stem .. "o"} data.forms["gen_sg"] = {stem .. "e"} data.forms["dat_sg"] = {stem .. "i"} data.forms["loc_sg"] = {stem .. "i"} data.forms["ins_sg"] = {stem .. "o"} -- Dual data.forms["nom_du"] = {stem .. "i"} data.forms["acc_du"] = {stem .. "i"} data.forms["gen_du"] = {stem_noending} data.forms["dat_du"] = {stem .. "ama"} data.forms["loc_du"] = {stem .. "ah"} data.forms["ins_du"] = {stem .. "ama"} -- Plural data.forms["nom_pl"] = {stem .. "e"} data.forms["acc_pl"] = {stem .. "e"} data.forms["gen_pl"] = {stem_noending} data.forms["dat_pl"] = {stem .. "am"} data.forms["loc_pl"] = {stem .. "ah"} data.forms["ins_pl"] = {stem .. "ami"} end -- Feminine a-stem inflections["f"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noending = make_endingless_stem(stem) data.info = "feminine, a-stem" table.insert(data.categories, "Slovene feminine a-stem nouns") -- Singular data.forms["nom_sg"] = {stem .. "a"} data.forms["acc_sg"] = {stem .. "o"} data.forms["gen_sg"] = {stem .. "e"} data.forms["dat_sg"] = {stem .. "i"} data.forms["loc_sg"] = {stem .. "i"} data.forms["ins_sg"] = {stem .. "o"} -- Dual data.forms["nom_du"] = {stem .. "i"} data.forms["acc_du"] = {stem .. "i"} data.forms["gen_du"] = {stem_noending} data.forms["dat_du"] = {stem .. "ama"} data.forms["loc_du"] = {stem .. "ah"} data.forms["ins_du"] = {stem .. "ama"} -- Plural data.forms["nom_pl"] = {stem .. "e"} data.forms["acc_pl"] = {stem .. "e"} data.forms["gen_pl"] = {stem_noending} data.forms["dat_pl"] = {stem .. "am"} data.forms["loc_pl"] = {stem .. "ah"} data.forms["ins_pl"] = {stem .. "ami"} end -- Feminine a-stem, mixed accent paradigm inflections["f-mobile"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end local gen_pl = args["gen_pl"]; if gen_pl == "" then gen_pl = nil end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noaccents = require("Module:sl-common").remove_accents(stem) gen_pl = gen_pl or stem_noaccents .. "á" data.info = "feminine, a-stem, long mixed accent" table.insert(data.categories, "Slovene feminine a-stem nouns") table.insert(data.categories, "Slovene feminine a-stem nouns with long mixed accent") -- Singular data.forms["nom_sg"] = {stem .. "a"} data.forms["acc_sg"] = {stem_noaccents .. "ó"} data.forms["gen_sg"] = {stem_noaccents .. "é"} data.forms["dat_sg"] = {stem .. "i"} data.forms["loc_sg"] = {stem .. "i"} data.forms["ins_sg"] = {stem_noaccents .. "ó"} -- Dual data.forms["nom_du"] = {stem_noaccents .. "é"} data.forms["acc_du"] = {stem_noaccents .. "é"} data.forms["gen_du"] = {gen_pl} data.forms["dat_du"] = {stem_noaccents .. "áma"} data.forms["loc_du"] = {stem_noaccents .. "àh"} data.forms["ins_du"] = {stem_noaccents .. "áma"} -- Plural data.forms["nom_pl"] = {stem_noaccents .. "é"} data.forms["acc_pl"] = {stem_noaccents .. "é"} data.forms["gen_pl"] = {gen_pl} data.forms["dat_pl"] = {stem_noaccents .. "àm"} data.forms["loc_pl"] = {stem_noaccents .. "àh"} data.forms["ins_pl"] = {stem_noaccents .. "ámi"} end -- Feminine v-stem inflections["f-v"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noending = stem .. "ev" stem = stem .. "v" data.info = "feminine, v-stem" table.insert(data.categories, "Slovene feminine v-stem nouns") -- Singular data.forms["nom_sg"] = {stem_noending} data.forms["acc_sg"] = {stem_noending} data.forms["gen_sg"] = {stem .. "e"} data.forms["dat_sg"] = {stem .. "i"} data.forms["loc_sg"] = {stem .. "i"} data.forms["ins_sg"] = {stem .. "ijo"} -- Dual data.forms["nom_du"] = {stem .. "i"} data.forms["acc_du"] = {stem .. "i"} data.forms["gen_du"] = {stem_noending} data.forms["dat_du"] = {stem .. "ama"} data.forms["loc_du"] = {stem .. "ah"} data.forms["ins_du"] = {stem .. "ama"} -- Plural data.forms["nom_pl"] = {stem .. "e"} data.forms["acc_pl"] = {stem .. "e"} data.forms["gen_pl"] = {stem_noending} data.forms["dat_pl"] = {stem .. "am"} data.forms["loc_pl"] = {stem .. "ah"} data.forms["ins_pl"] = {stem .. "ami"} end -- Feminine i-stem inflections["f-i"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noending = make_endingless_stem(stem) data.info = "feminine, i-stem" table.insert(data.categories, "Slovene feminine i-stem nouns") -- Singular data.forms["nom_sg"] = {stem_noending} data.forms["acc_sg"] = {stem_noending} data.forms["gen_sg"] = {stem .. "i"} data.forms["dat_sg"] = {stem .. "i"} data.forms["loc_sg"] = {stem .. "i"} data.forms["ins_sg"] = {stem .. (stem ~= stem_noending and "i" or "") .. "jo"} -- Dual data.forms["nom_du"] = {stem .. "i"} data.forms["acc_du"] = {stem .. "i"} data.forms["gen_du"] = {stem .. "i"} data.forms["dat_du"] = {stem .. (stem ~= stem_noending and "i" or "") .. "ma"} data.forms["loc_du"] = {stem .. "ih"} data.forms["ins_du"] = {stem .. (stem ~= stem_noending and "i" or "") .. "ma"} -- Plural data.forms["nom_pl"] = {stem .. "i"} data.forms["acc_pl"] = {stem .. "i"} data.forms["gen_pl"] = {stem .. "i"} data.forms["dat_pl"] = {stem .. "im"} data.forms["loc_pl"] = {stem .. "ih"} data.forms["ins_pl"] = {stem .. (stem ~= stem_noending and "i" or "") .. "mi"} end -- Feminine i-stem, mixed accent paradigm inflections["f-i-mobile"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end local stem_dat_loc_sg = args[2]; if stem_dat_loc_sg == "" then stem_dat_loc_sg = nil end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noending = make_endingless_stem(stem) local stem_noaccents = require("Module:sl-common").remove_accents(stem) stem_dat_loc_sg = stem_dat_loc_sg or stem data.info = "feminine, i-stem, long mixed accent" table.insert(data.categories, "Slovene feminine i-stem nouns") table.insert(data.categories, "Slovene feminine i-stem nouns with long mixed accent") -- Singular data.forms["nom_sg"] = {stem_noending} data.forms["acc_sg"] = {stem_noending} data.forms["gen_sg"] = {stem_noaccents .. "í"} data.forms["dat_sg"] = {stem_dat_loc_sg .. "i"} data.forms["loc_sg"] = {stem_dat_loc_sg .. "i"} data.forms["ins_sg"] = {stem_noaccents .. (stem ~= stem_noending and "i" or "") .. "jó"} -- Dual data.forms["nom_du"] = {stem_noaccents .. "í"} data.forms["acc_du"] = {stem_noaccents .. "í"} data.forms["gen_du"] = {stem_noaccents .. "í"} data.forms["dat_du"] = {stem_noaccents .. "éma"} data.forms["loc_du"] = {stem_noaccents .. "éh"} data.forms["ins_du"] = {stem_noaccents .. "éma"} -- Plural data.forms["nom_pl"] = {stem_noaccents .. "í"} data.forms["acc_pl"] = {stem_noaccents .. "í"} data.forms["gen_pl"] = {stem_noaccents .. "í"} data.forms["dat_pl"] = {stem_noaccents .. "ém"} data.forms["loc_pl"] = {stem_noaccents .. "éh"} data.forms["ins_pl"] = {stem_noaccents .. (stem ~= stem_noending and "i" or "") .. "mí"} end -- Neuter o-stem inflections["n"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noending = make_endingless_stem(stem) -- Is this a hard stem or a soft stem? local oe = "o" data.info = "neuter" if require("Module:sl-common").is_soft(stem) then oe = "e" data.info = data.info .. ", soft" table.insert(data.categories, "Slovene neuter soft o-stem nouns") else data.info = data.info .. ", hard" table.insert(data.categories, "Slovene neuter hard o-stem nouns") end -- Singular data.forms["nom_sg"] = {stem .. oe} data.forms["acc_sg"] = {stem .. oe} data.forms["gen_sg"] = {stem .. "a"} data.forms["dat_sg"] = {stem .. "u"} data.forms["loc_sg"] = {stem .. "u"} data.forms["ins_sg"] = {stem .. oe .. "m"} -- Dual data.forms["nom_du"] = {stem .. "i"} data.forms["acc_du"] = {stem .. "i"} data.forms["gen_du"] = {stem_noending} data.forms["dat_du"] = {stem .. oe .. "ma"} data.forms["loc_du"] = {stem .. "ih"} data.forms["ins_du"] = {stem .. oe .. "ma"} -- Plural data.forms["nom_pl"] = {stem .. "a"} data.forms["acc_pl"] = {stem .. "a"} data.forms["gen_pl"] = {stem_noending} data.forms["dat_pl"] = {stem .. oe .. "m"} data.forms["loc_pl"] = {stem .. "ih"} data.forms["ins_pl"] = {stem .. "i"} end return export 3o3v7p7qvq4zv9nuk2ykduoojj3tmsf 176741 176740 2026-04-26T23:58:25Z Yivan000 4078 176741 Scribunto text/plain local export = {} local lang = require("Module:languages").getByCode("sl") -- Functions that do the actual inflecting by creating the forms of a basic term. local inflections = {} -- Checks each form for the presence of accent marks. -- If any form doesn't contain any accent marks, flag the entry for attention. local function check_accents(args, data) -- Do we need to check? local noacc = args["noacc"]; if noacc == "" then noacc = nil end if noacc then return end -- Yes, we do need to check. for key, subforms in pairs(data.forms) do for key2, subform in ipairs(subforms) do if not require("Module:sl-common").has_accents(subform) then table.insert(data.categories, "Requests for accents in Slovene noun entries") return -- So that we don't add the category more than once end end end end -- Make the table local function make_table(data) local function repl(param) local accel = false -- Temporary local no_store = false if param == "info" then return mw.getContentLanguage():ucfirst(data.info or "") elseif string.sub(param, 1, 1) == "!" then no_store = true param = string.sub(param, 2) elseif string.sub(param, 1, 1) == "#" then accel = false param = string.sub(param, 2) end local forms = data.forms[param] if not forms then return "&mdash;" end local ret = {} for key, subform in ipairs(forms) do table.insert(ret, require("Module:links").full_link({lang = lang, term = subform, accel = accel and {form = param, no_store = no_store} or nil})) end return table.concat(ret, "<br/>") end local wikicode if data.num then wikicode = mw.getCurrentFrame():expandTemplate{ title = 'sl-non-tonal', args = { intro = 'section' } } .. '\n' .. [=[ {| class="inflection-table vsSwitcher" data-toggle-category="inflection" style="border: 1px solid var(--wikt-palette-grey, #9e9e9e);" |- style="background: var(--wikt-palette-lightblue, #d9ebff); text-align: left;" ! class="vsToggleElement" colspan="2" | {{{info}}} |- class="vsShow" ! style="width: 11em; background: var(--wikt-palette-lighterblue, #ebf4ff);" | nominative | style="width: 11em;" colspan="2" | {{{!nom_]=] .. data.num .. [=[}}} |- class="vsShow" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | genitive | colspan="2" | {{{!gen_]=] .. data.num .. [=[}}} |- class="vsHide" ! style="background: var(--wikt-palette-lightblue, #d9ebff); width: 11em;" | ! style="background: var(--wikt-palette-lightblue, #d9ebff); width: 11em;" | ]=] .. (data.num == "pl" and "plural" or data.num == "du" and "dual" or "singular") .. [=[ |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | nominative<br><small>(imenovȃlnik)</small> | {{{nom_]=] .. data.num .. [=[}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | genitive<br><small>(rodȋlnik)</small> | {{{gen_]=] .. data.num .. [=[}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | dative<br><small>(dajȃlnik)</small> | {{{dat_]=] .. data.num .. [=[}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | accusative<br><small>(tožȋlnik)</small> | {{{acc_]=] .. data.num .. [=[}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | locative<br><small>(mẹ̑stnik)</small> | {{{loc_]=] .. data.num .. [=[}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | instrumental<br><small>(orọ̑dnik)</small> | {{{ins_]=] .. data.num .. [=[}}} |}]=] else wikicode = mw.getCurrentFrame():expandTemplate{ title = 'sl-non-tonal', args = { intro = 'section' } } .. '\n' .. [=[ {| class="inflection-table vsSwitcher" data-toggle-category="inflection" style="border: 1px solid var(--wikt-palette-grey, #9e9e9e);" |- style="background: var(--wikt-palette-lightblue, #d9ebff); text-align: left;" ! class="vsToggleElement" colspan="4" | {{{info}}} |- class="vsShow" ! style="width: 11em; background: var(--wikt-palette-lighterblue, #ebf4ff);" | nom. sing. | style="width: 11em;" colspan="3" | {{{!nom_sg}}} |- class="vsShow" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | gen. sing. | colspan="3" | {{{!gen_sg}}} |- class="vsHide" ! style="background: var(--wikt-palette-lightblue, #d9ebff); width: 11em;" | ! style="background: var(--wikt-palette-lightblue, #d9ebff); width: 11em;" | singular ! style="background: var(--wikt-palette-lightblue, #d9ebff); width: 11em;" | dual ! style="background: var(--wikt-palette-lightblue, #d9ebff); width: 11em;" | plural |- class="vsHide" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | nominative<br><small>(imenovȃlnik)</small> | {{{nom_sg}}} | {{{nom_du}}} | {{{nom_pl}}} |- class="vsHide" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | genitive<br><small>(rodȋlnik)</small> | {{{gen_sg}}} | {{{gen_du}}} | {{{gen_pl}}} |- class="vsHide" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | dative<br><small>(dajȃlnik)</small> | {{{dat_sg}}} | {{{dat_du}}} | {{{dat_pl}}} |- class="vsHide" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | accusative<br><small>(tožȋlnik)</small> | {{{acc_sg}}} | {{{acc_du}}} | {{{acc_pl}}} |- class="vsHide" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | locative<br><small>(mẹ̑stnik)</small> | {{{loc_sg}}} | {{{loc_du}}} | {{{loc_pl}}} |- class="vsHide" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);" | instrumental<br><small>(orọ̑dnik)</small> | {{{ins_sg}}} | {{{ins_du}}} | {{{ins_pl}}} |}]=] end return mw.ustring.gsub(wikicode, "{{{([^}]+)}}}", repl) .. require("Module:utilities").format_categories(data.categories, lang) end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local infl_type = frame.args[1] or error("Inflection type has not been specified.") local args = frame:getParent().args local num = args["n"]; if num == "" then num = nil end local data = {forms = {}, info = nil, categories = {}, num = num} if inflections[infl_type] then inflections[infl_type](args, data) else error("Unknown inflection type '" .. infl_type .. "'") end check_accents(args, data) return make_table(data) end local function make_endingless_stem(stem) local stem_noaccents = mw.ustring.lower(require("Module:sl-common").remove_accents(stem)) if mw.ustring.find(stem_noaccents, "[^aeioujlrv][ln]j$") then return mw.ustring.gsub(stem, "([ln]j)$", "e%1") elseif mw.ustring.find(stem_noaccents, "[^aeiouln]j$") then return mw.ustring.gsub(stem, "j$", "ij") elseif mw.ustring.find(stem_noaccents, "[^aeiou]r$") or mw.ustring.find(stem_noaccents, "[^aeioujlrv][lmnv]$") then return mw.ustring.gsub(stem, "(.)$", "e%1") else return stem end end -- Masculine o-stem inflections["m"] = function(args, data) local stem_noending = args[1]; if stem_noending == "" then stem_noending = nil end local stem = args[2]; if stem == "" then stem = nil end local anim = args["a"]; if not anim or anim == "" then anim = false else anim = true end local nom_pl = args["nom_pl"]; if nom_pl == "" then nom_pl = nil end local nom_pl2 = args["nom_pl2"]; if nom_pl2 == "" then nom_pl2 = nil end if not stem_noending then if mw.title.getCurrentTitle().nsText == "Padron" then --TLCHANGE "Template" stem_noending = "-" else error("1st parameter (stem) has not been specified.") end end if not stem then stem = stem_noending stem_noending = make_endingless_stem(stem) end -- Is this a hard stem or a soft stem? local oe = "o" local hs = "hard" data.info = "masculine " .. (anim and "anim." or "inan.") if require("Module:sl-common").is_soft(stem) then oe = "e" hs = "soft" end data.info = data.info .. ", " .. hs .. " o-stem" table.insert(data.categories, "Slovene masculine " .. hs .. " o-stem nouns") -- Categorize further local stem_noaccents = require("Module:sl-common").remove_accents(stem) local stem_noending_noaccents = require("Module:sl-common").remove_accents(stem_noending) local corrected_stem = nil if stem_noaccents == stem_noending_noaccents then corrected_stem = stem_noending elseif stem_noaccents == mw.ustring.gsub(stem_noending_noaccents, "e([ln]j)$", "%1") then corrected_stem = mw.ustring.gsub(stem_noending, "e([ln]j)$", "%1") elseif stem_noaccents == mw.ustring.gsub(stem_noending_noaccents, "e(.)$", "%1") then corrected_stem = mw.ustring.gsub(stem_noending, "e(.)$", "%1") elseif stem_noaccents == mw.ustring.gsub(stem_noending_noaccents, "[aeiou]$", "") then table.insert(data.categories, "Slovene masculine o-stem nouns with final vowel") corrected_stem = mw.ustring.gsub(stem_noending, "[aeiou]$", "") elseif stem_noaccents == stem_noending_noaccents .. "j" then table.insert(data.categories, "Slovene masculine soft o-stem nouns with j-infix") corrected_stem = stem_noending .. "j" elseif stem_noaccents == stem_noending_noaccents .. "-j" then table.insert(data.categories, "Slovene masculine soft o-stem nouns with j-infix") corrected_stem = stem_noending .. "-j" elseif stem_noaccents == stem_noending_noaccents .. "n" then table.insert(data.categories, "Slovene masculine hard o-stem nouns with n-infix") corrected_stem = stem_noending .. "n" elseif stem_noaccents == stem_noending_noaccents .. "t" then table.insert(data.categories, "Slovene masculine hard o-stem nouns with t-infix") corrected_stem = stem_noending .. "t" else table.insert(data.categories, "Slovene irregular nouns") end if corrected_stem and stem ~= corrected_stem then table.insert(data.categories, "Slovene nouns with accent alternations") end -- Singular data.forms["nom_sg"] = {stem_noending} data.forms["acc_sg"] = {anim and stem .. "a" or stem_noending} data.forms["gen_sg"] = {stem .. "a"} data.forms["dat_sg"] = {stem .. "u"} data.forms["loc_sg"] = {stem .. "u"} data.forms["ins_sg"] = {stem .. oe .. "m"} -- Dual data.forms["nom_du"] = {stem .. "a"} data.forms["acc_du"] = {stem .. "a"} data.forms["gen_du"] = {stem .. oe .. "v"} data.forms["dat_du"] = {stem .. oe .. "ma"} data.forms["loc_du"] = {stem .. "ih"} data.forms["ins_du"] = {stem .. oe .. "ma"} -- Plural data.forms["nom_pl"] = {nom_pl or stem .. "i", nom_pl2} data.forms["acc_pl"] = {stem .. "e"} data.forms["gen_pl"] = {stem .. oe .. "v"} data.forms["dat_pl"] = {stem .. oe .. "m"} data.forms["loc_pl"] = {stem .. "ih"} data.forms["ins_pl"] = {stem .. "i"} end -- Masculine o-stem, plural in -ôv- inflections["m-ov"] = function(args, data) local stem_noending = args[1]; if stem_noending == "" then stem_noending = nil end local stem = args[2]; if stem == "" then stem = nil end local gen_sg_ending = args[3]; if gen_sg_ending == "" then gen_sg_ending = nil end local anim = args["a"]; if not anim or anim == "" then anim = false else anim = true end if not stem_noending then if mw.title.getCurrentTitle().nsText == "Padron" then --TLCHANGE "Template" stem_noending = "-" else error("1st parameter (stem) has not been specified.") end end if not stem then stem = stem_noending stem_noending = make_endingless_stem(stem) end local stem_noaccents = require("Module:sl-common").remove_accents(stem) local gen_sg = stem .. "a" if gen_sg_ending == "á" or gen_sg_ending == "ú" then gen_sg = stem_noaccents .. gen_sg_ending elseif gen_sg_ending then error("3rd parameter (genitive singular ending) must be \"á\" or \"ú\".") end -- Is this a hard stem or a soft stem? local oe = "o" local hs = "hard" data.info = "masculine " .. (anim and "anim." or "inan.") if require("Module:sl-common").is_soft(stem) then oe = "e" hs = "soft" end data.info = data.info .. ", " .. hs .. " o-stem" table.insert(data.categories, "Slovene masculine " .. hs .. " o-stem nouns") if gen_sg_ending then data.info = data.info .. ", long mixed accent" table.insert(data.categories, "Slovene masculine o-stem nouns with long mixed accent") end if data.num ~= "sg" then data.info = data.info .. ", plural in " .. require("Module:links").full_link({lang = lang, alt = "-ôv-"}, "term") table.insert(data.categories, "Slovene masculine o-stem nouns with plural in -ov-") end -- Categorize further local stem_noending_noaccents = require("Module:sl-common").remove_accents(stem_noending) local corrected_stem = nil if stem_noaccents == stem_noending_noaccents then corrected_stem = stem_noending elseif stem_noaccents == mw.ustring.gsub(stem_noending_noaccents, "e([ln]j)$", "%1") then corrected_stem = mw.ustring.gsub(stem_noending, "e([ln]j)$", "%1") elseif stem_noaccents == mw.ustring.gsub(stem_noending_noaccents, "e(.)$", "%1") then corrected_stem = mw.ustring.gsub(stem_noending, "e(.)$", "%1") elseif stem_noaccents == mw.ustring.gsub(stem_noending_noaccents, "[aeiou]$", "") then table.insert(data.categories, "Slovene masculine o-stem nouns with final vowel") corrected_stem = mw.ustring.gsub(stem_noending, "[aeiou]$", "") elseif stem_noaccents == stem_noending_noaccents .. "j" then table.insert(data.categories, "Slovene masculine soft o-stem nouns with j-infix") corrected_stem = stem_noending .. "j" elseif stem_noaccents == stem_noending_noaccents .. "-j" then table.insert(data.categories, "Slovene masculine soft o-stem nouns with j-infix") corrected_stem = stem_noending .. "-j" elseif stem_noaccents == stem_noending_noaccents .. "n" then table.insert(data.categories, "Slovene masculine hard o-stem nouns with n-infix") corrected_stem = stem_noending .. "n" elseif stem_noaccents == stem_noending_noaccents .. "t" then table.insert(data.categories, "Slovene masculine hard o-stem nouns with t-infix") corrected_stem = stem_noending .. "t" else table.insert(data.categories, "Slovene irregular nouns") end if corrected_stem and stem ~= corrected_stem then table.insert(data.categories, "Slovene nouns with accent alternations") end -- Singular data.forms["nom_sg"] = {stem_noending} data.forms["acc_sg"] = {anim and gen_sg or stem_noending} data.forms["gen_sg"] = {gen_sg} data.forms["dat_sg"] = {stem .. "u"} data.forms["loc_sg"] = {stem .. "u"} data.forms["ins_sg"] = {stem .. oe .. "m"} -- Dual data.forms["nom_du"] = {stem_noaccents .. "ôva"} data.forms["acc_du"] = {stem_noaccents .. "ôva"} data.forms["gen_du"] = {stem_noaccents .. "ôv"} data.forms["dat_du"] = {stem_noaccents .. "ôvoma"} data.forms["loc_du"] = {stem_noaccents .. "ôvih"} data.forms["ins_du"] = {stem_noaccents .. "ôvoma"} -- Plural data.forms["nom_pl"] = {stem_noaccents .. "ôvi"} data.forms["acc_pl"] = {stem_noaccents .. "ôve"} data.forms["gen_pl"] = {stem_noaccents .. "ôv"} data.forms["dat_pl"] = {stem_noaccents .. "ôvom"} data.forms["loc_pl"] = {stem_noaccents .. "ôvih"} data.forms["ins_pl"] = {stem_noaccents .. "ôvi"} end -- Masculine a-stem inflections["m-a"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end local anim = args["a"]; if not anim or anim == "" then anim = false else anim = true end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then --TLCHANGE "Template" stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noending = make_endingless_stem(stem) data.info = "masculine " .. (anim and "anim." or "inan.") .. ", a-stem" table.insert(data.categories, "Slovene masculine a-stem nouns") -- Singular data.forms["nom_sg"] = {stem .. "a"} data.forms["acc_sg"] = {stem .. "o"} data.forms["gen_sg"] = {stem .. "e"} data.forms["dat_sg"] = {stem .. "i"} data.forms["loc_sg"] = {stem .. "i"} data.forms["ins_sg"] = {stem .. "o"} -- Dual data.forms["nom_du"] = {stem .. "i"} data.forms["acc_du"] = {stem .. "i"} data.forms["gen_du"] = {stem_noending} data.forms["dat_du"] = {stem .. "ama"} data.forms["loc_du"] = {stem .. "ah"} data.forms["ins_du"] = {stem .. "ama"} -- Plural data.forms["nom_pl"] = {stem .. "e"} data.forms["acc_pl"] = {stem .. "e"} data.forms["gen_pl"] = {stem_noending} data.forms["dat_pl"] = {stem .. "am"} data.forms["loc_pl"] = {stem .. "ah"} data.forms["ins_pl"] = {stem .. "ami"} end -- Feminine a-stem inflections["f"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then --TLCHANGE "Template" stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noending = make_endingless_stem(stem) data.info = "feminine, a-stem" table.insert(data.categories, "Slovene feminine a-stem nouns") -- Singular data.forms["nom_sg"] = {stem .. "a"} data.forms["acc_sg"] = {stem .. "o"} data.forms["gen_sg"] = {stem .. "e"} data.forms["dat_sg"] = {stem .. "i"} data.forms["loc_sg"] = {stem .. "i"} data.forms["ins_sg"] = {stem .. "o"} -- Dual data.forms["nom_du"] = {stem .. "i"} data.forms["acc_du"] = {stem .. "i"} data.forms["gen_du"] = {stem_noending} data.forms["dat_du"] = {stem .. "ama"} data.forms["loc_du"] = {stem .. "ah"} data.forms["ins_du"] = {stem .. "ama"} -- Plural data.forms["nom_pl"] = {stem .. "e"} data.forms["acc_pl"] = {stem .. "e"} data.forms["gen_pl"] = {stem_noending} data.forms["dat_pl"] = {stem .. "am"} data.forms["loc_pl"] = {stem .. "ah"} data.forms["ins_pl"] = {stem .. "ami"} end -- Feminine a-stem, mixed accent paradigm inflections["f-mobile"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end local gen_pl = args["gen_pl"]; if gen_pl == "" then gen_pl = nil end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then --TLCHANGE "Template" stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noaccents = require("Module:sl-common").remove_accents(stem) gen_pl = gen_pl or stem_noaccents .. "á" data.info = "feminine, a-stem, long mixed accent" table.insert(data.categories, "Slovene feminine a-stem nouns") table.insert(data.categories, "Slovene feminine a-stem nouns with long mixed accent") -- Singular data.forms["nom_sg"] = {stem .. "a"} data.forms["acc_sg"] = {stem_noaccents .. "ó"} data.forms["gen_sg"] = {stem_noaccents .. "é"} data.forms["dat_sg"] = {stem .. "i"} data.forms["loc_sg"] = {stem .. "i"} data.forms["ins_sg"] = {stem_noaccents .. "ó"} -- Dual data.forms["nom_du"] = {stem_noaccents .. "é"} data.forms["acc_du"] = {stem_noaccents .. "é"} data.forms["gen_du"] = {gen_pl} data.forms["dat_du"] = {stem_noaccents .. "áma"} data.forms["loc_du"] = {stem_noaccents .. "àh"} data.forms["ins_du"] = {stem_noaccents .. "áma"} -- Plural data.forms["nom_pl"] = {stem_noaccents .. "é"} data.forms["acc_pl"] = {stem_noaccents .. "é"} data.forms["gen_pl"] = {gen_pl} data.forms["dat_pl"] = {stem_noaccents .. "àm"} data.forms["loc_pl"] = {stem_noaccents .. "àh"} data.forms["ins_pl"] = {stem_noaccents .. "ámi"} end -- Feminine v-stem inflections["f-v"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then --TLCHANGE "Template" stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noending = stem .. "ev" stem = stem .. "v" data.info = "feminine, v-stem" table.insert(data.categories, "Slovene feminine v-stem nouns") -- Singular data.forms["nom_sg"] = {stem_noending} data.forms["acc_sg"] = {stem_noending} data.forms["gen_sg"] = {stem .. "e"} data.forms["dat_sg"] = {stem .. "i"} data.forms["loc_sg"] = {stem .. "i"} data.forms["ins_sg"] = {stem .. "ijo"} -- Dual data.forms["nom_du"] = {stem .. "i"} data.forms["acc_du"] = {stem .. "i"} data.forms["gen_du"] = {stem_noending} data.forms["dat_du"] = {stem .. "ama"} data.forms["loc_du"] = {stem .. "ah"} data.forms["ins_du"] = {stem .. "ama"} -- Plural data.forms["nom_pl"] = {stem .. "e"} data.forms["acc_pl"] = {stem .. "e"} data.forms["gen_pl"] = {stem_noending} data.forms["dat_pl"] = {stem .. "am"} data.forms["loc_pl"] = {stem .. "ah"} data.forms["ins_pl"] = {stem .. "ami"} end -- Feminine i-stem inflections["f-i"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then --TLCHANGE "Template" stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noending = make_endingless_stem(stem) data.info = "feminine, i-stem" table.insert(data.categories, "Slovene feminine i-stem nouns") -- Singular data.forms["nom_sg"] = {stem_noending} data.forms["acc_sg"] = {stem_noending} data.forms["gen_sg"] = {stem .. "i"} data.forms["dat_sg"] = {stem .. "i"} data.forms["loc_sg"] = {stem .. "i"} data.forms["ins_sg"] = {stem .. (stem ~= stem_noending and "i" or "") .. "jo"} -- Dual data.forms["nom_du"] = {stem .. "i"} data.forms["acc_du"] = {stem .. "i"} data.forms["gen_du"] = {stem .. "i"} data.forms["dat_du"] = {stem .. (stem ~= stem_noending and "i" or "") .. "ma"} data.forms["loc_du"] = {stem .. "ih"} data.forms["ins_du"] = {stem .. (stem ~= stem_noending and "i" or "") .. "ma"} -- Plural data.forms["nom_pl"] = {stem .. "i"} data.forms["acc_pl"] = {stem .. "i"} data.forms["gen_pl"] = {stem .. "i"} data.forms["dat_pl"] = {stem .. "im"} data.forms["loc_pl"] = {stem .. "ih"} data.forms["ins_pl"] = {stem .. (stem ~= stem_noending and "i" or "") .. "mi"} end -- Feminine i-stem, mixed accent paradigm inflections["f-i-mobile"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end local stem_dat_loc_sg = args[2]; if stem_dat_loc_sg == "" then stem_dat_loc_sg = nil end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then --TLCHANGE "Template" stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noending = make_endingless_stem(stem) local stem_noaccents = require("Module:sl-common").remove_accents(stem) stem_dat_loc_sg = stem_dat_loc_sg or stem data.info = "feminine, i-stem, long mixed accent" table.insert(data.categories, "Slovene feminine i-stem nouns") table.insert(data.categories, "Slovene feminine i-stem nouns with long mixed accent") -- Singular data.forms["nom_sg"] = {stem_noending} data.forms["acc_sg"] = {stem_noending} data.forms["gen_sg"] = {stem_noaccents .. "í"} data.forms["dat_sg"] = {stem_dat_loc_sg .. "i"} data.forms["loc_sg"] = {stem_dat_loc_sg .. "i"} data.forms["ins_sg"] = {stem_noaccents .. (stem ~= stem_noending and "i" or "") .. "jó"} -- Dual data.forms["nom_du"] = {stem_noaccents .. "í"} data.forms["acc_du"] = {stem_noaccents .. "í"} data.forms["gen_du"] = {stem_noaccents .. "í"} data.forms["dat_du"] = {stem_noaccents .. "éma"} data.forms["loc_du"] = {stem_noaccents .. "éh"} data.forms["ins_du"] = {stem_noaccents .. "éma"} -- Plural data.forms["nom_pl"] = {stem_noaccents .. "í"} data.forms["acc_pl"] = {stem_noaccents .. "í"} data.forms["gen_pl"] = {stem_noaccents .. "í"} data.forms["dat_pl"] = {stem_noaccents .. "ém"} data.forms["loc_pl"] = {stem_noaccents .. "éh"} data.forms["ins_pl"] = {stem_noaccents .. (stem ~= stem_noending and "i" or "") .. "mí"} end -- Neuter o-stem inflections["n"] = function(args, data) local stem = args[1]; if stem == "" then stem = nil end if not stem then if mw.title.getCurrentTitle().nsText == "Padron" then --TLCHANGE "Template" stem = "-" else error("1st parameter (stem) has not been specified.") end end local stem_noending = make_endingless_stem(stem) -- Is this a hard stem or a soft stem? local oe = "o" data.info = "neuter" if require("Module:sl-common").is_soft(stem) then oe = "e" data.info = data.info .. ", soft" table.insert(data.categories, "Slovene neuter soft o-stem nouns") else data.info = data.info .. ", hard" table.insert(data.categories, "Slovene neuter hard o-stem nouns") end -- Singular data.forms["nom_sg"] = {stem .. oe} data.forms["acc_sg"] = {stem .. oe} data.forms["gen_sg"] = {stem .. "a"} data.forms["dat_sg"] = {stem .. "u"} data.forms["loc_sg"] = {stem .. "u"} data.forms["ins_sg"] = {stem .. oe .. "m"} -- Dual data.forms["nom_du"] = {stem .. "i"} data.forms["acc_du"] = {stem .. "i"} data.forms["gen_du"] = {stem_noending} data.forms["dat_du"] = {stem .. oe .. "ma"} data.forms["loc_du"] = {stem .. "ih"} data.forms["ins_du"] = {stem .. oe .. "ma"} -- Plural data.forms["nom_pl"] = {stem .. "a"} data.forms["acc_pl"] = {stem .. "a"} data.forms["gen_pl"] = {stem_noending} data.forms["dat_pl"] = {stem .. oe .. "m"} data.forms["loc_pl"] = {stem .. "ih"} data.forms["ins_pl"] = {stem .. "i"} end return export 9ln3s4m0py75js1dafgmz2ysmjirskk Padron:sl-decl-noun-table3 10 37748 176738 175926 2026-04-26T14:32:10Z Hiyuune 5522 fix lint background 176738 wikitext text/x-wiki {{#invoke:checkparams|warn|n}}<!-- Validate template parameters n= is not used, but is passed by sl-infl-noun --> {| class="inflection-table vsSwitcher" data-toggle-category="declension" style="border: 1px solid var(--wikt-palette-grey, #9e9e9e);color:inherit;" |- style="background: var(--wikt-palette-lightblue, #d9ebff);color:inherit; text-align: left;" ! class="vsToggleElement" colspan="4" | {{{title|{{#switch:{{{decl|}}}|f-1=First feminine declension (a-stem) [[Category:Slovene feminine a-stem nouns]] [[Category:Slovene feminine nouns with {{{infix|no }}}infix]] |n-1=First neuter declension (hard o-stem) [[Category:Slovene neuter hard o-stem nouns]] [[Category:Slovene neuter nouns with {{{infix|no }}}infix]] |n-1-s=First neuter declension (soft o-stem) [[Category:Slovene neuter soft o-stem nouns]] [[Category:Slovene neuter nouns with {{{infix|no }}}infix]] |m-an-1=First masculine declension (hard o-stem, animate) [[Category:Slovene masculine hard o-stem nouns]] [[Category:Slovene masculine nouns with {{{infix|no }}}infix]] |m-in-1=First masculine declension (hard o-stem, inanimate) [[Category:Slovene masculine hard o-stem nouns]] [[Category:Slovene masculine nouns with {{{infix|no }}}infix]] |m-in-1-s=First masculine declension (soft o-stem, inanimate) [[Category:Slovene masculine soft o-stem nouns]] [[Category:Slovene masculine nouns with {{{infix|no }}}infix]] |m-an-1-s=First masculine declension (soft o-stem, animate) [[Category:Slovene masculine soft o-stem nouns]] [[Category:Slovene masculine nouns with {{{infix|no }}}infix]] |f-2=Second feminine declension (i-stem) [[Category:Slovene feminine i-stem nouns]] [[Category:Slovene feminine nouns with {{{infix|no }}}infix]] |f-1-v=First feminine declension (v-stem) [[Category:Slovene feminine v-stem nouns]] [[Category:Slovene feminine nouns with {{{infix|no }}}infix]] |m-in-ov=First masculine declension (hard o-stem, inanimate, -ov- infix) [[Category:Slovene masculine hard o-stem nouns]] [[Category:Slovene masculine o-stem nouns with plural in -ov-]] |m-an-ov=First masculine declension (hard o-stem, animate, -ov- infix) [[Category:Slovene masculine hard o-stem nouns]] [[Category:Slovene masculine o-stem nouns with plural in -ov-]] |m-2=Second masculine declension (a-stem) [[Category:Slovene masculine a-stem nouns]] [[Category:Slovene masculine nouns with {{{infix|no }}}infix]] |m-3=Third masculine declension (no endings) [[Category:Slovene masculine nouns with no endings]] [[Category:Slovene masculine nouns with {{{infix|no }}}infix]] |f-3=Third feminine declension (no endings) [[Category:Slovene feminine nouns with no endings]] [[Category:Slovene feminine nouns with {{{infix|no }}}infix]] |m-an-4=Fourth masculine declension (adjectival endings, animate) [[Category:Slovene animate masculine nouns with adjectival endings]] [[Category:Slovene masculine nouns with {{{infix|no }}}infix]] |m-in-4=Fourth masculine declension (adjectival endings, inanimate) [[Category:Slovene inanimate masculine nouns with adjectival endings]] [[Category:Slovene masculine nouns with {{{infix|no }}}infix]] |f-4=Fourth feminine declension (adjectival endings) [[Category:Slovene feminine nouns with adjectival endings]] [[Category:Slovene feminine nouns with {{{infix|no }}}infix]] |n-4=Fourth neuter declension (adjectival endings) [[Category:Slovene neuter nouns with adjectival endings]] [[Category:Slovene neuter nouns with {{{infix|no }}}infix]] |n-3=Third neuter declension (no endings) [[Category:Slovene neuter nouns with no endings]] [[Category:Slovene neuter nouns with {{{infix|no }}}infix]] |f-1-r=First feminine declension (r-stem) [[Category:Slovene feminine r-stem nouns]] [[Category:Slovene feminine nouns with {{{infix|no }}}infix]] |n-2=Second neuter declension (a-stem) [[Category:Slovene neuter a-stem nouns]] [[Category:Slovene neuter nouns with {{{infix|no }}}infix]] |#default=Declension of ''{{pagename}}'' <includeonly>[[Category:Requests for declension type in Slovene noun entries]]</includeonly>}}{{#switch:{{{accent|}}}|1=, fixed accent|2=, mobile accent|3=, short ending accent|3a=, short ending accent|3b=, long ending accent|4=, long mixed accent|4a=, short mixed accent|4b=, long mixed accent|#default=<includeonly>[[Category:Requests for accentual type in Slovene noun entries]]</includeonly>}}{{#switch:{{{infix|no}}}|no=|#default=, -{{{infix}}} infix}}{{#switch:{{{irregtitle|{{{irreg|no}}}}}}|no= |{{{irregtitle}}}=, {{{irregtitle}}} [[Category:Slovene irregular nouns]]|yes=, irregular [[Category:Slovene irregular nouns]]|#default= }}}}} |- class="vsShow" ! style="width: 11em; background: var(--wikt-palette-lighterblue, #ebf4ff);color:inherit;" | nom. sing. | style="width: 11em;" colspan="3" | {{l-self|sl|{{{1}}}}} |- class="vsShow" ! style="background: var(--wikt-palette-lighterblue, #ebf4ff);color:inherit;" | gen. sing. | colspan="3" | {{l-self|sl|{{{2}}}}} |- class="vsHide" ! style="background:var(--wikt-palette-lightblue, #d9ebff);color:inherit;width:11em" | ! style="background:var(--wikt-palette-lightblue, #d9ebff);color:inherit;width:11em" | singular ! style="background:var(--wikt-palette-lightblue, #d9ebff);color:inherit;width:11em" | dual ! style="background:var(--wikt-palette-lightblue, #d9ebff);color:inherit;width:11em" | plural |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff);color:inherit" | nominative<br><small>{{l|sl|imenovȃlnik}}</small> | {{l-self|sl|{{{1}}}}} | {{l-self|sl|{{{8}}}}} | {{l-self|sl|{{{15}}}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff);color:inherit" | genitive<br><small>{{l|sl|rodȋlnik}}</small> | {{l-self|sl|{{{2}}}}} | {{l-self|sl|{{{9}}}}} | {{l-self|sl|{{{16}}}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff);color:inherit" | dative<br><small>{{l|sl|dajȃlnik}}</small> | {{#switch:{{{datsg|–}}}|–={{l-self|sl|{{{3}}}}}|#default={{l-self|sl|{{{datsg}}}u}}, ''{{l-self|sl|{{{datsg}}}i}}''}}{{#switch:{{{prep|–}}}|–=|#default=, {{{prep}}}<sup>''+ prep.''</sup>}}{{#switch:{{{prep2|–}}}|–=|#default=, ''{{{prep2}}}''<sup>''+ prep.''</sup>}} | {{#switch:{{{datdu|–}}}|–={{l-self|sl|{{{10}}}}}|#default={{l-self|sl|{{{10}}}}}, ''{{l-self|sl|{{{datdu}}}ama}}''}} | {{#switch:{{{datpl|–}}}|–={{l-self|sl|{{{17}}}}}|#default={{l-self|sl|{{{17}}}}}, ''{{l-self|sl|{{{datpl}}}am}}''}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff);color:inherit" | accusative<br><small>{{l|sl|tožȋlnik}}</small> | {{l-self|sl|{{{4}}}}} | {{l-self|sl|{{{11}}}}} | {{l-self|sl|{{{18}}}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff);color:inherit" | locative<br><small>{{l|sl|mẹ̑stnik}}</small> | {{#switch:{{{datsg|–}}}|–={{l-self|sl|{{{prep|{{{5}}}}}}}}|#default={{l-self|sl|{{{prep|{{{datsg}}}u}}}}}, ''{{l-self|sl|{{{prep2|{{{datsg}}}i}}}}}''}} | {{#switch:{{{loc|–}}}|–={{l-self|sl|{{{12}}}}}|#default={{l-self|sl|{{{loc}}}ih}}, ''{{l-self|sl|{{{loc}}}ah}}''}} | {{#switch:{{{loc|–}}}|–={{l-self|sl|{{{19}}}}}|#default={{l-self|sl|{{{loc}}}ih}}, ''{{l-self|sl|{{{loc}}}ah}}''}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff);color:inherit" | instrumental<br><small>{{l|sl|orọ̑dnik}}</small> | {{l-self|sl|{{{6}}}}} | {{#switch:{{{datdu|–}}}|–={{l-self|sl|{{{13}}}}}|#default={{l-self|sl|{{{13}}}}}, ''{{l-self|sl|{{{datdu}}}ama}}''}} | {{l-self|sl|{{{20}}}}} |- class="vsHide" ! style="background:var(--wikt-palette-lighterblue, #ebf4ff);color:inherit" | (vocative)<br><small>({{l|sl|ogȏvorni imenovȃlnik}})</small> | {{l-self|sl|{{{7}}}}} | {{l-self|sl|{{{14}}}}} | {{l-self|sl|{{{21}}}}} |}<!-- --><noinclude>{{tcat|ndecl:_}}{{documentation}}</noinclude> j3qm5fow4vuprcjhkwn0gfa9rvov3vi Module:nup-sortkey 828 38081 176666 2026-04-26T11:59:20Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local a = u(0xF000) local twoChars = { ["dz"] = "d" .. a, ["gb"] = "g" .. a, ["kp"] = "k" .. a, ["sh"] = "s" .. a, ["ts"] = "t" .. a, ["zh"] = "z" .. a } function export.makeSortKey(text, lang, sc) text = mw.ustring.lower(text) for from, to in pairs(twoChars) do text = mw.ustring.gsub(text, from, to) end return mw.ustring.upper(text) end return export' 176666 Scribunto text/plain local export = {} local u = mw.ustring.char local a = u(0xF000) local twoChars = { ["dz"] = "d" .. a, ["gb"] = "g" .. a, ["kp"] = "k" .. a, ["sh"] = "s" .. a, ["ts"] = "t" .. a, ["zh"] = "z" .. a } function export.makeSortKey(text, lang, sc) text = mw.ustring.lower(text) for from, to in pairs(twoChars) do text = mw.ustring.gsub(text, from, to) end return mw.ustring.upper(text) end return export q3zaolv9p0c00ccw0cdvgllvmja09ld Module:Khar-translit 828 38082 176667 2026-04-26T11:59:53Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = require("Module:string/char") local gsub = mw.ustring.gsub local consonants = { --defer transliteration of null consonant. ['𐨀'] = '𐨀', --consonants ['𐨐']='k', ['𐨑']='kh', ['𐨒']='g', ['𐨓']='gh', ['𐨕']='c', ['𐨖']='ch', ['𐨗']='j', ['𐨙']='ñ', ['𐨚']='ṭ', ['𐨛']='ṭh', ['𐨜']='ḍ', ['𐨝']='ḍh', ['𐨞']='ṇ', ['𐨟']='t', ['𐨠']='th', ['𐨡']='d', ['𐨢']='dh', ['𐨣']='n', ['...' 176667 Scribunto text/plain local export = {} local u = require("Module:string/char") local gsub = mw.ustring.gsub local consonants = { --defer transliteration of null consonant. ['𐨀'] = '𐨀', --consonants ['𐨐']='k', ['𐨑']='kh', ['𐨒']='g', ['𐨓']='gh', ['𐨕']='c', ['𐨖']='ch', ['𐨗']='j', ['𐨙']='ñ', ['𐨚']='ṭ', ['𐨛']='ṭh', ['𐨜']='ḍ', ['𐨝']='ḍh', ['𐨞']='ṇ', ['𐨟']='t', ['𐨠']='th', ['𐨡']='d', ['𐨢']='dh', ['𐨣']='n', ['𐨤']='p', ['𐨥']='ph', ['𐨦']='b', ['𐨧']='bh', ['𐨨']='m', ['𐨩']='y', ['𐨪']='r', ['𐨫']='l', ['𐨬']='v', ['𐨭']='ś', ['𐨮']='ṣ', ['𐨯']='s', ['𐨰']='z', ['𐨱']='h', ['𐨲']='ḱ', ['𐨳']='ṭ́h', ['𐨴']='ṭ́', ['𐨵']='vh', } local diacritics = { --matras ['𐨁']='i', ['𐨂']='u', ['𐨃']='ṛ', ['𐨅']='e', ['𐨆']='o', ['𐨌']='ā', ['𐨁𐨌']='ī', ['𐨂𐨌']='ū', ['𐨃𐨌']='ṝ', ['𐨅𐨌']='ai', ['𐨆𐨌']='au', ['𐨿']='', ['‍𐨿']='Ⓙ', ['𐨍'] = 'a͚', ['𐨂𐨍'] = 'u͚', ['𐨹']='◌́', } local tt = { --vowels ['𐨀'] = '', -- anusvara ['𐨎']='ṃ', --until a better method is found -- visarga ['𐨏']='ḥ', --numerals ['𐩀']='1', ['𐩁']='2', ['𐩂']='3', ['𐩃']='4', ['𐩄']='10', ['𐩅']='20', ['𐩆']='100', ['𐩇']='1000', --punctuation ['𐩖']='.', --danda ['𐩗']='.', --double danda } function export.tr(text, lang, sc) local failed = nil if sc ~= "Khar" then return nil end -- Consonants appear as part of sequences canonically equivalent to consonant+nukta+vowel, so -- allowing for multiplicity and the string being normalised (by Wikimedia policy), the matching -- RE is: local form = '([𐨀𐨐-𐨵])(𐨹?)(‍?𐨿?)(𐨺?)(𐨍?)(𐨸?)([𐨁-𐨆]?[𐨁-𐨆]?𐨌?𐨍?)' text = gsub(text, form, function(c, n1, h, n2, vi, n3, vm) local d = h..vi..vm -- Expect at most one catenand to be non-empty. local cdia = '' local cons = consonants[c] local retval if n1 ~= '' then -- Cauda if cons == 's' or cons == 'ś' then cdia = cdia .. u(0x0331) -- Combining macron below else cdia = cdia .. u(0x0301) -- Combining acute end end if n2 ~= '' then cdia = cdia .. u(0x0323) end -- Combining dot below if n3 ~= '' then cdia = cdia .. u(0x0304) end -- Combining macron if d == "" then retval = cons .. cdia .. 'a' else local dia = diacritics[d] if not dia then mw.addWarning('Failed to transliterate 𐨀' .. d .. ' in ' .. text) failed = true dia = 'D' end retval = cons .. cdia .. dia end return mw.ustring.toNFD(retval) end) text = gsub(text, "(a)𐨀([iu])", "%1%2"..u(0x308)) -- Apply diaeresis text = gsub(text, '.', tt) text = gsub(text, 'lⒿy', 'lý') text = gsub(text, 'Ⓙ', '') text = gsub(text, u(0x301, 0x304), u(0x304, 0x301)) if failed then return nil end return mw.ustring.toNFC(text) end return export jof02nryghma4qoo2tpff6eecap5qhk Module:Olck-translit 828 38083 176668 2026-04-26T12:00:13Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local conv = { ['ᱚ']='ô', ['ᱛ']='t', ['ᱜ']='g', ['ᱝ']='ṅ', ['ᱞ']='l', ['ᱟ']='a', ['ᱠ']='k', ['ᱡ']='j', ['ᱢ']='m', ['ᱣ']='v', ['ᱤ']='i', ['ᱥ']='s', ['ᱦ']='h', ['ᱧ']='ñ', ['ᱨ']='r', ['ᱩ']='u', ['ᱪ']='c', ['ᱫ']='d', ['ᱬ']='ṇ', ['ᱭ']='y', ['ᱮ']='e', ['ᱯ']='p', ['ᱰ']='ḍ', ['ᱱ']='n', ['ᱲ']='ṛ', ['ᱳ']='o', ['ᱴ']='ṭ', ['ᱵ']='b', ['ᱶ']='w̃', ['ᱷ']='h', -- aspiration -- n...' 176668 Scribunto text/plain local export = {} local conv = { ['ᱚ']='ô', ['ᱛ']='t', ['ᱜ']='g', ['ᱝ']='ṅ', ['ᱞ']='l', ['ᱟ']='a', ['ᱠ']='k', ['ᱡ']='j', ['ᱢ']='m', ['ᱣ']='v', ['ᱤ']='i', ['ᱥ']='s', ['ᱦ']='h', ['ᱧ']='ñ', ['ᱨ']='r', ['ᱩ']='u', ['ᱪ']='c', ['ᱫ']='d', ['ᱬ']='ṇ', ['ᱭ']='y', ['ᱮ']='e', ['ᱯ']='p', ['ᱰ']='ḍ', ['ᱱ']='n', ['ᱲ']='ṛ', ['ᱳ']='o', ['ᱴ']='ṭ', ['ᱵ']='b', ['ᱶ']='w̃', ['ᱷ']='h', -- aspiration -- numerals ['᱐']='0', ['᱑']='1', ['᱒']='2', ['᱓']='3', ['᱔']='4', ['᱕']='5', ['᱖']='6', ['᱗']='7', ['᱘']='8', ['᱙']='9', -- punctuation ['᱿']='.', ['᱾']='.', -- special chars ['ᱸ']='̃', -- mu tudag: nasalization ['ᱺ']='ᱹ̃', -- mu gahla tudag: nasalization ['ᱻ']='ː' -- rela: gemination } local gahla_tudag = { ['ô']='ŏ', ['a']='ă', ['e']='ĕ', } local ahad = { ['k’']='g', ['c’']='j', ['t’']='d', ['p’']='b', ['h’']='h' } local pharka = { ['g']='k’', ['j']='c’', ['d']='t’', ['b']='p’', ['h']='h’' } local punctuation = '([ ᱾᱿,!?"\'])' function export.tr(text, lang, sc) text = mw.ustring.gsub( text, ".", function(c) return conv[c] end) -- word-final glottalization text = mw.ustring.gsub(text, '[gjdb]$', pharka) text = mw.ustring.gsub( text, '([gjdb])' .. punctuation, function(c, d) return pharka[c] .. d end) -- gahla tudag text = mw.ustring.gsub( text, '(.)ᱹ', function(c) return gahla_tudag[c] end ) -- ahad text = mw.ustring.gsub( text, '(.’)ᱽ', function(c) return ahad[c] end ) -- parkha text = mw.ustring.gsub( text, '(.)ᱼ', function(c) return pharka[c] end ) text = mw.ustring.gsub(text, 'h’', 'ʔ') return text end return export ake7mdb36xnipk1di0qrqh6okxi2qhw Module:Tale-translit 828 38084 176669 2026-04-26T12:01:07Z Yivan000 4078 Nilikha ang pahina na may 'local gsub = mw.ustring.gsub local u = require("Module:string/char") local export = {} -- pattern ([ᥐ-ᥢ])([ᥣ-ᥬ]?)([ᥐᥒᥖᥙᥛᥝᥢᥭ]?)([ᥰ-ᥴ{dia-tones}]?) local tt = { -- consonants ["ᥐ"] = "k", ["ᥑ"] = "x", ["ᥒ"] = "ng", ["ᥓ"] = "ts", ["ᥔ"] = "s", ["ᥕ"] = "y", ["ᥖ"] = "t", ["ᥗ"] = "th", ["ᥘ"] = "l", ["ᥙ"] = "p", ["ᥚ"] = "ph", ["ᥛ"] = "m", ["ᥜ"] = "f", ["ᥝ"] = "w", ["ᥞ"] = "h", ["ᥟ"] = "ʼ", ["ᥠ"] = "kh"...' 176669 Scribunto text/plain local gsub = mw.ustring.gsub local u = require("Module:string/char") local export = {} -- pattern ([ᥐ-ᥢ])([ᥣ-ᥬ]?)([ᥐᥒᥖᥙᥛᥝᥢᥭ]?)([ᥰ-ᥴ{dia-tones}]?) local tt = { -- consonants ["ᥐ"] = "k", ["ᥑ"] = "x", ["ᥒ"] = "ng", ["ᥓ"] = "ts", ["ᥔ"] = "s", ["ᥕ"] = "y", ["ᥖ"] = "t", ["ᥗ"] = "th", ["ᥘ"] = "l", ["ᥙ"] = "p", ["ᥚ"] = "ph", ["ᥛ"] = "m", ["ᥜ"] = "f", ["ᥝ"] = "w", ["ᥞ"] = "h", ["ᥟ"] = "ʼ", ["ᥠ"] = "kh", ["ᥡ"] = "tsh", ["ᥢ"] = "n", -- vowels ["ᥣ"] = "aa", ["ᥤ"] = "i", ["ᥥ"] = "e", ["ᥦ"] = "ae", ["ᥧ"] = "u", ["ᥨ"] = "o", ["ᥩ"] = "oa", ["ᥪ"] = "ue", ["ᥫ"] = "oe", ["ᥬ"] = "aue", ["ᥭ"] = "y", } local tone_table = { -- different ordering from Unicode: http://www.seasite.niu.edu/tai/TaiDehong/index.htm -- also supports old orthography ["ᥰ"] = u(0x0308), [u(0x0308)] = u(0x0308), [u(0x00A8)] = u(0x0308), -- 2 ä ["ᥱ"] = u(0x030C), [u(0x030C)] = u(0x030C), [u(0x02C7)] = u(0x030C), -- 3 ǎ ["ᥲ"] = u(0x0300), [u(0x0300)] = u(0x0300), [u(0x0060)] = u(0x0300), [u(0x02CB)] = u(0x0300), -- 4 à ["ᥳ"] = u(0x0307), [u(0x0307)] = u(0x0307), [u(0x02D9)] = u(0x0307), -- 5 ȧ ["ᥴ"] = u(0x0301), [u(0x0301)] = u(0x0301), [u(0x00B4)] = u(0x0301), [u(0x02CA)] = u(0x0301), -- 1 á [""] = "", -- 6 a } local tone_key = "([ᥰ-ᥴ" .. u(0x0308) .. u(0x00A8) .. u(0x030C) .. u(0x02C7) .. u(0x0300) .. u(0x0060) .. u(0x02CB) .. u(0x0307) .. u(0x02D9) .. u(0x0301) .. u(0x00B4) .. u(0x02CA) .. "]?)" function export.tr(text, lang, sc) if type(text) == "table" then -- called directly from a template text = text.args[1] end text = gsub(text, "([ᥐ-ᥢ])([ᥐᥒᥖᥙᥛᥝᥢᥭ])", "%1a%2") text = gsub(text, ".", tt) -- adds tone diacritic local new for old in mw.text.gsplit(text, " ") do new = gsub(old, "([aeiou])([a-z]*)" .. tone_key, function(v, x, t) return v .. tone_table[t] .. x end) text = gsub(text, old, new, 1) end return text end return export 8ldqfsgu3td5y7z8ucjgbwf3yzdb6ix Module:Tfng-translit 828 38085 176670 2026-04-26T12:01:12Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tt = {} tt["Tfng"] = { ["common"] = { ["ⴰ"] = "a", ["ⴱ"] = "b", ["ⴲ"] = "ḇ", ["ⴳ"] = "g", ["ⴴ"] = "g", ["ⴵ"] = "ǧ", ["ⴶ"] = "ǧ", ["ⴷ"] = "d", ["ⴸ"] = "ḏ", ["ⴹ"] = "ḍ", ["ⴺ"] = "ḏ̣", ["ⴻ"] = "e", ["ⴼ"] = "f", ["ⴽ"] = "k", ["ⴾ"] = "k", ["ⴿ"] = "k", ["ⵀ"] = "h", -- tmh, thv, taq, ttq, thz: "b" ["ⵁ"] = "h", ["ⵂ"] = "h", ["ⵃ"] = "ḥ", ["ⵄ"] = "ɛ"...' 176670 Scribunto text/plain local export = {} local tt = {} tt["Tfng"] = { ["common"] = { ["ⴰ"] = "a", ["ⴱ"] = "b", ["ⴲ"] = "ḇ", ["ⴳ"] = "g", ["ⴴ"] = "g", ["ⴵ"] = "ǧ", ["ⴶ"] = "ǧ", ["ⴷ"] = "d", ["ⴸ"] = "ḏ", ["ⴹ"] = "ḍ", ["ⴺ"] = "ḏ̣", ["ⴻ"] = "e", ["ⴼ"] = "f", ["ⴽ"] = "k", ["ⴾ"] = "k", ["ⴿ"] = "k", ["ⵀ"] = "h", -- tmh, thv, taq, ttq, thz: "b" ["ⵁ"] = "h", ["ⵂ"] = "h", ["ⵃ"] = "ḥ", ["ⵄ"] = "ɛ", ["ⵅ"] = "x", ["ⵆ"] = "x", ["ⵇ"] = "q", ["ⵈ"] = "q", ["ⵉ"] = "i", ["ⵊ"] = "j", ["ⵋ"] = "j", ["ⵌ"] = "j", ["ⵍ"] = "l", ["ⵎ"] = "m", ["ⵏ"] = "n", ["ⵐ"] = "ny", ["ⵑ"] = "ng", ["ⵒ"] = "p", ["ⵓ"] = "u", -- tmh, thv, taq, ttq, thz: "w" ["ⵔ"] = "r", ["ⵕ"] = "ṛ", ["ⵖ"] = "ɣ", ["ⵗ"] = "ɣ", ["ⵘ"] = "j", -- thz: "ɣ" ["ⵙ"] = "s", ["ⵚ"] = "ṣ", ["ⵜ"] = "t", ["ⵝ"] = "ṯ", ["ⵛ"] = "c", ["ⵞ"] = "č", ["ⵟ"] = "ṭ", ["ⵠ"] = "v", ["ⵡ"] = "w", ["ⵢ"] = "y", ["ⵣ"] = "z", ["ⵤ"] = "z", ["ⵥ"] = "ẓ", ["ⵦ"] = "e", ["ⵧ"] = "o", ["ⵯ"] = "ʷ", ["⵰"] = ".", ["⵿"] = "" }, ["tmh"] = {["ⵀ"] = "b", ["ⵓ"] = "w"}, ["thv"] = {["ⵀ"] = "b", ["ⵓ"] = "w"}, ["taq"] = {["ⵀ"] = "b", ["ⵓ"] = "w"}, ["ttq"] = {["ⵀ"] = "b", ["ⵓ"] = "w"}, ["thz"] = {["ⵀ"] = "b", ["ⵓ"] = "w", ["ⵘ"] = "ɣ"} } function export.tr(text, lang, sc) if not sc then sc = require("Module:languages").getByCode(lang or "ber"):findBestScript(text):getCode() end if sc ~= "Tfng" then text = nil else if tt[sc][lang] then text = mw.ustring.gsub(text, '.', tt[sc][lang]) end text = mw.ustring.gsub(text, '.', tt[sc]["common"]) end return text end return export 3rc465dde29dpt17d59lo2rs17hntx5 Module:Mtei-translit 828 38086 176671 2026-04-26T12:01:26Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local gsub = mw.ustring.gsub local u = require("Module:string/char") local tt = { -- consonants ['ꯀ'] = 'kᵃ', ['ꯈ'] = 'khᵃ', ['ꯒ'] = 'gᵃ', ['ꯘ'] = 'ghᵃ', ['ꯉ'] = 'ngᵃ', ['ꯆ'] = 'cᵃ', ['ꫢ'] = 'chᵃ', ['ꯖ'] = 'jᵃ', ['ꯓ'] = 'jhᵃ', ['ꫣ'] = 'nyᵃ', ['ꫤ'] = 'ttᵃ', ['ꫥ'] = 'tthᵃ', ['ꫦ'] = 'ddᵃ', ['ꫧ'] = 'ddhᵃ', ['ꫨ'] = 'nnᵃ', ['ꯇ'] = 'tᵃ', ['ꯊ'] = 'thᵃ', ['ꯗ'] = 'dᵃ', ['ꯙ'] =...' 176671 Scribunto text/plain local export = {} local gsub = mw.ustring.gsub local u = require("Module:string/char") local tt = { -- consonants ['ꯀ'] = 'kᵃ', ['ꯈ'] = 'khᵃ', ['ꯒ'] = 'gᵃ', ['ꯘ'] = 'ghᵃ', ['ꯉ'] = 'ngᵃ', ['ꯆ'] = 'cᵃ', ['ꫢ'] = 'chᵃ', ['ꯖ'] = 'jᵃ', ['ꯓ'] = 'jhᵃ', ['ꫣ'] = 'nyᵃ', ['ꫤ'] = 'ttᵃ', ['ꫥ'] = 'tthᵃ', ['ꫦ'] = 'ddᵃ', ['ꫧ'] = 'ddhᵃ', ['ꫨ'] = 'nnᵃ', ['ꯇ'] = 'tᵃ', ['ꯊ'] = 'thᵃ', ['ꯗ'] = 'dᵃ', ['ꯙ'] = 'dhᵃ', ['ꯅ'] = 'nᵃ', ['ꯄ'] = 'pᵃ', ['ꯐ'] = 'phᵃ', ['ꯕ'] = 'bᵃ', ['ꯚ'] = 'bhᵃ', ['ꯃ'] = 'mᵃ', ['ꯌ'] = 'yᵃ', ['ꯔ'] = 'rᵃ', ['ꯂ'] = 'lᵃ', ['ꯋ'] = 'wᵃ', ['ꫩ'] = 'shᵃ', ['ꫪ'] = 'ssᵃ', ['ꯁ'] = 'sᵃ', ['ꯍ'] = 'hᵃ', -- finals ['ꯛ'] = 'k', ['ꯜ'] = 'l', ['ꯝ'] = 'm', ['ꯞ'] = 'p', ['ꯟ'] = 'n', ['ꯠ'] = 't', ['ꯡ'] = 'ng', ['ꯢ'] = 'i', -- ending -- independent vowels ['ꯑ'] = 'ʼᵃ', ['ꯏ'] = 'ʼi', ['ꯎ'] = 'ʼu', ['ꫠ'] = 'ʼe', ['ꫡ'] = 'ʼo', -- dependent vowels and diacritics ['ꯥ'] = 'ā', ['ꯤ'] = 'i', ['ꫫ'] = 'ī', ['ꯨ'] = 'u', ['ꫬ'] = 'ū', ['ꯦ'] = 'e', ['ꯩ'] = 'ei', ['ꫭ'] = 'āi', ['ꯣ'] = 'o', ['ꯧ'] = 'ou', ['ꫮ'] = 'au', ['ꫯ'] = 'āu', ['ꯪ'] = 'ṃ', ['ꫵ'] = 'ḥ', ['꫶'] = '¤', -- marks ['꯫'] = '.', ['꫰'] = ',', ['꫱'] = '?', ['ꫳ'] = '˶', ['ꫴ'] = '˶˶', ['꯭'] = '͟', -- numerals ["꯰"] = "0", ["꯱"] = "1", ["꯲"] = "2", ["꯳"] = "3", ["꯴"] = "4", ["꯵"] = "5", ["꯶"] = "6", ["꯷"] = "7", ["꯸"] = "8", ["꯹"] = "9", -- zero-width space (display it if it's hidden in a word) [u(0x200B)] = "‼", -- zero-width non-joiner and joiner (display it if it's hidden in a word) [u(0x200C)] = "₋", [u(0x200D)] = "₊", } function export.tr(text, lang, sc) if type(text) == 'table' then -- called directly from a template text = text.args[1] end text = gsub(text, '.', tt) text = gsub(text, 'ᵃ([aeiouāīū])', '%1') text = gsub(text, 'ᵃ¤', '') text = gsub(text, 'ᵃ͟', '͟') text = gsub(text, 'ᵃ', 'a') text = gsub(text, '¤', '') return text end return export r8rf1atu927pz6tdvf1w5mke2slbjli Module:urj-koo-translit 828 38087 176672 2026-04-26T12:02:33Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tab = { -- Anbur ["𐍐"]="a", ["𐍑"]="b", ["𐍒"]="g", ["𐍓"]="d", ["𐍔"]="e", ["𐍕"]="ž", ["𐍖"]="ǯ", ["𐍗"]="z", ["𐍘"]="ʒ́", ["𐍙"]="j", ["𐍚"]="k", ["𐍛"]="l", ["𐍜"]="m", ["𐍝"]="n", ["𐍞"]="ô", ["𐍟"]="p", ["𐍠"]="r", ["𐍡"]="s", ["𐍢"]="t", ["𐍣"]="v", ["𐍤"]="č", ["𐍥"]="š", ["𐍦"]="č", ["𐍧"]="ju", ["𐍨"]="y", ["𐍩"]="o", ["𐍪"]="o", ["𐍫"]="f", ["𐍬"]="x", [...' 176672 Scribunto text/plain local export = {} local tab = { -- Anbur ["𐍐"]="a", ["𐍑"]="b", ["𐍒"]="g", ["𐍓"]="d", ["𐍔"]="e", ["𐍕"]="ž", ["𐍖"]="ǯ", ["𐍗"]="z", ["𐍘"]="ʒ́", ["𐍙"]="j", ["𐍚"]="k", ["𐍛"]="l", ["𐍜"]="m", ["𐍝"]="n", ["𐍞"]="ô", ["𐍟"]="p", ["𐍠"]="r", ["𐍡"]="s", ["𐍢"]="t", ["𐍣"]="v", ["𐍤"]="č", ["𐍥"]="š", ["𐍦"]="č", ["𐍧"]="ju", ["𐍨"]="y", ["𐍩"]="o", ["𐍪"]="o", ["𐍫"]="f", ["𐍬"]="x", ["𐍭"]="ʒ́", ["𐍮"]="v", ["𐍯"]="y", ["𐍰"]="je", ["𐍱"]="ê", ["𐍲"]="jê", ["𐍳"]="ju", ["𐍴"]="ja", ["𐍵"]="ja", ["𐍶"]="a", ["𐍷"]="d", ["𐍸"]="z", ["𐍹"]="n", ["𐍺"]="s", ["̀"]="", -- capital Cyrillic ["А"]="A", ["Б"]="B", ["В"]="V", ["Г"]="G", ["Д"]="D", ["Е"]="E", ["Ж"]="Ž", ["З"]="Z", ["Ѕ"]="Ʒ́", ["И"]="I", ["І"]="I", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["О"]="O", ["Ѡ"]="O", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["Ꙋ"]="U", ["У"]="U", ["Ф"]="F", ["Х"]="X", ["Ц"]="C", ["Ч"]="Č", ["Ш"]="Š", ["Щ"]="Št", ["Ъ"]="", ["Ꙑ"]="Y", ["Ы"]="Y", ["Ь"]="ʹ", ["Ѣ"]="E", ["Ю"]="Ju", ["Ꙗ"]="Ja", ["Я"]="Ja", ["Ѧ"]="Ja", -- lowercase Cyrillic ["а"]="a", ["б"]="b", ["в"]="v", ["г"]="g", ["д"]="d", ["е"]="e", ["ж"]="ž", ["з"]="z", ["ѕ"]="ʒ́", ["и"]="i", ["і"]="i", ["к"]="k", ["л"]="l", ["м"]="m", ["н"]="n", ["о"]="o", ["ѡ"]="o", ["п"]="p", ["р"]="r", ["с"]="s", ["т"]="t", ["ꙋ"]="u", ["у"]="u", ["ф"]="f", ["х"]="x", ["ц"]="c", ["ч"]="č", ["ш"]="š", ["щ"]="št", ["ъ"]="", ["ꙑ"]="y", ["ы"]="y", ["ь"]="ʹ", ["ѣ"]="e", ["ю"]="ju", ["ꙗ"]="ja", ["я"]="ja", ["ѧ"]="ja" } function export.tr(text, lang, sc) local language = lang -- palatalisation text = mw.ustring.gsub(text, "𐍓̀", "ď") text = mw.ustring.gsub(text, "𐍕̀", "ź") text = mw.ustring.gsub(text, "𐍛̀", "ľ") text = mw.ustring.gsub(text, "𐍝̀", "ň") text = mw.ustring.gsub(text, "𐍥̀", "ś") text = mw.ustring.gsub(text, "𐍢̀", "ť") text = mw.ustring.gsub(text, "𐍤̀", "ć") text = mw.ustring.gsub(text, "𐍙̈", "i") text = mw.ustring.gsub(text, "𐍣̈", "u") return (mw.ustring.gsub(text,'.',tab)) end return export omykwjfihjuy3vvt4w6d0xigaanh841 Module:Runr-translit 828 38088 176673 2026-04-26T12:02:36Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local letters = {} local export = {} local letters = {} -- Elder futhark letters["gmq-pro"] = { ["ᚠ"]='f', ["ᚢ"]='u', ["ᚦ"]='þ', ["ᚨ"]='a', ["ᚱ"]='r', ["ᚲ"]='k', ["ᚳ"]='k', ['ᚴ']='k',--transitional period ["ᚷ"]='g', ["ᚹ"]='w', ["ᚺ"]='h', ["ᚻ"]='h', ["ᚾ"]='n', ["ᛁ"]='i', ["ᛃ"]='j', ["ᛡ"]='ᴀ',--transitional period ["ᛇ"]='ï', ["ᛈ"]='p', ["ᛉ"]='ʀ', ["ᛦ"]='ʀ',--transitional period ["...' 176673 Scribunto text/plain local export = {} local letters = {} local export = {} local letters = {} -- Elder futhark letters["gmq-pro"] = { ["ᚠ"]='f', ["ᚢ"]='u', ["ᚦ"]='þ', ["ᚨ"]='a', ["ᚱ"]='r', ["ᚲ"]='k', ["ᚳ"]='k', ['ᚴ']='k',--transitional period ["ᚷ"]='g', ["ᚹ"]='w', ["ᚺ"]='h', ["ᚻ"]='h', ["ᚾ"]='n', ["ᛁ"]='i', ["ᛃ"]='j', ["ᛡ"]='ᴀ',--transitional period ["ᛇ"]='ï', ["ᛈ"]='p', ["ᛉ"]='ʀ', ["ᛦ"]='ʀ',--transitional period ["ᛊ"]='s', ["ᛋ"]='s', ["ᛏ"]='t', ["ᛒ"]='b', ["ᛖ"]='e', ["ᛗ"]='m', ["ᛚ"]='l', ["ᛜ"]='ŋ', ["ᛝ"]="ŋ", ["ᛟ"]='o', ["ᛞ"]='d', ["᛫"]='·', ["᛬"]=':' } -- Old High German letters["goh"] = { ["ᚠ"]='f', ["ᚢ"]='u', ["ᚦ"]='þ', ["ᚨ"]='a', ["ᚱ"]='r', ["ᚲ"]='k', ["ᚳ"]='k', ['ᚴ']='k', ["ᚷ"]='g', ["ᚹ"]='w', ["ᚺ"]='h', ["ᚻ"]='h', ["ᚾ"]='n', ["ᛁ"]='i', ["ᛃ"]='j', ["ᛇ"]='ï', ["ᛈ"]='p', ["ᛊ"]='s', ["ᛋ"]='s', ["ᛏ"]='t', ["ᛒ"]='b', ["ᛖ"]='e', ["ᛗ"]='m', ["ᛚ"]='l', ["ᛜ"]='ŋ', ["ᛝ"]="ŋ", ["ᛟ"]='o', ["ᛞ"]='d' } -- Anglo-Saxon futhorc letters["ang"] = { ["ᚠ"]="f", ["ᚢ"]="u", ["ᚦ"]="þ", ["ᚩ"]="ó", ["ᚱ"]="r", ["ᚳ"]="c", ["ᚷ"]="ġ",["ᚸ"]="g", ["ᚹ"]="w", ["ᚺ"]='h', ["ᚻ"]='h', ["ᚾ"]="n", ["ᛁ"]="i", ["ᛄ"]="j", ["ᛇ"]="eo", ["ᛈ"]="p", ["ᛉ"]="x", ["ᛋ"]="s", ["ᛏ"]="t", ["ᛒ"]="b", ["ᛖ"]="e", ["ᛗ"]="m", ["ᛚ"]="l", ["ᛜ"]='ŋ', ["ᛝ"]="ŋ", ["ᛟ"]="œ", ["ᛞ"]="d", ["ᚪ"]="a", ["ᚫ"]="æ", ["ᚣ"]="y", ["ᛡ"]="io", ["ᛠ"]="ea" } -- Younger futhark, including later stung or otherwise modified variants letters["non"] = { ["ᚠ"]="f", ["ᚡ"]="v", ["ᚢ"]="u", ["ᚤ"]="y", ["ᚦ"]="þ", ["ᚧ"]="ð", ["ᚬ"]="ą", ["ᚭ"]="ą", ["ᚨ"]="ą", ["ᚮ"]="o", ["ᚯ"]="ø", ["ᚰ"]="ǫ", ["ᚱ"]="r", ["ᚴ"]="k", ["ᚵ"]="g", ["ᚼ"]="h", ["ᚽ"]="h", ["ᚾ"]="n", ["ᚿ"]="n", ["ᛁ"]="i", ["ᛂ"]="e", ["ᛅ"]="a", ["ᛆ"]="a", ["ᛡ"]='ᴀ', ["ᛋ"]="s", ["ᛌ"]="s", ["ᛏ"]="t", ["ᛐ"]="t", ["ᛑ"]="d", ["ᛒ"]="b", ["ᛓ"]="b", ["ᛕ"]="p", ["ᛔ"]="p", ["ᛘ"]="m", ["ᛙ"]="m", ["ᛚ"]="l", ["ᛦ"]="ʀ", ["ᛧ"]="ʀ", --certain Elder Futhark letters exist in early Old Norse inscriptions ["ᚷ"]='ɢ', ["ᚹ"]='w', ["ᚺ"]='ʜ', ["ᛖ"]='ᴇ', ["ᛗ"]='ᴍ', ["ᛞ"]='ᴅ', ["ᛟ"]='ᴏ' } -- Old Danish letters["gmq-oda"] = { ["ᚠ"]="f", ["ᚡ"]="v", ["ᚢ"]="u", ["ᚤ"]="y", ["ᚦ"]="þ", ["ᚧ"]="ð", ["ᚮ"]="o", ["ᚯ"]="ø", ["ᚱ"]="r", ["ᚴ"]="k", ["ᚵ"]="g", ["ᚼ"]="h", ["ᚽ"]="h", ["ᚾ"]="n", ["ᚿ"]="n", ["ᛁ"]="i", ["ᛂ"]="e", ["ᛅ"]="æ", ["ᛆ"]="a", ["ᛋ"]="s", ["ᛌ"]="s", ["ᛏ"]="t", ["ᛐ"]="t", ["ᛑ"]="d", ["ᛒ"]="b", ["ᛓ"]="b", ["ᛕ"]="p", ["ᛔ"]="p", ["ᛘ"]="m", ["ᛙ"]="m", ["ᛚ"]="l", ["ᛦ"]="y", ["ᛧ"]="ʀ", } function export.tr(text, lang, sc) if letters[lang] then return (mw.ustring.gsub(text, ".", letters[lang])) end return nil end return export edixxns7vr8cz5v6gzxgl9lk8w6qbis Module:kca-translit 828 38089 176674 2026-04-26T12:02:38Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tt = { ["А"]="A", ["Ӓ"]="Ä", ["Ӑ"]="Ă", ["Б"]="B", ["В"]="W", ["Г"]="G", ["Д"]="D", ["а"]="a", ["ӓ"]="ä", ["ӑ"]="ă", ["б"]="b", ["в"]="w", ["г"]="g", ["д"]="d", ["Е"]="Je",["Ё"]="Jo",["Ә"]="Ə", ["Ӛ"]="Jə",["Ж"]="Ž", ["З"]="Z", ["И"]="I", ["е"]="je",["ё"]="jo",["ә"]="ə", ["ӛ"]="jə",["ж"]="ž", ["з"]="z", ["и"]="i", ["І"]="I", ["Й"]="J", ["К"]="K", ["Қ"]="Ḳ", ["Ӄ"]="Ḳ", ["Л"]="L", ["Ԯ"]="...' 176674 Scribunto text/plain local export = {} local tt = { ["А"]="A", ["Ӓ"]="Ä", ["Ӑ"]="Ă", ["Б"]="B", ["В"]="W", ["Г"]="G", ["Д"]="D", ["а"]="a", ["ӓ"]="ä", ["ӑ"]="ă", ["б"]="b", ["в"]="w", ["г"]="g", ["д"]="d", ["Е"]="Je",["Ё"]="Jo",["Ә"]="Ə", ["Ӛ"]="Jə",["Ж"]="Ž", ["З"]="Z", ["И"]="I", ["е"]="je",["ё"]="jo",["ә"]="ə", ["ӛ"]="jə",["ж"]="ž", ["з"]="z", ["и"]="i", ["І"]="I", ["Й"]="J", ["К"]="K", ["Қ"]="Ḳ", ["Ӄ"]="Ḳ", ["Л"]="L", ["Ԯ"]="Ł", ["і"]="i", ["й"]="j", ["к"]="k", ["қ"]="ḳ", ["ӄ"]="ḳ", ["л"]="l", ["ԯ"]="ł", ["Ԓ"]="Ł", ["Љ"]="Lj",["М"]="M", ["Н"]="N", ["Ң"]="Ṇ", ["Ӈ"]="Ṇ", ["Њ"]="Nj", ["ԓ"]="ł", ["љ"]="lj",["м"]="m", ["н"]="n", ["ң"]="ṇ", ["ӈ"]="ṇ", ["њ"]="nj", ["Ԋ"]="Nj",["О"]="O", ["Ӧ"]="Ö", ["Ө"]="Ø", ["Ӫ"]="Ø̈", ["Ө̆"]="Ø̆", ["П"]="P", ["ԋ"]="nj",["о"]="o", ["ӧ"]="ö", ["ө"]="ø", ["ӫ"]="ø̈", ["ө̆"]="ø̆", ["п"]="p", ["Р"]="R", ["С"]="S", ["Ҫ"]="Ş", ["Т"]="T", ["Ҭ"]="Ț", ["Ᲊ"]="Tj",["У"]="U", ["р"]="r", ["с"]="s", ["ҫ"]="ş", ["т"]="t", ["ҭ"]="ț", ["ᲊ"]="tj",["у"]="u", ["Ӱ"]="Ü", ["Ў"]="Ŭ", ["Ф"]="F", ["Х"]="H", ["Ҳ"]="Ḥ", ["Ӽ"]="Ḥ", ["Ц"]="C", ["ӱ"]="ü", ["ў"]="ŭ", ["ф"]="f", ["х"]="h", ["ҳ"]="ḥ", ["ӽ"]="ḥ", ["ц"]="c", ["Ч"]="Č", ["Ҷ"]="Č̣", ["Ш"]="Š", ["Щ"]="Sj",["Ъ"]="”", ["Ы"]="Y", ["Ь"]="’", ["ч"]="č", ["ҷ"]="č̣", ["ш"]="š", ["щ"]="sj",["ъ"]="”", ["ы"]="y", ["ь"]="’", ["Э"]="E", ["Є"]="Ê", ["Є̈"]="Ë", ["Ю"]="Ju",["Ю̆"]="Jŭ",["Я"]="Ja",["Я̆"]="Jă", ["Я̈"]="Jä", ["э"]="e", ["є"]="ê", ["є̈"]="ë", ["ю"]="ju",["ю̆"]="jŭ",["я"]="ja",["я̆"]="jă", ["я̈"]="jä", }; function export.tr(text, lang, sc) return (mw.ustring.gsub(text, '.', tt)) end return export 940aijayv6px4inxolfj87d1wtravg4 Module:yrk-for-translit 828 38090 176675 2026-04-26T12:02:40Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tab = { ["А"]="A", ["Б"]="B", ["В"]="W", ["Г"]="G", ["Д"]="D", ["Е"]="Ye", ["Ё"]="Yo", ["Ж"]="Ž", ["З"]="Z", ["И"]="Yi", ["Й"]="Y", ["Ӑ"]="Ă", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["О"]="O", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ф"]="F", ["Ӣ"]="Yī", ["Х"]="X", ["Ц"]="C", ["Ч"]="Ć", ["Ш"]="Š", ["Щ"]="Ś", ["Ъ"]="ʺ", ["Ы"]="I", ["Ь"]="ʹ", ["Э"]="E", ["Ю"]="Yu", ["Я"]="Ya...' 176675 Scribunto text/plain local export = {} local tab = { ["А"]="A", ["Б"]="B", ["В"]="W", ["Г"]="G", ["Д"]="D", ["Е"]="Ye", ["Ё"]="Yo", ["Ж"]="Ž", ["З"]="Z", ["И"]="Yi", ["Й"]="Y", ["Ӑ"]="Ă", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["О"]="O", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ф"]="F", ["Ӣ"]="Yī", ["Х"]="X", ["Ц"]="C", ["Ч"]="Ć", ["Ш"]="Š", ["Щ"]="Ś", ["Ъ"]="ʺ", ["Ы"]="I", ["Ь"]="ʹ", ["Э"]="E", ["Ю"]="Yu", ["Я"]="Ya", ["Ӈ"]="Ŋ", ["Ԓ"]="Ł", ['а']='a', ['б']='b', ['в']='w', ['г']='g', ['д']='d', ['е']='ye', ['ё']='yo', ['ж']='ž', ['з']='z', ['и']='yi', ['й']='y', ["ӑ"]="ă", ["Ӭ"]="Ä", ['к']='k', ['л']='l', ['м']='m', ['н']='n', ['о']='o', ['п']='p', ['р']='r', ['с']='s', ['т']='t', ['у']='u', ['ф']='f', ["ӣ"]="yī", ['х']='x', ['ц']='c', ['ч']='ć', ['ш']='š', ['щ']='ś', ['ъ']='ʺ', ['ы']='i', ['ь']='ʹ', ['э']='e', ['ю']='yu', ['я']='ya', ["ӈ"]="ŋ", ["ԓ"]="ł", ["ˮ"]="q", ["ʼ"]="h", ['Ӯ']='Ū', ['ӯ']='ū', ["ӭ"]="ä", } function export.tr(text, lang, sc) return (mw.ustring.gsub(text, '.' ,tab)) end return export paxpoju06o7ty1hhq26e30assydyp7f Module:sel-sou-translit 828 38091 176676 2026-04-26T12:02:43Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local macron = u(0x0304) local acute = u(0x0300) local tt = { ["А"]='A', ["а"]='a', ["Ӓ"]="’a", ["ӓ"]="’a", ["Б"]='B', ["б"]='b', ["В"]='W', ["в"]='w', ["Г"]='G', ["г"]='g', ["Ӷ"]='Ģ', ["ӷ"]='ģ', ["Д"]='D', ["д"]='d', ["Е"]='Je', ["е"]='je', ["Ё"]="Jo", ["ё"]="jo", ["Ж"]='Ž', ["ж"]='ž', ["Җ"]='Ǯ', ["җ"]='ǯ', ["З"]='Z', ["з"]='z', ["И"]='I', ["и"]='i', ["И̇"]="Ï", [...' 176676 Scribunto text/plain local export = {} local u = mw.ustring.char local macron = u(0x0304) local acute = u(0x0300) local tt = { ["А"]='A', ["а"]='a', ["Ӓ"]="’a", ["ӓ"]="’a", ["Б"]='B', ["б"]='b', ["В"]='W', ["в"]='w', ["Г"]='G', ["г"]='g', ["Ӷ"]='Ģ', ["ӷ"]='ģ', ["Д"]='D', ["д"]='d', ["Е"]='Je', ["е"]='je', ["Ё"]="Jo", ["ё"]="jo", ["Ж"]='Ž', ["ж"]='ž', ["Җ"]='Ǯ', ["җ"]='ǯ', ["З"]='Z', ["з"]='z', ["И"]='I', ["и"]='i', ["И̇"]="Ï", ["и̇"]="ї", ["Й"]="J", ["й"]="j", ["К"]='K', ["к"]='k', ["Ӄ"]='Q', ["ӄ"]='q', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["Ӈ"]="Ŋ", ["ӈ"]="ŋ", ["О"]='O', ["о"]='o', ["Ӧ"]='Ö', ["ӧ"]='ö', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["С"]='S', ["с"]='s', ["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Ӱ"]='Ü', ["ӱ"]='ü', ["Ӯ"]="Ū", ["ӯ"]="ū", ["Ф"]='F', ["ф"]='f', ["Х"]='X', ["х"]='x', ["Ҳ"]="X", ["ҳ"]="x", ["Ц"]='C', ["ц"]='c', ["Ч"]='Č', ["ч"]='č', ["Ш"]='Š', ["ш"]='š', ["Щ"]="Šč", ["щ"]="šč", ["Ы"]="Y", ["ы"]="y", ["Ъ"]="", ["ъ"]="", ["Ь"]="’", ["ь"]="’", ["Э"]="E", ["э"]="e", ["Ю"]="Ju", ["ю"]="ju", ["Я"]="Ja", ["я"]="ja", } local vowel = "аӓеёиӣоӧуӱӯыэюяАӒЕЁИӢОӦУӰӮЫЭЮЯ" function export.tr(text, lang, sc) -- initial j + vowels text = mw.ustring.gsub(text, "^" .. "я" .. macron, "jā") text = mw.ustring.gsub(text, "^" .. "е" .. macron, "je") text = mw.ustring.gsub(text, "^" .. "ӣ", "jī") text = mw.ustring.gsub(text, "^" .. "ю" .. macron, "jū") text = mw.ustring.gsub(text, "^" .. "Я" .. macron, "Jā") text = mw.ustring.gsub(text, "^" .. "Е" .. macron, "Jē") text = mw.ustring.gsub(text, "^" .. "Ӣ", "Jī") text = mw.ustring.gsub(text, "^" .. "Ю" .. macron, "Jū") text = mw.ustring.gsub(text, " " .. "я" .. macron, "jā") text = mw.ustring.gsub(text, " " .. "е" .. macron, "je") text = mw.ustring.gsub(text, " " .. "ӣ", "jī") text = mw.ustring.gsub(text, " " .. "ю" .. macron, "jū") text = mw.ustring.gsub(text, " " .. "Я" .. macron, "Jā") text = mw.ustring.gsub(text, " " .. "Е" .. macron, "Jē") text = mw.ustring.gsub(text, " " .. "Ӣ", "Jī") text = mw.ustring.gsub(text, " " .. "Ю" .. macron, "Jū") return (mw.ustring.gsub(text, '.', tt)) end return export 9u7bwzo2lficrxjhqb6nc39imhyad0x Module:inc-oas-translit 828 38092 176677 2026-04-26T12:02:45Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local consonants = { ['ক']='k', ['খ']='kh', ['গ']='g', ['ঘ']='gh', ['ঙ']='ṅ', ['চ']='c', ['ছ']='ch', ['জ']='j', ['ঝ']='jh', ['ঞ']='ñ', ['ট']='ṭ', ['ঠ']='ṭh', ['ড']='ḍ', ['ঢ']='ḍh', ['ণ']='ṇ', ['ত']='t', ['থ']='th', ['দ']='d', ['ধ']='dh', ['ন']='n', ['প']='p', ['ফ']='ph', ['ব']='b', ['ভ']='bh', ['ম']='m', ['য']='j', ['ৰ']='r', ['ল']='l', ['ৱ']='w', ['শ']='ś', ['...' 176677 Scribunto text/plain local export = {} local consonants = { ['ক']='k', ['খ']='kh', ['গ']='g', ['ঘ']='gh', ['ঙ']='ṅ', ['চ']='c', ['ছ']='ch', ['জ']='j', ['ঝ']='jh', ['ঞ']='ñ', ['ট']='ṭ', ['ঠ']='ṭh', ['ড']='ḍ', ['ঢ']='ḍh', ['ণ']='ṇ', ['ত']='t', ['থ']='th', ['দ']='d', ['ধ']='dh', ['ন']='n', ['প']='p', ['ফ']='ph', ['ব']='b', ['ভ']='bh', ['ম']='m', ['য']='j', ['ৰ']='r', ['ল']='l', ['ৱ']='w', ['শ']='ś', ['ষ']='ṣ', ['স']='s', ['হ']='h', ['ড়']='ṛ', ['ঢ়']='ṛh', ['য়']='y', ['ক্ষ']='khy' } local diacritics = { ['া']='a', ['ি']='i', ['ী']='ī', ['ু']='u', ['ূ']='ū', ['ৃ']='ṛ', ['ৄ']='ṝ', ['ৢ']='ḷ', ['ৣ']='ḹ', ['ে']='e', ['ৈ']='oi', ['ো']='ö', ['ৌ']='ou', ['্']='', } local tt = { -- vowels ['অ']='o', ['আ']='a', ['ই']='i', ['ঈ']='ī', ['উ']='u', ['ঊ']='ū', ['ঋ']='ṛ', ['ৠ']='ṝ', ['ঌ']='ḷ', ['ৡ']='ḹ', ['এ']='e', ['ঐ']='oi', ['ও']='ö', ['ঔ']='ou', -- chandrabindu ['ঁ']='̐', --until a better method is found -- anusvara ['ং']='ṅ', --until a better method is found -- visarga ['ঃ']='ḥ', -- avagraha ['ঽ']='’', -- ['ৎ']='t', --numerals ['০']='0', ['১']='1', ['২']='2', ['৩']='3', ['৪']='4', ['৫']='5', ['৬']='6', ['৭']='7', ['৮']='8', ['৯']='9', --punctuation ['॥']='.', --double danda ['।']=',', --reconstructed ['*'] = '', } function export.tr(text, lang, sc) text = mw.ustring.gsub( text, '([কখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযৰলৱশষসহ]়?)'.. '([ািীুূৃৄৢৣেৈোৌ্]?)', function(c, d) if d == "" then return consonants[c] .. 'o' else return consonants[c] .. diacritics[d] end end) text = mw.ustring.gsub(text, '.', tt) return text end return export l87ghybwsx87x22iejvm7536oc27rkt Module:yrk-tun-translit 828 38093 176678 2026-04-26T12:02:47Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tab = { ["А"]="A", ["Б"]="B", ["В"]="W", ["Г"]="G", ["Д"]="D", ["Е"]="Ye", ["Ё"]="Yo", ["Ж"]="Ž", ["З"]="Z", ["И"]="Yi", ["Й"]="Y", ["Ӑ"]="Ă", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["О"]="O", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ф"]="F", ["Ӣ"]="Yī", ["Х"]="X", ["Ц"]="C", ["Ч"]="Ć", ["Ш"]="Š", ["Щ"]="Ś", ["Ъ"]="ʺ", ["Ы"]="I", ["Ь"]="ʹ", ["Э"]="E", ["Ю"]="Yu", ["Я"]="Ya...' 176678 Scribunto text/plain local export = {} local tab = { ["А"]="A", ["Б"]="B", ["В"]="W", ["Г"]="G", ["Д"]="D", ["Е"]="Ye", ["Ё"]="Yo", ["Ж"]="Ž", ["З"]="Z", ["И"]="Yi", ["Й"]="Y", ["Ӑ"]="Ă", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["О"]="O", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ф"]="F", ["Ӣ"]="Yī", ["Х"]="X", ["Ц"]="C", ["Ч"]="Ć", ["Ш"]="Š", ["Щ"]="Ś", ["Ъ"]="ʺ", ["Ы"]="I", ["Ь"]="ʹ", ["Э"]="E", ["Ю"]="Yu", ["Я"]="Ya", ["Ӈ"]="Ŋ", ['а']='a', ['б']='b', ['в']='w', ['г']='g', ['д']='d', ['е']='ye', ['ё']='yo', ['ж']='ž', ['з']='z', ['и']='yi', ['й']='y', ["ӑ"]="ă", ['к']='k', ['л']='l', ['м']='m', ['н']='n', ['о']='o', ['п']='p', ['р']='r', ['с']='s', ['т']='t', ['у']='u', ['ф']='f', ["ӣ"]="yī", ['х']='x', ['ц']='c', ['ч']='ć', ['ш']='š', ['щ']='ś', ['ъ']='ʺ', ['ы']='i', ['ь']='ʹ', ['э']='e', ['ю']='yu', ['я']='ya', ["ӈ"]="ŋ", ["ˮ"]="q", ["ʼ"]="h", ['Ӯ']='Ū', ['ӯ']='ū', } function export.tr(text, lang, sc) text = mw.ustring.gsub(text, "([БВГДЖЗЙКЛМНПРСТФХЦЧШЩЬӇбвгджзйклмнпрстфхцчшщьӈ])$", "%1°") text = mw.ustring.gsub(text, "([БВГДЖЗЙКЛМНПРСТФХЦЧШЩЬӇбвгджзйклмнпрстфхцчшщьӈ]) ", "%1° ") text = mw.ustring.gsub(text, "([БВГДЖЗЙКЛМНПРСТФХЦЧШЩЬӇбвгджзйклмнпрстфхцчшщьӈ])[ˮʼ]$", "%1") text = mw.ustring.gsub(text, "([БВГДЖЗЙКЛМНПРСТФХЦЧШЩЬӇбвгджзйклмнпрстфхцчшщьӈ])[ˮʼ] ", "%1 ") return (mw.ustring.gsub(text, '.' ,tab)) end return export q1kv1lcd5uy44cw8g2rio41k8bpbjt3 Module:sel-nor-translit 828 38094 176679 2026-04-26T12:02:49Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tab = { ["А"]="A", ["а"]="a", ["Б"]="B", ["б"]="b", ["В"]="W", ["в"]="w", ["Г"]="G", ["г"]="g", ["Д"]="D", ["д"]="d", ["Е"]="Je", ["е"]="je", ["Ё"]="Jo", ["ё"]="jo", ["Ж"]="Ž", ["ж"]="ž", ["З"]="Z", ["з"]="z", ["И"]="I", ["и"]="i", ["Й"]="J", ["й"]="j", ["К"]="K", ["к"]="k", ["Ӄ"]="Q", ["ӄ"]="q", ["Л"]="L", ["л"]="l", ["М"]="M", ["м"]="m", ["Н"]="N", ["н"]="n", ["Ӈ"]="Ŋ", ["ӈ"]="ŋ", ["О"]="O...' 176679 Scribunto text/plain local export = {} local tab = { ["А"]="A", ["а"]="a", ["Б"]="B", ["б"]="b", ["В"]="W", ["в"]="w", ["Г"]="G", ["г"]="g", ["Д"]="D", ["д"]="d", ["Е"]="Je", ["е"]="je", ["Ё"]="Jo", ["ё"]="jo", ["Ж"]="Ž", ["ж"]="ž", ["З"]="Z", ["з"]="z", ["И"]="I", ["и"]="i", ["Й"]="J", ["й"]="j", ["К"]="K", ["к"]="k", ["Ӄ"]="Q", ["ӄ"]="q", ["Л"]="L", ["л"]="l", ["М"]="M", ["м"]="m", ["Н"]="N", ["н"]="n", ["Ӈ"]="Ŋ", ["ӈ"]="ŋ", ["О"]="O", ["о"]="o", ["Ө"]="Å", ["ө"]="å", ["П"]="P", ["п"]="p", ["Р"]="R", ["р"]="r", ["С"]="S", ["с"]="s", ["Т"]="T", ["т"]="t", ["У"]="U", ["у"]="u", ["Ӱ"]="Ü", ["ӱ"]="ü", ["Ф"]="F", ["ф"]="f", ["Х"]="X", ["х"]="x", ["Ц"]="C", ["ц"]="c", ["Ч"]="Ć", ["ч"]="ć", ["Ш"]="Š", ["ш"]="š", ["Щ"]="Ś", ["щ"]="ś", ["Ы"]="Y", ["ы"]="y", ["Э"]="E", ["э"]="e", ["Ю"]="Ju", ["ю"]="ju", ["Я"]="Ja", ["я"]="ja", ["ъ"]="", ["ь"]="j" } function export.tr(text, lang, sc) return (mw.ustring.gsub(text, '.' ,tab)) end return export oy9c33ete48n9es6c0hi4guyz6puzol Module:inc-mas-translit 828 38095 176680 2026-04-26T12:02:52Z Yivan000 4078 Nilikha ang pahina na may '-- Transliteration for Assamese local export = {} local gsub = mw.ustring.gsub local match = mw.ustring.match local conv = { -- consonants ["ক্ষ"] = "kh", ["ক"] = "k", ["খ"] = "kh", ["গ"] = "g", ["ঘ"] = "gh", ["ঙ"] = "ṅ", ["চ"] = "s", ["ছ"] = "s", ["জ"] = "z", ["ঝ"] = "zh", ["ঞ"] = "ñ", ["ট"] = "t", ["ঠ"] = "th", ["ড"] = "d", ["ঢ"] = "dh", ["ণ"] = "n", ["ত"] = "t", ["থ"] = "th", ["দ"] = "d", ["ধ"] = "dh", ["...' 176680 Scribunto text/plain -- Transliteration for Assamese local export = {} local gsub = mw.ustring.gsub local match = mw.ustring.match local conv = { -- consonants ["ক্ষ"] = "kh", ["ক"] = "k", ["খ"] = "kh", ["গ"] = "g", ["ঘ"] = "gh", ["ঙ"] = "ṅ", ["চ"] = "s", ["ছ"] = "s", ["জ"] = "z", ["ঝ"] = "zh", ["ঞ"] = "ñ", ["ট"] = "t", ["ঠ"] = "th", ["ড"] = "d", ["ঢ"] = "dh", ["ণ"] = "n", ["ত"] = "t", ["থ"] = "th", ["দ"] = "d", ["ধ"] = "dh", ["ন"] = "n", ["প"] = "p", ["ফ"] = "ph", ["ব"] = "b", ["ভ"] = "bh", ["ম"] = "m", ["য"] = "z", ["ৰ"] = "r", ["ল"] = "l", ["ৱ"] = "w", ["শ"] = "x", ["ষ"] = "x", ["স"] = "x", ["হ"] = "h", ["য়"] = "y", ["ড়"] = "r", ["ঢ়"] = "rh", -- vowel diacritics ["’"] = "ö", ["ি"] = "i", ["ু"] = "u", ["ৃ"] = "ri", ["ে"] = "e", ["ে’"] = "ë", ["ো"] = "ü", ["া"] = "a", ["ী"] = "i", ["ূ"] = "u", ["ৈ"] = "oi", ["ৌ"] = "ou", -- visarga ["ঃ"] = "o", -- vowel signs ["অ"] = "o", ["অ’"] = "ó", ["ই"] = "i", ["উ"] = "u", ["ঋ"] = "ri", ["এ"] = "e", ["এ’"] = "é", ["ও"] = "ü", ["আ"] = "a", ["ঈ"] = "i", ["ঊ"] = "u", ["ঐ"] = "oi", ["ঔ"] = "ou", --hosonto ["্"] = "", -- sondrobindu ["ঁ"] = "̃", -- owogroho ['ঽ']='’', -- onusor ["ং"] = "ṅ", -- hosonto to, ["ৎ"] = "t", -- numerals ["০"] = "0", ["১"] = "1", ["২"] = "2", ["৩"] = "3", ["৪"] = "4", ["৫"] = "5", ["৬"] = "6", ["৭"] = "7", ["৮"] = "8", ["৯"] = "9", -- punctuation ["।"] = ".", -- dari } local conv2 = { ["ক্ষ"] = "ḱ", ["খ"] = "ḱ", ["ঘ"] = "ǵ", ["ঙ"] = "ŋ", ["ং"] = "ŋ", ["ঝ"] = "ź", ["ঠ"] = "ṫ", ["থ"] = "ṫ", ["ঢ"] = "ḋ", ["ধ"] = "ḋ", ["ফ"] = "ṗ", ["ভ"] = "ḃ", ["ঢ়"] = "ŕ", ["ৃ"] = "ṙ", ["ঋ"] = "ṙ", ["ৈ"] = "ʏ", ["ঐ"] = "ʏ", ["ৌ"] = "ɵ", ["ঔ"] = "ɵ", } local consonant, vowel, vowel_sign = "ক-হড়-য়ৰৱ", "oা-ৌ’", "অ-ঔ" local c = "[" .. consonant .. "]" local cc = "়?" .. c local v = "[" .. vowel .. vowel_sign .. "]" local syncope_pattern = "(" .. v .. cc .. v .. cc .. ")o(" .. cc .. "ঁ?" .. v .. ")" local function rev_string(text) local result, length = "", mw.ustring.len(text) for i = 1, length do result = result .. mw.ustring.sub(text, length - i + 1, length - i + 1) end return result end function export.tr(text, lang, sc, mode) text = gsub(text, "([^ৰ])্য", "%1্য়") text = gsub(text, "্ব", "্ৱ") text = gsub(text, "[শষস]্", "চ্") text = gsub(text, "্স", "্চ") text = gsub(text, "[োও]ৱ", "্ও") text = gsub(text, "ক্ষ", "খ") text = gsub(text, "’ৱ", "্অ’") text = gsub(text, "[ুুউ]ৱ(.)", "্উ%1") text = gsub(text, "[োও]ৱ(.)", "্ও%1") text = gsub(text, "োঁৱ(.)", "্ওঁ%1") text = gsub(text, "[ৌঔ]ৱ", "্ঔ") text = gsub(text, "[িই]য়(.)", "্ই%1") text = gsub(text, "ৃয়", "্ঋ") text = gsub(text, "[েএ]য়(.)", "্এ%1") text = gsub(text, "[ে’এ’]য়", "্এ’") text = gsub(text, "[ৈঐ]য়(.)", "্ঐ%1") text = gsub(text, "[ীঈ]য়(.)", "্ঈ%1") text = gsub(text, "[ীঈ]য়", "্ঈঅ") -- end text = gsub(text, "[ূূঊ]ৱ", "্ঊ") text = gsub(text, "݁", "্অ") text = gsub(text, "ঃ", "্অ") text = gsub(text, "[࣪ܿ]", "্") text = gsub(text, "বাৰ" , "্বাৰ") text = gsub(text, "বিলাক", "্বিলাক") text = gsub(text, "টো" , "্টো") text = gsub(text, "খন" , "্খন") text = gsub(text, "ডাল" , "্ডাল") text = gsub(text, "খিনি" , "্খিনি") text = gsub(text, "জন" , "্জন") text = gsub(text, "জনী" , "্জনী") text = gsub(text, "গৰাকী" , "্গৰাকী") text = gsub(text, "সকল" , "্সকল") text = gsub(text, "কৈ" , "্কৈ") text = gsub(text, "কে" , "্কে") text = gsub(text, "ফাল" , "্ফাল") text = gsub(text, "কেই" , "্কেই") text = gsub(text, "মান" , "্মান") text = gsub(text, "[িীইঈ]ঞ", "্ইঅ͂") text = gsub(text, "ঞ্", "ন্̃") text = gsub(text, "(" .. c .. "়?)([" .. vowel .. "’?্]?)", function(a, b) return a .. (b == "" and "o" or b) end) for word in mw.ustring.gmatch(text, "[ঁ-৽o’]+") do local orig_word = word word = rev_string(word) word = gsub(word, "^o(়?" .. c .. ")(ঁ?" .. v .. ")", "%1%2") while match(word, syncope_pattern) do word = gsub(word, syncope_pattern, "%1%2") end text = gsub(text, orig_word, rev_string(word)) end if mode == "IPA" then text = gsub(text, ".[়’]?", conv2) text = gsub(text, ".", conv2) end text = gsub(text, ".[়’]?", conv) text = gsub(text, ".", conv) local consonants_Latn_no_h = "[b-df-gj-np-tv-z]" -- Cw text = gsub(text, "mw", "mb") -- special case text = gsub(text, "^(" .. consonants_Latn_no_h .. "h?)w", "%1") -- initial text = gsub(text, "hw", "hb") text = gsub(text, "(" .. consonants_Latn_no_h .. ")w", "%1%1") -- medial -- zñ text = gsub(text, "^zñ", "gy") -- initial text = gsub(text, "zñ", "gg") -- medial -- Cy text = gsub(text, "^khy", "kh" ) text = gsub(text, "([aéeióoüu])(" .. consonants_Latn_no_h .. ")y", "%1i%2%2") -- final "b" has inherent vowel text = gsub(text, "b$", "bo") text = gsub(text, "b ", "bo ") -- final r conjuncts text = gsub(text, "r([kszt])o$", "r%1") text = gsub(text, "r([kszt])o ", "r%1 ") text = gsub(text, "rkho$", "rkh") text = gsub(text, "rkho ", "rkh ") if match(text, "[ঁ-৽]") and mode ~= "debug" then return nil else return mw.ustring.toNFC(text) end end return export 3dr3pdiwc2bnqokjr2vzofb9ppoz340 Module:bnt-pro-sortkey 828 38096 176681 2026-04-26T12:02:54Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local a, b = u(0xF000), u(0xF001) local remove_diacritics = u(0x0300) .. u(0x0301) -- grave, acute local oneChar = { ["ɪ"] = "i" .. a, ["ì"] = "i" .. b, ["í"] = "i" .. b, ["ʊ"] = "u" .. a, ["ù"] = "u" .. b, ["ú"] = "u" .. b } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.toNFC(mw.ustring.gsub(mw.ustring.toNFD(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)), "[" .. remov...' 176681 Scribunto text/plain local export = {} local u = mw.ustring.char local a, b = u(0xF000), u(0xF001) local remove_diacritics = u(0x0300) .. u(0x0301) -- grave, acute local oneChar = { ["ɪ"] = "i" .. a, ["ì"] = "i" .. b, ["í"] = "i" .. b, ["ʊ"] = "u" .. a, ["ù"] = "u" .. b, ["ú"] = "u" .. b } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.toNFC(mw.ustring.gsub(mw.ustring.toNFD(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)), "[" .. remove_diacritics .. "]", ""))) -- decompose, remove appropriate diacritics, then recompose again end return export 0xagsm5z1meiajymzdjlpul8rs3bk3m Module:gem-pro-sortkey 828 38097 176682 2026-04-26T12:02:56Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local remove_diacritics = u(0x0302) .. u(0x0304) -- circumflex, macron local oneChar = { ["ą"] = "an", ["į"] = "in", ["ǫ"] = "on", ["ų"] = "un" } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.toNFC(mw.ustring.gsub(mw.ustring.toNFD(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)), "[" .. remove_diacritics .. "]", ""))) -- decompose, remove appropriate diacritics, then recom...' 176682 Scribunto text/plain local export = {} local u = mw.ustring.char local remove_diacritics = u(0x0302) .. u(0x0304) -- circumflex, macron local oneChar = { ["ą"] = "an", ["į"] = "in", ["ǫ"] = "on", ["ų"] = "un" } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.toNFC(mw.ustring.gsub(mw.ustring.toNFD(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)), "[" .. remove_diacritics .. "]", ""))) -- decompose, remove appropriate diacritics, then recompose again end return export 4tap68mjd5qt3mdukwabrpdbjban8wb Module:cel-pro-sortkey 828 38098 176683 2026-04-26T12:02:59Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local a = u(0xF000) local remove_diacritics = u(0x0304) -- macron local oneChar = { ["ɸ"] = "f", ["φ"] = "f", ["ʷ"] = "w" } function export.makeSortKey(text, lang, sc) text = mw.ustring.gsub(mw.ustring.lower(text), "w", "w" .. a) -- ensure "w" comes after "ʷ" return mw.ustring.upper(mw.ustring.toNFC(mw.ustring.gsub(mw.ustring.toNFD(mw.ustring.gsub(text, ".", oneChar)), "[" .. remove_diacritics .. "]", "")))...' 176683 Scribunto text/plain local export = {} local u = mw.ustring.char local a = u(0xF000) local remove_diacritics = u(0x0304) -- macron local oneChar = { ["ɸ"] = "f", ["φ"] = "f", ["ʷ"] = "w" } function export.makeSortKey(text, lang, sc) text = mw.ustring.gsub(mw.ustring.lower(text), "w", "w" .. a) -- ensure "w" comes after "ʷ" return mw.ustring.upper(mw.ustring.toNFC(mw.ustring.gsub(mw.ustring.toNFD(mw.ustring.gsub(text, ".", oneChar)), "[" .. remove_diacritics .. "]", ""))) -- decompose, remove appropriate diacritics, then recompose again end return export s4tpyk1s0a6cln7elxc6pbgn54mljlx Module:gmw-pro-sortkey 828 38099 176684 2026-04-26T12:03:01Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local remove_diacritics = u(0x0304) .. u(0x0328) -- macron, ogonek local oneChar = { ["ʀ"] = "r" } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.toNFC(mw.ustring.gsub(mw.ustring.toNFD(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)), "[" .. remove_diacritics .. "]", ""))) -- decompose, remove appropriate diacritics, then recompose again end return export' 176684 Scribunto text/plain local export = {} local u = mw.ustring.char local remove_diacritics = u(0x0304) .. u(0x0328) -- macron, ogonek local oneChar = { ["ʀ"] = "r" } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.toNFC(mw.ustring.gsub(mw.ustring.toNFD(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)), "[" .. remove_diacritics .. "]", ""))) -- decompose, remove appropriate diacritics, then recompose again end return export 7lc3wpilcm5n7sf864u24efw71z1off Module:syl-translit 828 38100 176685 2026-04-26T12:04:36Z Yivan000 4078 Nilikha ang pahina na may '-- Transliteration for Sylheti in Sylheti Nagri script local export = {} local gsub = mw.ustring.gsub local match = mw.ustring.match local conv = { -- consonants ['ꠇ'] = 'x', ['ꠈ'] = 'x', ['ꠉ'] = 'g', ['ꠊ'] = 'g', ['ꠌ'] = 's', ['ꠍ'] = 's', ['ꠎ'] = 'z', ['ꠏ'] = 'z', ['ꠐ'] = 'ṭ', ['ꠑ'] = 'ṭ', ['ꠒ'] = 'ḍ', ['ꠓ'] = 'ḍ', ['ꠔ'] = 't', ['ꠕ'] = 't', ['ꠖ'] = 'd', ['ꠗ'] = 'd', ['ꠘ'] = 'n', ['ꠙ'] = 'f', ['ꠚ'] = 'f', ['...' 176685 Scribunto text/plain -- Transliteration for Sylheti in Sylheti Nagri script local export = {} local gsub = mw.ustring.gsub local match = mw.ustring.match local conv = { -- consonants ['ꠇ'] = 'x', ['ꠈ'] = 'x', ['ꠉ'] = 'g', ['ꠊ'] = 'g', ['ꠌ'] = 's', ['ꠍ'] = 's', ['ꠎ'] = 'z', ['ꠏ'] = 'z', ['ꠐ'] = 'ṭ', ['ꠑ'] = 'ṭ', ['ꠒ'] = 'ḍ', ['ꠓ'] = 'ḍ', ['ꠔ'] = 't', ['ꠕ'] = 't', ['ꠖ'] = 'd', ['ꠗ'] = 'd', ['ꠘ'] = 'n', ['ꠙ'] = 'f', ['ꠚ'] = 'f', ['ꠛ'] = 'b', ['ꠜ'] = 'b', ['ꠝ'] = 'm', ['ꠞ'] = 'r', ['ꠟ'] = 'l', ['ꠠ'] = 'ṛ', ['ꠡ'] = 'ś', ['ꠢ'] = 'h', ['ꠋ'] = 'ṅ', -- vowel diacritics ['ꠣ'] = 'a', ['ꠤ'] = 'i', ['ꠥ'] = 'u', ['ꠦ'] = 'e', ['ꠧ'] = 'o', -- vowel signs ['ꠀ'] = 'a', ['ꠁ'] = 'i', ['ꠃ'] = 'u', ['ꠄ'] = 'e', ['ꠅ'] = 'o', -- virama ['꠆'] = '', -- anusvar [' ꠋ'] = 'ṅ', -- dvisvara ['ꠂ'] = 'i', -- numerals ['[[File:সিলেটি সংখ্যা ০.svg|12px]]'] = '0', ['[[File:সিলেটি সংখ্যা ১.svg|12px]]'] = '1', ['[[File:সিলেটি সংখ্যা ২.svg|12px]]'] = '2', ['[[File:সিলেটি সংখ্যা ৩.svg|12px]]'] = '3', ['[[File:সিলেটি সংখ্যা ৪.svg|12px]]'] = '4', ['[[File:সিলেটি সংখ্যা ৫.svg|12px]]'] = '5', ['[[File:সিলেটি সংখ্যা ৬.svg|12px]]'] = '6', ['[[File:সিলেটি সংখ্যা ৭.svg|12px]]'] = '7', ['[[File:সিলেটি সংখ্যা ৮.svg|12px]]'] = '8', ['[[File:সিলেটি সংখ্যা ৯.svg|12px]]'] = '9' , -- punctuation [' ꠨'] = ',', [' ꠩'] = ',', [' ꠪'] = ':', ['‌ ꠫'] = '.', [' ॥'] = ';', [' ⁕'] = '.' } local aspirates = "ꠈꠊꠍꠏꠑꠓꠕꠗꠚꠜ" local consonant, vowel, vowel_sign = "ꠇ-ꠊꠌ-ꠢ", "ꠣ-ꠧ", "ꠀꠁꠃ-ꠅ" local c = "[" .. consonant .. "]" local v = "[" .. vowel .. vowel_sign .. "]" local syncope_pattern = "(" .. v .. c .. v .. c .. ")ô(" .. c .. "ঁ?" .. v .. ")" local function rev_string(text) local result, length = "", mw.ustring.len(text) for i = 1, length do result = result .. mw.ustring.sub(text, -i, -i) end return result end function export.tr(text, lang, sc) -- from [[MOD:as-translit]] text = gsub(text, "(" .. c .. ")([" .. vowel .. "’?꠆]?)", function(a, b) local res = a .. (b == "" and "ô" or b) if match(a, "[" .. aspirates .. "]") then res = res .. "’" end return res end) for word in mw.ustring.gmatch(text, "[ꠀ-ꠧô’]+") do local orig_word = word word = rev_string(word) word = gsub(word, "^ô(" .. c .. ")(" .. v .. ")", "%1%2") while match(word, syncope_pattern) do word = gsub(word, syncope_pattern, "%1%2") end text = gsub(text, orig_word, rev_string(word)) end text = gsub(text, ".", conv) -- ô is really just o text = mw.ustring.gsub(text, 'ô', 'o') -- velars text = mw.ustring.gsub(text, 'x([iu])', 'k%1') text = mw.ustring.gsub(text, '([iu])x', '%1k') text = mw.ustring.gsub(text, 'xx', 'kk') -- palatals (I think?) text = mw.ustring.gsub(text, 'ss', 'cc') -- affricates (I'm just guessing now) text = mw.ustring.gsub(text, 'jj', 'zz') text = mw.ustring.gsub(text, 'zs', 'jc') -- final r/l text = mw.ustring.gsub(text, '([xrl])o$', '%1') text = mw.ustring.gsub(text, '([xrl])o ', '%1 ') -- tone text = gsub(text, '’', '́') return text end return export mu8457iwt7qtb7j649uoxo306y04vqi Module:saz-translit 828 38101 176686 2026-04-26T12:04:39Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local consonants = { ['ꢒ']='k', ['ꢓ']='kh', ['ꢔ']='g', ['ꢕ']='gh', ['ꢖ']='ṅ', ['ꢗ']='c', ['ꢘ']='ch', ['ꢙ']='j', ['ꢚ']='jh', ['ꢛ']='ñ', ['ꢜ']='ṭ', ['ꢝ']='ṭh', ['ꢞ']='ḍ', ['ꢟ']='ḍh', ['ꢠ']='ṇ', ['ꢡ']='t', ['ꢢ']='th', ['ꢣ']='d', ['ꢤ']='dh', ['ꢥ']='n', ['ꢦ']='p', ['ꢧ']='ph', ['ꢨ']='b', ['ꢩ']='bh', ['ꢪ']='m', ['ꢫ']='y', ['ꢬ']='r', ['ꢭ']='l', ['ꢮ']='v', ['ꢯ']='ś',...' 176686 Scribunto text/plain local export = {} local consonants = { ['ꢒ']='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', ['ꢳ']='ḷ', } local diacritics = { ['ꢵ']= 'ā', ['ꢶ']='i', ['ꢷ']='ī', ['ꢸ']='u', ['ꢹ']='ū', ['ꢺ']='ṛ', ['ꢻ']='ṝ', ['ꢼ']='ḷ', ['ꢽ']='ḹ', ['ꢾ']='e', ['ꢿ']='ē', ['ꣀ']='ai', ['ꣁ']='o', ['ꣂ']='ō', ['ꣃ']='au', ['꣄']='', } local nonconsonants = { -- vowels ['ꢂ']='a', ['ꢃ']='ā', ['ꢄ']='i', ['ꢅ']='ī', ['ꢆ']='u', ['ꢇ']='ū', ['ꢈ']='ṛ', ['ꢉ']='ṝ', ['ꢊ']='ḷ', ['ꢋ']='ḹ', ['ꢌ']='e', ['ꢍ']='ē', ['ꢎ']='ai', ['ꢏ']='o', ['ꢐ']='ō', ['ꢑ']='au', -- other symbols ['ꢀ']='ṃ', -- anusvara ['ꢁ']='ḥ', -- visarga ['ꢴ']='h', ['ꣅ']='◌̃', ['꣎']='.', -- digits ['꣐'] = '0', ['꣑'] = '1', ['꣒'] = '2', ['꣓'] = '3', ['꣔'] = '4', ['꣕'] = '5', ['꣖'] = '6', ['꣗'] = '7', ['꣘'] = '8', ['꣙'] = '9', } -- translit any words or phrases function export.tr(text, lang, sc) text = mw.ustring.gsub( text, '([ꢒꢓꢔꢕꢖꢗꢘꢙꢚꢛꢜꢝꢞꢟꢠꢡꢢꢣꢤꢥꢦꢧꢨꢩꢪꢫꢬꢭꢮꢯꢰꢱꢲꢳ])'.. '([ꢵꢶꢷꢸꢹꢺꢻꢼꢽꢾꢿꣀꣁꣂꣃ꣄ꢴ]?)', function(c, d) -- mw.log('match', c, d) c = consonants[c] or c if d == "" then return c .. 'a' else return c .. (diacritics[d] or d) end end) text = mw.ustring.gsub(text, '.', nonconsonants) return text end return export nsnalzxlhex9149tgjej3b63xtco23v Module:sgh-translit 828 38102 176687 2026-04-26T12:04:41Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tt = { ["а"]="a", ["б"]="b", ["в"]="v", ["г"]="g", ["д"]="d", ["е"]="ē", ["ж"]="ž", ["з"]="z", ["и"]="i", ["ӣ"]="ī", ["й"]="y", ["к"]="k", ["л"]="l", ["м"]="m", ["н"]="n", ["о"]="ō", ["п"]="p", ["р"]="r", ["с"]="s", ["т"]="t", ["у"]="u", ["ӯ"]="ū", ["ф"]="f", ["х"]="x", ["ц"]="c", ["ӡ"]="ʒ", ["ч"]="č", ["ш"]="š", ["ғ"]="ɣ", ["қ"]="q", ["ҳ"]="h", ["ҷ"]="ǰ", ["А"]="A", ["Б"]="B", ["В"]="V",...' 176687 Scribunto text/plain local export = {} local tt = { ["а"]="a", ["б"]="b", ["в"]="v", ["г"]="g", ["д"]="d", ["е"]="ē", ["ж"]="ž", ["з"]="z", ["и"]="i", ["ӣ"]="ī", ["й"]="y", ["к"]="k", ["л"]="l", ["м"]="m", ["н"]="n", ["о"]="ō", ["п"]="p", ["р"]="r", ["с"]="s", ["т"]="t", ["у"]="u", ["ӯ"]="ū", ["ф"]="f", ["х"]="x", ["ц"]="c", ["ӡ"]="ʒ", ["ч"]="č", ["ш"]="š", ["ғ"]="ɣ", ["қ"]="q", ["ҳ"]="h", ["ҷ"]="ǰ", ["А"]="A", ["Б"]="B", ["В"]="V", ["Г"]="G", ["Д"]="D", ["Е"]="Ē", ["Ж"]="Ž", ["З"]="Z", ["И"]="I", ["Ӣ"]="Ī", ["Й"]="Y", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["О"]="Ō", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ӯ"]="Ū", ["Ф"]="F", ["Х"]="X", ["Ц"]="C", ["Ӡ"]="Ʒ", ["Ч"]="Č", ["Ш"]="Š", ["Ғ"]="Ɣ", ["Қ"]="Q", ["Ҳ"]="H", ["Ҷ"]="J̌" }; local mapping = { ['в̌'] = 'w', ['д̌'] = 'δ', ['т̌'] = 'θ', ['е̂'] = 'ê', ['е̣'] = 'ẹ', ['о̣'] = 'ọ', ['у̊'] = 'ū̊', ['г̌'] = 'ɣ̌', ['В̌'] = 'W', ['Д̌'] = 'Δ', ['Т̌'] = 'Θ', ['Е̂'] = 'Ê', ['Е̣'] = 'Ẹ', ['О̣'] = 'Ọ', ['У̊'] = 'Ū̊', ['Г̌'] = 'Ɣ̌', } function export.tr(text, lang, sc) if sc == "Latn" then return nil end for char, translit in pairs(mapping) do text = mw.ustring.gsub(text, char, translit) end text = mw.ustring.gsub(text, '.', tt) return text end return export nuu53mf9s86uxqpxek7h9ev47i8wmyz Module:sia-translit 828 38103 176688 2026-04-26T12:04:43Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local U = mw.ustring.char local rsubn = mw.ustring.gsub local macron = U(0x0304) local tt = { ["А"]='A', ["а"]='a', ["Ӓ"]="Ä", ["ӓ"]="ä", ["А̊"]="Å", ["а̊"]="å", ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Ѵ"]='W', ["ѵ"]='w', ["Г"]='G', ["г"]='g', ["Д"]='D', ["д"]='d', ["Е"]='Je', ["е"]='je', ["Ё"]="Jo", ["ё"]="jo", ["Ж"]='Ž', ["ж"]='ž', ["З"]='Z', ["з"]='z', ["Һ"]="H", ["һ"]="h", ["ʼ"]="h",...' 176688 Scribunto text/plain local export = {} local U = mw.ustring.char local rsubn = mw.ustring.gsub local macron = U(0x0304) local tt = { ["А"]='A', ["а"]='a', ["Ӓ"]="Ä", ["ӓ"]="ä", ["А̊"]="Å", ["а̊"]="å", ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Ѵ"]='W', ["ѵ"]='w', ["Г"]='G', ["г"]='g', ["Д"]='D', ["д"]='d', ["Е"]='Je', ["е"]='je', ["Ё"]="Jo", ["ё"]="jo", ["Ж"]='Ž', ["ж"]='ž', ["З"]='Z', ["з"]='z', ["Һ"]="H", ["һ"]="h", ["ʼ"]="h", ["И"]='I', ["и"]='i', ["Ӣ"]="Ī", ["ӣ"]="ī", ["Й"]="J", ["й"]="j", ["Ј"]="J̥", ["ј"]="j̥", ["Ҋ"]="J̥", ["ҋ"]="j̥", ["К"]='K', ["к"]='k', ["К̌"]='Ǩ', ["к̌"]='ǩ', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["Ӊ"]="N̥", ["ӊ"]="n̥", ["Ӈ"]="Ŋ", ["ӈ"]="ŋ", ["О"]='O', ["о"]='o', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["С"]='S', ["с"]='s', ["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Ӯ"]="Ū", ["ӯ"]="ū", ["Ф"]='F', ["ф"]='f', ["Х"]='X', ["х"]='x', ["Ц"]='C', ["ц"]='c', ["Ч"]='Č', ["ч"]='č', ["Ш"]='Š', ["ш"]='š', ["Щ"]="Šč", ["щ"]="šč", ["Ы"]="Y", ["ы"]="y", ["Ӹ"]="Ï", ["ӹ"]="ï", ["Ъ"]="", ["ъ"]="", ["Ь"]="’", ["ь"]="’", ["Ҍ"]= "’", ["ҍ"]="’", ["Э"]="E", ["э"]="e", ["Ӭ"]="’E", ["ӭ"]="’e", ["Ю"]="Ju", ["ю"]="ju", ["Я"]="Ja", ["я"]="ja", } local vowel = "аӓеёиӣоуӯыӹэӭюяАӒЕЁИӢОУӮЫӸЭӬЮЯ" function export.tr(text, lang, sc) text = rsubn(text, "^" .. "я" .. macron, "jā") text = rsubn(text, "^" .. "е" .. macron, "jē") text = rsubn(text, "^" .. "Я" .. macron, "Jā") text = rsubn(text, "^" .. "Е" .. macron, "Jē") text = rsubn(text, " " .. "я" .. macron, " jā") text = rsubn(text, " " .. "e" .. macron, " jē") text = rsubn(text, " " .. "Я" .. macron, " jā") text = rsubn(text, " " .. "E" .. macron, " jē") text = rsubn(text, "([^" .. vowel .. "НнЪъЬьҌҍ])е", "%1ьэ") text = rsubn(text, "([^" .. vowel .. "НнЪъЬьҌҍ])ё", "%1ьо") text = rsubn(text, "([^" .. vowel .. "НнЪъЬьҌҍ])ю", "%1ьу") text = rsubn(text, "([^" .. vowel .. "НнЪъЬьҌҍ])я", "%1ьа") text = rsubn(text, "([^" .. vowel .. "НнЪъЬьҌҍ])Е", "%1ЬЭ") text = rsubn(text, "([^" .. vowel .. "НнЪъЬьҌҍ])Ё", "%1ЬО") text = rsubn(text, "([^" .. vowel .. "НнЪъЬьҌҍ])Ю", "%1ЬУ") text = rsubn(text, "([^" .. vowel .. "НнЪъЬьҌҍ])Я", "%1ЬА") text = rsubn(text, "([нН])ь", "%1й") text = rsubn(text, "НЬ", "НЙ") text = rsubn(text, "([лЛ])ҍ", "%1й") text = rsubn(text, "Лҍ", "ЛЙ") text = rsubn(text, '.', tt) return text end return export 22m240ghx8zuopxb9yrqsnmue00sfqk Module:sah-translit 828 38104 176689 2026-04-26T12:04:46Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tab = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["Г"]='G', ["г"]='g', ["Ҕ"]='Ğ', ["ҕ"]='ğ', ["Д"]='D', ["д"]='d', ["И"]='I', ["и"]='i', ["Й"]='Y', ["й"]='y', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["Ҥ"]='Ŋ', ["ҥ"]='ŋ', ["О"]='O', ["о"]='o', ["Ө"]='Ö', ["ө"]='ö', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["С"]='S', ["с"]='s', ["Һ"]='H', ["...' 176689 Scribunto text/plain local export = {} local tab = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["Г"]='G', ["г"]='g', ["Ҕ"]='Ğ', ["ҕ"]='ğ', ["Д"]='D', ["д"]='d', ["И"]='I', ["и"]='i', ["Й"]='Y', ["й"]='y', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["Ҥ"]='Ŋ', ["ҥ"]='ŋ', ["О"]='O', ["о"]='o', ["Ө"]='Ö', ["ө"]='ö', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["С"]='S', ["с"]='s', ["Һ"]='H', ["һ"]='h', ["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Ү"]='Ü', ["ү"]='ü', ["Х"]='Q', ["х"]='q', ["Ч"]='Č', ["ч"]='č', ["Ы"]='Ï', ["ы"]='ï', ["Э"]='E', ["э"]='e', -- non-native letters ["В"]='V', ["в"]='v', ["Е"]='e', ["е"]='e', ["Ё"]='o', ["ё"]='o', ["Ж"]='Zh', ["ж"]='zh', ["З"]='Z', ["з"]='z', ["Ф"]='F', ["ф"]='f', ["Ц"]='Ts', ["ц"]='ts', ["Ш"]='Š', ["ш"]='š', ["Щ"]='Šč', ["щ"]='šč', ['Ъ']='ʺ', ['ъ']='ʺ', ["Ь"]='ʹ', ["ь"]='ʹ', ["Ю"]='u', ["ю"]='u', ["Я"]='a', ["я"]='a', } function export.tr(text, lang, sc) text = mw.ustring.gsub(text, 'ДЬ', 'J') text = mw.ustring.gsub(text, 'Дь', 'J') text = mw.ustring.gsub(text, 'дь', 'j') text = mw.ustring.gsub(text, 'НЬ', 'Ň') text = mw.ustring.gsub(text, 'Нь', 'Ň') text = mw.ustring.gsub(text, 'нь', 'ň') text = mw.ustring.gsub(text, 'ННЬ', 'ŇŇ') text = mw.ustring.gsub(text, 'Ннь', 'Ňň') text = mw.ustring.gsub(text, 'ннь', 'ňň') -- soft vowels after a vowel or at the beginning of a word become j- text = mw.ustring.gsub(text, "([АОӨУҮЫЭЕЯЁЮИЕЪаоöуүыэяёюиеъ%A][\204\129\204\128]?)([еёюя])", "%1y%2") text = mw.ustring.gsub(text, "^([ЕЁЮЯ])", "Y%1") text = mw.ustring.gsub(text, "^([еёюя])", "y%1") return (mw.ustring.gsub(text,'.',tab)) end return export nu7ronqd6is5ubu1kxkvf53hv45ez32 Module:sjt-translit 828 38105 176690 2026-04-26T12:04:49Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local macron = u(0x0304) local tt = { ["А"]='A', ["а"]='a', ["Ӓ"]="’a", ["ӓ"]="’a", ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Г"]='G', ["г"]='g', ["Д"]='D', ["д"]='d', ["Е"]='Je', ["е"]='je', ["Ё"]="Jo", ["ё"]="jo", ["Ж"]='Ž', ["ж"]='ž', ["З"]='Z', ["з"]='z', ["Һ"]="H", ["һ"]="h", ["ʼ"]="h", ["И"]='I', ["и"]='i', ["Ӣ"]="Ī", ["ӣ"]="ī", ["Ӥ"]="’Ï", ["ӥ"]="’ï"...' 176690 Scribunto text/plain local export = {} local u = mw.ustring.char local macron = u(0x0304) local tt = { ["А"]='A', ["а"]='a', ["Ӓ"]="’a", ["ӓ"]="’a", ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Г"]='G', ["г"]='g', ["Д"]='D', ["д"]='d', ["Е"]='Je', ["е"]='je', ["Ё"]="Jo", ["ё"]="jo", ["Ж"]='Ž', ["ж"]='ž', ["З"]='Z', ["з"]='z', ["Һ"]="H", ["һ"]="h", ["ʼ"]="h", ["И"]='I', ["и"]='i', ["Ӣ"]="Ī", ["ӣ"]="ī", ["Ӥ"]="’Ï", ["ӥ"]="’ï", ["Й"]="J", ["й"]="j", ["Ј"]="J̥", ["ј"]="j̥", ["Ҋ"]="J̥", ["ҋ"]="j̥", ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["Ӆ"]='L̥', ["ӆ"]='l̥', ["М"]='M', ["м"]='m', ["Ӎ"]="M̥", ["ӎ"]="m̥", ["Н"]='N', ["н"]='n', ["Ӊ"]="N̥", ["ӊ"]="n̥", ["Ӈ"]="Ŋ", ["ӈ"]="ŋ", ["О"]='O', ["о"]='o', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["Ҏ"]="R̥", ["ҏ"]="r̥", ["С"]='S', ["с"]='s', ["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Ӯ"]="Ū", ["ӯ"]="ū", ["Ф"]='F', ["ф"]='f', ["Х"]='H', ["х"]='x', ["Ц"]='C', ["ц"]='c', ["Ч"]='Č', ["ч"]='č', ["Ш"]='Š', ["ш"]='š', ["Щ"]="Šč", ["щ"]="šč", ["Ы"]="Ï", ["ы"]="ï", ["Ӹ"]="’Ï", ["ӹ"]="’ï", ["Ъ"]="", ["ъ"]="", ["Ь"]="ʼ", ["ь"]="ʼ", ["Ҍ"]= "ʼ", ["ҍ"]="ʼ", ["Э"]="E", ["э"]="e", ["Ӭ"]="’E", ["ӭ"]="’e", ["Ю"]="Ju", ["ю"]="ju", ["Я"]="Ja", ["я"]="ja", } local vowel = "аӓеёиӥӣоуӯыӹэӭюяАӒЕЁӤӢОУӮЫӸЭӬЮЯ" local consonant = "БбВвГгДдЖжЗзКкЛлӅӆМмӍӎНнӉӊӇӈПпРрҎҏСсТтХхҺһЦцЧчШшЩщ" function export.tr(text, lang, sc) -- initial palatal n + long vowel text = mw.ustring.gsub(text, "([Нн])я" .. macron, "%1jā") text = mw.ustring.gsub(text, "([Нн])ёа" .. macron, "%1jåå") text = mw.ustring.gsub(text, "([Нн])ёа", "%1jå") -- digraphs ie and ea text = mw.ustring.gsub(text, "([" .. consonant .. "])е" .. macron, "%1ie") text = mw.ustring.gsub(text, "([" .. consonant .. "])я" .. macron, "%1ea") -- initial ни → njï, if followed by two consonants text = mw.ustring.gsub(text, "^ни([".. consonant .."][".. consonant .."])", "njï%1") -- combinations text = mw.ustring.gsub(text, "^айй([".. consonant .."])а", "ajj%1a") text = mw.ustring.gsub(text, "^аҋҋ([".. consonant .."])", "aj̥j̥%1") text = mw.ustring.gsub(text, "^([".. consonant .."])айй([".. consonant .."])а", "%1ajj%2a") text = mw.ustring.gsub(text, "^([".. consonant .."])аҋҋ([".. consonant .."])", "%1aj̥j̥%2") text = mw.ustring.gsub(text, "^([".. consonant .."])а$", "%1a") -- initial х → h text = mw.ustring.gsub(text, "^" .. "х", "h") text = mw.ustring.gsub(text, "^" .. "Х", "H") text = mw.ustring.gsub(text, " " .. "х", " h") text = mw.ustring.gsub(text, " " .. "Х", " H") -- initial j + vowels text = mw.ustring.gsub(text, "^" .. "ю" .. macron, "jū") text = mw.ustring.gsub(text, "^" .. "я" .. macron, "jā") text = mw.ustring.gsub(text, "^" .. "ӣ", "ji") text = mw.ustring.gsub(text, "^" .. "е" .. macron, "jie") text = mw.ustring.gsub(text, "^" .. "ё" .. macron, "jō") text = mw.ustring.gsub(text, "^" .. "Ю" .. macron, "Jū") text = mw.ustring.gsub(text, "^" .. "Я" .. macron, "Jā") text = mw.ustring.gsub(text, "^" .. "Ӣ", "Ji") text = mw.ustring.gsub(text, "^" .. "Е" .. macron, "Jie") text = mw.ustring.gsub(text, "^" .. "ё" .. macron, "Jō") text = mw.ustring.gsub(text, " " .. "ю" .. macron, " jū") text = mw.ustring.gsub(text, " " .. "я" .. macron, " jea") text = mw.ustring.gsub(text, " " .. "ӣ", " ji") text = mw.ustring.gsub(text, " " .. "e" .. macron, " jie") text = mw.ustring.gsub(text, " " .. "ё" .. macron, " jō") text = mw.ustring.gsub(text, " " .. "Ю" .. macron, " jū") text = mw.ustring.gsub(text, " " .. "Я" .. macron, " jea") text = mw.ustring.gsub(text, " " .. "Ӣ", " ji") text = mw.ustring.gsub(text, " " .. "E" .. macron, " jie") text = mw.ustring.gsub(text, " " .. "Ё" .. macron, " jō") text = mw.ustring.gsub(text, "че", "če") text = mw.ustring.gsub(text, "йе", "jje") -- hard sign between same consonants text = mw.ustring.gsub(text, "във", "v'v") text = mw.ustring.gsub(text, "лъл", "l'l") text = mw.ustring.gsub(text, "мъм", "m'm") text = mw.ustring.gsub(text, "нън", "n'n") text = mw.ustring.gsub(text, "със", "s's") text = mw.ustring.gsub(text, "тът", "t't") -- soft/semi-soft/hard signs text = mw.ustring.gsub(text, "([".. consonant .."])([ьҍъ])е", "%1%2je") text = mw.ustring.gsub(text, "([".. consonant .."])([ьҍъ])ё", "%1%2jo") text = mw.ustring.gsub(text, "([".. consonant .."])([ьҍъ])ю", "%1%2ju") text = mw.ustring.gsub(text, "([".. consonant .."])([ьҍъ])я", "%1%2ja") -- long a text = mw.ustring.gsub(text, "а" .. macron, "ā") text = mw.ustring.gsub(text, "А" .. macron, "Ā") -- final а text = mw.ustring.gsub(text, "([".. consonant .."])%1" .. "а" .. "$", "%1%1a") text = mw.ustring.gsub(text, "([".. consonant .."])%1([".. consonant .."])" .. "а" .. "$", "%1%1%2a") text = mw.ustring.gsub(text, "йй([".. consonant .."])" .. "а" .. "$", "jj%1a") text = mw.ustring.gsub(text, "ҋҋ([".. consonant .."])" .. "а" .. "$", "j̥j̥%1a") text = mw.ustring.gsub(text, "йя" .. "$", "jja") -- endings text = mw.ustring.gsub(text, "адҍ" .. "$", "ad’") text = mw.ustring.gsub(text, "эдҍ" .. "$", "âd’") text = mw.ustring.gsub(text, "чедҍ" .. "$", "čâd’") text = mw.ustring.gsub(text, "йедҍ" .. "$", "jâd’") text = mw.ustring.gsub(text, "([БбВвГгДдЖжЗзКкЛлӅӆМмӍӎӉӊӇӈПпРрҎҏСсТтХхЦцШшЩщ])ем" .. "$", "%1’âm") text = mw.ustring.gsub(text, "([БбВвГгДдЖжЗзКкЛлӅӆМмӍӎӉӊӇӈПпРрҎҏСсТтХхЦцШшЩщ])эм" .. "$", "%1âm") text = mw.ustring.gsub(text, "чем" .. "$", "čâm") text = mw.ustring.gsub(text, "эл" .. "$", "âl") text = mw.ustring.gsub(text, "ас" .. "$", "as") text = mw.ustring.gsub(text, "ань" .. "$", "anj") text = mw.ustring.gsub(text, "ант" .. "$", "ant") -- palatalization text = mw.ustring.gsub(text, "([БбВвГгДдЖжЗзКкЛлӅӆМмӍӎӇӈПпРрҎҏСсТтХхЦцШшЩщ])е", "%1’e") text = mw.ustring.gsub(text, "([БбВвГгДдЖжЗзКкЛлӅӆМмӍӎӇӈПпРрҎҏСсТтХхЦцШшЩщ])ё", "%1’o") text = mw.ustring.gsub(text, "([БбВвГгДдЖжЗзКкЛлӅӆМмӍӎӇӈПпРрҎҏСсТтХхЦцШшЩщ])ю", "%1’u") text = mw.ustring.gsub(text, "([БбВвГгДдЖжЗзКкЛлӅӆМмӍӎӇӈПпРрҎҏСсТтХхЦцШшЩщ])я", "%1’a") -- palatal н text = mw.ustring.gsub(text, "([НнӉӊ])е", "%1je") text = mw.ustring.gsub(text, "([НнӉӊ])ё", "%1jo") text = mw.ustring.gsub(text, "([НнӉӊ])ю", "%1ju") text = mw.ustring.gsub(text, "([НнӉӊ])я", "%1ja") -- дз → ʒ text = mw.ustring.gsub(text, "дз", "ʒ") -- дж → ǯ text = mw.ustring.gsub(text, "дж", "ǯ") -- oa text = mw.ustring.gsub(text, "оа", "oa") -- а (before final consonants and й) text = mw.ustring.gsub(text, "а([".. consonant .."])" .. "$", "a%1") text = mw.ustring.gsub(text, "ай" .. "$", "aj") -- replacing the remaining (cyrillic) a's with â's text = mw.ustring.gsub(text, "а", "â") return (mw.ustring.gsub(text, '.', tt)) end return export latc2rw2iuhfmd9dv7en0mkigdysodv Module:sjd-translit 828 38106 176691 2026-04-26T12:04:51Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local macron = u(0x0304) local tt = { ["А"]='A', ["а"]='a', ["Ӓ"]="’a", ["ӓ"]="’a", ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Г"]='G', ["г"]='g', ["Д"]='D', ["д"]='d', ["Е"]='Je', ["е"]='je', ["Ё"]="Jo", ["ё"]="jo", ["Ж"]='Ž', ["ж"]='ž', ["З"]='Z', ["з"]='z', ["Һ"]="H", ["һ"]="h", ["ʼ"]="h", ["И"]='I', ["и"]='i', ["Ӣ"]="Ī", ["ӣ"]="ī", ["Й"]="J", ["й"]="j", ["Ј"...' 176691 Scribunto text/plain local export = {} local u = mw.ustring.char local macron = u(0x0304) local tt = { ["А"]='A', ["а"]='a', ["Ӓ"]="’a", ["ӓ"]="’a", ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Г"]='G', ["г"]='g', ["Д"]='D', ["д"]='d', ["Е"]='Je', ["е"]='je', ["Ё"]="Jo", ["ё"]="jo", ["Ж"]='Ž', ["ж"]='ž', ["З"]='Z', ["з"]='z', ["Һ"]="H", ["һ"]="h", ["ʼ"]="h", ["И"]='I', ["и"]='i', ["Ӣ"]="Ī", ["ӣ"]="ī", ["Й"]="J", ["й"]="j", ["Ј"]="J̥", ["ј"]="j̥", ["Ҋ"]="J̥", ["ҋ"]="j̥", ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["Ӆ"]='L̥', ["ӆ"]='l̥', ["М"]='M', ["м"]='m', ["Ӎ"]="M̥", ["ӎ"]="m̥", ["Н"]='N', ["н"]='n', ["Ӊ"]="N̥", ["ӊ"]="n̥", ["Ӈ"]="Ŋ", ["ӈ"]="ŋ", ["О"]='O', ["о"]='o', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["Ҏ"]="R̥", ["ҏ"]="r̥", ["С"]='S', ["с"]='s', ["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Ӯ"]="Ū", ["ӯ"]="ū", ["Ф"]='F', ["ф"]='f', ["Х"]='X', ["х"]='x', ["Ц"]='C', ["ц"]='c', ["Ч"]='Č', ["ч"]='č', ["Ш"]='Š', ["ш"]='š', ["Щ"]="Šč", ["щ"]="šč", ["Ы"]="Y", ["ы"]="y", ["Ъ"]="", ["ъ"]="", ["Ь"]="’", ["ь"]="’", ["Ҍ"]= "’", ["ҍ"]="’", ["Э"]="E", ["э"]="e", ["Ӭ"]="’E", ["ӭ"]="’e", ["Ю"]="Ju", ["ю"]="ju", ["Я"]="Ja", ["я"]="ja", } local vowel = "аӓеёиӣоуӯыэӭюяАӒЕЁИӢОУӮЫЭӬЮЯ" local consonant = "БбВвГгДдЖжЗзКкЛлӅӆМмӍӎНнӉӊӇӈПпРрҎҏСсТтХхЦцЧчШшЩщ" function export.tr(text, lang, sc) -- initial palatal n + long vowel text = mw.ustring.gsub(text, "([Нн])я" .. macron, "%1jā") text = mw.ustring.gsub(text, "([Нн])ёа" .. macron, "%1jåå") text = mw.ustring.gsub(text, "([Нн])ёа", "%1jå") -- digraphs ie and ea text = mw.ustring.gsub(text, "([" .. consonant .. "])е" .. macron, "%1ie") text = mw.ustring.gsub(text, "([" .. consonant .. "])я" .. macron, "%1ea") -- initial j + vowels text = mw.ustring.gsub(text, "^" .. "ю" .. macron, "jū") text = mw.ustring.gsub(text, "^" .. "я" .. macron, "jā") text = mw.ustring.gsub(text, "^" .. "ӣ", "ji") text = mw.ustring.gsub(text, "^" .. "е" .. macron, "jie") text = mw.ustring.gsub(text, "^" .. "ё" .. macron, "jō") text = mw.ustring.gsub(text, "^" .. "Ю" .. macron, "Jū") text = mw.ustring.gsub(text, "^" .. "Я" .. macron, "Jā") text = mw.ustring.gsub(text, "^" .. "Ӣ", "Ji") text = mw.ustring.gsub(text, "^" .. "Е" .. macron, "Jie") text = mw.ustring.gsub(text, "^" .. "ё" .. macron, "Jō") text = mw.ustring.gsub(text, " " .. "ю" .. macron, " jū") text = mw.ustring.gsub(text, " " .. "я" .. macron, " jea") text = mw.ustring.gsub(text, " " .. "ӣ", " ji") text = mw.ustring.gsub(text, " " .. "e" .. macron, " jie") text = mw.ustring.gsub(text, " " .. "ё" .. macron, " jō") text = mw.ustring.gsub(text, " " .. "Ю" .. macron, " jū") text = mw.ustring.gsub(text, " " .. "Я" .. macron, " jea") text = mw.ustring.gsub(text, " " .. "Ӣ", " ji") text = mw.ustring.gsub(text, " " .. "E" .. macron, " jie") text = mw.ustring.gsub(text, " " .. "Ё" .. macron, " jō") text = mw.ustring.gsub(text, "че", "če") text = mw.ustring.gsub(text, "йе", "jje") -- hard sign between same consonants text = mw.ustring.gsub(text, "във", "v'v") text = mw.ustring.gsub(text, "лъл", "l'l") text = mw.ustring.gsub(text, "мъм", "m'm") text = mw.ustring.gsub(text, "нън", "n'n") text = mw.ustring.gsub(text, "със", "s's") text = mw.ustring.gsub(text, "тът", "t't") -- soft/semi-soft/hard signs text = mw.ustring.gsub(text, "([".. consonant .."])([ьҍъ])е", "%1%2je") text = mw.ustring.gsub(text, "([".. consonant .."])([ьҍъ])ё", "%1%2jo") text = mw.ustring.gsub(text, "([".. consonant .."])([ьҍъ])ю", "%1%2ju") text = mw.ustring.gsub(text, "([".. consonant .."])([ьҍъ])я", "%1%2ja") -- palatalization text = mw.ustring.gsub(text, "([БбВвГгДдЖжЗзКкЛлӅӆМмӍӎӇӈПпРрҎҏСсТтХхЦцШшЩщ])е", "%1’e") text = mw.ustring.gsub(text, "([БбВвГгДдЖжЗзКкЛлӅӆМмӍӎӇӈПпРрҎҏСсТтХхЦцЧчШшЩщ])ё", "%1’o") text = mw.ustring.gsub(text, "([БбВвГгДдЖжЗзКкЛлӅӆМмӍӎӇӈПпРрҎҏСсТтХхЦцЧчШшЩщ])ю", "%1’u") text = mw.ustring.gsub(text, "([БбВвГгДдЖжЗзКкЛлӅӆМмӍӎӇӈПпРрҎҏСсТтХхЦцЧчШшЩщ])я", "%1’a") -- palatal н text = mw.ustring.gsub(text, "([НнӉӊ])е", "%1je") text = mw.ustring.gsub(text, "([НнӉӊ])ё", "%1jo") text = mw.ustring.gsub(text, "([НнӉӊ])ю", "%1ju") text = mw.ustring.gsub(text, "([НнӉӊ])я", "%1ja") -- oa digraph text = mw.ustring.gsub(text, "О[Аа]" .. macron, "Åå") text = mw.ustring.gsub(text, "оа" .. macron, "åå") text = mw.ustring.gsub(text, "О[Аа]", "Å") text = mw.ustring.gsub(text, "оа", "å") -- ёa digraph text = mw.ustring.gsub(text, "ЁА" .. macron, "JÅÅ") text = mw.ustring.gsub(text, "Ёа" .. macron, "Jåå") text = mw.ustring.gsub(text, "ёа" .. macron, "jåå") text = mw.ustring.gsub(text, "ЁА", "JÅ") text = mw.ustring.gsub(text, "Ёа", "Jå") text = mw.ustring.gsub(text, "ёа", "jå") return (mw.ustring.gsub(text, '.', tt)) end return export qnlnqyp6lcsaylb321ti2hbwyjewkby Module:sma-sortkey 828 38107 176692 2026-04-26T12:04:53Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local a, b, c = u(0xF000), u(0xF001), u(0xF002) local oneChar = { ["ï"] = "i" .. a, ["æ"] = "z" .. a, ["ä"] = "z" .. a, ["ø"] = "z" .. b, ["ö"] = "z" .. b, ["å"] = "z" .. c } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)) end return export' 176692 Scribunto text/plain local export = {} local u = mw.ustring.char local a, b, c = u(0xF000), u(0xF001), u(0xF002) local oneChar = { ["ï"] = "i" .. a, ["æ"] = "z" .. a, ["ä"] = "z" .. a, ["ø"] = "z" .. b, ["ö"] = "z" .. b, ["å"] = "z" .. c } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)) end return export 9uw1xjoz1haiv6ju835pesrtd8tkhmd Module:sju-sortkey 828 38108 176693 2026-04-26T12:04:56Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local a, b, c = u(0xF000), u(0xF001), u(0xF002) local oneChar = { ["á"] = "a" .. a, ["đ"] = "d" .. a, ["ï"] = "i" .. a, ["ŋ"] = "n" .. a, ["ŧ"] = "t" .. a, ["ü"] = "u" .. a, ["å"] = "z" .. a, ["ä"] = "z" .. b, ["ö"] = "z" .. c } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)) end return export' 176693 Scribunto text/plain local export = {} local u = mw.ustring.char local a, b, c = u(0xF000), u(0xF001), u(0xF002) local oneChar = { ["á"] = "a" .. a, ["đ"] = "d" .. a, ["ï"] = "i" .. a, ["ŋ"] = "n" .. a, ["ŧ"] = "t" .. a, ["ü"] = "u" .. a, ["å"] = "z" .. a, ["ä"] = "z" .. b, ["ö"] = "z" .. c } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)) end return export celfjwyf4dir5zho8cie7z7xaz05uud Module:smj-sortkey 828 38109 176694 2026-04-26T12:04:58Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local a, b = u(0xF000), u(0xF001) local oneChar = { ["á"] = "a" .. a, ["ŋ"] = "n" .. a, ["ń"] = "n" .. a, ["ñ"] = "n" .. a, ["å"] = "z" .. a, ["æ"] = "z" .. b, ["ä"] = "z" .. b } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)) end return export' 176694 Scribunto text/plain local export = {} local u = mw.ustring.char local a, b = u(0xF000), u(0xF001) local oneChar = { ["á"] = "a" .. a, ["ŋ"] = "n" .. a, ["ń"] = "n" .. a, ["ñ"] = "n" .. a, ["å"] = "z" .. a, ["æ"] = "z" .. b, ["ä"] = "z" .. b } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)) end return export t4we7brtcsx9vyblc4efnuszgxy791o Module:sje-sortkey 828 38110 176695 2026-04-26T12:05:01Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local a, b = u(0xF000), u(0xF001) local oneChar = { ["á"] = "a" .. a, ["đ"] = "d" .. a, ["ŋ"] = "n" .. a, ["ŧ"] = "t" .. a, ["å"] = "z" .. a, ["ä"] = "z" .. b } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)) end return export' 176695 Scribunto text/plain local export = {} local u = mw.ustring.char local a, b = u(0xF000), u(0xF001) local oneChar = { ["á"] = "a" .. a, ["đ"] = "d" .. a, ["ŋ"] = "n" .. a, ["ŧ"] = "t" .. a, ["å"] = "z" .. a, ["ä"] = "z" .. b } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)) end return export 5ce2mdyxnkjvoce33x28s1rwtcf0aw2 Module:sms-sortkey 828 38111 176696 2026-04-26T12:05:03Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local a, b, c = u(0xF000), u(0xF001), u(0xF002) local oneChar = { ["â"] = "a" .. a, ["č"] = "c" .. a, ["ʒ"] = "c" .. b, ["ǯ"] = "c" .. c, ["đ"] = "d" .. a, ["ǧ"] = "g" .. a, ["ǥ"] = "g" .. b, ["ǩ"] = "k" .. a, ["ŋ"] = "n" .. a, ["õ"] = "o" .. a, ["š"] = "s" .. a, ["ž"] = "z" .. a, ["å"] = "z" .. b, ["ä"] = "z" .. c } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw...' 176696 Scribunto text/plain local export = {} local u = mw.ustring.char local a, b, c = u(0xF000), u(0xF001), u(0xF002) local oneChar = { ["â"] = "a" .. a, ["č"] = "c" .. a, ["ʒ"] = "c" .. b, ["ǯ"] = "c" .. c, ["đ"] = "d" .. a, ["ǧ"] = "g" .. a, ["ǥ"] = "g" .. b, ["ǩ"] = "k" .. a, ["ŋ"] = "n" .. a, ["õ"] = "o" .. a, ["š"] = "s" .. a, ["ž"] = "z" .. a, ["å"] = "z" .. b, ["ä"] = "z" .. c } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)) end return export 5w71pmba6vvwltum336ecus7ndxgdy3 Module:bnt-com-sortkey 828 38112 176697 2026-04-26T12:05:05Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = require("Module:string/char") local a = u(0xF000) local oneChar = { ["ɓ"] = "b" .. a, ["ɗ"] = "d" .. a } local twoChars = { ["v̄"] = "v" .. a } function export.makeSortKey(text, lang, sc) text = mw.ustring.lower(text) for from, to in pairs(twoChars) do text = mw.ustring.gsub(text, from, to) end return mw.ustring.upper(mw.ustring.gsub(text, ".", oneChar)) end return export' 176697 Scribunto text/plain local export = {} local u = require("Module:string/char") local a = u(0xF000) local oneChar = { ["ɓ"] = "b" .. a, ["ɗ"] = "d" .. a } local twoChars = { ["v̄"] = "v" .. a } function export.makeSortKey(text, lang, sc) text = mw.ustring.lower(text) for from, to in pairs(twoChars) do text = mw.ustring.gsub(text, from, to) end return mw.ustring.upper(mw.ustring.gsub(text, ".", oneChar)) end return export lfu21yh77m78yzhbnxaxovu0b9ycv0j Module:smn-sortkey 828 38113 176698 2026-04-26T12:05:07Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local a, b, c = u(0xF000), u(0xF001), u(0xF002) local oneChar = { ["â"] = "a" .. a, ["č"] = "c" .. a, ["đ"] = "d" .. a, ["ŋ"] = "n" .. a, ["š"] = "s" .. a, ["ž"] = "z" .. a, ["ä"] = "z" .. b, ["á"] = "z" .. c } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)) end return export' 176698 Scribunto text/plain local export = {} local u = mw.ustring.char local a, b, c = u(0xF000), u(0xF001), u(0xF002) local oneChar = { ["â"] = "a" .. a, ["č"] = "c" .. a, ["đ"] = "d" .. a, ["ŋ"] = "n" .. a, ["š"] = "s" .. a, ["ž"] = "z" .. a, ["ä"] = "z" .. b, ["á"] = "z" .. c } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)) end return export 6aezniy4q4k15y5purpg3ukoew2hu0n Module:mxi-translit 828 38114 176699 2026-04-26T12:06:48Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} function export.tr(text, lang, sc) local replacements if (sc == "Arab") then return (mw.ustring.gsub(mw.ustring.gsub(text, ".", { -- consonants -- ["ا"]="ə", ["ب"]="b", ["ت"]="t", ["ث"]="ṯ", ["ج"]="j", ["ح"]="ḥ", ["خ"]="ḵ", ["د"]="d", ["ذ"]="ḏ", ["ر"]="r", ["ز"]="z", ["س"]="s", ["ش"]="š", ["ص"]="ṣ", ["ض"]="ḍ", ["ط"]="ṭ", ["ظ"]="ẓ", ["ع"]="ʕ", ["غ"]="ḡ", ["ڢ"]="f", ["ڧ"]="q", ["...' 176699 Scribunto text/plain local export = {} function export.tr(text, lang, sc) local replacements if (sc == "Arab") then return (mw.ustring.gsub(mw.ustring.gsub(text, ".", { -- consonants -- ["ا"]="ə", ["ب"]="b", ["ت"]="t", ["ث"]="ṯ", ["ج"]="j", ["ح"]="ḥ", ["خ"]="ḵ", ["د"]="d", ["ذ"]="ḏ", ["ر"]="r", ["ز"]="z", ["س"]="s", ["ش"]="š", ["ص"]="ṣ", ["ض"]="ḍ", ["ط"]="ṭ", ["ظ"]="ẓ", ["ع"]="ʕ", ["غ"]="ḡ", ["ڢ"]="f", ["ڧ"]="q", ["ك"]="k", ["ل"]="l", ["م"]="m", ["ࢽ"]="n", ["ه"]="h", ["و"]="w", ["ی"]="y", -- [ق], [ف] and [ي] should not occur, but [ن] sometimes does ["ن"]="n", -- [ے] should likely be used in quotes at least ["ے"]="y", -- tashkil -- ["َ"]="a", ["ُ"]="u", ["ِ"]="i", ["ّ"]="ː", ["ْ"]="°", }), "([btṯjḥḵdḏrzsšṣḍṭẓʕḡfqklmnhwyuiː°])ə", "%1ā"):gsub("aə", "ā")) elseif (sc == "Hebr") then return (mw.ustring.gsub(text, ".", { -- consonants -- ["א"] = "ʔ", ["ב"] = "b", ["ג"] = "g", ["ד"] = "d", ["ה"] = "h", ["ו"] = "w", ["ז"] = "z", ["ח"] = "ḥ", ["ט"] = "ṭ", ["י"] = "y", ["כ"] = "k", ["ל"] = "l", ["מ"] = "m", ["נ"] = "n", ["ס"] = "s", ["ע"] = "ʕ", ["פ"] = "f", ["צ"] = "ṣ", ["ק"] = "q", ["ר"] = "r", ["ש"] = "š", ["ת"] = "t", -- sofit -- ["ך"] = "k", ["ם"] = "m", ["ן"] = "n", ["ף"] = "f", ["ץ"] = "ṣ", -- nikud ? })) end return end return export d8k63n0wzdd9ww74uxia0kc596hmumu Module:mdf-translit 828 38115 176700 2026-04-26T12:06:50Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local gsub = mw.ustring.gsub local lower = mw.ustring.lower local trim = mw.text.trim -- apply gsub() repeatedly until no change local function gsub_repeatedly(term, foo, bar) while true do local new_term = gsub(term, foo, bar) if new_term == term then return term end term = new_term end end local letters = { ["А"]="A", ["Б"]="B", ["В"]="V", ["Г"]="G", ["Д"]="D", ["Е"]="E", ["Ё"]="O", ["Ж"]="Ž", ["З"]="Z", ["И"]="I",...' 176700 Scribunto text/plain local export = {} local gsub = mw.ustring.gsub local lower = mw.ustring.lower local trim = mw.text.trim -- apply gsub() repeatedly until no change local function gsub_repeatedly(term, foo, bar) while true do local new_term = gsub(term, foo, bar) if new_term == term then return term end term = new_term end end local letters = { ["А"]="A", ["Б"]="B", ["В"]="V", ["Г"]="G", ["Д"]="D", ["Е"]="E", ["Ё"]="O", ["Ж"]="Ž", ["З"]="Z", ["И"]="I", ["Й"]="J", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["О"]="O", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ф"]="F", ["Х"]="H", ["Ц"]="C", ["Ч"]="Č", ["Ш"]="Š", ["Щ"]="Šč", ["Ъ"]="Ə", ["Ы"]="Ï", ["Ь"]="", ["Э"]="Ë", ["Ю"]="U", ["Я"]="A", ["Ӕ"]="Ä", ["Ѣ"]="E", ["Ҥ"]="Ŋ", ["І"]="I", ["Ѳ"]="Kv", ["а"]="a", ["б"]="b", ["в"]="v", ["г"]="g", ["д"]="d", ["е"]="e", ["ё"]="o", ["ж"]="ž", ["з"]="z", ["и"]="i", ["й"]="j", ["к"]="k", ["л"]="l", ["м"]="m", ["н"]="n", ["о"]="o", ["п"]="p", ["р"]="r", ["с"]="s", ["т"]="t", ["у"]="u", ["ф"]="f", ["х"]="h", ["ц"]="c", ["ч"]="č", ["ш"]="š", ["щ"]="šč", ["ъ"]="ə", ["ы"]="ï", ["ь"]="", ["э"]="ë", ["ю"]="u", ["я"]="a", ["ӕ"]="ä", ["ѣ"]="e", ["ҥ"]="ŋ", ["і"]="i", ["ѳ"]="kv" } local palatals = { ["Д"]="Ď", ["З"] = "Ź", ["Л"] = "Ľ", ["Н"] = "Ń", ["Р"] = "Ŕ", ["С"] = "Ś", ["Т"] = "Ť", ["Ц"] = "Ć", ["д"]="ď", ["з"] = "ź", ["л"] = "ľ", ["н"] = "ń", ["р"] = "ŕ", ["с"] = "ś", ["т"] = "ť", ["ц"] = "ć", } local vowels = "аоуыэяёюиеьАОУЫЭЯЁЮИЕЬ" local front = "ЕЁИЮЯІӔӒеёиюяіӕӓ" local accents = "́̀" local nonpalatals = "бвгжкпмшБВГЖКПМШ" function export.tr(text, lang, sc) -- make all word borders have a space text = " " .. text .. " " -- front vowels after another vowel are written with initial j text = gsub_repeatedly(text, "([" .. vowels .. "][" .. accents .. "]?)([еёию])", "%1j%2") text = gsub_repeatedly(text, "([" .. vowels .. "][" .. accents .. "]?)([ЕЁИЮ])", "%1J%2") text = gsub_repeatedly(text, "([" .. vowels .. "][" .. accents .. "]?)([я])", "%1jä") text = gsub_repeatedly(text, "([" .. vowels .. "][" .. accents .. "]?)([Я])", "%1JÄ") -- е, ё, ю, я at the beginning of a word are also written with initial j text = gsub(text, "([%s%p])([еёюя])", "%1j%2") text = gsub(text, "([%s%p])([ЕЁЮЯ])", "%1J%2") -- э at the beginning of a word is written as e text = gsub(text, "([%s%p])э", "%1e") text = gsub(text, "([%s%p])Э", "%1E") -- я after non-palatal consonants becomes ä text = gsub(text, "([" .. nonpalatals .. "])я", "%1ä") text = gsub(text, "([" .. nonpalatals .. "])Я", "%1Ä") -- ё after non-palatal consonants becomes ö text = gsub(text, "([" .. nonpalatals .. "])ё", "%1ö") text = gsub(text, "([" .. nonpalatals .. "])Ё", "%1Ö") -- make Е, Ё, Ю, Я lowercase if preceding a non-capital letter text = gsub(text, "([ЕЁЮЯ])([^%u])", function(v, l) return lower(v) .. l end) -- consonants before ь and certain vowels are palatalised for i, v in pairs(palatals) do text = gsub(text, i .. "ь", v) -- special handling of я text = gsub(text, i .. "ь?я", v .. "a") text = gsub(text, i .. "ь?Я", v .. "A") -- other front vowels text = gsub(text, i .. "ь?([" .. front .. "])", v .. "%1") end -- ъ and ь are omitted before Е, Ё, Ю, Я text = gsub(text, "ъ([еёюя])","j%1") text = gsub(text, "Ъ([еёюя])","J%1") return trim(gsub(text, ".", letters)) end return export gdp3dsnwihry0ve1j15o022xmmvg28o Module:myv-translit 828 38116 176701 2026-04-26T12:06:53Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local gsub = mw.ustring.gsub local lower = mw.ustring.lower local trim = mw.text.trim -- apply gsub() repeatedly until no change local function gsub_repeatedly(term, foo, bar) while true do local new_term = gsub(term, foo, bar) if new_term == term then return term end term = new_term end end local letters = { ["А"]="A", ["Б"]="B", ["В"]="V", ["Г"]="G", ["Д"]="D", ["Е"]="E", ["Ё"]="O", ["Ж"]="Ž", ["З"]="Z", ["И"]="I",...' 176701 Scribunto text/plain local export = {} local gsub = mw.ustring.gsub local lower = mw.ustring.lower local trim = mw.text.trim -- apply gsub() repeatedly until no change local function gsub_repeatedly(term, foo, bar) while true do local new_term = gsub(term, foo, bar) if new_term == term then return term end term = new_term end end local letters = { ["А"]="A", ["Б"]="B", ["В"]="V", ["Г"]="G", ["Д"]="D", ["Е"]="E", ["Ё"]="O", ["Ж"]="Ž", ["З"]="Z", ["И"]="I", ["Й"]="J", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["О"]="O", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ф"]="F", ["Х"]="H", ["Ц"]="C", ["Ч"]="Č", ["Ш"]="Š", ["Щ"]="Šč", ["Ъ"]="", ["Ы"]="Ï", ["Ь"]="", ["Э"]="Ë", ["Ю"]="U", ["Я"]="A", ["Ӕ"]="Ä", ["Ӓ"]="Ä", ["Ѣ"]="E", ["Ҥ"]="Ŋ", ["І"]="I", ["Ѳ"]="Kv", ["а"]="a", ["б"]="b", ["в"]="v", ["г"]="g", ["д"]="d", ["е"]="e", ["ё"]="o", ["ж"]="ž", ["з"]="z", ["и"]="i", ["й"]="j", ["к"]="k", ["л"]="l", ["м"]="m", ["н"]="n", ["о"]="o", ["п"]="p", ["р"]="r", ["с"]="s", ["т"]="t", ["у"]="u", ["ф"]="f", ["х"]="h", ["ц"]="c", ["ч"]="č", ["ш"]="š", ["щ"]="šč", ["ь"]="", ["ъ"]="", ["ы"]="ï", ["э"]="ë", ["ю"]="u", ["я"]="a", ["ӕ"]="ä", ["ӓ"]="ä", ["ѣ"]="e", ["ҥ"]="ŋ", ["і"]="i", ["ѳ"]="kv" } local palatals = { ["Д"]="Ď", ["З"] = "Ź", ["Л"] = "Ľ", ["Н"] = "Ń", ["Р"] = "Ŕ", ["С"] = "Ś", ["Т"] = "Ť", ["Ц"] = "Ć", ["д"]="ď", ["з"] = "ź", ["л"] = "ľ", ["н"] = "ń", ["р"] = "ŕ", ["с"] = "ś", ["т"] = "ť", ["ц"] = "ć", } local vowels = "АОУЫЭЯЁЮИЕЪЬІӔӒаоуыэяёюиеъьіӕӓ" local front = "ЕЁИЮЯІӔӒеёиюяіӕӓ" local accents = "́̀" local nonpalatals = "бвгжкпмшБВГЖКПМШ" function export.tr(text, lang, sc) -- make all word borders have a space text = " " .. text .. " " -- е, ё, и, ю, я after another vowel are written with initial j text = gsub_repeatedly(text, "([" .. vowels .. "][" .. accents .. "]?)([еёиюя])", "%1j%2") text = gsub_repeatedly(text, "([" .. vowels .. "][" .. accents .. "]?)([ЕЁИЮЯ])", "%1J%2") -- ё, ю, я at the beginning of a word are also written with initial j text = gsub(text, "([%s%p])([ёюя])", "%1j%2") text = gsub(text, "([%s%p])([ЁЮЯ])", "%1J%2") -- э at the beginning of the word is written as e text = gsub(text, "([%s%p])э", "%1e") text = gsub(text, "([%s%p])Э", "%1E") -- я after non-palatal consonants becomes ä text = gsub(text, "([" .. nonpalatals .. "])я", "%1ä") text = gsub(text, "([" .. nonpalatals .. "])Я", "%1Ä") -- ё after non-palatal consonants becomes ö text = gsub(text, "([" .. nonpalatals .. "])ё", "%1ö") text = gsub(text, "([" .. nonpalatals .. "])Ё", "%1Ö") -- make Ё, Ю, Я lowercase if preceding a non-capital letter text = gsub(text, "([ЁЮЯ])([^%u])", function(v, l) return lower(v) .. l end) -- consonants before ь and certain vowels are palatalised for i, v in pairs(palatals) do text = gsub(text, i .. "ь", v) text = gsub(text, i .. "([" .. front .. "])", v .. "%1") end return trim(gsub(text, ".", letters)) end return export atoueiz7lmg4khw2a6g5gjozzatychd Module:chm-translit 828 38117 176702 2026-04-26T12:06:55Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tab = { ["А"]="A", ["Б"]="B", ["В"]="V", ["Г"]="G", ["Д"]="D", ["Е"]="E", ["Ё"]="Jo", ["Ж"]="Ž", ["З"]="Z", ["И"]="I", ["Й"]="J", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["Ҥ"]="Ŋ", ["О"]="O", ["Ӧ"]="Ö", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ӱ"]="Ü", ["Ф"]="F", ["Х"]="H", ["Ц"]="C", ["Ч"]="Č", ["Ш"]="Š", ["Щ"]="Ŝ", ["Ъ"]="", ["Ы"]="Y", ["Ь"]="", ["Э"]="e", ["Ю"]="U", ["...' 176702 Scribunto text/plain local export = {} local tab = { ["А"]="A", ["Б"]="B", ["В"]="V", ["Г"]="G", ["Д"]="D", ["Е"]="E", ["Ё"]="Jo", ["Ж"]="Ž", ["З"]="Z", ["И"]="I", ["Й"]="J", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["Ҥ"]="Ŋ", ["О"]="O", ["Ӧ"]="Ö", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ӱ"]="Ü", ["Ф"]="F", ["Х"]="H", ["Ц"]="C", ["Ч"]="Č", ["Ш"]="Š", ["Щ"]="Ŝ", ["Ъ"]="", ["Ы"]="Y", ["Ь"]="", ["Э"]="e", ["Ю"]="U", ["Я"]="A", ['а']='a', ['б']='b', ['в']='v', ['г']='g', ['д']='d', ['е']='e', ['ё']='jo', ['ж']='ž', ['з']='z', ['и']='i', ['й']='j', ['к']='k', ['л']='l', ['м']='m', ['н']='n', ['ҥ']='ŋ', ['о']='o', ['ӧ']='ö', ['п']='p', ['р']='r', ['с']='s', ['т']='t', ['у']='u', ['ӱ']='ü', ['ф']='f', ['х']='h', ['ц']='c', ['ч']='č', ['ш']='š', ['щ']='ŝ', ['ъ']='', ['ы']='y', ['ь']='', ['э']='e', ['ю']='u', ['я']='a', -- Hill (Western) Mari only, doesn't use Ҥ, ҥ ["Ӓ"]="Ä", ["Ӹ"]="Ÿ", ['ӓ']='ä', ['ӹ']='ÿ', -- Northwestern Mari only ["Ө"]="Ou", ["Ӫ"]="Öü", ['ө']='ou', ['ӫ']='öü', -- NOTE: non-standart transliteration, please suggest better variants at documentation before replacing } function export.tr(text, lang, sc) -- Ё needs converting if is decomposed text = text:gsub("ё","ё"):gsub("Ё","Ё") -- iotated vowels after a vowel or at the beginning of a word become j- text = mw.ustring.gsub(text, "([АӒОӨÖӪУӰЫӸЕЯЁЮИЕЪЬаӓоөöӫуӱыӹэяёюиеъь%A][\204\129\204\128]?)([еёюя])", "%1j%2") text = mw.ustring.gsub(text, "^([ЕЁЮЯ])", "J%1") text = mw.ustring.gsub(text, "^([еёюя])", "j%1") -- soft consonants text = mw.ustring.gsub(text, "([НЛнл])([еёияюь])", "%1Q%2") text = mw.ustring.gsub(text, "НQ", "Ń") text = mw.ustring.gsub(text, "нQ", "ń") text = mw.ustring.gsub(text, "ЛQ", "Ĺ") text = mw.ustring.gsub(text, "лQ", "ĺ") return (mw.ustring.gsub(text,'.',tab)) end return export 85u6yhrjxa28g56mvewtpx49s21zanp Module:mdf-sortkey 828 38118 176703 2026-04-26T12:06:57Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local a = u(0xF000) local oneChar = { ["ё"] = "е" .. a } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)) end return export' 176703 Scribunto text/plain local export = {} local u = mw.ustring.char local a = u(0xF000) local oneChar = { ["ё"] = "е" .. a } function export.makeSortKey(text, lang, sc) return mw.ustring.upper(mw.ustring.gsub(mw.ustring.lower(text), ".", oneChar)) end return export fpynrgnyrcig23pqmf0ixa0z2wahmle Module:lif-translit 828 38119 176704 2026-04-26T12:06:59Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local gsub = mw.ustring.gsub local consonants = { ['ᤁ']='k', ['ᤂ']='kh', ['ᤃ']='g', ['ᤄ']='gh', ['ᤅ']='ṅ', ['ᤆ']='c', ['ᤇ']='ch', ['ᤈ']='j', ['ᤉ']='jh', ['ᤊ']='ñ', ['ᤋ']='t', ['ᤌ']='th', ['ᤍ']='d', ['ᤎ']='dh', ['ᤏ']='n', ['ᤐ']='p', ['ᤑ']='ph', ['ᤒ']='b', ['ᤓ']='bh', ['ᤔ']='m', ['ᤕ']='y', ['ᤖ']='r', ['ᤗ']='l', ['ᤘ']='w', ['ᤙ']='ś', ['ᤚ']='ṣ', ['ᤛ']='s', ['ᤜ']='h', ['ᤝ']='...' 176704 Scribunto text/plain local export = {} local gsub = mw.ustring.gsub local consonants = { ['ᤁ']='k', ['ᤂ']='kh', ['ᤃ']='g', ['ᤄ']='gh', ['ᤅ']='ṅ', ['ᤆ']='c', ['ᤇ']='ch', ['ᤈ']='j', ['ᤉ']='jh', ['ᤊ']='ñ', ['ᤋ']='t', ['ᤌ']='th', ['ᤍ']='d', ['ᤎ']='dh', ['ᤏ']='n', ['ᤐ']='p', ['ᤑ']='ph', ['ᤒ']='b', ['ᤓ']='bh', ['ᤔ']='m', ['ᤕ']='y', ['ᤖ']='r', ['ᤗ']='l', ['ᤘ']='w', ['ᤙ']='ś', ['ᤚ']='ṣ', ['ᤛ']='s', ['ᤜ']='h', ['ᤝ']='gy', ['ᤞ']='tr', ['ᤀ']='', } local diacritics = { ['ᤠ']='a' , ['ᤡ']='i' , ['ᤢ']='u' , ['ᤣ']='e' , ['ᤤ']='ai' , ['ᤥ']='o' , ['ᤦ']='au' , ['ᤧ']='ê' , ['ᤨ']='ô' } local special = { -- idk what to call these ['᤹']='’', --mukphreng (glottalizer) ['ᤲ'] = '̃', --anusvara (now obsolete) } local subjoined = { ['ᤪ']='r', ['ᤫ']='w', ['ᤩ']='y', } local finals = { ['ᤰ']='k', ['ᤱ']='ṅ', ['ᤳ']='t', ['ᤴ']='n', ['ᤵ']='p', ['ᤶ']='m', ['ᤷ']='r', ['ᤸ']='l', } local nonconsonants = { -- digits ['᥆'] = '0', ['᥇'] = '1', ['᥈'] = '2', ['᥉'] = '3', ['᥊'] = '4', ['᥋'] = '5', ['᥌'] = '6', ['᥍'] = '7', ['᥎'] = '8', ['᥏'] = '9', ['॥']='.', ['᥄']='!', ['᥅']='?', ['᥀']='lo' } -- translit any words or phrases function export.tr(text, lang, sc) text = mw.ustring.gsub(text, '([ᤁᤂᤃᤄᤅᤆᤇᤈᤉᤊᤋᤌᤍᤎᤏᤐᤑᤒᤓᤔᤕᤖᤗᤘᤙᤚᤛᤜᤝᤞᤀ])᤻', '᤺%1⌫') -- treat underscore as kemphreng text = mw.ustring.gsub( text, '([ᤁᤂᤃᤄᤅᤆᤇᤈᤉᤊᤋᤌᤍᤎᤏᤐᤑᤒᤓᤔᤕᤖᤗᤘᤙᤚᤛᤜᤝᤞᤀ])'.. '([ᤪᤫᤩ]?)'.. '([ᤠᤡᤢᤣᤤᤥᤦᤧ ᤨ]?)'.. '([᤹᤺ᤲ]?)'.. '([ᤰᤱᤳᤴᤵᤶᤷᤸ]?)', function(c, d, e, f, g) -- mw.log('match', c, d) return (consonants[c] or c) .. (subjoined[d] or d) .. (diacritics[e] or (e ~= "") and e or 'ô') .. (special[f] or f) .. (finals[g] or g) end) text = gsub(text, "[<>]", "") text = mw.ustring.gsub(text, '.', nonconsonants) text = mw.ustring.gsub(text, '(.)⌫', '') text = gsub(text, 'aᤣ', 'o') text = gsub(text, 'ᤣᤣ', 'ai') text = gsub(text, 'aᤣᤣ', 'au') text = mw.ustring.gsub(text, '᤺', '̄') text = mw.ustring.gsub(text, 'ᤰ', 'k') text = mw.ustring.gsub(text, 'ᤱ', 'ṅ') text = mw.ustring.gsub(text, 'ᤳ', 't') text = mw.ustring.gsub(text, 'ᤴ', 'n') text = mw.ustring.gsub(text, 'ᤵ', 'p') text = mw.ustring.gsub(text, 'ᤶ', 'm') text = mw.ustring.gsub(text, 'ᤷ', 'r') text = mw.ustring.gsub(text, 'ᤸ', 'l') text = gsub(text, '̄ᤣ', 'ō') text = mw.ustring.gsub(text, 'aō', 'ō') return mw.ustring.toNFC(text) end return export jlm0oq6vecvtd9i4q4jztly3vezu7yo Module:lki-translit 828 38120 176705 2026-04-26T12:07:02Z Yivan000 4078 Nilikha ang pahina na may '-- Authors: JavaScript ئاسۆ; Lua Ghybu, Calak local export = {} local gsub = mw.ustring.gsub local U = require("Module:string/char") local mapping = { ["ا"] = "a", ["ب"] = "b", ["چ"] = "ç", ["ج"] = "c", ["د"] = "d", ["ە"] = "e", ["ێ"] = "ê", ["ف"] = "f", ["گ"] = "g", ["ھ"] = "h", ["ه"] = "h", ["ح"] = "ḧ", ["ژ"] = "j", ["ک"] = "k", ["ڵ"] = "ll", ["ل"] = "l", ["م"] = "m", ["ن"] = "n", ["ۆ"] = "o", ["پ"] = "p", ["ق"] = "q", ["ر"]...' 176705 Scribunto text/plain -- Authors: JavaScript ئاسۆ; Lua Ghybu, Calak local export = {} local gsub = mw.ustring.gsub local U = require("Module:string/char") local mapping = { ["ا"] = "a", ["ب"] = "b", ["چ"] = "ç", ["ج"] = "c", ["د"] = "d", ["ە"] = "e", ["ێ"] = "ê", ["ف"] = "f", ["گ"] = "g", ["ھ"] = "h", ["ه"] = "h", ["ح"] = "ḧ", ["ژ"] = "j", ["ک"] = "k", ["ڵ"] = "ll", ["ل"] = "l", ["م"] = "m", ["ن"] = "n", ["ۆ"] = "o", ["پ"] = "p", ["ق"] = "q", ["ر"] = "r", ["ڕ"] = "r", ["س"] = "s", ["ش"] = "ş", ["ت"] = "t", ["ۊ"] = "ü", ["ڤ"] = "v", ["خ"] = "x", ["غ"] = "ẍ", ["ز"] = "z", ["ئ"] = "", ["ع"] = "'", [U(0x200C)] = "", -- ZWNJ (zero-width non-joiner) ["ـ"] = "", -- kashida, no sound -- numerals ["١"] = "1", ["٢"] = "2", ["٣"] = "3", ["٤"] = "4", ["٥"] = "5", ["٦"] = "6", ["٧"] = "7", ["٨"] = "8", ["٩"] = "9", ["٠"] = "0", -- persian variants to numerals ["۱"] = "1", ["۲"] = "2", ["۳"] = "3", ["۴"] = "4", ["۵"] = "5", ["۶"] = "6", ["۷"] = "7", ["۸"] = "8", ["۹"] = "9", ["۰"] = "0", } -- punctuation (leave on separate lines) local punctuation = { ["؟"] = "?", -- question mark ["،"] = ",", -- comma ["؛"] = ";", -- semicolon ["«"] = '“', -- quotation mark ["»"] = '”', -- quotation mark ["٪"] = "%", -- percent ["؉"] = "‰", -- per mille ["٫"] = ".", -- decimals ["٬"] = ",", -- thousand } -- translit local function tr_word(word) word = gsub(word, '.', punctuation) --Remove punctuation at the end of the word. local ponct if mw.ustring.find(word, '[%.%!،؛»«٪؉٫٬%p]$') then ponct = mw.ustring.sub(word, -1) word = gsub(word, '[%.%!،؛»«٪؉٫٬%p]$', '') else word = word ponct = '' end word = gsub(word, 'ه‌', "ە") --correct unicode for letter ە -- U+0647 (Arabic letter heh) + U+200C (zero-width non-joiner) → U+06D5 (Arabic letter ae) -- diacritics word = gsub(word, 'ْ', "i") -- U+0652, Arabic sukun word = gsub(word, 'ِ', "i") -- U+0650, Arabic kasra --managing 'و' and 'ی' word = gsub(word, 'و([iاێۆۊە])', "w%1") --و + vowel => w (e.g. wan) word = gsub(word, 'ی([iاێۆۊە])', "y%1") --ی + vowel => y (e.g. yas) word = gsub(word, '([iاێۆۊە])و', "%1w") --vowel + و => w (e.g. kew) word = gsub(word, '([iاێۆۊە])ی', "%1y") --vowel + ی => y (e.g. bey) word = gsub(word, '([iاێۆە])ۊ', "%1ẅ") --vowel + و => ẅ (e.g. taẅ) word = gsub(word, '([iاۆۊە])ێ', "%1ÿ") --vowel + ێ => ÿ (e.g. şeÿtan) word = gsub(word, '^و$', "û") --non-letter + 'و' + non-letter => û (=and) word = gsub(word, '([^ء-يٱ-ەiwẅyÿ])و', "%1w") --non-letter + 'و' => w (e.g. wetar) word = gsub(word, '^و', "w") --first 'و' => w (e.g. wetar) word = gsub(word, 'یو', "îw") --'ی' + 'و' => îw (e.g. mîwe) word = gsub(word, '([^و])یی', "%1îy") --'ی' + 'ی' => îy (e.g. kanîy) word = gsub(word, 'وی', "uy") --'و' + 'ی' => uy (e.g. buyn) word = gsub(word, 'وو', "û") --'و' + 'و' => û (e.g. nû) word = gsub(word, 'ی', "î") word = gsub(word, 'و', "u") word = gsub(word, 'uu', "û") --'و' + 'و' => û (e.g. nû) word = gsub(word, '([ء-يٱ-ەiîuûwẅyÿ])ڕ', "%1rr") --when 'ڕ' not at the beginning of a word => rr word = gsub(word, '([ء-يٱ-ەiîuûwẅyÿ])ئ', "%1'") --when 'ئ' not at the beginning of a word => ' word = gsub(word, '.', mapping) --insert i where applicable word = gsub(word, 'll', "Ľ") -- temporary conversion to avoid seeing ll as 2 letters word = gsub(word, 'rr', "Ŕ") -- temporary conversion to avoid seeing rr as 2 letters word = gsub(word, '([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])([fjlĽmnrŔsşvwẅxẍyÿz])([fjlĽmnrŔsşvwẅxẍyÿz])([^aeêiîouûüy])', "%1%2i%3%4") --e.g. grft -> grift word = gsub(word, '([aeêiîouûü])([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])$', "%1%2%3i%4") --e.g. cejnt -> cejnit word = gsub(word, '([fjlĽrŔsşwyz])([fjlĽmnrŔsşvwẅxẍyÿz])([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])', "%1i%2%3") --e.g. wrd -> wird word = gsub(word, '([bcçdghḧkmnpqtvxẍ])([fjlĽmnrŔsşvwẅxẍyÿz])([^aeêiîouûü])', "%1i%2%3") --e.g. prd -> pird word = gsub(word, '([bcçdghḧkmnpqtvxẍ])([fjlĽmnrŔsşvwẅxẍyÿz])$', "%1i%2") --like above word = gsub(word, '([^aeêiîouûü])([bcçdghḧkmnpqtvxẍ])([fjlĽmnrŔsşvwẅxẍyÿz])([^aeêiîouûü])', "%1%2i%3%4") --repeat the latter expression, in case skipped word = gsub(word, '([^aeêiîouûü])([bcçdghḧkmnpqtvxẍ])([fjlĽmnrŔsşvwẅxẍyÿz])$', "%1%2i%3") --repeat the latter expression, in case skipped word = gsub(word, '^([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])([^aeêiîouûü])', "%1i%2%3") --e.g. ktk -> kitk word = gsub(word, '^([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])$', "%1i%2") --e.g. ktk -> kitk word = gsub(word, '([^aeêiîouüy])([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])([^aeêiîouûü])', "%1%2i%3%4") --e.g. ktk -> kitk word = gsub(word, '([^aeêiîouüy])([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])$', "%1%2i%3") --e.g. ktk -> kitk word = gsub(word, '([^a-zçşêîûüĽŔ])([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])$', "%1%2i") --e.g. j -> ji word = gsub(word, '^([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])$', "%1i") --e.g. j -> ji --word = gsub(word, '([^a-zêîûçş0-9\'’])([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])([bcçdfghḧjklĽmnpqrŔsştvxẍz])', "%1%2i%3") --e.g. bra -> bira --word = gsub(word, '^([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])([bcçdfghḧjklĽmnpqrŔsştvxẍz])', "%1i%2") --e.g. bra -> bira --word = gsub(word, '([bcçdfghḧjklmnpqrsştvwẅxẍz][bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])([bcçdfghḧjklĽmnpqrŔsştvwẅxẍz])', "%1i%2") --e.g. aşkra -> aşkira --word = gsub(word, 'si([tp][aeêiîouû])', "s%1") -- sp, st cluster word = gsub(word, 'Ľ', "ll") --revert the temporary conversion word = gsub(word, 'Ŕ', "rr") --revert the temporary conversion -- Add the punctuation who had previously deleted. word = word .. ponct return word end function export.tr(text, lang, sc) local textTab = {} -- Create a word table separated by a space (%s). for _, word in ipairs(mw.text.split(text, '%s+')) do table.insert(textTab, word) end -- Tablo of translit. for key, word in ipairs(textTab) do textTab[key] = tr_word(word) end return table.concat(textTab, ' ') end return export nyl8y43xba2k7f8nukjuhd2vo5fwsf8 Module:lez-translit 828 38121 176706 2026-04-26T12:07:04Z Yivan000 4078 Nilikha ang pahina na may 'local gsub = string.gsub local u = require("Module:string utilities").char local export = {} local tt = { ["б"]="b", ["п"]="p", ["ф"]="f", ["в"]="v", ["м"]="m", ["д"]="d", ["т"]="t", ["й"]="j", ["н"]="n", ["з"]="z", ["ц"]="c", ["с"]="s", ["ж"]="ž", ["ш"]="š", ["щ"]="šč", ["л"]="l", ["ч"]="č", ["р"]="r", ["г"]="g", ["к"]="k", ["х"]="ꭓ", ["ъ"]="ʾ", ["а"]="a", ["е"]="e", ["ы"]="y", ["и"]="i", ["о"]="o", ["у"]="u", ["ё"...' 176706 Scribunto text/plain local gsub = string.gsub local u = require("Module:string utilities").char local export = {} local tt = { ["б"]="b", ["п"]="p", ["ф"]="f", ["в"]="v", ["м"]="m", ["д"]="d", ["т"]="t", ["й"]="j", ["н"]="n", ["з"]="z", ["ц"]="c", ["с"]="s", ["ж"]="ž", ["ш"]="š", ["щ"]="šč", ["л"]="l", ["ч"]="č", ["р"]="r", ["г"]="g", ["к"]="k", ["х"]="ꭓ", ["ъ"]="ʾ", ["а"]="a", ["е"]="e", ["ы"]="y", ["и"]="i", ["о"]="o", ["у"]="u", ["ё"]="ë", ["ь"]="’", ["э"]="è", ["ю"]="ju", ["я"]="ä", ["Б"]="B", ["П"]="P", ["Ф"]="F", ["В"]="V", ["М"]="M", ["Д"]="D", ["Т"]="T", ["Й"]="J", ["Н"]="N", ["З"]="Z", ["Ц"]="C", ["С"]="S", ["Ж"]="Ž", ["Ш"]="Š", ["Щ"]="Šč", ["Л"]="L", ["Ч"]="Č", ["Р"]="R", ["Г"]="G", ["К"]="K", ["Х"]="Ꭓ", ["Ъ"]="ʾ", ["А"]="A", ["Е"]="E", ["Ы"]="Y", ["И"]="I", ["О"]="O", ["У"]="U", ["Ё"]="Ë", ["Ь"]="’", ["Э"]="È", ["Ю"]="Ju", ["Я"]="Ä"}; local trigraphs = { ['хъв'] = 'q°', ['Хъв'] = 'Q°', ['къв'] = 'q̄°', ['Къв'] = 'Q̄°', ['кьв'] = 'q̇°', ['Кьв'] = 'Q̇°', ['гъв'] = 'ġ°', ['Гъв'] = 'Ġ°', ['ттв'] = 't̄°', ['Ттв'] = 't̄°', ['ццв'] = 'c̄°', ['Ццв'] = 'C̄°', ['ккв'] = 'k̄°', ['Ккв'] = 'K̄°', ['тӏв'] = 'ṭ°', ['Тӏв'] = 'Ṭ°', ['цӏв'] = 'c̣°', ['Цӏв'] = 'C̣°', ['кӏв'] = 'ḳ°', ['Кӏв'] = 'Ḳ°', } local digraphs = { ['тв'] = 't°', ['Тв'] = 'T°', ['зв'] = 'z°', ['Зв'] = 'Z°', ['хв'] = 'ꭓ°', ['Хв'] = 'Ꭓ°', ['цв'] = 'c°', ['Цв'] = 'C°', ['св'] = 's°', ['Св'] = 'S°', ['пп'] = 'p̄', ['пӏ'] = 'ṗ', ['тт'] = 't̄', ['Пп'] = 'P̄', ['Пӏ'] = 'Ṗ', ['Тт'] = 'T̄', ['цӏ'] = 'c̣', ['цц'] = 'c̄', ['тӏ'] = 'ṭ', ['чч'] = 'č̄', ['чӏ'] = 'č̣', ['кь'] = 'q̇', ['кк'] = 'k̄', ['кӏ'] = 'ḳ', ['хъ'] = 'q', ['къ'] = 'q̄', ['гъ'] = 'ġ', ['гь'] = 'h', ['Цӏ'] = 'C̣', ['Цц'] = 'C̄', ['Тӏ'] = 'Ṭ', ['Чч'] = 'Č̄', ['Чӏ'] = 'Č̣', ['Кь'] = 'Q̇', ['Кк'] = 'K̄', ['Кӏ'] = 'Ḳ', ['Хъ'] = 'Q', ['Къ'] = 'Q̄', ['Гъ'] = 'Ġ', ['Гь'] = 'H', ['уь'] = 'ü', ['Уь'] = 'Ü', ['хь'] = 'x', ['Хь'] = 'X', ['гв'] = 'g°', ['Гв'] = 'G°', ['кв'] = 'k°', ['Кв'] = 'K°', } function export.tr(text, lang, sc) -- Convert capital to lowercase palochka. Lowercase is found in tables -- above. text = gsub(text, u(0x4C0), u(0x4CF)) for digraph, replacement in pairs(digraphs) do text = gsub(text, digraph, replacement) end for trigraph, replacement in pairs(trigraphs) do text = gsub(text, trigraph, replacement) end text = gsub(text, ".[\128-\191]*", tt) return text end return export ku8n1hqhrg7swjet97h8j6sd09uhoqh Module:lep-translit 828 38122 176707 2026-04-26T12:07:07Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local conv = { [""] = "", ["ᰀ"] = "k", --U+1C00, \225\176\128 ["ᰁ"] = "kl", --U+1C01, \225\176\129 ["ᰂ"] = "kh", --U+1C02, \225\176\130 ["ᰃ"] = "g", --U+1C03, \225\176\131 ["ᰄ"] = "gl", --U+1C04, \225\176\132 ["ᰅ"] = "ng", --U+1C05, \225\176\133 ["ᰆ"] = "c", --U+1C06, \225\176\134 ["ᰇ"] = "ch", --U+1C07, \225\176\135 ["ᰈ"] = "j", --U+1C08, \225\176\136 ["ᰉ"] = "ny", --U+1C09, \225\176\137 ["ᰊ"] = "t", --U+1C0A,...' 176707 Scribunto text/plain local export = {} local conv = { [""] = "", ["ᰀ"] = "k", --U+1C00, \225\176\128 ["ᰁ"] = "kl", --U+1C01, \225\176\129 ["ᰂ"] = "kh", --U+1C02, \225\176\130 ["ᰃ"] = "g", --U+1C03, \225\176\131 ["ᰄ"] = "gl", --U+1C04, \225\176\132 ["ᰅ"] = "ng", --U+1C05, \225\176\133 ["ᰆ"] = "c", --U+1C06, \225\176\134 ["ᰇ"] = "ch", --U+1C07, \225\176\135 ["ᰈ"] = "j", --U+1C08, \225\176\136 ["ᰉ"] = "ny", --U+1C09, \225\176\137 ["ᰊ"] = "t", --U+1C0A, \225\176\138 ["ᰋ"] = "th", --U+1C0B, \225\176\139 ["ᰌ"] = "d", --U+1C0C, \225\176\140 ["ᰍ"] = "n", --U+1C0D, \225\176\141 ["ᰎ"] = "p", --U+1C0E, \225\176\142 ["ᰏ"] = "pl", --U+1C0F, \225\176\143 ["ᰐ"] = "ph", --U+1C10, \225\176\144 ["ᰑ"] = "f", --U+1C11, \225\176\145 ["ᰒ"] = "fl", --U+1C12, \225\176\146 ["ᰓ"] = "b", --U+1C13, \225\176\147 ["ᰔ"] = "bl", --U+1C14, \225\176\148 ["ᰕ"] = "m", --U+1C15, \225\176\149 ["ᰖ"] = "ml", --U+1C16, \225\176\150 ["ᰗ"] = "ts", --U+1C17, \225\176\151 ["ᰘ"] = "tsh", --U+1C18, \225\176\152 ["ᰙ"] = "dz", --U+1C19, \225\176\153 ["ᰚ"] = "y", --U+1C1A, \225\176\154 ["ᰛ"] = "r", --U+1C1B, \225\176\155 ["ᰜ"] = "l", --U+1C1C, \225\176\156 ["ᰝ"] = "h", --U+1C1D, \225\176\157 ["ᰞ"] = "hl", --U+1C1E, \225\176\158 ["ᰟ"] = "v", --U+1C1F, \225\176\159 ["ᰠ"] = "s", --U+1C20, \225\176\160 ["ᰡ"] = "sh", --U+1C21, \225\176\161 ["ᰢ"] = "w", --U+1C22, \225\176\162 ["ᰣ"] = "ʔ", --U+1C23, \225\176\163 ["ᰤ"] = "y", --U+1C24, \225\176\164 ["ᰥ"] = "r", --U+1C25, \225\176\165 ["ᰥᰤ"] = "ry", ["ᰀ᰷"] = "t", ["ᰝ᰷"] = "th", ["ᰃ᰷"] = "d", ["ᰦ"] = "á", --U+1C26, \225\176\166 ["ᰧ"] = "i", --U+1C27, \225\176\167 ["ᰨ"] = "o", --U+1C28, \225\176\168 ["ᰩ"] = "ó", --U+1C29, \225\176\169 ["ᰪ"] = "u", --U+1C2A, \225\176\170 ["ᰫ"] = "ú", --U+1C2B, \225\176\171 ["ᰬ"] = "e", --U+1C2C, \225\176\172 ["ᰭ"] = "k", --U+1C2D, \225\176\173 ["ᰮ"] = "m", --U+1C2E, \225\176\174 ["ᰯ"] = "l", --U+1C2F, \225\176\175 ["ᰰ"] = "n", --U+1C30, \225\176\176 ["ᰱ"] = "p", --U+1C31, \225\176\177 ["ᰲ"] = "r", --U+1C32, \225\176\178 ["ᰳ"] = "t", --U+1C33, \225\176\179 ["ᰴ"] = "ng", --U+1C34, \225\176\180 ["ᰵ"] = "ng", --U+1C35, \225\176\181 ["ᰧᰶ"] = "í", --U+1C27 U+1C36, \225\176\167 \225\176\182 ["ᰶ"] = "â", --U+1C36, \225\176\182 ["᰷"] = "", --U+1C37, \225\176\183 ["᰻"] = ".", --U+1C3B, \225\176\187 ["᰼"] = ".", --U+1C3C, \225\176\188 ["᰽"] = ".", --U+1C3D, \225\176\189 ["᰾"] = ".", --U+1C3E, \225\176\190 ["᰿"] = ".", --U+1C3F, \225\176\191 ["᱀"] = "0", --U+1C40, \225\177\128 ["᱁"] = "1", --U+1C41, \225\177\129 ["᱂"] = "2", --U+1C42, \225\177\130 ["᱃"] = "3", --U+1C43, \225\177\131 ["᱄"] = "4", --U+1C44, \225\177\132 ["᱅"] = "5", --U+1C45, \225\177\133 ["᱆"] = "6", --U+1C46, \225\177\134 ["᱇"] = "7", --U+1C47, \225\177\135 ["᱈"] = "8", --U+1C48, \225\177\136 ["᱉"] = "9", --U+1C49, \225\177\137 ["ᱍ"] = "tt", --U+1C4D, \225\177\141 ["ᱎ"] = "tth", --U+1C4E, \225\177\142 ["ᱏ"] = "dd", --U+1C4F, \225\177\143 } local function add_inherent_vowel(c) return c == "" and "a" or c end local initials = "([ᰀ-ᰣᱍ-ᱏ])" local nukta = "(᰷?)" local medials = "([ᰤᰥ]?[ᰤ]?)" local vowels = "([ᰦ-ᰬ]?)" local finals = "([ᰭ-ᰵ]?)" local ran = "(ᰶ?)" -- the ran diacritic goes after final local syllable = initials .. nukta .. medials .. vowels .. finals .. ran local function romanise_syllable(i, n, m, v, f, r) return conv[i .. n] .. conv[m] .. add_inherent_vowel(conv[v .. r]) .. conv[f] end -- Take Lepcha-script `text` and output a table of tables (for each word) of -- romanised syllables. function export.syllabify(text) local ret = {} for word in mw.text.gsplit(text, " ") do local syllables = {} for i, n, m, v, f, r in mw.ustring.gmatch(word, syllable) do table.insert(syllables, romanise_syllable(i, n, m, v, f, r)) end table.insert(ret, syllables) end return ret end function export.tr(text, lang, sc) text = mw.ustring.gsub(text, "[᰻-᱉]", conv) text = mw.ustring.gsub(text, syllable, romanise_syllable) return text end return export knzd8wd4djb3tczbla8sfprie4lod0n Module:kpy-translit 828 38123 176708 2026-04-26T12:07:10Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tab = { ["А"]="A", ["Б"]="B", ["В"]="V", ["Г"]="G", ["Д"]="D", ["Е"]="Je", ["Ё"]="Jo", ["Ж"]="Ž", ["З"]="Z", ["И"]="I", ["Й"]="J", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["О"]="O", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ф"]="F", ["Х"]="X", ["Ц"]="C", ["Ч"]="Č", ["Ш"]="Š", ["Щ"]="Ś", ["Ъ"]="ʺ", ["Ы"]="Ə", ["Ь"]="ʹ", ["Э"]="E", ["Ю"]="Ju", ["Я"]="Ja", ["Ӈ"]="Ŋ", ["Ӄ"]="Q"...' 176708 Scribunto text/plain local export = {} local tab = { ["А"]="A", ["Б"]="B", ["В"]="V", ["Г"]="G", ["Д"]="D", ["Е"]="Je", ["Ё"]="Jo", ["Ж"]="Ž", ["З"]="Z", ["И"]="I", ["Й"]="J", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["О"]="O", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ф"]="F", ["Х"]="X", ["Ц"]="C", ["Ч"]="Č", ["Ш"]="Š", ["Щ"]="Ś", ["Ъ"]="ʺ", ["Ы"]="Ə", ["Ь"]="ʹ", ["Э"]="E", ["Ю"]="Ju", ["Я"]="Ja", ["Ӈ"]="Ŋ", ["Ӄ"]="Q", ['а']='a', ['б']='b', ['в']='v', ['г']='g', ['д']='d', ['е']='je', ['ё']='jo', ['ж']='ž', ['з']='z', ['и']='i', ['й']='y', ['к']='k', ['л']='l', ['м']='m', ['н']='n', ['о']='o', ['п']='p', ['р']='r', ['с']='s', ['т']='t', ['у']='u', ['ф']='f', ['х']='x', ['ц']='c', ['ч']='č', ['ш']='š', ['щ']='ś', ['ъ']='ʺ', ['ы']='ə', ['ь']='ʹ', ['э']='e', ['ю']='ju', ['я']='ya', ["ӈ"]="ŋ", ['ӄ']='q', } function export.tr(text, lang, sc) text = mw.ustring.gsub(text, "Вʼ", "W") text = mw.ustring.gsub(text, "вʼ", "w") text = mw.ustring.gsub(text, "Гʼ", "H") text = mw.ustring.gsub(text, "гʼ", "h") return (mw.ustring.gsub(text, '.' ,tab)) end return export k60rxgf2qtazcf3iv40443945txauhz Module:ksw-translit 828 38124 176709 2026-04-26T12:07:12Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local gsub = mw.ustring.gsub local u = mw.ustring.char local tt1 = { -- consonants ["က"] = "kə", ["ခ"] = "khə", ["ဂ"] = "ghə", ["ဃ"] = "xə", ["င"] = "ngə", ["စ"] = "sə", ["ဆ"] = "hsə", ["ၡ"] = "shə", ["ည"] = "nyə", ["တ"] = "tə", ["ထ"] = "hṭə", ["ဒ"] = "də", ["န"] = "nə", ["ပ"] = "pə", ["ဖ"] = "hpə", ["ဘ"] = "bə", ["မ"] = "mə", ["ယ"] = "yə", ["ရ"] = "rə", ["လ"] = "lə", ["ဝ"] =...' 176709 Scribunto text/plain local export = {} local gsub = mw.ustring.gsub local u = mw.ustring.char local tt1 = { -- consonants ["က"] = "kə", ["ခ"] = "khə", ["ဂ"] = "ghə", ["ဃ"] = "xə", ["င"] = "ngə", ["စ"] = "sə", ["ဆ"] = "hsə", ["ၡ"] = "shə", ["ည"] = "nyə", ["တ"] = "tə", ["ထ"] = "hṭə", ["ဒ"] = "də", ["န"] = "nə", ["ပ"] = "pə", ["ဖ"] = "hpə", ["ဘ"] = "bə", ["မ"] = "mə", ["ယ"] = "yə", ["ရ"] = "rə", ["လ"] = "lə", ["ဝ"] = "wə", ["သ"] = "thə", ["ဟ"] = "hə", ["အ"] = "ʼə", ["ဧ"] = "ahh ", -- medials ["ှ"] = "ˣhgə", ["ၠ"] = "ˣyə", ["ြ"] = "ˣrə", ["ျ"] = "ˣlə", ["ွ"] = "ˣwə", -- dependent vowels ["ါ"] = "ah ", ["ံ"] = "ee ", ["ု"] = "u ", ["ူ"] = "oo ", ["ၢ"] = "uh ", ["့"] = "ay ", ["ဲ"] = "eh ", ["ိ"] = "oh ", ["ီ"] = "aw ",["ႉ"] = ". ", -- numerals ["၀"] = "0", ["၁"] = "1", ["၂"] = "2", ["၃"] = "3", ["၄"] = "4", ["၅"] = "5", ["၆"] = "6", ["၇"] = "7", ["၈"] = "8", ["၉"] = "9", -- zero-width space (display it if it hides in a word) [u(0x200B)] = "‼", } local adjust0 = { -- tones ["ၢ်"] = u(0x0331), ["ာ်"] = u(0x0323), ["း"] = u(0x0308), ["ၣ်"] = u(0x0300), ["ၤ"] = u(0x0304), --prolonged } function export.tr(text, lang, sc) if type(text) == "table" then -- called directly from a template text = text.args[1] end for k, v in pairs(adjust0) do text = gsub(text, k, v) end text = gsub(text, ".", tt1) text = gsub(text, "əˣ", "") text = gsub(text, "ə([aeiou])", "%1") text = gsub(text, "ə", "a ") text = gsub(text, "%s(["..u(0x0331)..u(0x0323)..u(0x0308)..u(0x0300)..u(0x0304).."])", "%1 ") text = gsub(text, "(.-)%s*$", "%1") -- remove space at the end return text end return export 2y2a23i2iuseenlr7vrzyveqnk2kxum Module:kjh-translit 828 38125 176710 2026-04-26T12:07:14Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tt = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Г"]='G', ["г"]='g', ["Ғ"]='Ğ', ["ғ"]='ğ', ["Д"]='D', ["д"]='d', ["Е"]='E', ["е"]='e', ["Ё"]='Yo', ["ё"]='yo', ["Ж"]='J', ["ж"]='j', ["З"]='Z', ["з"]='z', ["И"]='İ', ["и"]='i', ["Й"]='Y', ["й"]='y', ["І"]='Ì', ["і"]='ì', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["Ң"]='Ñ', ["...' 176710 Scribunto text/plain local export = {} local tt = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Г"]='G', ["г"]='g', ["Ғ"]='Ğ', ["ғ"]='ğ', ["Д"]='D', ["д"]='d', ["Е"]='E', ["е"]='e', ["Ё"]='Yo', ["ё"]='yo', ["Ж"]='J', ["ж"]='j', ["З"]='Z', ["з"]='z', ["И"]='İ', ["и"]='i', ["Й"]='Y', ["й"]='y', ["І"]='Ì', ["і"]='ì', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["Ң"]='Ñ', ["ң"]='ñ', ["О"]='O', ["о"]='o', ["Ӧ"]='Ö', ["ӧ"]='ö', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["С"]='S', ["с"]='s', ["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Ӱ"]='Ü', ["ӱ"]='ü', ["Ф"]='F', ["ф"]='f', ["Х"]='X', ["х"]='x', ["Ц"]='Ts', ["ц"]='ts', ["Ч"]='Ç', ["ч"]='ç', ["Ӌ"]='C', ["ӌ"]='c', ["Ҷ"]='C', ["ҷ"]='c', ["Ш"]='Ş', ["ш"]='ş', ["Щ"]='Şç', ["щ"]='şç', ['Ъ']='ʺ', ['ъ']='ʺ', ["Ы"]='I', ["ы"]='ı', ["Ь"]="’", ["ь"]="’", ["Э"]='E', ["э"]='e', ["Ю"]='Yu', ["ю"]='yu', ["Я"]='Ya', ["я"]='ya', }; function export.tr(text, lang, sc) return (mw.ustring.gsub(text, '.', tt)) end return export 37b0sfw1veyfjuvvn03sjq8fnftd4dc Module:kjp-translit 828 38126 176711 2026-04-26T12:07:17Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local diacritics = { [mw.ustring.char(0x1039)] = "", [mw.ustring.char(0x103D)] = "w", [mw.ustring.char(0x1060)] = "l", [mw.ustring.char(0x103C)] = "r", [mw.ustring.char(0x103B)] = "j", [mw.ustring.char(0x105E)] = "n", [mw.ustring.char(0x102E)] = "I", [mw.ustring.char(0x1031)] = "E", [mw.ustring.char(0x1032)] = "Ä", [mw.ustring.char(0x103A)] = "V", [mw.ustring.char(0x103E)] = "H", [mw.ustring.char(0x102B)] = "A", [mw.ustring.char(0...' 176711 Scribunto text/plain local export = {} local diacritics = { [mw.ustring.char(0x1039)] = "", [mw.ustring.char(0x103D)] = "w", [mw.ustring.char(0x1060)] = "l", [mw.ustring.char(0x103C)] = "r", [mw.ustring.char(0x103B)] = "j", [mw.ustring.char(0x105E)] = "n", [mw.ustring.char(0x102E)] = "I", [mw.ustring.char(0x1031)] = "E", [mw.ustring.char(0x1032)] = "Ä", [mw.ustring.char(0x103A)] = "V", [mw.ustring.char(0x103E)] = "H", [mw.ustring.char(0x102B)] = "A", [mw.ustring.char(0x102C)] = "A", [mw.ustring.char(0x1038)] = "3", [mw.ustring.char(0x1030)] = "Y", [mw.ustring.char(0x102F)] = "U", [mw.ustring.char(0x102D)] = "Ï", [mw.ustring.char(0x108B)] = "2", [mw.ustring.char(0x1036)] = "Q", [mw.ustring.char(0x1037)] = "4", } local consonants = { ["က"]="k", ["ခ"]="kh", ["ဂ"]="K", ["ဃ"]="kh", ["င"]="ŋ", ["စ"]="c", ["ဆ"]="ch", ["ဇ"]="c", ["ဈ"]="ch", ["ည"]="ɲ", ["ဋ"]="t", ["ဌ"]="th", ["ဍ"]="d", ["ဎ"]="d", ["ဏ"]="n", ["တ"]="t", ["ထ"]="th", ["ဒ"]="T", ["ဓ"]="th", ["န"]="n", ["ပ"]="p", ["ဖ"]="ph", ["ဗ"]="p", ["ဘ"]="ph", ["မ"]="m", ["ယ"]="j", ["ရ"]="r", ["လ"]="l", ["ဝ"]="w", ["သ"]="θ", ["ဟ"]="h", ["ဠ"]="l", ["အ"]="ʔ", ["ၜ"]="b", ["ၯ"]="ɣ", ["ၰ"]="x", } function export.tr(text, lang, sc) text = mw.ustring.gsub(text, ".", diacritics) text = mw.ustring.gsub(text, ".", consonants) -- making sure U and Ä is rendered correctly text = mw.ustring.gsub(text, "([ÏIÄ])([UY])", "%2%1") text = mw.ustring.gsub(text, "([ÏI])Ä", "Ä%1") -- vowels text = mw.ustring.gsub(text, "EAwV2", "ʊ̄") text = mw.ustring.gsub(text, "EAw4V", "ʊ̂") text = mw.ustring.gsub(text, "UÏŋV2", "ə̄ɴ") text = mw.ustring.gsub(text, "UÏŋV3", "ə́ɴ") text = mw.ustring.gsub(text, "UÏŋ4V", "ə̂ɴ") text = mw.ustring.gsub(text, "UQwV3", "ó") text = mw.ustring.gsub(text, "UÏwV2", "ō") text = mw.ustring.gsub(text, "AnV2", "āɴ") text = mw.ustring.gsub(text, "AnV3", "áɴ") text = mw.ustring.gsub(text, "An4V", "âɴ") text = mw.ustring.gsub(text, "AŋV2", "āiɴ") text = mw.ustring.gsub(text, "AŋV3", "áiɴ") text = mw.ustring.gsub(text, "Aŋ4V", "âiɴ") text = mw.ustring.gsub(text, "EAhV", "ʊ́") text = mw.ustring.gsub(text, "EAtV", "ó") text = mw.ustring.gsub(text, "EAwV", "ʊ̀") text = mw.ustring.gsub(text, "EnV2", "ī̱ɴ") text = mw.ustring.gsub(text, "EnV3", "í̱ɴ") text = mw.ustring.gsub(text, "En4V", "î̱ɴ") text = mw.ustring.gsub(text, "EwV2", "ī̱") text = mw.ustring.gsub(text, "Ew4V", "î̱") text = mw.ustring.gsub(text, "ÏŋV2", "ēiɴ") text = mw.ustring.gsub(text, "ÏŋV3", "éiɴ") text = mw.ustring.gsub(text, "Ïŋ4V", "êiɴ") text = mw.ustring.gsub(text, "QŋV2", "ōɴ") text = mw.ustring.gsub(text, "QŋV3", "óɴ") text = mw.ustring.gsub(text, "Qŋ4V", "ôɴ") text = mw.ustring.gsub(text, "UÄÏ2", "wē") text = mw.ustring.gsub(text, "UÄÏ3", "wé") text = mw.ustring.gsub(text, "UÄÏ4", "wê") text = mw.ustring.gsub(text, "UÏhV", "ɨ́") text = mw.ustring.gsub(text, "UÏŋV", "ə̀ɴ") text = mw.ustring.gsub(text, "UÏTV", "ɨ̀") text = mw.ustring.gsub(text, "UŋV2", "ə̄ɯɴ") text = mw.ustring.gsub(text, "UŋV3", "ə́ɯɴ") text = mw.ustring.gsub(text, "Uŋ4V", "ə̂ɯɴ") text = mw.ustring.gsub(text, "UÏtV", "ó") text = mw.ustring.gsub(text, "UÏwV", "ò") text = mw.ustring.gsub(text, "AnV", "àɴ") text = mw.ustring.gsub(text, "AŋV", "àiɴ") text = mw.ustring.gsub(text, "EhV", "í̱") text = mw.ustring.gsub(text, "EnV", "ì̱ɴ") text = mw.ustring.gsub(text, "EtV", "é") text = mw.ustring.gsub(text, "EwV", "ì̱") text = mw.ustring.gsub(text, "HVE", "í̱") text = mw.ustring.gsub(text, "ÏkV", "ái") text = mw.ustring.gsub(text, "ÏŋV", "èiɴ") text = mw.ustring.gsub(text, "j4V", "ɛ̂") text = mw.ustring.gsub(text, "([nŋ])V2", "āɴ") text = mw.ustring.gsub(text, "([nŋ])V3", "áɴ") text = mw.ustring.gsub(text, "([nŋ])4V", "âɴ") text = mw.ustring.gsub(text, "QŋV", "òɴ") text = mw.ustring.gsub(text, "UÄ2", "wī") text = mw.ustring.gsub(text, "UÄ3", "wí") text = mw.ustring.gsub(text, "UÄ4", "wî") text = mw.ustring.gsub(text, "UÄÏ", "wè") text = mw.ustring.gsub(text, "UÏ2", "ɨ̄") text = mw.ustring.gsub(text, "UÏ3", "ɨ̂") text = mw.ustring.gsub(text, "UŋV", "ə̀ɯɴ") text = mw.ustring.gsub(text, "UkV", "áʊ") text = mw.ustring.gsub(text, "UKV", "àʊ") text = mw.ustring.gsub(text, "UQ2", "ōʊɴ") text = mw.ustring.gsub(text, "UQ3", "óʊɴ") text = mw.ustring.gsub(text, "UQ4", "ôʊɴ") text = mw.ustring.gsub(text, "wV2", "ɔ̄") text = mw.ustring.gsub(text, "w4V", "ɔ̂") text = mw.ustring.gsub(text, "VU", "ə") text = mw.ustring.gsub(text, "AÄ", "ɛ̄") text = mw.ustring.gsub(text, "ÄA", "ɛ̄") text = mw.ustring.gsub(text, "AV", "ài") text = mw.ustring.gsub(text, "A2", "ā") text = mw.ustring.gsub(text, "A4", "â") text = mw.ustring.gsub(text, "E4", "ê") text = mw.ustring.gsub(text, "I2", "ī") text = mw.ustring.gsub(text, "I3", "í") text = mw.ustring.gsub(text, "I4", "î") text = mw.ustring.gsub(text, "jV", "ɛ̀") text = mw.ustring.gsub(text, "QE", "é") text = mw.ustring.gsub(text, "hV", "ɔ́") text = mw.ustring.gsub(text, "HV", "ɔ́") text = mw.ustring.gsub(text, "([nŋ])V", "àɴ") text = mw.ustring.gsub(text, "UÄ", "wì") text = mw.ustring.gsub(text, "wV", "ɔ̀") text = mw.ustring.gsub(text, "UQ", "òʊɴ") text = mw.ustring.gsub(text, "Y2", "ɯ̄") text = mw.ustring.gsub(text, "Y3", "ɯ́") text = mw.ustring.gsub(text, "Y4", "ɯ̂") text = mw.ustring.gsub(text, "A", "à") text = mw.ustring.gsub(text, "Ä", "ɛ́") text = mw.ustring.gsub(text, "E", "è") text = mw.ustring.gsub(text, "I", "ì") text = mw.ustring.gsub(text, "K", "k") text = mw.ustring.gsub(text, "T", "t") text = mw.ustring.gsub(text, "Y", "ɯ̀") text = mw.ustring.gsub(text, "([kgŋcɲtdnpbmjrlwθhʔɣx])3", "%1á") -- interpunction text = mw.ustring.gsub(text, "၊", ",") text = mw.ustring.gsub(text, "။", ".") -- spaces text = mw.ustring.gsub(text, "([aeiouàèìòùáéíóúāēīōūâêîôûɨʊɯɛɔɴə" .. mw.ustring.char(0x0300) .. mw.ustring.char(0x0301) .. mw.ustring.char(0x0302) .. mw.ustring.char(0x0304) .. mw.ustring.char(0x0331) .. "])([kgŋcɲtdnpbmjrlwθhʔɣx])", "%1 %2") return(text) end return export epqwokqlmg6uhasdjkuicyrj1zfrhjt Module:krc-translit 828 38127 176712 2026-04-26T12:07:19Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local digraphs = { ['гь']='h', ['Гь']='H', ['гъ']='ğ', ['Гъ']='Ğ', ['уь']='ü', ['Уь']='Ü', ['юь']='yü', ['Юь']='Yü', ['дж']='c', ['Дж']='C', ['къ']='q', ['Къ']='Q', ['нг']='ñ', ['Нг']='Ñ', ['оь']='ö', ['Оь']='Ö', ['ёь']='yö', ['Ёь']='Yö', ['нъ']='ñ', ['Нъ']='Ñ',} local single_letters = { ['а']='a', ['А']='A', ['б']='b', ['Б']='B', ['в']='v', ['В']='V', ['г']='g', ['Г']='G',...' 176712 Scribunto text/plain local export = {} local digraphs = { ['гь']='h', ['Гь']='H', ['гъ']='ğ', ['Гъ']='Ğ', ['уь']='ü', ['Уь']='Ü', ['юь']='yü', ['Юь']='Yü', ['дж']='c', ['Дж']='C', ['къ']='q', ['Къ']='Q', ['нг']='ñ', ['Нг']='Ñ', ['оь']='ö', ['Оь']='Ö', ['ёь']='yö', ['Ёь']='Yö', ['нъ']='ñ', ['Нъ']='Ñ',} local single_letters = { ['а']='a', ['А']='A', ['б']='b', ['Б']='B', ['в']='v', ['В']='V', ['г']='g', ['Г']='G', ['д']='d', ['Д']='D', ['е']='e', ['Е']='E', ['ё']='yo',['Ё']='Yo', ['ж']='j', ['Ж']='J', ['з']='z', ['З']='Z', ['и']='i', ['И']='İ', ['й']='y', ['Й']='Y', ['к']='k', ['К']='K', ['л']='l', ['Л']='L', ['м']='m', ['М']='M', ['н']='n', ['Н']='N', ['о']='o', ['О']='O', ['п']='p', ['П']='P', ['р']='r', ['Р']='R', ['с']='s', ['С']='S', ['т']='t', ['Т']='T', ['у']='u', ['У']='U', ['ф']='f', ['Ф']='F', ['х']='x', ['Х']='X', ['ц']='ts',['Ц']='Ts', ['ч']='ç', ['Ч']='Č', ['ш']='ş', ['Ш']='Ş', ['щ']='şç',['Щ']='Şç', ['ъ']='', ['Ъ']='', ['ы']='ı', ['Ы']='I', ['ь']='ʹ', ['Ь']='ʹ', ['э']='e', ['Э']='E', ['ю']='yu',['Ю']='Yu', ['я']='ya',['Я']='Ya', } function export.tr(text, lang, sc) for digraph, replacement in pairs(digraphs) do text = mw.ustring.gsub(text, digraph, replacement) end text = mw.ustring.gsub(text, "()([ЕеЮюЁё])", function (pos, iotated) -- modifier letter apostrophe or right single quotation mark local preceding = mw.ustring.sub(text, math.max(1, pos - 2), math.max(0, pos - 1)) local capital = iotated == "Е" or iotated == "Ю" local lower = mw.ustring.lower(iotated) local translit if preceding == "" or mw.ustring.match(preceding, "[АОӨӘУЫЕЯЁЮИЕаоөәуыэяёюиеъь%A][́̀]?$") then if capital then if lower == "ю" then return "Yu" elseif lower == "ё" then return "Yo" else return "Ye" end else if lower == "ю" then return "yu" elseif lower == "ё" then return "yo" else return "ye" end end else if capital then if lower == "ю" then return "Ü" elseif lower == "ё" then return "Ö" else return "E" end else if lower == "ю" then return "ü" elseif lower == "ё" then return "ö" else return "e" end end end return translit end) return (mw.ustring.gsub(text, '.', single_letters)) end return export 3qvpqz2h3jnm4g0z9jsv10i2l3vlfei Module:zza-sortkey 828 38128 176713 2026-04-26T12:08:35Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local a, b = u(0xF000), u(0xF001) local oneChar = { ["ç"] = "c" .. a, ["ê"] = "e" .. a, ["ğ"] = "g" .. a, ["ı"] = "i", ["î"] = "i" .. b, ["ş"] = "s" .. a, ["û"] = "u" .. a } function export.makeSortKey(text, lang, sc) text = mw.ustring.gsub(mw.ustring.lower(mw.ustring.gsub(text, "I", "ı")), "i", "i" .. a) -- ensure "i" comes after "ı" return mw.ustring.upper(mw.ustring.gsub(text, ".", oneChar)) end retu...' 176713 Scribunto text/plain local export = {} local u = mw.ustring.char local a, b = u(0xF000), u(0xF001) local oneChar = { ["ç"] = "c" .. a, ["ê"] = "e" .. a, ["ğ"] = "g" .. a, ["ı"] = "i", ["î"] = "i" .. b, ["ş"] = "s" .. a, ["û"] = "u" .. a } function export.makeSortKey(text, lang, sc) text = mw.ustring.gsub(mw.ustring.lower(mw.ustring.gsub(text, "I", "ı")), "i", "i" .. a) -- ensure "i" comes after "ı" return mw.ustring.upper(mw.ustring.gsub(text, ".", oneChar)) end return export rg3crnkpuqlougw2kga1a8a2se8dfp1 Module:yah-translit 828 38129 176714 2026-04-26T12:08:37Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tt = { ["а"] = "a", ["А"] = "A", ["ā"] = "ā", ["Ā"] = "Ā", ["б"] = "b", ["Б"] = "B", ["в"] = "v", ["В"] = "V", ["г"] = "g", ["Г"] = "G", ["ѓ"] = "ǵ", ["Ѓ"] = "Ǵ", ["ғ"] = "ɣ", ["Ғ"] = "Ɣ", ["д"] = "d", ["Д"] = "D", ["е"] = "e", ["Е"] = "E", ["ә"] = "ə", ["Ә"] = "Ə", ["ж"] = "ž", ["Ж"] = "Ž", ["з"] = "z", ["З"] = "Z", ["и"] = "i", ["И"] = "I", ["й"] = "y", ["Й"] = "Y", ["к"] = "k", ["К...' 176714 Scribunto text/plain local export = {} local tt = { ["а"] = "a", ["А"] = "A", ["ā"] = "ā", ["Ā"] = "Ā", ["б"] = "b", ["Б"] = "B", ["в"] = "v", ["В"] = "V", ["г"] = "g", ["Г"] = "G", ["ѓ"] = "ǵ", ["Ѓ"] = "Ǵ", ["ғ"] = "ɣ", ["Ғ"] = "Ɣ", ["д"] = "d", ["Д"] = "D", ["е"] = "e", ["Е"] = "E", ["ә"] = "ə", ["Ә"] = "Ə", ["ж"] = "ž", ["Ж"] = "Ž", ["з"] = "z", ["З"] = "Z", ["и"] = "i", ["И"] = "I", ["й"] = "y", ["Й"] = "Y", ["к"] = "k", ["К"] = "K", ["ќ"] = "ḱ", ["Ќ"] = "Ḱ", ["қ"] = "q", ["Қ"] = "Q", ["л"] = "l", ["Л"] = "L", ["м"] = "m", ["М"] = "M", ["н"] = "n", ["Н"] = "N", ["о"] = "o", ["О"] = "O", ["п"] = "p", ["П"] = "P", ["р"] = "r", ["Р"] = "R", ["с"] = "s", ["С"] = "S", ["т"] = "t", ["Т"] = "T", ["у"] = "u", ["У"] = "U", ["ф"] = "f", ["Ф"] = "F", ["х"] = "x", ["Х"] = "X", ["ҳ"] = "h", ["Ҳ"] = "H", ["ц"] = "c", ["Ц"] = "C", ["ч"] = "č", ["Ч"] = "Č", ["ҷ"] = "ǰ", ["Ҷ"] = "J̌", ["ш"] = "š", ["Ш"] = "Š", ["э"] = "e", ["Э"] = "E", } local mapping = { ["а̄"] = "ā", ["А̄"] = "Ā", ["в̌"] = "w", ["В̌"] = "W", ["д̌"] = "δ", ["Д̌"] = "Δ", ["ѓ"] = "ǵ", ["Ѓ"] = "Ǵ", ["й"] = "y", ["Й"] = "Y", ["ќ"] = "ḱ", ["Ќ"] = "Ḱ", ["т̌"] = "θ", ["Т̌"] = "Θ", } function export.tr(text, lang, sc) if sc == "Latn" then return nil end for char, translit in pairs(mapping) do text = mw.ustring.gsub(text, char, translit) end text = mw.ustring.gsub(text, '.', tt) return text end return export cgu08aouzz7yy0ac9bnhciy19qlz7p1 Module:yux-translit 828 38130 176715 2026-04-26T12:08:40Z Yivan000 4078 Nilikha ang pahina na may 'local u = mw.ustring.char local MACRON = u(0x0304) local DOTABOVE = u(0x0307) local DOTBELOW = u(0x0323) local str_gsub, ugsub = string.gsub, mw.ustring.gsub local unpack = unpack or table.unpack -- Lua 5.2 compatibility local UTF8char = '[\1-\127\194-\244][\128-\191]*' local export = {} local tab = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='W', ["в"]='w', ["Г"]='G', ["г"]='g', ["Ҕ"]='H', ["ҕ"]='h', ["Д"]='D', ["д"]='d', ["Ж"]...' 176715 Scribunto text/plain local u = mw.ustring.char local MACRON = u(0x0304) local DOTABOVE = u(0x0307) local DOTBELOW = u(0x0323) local str_gsub, ugsub = string.gsub, mw.ustring.gsub local unpack = unpack or table.unpack -- Lua 5.2 compatibility local UTF8char = '[\1-\127\194-\244][\128-\191]*' local export = {} local tab = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='W', ["в"]='w', ["Г"]='G', ["г"]='g', ["Ҕ"]='H', ["ҕ"]='h', ["Д"]='D', ["д"]='d', ["Ж"]='Ž', ["ж"]='ž', ["И"]='I', ["и"]='i', ["Й"]='J', ["й"]='j', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["Ҥ"]='Ŋ', ["ҥ"]='ŋ', ["О"]='O', ["о"]='o', ["Ө"]='Ø', ["ө"]='ø', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Ф"]='F', ["ф"]='f', ["Х"]='Q', ["х"]='q', ["Ч"]='Č', ["ч"]='č', ["Ш"]='Š', ["ш"]='š', ["Э"]='E', ["э"]='e', -- non-native letters ["Е"]='Je', ["е"]='je', ["Ё"]='Jo', ["ё"]='jo', ["З"]='Z', ["з"]='z', ["Ц"]='C', ["ц"]='c', ["Щ"]='Ś', ["щ"]='ś', ["Ы"]='Y', ["ы"]='y', ["Ю"]='Ju', ["ю"]='ju', ["Я"]='Ja', ["я"]='ja', ['Ъ']="ʺ", ['ъ']="ʺ", ["Ь"]='ʹ', ["ь"]='ʹ', ["С"]='S', ["с"]='s' } local other = { { 'Аа', 'Ā' }, { 'аа', 'ā' }, { 'Ээ', 'Ē' }, { 'ээ', 'ē' }, { 'Ии', 'Ī' }, { 'ии', 'ī' }, { 'Оо', 'Ō' }, { 'оо', 'ō' }, { 'Уу', 'Ū' }, { 'уу', 'ū' }, { 'Өө', 'Ø̄'}, { 'өө', 'ø̄'}, { 'Оу', 'Ow'}, { 'оу', 'ow'}, } function export.tr(text, lang, sc) for i, replacement in ipairs(other) do text = str_gsub(text, unpack(replacement)) end return (str_gsub(text, UTF8char, tab)) end return export jql2broz6dogabdahpihelq873hsn4f Module:ybi-translit 828 38131 176716 2026-04-26T12:08:42Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local gsub = mw.ustring.gsub local match = mw.ustring.match local conv = { -- consonants ['क'] = 'k', ['ख'] = 'kh', ['ग'] = 'g', ['घ'] = 'gh', ['ङ'] = 'ṅ', ['च'] = 'c', ['छ'] = 'ch', ['ज'] = 'j', ['झ'] = 'jh', ['ञ'] = 'ñ', ['ट'] = 'ṭ', ['ठ'] = 'ṭh', ['ड'] = 'ḍ', ['ढ'] = 'ḍh', ['ण'] = 'ṇ', ['त'] = 't', ['थ'] = 'th', ['द'] = 'd', ['ध'] = 'dh', ['न'] = 'n', ['प'] = 'p',...' 176716 Scribunto text/plain local export = {} local gsub = mw.ustring.gsub local match = mw.ustring.match local conv = { -- consonants ['क'] = 'k', ['ख'] = 'kh', ['ग'] = 'g', ['घ'] = 'gh', ['ङ'] = 'ṅ', ['च'] = 'c', ['छ'] = 'ch', ['ज'] = 'j', ['झ'] = 'jh', ['ञ'] = 'ñ', ['ट'] = 'ṭ', ['ठ'] = 'ṭh', ['ड'] = 'ḍ', ['ढ'] = 'ḍh', ['ण'] = 'ṇ', ['त'] = 't', ['थ'] = 'th', ['द'] = 'd', ['ध'] = 'dh', ['न'] = 'n', ['प'] = 'p', ['फ'] = 'ph', ['ब'] = 'b', ['भ'] = 'bh', ['म'] = 'm', ['य'] = 'y', ['र'] = 'r', ['ल'] = 'l', ['व'] = 'w', ['श'] = 'ś', ['ष'] = 'ṣ', ['स'] = 's', ['ह'] = 'h', ['क़'] = 'q', ['ख़'] = 'x', ['ग़'] = 'ġ', ['ऴ'] = 'ḻ', ['ळ'] = 'ḷ', ['ज़'] = 'z', ['श़'] = 'ž', ['झ़'] = 'ž', ['ड़'] = 'ṛ', ['ढ़'] = 'ṛh', ['फ़'] = 'f', ['थ़'] = 'θ', ['द़'] = 'ð', ['ऩ'] = 'ṉ', ['ऱ'] = 'ṟ', ['ॽ'] = "'", ['व़'] = 'V', ['ॹ'] = 'ž', -- vowel diacritics ['ि'] = 'i', ['ु'] = 'u', ['े'] = 'e', ['ो'] = 'o', ['ा'] = 'ā', ['ी'] = 'ī', ['ू'] = 'ū', ['ृ'] = 'r̥', ['ॄ'] = 'r̥̄', ['ॢ'] = 'l̥', ['ॣ'] = 'l̥̄', ['ै'] = 'ai', ['ौ'] = 'au', ['ॉ'] = 'ŏ', ['ॅ'] = 'ĕ', -- vowel signs ['अ'] = 'a', ['इ'] = 'i', ['उ'] = 'u', ['ए'] = 'e', ['ओ'] = 'o', ['आ'] = 'ā', ['ई'] = 'ī', ['ऊ'] = 'ū', ['ऋ'] = 'r̥', ['ॠ'] = 'r̥̄', ['ऌ'] = 'l̥', ['ॡ'] = 'l̥̄', ['ऐ'] = 'ai', ['औ'] = 'au', ['ऑ'] = 'ŏ', ['ॲ'] = 'ĕ', ['ऍ'] = 'ĕ', -- chandrabindu ['ँ'] = '̃', -- anusvara ['ं'] = 'ṃ', -- visarga (length) ['ः'] = ':', -- virama ['्'] = '', -- om ['ॐ'] = 'om̐', -- zero width joiner ['‍'] = '', -- zero width non joiner ['‌'] = '', -- numerals ['०'] = '0', ['१'] = '1', ['२'] = '2', ['३'] = '3', ['४'] = '4', ['५'] = '5', ['६'] = '6', ['७'] = '7', ['८'] = '8', ['९'] = '9', -- punctuation ['।'] = '.', -- danda ['॥'] = '.', -- double danda ['+'] = '', -- compound separator -- abbreviation sign ['॰'] = '.', } local nasal_assim = { ['क'] = 'ङ', ['ख'] = 'ङ', ['ग'] = 'ङ', ['घ'] = 'ङ', ['च'] = 'ञ', ['छ'] = 'ञ', ['ज'] = 'ञ', ['झ'] = 'ञ', ['ट'] = 'ण', ['ठ'] = 'ण', ['ड'] = 'ण', ['ढ'] = 'ण', ['प'] = 'म', ['फ'] = 'म', ['ब'] = 'म', ['भ'] = 'म', ['म'] = 'म', ['त'] = 'न', ['थ'] = 'न', ['द'] = 'न', ['ध'] = 'न', ['न'] = 'न', ['ष'] = 'न', ['श'] = 'ङ', ['स'] = 'न', ['य'] = 'म', ['र'] = 'म', ['ल'] = 'ँ', ['व'] = 'म', ['ह'] = 'ङ', } local perm_cl = { ['ज्न'] = true, ['ज्ञ'] = true, ['ट्र'] = true, ['ड्र'] = true, ['ट्स'] = true, ['ड्स'] = true, ['स्ड'] = true } local all_cons, special_cons = 'कखगघङचछजझञटठडढणतथदधनपफबभमयरलवसशषह', 'कखगघचछजझटठडढणतथदधनपफबभमयरलवशषसह' local vowel, vowel_sign = 'aिुृेोाीूैौॉॅॆॊॄॢॣ', 'अइउएओआईऊऋॠॡऌऐऔऑऍ' local function rev_string(text) local result, length = {}, mw.ustring.len(text) for i = length, 1, -1 do table.insert(result, mw.ustring.sub(text, i, i)) end return table.concat(result) end function export.tr(text, lang, sc) text = gsub(text, '([' .. all_cons .. ']़?)([' .. vowel .. '्]?)', function(c, d) return c .. (d == "" and 'a' or d) end) for word in mw.ustring.gmatch(text, "[ऀ-ॿa]+") do local orig_word = word word = rev_string(word) word = gsub(word, '^a(़?)([' .. all_cons .. '])(.)(.?)', function(opt, first, second, third) return (((match(first, '[' .. special_cons .. ']') and match(second, 'ं') or match(first, '[' .. special_cons .. ']') and match(second, '्') and not perm_cl[first .. second .. third]) or match(first .. second, 'य[aिुृेोाीूैौॉॅॆॊआईउऊइएऐओऔ]') or match(first .. second, 'ह[अaिुृेोाीूैौॉॅॆॊआईउऊइएऐओऔ]')) and 'a' or "") .. opt .. first .. second .. third end) word = gsub(word, '(.?)ं(.)', function(succ, prev) return succ .. (succ .. prev == "a" and "्म" or (succ == "" and match(prev, '[' .. vowel .. ']') and "̃" or nasal_assim[succ] or "ṃ")) .. prev end) local escaped_orig_word = gsub(orig_word, "%+", "") text = gsub(text, orig_word, rev_string(word)) text = gsub(text, 'ज्ञ', 'gy') text = gsub(text, 'े़', 'ê') text = gsub(text, 'ए़', 'ê') end text = gsub(text, '.़?', conv) text = gsub(text, 'a([iu])̃', 'a͠%1') text = gsub(text, "[<>]", "") text = gsub(text, "ॱ", "") text = gsub(text, 'e़', 'ê') text = gsub(text, 'rh̥', 'hr̥') text = mw.ustring.toNFC(text) return text end return export 2zhg9sww70dkia7pqpdfgk27mvh8tz7 Module:ysr-translit 828 38132 176717 2026-04-26T12:08:44Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local gsub = mw.ustring.gsub local RING = u(0x030A) local single_letter_replacements = { ["А"]='A', ["а"]='a', ["В"]='V', ["в"]='v', ["Е"]='E', ["е"]='e', ["Ё"]='Jo', ["ё"]='jo', ["Г"]='G', ["г"]='g', ["Ў"]='W',["ў"]='w', ["Ԝ"]='W',["ԝ"]='w', ["Ӷ"]='Ǧ',["ӷ"]='ǧ', ["И"]='I', ["и"]='i', ["Ӣ"]='Ī', ["ӣ"]='ī', ["Й"]='J', ["й"]='j', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["Ӄ"]='Q'...' 176717 Scribunto text/plain local export = {} local u = mw.ustring.char local gsub = mw.ustring.gsub local RING = u(0x030A) local single_letter_replacements = { ["А"]='A', ["а"]='a', ["В"]='V', ["в"]='v', ["Е"]='E', ["е"]='e', ["Ё"]='Jo', ["ё"]='jo', ["Г"]='G', ["г"]='g', ["Ў"]='W',["ў"]='w', ["Ԝ"]='W',["ԝ"]='w', ["Ӷ"]='Ǧ',["ӷ"]='ǧ', ["И"]='I', ["и"]='i', ["Ӣ"]='Ī', ["ӣ"]='ī', ["Й"]='J', ["й"]='j', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["Ӄ"]='Q', ["ӄ"]='q', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["Ӈ"]='Ŋ', ["ӈ"]='ŋ', ["О"]='O', ["о"]='o', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["С"]='S', ["с"]='s', ["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Х"]='H', ["х"]='h', ["Ч"]='Č', ["ч"]='č', ["Ӽ"]='X̌', ["ӽ"]='x̌',["Ы"]='Y', ["ы"]='y', ["Э"]='Ə', ["э"]='ə', ["Ю"]='Ju', ["ю"]='ju',["Я"]='Ja', ["я"]='ja', ['Ъ']='ʺ', ['ъ']='ʺ', -- NOT PRESENT IN THE ORIGINAL LATINISATION -- -- non-native letters ["Ж"]='Z', ["ж"]='z', ["З"]='Ž', ["з"]='ž', ["Ц"]='C', ["ц"]='c', ["Ш"]='Š', ["ш"]='š', ["Щ"]='Šč', ["щ"]='šč', ["Ь"]="’", ["ь"]="’",["Ф"]='F', ["ф"]='f', ["Б"]='B', ["б"]='ʙ',["Д"]='D', ["д"]='d', -- non-standard letters ["Ҕ"]='Γ', ["ҕ"]='γ', ["Ҥ"]='Ŋ', ["ҥ"]='ŋ', ["Ӄ"]='Q', ["ӄ"]='q', ["Ҕ"]='Ǧ', ["ҕ"]='ǧ', } function export.tr(text, lang, sc) text = gsub(text, ".", single_letter_replacements) text = gsub(text, "([ЙйЛлНн])ъ", "%1" .. RING) return text end return export fvuvo5mmpnxoy2jq1sf091w6xmhxdtv Module:ykg-translit 828 38133 176718 2026-04-26T12:08:46Z Yivan000 4078 Nilikha ang pahina na may 'local u = mw.ustring.char local MACRON = u(0x0304) local DOTABOVE = u(0x0307) local DOTBELOW = u(0x0323) local str_gsub, ugsub = string.gsub, mw.ustring.gsub local unpack = unpack or table.unpack -- Lua 5.2 compatibility local UTF8char = '[\1-\127\194-\244][\128-\191]*' local export = {} local tab = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='W', ["в"]='w', ["Г"]='G', ["г"]='g', ["Г̧̧"]='H', ["г̧"]='h', ["Ғ"]='H', ["ғ"]='h', ["...' 176718 Scribunto text/plain local u = mw.ustring.char local MACRON = u(0x0304) local DOTABOVE = u(0x0307) local DOTBELOW = u(0x0323) local str_gsub, ugsub = string.gsub, mw.ustring.gsub local unpack = unpack or table.unpack -- Lua 5.2 compatibility local UTF8char = '[\1-\127\194-\244][\128-\191]*' local export = {} local tab = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='W', ["в"]='w', ["Г"]='G', ["г"]='g', ["Г̧̧"]='H', ["г̧"]='h', ["Ғ"]='H', ["ғ"]='h', ["Ҕ"]='H', ["ҕ"]='h', --Atlasova, Wikipedia and Kurilov all differ in this ["Д"]='D', ["д"]='d', ["И"]='I', ["и"]='i', ["Й"]='J', ["й"]='j', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["Ӈ"]='Ŋ', ["ӈ"]='ŋ', ["Ң"]='Ŋ', ["ң"]='ŋ', ["Ҥ"]='Ŋ', ["ҥ"]='ŋ', --Same as h above ["О"]='O', ["о"]='o', ["Ө"]='Ö', ["ө"]='ö', ["Ӧ"]='Ö', ["ӧ"]='ö', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["С"]='S', ["с"]='s', ["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Ф"]='F', ["ф"]='f', ["Х"]='Q', ["х"]='q', ["Ч"]='Ț', ["ч"]='ț', ["Э"]='E', ["э"]='e', -- non-native letters ["Е"]='E', ["е"]='e', ["Ё"]='Jo', ["ё"]='jo', ["Ж"]='Z', ["ж"]='z', ["З"]='Z', ["з"]='z', ["Ц"]='C', ["ц"]='c', ["Ш"]='Ş', ["ш"]='ş', ["Щ"]='Ş', ["щ"]='ş', ["Ы"]='Y', ["ы"]='y', ["Ю"]='Ju', ["ю"]='ju', ["Я"]='Ja', ["я"]='ja', ['Ъ']='', ['ъ']='', ["Ь"]="", ["ь"]="" } local other = { { 'Дь', 'D̦' }, { 'дь', 'd̦' }, { 'Нь', 'Ņ' }, { 'нь', 'ņ' }, { 'Ль', 'Ļ' }, { 'ль', 'ļ' }, { 'Г̧', 'H' }, { 'г̧', 'h' }, } function export.tr(text, lang, sc) for i, replacement in ipairs(other) do text = str_gsub(text, unpack(replacement)) end -- Intrestingly the orthography(ies) don't use Cyrillic palatal vowels return (str_gsub(text, UTF8char, tab)) end return export pmninpgv483pebz2vih80i51oeyklgo Module:niv-sortkey 828 38134 176720 2026-04-26T12:15:24Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local a, b, c = u(0xF000), u(0xF001), u(0xF002) local oneChar = { ["ӷ"] = "г" .. a, ["ғ"] = "г" .. b, ["ӻ"] = "г" .. c, ["ё"] = "е" .. a, ["ӄ"] = "к" .. b, ["ӈ"] = "н" .. a, ["ў"] = "у" .. a, ["ӽ"] = "х" .. a, ["ӿ"] = "х" .. b } local twoChars = { ["кʼ"] = "к" .. a, ["ӄʼ"] = "к" .. c, ["пʼ"] = "п" .. a, ["р̌"] = "р" .. a, ["тʼ"] = "т" .. a } function export.makeSortKey(text, lang, s...' 176720 Scribunto text/plain local export = {} local u = mw.ustring.char local a, b, c = u(0xF000), u(0xF001), u(0xF002) local oneChar = { ["ӷ"] = "г" .. a, ["ғ"] = "г" .. b, ["ӻ"] = "г" .. c, ["ё"] = "е" .. a, ["ӄ"] = "к" .. b, ["ӈ"] = "н" .. a, ["ў"] = "у" .. a, ["ӽ"] = "х" .. a, ["ӿ"] = "х" .. b } local twoChars = { ["кʼ"] = "к" .. a, ["ӄʼ"] = "к" .. c, ["пʼ"] = "п" .. a, ["р̌"] = "р" .. a, ["тʼ"] = "т" .. a } function export.makeSortKey(text, lang, sc) text = mw.ustring.lower(text) for from, to in pairs(twoChars) do text = mw.ustring.gsub(text, from, to) end return mw.ustring.upper(mw.ustring.gsub(text, ".", oneChar)) end return export 2xc6yxeop64jcix3pmgoun0nsm2fwmu Module:nog-translit 828 38135 176721 2026-04-26T12:15:27Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tt = { ["а"]="a", ["б"]="b", ["в"]="v", ["г"]="g", ["д"]="d", ["е"]="e", ["ё"]="yo", ["ж"]="j", ["з"]="z", ["и"]="i", ["й"]="y", ["к"]="k", ["л"]="l", ["м"]="m", ["н"]="n", ["о"]="o", ["п"]="p", ["р"]="r", ["с"]="s", ["т"]="t", ["у"]="u", ["ф"]="f", ["х"]="x", ["ц"]="c", ["ч"]="ç", ["ш"]="ş", ["щ"]="şç", ["ъ"]="”", ["ы"]="ı", ["ь"]="’", ["э"]="é", ["ю"]="yu", ["я"]="ya", ["А"]="A", ["Б"]...' 176721 Scribunto text/plain local export = {} local tt = { ["а"]="a", ["б"]="b", ["в"]="v", ["г"]="g", ["д"]="d", ["е"]="e", ["ё"]="yo", ["ж"]="j", ["з"]="z", ["и"]="i", ["й"]="y", ["к"]="k", ["л"]="l", ["м"]="m", ["н"]="n", ["о"]="o", ["п"]="p", ["р"]="r", ["с"]="s", ["т"]="t", ["у"]="u", ["ф"]="f", ["х"]="x", ["ц"]="c", ["ч"]="ç", ["ш"]="ş", ["щ"]="şç", ["ъ"]="”", ["ы"]="ı", ["ь"]="’", ["э"]="é", ["ю"]="yu", ["я"]="ya", ["А"]="A", ["Б"]="B", ["В"]="V", ["Г"]="G", ["Д"]="D", ["Е"]="E", ["Ё"]="Yo", ["Ж"]="J", ["З"]="Z", ["И"]="I", ["Й"]="Y", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["О"]="O", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ф"]="F", ["Х"]="X", ["Ц"]="C", ["Ч"]="Ç", ["Ш"]="Ş", ["Щ"]="Şç", ["Ъ"]="”", ["Ы"]="I", ["Ь"]="’", ["Э"]="É", ["Ю"]="Yu", ["Я"]="Ya"}; local digraphs = { ['аь'] = 'ä', ['Аь'] = 'Ä', ['нъ'] = 'ñ', ['Нъ'] = 'Ñ', ['оь'] = 'ö', ['Оь'] = 'Ö', ['уь'] = 'ü', ['Уь'] = 'Ü', } function export.tr(text, lang, sc) text = mw.ustring.gsub( text, "([АОУЫЕЯЁЮИЕаоуыэяёюиеь%A][́̀]?)([Ее])", function(a,e) return a .. (e == 'е' and 'ye' or 'Ye') end ) :gsub("^Е",'Ye') :gsub("^е",'ye'); for digraph, translit in pairs(digraphs) do text = mw.ustring.gsub(text, digraph, translit) end text = mw.ustring.gsub(text, '.', tt) return text end return export 5nyckhwqifphb2el9rrtqpa9vf4juxw Module:nsk-translit 828 38136 176722 2026-04-26T12:15:29Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local replacements = { ["c"] = "ch", ["ī"] = "ii", ["ō"] = "oo", ["ā"] = "aa", ["o"] = "u", ["š"] = "sh", ["ð"] = "th", ["(.)ː"] = "%1%1", "[ᔌᔍᔎᔏ]", { ["ᔌ"]="spwaa", ["ᔍ"]="stwaa", ["ᔎ"]="skwaa", ["ᔏ"]="schwaa", } } function export.tr(text, lang, sc) text = require("Module:Cans-translit").tr(text, lang, sc) for regex, replacement in pairs(replacements) do text = mw.ustring.gsub(text, regex, replace...' 176722 Scribunto text/plain local export = {} local replacements = { ["c"] = "ch", ["ī"] = "ii", ["ō"] = "oo", ["ā"] = "aa", ["o"] = "u", ["š"] = "sh", ["ð"] = "th", ["(.)ː"] = "%1%1", "[ᔌᔍᔎᔏ]", { ["ᔌ"]="spwaa", ["ᔍ"]="stwaa", ["ᔎ"]="skwaa", ["ᔏ"]="schwaa", } } function export.tr(text, lang, sc) text = require("Module:Cans-translit").tr(text, lang, sc) for regex, replacement in pairs(replacements) do text = mw.ustring.gsub(text, regex, replacement) end return text end return export f69pkp63l5emr9uvmi75lmpppfu0h5y Module:nio-translit 828 38137 176723 2026-04-26T12:16:37Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tab = { ["А"]="A", ["Б"]="B", ["В"]="V", ["Г"]="G", ["Д"]="D", ["Е"]="Je", ["Ё"]="Jo", ["Ж"]="Ž", ["З"]="Z", ["И"]="I", ["Й"]="J", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["Ӈ"]="Ŋ", ["О"]="O", ["Ө"]="Ö", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ү"]="Ü", ["Ф"]="F", ["Х"]="X", ["Ц"]="C", ["Ч"]="Č", ["Ш"]="Š", ["Щ"]="Šč",["Ъ"]="", ["Ы"]="Ɨ", ["Ь"]="ʹ", ["Э"]="E", ["Ә...' 176723 Scribunto text/plain local export = {} local tab = { ["А"]="A", ["Б"]="B", ["В"]="V", ["Г"]="G", ["Д"]="D", ["Е"]="Je", ["Ё"]="Jo", ["Ж"]="Ž", ["З"]="Z", ["И"]="I", ["Й"]="J", ["К"]="K", ["Л"]="L", ["М"]="M", ["Н"]="N", ["Ӈ"]="Ŋ", ["О"]="O", ["Ө"]="Ö", ["П"]="P", ["Р"]="R", ["С"]="S", ["Т"]="T", ["У"]="U", ["Ү"]="Ü", ["Ф"]="F", ["Х"]="X", ["Ц"]="C", ["Ч"]="Č", ["Ш"]="Š", ["Щ"]="Šč",["Ъ"]="", ["Ы"]="Ɨ", ["Ь"]="ʹ", ["Э"]="E", ["Ә"]="Ə", ["Ю"]="Ju", ["Я"]="Ja", ["І"]="I", ['а']='a', ['б']='b', ['в']='v', ['г']='g', ['д']='d', ['е']='je', ['ё']='jo', ['ж']='ž', ['з']='z', ['и']='i', ['й']='j', ['к']='k', ['л']='l', ['м']='m', ['н']='n', ["ӈ"]="ŋ", ['о']='o', ['ө']='ö', ['п']='p', ['р']='r', ['с']='s', ['т']='t', ['у']='u', ['ү']='ü', ['ф']='f', ['х']='x', ['ц']='c', ['ч']='č', ['ш']='š', ['щ']='šč',['ъ']='', ['ы']='ɨ', ['ь']='ʹ', ['э']='e', ['ә']='ə', ['ю']='ju', ['я']='ja', ["ˮ"]="ʔ", ["і"]="i", } function export.tr(text, lang, sc) text = mw.ustring.gsub(text, "З̌", "Ð") text = mw.ustring.gsub(text, "з̌", "ð") text = mw.ustring.gsub(text, "([ТДНтдн])И", "%1Ji") text = mw.ustring.gsub(text, "([ТДНтдн])и", "%1ji") return (mw.ustring.gsub(text, '.' ,tab)) end return export 4l5y4ql1y62rhyq6p5tps4betgnmdvs Module:omk-translit 828 38138 176724 2026-04-26T12:16:43Z Yivan000 4078 Nilikha ang pahina na may 'local u = require("Module:string/char") local ACUTE = u(0x0301) local MACRON = u(0x0304) local DOTABOVE = u(0x0307) local DIAER = u(0x0308) local CARON = u(0x030C) local str_gsub, ugsub = string.gsub, mw.ustring.gsub local unpack = unpack or table.unpack -- Lua 5.2 compatibility local UTF8char = '[\1-\127\194-\244][\128-\191]*' local export = {} local tab = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='W', ["в"]='w', ["Г"]='G',...' 176724 Scribunto text/plain local u = require("Module:string/char") local ACUTE = u(0x0301) local MACRON = u(0x0304) local DOTABOVE = u(0x0307) local DIAER = u(0x0308) local CARON = u(0x030C) local str_gsub, ugsub = string.gsub, mw.ustring.gsub local unpack = unpack or table.unpack -- Lua 5.2 compatibility local UTF8char = '[\1-\127\194-\244][\128-\191]*' local export = {} local tab = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='W', ["в"]='w', ["Г"]='G', ["г"]='g', ["Д"]='D', ["д"]='d', ["Е"]='Je', ["е"]='je', ["Ё"]='Jo', ["ё"]='jo', ["Ж"]='Ž', ["ж"]='ž', ["З"]='Z', ["з"]='z', ["І"]='Ï', ["і"]='ï', ["И"]='I', ["и"]='i', ["Й"]='J', ["й"]='j', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["О"]='O', ["о"]='o', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["С"]='S', ["с"]='s', ["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Ф"]='F', ["ф"]='f', ["Х"]='Q', ["х"]='q', ["Ц"]='C', ["ц"]='c', ["Ч"]='Č', ["ч"]='č', ["Ш"]='Š', ["ш"]='š', ["Щ"]='Ś', ["щ"]='ś', ["Ъ"]='ʺ', ["ъ"]='ʺ', ["Ы"]='Y', ["ы"]='y', ["Ь"]='ʹ', ["ь"]='ʹ', ["Э"]='E', ["э"]='e', ["Ю"]='Ju', ["ю"]='ju', ["Я"]='ja', ["я"]='ja', ["Ѣ"]='Ě', ["ѣ"]='ě', } local other = { { 'Аа', 'Ā' }, { 'аа', 'ā' }, --long "а" { 'Ее', 'Jē'}, { 'ее', 'jē'}, --long "е" { 'Ии', 'Ī' }, { 'ии', 'ī' }, --long "и" { 'Оо', 'Ō' }, { 'оо', 'ō' }, --long "о" { 'Уу', 'Ū' }, { 'уу', 'ū' }, --long "у" { 'Ээ', 'Ē' }, { 'ээ', 'ē' }, --long "э" { 'Ъ%-', '%-' }, { 'ъ%-', '%-' }, --final "ъ" { 'Ъ ', ' ' }, { 'ъ ', ' ' }, --final "ъ" { 'Ъ$', '' }, { 'ъ$', '' }, --final "ъ" { '([БВГДЖЗЙКЛМНПРСТФХЦЧШЩбвгджзйклмнпрстфхцчшщ])Е', '%1E'}, --post-consonantal E { '([БВГДЖЗЙКЛМНПРСТФХЦЧШЩбвгджзйклмнпрстфхцчшщ])е', '%1e'}, --post-consonantal e { '([БВГДЖЗЙКЛМНПРСТФХЦЧШЩбвгджзйклмнпрстфхцчшщ])Ее', '%1Ē'}, --post-consonantal long E { '([БВГДЖЗЙКЛМНПРСТФХЦЧШЩбвгджзйклмнпрстфхцчшщ])ее', '%1ē'}, --post-consonantal long e } function export.tr(text, lang, sc) for i, replacement in ipairs(other) do text = str_gsub(text, unpack(replacement)) end return (str_gsub(text, UTF8char, tab)) end return export afte3utj73whx92hgw9uxq5b2v95uip Module:oaa-translit 828 38139 176725 2026-04-26T12:16:45Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local single_letter_replacements = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Е"]='E', ["е"]='e', ["Ё"]='Jo', ["ё"]='jo', ["Г"]='G', ["г"]='g', ["Д"]='D', ["д"]='d', ["Ӡ"]='Ʒ', ["ӡ"]='ʒ', ["И"]='I', ["и"]='i', ["Ӣ"]='Ī', ["ӣ"]='ī', ["Й"]='J', ["й"]='j', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["Ӈ"]='Ŋ', ["ӈ"]='ŋ', [...' 176725 Scribunto text/plain local export = {} local single_letter_replacements = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Е"]='E', ["е"]='e', ["Ё"]='Jo', ["ё"]='jo', ["Г"]='G', ["г"]='g', ["Д"]='D', ["д"]='d', ["Ӡ"]='Ʒ', ["ӡ"]='ʒ', ["И"]='I', ["и"]='i', ["Ӣ"]='Ī', ["ӣ"]='ī', ["Й"]='J', ["й"]='j', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["Ӈ"]='Ŋ', ["ӈ"]='ŋ', ["Ԩ"]='Ń', ["ԩ"]='ń', ["О"]='O', ["о"]='o', ["Ө"]='Ö', ["ө"]='ö', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["С"]='S', ["с"]='s', ["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Ӯ"]='Ū', ["ӯ"]='ū', ["Х"]='H', ["х"]='h', ["Ч"]='Č', ["ч"]='č', ["Ы"]='Y', ["ы"]='y', ["Э"]='Ə', ["э"]='ə', ["Ю"]='Ju', ["ю"]='ju', ["Я"]='Ja', ["я"]='ja', ['Ъ']='ʺ', ['ъ']='ʺ', -- NOT PRESENT IN THE ORIGINAL LATINISATION -- -- non-native letters ["Ж"]='Ž', ["ж"]='ž', ["З"]='Z', ["з"]='z', ["Ц"]='C', ["ц"]='c', ["Ш"]='Š', ["ш"]='š', ["Щ"]='Šč', ["щ"]='šč', ["Ь"]="’", ["ь"]="’", ["Ф"]='F', ["ф"]='f', -- non-standard letters ["Ҥ"]='Ŋ', ["ҥ"]='ŋ', } function export.tr(text, lang, sc) return (mw.ustring.gsub(text, ".", single_letter_replacements)) end return export 1jqwuc9q0huyquwiz7ss3pldy2ifcx0 Module:pgl-translit 828 38140 176726 2026-04-26T12:16:47Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local chars = { [" "] = " ", ["·"] = ".", ["ᚁ"] = "b", -- beith ["ᚂ"] = "l", -- luis ["ᚃ"] = "v", -- fearn ["ᚄ"] = "s", -- saille ["ᚅ"] = "n", -- nuin ["ᚆ"] = "h", -- uath ["ᚇ"] = "d", -- dair ["ᚈ"] = "t", -- tinne ["ᚉ"] = "c", -- coll ["ᚊ"] = "q", -- ceirt ["ᚋ"] = "m", -- muin ["ᚌ"] = "g", -- gort ["ᚍ"] = "ŋ", -- ngétal ["ᚎ"] = "z", -- straif ["ᚏ"] = "r", -- ruis ["ᚐ"] = "a", -- a...' 176726 Scribunto text/plain local export = {} local chars = { [" "] = " ", ["·"] = ".", ["ᚁ"] = "b", -- beith ["ᚂ"] = "l", -- luis ["ᚃ"] = "v", -- fearn ["ᚄ"] = "s", -- saille ["ᚅ"] = "n", -- nuin ["ᚆ"] = "h", -- uath ["ᚇ"] = "d", -- dair ["ᚈ"] = "t", -- tinne ["ᚉ"] = "c", -- coll ["ᚊ"] = "q", -- ceirt ["ᚋ"] = "m", -- muin ["ᚌ"] = "g", -- gort ["ᚍ"] = "ŋ", -- ngétal ["ᚎ"] = "z", -- straif ["ᚏ"] = "r", -- ruis ["ᚐ"] = "a", -- ailm ["ᚑ"] = "o", -- onn ["ᚒ"] = "u", -- úr ["ᚓ"] = "e", -- edad ["ᚔ"] = "i", -- idad ["ᚕ"] = "k", -- Or "ea" ["ᚖ"] = "oi", ["ᚗ"] = "ui", ["ᚘ"] = "p", -- Or "ia" ["ᚙ"] = "x", -- Or "ae" ["ᚚ"] = "p", -- peithboc "soft B" ["᚛"] = "", ["᚜"] = "", } function export.tr(text, lang, sc) return (mw.ustring.gsub(text, '.', chars)) end return export i5qntt8z3zxopo3d16zj2y4p5ovjbyd Module:rue-sortkey 828 38141 176727 2026-04-26T12:16:49Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local u = mw.ustring.char local a, b, c = u(0xF000), u(0xF001), u(0xF002) local oneChar = { ["ґ"] = "г" .. a, ["є"] = "е" .. a, ["ё"] = "е" .. b, ["і"] = "и", ["ї"] = "и" .. a, ["ы"] = "и" .. c, ["ѣ"] = "щ" .. a, ["ь"] = "я" .. a, ["ъ"] = "я" .. b } function export.makeSortKey(text, lang, sc) text = mw.ustring.gsub(mw.ustring.lower(text), "и", "и" .. b) -- ensure "и" comes after "і" and "ї" return mw.ustring.upper(m...' 176727 Scribunto text/plain local export = {} local u = mw.ustring.char local a, b, c = u(0xF000), u(0xF001), u(0xF002) local oneChar = { ["ґ"] = "г" .. a, ["є"] = "е" .. a, ["ё"] = "е" .. b, ["і"] = "и", ["ї"] = "и" .. a, ["ы"] = "и" .. c, ["ѣ"] = "щ" .. a, ["ь"] = "я" .. a, ["ъ"] = "я" .. b } function export.makeSortKey(text, lang, sc) text = mw.ustring.gsub(mw.ustring.lower(text), "и", "и" .. b) -- ensure "и" comes after "і" and "ї" return mw.ustring.upper(mw.ustring.gsub(text, ".", oneChar)) end return export hhdpy9mdvczt24hb06kvjqstxe2btz8 Module:rsk-translit 828 38142 176728 2026-04-26T12:16:51Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tt = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Г"]='H', ["г"]='h', ["Ґ"]='G', ["ґ"]='g', ["Д"]='D', ["д"]='d', ["Е"]='E', ["е"]='e', ["Є"]='Je', ["є"]='je', ["Ж"]='Ž', ["ж"]='ž', ["З"]='Z', ["з"]='z', ["И"]='I', ["и"]='i', ["Ї"]='Ji', ["ї"]='ji', ["Й"]='J', ["й"]='j', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["О"]='O',...' 176728 Scribunto text/plain local export = {} local tt = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Г"]='H', ["г"]='h', ["Ґ"]='G', ["ґ"]='g', ["Д"]='D', ["д"]='d', ["Е"]='E', ["е"]='e', ["Є"]='Je', ["є"]='je', ["Ж"]='Ž', ["ж"]='ž', ["З"]='Z', ["з"]='z', ["И"]='I', ["и"]='i', ["Ї"]='Ji', ["ї"]='ji', ["Й"]='J', ["й"]='j', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["О"]='O', ["о"]='o', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["С"]='S', ["с"]='s', ["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Ф"]='F', ["ф"]='f', ["Х"]='X', ["х"]='x', ["Ц"]='C', ["ц"]='c', ["Ч"]='Č', ["ч"]='č', ["Ш"]='Š', ["ш"]='š', ["Щ"]='Šč', ["щ"]='šč', ["Ь"]='ʹ', ["ь"]='ʹ', ["Ю"]='Ju', ["ю"]='ju', ["Я"]='Ja', ["я"]='ja', ["Њ"]='Nj', ["њ"]='nj', ["Љ"]='Lj', ["љ"]='lj', } function export.tr(text, lang, sc) return (mw.ustring.gsub(text, '.', tt)) end return export i1z56tbtlkoqtkvaon8fjmlmtfucedt Module:rue-translit 828 38143 176729 2026-04-26T12:16:53Z Yivan000 4078 Nilikha ang pahina na may 'local export = {} local tt = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Г"]='H', ["г"]='h', ["Ґ"]='G', ["ґ"]='g', ["Д"]='D', ["д"]='d', ["Е"]='E', ["е"]='e', ["Є"]='Je', ["є"]='je', ["Ё"]='Jo', ["ё"]='jo', ["Ж"]='Ž', ["ж"]='ž', ["З"]='Z', ["з"]='z', ["І"]='I', ["і"]='i', ["Ї"]='Ji', ["ї"]='ji', ["И"]='Y', ["и"]='y', ["Ы"]='Ŷ', ["ы"]='ŷ', ["Й"]='J', ["й"]='j', ["К"]='K', ["к"]='k', ["Л"]=...' 176729 Scribunto text/plain local export = {} local tt = { ["А"]='A', ["а"]='a', ["Б"]='B', ["б"]='b', ["В"]='V', ["в"]='v', ["Г"]='H', ["г"]='h', ["Ґ"]='G', ["ґ"]='g', ["Д"]='D', ["д"]='d', ["Е"]='E', ["е"]='e', ["Є"]='Je', ["є"]='je', ["Ё"]='Jo', ["ё"]='jo', ["Ж"]='Ž', ["ж"]='ž', ["З"]='Z', ["з"]='z', ["І"]='I', ["і"]='i', ["Ї"]='Ji', ["ї"]='ji', ["И"]='Y', ["и"]='y', ["Ы"]='Ŷ', ["ы"]='ŷ', ["Й"]='J', ["й"]='j', ["К"]='K', ["к"]='k', ["Л"]='L', ["л"]='l', ["М"]='M', ["м"]='m', ["Н"]='N', ["н"]='n', ["О"]='O', ["о"]='o', ["П"]='P', ["п"]='p', ["Р"]='R', ["р"]='r', ["С"]='S', ["с"]='s', ["Т"]='T', ["т"]='t', ["У"]='U', ["у"]='u', ["Ӱ"]='Ü', ["ӱ"]='ü', ["Ф"]='F', ["ф"]='f', ["Х"]='X', ["х"]='x', ["Ц"]='C', ["ц"]='c', ["Ч"]='Č', ["ч"]='č', ["Ш"]='Š', ["ш"]='š', ["Щ"]='Šč', ["щ"]='šč', ["Ь"]='ʹ', ["ь"]='ʹ', ["Ю"]='Ju', ["ю"]='ju', ["Я"]='Ja', ["я"]='ja', ["Ъ"]='ʺ', ["ъ"]='ʺ', -- neutral apostrophe, right single quotation mark, modifier letter apostrophe → modifier letter double prime ["’"]='ʺ', ["ʼ"]= 'ʺ', -- obsolete letters ["О̂"]='Ô', ["о̂"]='ô', ["Э"]='È', ["э"]='è', ["Ѣ"]='Ji', ["ѣ"]='ji', } function export.tr(text, lang, sc) text = mw.ustring.gsub(text, "'+", { ["'"] = 'ʺ' }) return (mw.ustring.gsub(text, '.', tt)) end return export e2ss2txlsc4v4s1j7wxwczuxxwzt4jr Module:rut-translit 828 38144 176730 2026-04-26T12:16:55Z Yivan000 4078 Nilikha ang pahina na may 'local gsub = mw.ustring.gsub local u = require("Module:string utilities").char local export = {} local tt = { ["б"]="b", ["п"]="p", ["ф"]="f", ["д"]="d", ["т"]="t", ["ц"]="c", ["з"]="z", ["с"]="s", ["ч"]="č", ["ж"]="ž", ["ш"]="š", ["г"]="g", ["к"]="k", ["х"]="ꭓ", ["ъ"]="ʔ", ["м"]="m", ["н"]="n", ["р"]="r", ["л"]="l", ["в"]="v", ["й"]="j", ["ю"]="ju", ["я"]="ja", ["ё"]="jo", ["и"]="i", ["е"]="je", ["э"]="e", ["а"]="a", ["ы...' 176730 Scribunto text/plain local gsub = mw.ustring.gsub local u = require("Module:string utilities").char local export = {} local tt = { ["б"]="b", ["п"]="p", ["ф"]="f", ["д"]="d", ["т"]="t", ["ц"]="c", ["з"]="z", ["с"]="s", ["ч"]="č", ["ж"]="ž", ["ш"]="š", ["г"]="g", ["к"]="k", ["х"]="ꭓ", ["ъ"]="ʔ", ["м"]="m", ["н"]="n", ["р"]="r", ["л"]="l", ["в"]="v", ["й"]="j", ["ю"]="ju", ["я"]="ja", ["ё"]="jo", ["и"]="i", ["е"]="je", ["э"]="e", ["а"]="a", ["ы"]="ɨ", ["о"]="o", ["у"]="u", ["Б"]="B", ["П"]="P", ["Ф"]="F", ["Д"]="D", ["Т"]="T", ["Ц"]="C", ["З"]="Z", ["С"]="S", ["Ч"]="Č", ["Ж"]="Ž", ["Ш"]="Š", ["Г"]="G", ["К"]="K", ["Х"]="Ꭓ", ["Ъ"]="ʔ", ["М"]="M", ["Н"]="N", ["Р"]="R", ["Л"]="L", ["В"]="V", ["Й"]="J", ["Ю"]="Ju", ["Я"]="Ja", ["Ё"]="Jo", ["И"]="I", ["Е"]="Je", ["Э"]="E", ["А"]="A", ["Ы"]="Ɨ", ["О"]="O", ["U"]="U", } local roundings = { '([тцчкТЦЧК]ӏ)в', '([кхгКХГ]ъ)в', '([цсшчгкхЦСШЧГКХ])в', '([дД]ж)в', '([хХ]ь)в', } local digraphs = { ['пӏ'] = 'ṗ', ['Пӏ'] = 'Ṗ', ['тӏ'] = 'ṭ', ['Тӏ'] = 'Ṭ', ['дз'] = 'ʒ', ['Дз'] = 'Ʒ', ['цӏ'] = 'c̣', ['Цӏ'] = 'C̣', ['дж'] = 'ǯ', ['Дж'] = 'Ǯ', ['чӏ'] = 'č̣', ['Чӏ'] = 'Č̣', ['кӏ'] = 'ḳ', ['Кӏ'] = 'Ḳ', ['гӏ'] = 'ɣ', ['Гӏ'] = 'Ɣ', ['хь'] = 'x', ['Хь'] = 'X', ['хӏ'] = 'ħ', ['Хӏ'] = 'Ħ', ['къ'] = 'q:', ['Къ'] = 'Q:', ['хъ'] = 'q', ['Хъ'] = 'Q', ['кь'] = 'q̇', ['Кь'] = 'Q̇', ['гъ'] = 'ʁ', ['Гъ'] = 'ʁ', ['гь'] = 'h', ['Гь'] = 'H', ['аь'] = 'ä', ['Аь'] = 'Ä', ['уь'] = 'ü', ['Уь'] = 'Ü', ['([ауыАУЫ])ӏ'] = '%1ˤ', } function export.tr(text, lang, sc) if sc ~= "Cyrl" then return nil end -- Convert capital to lowercase palochka. Lowercase is found in tables -- above. text = gsub(text, u(0x4C0), u(0x4CF)) -- Non-initial е is not je. text = gsub(text, "([Ё-ӏ])е", "%1e") for _, rounding in ipairs(roundings) do text = gsub(text, rounding, "%1ʷ") end for digraph, translit in pairs(digraphs) do text = gsub(text, digraph, translit) end text = gsub(text, "[Ё-ӏ]", tt) return text end return export 5p650u7pxvsg7ms0wy7p63ty5btpmao 井波 0 38145 176733 2026-04-26T14:20:23Z Hiyuune 5522 Nilikha ang pahina na may '=={{=ja=}}== {{ja-kanjitab|い|なみ}} ===Pangngalang pantangi=== {{ja-pos|proper|いなみ}} # {{surname|ja|sort=いなみ}}' 176733 wikitext text/x-wiki =={{=ja=}}== {{ja-kanjitab|い|なみ}} ===Pangngalang pantangi=== {{ja-pos|proper|いなみ}} # {{surname|ja|sort=いなみ}} 6p0bhzs0lo7i6bm438socx5wa2xvkb3 Kategorya:Hapones na salitang binaybay ng 波 na binabasa nang なみ 14 38146 176734 2026-04-26T14:21:04Z Hiyuune 5522 Nilikha ang pahina na may '{{auto cat|k}}' 176734 wikitext text/x-wiki {{auto cat|k}} nh04xahpn83v73hy3e8gd7rf8lq5xcp atmosferen 0 38147 176736 2026-04-26T14:26:14Z Hiyuune 5522 Nilikha ang pahina na may '=={{=nl=}}== ===Pagbigkas=== * {{audio|nl|Nl-atmosferen.ogg}} * {{rhymes|nl|eːrən|s=4}} ===Pangngalan=== {{head|nl|noun form}} # {{plural of|nl|atmosfeer}}' 176736 wikitext text/x-wiki =={{=nl=}}== ===Pagbigkas=== * {{audio|nl|Nl-atmosferen.ogg}} * {{rhymes|nl|eːrən|s=4}} ===Pangngalan=== {{head|nl|noun form}} # {{plural of|nl|atmosfeer}} mcobylliyg3vs3zsg9vnbkhx9yqu2ts Kategorya:Nerlandes na anyong pangngalan 14 38148 176737 2026-04-26T14:27:14Z Hiyuune 5522 Nilikha ang pahina na may '{{auto cat}}' 176737 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Nerlandes na salitang may pagbigkas na awdiyo 14 38149 176742 2026-04-27T00:03:08Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 176742 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Nerlandes na entradang pinapanatili 14 38150 176743 2026-04-27T00:03:29Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 176743 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Tugma:Nerlandes/eːrən/4 pantig 14 38151 176744 2026-04-27T00:04:17Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 176744 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Tugma:Nerlandes/eːrən 14 38152 176745 2026-04-27T00:04:33Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 176745 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx Kategorya:Tugma:Nerlandes 14 38153 176746 2026-04-27T00:04:51Z Yivan000 4078 Nilikha ang pahina na may '{{auto cat}}' 176746 wikitext text/x-wiki {{auto cat}} eomzlm5v4j7ond1phrju7cnue91g5qx aamaaxs 0 38154 176748 2026-04-27T02:53:08Z Hiyuune 5522 Nilikha ang pahina na may '==Aleut== ===Pangngalan=== {{head|ale|noun}} # [[dugo]]' 176748 wikitext text/x-wiki ==Aleut== ===Pangngalan=== {{head|ale|noun}} # [[dugo]] ntvitd6r1vh19shcjtch9etu6j6p4ey bird-of-paradise 0 38155 176749 2026-04-27T09:08:08Z Hiyuune 5522 Nilikha ang pahina na may '{{also|bird of paradise}} =={{=en=}}== ===Pangngalan=== {{en-noun|birds-of-paradise}} # {{alternative form of|en|bird of paradise}}.' 176749 wikitext text/x-wiki {{also|bird of paradise}} =={{=en=}}== ===Pangngalan=== {{en-noun|birds-of-paradise}} # {{alternative form of|en|bird of paradise}}. k1aewiozfgirg933l73uqh0wczsd3a4 bird of paradise 0 38156 176750 2026-04-27T09:16:07Z Hiyuune 5522 Nilikha ang pahina na may '{{also|bird-of-paradise}} =={{=en=}}== ===Panghaliling anyo=== * {{alter|en|bird-of-paradise}} ===Pagbigkas=== * {{audio|en|LL-Q1860 (eng)-Flame, not lame-bird of paradise.wav|a=US}} ===Pangngalan=== {{en-noun|birds of paradise}} # [[ibon ng paraiso]]' 176750 wikitext text/x-wiki {{also|bird-of-paradise}} =={{=en=}}== ===Panghaliling anyo=== * {{alter|en|bird-of-paradise}} ===Pagbigkas=== * {{audio|en|LL-Q1860 (eng)-Flame, not lame-bird of paradise.wav|a=US}} ===Pangngalan=== {{en-noun|birds of paradise}} # [[ibon ng paraiso]] iy05mgfu0llcs0jlxmklrc4j39gmsd8 auteursrechten 0 38157 176751 2026-04-27T09:17:43Z Hiyuune 5522 Nilikha ang pahina na may '=={{=nl=}}== ===Pagbigkas=== * {{audio|nl|Nl-auteursrechten.ogg}} ===Pangngalan=== {{head|nl|noun form}} # {{plural of|nl|auteursrecht}}' 176751 wikitext text/x-wiki =={{=nl=}}== ===Pagbigkas=== * {{audio|nl|Nl-auteursrechten.ogg}} ===Pangngalan=== {{head|nl|noun form}} # {{plural of|nl|auteursrecht}} o8ozmni1ij1hjk6uqqjitn3zurlez6r bandeloosheden 0 38158 176753 2026-04-27T09:20:38Z Hiyuune 5522 Nilikha ang pahina na may '=={{=nl=}}== ===Pagbigkas=== * {{audio|nl|Nl-bandeloosheden.ogg}} ===Pangngalan=== {{head|nl|noun form}} # {{plural of|nl|bandeloosheid}}' 176753 wikitext text/x-wiki =={{=nl=}}== ===Pagbigkas=== * {{audio|nl|Nl-bandeloosheden.ogg}} ===Pangngalan=== {{head|nl|noun form}} # {{plural of|nl|bandeloosheid}} sk962c6d2zwv4osuj01wuph5me3vaw3 praesentatio 0 38159 176760 2026-04-27T11:07:37Z Hiyuune 5522 Nilikha ang pahina na may '=={{=la=}}== ===Etimolohiya=== {{af|la|praesentō|-tiō}} ===Pangngalan=== {{la-noun|praesentātiō<3>}} # [[presentasyon]], [[tanghalan]] ====Deklinasyon==== {{la-ndecl|praesentātiō<3>}} ====Salitang inapo==== {{top3}} * {{desc|ca|presentació}} * {{desc|en|presentation}} * {{desc|fr|présentation}} * {{desc|gl|presentación}} * {{desc|de|Präsentation}} * {{desc|hu|prezentáció}} * {{desc|it|presentazione}} * {{desc|oc|presentacion}} * {{desc|pt|apresen...' 176760 wikitext text/x-wiki =={{=la=}}== ===Etimolohiya=== {{af|la|praesentō|-tiō}} ===Pangngalan=== {{la-noun|praesentātiō<3>}} # [[presentasyon]], [[tanghalan]] ====Deklinasyon==== {{la-ndecl|praesentātiō<3>}} ====Salitang inapo==== {{top3}} * {{desc|ca|presentació}} * {{desc|en|presentation}} * {{desc|fr|présentation}} * {{desc|gl|presentación}} * {{desc|de|Präsentation}} * {{desc|hu|prezentáció}} * {{desc|it|presentazione}} * {{desc|oc|presentacion}} * {{desc|pt|apresentação}} * {{desc|ro|prezentație}} * {{desc|ru|презентация}} * {{desc|es|presentación}} * {{desc|uk|презентація}} {{bottom}} ===Talasanggunian=== * {{R:la:L&S}} * {{R:la:du Cange}} * {{R:la:Gaffiot}} 6px8po3pyhwvw23keavkqniisoh7y8r Padron:sh-noun form 10 38160 176763 2026-04-27T11:15:26Z Hiyuune 5522 Nilikha ang pahina na may '{{#invoke:sh-headword|show|noun forms}}<noinclude>{{documentation}}</noinclude>' 176763 wikitext text/x-wiki {{#invoke:sh-headword|show|noun forms}}<noinclude>{{documentation}}</noinclude> jxk3nf7xlpdmw7fwp5xv69oeti5nue0 kavane 0 38161 176764 2026-04-27T11:16:29Z Hiyuune 5522 + sh 176764 wikitext text/x-wiki =={{=sh=}}== ===Pangngalan=== {{sh-noun form}} # {{infl of|sh|kavana||gen|s|;|nom//acc//voc|p}} bkl354r3pozepoz9kfkm5htyixadkk3 kavani 0 38162 176765 2026-04-27T11:17:24Z Hiyuune 5522 Nilikha ang pahina na may '=={{=sh=}}== ===Pangngalan=== {{sh-noun form}} # {{infl of|sh|kavana||dat//loc|s}}' 176765 wikitext text/x-wiki =={{=sh=}}== ===Pangngalan=== {{sh-noun form}} # {{infl of|sh|kavana||dat//loc|s}} swak7xkeeya2uqz3a5el94gjx5yaggt