Wiktionary siwiktionary https://si.wiktionary.org/wiki/%E0%B7%80%E0%B7%92%E0%B6%9A%E0%B7%8A%E0%B7%82%E0%B6%B1%E0%B6%BB%E0%B7%92:%E0%B6%B8%E0%B7%94%E0%B6%BD%E0%B7%8A_%E0%B6%B4%E0%B7%92%E0%B6%A7%E0%B7%94%E0%B7%80 MediaWiki 1.46.0-wmf.21 case-sensitive මාධ්‍යය විශේෂ සාකච්ඡාව පරිශීලක පරිශීලක සාකච්ඡාව වික්ෂනරි වික්ෂනරි සාකච්ඡාව ගොනුව ගොනුව සාකච්ඡාව මාධ්‍යවිකි මාධ්‍යවිකි සාකච්ඡාව සැකිල්ල සැකිලි සාකච්ඡාව උදවු උදවු සාකච්ඡාව ප්‍රවර්ගය ප්‍රවර්ග සාකච්ඡාව TimedText TimedText talk Module Module talk Event Event talk සැකිල්ල:h 10 141659 230531 2023-11-23T19:28:18Z en>Surjection 0 Protected "[[Template:h]]": Highly visible template/module: if it catches on, will be highly visible ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite)) 230531 wikitext text/x-wiki #REDIRECT [[Template:head]] 7m8ln7vca81wmg52jbyd7dbf0lgu6j7 230532 230531 2026-03-29T16:47:36Z Lee 19 [[:en:Template:h]] වෙතින් එක් සංශෝධනයක් 230531 wikitext text/x-wiki #REDIRECT [[Template:head]] 7m8ln7vca81wmg52jbyd7dbf0lgu6j7 සැකිල්ල:inc-ash-decl-noun 10 141660 230533 2025-12-28T07:25:38Z en>WingerBot 0 use {{pagename}} in place of {{PAGENAME}}/{{SUBPAGENAME}}/{{BASEPAGENAME}} in inflection templates; use {{tcat}} for categorization; avoid [[Module:ugly hacks]] in favor of [[Module:string/templates]]; misc fixes (manually assisted) 230533 wikitext text/x-wiki {| class="inflection-table vsSwitcher" data-toggle-category="inflection" style="background:var(--wikt-palette-grey-0,#FEFEFE); text-align:center; border: 1px solid var(--wikt-palette-lightgrey,#CCC);" |- style="background: var(--wikt-palette-blue-2,#d9ebff);" ! class="vsToggleElement" style="text-align: left;" colspan="3" | Declension of {{l-self|inc-ash|{{pagename}}|tr=-}} ''({{{dial}}})'' |- class="vsHide" ! style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ! style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | Singular ! style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | Plural |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Nominative'' |{{l|inc-ash|{{{1|}}}|{{{1|&mdash;}}}}} |{{l|inc-ash|{{{2|}}}|{{{2|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Vocative'' |{{l|inc-ash|{{{3|}}}|{{{3|&mdash;}}}}} |{{l|inc-ash|{{{4|}}}|{{{4|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Accusative'' |{{l|inc-ash|{{{5|}}}|{{{5|&mdash;}}}}} |{{l|inc-ash|{{{6|}}}|{{{6|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Instrumental'' |{{l|inc-ash|{{{7|}}}|{{{7|&mdash;}}}}} |{{l|inc-ash|{{{8|}}}|{{{8|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Dative'' |{{l|inc-ash|{{{9|}}}|{{{9|&mdash;}}}}} |{{l|inc-ash|{{{10|}}}|{{{10|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Ablative'' |{{l|inc-ash|{{{11|}}}|{{{11|&mdash;}}}}} |{{l|inc-ash|{{{12|}}}|{{{12|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Genitive'' |{{l|inc-ash|{{{13|}}}|{{{13|&mdash;}}}}} |{{l|inc-ash|{{{14|}}}|{{{14|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Locative'' |{{l|inc-ash|{{{15|}}}|{{{15|&mdash;}}}}} |{{l|inc-ash|{{{16|}}}|{{{16|&mdash;}}}}} |- class="vsHide" | colspan=3 style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | <small>''Note: Many of these forms may be unattested.''</small> |}<noinclude>{{documentation}}[[Category:Templates auto-palettized by SurjectionBot]]</noinclude> 547d14lvmy2oz3l4tfzxweah6y11qbl 230534 230533 2026-03-29T16:48:03Z Lee 19 [[:en:Template:inc-ash-decl-noun]] වෙතින් එක් සංශෝධනයක් 230533 wikitext text/x-wiki {| class="inflection-table vsSwitcher" data-toggle-category="inflection" style="background:var(--wikt-palette-grey-0,#FEFEFE); text-align:center; border: 1px solid var(--wikt-palette-lightgrey,#CCC);" |- style="background: var(--wikt-palette-blue-2,#d9ebff);" ! class="vsToggleElement" style="text-align: left;" colspan="3" | Declension of {{l-self|inc-ash|{{pagename}}|tr=-}} ''({{{dial}}})'' |- class="vsHide" ! style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ! style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | Singular ! style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | Plural |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Nominative'' |{{l|inc-ash|{{{1|}}}|{{{1|&mdash;}}}}} |{{l|inc-ash|{{{2|}}}|{{{2|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Vocative'' |{{l|inc-ash|{{{3|}}}|{{{3|&mdash;}}}}} |{{l|inc-ash|{{{4|}}}|{{{4|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Accusative'' |{{l|inc-ash|{{{5|}}}|{{{5|&mdash;}}}}} |{{l|inc-ash|{{{6|}}}|{{{6|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Instrumental'' |{{l|inc-ash|{{{7|}}}|{{{7|&mdash;}}}}} |{{l|inc-ash|{{{8|}}}|{{{8|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Dative'' |{{l|inc-ash|{{{9|}}}|{{{9|&mdash;}}}}} |{{l|inc-ash|{{{10|}}}|{{{10|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Ablative'' |{{l|inc-ash|{{{11|}}}|{{{11|&mdash;}}}}} |{{l|inc-ash|{{{12|}}}|{{{12|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Genitive'' |{{l|inc-ash|{{{13|}}}|{{{13|&mdash;}}}}} |{{l|inc-ash|{{{14|}}}|{{{14|&mdash;}}}}} |- class="vsHide" | style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | ''Locative'' |{{l|inc-ash|{{{15|}}}|{{{15|&mdash;}}}}} |{{l|inc-ash|{{{16|}}}|{{{16|&mdash;}}}}} |- class="vsHide" | colspan=3 style="background:var(--wikt-palette-grey-blue-1,#eff7ff)" | <small>''Note: Many of these forms may be unattested.''</small> |}<noinclude>{{documentation}}[[Category:Templates auto-palettized by SurjectionBot]]</noinclude> 547d14lvmy2oz3l4tfzxweah6y11qbl සැකිල්ල:inc-ash-decl-noun/documentation 10 141661 230535 2020-07-12T20:39:07Z en>AryamanA 0 230535 wikitext text/x-wiki {{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[Category:Ashokan Prakrit noun inflection-table templates]]<!-- replace this category with the category of your choice --> </includeonly> 8g82bhtt7fsjx19fxoj9tis9cto98p0 230536 230535 2026-03-29T16:48:32Z Lee 19 [[:en:Template:inc-ash-decl-noun/documentation]] වෙතින් එක් සංශෝධනයක් 230535 wikitext text/x-wiki {{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[Category:Ashokan Prakrit noun inflection-table templates]]<!-- replace this category with the category of your choice --> </includeonly> 8g82bhtt7fsjx19fxoj9tis9cto98p0 සැකිල්ල:inc-ash-dial 10 141662 230537 2024-10-06T01:21:37Z en>AryamanA 0 230537 wikitext text/x-wiki <includeonly>{{#invoke:inc-ash/dial|main}} {{#invoke:inc-ash/dial|make_map|width=500|{{{1|{{PAGENAME}}}}}}}</includeonly><noinclude>{{documentation}}</noinclude> k03zizhcu4p7akfnvujio7tl26iabf4 230538 230537 2026-03-29T16:49:15Z Lee 19 [[:en:Template:inc-ash-dial]] වෙතින් එක් සංශෝධනයක් 230537 wikitext text/x-wiki <includeonly>{{#invoke:inc-ash/dial|main}} {{#invoke:inc-ash/dial|make_map|width=500|{{{1|{{PAGENAME}}}}}}}</includeonly><noinclude>{{documentation}}</noinclude> k03zizhcu4p7akfnvujio7tl26iabf4 සැකිල්ල:inc-ash-dial/uncreated 10 141663 230539 2018-02-05T23:36:33Z en>AryamanA 0 reasons 230539 wikitext text/x-wiki <includeonly>* The dial-syn page "{{lang|inc-ash|{{{1}}}}}" does not exist yet.</includeonly> mh3ois066hsquzw2sgmtb6468itkda2 230540 230539 2026-03-29T16:49:40Z Lee 19 [[:en:Template:inc-ash-dial/uncreated]] වෙතින් එක් සංශෝධනයක් 230539 wikitext text/x-wiki <includeonly>* The dial-syn page "{{lang|inc-ash|{{{1}}}}}" does not exist yet.</includeonly> mh3ois066hsquzw2sgmtb6468itkda2 සැකිල්ල:inc-ash-dial/documentation 10 141664 230541 2024-10-26T01:33:38Z en>ExcarnateSojourner 0 categorize 230541 wikitext text/x-wiki {{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[Category:Ashokan Prakrit templates|dial]] </includeonly> 75t3qnbjg1e9b2kr6xqe3girb6xtx2k 230542 230541 2026-03-29T16:49:51Z Lee 19 [[:en:Template:inc-ash-dial/documentation]] වෙතින් එක් සංශෝධනයක් 230541 wikitext text/x-wiki {{documentation subpage}} {{documentation needed}}<!-- Replace this with a short description of the purpose of the template, and how to use it. --> <includeonly> [[Category:Ashokan Prakrit templates|dial]] </includeonly> 75t3qnbjg1e9b2kr6xqe3girb6xtx2k සැකිල්ල:R:inc-ash:Andersen 10 141665 230543 2025-10-25T21:46:07Z en>AutoDooz 0 converted to Module:quote to handle parameter checking and facilitate future enhancements 230543 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |title=Studies in the Minor Rock Edicts of Aśoka |last=Andersen |first=Paul Kent |year=1990 |publisher=Hedwig Falk |location=Freiburg |pageparam=2 |entry={{{1|}}} |allowparams=1 }}<noinclude>{{refcat}}</noinclude> qtghrq3d44rfxrh1nvjyxtjs00kejpb 230544 230543 2026-03-29T16:50:07Z Lee 19 [[:en:Template:R:inc-ash:Andersen]] වෙතින් එක් සංශෝධනයක් 230543 wikitext text/x-wiki {{#invoke:quote|call_template |template=cite-book |title=Studies in the Minor Rock Edicts of Aśoka |last=Andersen |first=Paul Kent |year=1990 |publisher=Hedwig Falk |location=Freiburg |pageparam=2 |entry={{{1|}}} |allowparams=1 }}<noinclude>{{refcat}}</noinclude> qtghrq3d44rfxrh1nvjyxtjs00kejpb සැකිල්ල:m-g 10 141666 230545 2025-08-13T19:07:47Z en>Surjection 0 Changed protection settings for "[[Template:m-g]]" ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite)) 230545 wikitext text/x-wiki #REDIRECT [[Template:mention-gloss]] jy84lsogceibc6hu8lrhey9paevk6a8 230546 230545 2026-03-29T16:51:35Z Lee 19 [[:en:Template:m-g]] වෙතින් එක් සංශෝධනයක් 230545 wikitext text/x-wiki #REDIRECT [[Template:mention-gloss]] jy84lsogceibc6hu8lrhey9paevk6a8 සැකිල්ල:mention-gloss 10 141667 230547 2025-08-13T19:07:57Z en>Surjection 0 Changed protection settings for "[[Template:mention-gloss]]" ([Edit=Allow only template editors and administrators] (indefinite) [Move=Allow only template editors and administrators] (indefinite)) 230547 wikitext text/x-wiki <onlyinclude><span class="mention-gloss-double-quote">“</span><span class="mention-gloss">{{{1}}}</span><span class="mention-gloss-double-quote">”</span></onlyinclude>{{documentation}} e1mpg3464fwr0vp3f2ecunyzw46nuju 230548 230547 2026-03-29T16:51:51Z Lee 19 [[:en:Template:mention-gloss]] වෙතින් එක් සංශෝධනයක් 230547 wikitext text/x-wiki <onlyinclude><span class="mention-gloss-double-quote">“</span><span class="mention-gloss">{{{1}}}</span><span class="mention-gloss-double-quote">”</span></onlyinclude>{{documentation}} e1mpg3464fwr0vp3f2ecunyzw46nuju සැකිල්ල:mention-gloss/documentation 10 141668 230549 2024-06-15T00:26:18Z en>Theknightwho 0 230549 wikitext text/x-wiki {{documentation subpage}} {{shortcut|Template:m-g|Template:mg}} Creates a "mention gloss", like the one created by {{temp|m}} and {{temp|l}}, so that quotation marks can be customized. <includeonly> [[Category:Text format templates]] </includeonly> 9udm8yknjb3ckjl97wkv6hm4ssosn6e 230550 230549 2026-03-29T16:52:16Z Lee 19 [[:en:Template:mention-gloss/documentation]] වෙතින් එක් සංශෝධනයක් 230549 wikitext text/x-wiki {{documentation subpage}} {{shortcut|Template:m-g|Template:mg}} Creates a "mention gloss", like the one created by {{temp|m}} and {{temp|l}}, so that quotation marks can be customized. <includeonly> [[Category:Text format templates]] </includeonly> 9udm8yknjb3ckjl97wkv6hm4ssosn6e Module:inc-ash/dial 828 141669 230551 2026-01-11T08:06:59Z en>AryamanA 0 Reverted edits by [[Special:Contributions/AryamanA|AryamanA]]. If you think this rollback is in error, please leave a message on my talk page. 230551 Scribunto text/plain local lang = require("Module:languages").getByCode("inc-ash") local m_links = require("Module:links") local iut = require("Module:inflection utilities") local m_string_utilities = require("Module:string utilities") local sub = mw.ustring.sub local variety_data = require("Module:inc-ash/dial/data") local export = {} local variety_list = { "Central", "East", "Northwest", "West", "South" } local variety_colour = { ["Central"] = "var(--wikt-palette-orange-1,#FAF5F0)", ["East"] = "var(--wikt-palette-blue-1,#F0F5FA)", ["Northwest"] = "var(--wikt-palette-green-1,#F0FAF3)", ["West"] = "var(--wikt-palette-magenta-1,#FAF0F6)", ["South"] = "var(--wikt-palette-yellow-1,#FAF9F0)", } local dots = { "d2502e", "6941c7", "9fdd42", "c74dc9", "6ccb6e", "d34280", "77d6ba", "4f286c", "d1b94e", "777ad0", "557433", "cf8ebf", "342a29", "c7c3a2", "7f3241", "8ab8d7", "8d6234", "5b6080", "da8573", "4e7a6e" } local special_note = { -- none yet } -- declension local genders = {"m", "f", "n"} local numbers = {"sg", "pl"} local cases = {"nom", "acc", "ins", "dat", "abl", "gen", "loc"} local cases_full = {"nominative", "accusative", "instrumental", "dative", "ablative", "genitive", "locative"} local persons = {"1", "2", "3"} local persons_full = {"1st", "2nd", "3rd"} local moods = {"pres", "imp", "potn", "impf", "aor", "fut"} local moods_full = {"present", "imperative", "potential", "imperfect", "aorist", "future"} local slots = {} slots["noun"] = { {"nom.sg", "nom|sg"}, {"nom.pl", "nom|pl"}, {"acc.sg", "acc|sg"}, {"acc.pl", "acc|pl"}, {"ins.sg", "ins|sg"}, {"ins.pl", "ins|pl"}, {"dat.sg", "dat|sg"}, {"dat.pl", "dat|pl"}, {"abl.sg", "abl|sg"}, {"abl.pl", "abl|pl"}, {"gen.sg", "gen|sg"}, {"gen.pl", "gen|pl"}, {"loc.sg", "loc|sg"}, {"loc.pl", "loc|pl"}, } slots["adj"] = { {"m.nom.sg", "m|nom|sg"}, {"m.nom.pl", "m|nom|pl"}, {"f.nom.sg", "f|nom|sg"}, {"f.nom.pl", "f|nom|pl"}, {"n.nom.sg", "n|nom|sg"}, {"n.nom.pl", "n|nom|pl"}, {"m.acc.sg", "m|acc|sg"}, {"m.acc.pl", "m|acc|pl"}, {"f.acc.sg", "f|acc|sg"}, {"f.acc.pl", "f|acc|pl"}, {"n.acc.sg", "n|acc|sg"}, {"n.acc.pl", "n|acc|pl"}, {"m.ins.sg", "m|ins|sg"}, {"m.ins.pl", "m|ins|pl"}, {"f.ins.sg", "f|ins|sg"}, {"f.ins.pl", "f|ins|pl"}, {"n.ins.sg", "n|ins|sg"}, {"n.ins.pl", "n|ins|pl"}, {"m.dat.sg", "m|dat|sg"}, {"m.dat.pl", "m|dat|pl"}, {"f.dat.sg", "f|dat|sg"}, {"f.dat.pl", "f|dat|pl"}, {"n.dat.sg", "n|dat|sg"}, {"n.dat.pl", "n|dat|pl"}, {"m.abl.sg", "m|abl|sg"}, {"m.abl.pl", "m|abl|pl"}, {"f.abl.sg", "f|abl|sg"}, {"f.abl.pl", "f|abl|pl"}, {"n.abl.sg", "n|abl|sg"}, {"n.abl.pl", "n|abl|pl"}, {"m.gen.sg", "m|gen|sg"}, {"m.gen.pl", "m|gen|pl"}, {"f.gen.sg", "f|gen|sg"}, {"f.gen.pl", "f|gen|pl"}, {"n.gen.sg", "n|gen|sg"}, {"n.gen.pl", "n|gen|pl"}, {"m.loc.sg", "m|loc|sg"}, {"m.loc.pl", "m|loc|pl"}, {"f.loc.sg", "f|loc|sg"}, {"f.loc.pl", "f|loc|pl"}, {"n.loc.sg", "n|loc|sg"}, {"n.loc.pl", "n|loc|pl"}, } slots["verb"] = { {"1sg.pres", "1|sg|pres"}, {"2sg.pres", "2|sg|pres"}, {"3sg.pres", "3|sg|pres" }, {"1pl.pres", "1|pl|pres"}, {"2pl.pres", "2|pl|pres"}, {"3pl.pres", "3|pl|pres" }, -- add middle, passive {"1sg.imp", "1|sg|imp"}, {"2sg.imp", "2|sg|imp"}, {"3sg.imp", "3|sg|imp" }, {"1pl.imp", "1|pl|imp"}, {"2pl.imp", "2|pl|imp"}, {"3pl.imp", "3|pl|imp" }, {"1sg.potn", "1|sg|potn"}, {"2sg.potn", "2|sg|potn"}, {"3sg.potn", "3|sg|potn" }, {"1pl.potn", "1|pl|potn"}, {"2pl.potn", "2|pl|potn"}, {"3pl.potn", "3|pl|potn" }, {"1sg.impf", "1|sg|impf"}, {"2sg.impf", "2|sg|impf"}, {"3sg.impf", "3|sg|impf" }, {"1pl.impf", "1|pl|impf"}, {"2pl.impf", "2|pl|impf"}, {"3pl.impf", "3|pl|impf" }, {"1sg.aor", "1|sg|aor"}, {"2sg.aor", "2|sg|aor"}, {"3sg.aor", "3|sg|aor" }, {"1pl.aor", "1|pl|aor"}, {"2pl.aor", "2|pl|aor"}, {"3pl.aor", "3|pl|aor" }, {"1sg.fut", "1|sg|fut"}, {"2sg.fut", "2|sg|fut"}, {"3sg.fut", "3|sg|fut" }, {"1pl.fut", "1|pl|fut"}, {"2pl.fut", "2|pl|fut"}, {"3pl.fut", "3|pl|fut" }, } -- format a link for the dialect table, including notes function format_link(word, all_notes, alt) notes = mw.text.split(all_notes or "", "; ") local filtered_notes = {} local partial = false for _, note in ipairs(notes) do if note == "partial" then partial = true else table.insert(filtered_notes, note) end end local note = table.concat(filtered_notes, "; ") return ((partial and "<sup>?</sup>") or "") .. m_links.full_link({ term = word, alt = alt, lang = lang, tr = "-", }) .. ((note and (' <span style="font-size:60%"><i>' .. note .. '</i></span>')) or '') .. ' <small>(' .. lang:transliterate(word or alt) .. ')</small>' end function get_lemma(word) return mw.ustring.match(word, "{(.*)}") or mw.ustring.match(word, "<(.*)>") or word end function remove_lemma_indicators(word) return mw.ustring.gsub(mw.ustring.gsub(word, "{.*}", ""), "[<>]", "") end local function make_table(data, pos) local result = "" if pos == "adj" then result = [=[ {| class="inflection-table vsSwitcher" data-toggle-category="declension" style="background:var(--wikt-palette-lavender, #f8f8ff); text-align:center; min-width:45em; border: 1px solid var(--border-color-base,#9e9e9e);" |- style="background: var(--wikt-palette-lightblue, #d9ebff);" ! class="vsToggleElement" style="text-align: left;" colspan="7" | Declension of {lemma} |- class="vsHide" ! style="background:var(--wikt-palette-lightblue, #d9ebff); width:25%" rowspan="2" | ! style="background:var(--wikt-palette-lightblue, #d9ebff)" colspan="2" | masculine ! style="background:var(--wikt-palette-lightblue, #d9ebff)" colspan="2" | feminine ! style="background:var(--wikt-palette-lightblue, #d9ebff)" colspan="2" | neuter |- class="vsHide" ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | singular ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | plural ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | singular ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | plural ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | singular ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | plural]=] for i, case in ipairs(cases) do local row = '\n|- class="vsHide"' row = row .. '\n! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | ' .. cases_full[i] for _, gender in ipairs(genders) do for _, number in ipairs(numbers) do row = row .. '\n| {' .. gender .. '.' .. case .. '.' .. number .. '}' end end result = result .. row end result = result .. "\n{notes_clause}\n|}" elseif pos == "noun" then result = [=[ {| class="inflection-table vsSwitcher" data-toggle-category="declension" style="background:var(--wikt-palette-lavender, #f8f8ff); text-align:center; min-width:45em; border: 1px solid var(--border-color-base,#9e9e9e);" |- style="background: var(--wikt-palette-lightblue, #d9ebff);" ! class="vsToggleElement" style="text-align: left;" colspan="3" | Declension of {lemma} |- class="vsHide" ! style="background:var(--wikt-palette-lightblue, #d9ebff); width:33%" | ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | singular ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | plural]=] for i, case in ipairs(cases) do local row = '\n|- class="vsHide"' row = row .. '\n! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | ' .. cases_full[i] for _, number in ipairs(numbers) do row = row .. '\n| {' .. case .. '.' .. number .. '}' end result = result .. row end result = result .. "\n{notes_clause}\n|}" elseif pos == "verb" then result = [=[ {| class="inflection-table vsSwitcher" data-toggle-category="declension" style="background:var(--wikt-palette-lavender, #f8f8ff); text-align:center; min-width:45em; border: 1px solid var(--border-color-base,#9e9e9e);" |- style="background: var(--wikt-palette-lightblue, #d9ebff);" ! class="vsToggleElement" style="text-align: left;" colspan="7" | Personal forms of {lemma} |- class="vsHide" ! style="background:var(--wikt-palette-lightblue, #d9ebff); width:33%" rowspan="2" | ! style="background:var(--wikt-palette-lightblue, #d9ebff)" colspan="3" | singular ! style="background:var(--wikt-palette-lightblue, #d9ebff)" colspan="3" | plural |- class="vsHide" ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | 1st ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | 2nd ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | 3rd ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | 1st ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | 2nd ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | 3rd]=] for i, mood in ipairs(moods) do local row = '\n|- class="vsHide"' row = row .. '\n! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | ' .. moods_full[i] for _, number in ipairs(numbers) do for _, person in ipairs(persons) do row = row .. '\n| {' .. person .. number .. '.' .. mood .. '}' end end result = result .. row end result = result .. "\n{notes_clause}\n|}" end local notes_template = [===[ |- class="vsHide" | colspan=3 | <div class="hi-footnote-outer-div"> <div class="hi-footnote-inner-div"> {footnote} </div></div> ]===] -- footnotes data.forms.notes_clause = data.forms.footnote ~= "" and m_string_utilities.format(notes_template, data.forms) or "" data.forms.desc = data.desc data.forms.lemma = format_link(data.lemma) result = m_string_utilities.format(result, data.forms) return result end function export.inflection(frame) local args = frame:getParent().args local pagename = mw.loadData("Module:headword/data").pagename local target_page = args[1] or pagename local main_lemma = args[2] or pagename local resource_page = "Module:inc-ash/dial/data/" .. target_page -- get page data if mw.title.new(resource_page).exists then m_syndata = require(resource_page).list else return frame:expandTemplate{ title = "Template:inc-ash-dial/uncreated", args = { target_page } } end -- remove unnecessary data m_syndata["meaning"] = nil local pos = m_syndata["pos"] or "none" m_syndata["pos"] = nil if m_syndata["note"] then note = m_syndata["note"] m_syndata["note"] = nil end if pos == nil then error("Please specify a valid pos in the resource page " .. resource_page) end -- slots local props = { lang = lang, lemmas = {main_lemma}, slot_list = slots[pos], include_translit = true, create_footnote_obj = nil, canonicalize = nil, preprocess_forms = nil, no_deduplicate_forms = false, combine_metadata_during_dedup = nil, transform_accel_obj = nil, format_forms = nil, generate_link = nil, format_tr = nil, join_spans = nil, allow_footnote_symbols = nil, footnotes = nil, } -- get forms local data = {forms = {}} data.forms.footnote = "" -- local process = "" for location, synonym_set in pairs(m_syndata) do -- check if location is in alias list and use the proper one if so if variety_data['aliases'][location] ~= nil then location = variety_data['aliases'][location] end if synonym_set[1] ~= "" then for i, synonym in ipairs(synonym_set) do local synonym_decomp = mw.text.split(synonym, ":") local lemma = get_lemma(synonym_decomp[1]) synonym_decomp[1] = remove_lemma_indicators(synonym_decomp[1]) if lemma == main_lemma then local notes = mw.text.split(synonym_decomp[2] or "", "; ") for _, gloss in ipairs(notes) do iut.insert_form(data.forms, gloss, {form=synonym_decomp[1]}) -- process = process .. "\nInserted " .. synonym_decomp[1] .. " into " .. gloss end end end end end -- make table -- if pos == "verb" then return process end data.lemma = main_lemma iut.show_forms(data.forms, props) return make_table(data, pos) end function export.main(frame) local args = frame:getParent().args local pagename = mw.loadData("Module:headword/data").pagename local target_page = args[1] or pagename local resource_page = "Module:inc-ash/dial/data/" .. target_page if mw.title.new(resource_page).exists then m_syndata = require(resource_page).list else return frame:expandTemplate{ title = "Template:inc-ash-dial/uncreated", args = { target_page } } end local template = { ["Central"] = {}, ["East"] = {}, ["Northwest"] = {}, ["West"] = {}, ["South"] = {}, } main_title = mw.ustring.gsub((target_page == pagename and pagename or '[[' .. target_page .. ']]'), "[0-9%-]", "") text = [=[ {| class="wikitable mw-collapsible mw-collapsed" style="margin:0; text-align:center;" |- ! style="background:var(--wikt-palette-grey-green-0,#FCFFFC); width:40em" colspan=4 | Dialectal forms of <b><span class="Brah" lang="inc-ash">]=] .. main_title .. '</span></b> (“' .. m_syndata["meaning"] .. '”) ' .. [=[ |- ! style="background:var(--wikt-palette-blue-1,#E8ECFA)" | Variety ! style="background:var(--wikt-palette-blue-1,#E8ECFA)" | Location ! style="background:var(--wikt-palette-blue-1,#E8ECFA)" | Lemmas ! style="background:var(--wikt-palette-blue-1,#E8ECFA); text-align: left;" | Forms]=] .. [=[ <div style="float: right; clear: right; font-size:60%"><span class="plainlinks">[]=] .. tostring(mw.uri.fullUrl("Module:inc-ash/dial/data/" .. target_page, { ["action"] = "edit" })) .. ' edit]</span></div>' m_syndata["meaning"] = nil local pos = m_syndata["pos"] or "none" m_syndata["pos"] = nil if m_syndata["note"] then note = m_syndata["note"] m_syndata["note"] = nil end local categories = "" for location, synonym_set in pairs(m_syndata) do -- check if location is in alias list and use the proper one if so if variety_data['aliases'][location] ~= nil then location = variety_data['aliases'][location] end local sc = "Brah" if location == "Shahbazgarhi" or location == "Mansehra" then sc = "Khar" end if synonym_set[1] ~= "" then local formatted_synonyms = {} local formatted_lemmas = {} for i, synonym in ipairs(synonym_set) do local synonym_decomp = mw.text.split(synonym, ":") local word = remove_lemma_indicators(synonym_decomp[1]) local lemma = get_lemma(synonym_decomp[1], pos, sc) if (synonym_decomp[1] ~= word) or (synonym_decomp[2] ~= nil) then table.insert(formatted_synonyms, { formatted = format_link(word, synonym_decomp[2], nil), form = word, }) end formatted_lemmas[lemma] = format_link(lemma, nil, nil) end local location_data = variety_data[location] local location_name = mw.ustring.gsub(location_data.english or location, "(%(.*%))", "<small>%1</small>") local location_link = location_data.link or location_name table.insert(template[location_data.group], { location_data.order, location_name, location_link, formatted_synonyms, formatted_lemmas }) end end local attested = {} for _, variety in ipairs(variety_list) do local sc = "Brah" if variety == "Northwest" then sc = "Khar" end local colour = variety_colour[variety] if #template[variety] > 0 then table.sort(template[variety], function(first, second) return first[1] < second[1] end) for i, point_data in ipairs(template[variety]) do local forms = {} local lemmas = {} local attested_point = false for lemma_plain, lemma in pairs(point_data[5]) do if lemma_plain == pagename then attested_point = true end table.insert(lemmas, lemma) end for _, word in ipairs(point_data[4]) do if word.form == pagename then attested_point = true end table.insert(forms, word.formatted) end if attested_point then table.insert(attested, {point_data[3], point_data[2]}) categories = categories .. "[[Category:" .. point_data[2] .. " Ashokan Prakrit]]" end text = text .. "\n|-" if i == 1 then text = text .. "\n!rowspan=" .. #template[variety] .. (special_note[variety] and " colspan=2" or "") .. ' style="background:' .. colour .. '"| ' .. (special_note[variety] or variety) end text = text .. ((point_data[2] and not special_note[variety]) and ('\n|style="background:' .. colour .. '"| ' .. '[[w:' .. point_data[3] .. '|' .. point_data[2] .. ']]') or '') .. '\n| ' .. table.concat(lemmas, ", ") .. '\n|style="text-align: left;"| ' .. table.concat(forms, ", ") end end end if note and note ~= "" then text = text .. '\n|-\n! style="background:var(--wikt-palette-rose-1,#FFF7FB); padding-top:5px; padding-bottom: 5px" | ' .. "<small>Note</small>\n| colspan=2|<small><i>" .. note .. "</i></small>" end local res = "Attested at " table.sort(attested, function(first, second) return first[2] < second[2] end) for i, dialect in ipairs(attested) do if i == #attested and i ~= 1 then res = res .. " and " elseif i ~= 1 then res = res .. ", " end res = res .. '[[w:' .. dialect[1] .. '|' .. dialect[2] .. ']]' end return res .. '.\n' .. text .. '\n|}' .. categories end function export.make_map(frame) local width = tonumber(frame.args["width"]) or 1200 local word = frame.args[1] or mw.loadData("Module:headword/data").pagename local syn_data = require("Module:inc-ash/dial/data/" .. word).list local map = [=[ <div style="margin-left: auto; margin-right:auto; width:]=] .. width .. [=[px; max-width:]=] .. width .. [=[px;"> <div><div style="height:]=] .. width * (1615/1500) .. [=[px;width:]=] .. width .. [=[px;overflow:auto;"> <div style="position:relative;top:0;left:0"> <div style="position:relative;top:0;left:0;line-height:0">[[File:India location map.svg|]=] .. width .. [=[px|link=]]</div> ]=] local prelim_data, data, points, legend = {}, {}, {}, {} for location, synonym_set in pairs(syn_data) do -- check if location is in alias list and use the proper one if so local actual_location = location if variety_data['aliases'][location] ~= nil then actual_location = variety_data['aliases'][location] end if location ~= "note" and location ~= "meaning" and location ~= "pos" and variety_data[actual_location].lat and synonym_set[1] ~= "" then for _, term in ipairs(synonym_set) do term = get_lemma(mw.text.split(term, ":")[1]) local lemma = lang:transliterate(term) if prelim_data[term] then prelim_data[term].count = prelim_data[term].count + 1 table.insert(prelim_data[term].locations, location) else prelim_data[term] = { count = 1, locations = { location }, term = remove_lemma_indicators(term), lemma = lemma } end end end end for term, term_data in pairs(prelim_data) do table.insert(data, { term = term_data.term, count = term_data.count, locations = term_data.locations, lemma = term_data.lemma }) end table.sort(data, function(first, second) return first.count > second.count end) local prev_count = data[1].count local greyed, greyed_count = false, 0 local completed_lemmas = {} local num_completed = 0 for _, d in ipairs(data) do local num = -1 if completed_lemmas[d.lemma] then num = completed_lemmas[d.lemma] else num = num_completed + 1 completed_lemmas[d.lemma] = num num_completed = num_completed + 1 end greyed = greyed or (num > 10 and d.count ~= prev_count) or num > 20 local colour = greyed and "CCCCBF" or dots[num] for _, location in ipairs(d.locations) do -- check if location is in alias list and use the proper one if so local actual_location = location if variety_data['aliases'][location] ~= nil then actual_location = variety_data['aliases'][location] end local loc_info = variety_data[actual_location] local top_offset, left_offset = 0, 0 if #syn_data[location] > 1 then top_offset = math.random(-300, 300) / 100 left_offset = math.random(-300, 300) / 100 end local top = ((37.5 - loc_info.lat) * (width*(1615/1500))/(37.5-5)) + top_offset local left = ((loc_info.long - 67) * width/(99-67)) + left_offset local loc_name = mw.ustring.gsub(loc_info.english or actual_location, "%((.*)%)$", "- %1") table.insert(points, tostring( mw.html.create( "div" ) :css( "position", "absolute" ) :css( "top", top .. "px" ) :css( "left", left .. "px" ) :css( "margin", "auto" ) :css( "transform", "translate(-50%,-50%)" ) -- http://stackoverflow.com/questions/33683602/transform-origin-equivalent-for-position-absolute :css( "padding", "5px" ) :css( "border-radius", "100%" ) :css( "background-color", "#" .. colour ) :css( "cursor", "help" ) :css( "opacity", "0.8" ) :attr( "title", loc_name .. " (" .. loc_info.group .. ")" ))) end if greyed then greyed_count = greyed_count + d.count else table.insert(legend, tostring( mw.html.create( "div" ) :css( "display", "inline-block" ) :css( "width", "10px" ) :css( "height", "10px" ) :css( "border-radius", "100%" ) :css( "background-color", "#" .. colour )) .. m_links.full_link({lang = lang, term = mw.ustring.gsub(d.term, "(.+)_[1-9]", "%1"), alt = mw.ustring.gsub(d.term, "(.+)_([1-9])", "%1<sub>%2</sub>")}) .. " (" .. d.count .. ")") end prev_count = d.count end if greyed_count > 0 then table.insert(legend, tostring( mw.html.create( "div" ) :css( "display", "inline-block" ) :css( "width", "10px" ) :css( "height", "10px" ) :css( "border-radius", "100%" ) :css( "background-color", "#CCCCBF" )) .. "other terms (" .. greyed_count .. ")") end map = [=[ {| class="wikitable mw-collapsible mw-collapsed" style="margin:0; text-align:center;" |- ! style="background:var(--wikt-palette-grey-green-0,#FCFFFC); width:40em" colspan=3 | Map of dialectal forms of <b><span class="Brah" lang="inc-ash">]=] .. word .. '</span></b> (“' .. syn_data["meaning"] .. '”) ' .. "\n|-\n|\n" .. map .. table.concat(points) .. '</div></div></div>' .. '<div style="column-count:' .. math.ceil(width/240) .. ';-moz-column-count:' .. math.ceil(width/240) .. ';-webkit-column-count:' .. math.ceil(width/240) .. ';font-size:smaller;line-height:1.7">' .. table.concat(legend, "<br>") .. "</div></div>" .. [=[ |}]=] return map end return export cobguhb7mmna1cmq0gd3ph1galrr9fn 230552 230551 2026-03-29T16:53:41Z Lee 19 [[:en:Module:inc-ash/dial]] වෙතින් එක් සංශෝධනයක් 230551 Scribunto text/plain local lang = require("Module:languages").getByCode("inc-ash") local m_links = require("Module:links") local iut = require("Module:inflection utilities") local m_string_utilities = require("Module:string utilities") local sub = mw.ustring.sub local variety_data = require("Module:inc-ash/dial/data") local export = {} local variety_list = { "Central", "East", "Northwest", "West", "South" } local variety_colour = { ["Central"] = "var(--wikt-palette-orange-1,#FAF5F0)", ["East"] = "var(--wikt-palette-blue-1,#F0F5FA)", ["Northwest"] = "var(--wikt-palette-green-1,#F0FAF3)", ["West"] = "var(--wikt-palette-magenta-1,#FAF0F6)", ["South"] = "var(--wikt-palette-yellow-1,#FAF9F0)", } local dots = { "d2502e", "6941c7", "9fdd42", "c74dc9", "6ccb6e", "d34280", "77d6ba", "4f286c", "d1b94e", "777ad0", "557433", "cf8ebf", "342a29", "c7c3a2", "7f3241", "8ab8d7", "8d6234", "5b6080", "da8573", "4e7a6e" } local special_note = { -- none yet } -- declension local genders = {"m", "f", "n"} local numbers = {"sg", "pl"} local cases = {"nom", "acc", "ins", "dat", "abl", "gen", "loc"} local cases_full = {"nominative", "accusative", "instrumental", "dative", "ablative", "genitive", "locative"} local persons = {"1", "2", "3"} local persons_full = {"1st", "2nd", "3rd"} local moods = {"pres", "imp", "potn", "impf", "aor", "fut"} local moods_full = {"present", "imperative", "potential", "imperfect", "aorist", "future"} local slots = {} slots["noun"] = { {"nom.sg", "nom|sg"}, {"nom.pl", "nom|pl"}, {"acc.sg", "acc|sg"}, {"acc.pl", "acc|pl"}, {"ins.sg", "ins|sg"}, {"ins.pl", "ins|pl"}, {"dat.sg", "dat|sg"}, {"dat.pl", "dat|pl"}, {"abl.sg", "abl|sg"}, {"abl.pl", "abl|pl"}, {"gen.sg", "gen|sg"}, {"gen.pl", "gen|pl"}, {"loc.sg", "loc|sg"}, {"loc.pl", "loc|pl"}, } slots["adj"] = { {"m.nom.sg", "m|nom|sg"}, {"m.nom.pl", "m|nom|pl"}, {"f.nom.sg", "f|nom|sg"}, {"f.nom.pl", "f|nom|pl"}, {"n.nom.sg", "n|nom|sg"}, {"n.nom.pl", "n|nom|pl"}, {"m.acc.sg", "m|acc|sg"}, {"m.acc.pl", "m|acc|pl"}, {"f.acc.sg", "f|acc|sg"}, {"f.acc.pl", "f|acc|pl"}, {"n.acc.sg", "n|acc|sg"}, {"n.acc.pl", "n|acc|pl"}, {"m.ins.sg", "m|ins|sg"}, {"m.ins.pl", "m|ins|pl"}, {"f.ins.sg", "f|ins|sg"}, {"f.ins.pl", "f|ins|pl"}, {"n.ins.sg", "n|ins|sg"}, {"n.ins.pl", "n|ins|pl"}, {"m.dat.sg", "m|dat|sg"}, {"m.dat.pl", "m|dat|pl"}, {"f.dat.sg", "f|dat|sg"}, {"f.dat.pl", "f|dat|pl"}, {"n.dat.sg", "n|dat|sg"}, {"n.dat.pl", "n|dat|pl"}, {"m.abl.sg", "m|abl|sg"}, {"m.abl.pl", "m|abl|pl"}, {"f.abl.sg", "f|abl|sg"}, {"f.abl.pl", "f|abl|pl"}, {"n.abl.sg", "n|abl|sg"}, {"n.abl.pl", "n|abl|pl"}, {"m.gen.sg", "m|gen|sg"}, {"m.gen.pl", "m|gen|pl"}, {"f.gen.sg", "f|gen|sg"}, {"f.gen.pl", "f|gen|pl"}, {"n.gen.sg", "n|gen|sg"}, {"n.gen.pl", "n|gen|pl"}, {"m.loc.sg", "m|loc|sg"}, {"m.loc.pl", "m|loc|pl"}, {"f.loc.sg", "f|loc|sg"}, {"f.loc.pl", "f|loc|pl"}, {"n.loc.sg", "n|loc|sg"}, {"n.loc.pl", "n|loc|pl"}, } slots["verb"] = { {"1sg.pres", "1|sg|pres"}, {"2sg.pres", "2|sg|pres"}, {"3sg.pres", "3|sg|pres" }, {"1pl.pres", "1|pl|pres"}, {"2pl.pres", "2|pl|pres"}, {"3pl.pres", "3|pl|pres" }, -- add middle, passive {"1sg.imp", "1|sg|imp"}, {"2sg.imp", "2|sg|imp"}, {"3sg.imp", "3|sg|imp" }, {"1pl.imp", "1|pl|imp"}, {"2pl.imp", "2|pl|imp"}, {"3pl.imp", "3|pl|imp" }, {"1sg.potn", "1|sg|potn"}, {"2sg.potn", "2|sg|potn"}, {"3sg.potn", "3|sg|potn" }, {"1pl.potn", "1|pl|potn"}, {"2pl.potn", "2|pl|potn"}, {"3pl.potn", "3|pl|potn" }, {"1sg.impf", "1|sg|impf"}, {"2sg.impf", "2|sg|impf"}, {"3sg.impf", "3|sg|impf" }, {"1pl.impf", "1|pl|impf"}, {"2pl.impf", "2|pl|impf"}, {"3pl.impf", "3|pl|impf" }, {"1sg.aor", "1|sg|aor"}, {"2sg.aor", "2|sg|aor"}, {"3sg.aor", "3|sg|aor" }, {"1pl.aor", "1|pl|aor"}, {"2pl.aor", "2|pl|aor"}, {"3pl.aor", "3|pl|aor" }, {"1sg.fut", "1|sg|fut"}, {"2sg.fut", "2|sg|fut"}, {"3sg.fut", "3|sg|fut" }, {"1pl.fut", "1|pl|fut"}, {"2pl.fut", "2|pl|fut"}, {"3pl.fut", "3|pl|fut" }, } -- format a link for the dialect table, including notes function format_link(word, all_notes, alt) notes = mw.text.split(all_notes or "", "; ") local filtered_notes = {} local partial = false for _, note in ipairs(notes) do if note == "partial" then partial = true else table.insert(filtered_notes, note) end end local note = table.concat(filtered_notes, "; ") return ((partial and "<sup>?</sup>") or "") .. m_links.full_link({ term = word, alt = alt, lang = lang, tr = "-", }) .. ((note and (' <span style="font-size:60%"><i>' .. note .. '</i></span>')) or '') .. ' <small>(' .. lang:transliterate(word or alt) .. ')</small>' end function get_lemma(word) return mw.ustring.match(word, "{(.*)}") or mw.ustring.match(word, "<(.*)>") or word end function remove_lemma_indicators(word) return mw.ustring.gsub(mw.ustring.gsub(word, "{.*}", ""), "[<>]", "") end local function make_table(data, pos) local result = "" if pos == "adj" then result = [=[ {| class="inflection-table vsSwitcher" data-toggle-category="declension" style="background:var(--wikt-palette-lavender, #f8f8ff); text-align:center; min-width:45em; border: 1px solid var(--border-color-base,#9e9e9e);" |- style="background: var(--wikt-palette-lightblue, #d9ebff);" ! class="vsToggleElement" style="text-align: left;" colspan="7" | Declension of {lemma} |- class="vsHide" ! style="background:var(--wikt-palette-lightblue, #d9ebff); width:25%" rowspan="2" | ! style="background:var(--wikt-palette-lightblue, #d9ebff)" colspan="2" | masculine ! style="background:var(--wikt-palette-lightblue, #d9ebff)" colspan="2" | feminine ! style="background:var(--wikt-palette-lightblue, #d9ebff)" colspan="2" | neuter |- class="vsHide" ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | singular ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | plural ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | singular ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | plural ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | singular ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | plural]=] for i, case in ipairs(cases) do local row = '\n|- class="vsHide"' row = row .. '\n! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | ' .. cases_full[i] for _, gender in ipairs(genders) do for _, number in ipairs(numbers) do row = row .. '\n| {' .. gender .. '.' .. case .. '.' .. number .. '}' end end result = result .. row end result = result .. "\n{notes_clause}\n|}" elseif pos == "noun" then result = [=[ {| class="inflection-table vsSwitcher" data-toggle-category="declension" style="background:var(--wikt-palette-lavender, #f8f8ff); text-align:center; min-width:45em; border: 1px solid var(--border-color-base,#9e9e9e);" |- style="background: var(--wikt-palette-lightblue, #d9ebff);" ! class="vsToggleElement" style="text-align: left;" colspan="3" | Declension of {lemma} |- class="vsHide" ! style="background:var(--wikt-palette-lightblue, #d9ebff); width:33%" | ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | singular ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | plural]=] for i, case in ipairs(cases) do local row = '\n|- class="vsHide"' row = row .. '\n! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | ' .. cases_full[i] for _, number in ipairs(numbers) do row = row .. '\n| {' .. case .. '.' .. number .. '}' end result = result .. row end result = result .. "\n{notes_clause}\n|}" elseif pos == "verb" then result = [=[ {| class="inflection-table vsSwitcher" data-toggle-category="declension" style="background:var(--wikt-palette-lavender, #f8f8ff); text-align:center; min-width:45em; border: 1px solid var(--border-color-base,#9e9e9e);" |- style="background: var(--wikt-palette-lightblue, #d9ebff);" ! class="vsToggleElement" style="text-align: left;" colspan="7" | Personal forms of {lemma} |- class="vsHide" ! style="background:var(--wikt-palette-lightblue, #d9ebff); width:33%" rowspan="2" | ! style="background:var(--wikt-palette-lightblue, #d9ebff)" colspan="3" | singular ! style="background:var(--wikt-palette-lightblue, #d9ebff)" colspan="3" | plural |- class="vsHide" ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | 1st ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | 2nd ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | 3rd ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | 1st ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | 2nd ! style="background:var(--wikt-palette-lightblue, #d9ebff)" | 3rd]=] for i, mood in ipairs(moods) do local row = '\n|- class="vsHide"' row = row .. '\n! style="background:var(--wikt-palette-lighterblue, #ebf4ff)" | ' .. moods_full[i] for _, number in ipairs(numbers) do for _, person in ipairs(persons) do row = row .. '\n| {' .. person .. number .. '.' .. mood .. '}' end end result = result .. row end result = result .. "\n{notes_clause}\n|}" end local notes_template = [===[ |- class="vsHide" | colspan=3 | <div class="hi-footnote-outer-div"> <div class="hi-footnote-inner-div"> {footnote} </div></div> ]===] -- footnotes data.forms.notes_clause = data.forms.footnote ~= "" and m_string_utilities.format(notes_template, data.forms) or "" data.forms.desc = data.desc data.forms.lemma = format_link(data.lemma) result = m_string_utilities.format(result, data.forms) return result end function export.inflection(frame) local args = frame:getParent().args local pagename = mw.loadData("Module:headword/data").pagename local target_page = args[1] or pagename local main_lemma = args[2] or pagename local resource_page = "Module:inc-ash/dial/data/" .. target_page -- get page data if mw.title.new(resource_page).exists then m_syndata = require(resource_page).list else return frame:expandTemplate{ title = "Template:inc-ash-dial/uncreated", args = { target_page } } end -- remove unnecessary data m_syndata["meaning"] = nil local pos = m_syndata["pos"] or "none" m_syndata["pos"] = nil if m_syndata["note"] then note = m_syndata["note"] m_syndata["note"] = nil end if pos == nil then error("Please specify a valid pos in the resource page " .. resource_page) end -- slots local props = { lang = lang, lemmas = {main_lemma}, slot_list = slots[pos], include_translit = true, create_footnote_obj = nil, canonicalize = nil, preprocess_forms = nil, no_deduplicate_forms = false, combine_metadata_during_dedup = nil, transform_accel_obj = nil, format_forms = nil, generate_link = nil, format_tr = nil, join_spans = nil, allow_footnote_symbols = nil, footnotes = nil, } -- get forms local data = {forms = {}} data.forms.footnote = "" -- local process = "" for location, synonym_set in pairs(m_syndata) do -- check if location is in alias list and use the proper one if so if variety_data['aliases'][location] ~= nil then location = variety_data['aliases'][location] end if synonym_set[1] ~= "" then for i, synonym in ipairs(synonym_set) do local synonym_decomp = mw.text.split(synonym, ":") local lemma = get_lemma(synonym_decomp[1]) synonym_decomp[1] = remove_lemma_indicators(synonym_decomp[1]) if lemma == main_lemma then local notes = mw.text.split(synonym_decomp[2] or "", "; ") for _, gloss in ipairs(notes) do iut.insert_form(data.forms, gloss, {form=synonym_decomp[1]}) -- process = process .. "\nInserted " .. synonym_decomp[1] .. " into " .. gloss end end end end end -- make table -- if pos == "verb" then return process end data.lemma = main_lemma iut.show_forms(data.forms, props) return make_table(data, pos) end function export.main(frame) local args = frame:getParent().args local pagename = mw.loadData("Module:headword/data").pagename local target_page = args[1] or pagename local resource_page = "Module:inc-ash/dial/data/" .. target_page if mw.title.new(resource_page).exists then m_syndata = require(resource_page).list else return frame:expandTemplate{ title = "Template:inc-ash-dial/uncreated", args = { target_page } } end local template = { ["Central"] = {}, ["East"] = {}, ["Northwest"] = {}, ["West"] = {}, ["South"] = {}, } main_title = mw.ustring.gsub((target_page == pagename and pagename or '[[' .. target_page .. ']]'), "[0-9%-]", "") text = [=[ {| class="wikitable mw-collapsible mw-collapsed" style="margin:0; text-align:center;" |- ! style="background:var(--wikt-palette-grey-green-0,#FCFFFC); width:40em" colspan=4 | Dialectal forms of <b><span class="Brah" lang="inc-ash">]=] .. main_title .. '</span></b> (“' .. m_syndata["meaning"] .. '”) ' .. [=[ |- ! style="background:var(--wikt-palette-blue-1,#E8ECFA)" | Variety ! style="background:var(--wikt-palette-blue-1,#E8ECFA)" | Location ! style="background:var(--wikt-palette-blue-1,#E8ECFA)" | Lemmas ! style="background:var(--wikt-palette-blue-1,#E8ECFA); text-align: left;" | Forms]=] .. [=[ <div style="float: right; clear: right; font-size:60%"><span class="plainlinks">[]=] .. tostring(mw.uri.fullUrl("Module:inc-ash/dial/data/" .. target_page, { ["action"] = "edit" })) .. ' edit]</span></div>' m_syndata["meaning"] = nil local pos = m_syndata["pos"] or "none" m_syndata["pos"] = nil if m_syndata["note"] then note = m_syndata["note"] m_syndata["note"] = nil end local categories = "" for location, synonym_set in pairs(m_syndata) do -- check if location is in alias list and use the proper one if so if variety_data['aliases'][location] ~= nil then location = variety_data['aliases'][location] end local sc = "Brah" if location == "Shahbazgarhi" or location == "Mansehra" then sc = "Khar" end if synonym_set[1] ~= "" then local formatted_synonyms = {} local formatted_lemmas = {} for i, synonym in ipairs(synonym_set) do local synonym_decomp = mw.text.split(synonym, ":") local word = remove_lemma_indicators(synonym_decomp[1]) local lemma = get_lemma(synonym_decomp[1], pos, sc) if (synonym_decomp[1] ~= word) or (synonym_decomp[2] ~= nil) then table.insert(formatted_synonyms, { formatted = format_link(word, synonym_decomp[2], nil), form = word, }) end formatted_lemmas[lemma] = format_link(lemma, nil, nil) end local location_data = variety_data[location] local location_name = mw.ustring.gsub(location_data.english or location, "(%(.*%))", "<small>%1</small>") local location_link = location_data.link or location_name table.insert(template[location_data.group], { location_data.order, location_name, location_link, formatted_synonyms, formatted_lemmas }) end end local attested = {} for _, variety in ipairs(variety_list) do local sc = "Brah" if variety == "Northwest" then sc = "Khar" end local colour = variety_colour[variety] if #template[variety] > 0 then table.sort(template[variety], function(first, second) return first[1] < second[1] end) for i, point_data in ipairs(template[variety]) do local forms = {} local lemmas = {} local attested_point = false for lemma_plain, lemma in pairs(point_data[5]) do if lemma_plain == pagename then attested_point = true end table.insert(lemmas, lemma) end for _, word in ipairs(point_data[4]) do if word.form == pagename then attested_point = true end table.insert(forms, word.formatted) end if attested_point then table.insert(attested, {point_data[3], point_data[2]}) categories = categories .. "[[Category:" .. point_data[2] .. " Ashokan Prakrit]]" end text = text .. "\n|-" if i == 1 then text = text .. "\n!rowspan=" .. #template[variety] .. (special_note[variety] and " colspan=2" or "") .. ' style="background:' .. colour .. '"| ' .. (special_note[variety] or variety) end text = text .. ((point_data[2] and not special_note[variety]) and ('\n|style="background:' .. colour .. '"| ' .. '[[w:' .. point_data[3] .. '|' .. point_data[2] .. ']]') or '') .. '\n| ' .. table.concat(lemmas, ", ") .. '\n|style="text-align: left;"| ' .. table.concat(forms, ", ") end end end if note and note ~= "" then text = text .. '\n|-\n! style="background:var(--wikt-palette-rose-1,#FFF7FB); padding-top:5px; padding-bottom: 5px" | ' .. "<small>Note</small>\n| colspan=2|<small><i>" .. note .. "</i></small>" end local res = "Attested at " table.sort(attested, function(first, second) return first[2] < second[2] end) for i, dialect in ipairs(attested) do if i == #attested and i ~= 1 then res = res .. " and " elseif i ~= 1 then res = res .. ", " end res = res .. '[[w:' .. dialect[1] .. '|' .. dialect[2] .. ']]' end return res .. '.\n' .. text .. '\n|}' .. categories end function export.make_map(frame) local width = tonumber(frame.args["width"]) or 1200 local word = frame.args[1] or mw.loadData("Module:headword/data").pagename local syn_data = require("Module:inc-ash/dial/data/" .. word).list local map = [=[ <div style="margin-left: auto; margin-right:auto; width:]=] .. width .. [=[px; max-width:]=] .. width .. [=[px;"> <div><div style="height:]=] .. width * (1615/1500) .. [=[px;width:]=] .. width .. [=[px;overflow:auto;"> <div style="position:relative;top:0;left:0"> <div style="position:relative;top:0;left:0;line-height:0">[[File:India location map.svg|]=] .. width .. [=[px|link=]]</div> ]=] local prelim_data, data, points, legend = {}, {}, {}, {} for location, synonym_set in pairs(syn_data) do -- check if location is in alias list and use the proper one if so local actual_location = location if variety_data['aliases'][location] ~= nil then actual_location = variety_data['aliases'][location] end if location ~= "note" and location ~= "meaning" and location ~= "pos" and variety_data[actual_location].lat and synonym_set[1] ~= "" then for _, term in ipairs(synonym_set) do term = get_lemma(mw.text.split(term, ":")[1]) local lemma = lang:transliterate(term) if prelim_data[term] then prelim_data[term].count = prelim_data[term].count + 1 table.insert(prelim_data[term].locations, location) else prelim_data[term] = { count = 1, locations = { location }, term = remove_lemma_indicators(term), lemma = lemma } end end end end for term, term_data in pairs(prelim_data) do table.insert(data, { term = term_data.term, count = term_data.count, locations = term_data.locations, lemma = term_data.lemma }) end table.sort(data, function(first, second) return first.count > second.count end) local prev_count = data[1].count local greyed, greyed_count = false, 0 local completed_lemmas = {} local num_completed = 0 for _, d in ipairs(data) do local num = -1 if completed_lemmas[d.lemma] then num = completed_lemmas[d.lemma] else num = num_completed + 1 completed_lemmas[d.lemma] = num num_completed = num_completed + 1 end greyed = greyed or (num > 10 and d.count ~= prev_count) or num > 20 local colour = greyed and "CCCCBF" or dots[num] for _, location in ipairs(d.locations) do -- check if location is in alias list and use the proper one if so local actual_location = location if variety_data['aliases'][location] ~= nil then actual_location = variety_data['aliases'][location] end local loc_info = variety_data[actual_location] local top_offset, left_offset = 0, 0 if #syn_data[location] > 1 then top_offset = math.random(-300, 300) / 100 left_offset = math.random(-300, 300) / 100 end local top = ((37.5 - loc_info.lat) * (width*(1615/1500))/(37.5-5)) + top_offset local left = ((loc_info.long - 67) * width/(99-67)) + left_offset local loc_name = mw.ustring.gsub(loc_info.english or actual_location, "%((.*)%)$", "- %1") table.insert(points, tostring( mw.html.create( "div" ) :css( "position", "absolute" ) :css( "top", top .. "px" ) :css( "left", left .. "px" ) :css( "margin", "auto" ) :css( "transform", "translate(-50%,-50%)" ) -- http://stackoverflow.com/questions/33683602/transform-origin-equivalent-for-position-absolute :css( "padding", "5px" ) :css( "border-radius", "100%" ) :css( "background-color", "#" .. colour ) :css( "cursor", "help" ) :css( "opacity", "0.8" ) :attr( "title", loc_name .. " (" .. loc_info.group .. ")" ))) end if greyed then greyed_count = greyed_count + d.count else table.insert(legend, tostring( mw.html.create( "div" ) :css( "display", "inline-block" ) :css( "width", "10px" ) :css( "height", "10px" ) :css( "border-radius", "100%" ) :css( "background-color", "#" .. colour )) .. m_links.full_link({lang = lang, term = mw.ustring.gsub(d.term, "(.+)_[1-9]", "%1"), alt = mw.ustring.gsub(d.term, "(.+)_([1-9])", "%1<sub>%2</sub>")}) .. " (" .. d.count .. ")") end prev_count = d.count end if greyed_count > 0 then table.insert(legend, tostring( mw.html.create( "div" ) :css( "display", "inline-block" ) :css( "width", "10px" ) :css( "height", "10px" ) :css( "border-radius", "100%" ) :css( "background-color", "#CCCCBF" )) .. "other terms (" .. greyed_count .. ")") end map = [=[ {| class="wikitable mw-collapsible mw-collapsed" style="margin:0; text-align:center;" |- ! style="background:var(--wikt-palette-grey-green-0,#FCFFFC); width:40em" colspan=3 | Map of dialectal forms of <b><span class="Brah" lang="inc-ash">]=] .. word .. '</span></b> (“' .. syn_data["meaning"] .. '”) ' .. "\n|-\n|\n" .. map .. table.concat(points) .. '</div></div></div>' .. '<div style="column-count:' .. math.ceil(width/240) .. ';-moz-column-count:' .. math.ceil(width/240) .. ';-webkit-column-count:' .. math.ceil(width/240) .. ';font-size:smaller;line-height:1.7">' .. table.concat(legend, "<br>") .. "</div></div>" .. [=[ |}]=] return map end return export cobguhb7mmna1cmq0gd3ph1galrr9fn Module talk:inc-ash/dial/data 829 141670 230553 2026-03-29T16:59:27Z Pinthura 2424 Moved page from [[en:Module:inc-ash/dial/data]] 230553 wikitext text/x-wiki {| class="wikitable" ! oldid || date/time || username || edit summary |---- | 83837254 || 2025-02-03T11:37:57Z || Svartava || <nowiki></nowiki> |---- | 83837239 || 2025-02-03T11:35:27Z || Svartava || <nowiki></nowiki> |---- | 82260911 || 2024-10-04T06:33:27Z || AryamanA || <nowiki></nowiki> |---- | 82126984 || 2024-10-03T09:56:07Z || AryamanA || <nowiki></nowiki> |---- | 82126957 || 2024-10-03T09:54:27Z || AryamanA || <nowiki></nowiki> |---- | 82126643 || 2024-10-03T09:33:19Z || AryamanA || <nowiki></nowiki> |---- | 82126344 || 2024-10-03T08:22:06Z || AryamanA || <nowiki></nowiki> |---- | 82126325 || 2024-10-03T08:12:11Z || AryamanA || <nowiki></nowiki> |---- | 82123542 || 2024-10-02T23:05:04Z || AryamanA || <nowiki></nowiki> |---- | 82122389 || 2024-10-02T21:17:54Z || AryamanA || <nowiki></nowiki> |---- | 82122387 || 2024-10-02T21:17:47Z || AryamanA || <nowiki>+Jatinga</nowiki> |---- | 60760871 || 2020-10-06T08:42:08Z || Kutchkutch || <nowiki></nowiki> |---- | 60409972 || 2020-09-16T10:47:30Z || Kutchkutch || <nowiki></nowiki> |---- | 60409970 || 2020-09-16T10:46:49Z || Kutchkutch || <nowiki></nowiki> |---- | 60301315 || 2020-09-06T10:00:16Z || Kutchkutch || <nowiki></nowiki> |---- | 60293687 || 2020-09-05T22:41:58Z || AryamanA || <nowiki></nowiki> |---- | 60293662 || 2020-09-05T22:40:20Z || AryamanA || <nowiki></nowiki> |---- | 60293647 || 2020-09-05T22:38:53Z || AryamanA || <nowiki>+dialect aliases</nowiki> |---- | 59779130 || 2020-07-18T12:51:44Z || Kutchkutch || <nowiki></nowiki> |---- | 59496657 || 2020-06-08T09:22:07Z || Kutchkutch || <nowiki></nowiki> |---- | 50070803 || 2018-08-04T03:45:44Z || DerekWinters || <nowiki></nowiki> |---- | 48959318 || 2018-02-07T05:06:52Z || AryamanA || <nowiki></nowiki> |---- | 48959084 || 2018-02-07T04:24:55Z || AryamanA || <nowiki></nowiki> |---- | 48959056 || 2018-02-07T04:22:29Z || AryamanA || <nowiki></nowiki> |---- | 48959013 || 2018-02-07T04:18:53Z || AryamanA || <nowiki></nowiki> |---- | 48958983 || 2018-02-07T04:14:38Z || AryamanA || <nowiki></nowiki> |---- | 48958843 || 2018-02-07T03:34:24Z || AryamanA || <nowiki></nowiki> |---- | 48938204 || 2018-02-06T02:39:20Z || AryamanA || <nowiki></nowiki> |---- | 48937072 || 2018-02-06T00:06:46Z || AryamanA || <nowiki>lol</nowiki> |---- | 48936211 || 2018-02-05T23:57:02Z || AryamanA || <nowiki></nowiki> |---- | 48933921 || 2018-02-05T23:31:17Z || AryamanA || <nowiki>start</nowiki> |} gpow37l1lsdxr7lprw1jqirtwtekmge Module:inc-ash/dial/data 828 141671 230554 2026-03-29T16:59:37Z Pinthura 2424 Moved page from [[en:Module:inc-ash/dial/data]] ([[Module talk:inc-ash/dial/data|history]]) 230554 Scribunto text/plain local variety_data = {} variety_data['aliases'] = { ['Barabar Hill'] = 'Barabar', ['Barabar Caves'] = 'Barabar', ['Bhabru'] = 'Calcutta-Bairat', ['Kaushambi'] = 'Allahabad-Kosambi', ['Khalsi'] = 'Kalsi', ['Kosambi'] = 'Allahabad-Kosambi', ['Lauria-Nandangarh'] = 'Lauriya-Nandangarh', ['Lauria-Araraj'] = 'Lauriya-Araraj', ['Mathia'] = 'Lauriya-Nandangarh', ['Radhia'] = 'Lauriya-Araraj', ['Rummindei'] = 'Lumbini', ['Saru Maru'] = 'Panguraria', } -- Northwest variety_data["Shahbazgarhi"] = { group = "Northwest", order = 1, link = "Shahbaz Garhi#Ashokan_inscriptions", lat = 34.235556, long = 72.16, } variety_data["Mansehra"] = { group = "Northwest", order = 2, link = "Mansehra#Maurya Dynasty", lat = 34.333889, long = 73.201389, } variety_data["Kanadahar"] = { group = "Northwest", order = 3, link = "Kandahar", lat = 31.616667, long = 65.716667, } variety_data["Ranigat"] = { group = "Northwest", order = 4, link = "Ranigat", lat = 34.2306, long = 72.4488, } -- Central variety_data["Kalsi"] = { group = "Central", order = 1, link = "Rock edicts of Khalsi", lat = 30.5215481, long = 77.8418148, } variety_data["Delhi-Topra"] = { group = "Central", order = 2, link = "Topra_Kalan#Topra_Ashokan_Pillar", lat = 30.1252, long = 77.1623, } variety_data["Delhi-Meerut"] = { group = "Central", order = 3, link = "Ashokan_Edicts_in_Delhi#Delhi-Meerut_pillar", lat = 28.99, long = 77.7, } variety_data["Rampurva"] = { group = "Central", order = 4, link = "Rampurva capitals", lat = 26.8429, long = 84.696, } variety_data["Lauriya-Nandangarh"] = { group = "Central", order = 5, link = "Lauria Nandangarh", lat = 26.983333, long = 84.4, } variety_data["Lauriya-Araraj"] = { group = "Central", order = 6, link = "Lauriya Araraj", lat = 26.5439379, long = 84.6442085, } variety_data["Lumbini"] = { group = "Central", order = 7, link = "Lumbini", lat = 27.481389, long = 83.275833, } variety_data["Nigali-Sagar"] = { group = "Central", order = 8, lat = 27.533333, long = 83.05, } variety_data["Sarnath"] = { group = "Central", order = 9, link = "Sarnath", lat = 25.3811, long = 83.0214, } variety_data["Rupnath"] = { group = "Central", order = 10, link = "List of Edicts of Ashoka", lat = 24.583333, long = 82.066667, } variety_data["Bairat"] = { group = "Central", order = 11, link = "Viratnagar", lat = 27.45, long = 76.18, } variety_data["Sanchi"] = { group = "Central", order = 12, link = "Sanchi", lat = 23.480656, long = 77.7363, } variety_data["Allahabad-Kosambi"] = { group = "Central", order = 13, link = "Kosambi", lat = 25.338984, long = 81.392899, } variety_data["Sahasram"] = { group = "Central", order = 14, link = "Sasaram", lat = 24.95, long = 84.03, } variety_data["Gujarra"] = { group = "Central", order = 15, link = "Datia district", lat = 25.57699, long = 78.54594, } variety_data["Barabar"] = { group = "Central", order = 16, link = "Barabar Caves", lat = 25.005, long = 85.063, } variety_data["Calcutta-Bairat"] = { group = "Central", order = 17, link = "Bairat Temple", lat = 27.417116, long = 76.16229, } variety_data["Panguraria"] = { group = "Central", order = 18, link = "Saru Maru", lat = 22.729949, long = 77.519910, } variety_data["Bahapur"] = { group = "Central", order = 19, link = "commons:Category:Ashoka Minor Rock Edict, Bahapur, Delhi", lat = 28.55856, long = 77.25662, } variety_data["Ahraura"] = { group = "Central", order = 20, link = "Ahraura", lat = 25.02, long = 83.02, } -- East variety_data["Dhauli"] = { group = "East", order = 1, link = "Dhauli", lat = 20.192372, long = 85.839489, } variety_data["Jaugada"] = { group = "East", order = 2, link = "Jaugada", lat = 19.522556, long = 84.81225, } -- West variety_data["Girnar"] = { group = "West", order = 1, link = "Girnar", lat = 21.494722, long = 70.505556, } variety_data["Sopara"] = { group = "West", order = 2, link = "Nala Sopara", lat = 19.4154, long = 72.8613, } -- South variety_data["Yerragudi"] = { group = "South", order = 1, link = "List of Edicts of Ashoka", lat = 13.7863798, long = 78.0096402, } variety_data["Siddapura"] = { group = "South", order = 2, link = "Siddapura, Uttara Kannada", lat = 14.347, long = 74.894, } variety_data["Brahmagiri"] = { group = "South", order = 3, link = "Brahmagiri", lat = 14.813889, long = 76.806389, } variety_data["Maski"] = { group = "South", order = 4, link = "Maski", lat = 15.96, long = 76.65, } variety_data["Jatinga-Rameshwara"] = { group = "South", order = 5, link = "commons:Category:Ashoka Minor Rock Edict, Jatinga Rameshwara", lat = 14.84972, long = 76.79083, } variety_data["Rajula-Mandagiri"] = { group = "South", order = 6, link = "commons:Category:Ashoka Minor Rock Edict, Rajula Mandagiri", lat = 15.43500, long = 77.47166, } variety_data["Udegolam"] = { group = "South", order = 8, link = "commons:Category:Ashoka Minor Rock Edict, Udegolam", lat = 15.52000, long = 76.83361, } variety_data["Nittur"] = { group = "South", order = 9, link = "commons:Category:Ashoka Minor Rock Edict, Nittur", lat = 15.54717, long = 76.83270, } variety_data["Gavimath"] = { group = "South", order = 10, link = "Palkigundu and Gavimath", lat = 15.33729, long = 76.16213, } variety_data["Palkigundu"] = { group = "South", order = 11, link = "Palkigundu and Gavimath", lat = 15.34416, long = 76.13694, } return variety_data 59c5xpowmw487cxvxdt5twtst8fawhn Module talk:inc-ash/dial/data/documentation 829 141672 230555 2026-03-29T16:59:47Z Pinthura 2424 Moved page from [[en:Module:inc-ash/dial/data/documentation]] 230555 wikitext text/x-wiki {| class="wikitable" ! oldid || date/time || username || edit summary |---- | 72943601 || 2023-05-07T21:09:11Z || AryamanA || <nowiki>Created page with "{{subpages|Module:inc-ash/dial/data}} <includeonly> [[Category:Ashokan Prakrit modules]] </includeonly>"</nowiki> |} dp9v9z3ikvwk16v9ehed96q1okt211f