Module:zh-dial-syn

Hello, you have come here looking for the meaning of the word Module:zh-dial-syn. In DICTIOUS you will not only get to know all the dictionary meanings for the word Module:zh-dial-syn, but we will also tell you about its etymology, its characteristics and you will know how to say Module:zh-dial-syn in singular and plural. Everything you need to know about the word Module:zh-dial-syn you have here. The definition of the word Module:zh-dial-syn will help you to be more precise and correct when speaking or writing your texts. Knowing the definition ofModule:zh-dial-syn, as well as those of other words, enriches your vocabulary and provides you with more and better linguistic resources.

Chinese dialectal synonyms module. See {{zh-dial}}.


local export = {}
local m_links = require("Module:links")
local zh = require("Module:languages").getByCode("zh")

local variety_list = {
	"Classical", "Formal", "Taxonomic",
	"Northeastern Mandarin", "Jilu Mandarin", "Jiaoliao Mandarin",
	"Central Plains Mandarin", "Lanyin Mandarin",
	"Southwestern Mandarin", "Jianghuai Mandarin",
	"Mandarin", "Cantonese", "Gan", "Hakka", "Huizhou", "Jin", "Jiuxing Yumin",
	"Northern Min", "Eastern Min", "Southern Min", "Puxian Min", "Central Min", "Shaojiang Min", "Zhongshan Min",
	"Southern Pinghua", "Northern Pinghua", "Shehua", "Waxiang", "Wu", "Xiang", "Xiangnan Tuhua", "Yuebei Tuhua"
}

local variety_colour = {
	-- READ BEFORE EDITING: 
	--  1. You must use colours from the palette so the template looks
	--     good in dark mode. See ]
	--  2. These colours are duplicated in ]. 
	--     Make sure the two lists are kept in sync.
					= "var(--wikt-palette-grey-scarlet-1, #FAF0EC)",
						= "var(--wikt-palette-grey-scarlet-1, #FAF0EC)",
					= "var(--wikt-palette-grey-scarlet-1, #FAF0EC)",
	
		= "var(--wikt-palette-grey-amber-1, #FCFAF5)",
				= "var(--wikt-palette-grey-amber-1, #FCFAF5)",
			= "var(--wikt-palette-grey-amber-1, #FCFAF5)",
		= "var(--wikt-palette-grey-amber-1, #FCFAF5)",
				= "var(--wikt-palette-grey-amber-1, #FCFAF5)",
		= "var(--wikt-palette-grey-amber-1, #FCFAF5)",
			= "var(--wikt-palette-grey-amber-1, #FCFAF5)",
					= "var(--wikt-palette-grey-amber-1, #FCFAF5)",
	
					= "var(--wikt-palette-grey-cyan-1, #EBF3F5)", -- doubled up with Tuhua
	
							= "var(--wikt-palette-grey-teal-1, #EAF4EF)", -- doubled up with Shehua/Waxiang
	
						= "var(--wikt-palette-grey-red-1, #FBEFF0)",
	
						= "var(--wikt-palette-grey-yellow-1, #FCFAF5)",
	
							= "var(--wikt-palette-grey-orange-1, #F9F0E8)",
	
				= "var(--wikt-palette-grey-magenta-1, #F7EFFA)",
	
				= "var(--wikt-palette-grey-green-1, #EDF4EA)",
					= "var(--wikt-palette-grey-green-1, #EDF4EA)",
				= "var(--wikt-palette-grey-green-1, #EDF4EA)",
					= "var(--wikt-palette-grey-green-1, #EDF4EA)",
					= "var(--wikt-palette-grey-green-1, #EDF4EA)",
				= "var(--wikt-palette-grey-green-1, #EDF4EA)",
				= "var(--wikt-palette-grey-green-1, #EDF4EA)",
	
			= "var(--wikt-palette-grey-indigo-1, #F1F1FB)",
			= "var(--wikt-palette-grey-indigo-1, #F1F1FB)",
	
						= "var(--wikt-palette-grey-teal-1, #EAF4EF)", -- doubled up with Gan
						= "var(--wikt-palette-grey-teal-1, #EAF4EF)",
	
							= "var(--wikt-palette-grey-purple-1, #F5F0FC)",
	
						= "var(--wikt-palette-grey-blue-1, #ECF2FC)",
	
				= "var(--wikt-palette-grey-cyan-1, #EBF3F5)", -- doubled up with Cantonese
				= "var(--wikt-palette-grey-cyan-1, #EBF3F5)",
}

local special_note = {
	 = "]",
	 = "Formal <small>(])</small>",
	 = "Taxonomic name",
}

function export.main(frame)
	local data = {}
	local args = frame:getParent().args
	local pagename = mw.title.getCurrentTitle().text
	local target_page = args or pagename
	local resource_page = "Module:zh/data/dial-syn/" .. target_page
	local m_syndata
	if mw.title.new(resource_page).exists then
		m_syndata = require(resource_page).list
	else
		return frame:expandTemplate{ title = "Template:zh-dial/uncreated", args = { target_page } }
	end
	
	--allow alternative title linking for sum-of-parts tables
	local title = m_syndata and m_syndata ~= "" and m_syndata or target_page
	
	local main_title = m_links.full_link( { term = title:gsub("", "") .. "//", lang = zh, tr = "-" } )
	
	local syn_table = { [=[
	<div class="NavFrame" data-toggle-category="dialectal synonyms" style="border:0; max-width: 40em; text-align:center;">
	<div class="NavHead" style="font-size:105%; border:1px solid var(--border-color-base, #a2a9b1); background-color: var(--wikt-palette-indigo-3, #e0defa); text-align:center; margin:0;">Dialectal synonyms of ]=] ..
		main_title .. ' (“' .. m_syndata .. '”) ' ..
		"]\n' .. [=[</div>
	<div class="NavContent" style="border-top:0"> 
	{| class="wikitable" style="margin:0; text-align:center; width: 100%; border-top: 0"
	|-
	! style="background:var(--wikt-palette-indigo-3, #e0defa); border-top:0" | Variety
	! style="background:var(--wikt-palette-indigo-3, #e0defa); border-top:0" | Location
	! style="background:var(--wikt-palette-indigo-3, #e0defa); border-top:0" | Words]=] .. [=[
	<div style="float: right; clear: right; font-size:60%"><span class="plainlinks">=] ..
		tostring(mw.uri.fullUrl("Module:zh/data/dial-syn/" .. target_page, {  = "edit" })) ..
	' edit]</span></div>' }
	
	local note = m_syndata
	if m_syndata == "" then
		m_syndata = { target_page }
	elseif m_syndata == "-" then
		m_syndata = nil
	end

	local m_dialdata = require("Module:zh/data/dial")
	local variety = ""
	local current_variety = ""
	local location_name = ""
	local location_link = ""
	local colour = ""
	local exists = {}
	local variety_count = {}
	local formatted_synonyms = {}
	local loc = {}
	local cur = {}
	for i, v in pairs(variety_list) do
		variety_count = 0
	end

	for i = 1,#m_dialdata,1 do
		loc = m_dialdata
		cur = m_syndata or {""}
		if cur == "" then
			exists = false
		else
			exists = true
			variety = loc.group
			variety_count = variety_count + 1
		end
	end
	
	for i = 1,#exists,1 do
		if exists then
			loc = m_dialdata
			variety = loc.group
			location_name = (loc.english or loc.key):gsub("(%(.*%))", "<small>%1</small>")
			location_link = loc.link or loc.key
			formatted_synonyms = {}
			for i, synonym in ipairs(m_syndata) do
				local synonym_note = mw.text.split(synonym, ":")
				local synonym_etym = mw.text.split(synonym_note, "_")
				local syn, etym, note = synonym_etym, synonym_etym, synonym_note
				local synonym_link = m_links.full_link( {
						term = syn .. (etym and string.format("#Etymology %s", etym) or "") .. "//",
						alt = etym and (syn .. string.format("<sub>%s</sub>", etym)) .. "//",
						lang = zh,
						tr = "-"
					} )
				if note == "GT" then
					require('Module:debug/track')("zh-dial-GT")
				end
				note = note and ' <span style="font-size:60%"><i>' .. note .. '</i></span>' or ""
				table.insert(formatted_synonyms, synonym_link .. note)
			end
			table.insert(syn_table, "\n|-")
			if variety ~= current_variety then
				current_variety = variety
				colour = variety_colour
				table.insert(syn_table, "\n!rowspan=" .. variety_count .. (special_note and " colspan=2" or "") .. 
				' style="background:' .. colour .. '"| ' .. (special_note or variety))
			end
			table.insert(syn_table,
				((location_name and not special_note) and ('\n|style="background:' .. colour .. '"| ' .. 
				']') or '') ..
				'\n|style="background:' .. colour .. '"| ' ..
				table.concat(formatted_synonyms, ", "))
		end
	end
	
	if note and note ~= "" then
		table.insert(syn_table, '\n|-\n! style="padding-top:5px; padding-bottom: 5px" | ' ..
			"<small>Note</small>\n| colspan=2|<small><i>" .. note .. "</i></small>")
	end
	
	table.insert(syn_table, '\n|}</div></div>')
	
	return table.concat(syn_table, "")
end

return export