text:
Module:User:RichardW57/20230306/Module:headword

local export = {}

local rfind = mw.ustring.find local rgmatch = mw.ustring.gmatch local rsubn = mw.ustring.gsub local ulen = mw.ustring.len local unfc = mw.ustring.toNFC local uupper = mw.ustring.upper

local m_data = mw.loadData("Module:headword/data")

local title = mw.title.getCurrentTitle

local isLemma = m_data.lemmas local isNonLemma = m_data.nonlemmas local notranslit = m_data.notranslit local toBeTagged = m_data.toBeTagged

-- If set to true, categories always appear, even in non-mainspace pages local test_force_categories = false

-- version of rsubn that discards all but the first return value local function rsub(term, foo, bar) local retval = rsubn(term, foo, bar) return retval end

local function track(page, code) local tracking_page = "headword/" .. page if code then require("Module:debug/track"){tracking_page, tracking_page .. "/" .. code} else require("Module:debug/track")(tracking_page) end return true end

local function test_script(text, script_code) if type(text) == "string" and type(script_code) == "string" then local sc = require("Module:scripts").getByCode(script_code) local characters if sc then characters = sc:getCharacters end

local out if characters then text = rsub(text, "%W", "") out = rfind(text, "[" .. characters .. "]") end

if out then return true else return false end else mw.log("Parameters to test_script were incorrect.") return nil end end

local spacingPunctuation = "[%s%p]+" -- List of punctuation or spacing characters that are found inside of words.	 Used to exclude characters from the regex above. local wordPunc = "-־׳״'.·*’་•:" local notWordPunc = "[^" .. wordPunc .. "]+"

-- Return true if the given head is multiword according to the algorithm used -- in full_headword. function export.head_is_multiword(head) for possibleWordBreak in rgmatch(head, spacingPunctuation) do		if rfind(possibleWordBreak, notWordPunc) then return true end end

return false end

-- Add links to a multiword head. function export.add_multiword_links(head) local function workaround_to_exclude_chars(s) return rsub(s, notWordPunc, "]]%1[[") end

head = "" .. rsub(head, spacingPunctuation, workaround_to_exclude_chars) .. "" --[=[	use this when workaround is no longer needed:

head = "" .. rsub(head, WORDBREAKCHARS, "%1") .. ""

Remove any empty links, which could have been created above at the beginning or end of the string. ]=]	head = head:gsub("%[%[%]%]", "") return head end

local function non_categorizable return (title:inNamespace("") and title.text:find("^Unsupported titles/")) or (title:inNamespace("Appendix") and title.text:find("^Gestures/")) end

local function preprocess(data, postype) --[=[	Special:WhatLinksHere/Wiktionary:Tracking/headword/heads-not-table Special:WhatLinksHere/Wiktionary:Tracking/headword/translits-not-table ]=]	if type(data.heads) ~= "table" then if data.heads then track("heads-not-table") end

data.heads = { data.heads } end

if type(data.translits) ~= "table" then if data.translits then track("translits-not-table") end

data.translits = { data.translits } end

if type(data.transcriptions) ~= "table" then if data.transcriptions then track("transcriptions-not-table") end

data.transcriptions = { data.transcriptions } end

if not data.heads or #data.heads == 0 then data.heads = {""} end

-- Determine if term is reconstructed local is_reconstructed = false --data.lang:getType == "reconstructed" --	or title.nsText == "Reconstruction"

-- Create a default headword. local subpagename = title.subpageText:gsub("^Unsupported titles/", "") local pagename = title.text local default_head if is_reconstructed then default_head = require("Module:utilities").plain_gsub(pagename, data.lang:getCanonicalName .. "/", "") else default_head = subpagename end

local unmodified_default_head = default_head

-- Add links to multi-word page names when appropriate if not m_data.no_multiword_links[data.lang:getCode] and not is_reconstructed and export.head_is_multiword(default_head) then default_head = export.add_multiword_links(default_head) end

if is_reconstructed then default_head = "*" .. default_head end

-- If using a discouraged character sequence, add to maintenance category for i, script in ipairs(data.sc) do		if script:hasNormalizationFixes == true then if script:fixDiscouragedSequences(unfc(data.heads[i])) ~= unfc(data.heads[i]) then table.insert(data.categories, "Pages using discouraged character sequences") end end end

-- If a head is the empty string "", then replace it with the default for i, head in ipairs(data.heads) do		if head == "" then head = default_head else if head == default_head and data.lang:getCanonicalName == "English" then table.insert(data.categories, data.lang:getCanonicalName .. " terms with redundant head parameter") end end data.heads[i] = head end

-- If the first head is multiword (after removing links), maybe insert into "LANG multiword terms" if (not data.nomultiwordcat) and postype == "lemma" and data.sc[1]:hasSpaces and (not m_data.no_multiword_cat[data.lang:getCode]) then -- Check for spaces or hyphens, but exclude prefixes and suffixes. -- Use the pagename, not the head= value, because the latter may have extra -- junk in it, e.g. superscripted text that throws off the algorithm. local checkpattern = ".[%s%-፡]." if m_data.hyphen_not_multiword_sep[data.lang:getCode] then -- Exclude hyphens if the data module states that they should for this language checkpattern = ".[%s፡]." end if rfind(unmodified_default_head, checkpattern) and not non_categorizable then table.insert(data.categories, data.lang:getCanonicalName .. " multiword terms") end end

for i, val in pairs(data.translits) do		data.translits[i] = {display = val, is_manual = true} end

-- Make transliterations for i, head in ipairs(data.heads) do		local translit = data.translits[i]

-- Try to generate a transliteration if necessary if translit and translit.display == "-" then translit = nil elseif not translit and not notranslit[data.lang:getCode] and data.sc[i]:isTransliterated then translit = (data.lang:transliterate(require("Module:links").remove_links(head), data.sc[i])) translit = translit and mw.text.trim(translit)

-- There is still no transliteration? -- Add the entry to a cleanup category. if not translit then translit = " transliteration needed " table.insert(data.categories, "Requests for transliteration of " .. data.lang:getCanonicalName .. " terms") end

if translit then translit = {display = translit, is_manual = false} end end

-- Link to the transliteration entry for languages that require this if translit and data.lang:link_tr then translit.display = require("Module:links").full_link{ term = translit.display, lang = data.lang, sc = require("Module:scripts").getByCode("Latn"), tr = "-" }		end

data.translits[i] = translit end

if data.id and type(data.id) ~= "string" then error("The id in the data table should be a string.") end end

-- Format a headword with transliterations local function format_headword(data) local m_scriptutils = require("Module:script utilities")

-- Are there non-empty transliterations? -- Need to do it this way because translit[1] might be nil while translit[2] is not local has_translits = false local has_manual_translits = false

-- Format the headwords for i, head in ipairs(data.heads) do		if data.translits[i] or data.transcriptions[i] then has_translits = true end if data.translits[i] and data.translits[i].is_manual or data.transcriptions[i] then has_manual_translits = true end

-- Apply processing to the headword, for formatting links and such if head:find("[[", nil, true) and (not data.sc[i] or data.sc[i]:getCode ~= "Imag") then			head = require("Module:links").language_link({term = head, lang = data.lang}, false)		else			head = data.lang:makeDisplayText(head, data.sc[i], true)		end

-- Add language and script wrapper if i == 1 then head = m_scriptutils.tag_text(head, data.lang, data.sc[i], "head", nil, data.id) else head = m_scriptutils.tag_text(head, data.lang, data.sc[i], "head", nil) end

data.heads[i] = head end

local translits_formatted = ""

if has_manual_translits then -- Special:WhatLinksHere/Wiktionary:Tracking/headword/has-manual-translit -- Special:WhatLinksHere/Wiktionary:Tracking/headword/has-manual-translit/LANG track("has-manual-translit", data.lang:getCode) end

if has_translits then

-- Format the transliterations local translits = data.translits local transcriptions = data.transcriptions

if translits then -- using pairs instead of ipairs in case there is a gap for i, _ in pairs(translits) do				if type(i) == "number" then translits[i] = m_scriptutils.tag_translit(translits[i].display, data.lang:getCode, "head", nil, translits[i].is_manual) end end end

if transcriptions then for i, _ in pairs(transcriptions) do				if type(i) == "number" then transcriptions[i] = m_scriptutils.tag_transcription(transcriptions[i], data.lang:getCode, "head") end end end

for i = 1, math.max(#translits, #transcriptions) do			local translits_formatted = {} table.insert(translits_formatted, translits[i] and translits[i] or "") table.insert(translits_formatted, (translits[i] and transcriptions[i]) and " " or "") table.insert(translits_formatted, transcriptions[i] and "/" .. transcriptions[i] .. "/" or "") data.translits[i] = table.concat(translits_formatted) end

translits_formatted = " (" .. table.concat(data.translits, " or ") .. ")"

local transliteration_page = mw.title.new(data.lang:getCanonicalName .. " transliteration", "Wiktionary")

if transliteration_page then local success, exists = pcall(function return transliteration_page.exists end) if success and exists then translits_formatted = " •" .. translits_formatted end end end

return table.concat(data.heads, " or ") .. translits_formatted end

local function format_genders(data) if data.genders and #data.genders > 0 then local pos_for_cat if not data.nogendercat and not m_data.no_gender_cat[data.lang:getCode] then local pos_category = data.pos_category:gsub("^reconstructed ", "") pos_for_cat = m_data.pos_for_gender_number_cat[pos_category] end local text, cats = require("Module:gender and number").format_genders(data.genders, data.lang, pos_for_cat) for _, cat in ipairs(cats) do			table.insert(data.categories, cat) end return " " .. text else return "" end end

local function format_inflection_parts(data, parts) for j, part in ipairs(parts) do		if type(part) ~= "table" then part = {term = part} end

local left_qualifiers, right_qualifiers local reftext

left_qualifiers = part.q and #part.q > 0 and part.q or part.qualifiers and #part.qualifiers > 0 and part.qualifiers if left_qualifiers then left_qualifiers = require("Module:qualifier").format_qualifier(left_qualifiers) .. " "

-- Special:WhatLinksHere/Wiktionary:Tracking/headword/qualifier track("qualifier") end right_qualifiers = part.qq and #part.qq > 0 and part.qq		if right_qualifiers then right_qualifiers = " " .. require("Module:qualifier").format_qualifier(right_qualifiers)

-- Special:WhatLinksHere/Wiktionary:Tracking/headword/qualifier track("qualifier") end if part.refs and #part.refs > 0 then local refs = {} for _, ref in ipairs(part.refs) do				if type(ref) ~= "table" then ref = {text = ref} end local refargs if ref.name or ref.group then refargs = {name = ref.name, group = ref.group} end table.insert(refs, mw.getCurrentFrame:extensionTag("ref", ref.text, refargs)) end reftext = table.concat(refs) end

local partaccel = part.accel local face = part.hypothetical and "hypothetical" or "bold"

-- Here the final part 'or data.nolink' allows to have 'nolink=true' -- right into the 'data' table to disable links of the entire headword -- when inflected forms aren't entry-worthy, e.g.: in Vulgar Latin local nolink = part.hypothetical or part.nolink or data.nolink

local separator = part.separator or j > 1 and " or " -- use "" to request no separator

if part.label then -- There should be a better way of italicizing a label. As is, this isn't customizable. part = "''" .. part.label .. "''"		else -- Convert the term into a full link -- Don't show a transliteration here, the consensus seems to be not to -- show them in headword lines to avoid clutter. part = require("Module:links").full_link(				{					term = not nolink and part.term or nil,					alt = part.alt or (nolink and part.term or nil),					lang = part.lang or data.lang,					sc = part.sc or parts.sc or (not part.lang and data.sc[1]),					id = part.id,					genders = part.genders,					tr = part.translit or (not (parts.enable_auto_translit or data.inflections.enable_auto_translit) and "-" or nil),					ts = part.transcription,					accel = parts.accel or partaccel,				},				face,				false				) end

if left_qualifiers then part = left_qualifiers .. part end if reftext then part = part .. reftext end if right_qualifiers then part = part .. right_qualifiers end if separator then part = separator .. part end

parts[j] = part end

local parts_output = ""

if #parts > 0 then parts_output = " " .. table.concat(parts) elseif parts.request then parts_output = " [please provide] " .. require("Module:utilities").format_categories(				{"Requests for inflections in " .. data.lang:getCanonicalName .. " entries"},				lang,				nil,				nil,				data.force_cat_output or test_force_categories,				data.sc[1]				) end

return "''" .. parts.label .. "''" .. parts_output end

-- Format the inflections following the headword local function format_inflections(data) if data.inflections and #data.inflections > 0 then -- Format each inflection individually for key, infl in ipairs(data.inflections) do			data.inflections[key] = format_inflection_parts(data, infl) end

return " (" .. table.concat(data.inflections, ", ") .. ")" else return "" end end

-- Return "lemma" if the given POS is a lemma, "non-lemma form" if a non-lemma form, or nil -- if unknown. The POS passed in must be in its plural form ("nouns", "prefixes", etc.). -- If you have a POS in its singular form, call pluralize in Module:string utilities to -- pluralize it in a smart fashion that knows when to add '-s' and when to add '-es'. -- -- If `best_guess` is given and the POS is in neither the lemma nor non-lemma list, guess -- based on whether it ends in " forms"; otherwise, return nil. function export.pos_lemma_or_nonlemma(plpos, best_guess) -- Is it a lemma category? if isLemma[plpos] or isLemma[plpos:gsub("^reconstructed ", "")] then return "lemma" -- Is it a nonlemma category? elseif isNonLemma[plpos] or isNonLemma[plpos:gsub("^reconstructed ", "")] or isLemma[plpos:gsub("^mutated ", "")] or isNonLemma[plpos:gsub("^mutated ", "")] then return "non-lemma form" elseif best_guess then return plpos:find(" forms$") and "non-lemma form" or "lemma" else return nil end end

local function show_headword_line(data) local namespace = title.nsText local langname = data.lang:getCanonicalName

-- Check the namespace against the language type --	if namespace == "" then --		local langtype = data.lang:getType --		if langtype == "reconstructed" then --			error("Entries in " .. langname .. " must be placed in the Reconstruction: namespace") --		elseif langtype == "appendix-constructed" then --			error("Entries in " .. langname .. " must be placed in the Appendix: namespace") --		end --	end

local tracking_categories = {}

if not data.noposcat then local pos_category = langname .. " " .. data.pos_category -- FIXME: User:Theknightwho Why is this special case here? Please add an explanatory comment. if pos_category ~= "Translingual Han characters" then table.insert(data.categories, 1, pos_category) end end

if data.sccat and data.sc then for i, script in ipairs(data.sc) do table.insert(data.categories, langname .. " " .. data.pos_category				.. " in " .. script:getDisplayForm) end end

-- Is it a lemma category? local postype = export.pos_lemma_or_nonlemma(data.pos_category) if not postype then -- We don't know what this category is, so tag it with a tracking category. --[=[		Special:WhatLinksHere/Wiktionary:Tracking/headword/unrecognized pos ]=]		table.insert(tracking_categories, "head tracking/unrecognized pos") track("unrecognized pos", data.lang:getCode) track("unrecognized pos/pos/" .. data.pos_category, data.lang:getCode) elseif not data.noposcat then table.insert(data.categories, 1, langname .. " " .. postype .. "s") end

-- Preprocess preprocess(data, postype)

if namespace == "" -- and data.lang:getType ~= "reconstructed" then local m_links = require("Module:links") for i, head in ipairs(data.heads) do			if title.prefixedText ~= m_links.getLinkPage(m_links.remove_links(head), data.lang, data.sc[i]) then --[=[				Special:WhatLinksHere/Wiktionary:Tracking/headword/pagename spelling mismatch ]=]				track("pagename spelling mismatch", data.lang:getCode) break end end end

-- Format and return all the gathered information return format_headword(data) .. format_genders(data) .. format_inflections(data) .. require("Module:utilities").format_categories(			tracking_categories, data.lang, data.sort_key, nil,			data.force_cat_output or test_force_categories, data.sc[1]			) end

function export.full_headword(data) local tracking_categories = {}

local pagename = title.text local fullPagename = title.fullText local namespace = title.nsText

if data.getCanonicalName then error("In full_headword, the first argument `data` needs to be a Lua object (table) of properties, not a language object") end

if not data.lang or type(data.lang) ~= "table" or not data.lang.getCode then error("In full_headword, the first argument `data` needs to be a Lua object (table) and `data.lang` must be a language object") end if not data.heads then -- This is the same practice as the main headword template. track("heads-is-nil") data.heads = {} elseif type(data.heads) ~= "table" then error("In full_headword, `data.heads` must be an array of heads but is a " .. type(data.heads)) elseif data.heads[1] == "" then -- This practice is nasty and needs to be eradicated. track("heads-is-blank-string") if #data.heads > 1 then track("heads-is-blank-string-and-multiple") end end

-- Try to detect the script(s) if not provided. if data.sc then if data.sc._type == "script object" then data.sc = {data.sc} else error("No support now or ever for passing in an array of script objects in `data.sc`; this will be supported using headword objects in `data.heads`") end end -- FIXME! User:Theknightwho Checking for #data.sc ~= #data.heads and silently overwriting it is bad software -- practice. I will be ripping out and rewriting this code. --ben if (not data.sc) or #data.sc == 0 or (#data.sc ~= #data.heads and (#data.sc > 1 or #data.heads > 1)) then data.sc = {} if #data.heads > 1 then for i, head in ipairs(data.heads) do				data.sc[i] = data.lang:findBestScript(data.heads[i]) end else data.sc[1] = data.lang:findBestScript(data.heads[1] ~= "" and data.heads[1] or pagename) end else -- Track uses of sc parameter local best = data.lang:findBestScript(pagename) track("sc")

if data.sc[1]:getCode == best:getCode then track("sc/redundant", data.sc[1]:getCode) else track("sc/needed", data.sc[1]:getCode) end end

-- Assumes that the scripts in "toBeTagged" will never occur in the Reconstruction namespace. -- (FIXME: Don't make assumptions like this, and if you need to do so, throw an error if the assumption is violated.) -- Avoid tagging ASCII as Hani even when it is tagged as Hani in the headword, as in check. The check for ASCII -- might need to be expanded to a check for any Latin characters and whitespace or punctuation. Where there are -- multiple headwords, use the script for the first. (FIXME: User:Theknightwho Why are we using the script for the	-- first headword for all of them rather than the correct per-headword script? Please either expand this comment	-- explaining why, or correct it if it's a problem.) local displayTitle if (namespace == "" and data.sc and toBeTagged[data.sc[1]:getCode]			and not pagename:find "^[%z\1-\127]+$") or (data.sc[1]:getCode == "Jpan" and (test_script(pagename, "Hira") or test_script(pagename, "Kana"))) or (data.sc[1]:getCode == "Kore" and (test_script(pagename, "Hang"))) then displayTitle = '' .. pagename .. ' '	-- Keep Han entries region-neutral in the display title. elseif namespace == "" and data.sc and not pagename:find "^[%z\1-\127]+$" and (data.sc[1]:getCode == "Hant" or data.sc[1]:getCode == "Hans") then displayTitle = ' ' .. pagename .. ' '	elseif namespace == "Reconstruction" then displayTitle, matched = rsubn(			fullPagename,			"^(Reconstruction:[^/]+/)(.+)$",			function(before, term)				return before ..					require("Module:script utilities").tag_text( term, data.lang, data.sc[1] )			end		)

if matched == 0 then displayTitle = nil end end

if displayTitle then local frame = mw.getCurrentFrame frame:callParserFunction(			"DISPLAYTITLE",			displayTitle		) end

if data.force_cat_output then --[=[		Special:WhatLinksHere/Wiktionary:Tracking/headword/force cat output ]=]		track("force cat output") end

-- Were any categories specified? if data.categories and #data.categories > 0 then local lang_name = require("Module:pattern utilities").pattern_escape(data.lang:getCanonicalName) for _, cat in ipairs(data.categories) do -- Does the category begin with the language name? If not, tag it with a tracking category. if not rfind(cat, "^" .. lang_name) then mw.log(cat, data.lang:getCanonicalName) table.insert(tracking_categories, "head tracking/no lang category")

--[=[				Special:WhatLinksHere/Wiktionary:Tracking/head tracking/no lang category ]=]				track("no lang category", data.lang:getCode) end end

if not data.pos_category and data.categories[1]:find("^" .. data.lang:getCanonicalName) then data.pos_category = data.categories[1]:gsub("^" .. data.lang:getCanonicalName .. " ", "") table.remove(data.categories, 1) end end

if not data.pos_category then error(			'No valid part-of-speech categories were found in the list '			.. 'of categories passed to the function "full_headword". '			.. 'The part-of-speech category should consist of a language\'s '			.. 'canonical name plus a part of speech.'			) end

-- Categorise for unusual characters local standard = data.lang:getStandardCharacters

if standard then if ulen(title.subpageText) ~= 1 and not non_categorizable then for character in rgmatch(title.subpageText, "([^" .. standard .. "])") do				local upper = uupper(character) if not rfind(upper, "[" .. standard .. "]") then character = upper end table.insert(					data.categories,					data.lang:getCanonicalName .. " terms spelled with " .. character				) end end end

-- Categorise for palindromes if not data.nopalindromecat and title.nsText ~= "Reconstruction" and ulen(title.subpageText) > 2 and require("Module:palindromes").is_palindrome(			title.subpageText, data.lang, data.sc[1]			) then table.insert(data.categories, data.lang:getCanonicalName .. " palindromes") end

-- This may add more categories (e.g. gender categories), so make sure it gets -- evaluated first. local text = show_headword_line(data) return text .. require("Module:utilities").format_categories(			data.categories, data.lang, data.sort_key, nil,			data.force_cat_output or test_force_categories, data.sc[1]			) .. require("Module:utilities").format_categories(			tracking_categories, data.lang, data.sort_key, nil,			data.force_cat_output or test_force_categories, data.sc[1]			) end

return export


text:
كس أمك

Interjection

 * 1)  your mother’s pussy (general term of discontentment, like English fuck!)

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: كس أمك


text: Template:User:iwsfutcmd/zh-pron

title: Template:User:iwsfutcmd/zh-pron


text: 奧馬爾

title: 奧馬爾


text: 奥马尔

title: 奥马尔


text:
Module:User:iwsfutcmd/zh-pron

local export = {} local m_string_utils = require("Module:string utilities")

local codepoint = mw.ustring.codepoint local find = m_string_utils.find local gsub = m_string_utils.gsub local len = m_string_utils.len local match = m_string_utils.match local u = mw.ustring.char

local langname = { ["cdo"] = "Min Dong", ["cmn"] = "Mandarin", ["cjy"] = "Jin", ["dng"] = "Dungan", ["gan"] = "Gan", ["hak"] = "Hakka", ["hsn"] = "Xiang", ["mnp"] = "Min Bei", ["nan"] = "Min Nan", ["wuu"] = "Wu", ["yue"] = "Cantonese", }

local langname_abbr = { ["m"] = "Mandarin", ["m-s"] = "Sichuanese", ["dg"] = "Dungan", ["c"] = "Cantonese", ["c-t"] = "Taishanese", ["g"] = "Gan", ["h"] = "Hakka", ["j"] = "Jin", ["mb"] = "Min Bei", ["md"] = "Min Dong", ["mn"] = "Min Nan", ["mn-t"] = "Teochew", ["mn-l"] = "Leizhou", ["w"] = "Wu", ["x"] = "Xiang", }

local pos_aliases_cat = { ["n"] = "nouns", ["noun"] = "nouns", ["pn"] = "proper nouns", ["propn"] = "proper nouns", ["proper"] = "proper nouns", ["proper noun"] = "proper nouns", ["pron"] = "pronouns", ["pronoun"] = "pronouns", ["v"] = "verbs", ["verb"] = "verbs", ["a"] = "adjectives", ["adj"] = "adjectives", ["adjective"] = "adjectives", ["adv"] = "adverbs", ["adverb"] = "adverbs", ["prep"] = "prepositions", ["pre"] = "prepositions", ["postp"] = "postpositions", ["post"] = "postpositions", ["con"] = "conjunctions", ["conj"] = "conjunctions", ["conjunction"] = "conjunctions", ["part"] = "particles", ["particle"] = "particles", ["pref"] = "prefixes", ["prefix"] = "prefixes", ["suf"] = "suffixes", ["suffix"] = "suffixes", ["infix"] = "infixes", ["prov"] = "proverbs", ["proverb"] = "proverbs", ["id"] = "idioms", ["idiom"] = "idioms", ["ch"] = "chengyu", ["cy"] = "chengyu", ["chengyu"] = "chengyu", ["ph"] = "phrases", ["phrase"] = "phrases", ["intj"] = "interjections", ["interj"] = "interjections", ["interjection"] = "interjections", ["cl"] = "classifiers", ["cls"] = "classifiers", ["classifier"] = "classifiers", ["num"] = "numerals", ["numeral"] = "numerals", ["abb"] = "abbreviations", ["abbreviation"] = "abbreviations", ["det"] = "determiners", ["deter"] = "determiners", ["determiner"] = "determiners", ["syllable"] = "syllables", }

-- if not empty local function ine(val) if val == "" then return nil end return val end

local function makeNote(text) if find(text, ": ") then text = "\n*" .. gsub(gsub(text, "\n", ".\n*"), "([:;]) ", "%1\n**") elseif find(text, "; ") then text = "\n*" .. gsub(text, '; ', ";\n*") end text = gsub(text, '“([^”]+)”', function (a) return '“' .. gsub(a, ";\n%*+", "; ") .. '”' end) return "\nNote: " .. text .. ". " end

local function ipa_format(text) local numbers = { ["1"]="¹",["2"]="²",["3"]="³",["4"]="⁴",["5"]="⁵",["0"]="⁰",["-"]="⁻",["/"]="/, /" } return gsub(text,'[0-5%-/]',numbers) end

local function Consolas(text) return '' .. text .. ' ' end

local function format_IPA(text) return ' ' .. text .. ' ' end

function export.make(frame) local args = frame:getParent.args local title = mw.title.getCurrentTitle local pagename = ine(args["pagename"]) or title.text local sortkey = (require("Module:Hani-sortkey").makeSortKey(pagename)) -- Unicode pattern for single Han character, with non-NFC characters -- inserted using mw.ustring.char because they can't be saved in a MediaWiki -- page. -- https://unicode.org/cldr/utility/regex.jsp?a=%5Cp%7BHani%7D local hanzi = "^[⺀-⺙⺛-⻳⼀-⿕々〇〡-〩〸-〻㐀-䶿一-鿼" .. u(0xF900) .. "-" .. u(0xFA6D) .. u(0xFA70) .. "-" .. u(0xFAD9) .. "𠀀-𪛝𪜀-𫜴𫝀-𫠝𫠠-𬺡𬺰-𮯠" .. u(0x2F800) .. "-" .. u(0x2FA1D) .. "𰀀-𱍊]$" local is_single_hanzi = find(pagename, hanzi) ~= nil local namespace = ine(args["namespace"]) or title.nsText local m_rom = ine(args["m"]) local m_s_rom = ine(args["m-s"]) local dg_rom = ine(args["dg"]) local c_rom = ine(args["c"]) local c_t_rom = ine(args["c-t"]) local g_rom = ine(args["g"]) local h_rom = ine(args["h"]) local j_rom = ine(args["j"]) local mb_rom = ine(args["mb"]) local md_rom = ine(args["md"]) local mn_rom = ine(args["mn"]) local mn_l_rom = ine(args["mn-l"]) local mn_t_rom = ine(args["mn-t"]) local w_rom = ine(args["w"]) local x_rom = ine(args["x"]) local m_audio = ine(args["ma"]) local m_audio2 = ine(args["ma2"]) local m_s_audio = ine(args["m-sa"]) local dg_audio = ine(args["dga"]) local c_audio = ine(args["ca"]) local c_t_audio = ine(args["c-ta"]) local g_audio = ine(args["ga"]) local h_audio = ine(args["ha"]) local j_audio = ine(args["ja"]) local mb_audio = ine(args["mba"]) local md_audio = ine(args["mda"]) local mn_audio = ine(args["mna"]) local mn_l_audio = ine(args["mn-la"]) local mn_t_audio = ine(args["mn-ta"]) local w_audio = ine(args["wa"]) local x_audio = ine(args["xa"]) local dial = ine(args["dial"]) local mc = ine(args["mc"]) or false local oc = ine(args["oc"]) or false local only_cat = args["only_cat"] == "yes" local function add_audio(text, audio, lang) -- This function has side effects if audio then if audio == "y" then audio = string.format('%s-%s.ogg', lang, mw.title.getCurrentTitle.baseText) end table.insert(text, '\n*** [[File:')			table.insert(text, audio)			table.insert(text, ']]') table.insert(text, '[[Category:')			table.insert(text, langname[lang:sub(1, 3)])			table.insert(text, ' terms with audio links|' .. sortkey .. ']]') end end local function add_audio_show(text, audio, lang) -- This function has side effects if audio then if audio == "y" then audio = string.format('%s-%s.ogg', lang, mw.title.getCurrentTitle.baseText) end table.insert(text, '\n*:: [[File:')			table.insert(text, audio)			table.insert(text, ']]') table.insert(text, '[[Category:')			table.insert(text, langname[lang:sub(1, 3)])			table.insert(text, ' terms with audio links|' .. sortkey .. ']]') end end

local text = {} --the pronunciation table if not only_cat then --The whole table consists of 4 parts --"textShow" contains Part 1, 3 and 4 local textShow = {' '} --"textHide" is Part 2 local textHide = {}

table.insert(textShow, ' \n ') --Part 1 and 2, "Pronunciation" and "Pronunciation expressed in different romanizations" if m_rom or m_s_rom or dg_rom then table.insert(textShow, '\n* Mandarin') end if m_rom or m_audio then local m_args = {} local m_pron = require("Module:cmn-pron") if m_rom then local str_analysis = m_pron.str_analysis local other_m_vars = { (m_s_rom or ""), (m_s_audio or ""), (dg_rom or ""), (dg_audio or "") } table.insert(textShow, '\n' .. str_analysis(m_rom, 'head', table.concat(other_m_vars) ~= ""))

m_args[1] = str_analysis(m_rom,'') local m_args_names = { '1n','1na','1nb','1nc','1nd','py','cap','tl','tl2','tl3','a','audio','er','ertl','ertl2','ertl3','era','eraudio', '2n','2na','2nb','2nc','2nd','2py','2cap','2tl','2tl2','2tl3','2a','2audio','2er','2ertl','2ertl2','2ertl3','2era','2eraudio', '3n','3na','3nb','3nc','3nd','3py','3cap','3tl','3tl2','3tl3','3a','3audio','3er','3ertl','3ertl2','3ertl3','3era','3eraudio', '4n','4na','4nb','4nc','4nd','4py','4cap','4tl','4tl2','4tl3','4a','4audio','4er','4ertl','4ertl2','4ertl3','4era','4eraudio', '5n','5na','5nb','5nc','5nd','5py','5cap','5tl','5tl2','5tl3','5a','5audio','5er','5ertl','5ertl2','5ertl3','5era','5eraudio', }				for _, name in ipairs(m_args_names) do					m_args[name] = str_analysis(m_rom, name) end for i = 2, 5 do					m_args[i] = str_analysis(m_rom, tostring(i)) end end m_args['a'] = m_audio m_args['a2'] = m_audio2 local debug = "" for code,name in pairs(m_args) do debug = debug .. code .. ":" .. name .. ","			end table.insert(textShow, m_pron.make_audio(m_args)) table.insert(textHide, m_pron.make_args(m_args)) if args["m_note"] then table.insert(textHide, makeNote(args["m_note"])) end end if m_s_rom or m_s_audio then local m_s_pron = require("Module:cmn-sic-pron") local m_s_processed = gsub(gsub(gsub(m_s_rom, '/', ' / '), '([%d-])([%a])', '%1 %2'), '([%d-]+)', '%1') if m_s_rom then table.insert(textShow, '\n*: (Chengdu, SP) : ') table.insert(textShow, Consolas(m_s_processed)) end add_audio_show(textShow, m_s_audio, 'cmn-sic') if not (m_rom or m_audio) then table.insert(textHide, '\n* Mandarin') end table.insert(textHide, '\n** (Chengdu) ') table.insert(textHide, '\n*** Sichuanese Pinyin : ') table.insert(textHide, Consolas(m_s_processed)) local xinwenz = m_s_pron.convert(m_s_rom, 'SWZ') if xinwenz then table.insert(textHide, '\n*** Scuanxua Ladinxua Xin Wenz : ') table.insert(textHide, Consolas(m_s_pron.convert(m_s_rom, 'SWZ'))) end table.insert(textHide, '\n*** Sinological IPA (key) : ') table.insert(textHide, format_IPA(m_s_pron.convert(m_s_rom, 'IPA'))) if args["m-s_note"] then table.insert(textHide, makeNote(args["m-s_note"])) end end if dg_rom or dg_audio then local dg_pron = require("Module:dng-pron") local dg_processed = dg_pron.process(dg_rom) if dg_rom then table.insert(textShow, '\n*: (Dungan, Cyrillic and Wiktionary) : ') table.insert(textShow, Consolas(dg_processed)) end add_audio_show(textShow, dg_audio, 'dng') if not (m_rom or m_audio or m_s_rom or m_s_audio) then table.insert(textHide, '\n* Mandarin') end table.insert(textHide, '\n** (Dungan) ') table.insert(textHide, '\n*** Cyrillic and Wiktionary : ') table.insert(textHide, Consolas(dg_processed)) table.insert(textHide, '\n*** Sinological IPA (key) : ') table.insert(textHide, format_IPA(dg_pron.convert(dg_rom, 'IPA')) .. '\n**: (Note: Dungan pronunciation is currently experimental and may be inaccurate.) ') if args["dg_note"] then table.insert(textHide, makeNote(args["dg_note"])) end end if c_rom or c_audio or c_t_rom or c_t_audio then local c_pron = require("Module:yue-pron") if c_rom or c_t_rom then table.insert(textShow, '\n* Cantonese') table.insert(textHide, '\n* Cantonese') if c_rom then c_rom = c_rom:gsub("%*","-") local c_processed = c_rom:gsub(',([^ ])',', %1') if len(pagename) == 1 then c_processed = c_processed:gsub('([^, ]+)','%1') c_processed = c_processed:gsub('%[%[%[%[',)						c_processed = c_processed:gsub('%]%]%]%]',) c_processed = gsub(c_processed, '%[%[([^%]]+)%]%]', function(a)							return  .. gsub(a, '([1-9-]+)', '%1') ..  end) else c_processed = gsub(c_processed, '([1-9-]+)', '%1') end if not c_t_rom then table.insert(textShow, ' (')					else						table.insert(textShow, '\n*: (Guangzhou–Hong Kong, ') end table.insert(textShow, 'Jyutping) : ' .. Consolas(c_processed))					add_audio_show(textShow, c_audio, 'yue')					c_rom = c_rom:gsub('[%[%]]',)					local c_hom = mw.loadData("Module:yue-pron/hom")					local c_hom_exists = false					for _,c_first in ipairs(c_pron.jyutping_format(c_rom)) do						if c_hom[c_first] then							c_hom_exists = c_first						end					end					table.insert(textHide, '\n** (Standard Cantonese, Guangzhou–Hong Kong) ')					if not c_hom_exists then						table.insert(textHide, '  [')						table.insert(textHide, tostring(mw.uri.fullUrl("Module:yue-pron/hom",{["action"]="edit"})))						table.insert(textHide, ' +] ')					end					local c_comma = gsub(c_rom,',([^ ])',', %1')					table.insert(textHide, '\n*** Jyutping'' : ')					table.insert(textHide, Consolas(tostring(gsub(c_comma, '([1-9-]+)', '%1')))) table.insert(textHide, '\n*** Yale : ') table.insert(textHide, Consolas(c_pron.jyutping_to_yale(c_rom))) table.insert(textHide, '\n*** Cantonese Pinyin : ') table.insert(textHide, Consolas(tostring(gsub(c_pron.jyutping_to_cantonese_pinyin(c_rom), '([1-9-]+)', '%1')))) table.insert(textHide, '\n*** Guangdong Romanization : ') table.insert(textHide, Consolas(tostring(gsub(c_pron.jyutping_to_guangdong(c_rom), '([1-9-]+)', '%1')))) table.insert(textHide, '\n*** Sinological IPA (key) : ') table.insert(textHide, format_IPA('/' .. c_pron.jyutping_to_ipa(c_rom) .. '/'))					for _,c_first in ipairs(c_pron.jyutping_format(c_rom)) do						if c_hom_exists == c_first then local hom_textHide = {'\n*** Homophones : ')							table.insert(textHide, table.concat(hom_textHide))							table.insert(textHide, )						end					end					if not args["c_note"] and c_rom and (find(c_rom, "^[ao]") or find(c_rom, ",[ao]")) and len(pagename) == 1 then						args["c_note"] = "The zero initial " .. format_IPA("/∅-/") .. " is commonly pronounced with a ng-initial " .. format_IPA("/ŋ-/") .. " in some varieties of Cantonese, including Hong Kong Cantonese"					end					if args["c_note"] then table.insert(textHide, makeNote(args["c_note"])) end				end				if c_t_rom then					local c_t_processed = c_t_rom:gsub(',([^ ])',', %1')					c_t_processed = gsub(c_t_processed, '([1-9%*]%-?[1-9%*]?)', '%1')					table.insert(textShow, (c_rom and '\n*:' or ) .. ' (Taishan, Wiktionary) : ')					table.insert(textShow, Consolas(c_t_processed))					add_audio_show(textShow, c_t_audio, 'yue-taishan')					c_t_rom = c_t_rom:gsub('[%[%]]',)					local c_t_comma = gsub(c_t_rom,',([^ ])',', %1')					table.insert(textHide, '\n** (Taishanese, Taicheng) ')					table.insert(textHide, '\n*** Wiktionary'' : ')					table.insert(textHide, Consolas(tostring(gsub(c_t_comma, '([1-9%*]%-?[1-9%*]?)', '%1'))))					table.insert(textHide, '\n*** Sinological IPA (key) : ')					table.insert(textHide, format_IPA(c_pron.hoisanva_to_ipa(c_t_rom)))					if args["c-t_note"] then table.insert(textHide, makeNote(args["c-t_note"])) end				end			end		end		if g_rom or g_audio then local g_pron = require("Module:gan-pron") if g_rom then table.insert(textShow, '\n* Gan (Wiktionary) : ') table.insert(textShow, Consolas(g_pron.rom(g_rom))) end add_audio_show(textShow, g_audio, 'gan') table.insert(textHide, '\n* Gan') table.insert(textHide, '\n** (Nanchang) ') table.insert(textHide, '\n*** Wiktionary : ') table.insert(textHide, Consolas(g_pron.rom(g_rom))) table.insert(textHide, '\n*** Sinological IPA (key) : ') table.insert(textHide, format_IPA('/' .. g_pron.ipa(g_rom) .. '/'))			if args["g_note"] then table.insert(textHide, makeNote(args["g_note"])) end end if h_rom and (find(h_rom, 'pfs=.') or find(h_rom, 'gd=.')) or h_audio then local h_pron = require("Module:hak-pron") if find(h_rom, "pfs=.") or find(h_rom, 'gd=.') then table.insert(textShow, '\n* Hakka') table.insert(textShow, h_pron.rom_display(h_rom,'yes')) end add_audio_show(textShow, h_audio, 'hak') table.insert(textHide, '\n* Hakka') if h_rom then table.insert(textHide, h_pron.rom_display(h_rom,'')) end if args["h_note"] then table.insert(textHide, makeNote(args["h_note"])) end end if j_rom or j_audio then local j_pron = require("Module:cjy-pron") if j_rom then table.insert(textShow, '\n* Jin (Wiktionary) : ') table.insert(textShow, Consolas(j_pron.rom(j_rom))) end add_audio_show(textShow, j_audio, 'cjy') table.insert(textHide, '\n* Jin') table.insert(textHide, '\n** (Taiyuan)+ ') if j_rom then table.insert(textHide, '\n*** Wiktionary : ') table.insert(textHide, Consolas(j_pron.rom(j_rom))) end local no_sandhi = false local roms = mw.text.split(j_rom, '/') for i = 1, table.getn(roms) do				if find(roms[i], ' [^ ]+ ') then no_sandhi = true break end end table.insert(textHide, '\n*** Sinological IPA (''old-style' .. (no_sandhi and ', no sandhi' or '') .. ''') : ')			table.insert(textHide, format_IPA('/' .. j_pron.ipa(j_rom, no_sandhi and "no_sandhi" or "") .. '/'))			if args["j_note"] then table.insert(textHide, makeNote(args["j_note"])) end end if mb_rom or mb_audio then local mb_pron = require("Module:mnp-pron") if mb_rom then table.insert(textShow, '\n* Min Bei (KCR) : ') table.insert(textShow, Consolas(mb_pron.rom(mb_rom))) end add_audio_show(textShow, mb_audio, 'mnp') table.insert(textHide, '\n* Min Bei') table.insert(textHide, "\n** (Jian'ou) ") if mb_rom then table.insert(textHide, '\n*** Kienning Colloquial Romanized : ') table.insert(textHide, Consolas(mb_pron.rom(mb_rom))) table.insert(textHide, "\n*** Sinological IPA (key) : ") table.insert(textHide, format_IPA(mb_pron.ipa(mb_rom))) end if args["mb_note"] then table.insert(textHide, makeNote(args["mb_note"])) end end if md_rom or md_audio then local md_pron = require("Module:cdo-pron") if md_rom then table.insert(textShow, '\n* Min Dong (BUC) : ') table.insert(textShow, Consolas(md_pron.rom(md_rom))) end add_audio_show(textShow, md_audio, 'cdo') table.insert(textHide, '\n* Min Dong') table.insert(textHide, '\n** (Fuzhou) ') if md_rom then table.insert(textHide, '\n*** Bàng-uâ-cê : ') table.insert(textHide, Consolas(md_pron.rom(md_rom))) if not (md_rom and find(md_rom, '([^/]*)-([^/]*)-([^/]*)-([^/]*)-([^/]*)')) then table.insert(textHide, '\n*** Sinological IPA (key) : ') table.insert(textHide, format_IPA('/' .. md_pron.ipa(md_rom) .. '/'))				else table.insert(textHide, '\n*** Sinological IPA (key) (no sandhi) : ') table.insert(textHide, format_IPA('/' .. md_pron.ipa(md_rom, "no_sandhi") .. '/'))				end end if args["md_note"] then table.insert(textHide, makeNote(args["md_note"])) end end if mn_rom or mn_audio or mn_l_rom or mn_l_audio or mn_t_rom or mn_t_audio then local mn_pron, mn_l_pron if mn_rom or mn_audio or mn_t_rom or mn_t_audio then mn_pron = require("Module:nan-pron") end if mn_l_rom or mn_l_audio then mn_l_pron = require("Module:nan-pron-Leizhou") end if mn_rom or mn_t_rom or mn_l_rom then table.insert(textShow, '\n* Min Nan') if mn_rom then table.insert(textShow, ((mn_l_rom or mn_t_rom) and '\n*:' or ) .. ' (Hokkien, POJ'') : ') table.insert(textShow, Consolas(mn_pron.poj_display(mn_pron.poj_check_invalid(mn_rom)))) add_audio_show(textShow, mn_audio, 'nan') end if mn_t_rom then table.insert(textShow, ((mn_rom or mn_l_rom) and '\n*:' or ) .. ' (Teochew, Peng\'im'') : ') table.insert(textShow, Consolas(mn_pron.pengim_display(mn_t_rom))) add_audio_show(textShow, mn_t_audio, 'nan-teochew') end if mn_l_rom then table.insert(textShow, ((mn_rom or mn_t_rom) and '\n*:' or ) .. ' (Leizhou, Leizhou Pinyin'') : ') table.insert(textShow, Consolas(mn_l_pron.rom(mn_l_rom))) add_audio_show(textShow, mn_l_audio, 'nan-leizhou') end end table.insert(textHide, '\n* Min Nan') if mn_rom or mn_audio then table.insert(textHide, mn_pron.generate_all(mn_rom)) if args["mn_note"] then table.insert(textHide, makeNote(args["mn_note"])) end end if mn_t_rom or mn_t_audio then table.insert(textHide, '\n** (Teochew) ') table.insert(textHide, '\n*** Peng\'im : ') table.insert(textHide, Consolas(mn_pron.pengim_display(mn_t_rom))) table.insert(textHide, '\n*** Pe̍h-ōe-jī-like : ') table.insert(textHide, Consolas(mn_pron.pengim_to_pojlike_conv(mn_t_rom))) table.insert(textHide, '\n*** Sinological IPA (key) : ') table.insert(textHide, format_IPA(mn_pron.pengim_to_ipa_conv(mn_t_rom))) if args["mn-t_note"] then table.insert(textHide, makeNote(args["mn-t_note"])) end end if mn_l_rom or mn_l_audio then table.insert(textHide, '\n** (Leizhou) ') table.insert(textHide, '\n*** Leizhou Pinyin : ') table.insert(textHide, Consolas(mn_l_pron.rom(mn_l_rom))) table.insert(textHide, '\n*** Sinological IPA : ') table.insert(textHide, format_IPA(mn_l_pron.ipa(mn_l_rom))) if args["mn-l_note"] then table.insert(textHide, makeNote(args["mn-l_note"])) end end end if w_rom or w_audio then local w_pron = require("Module:wuu-pron") if w_rom then table.insert(textShow, '\n* Wu (Wiktionary) : ') table.insert(textShow, Consolas(w_pron.rom(w_rom))) end add_audio_show(textShow, w_audio, 'wuu') table.insert(textHide, '\n* Wu') table.insert(textHide, '\n** (Shanghainese) ') table.insert(textHide, '\n*** Wiktionary : ') table.insert(textHide, Consolas(w_pron.rom(w_rom))) table.insert(textHide, '\n*** Sinological IPA (key) : ') table.insert(textHide, format_IPA('/' .. w_pron.ipa_conv(w_rom) .. '/'))			if args["w_note"] then table.insert(textHide, makeNote(args["w_note"])) end end if x_rom or x_audio then local x_pron = require("Module:hsn-pron") if x_rom then table.insert(textShow, '\n* Xiang (Wiktionary) : ') table.insert(textShow, Consolas(x_pron.rom(x_rom))) end add_audio_show(textShow, x_audio, 'hsn') table.insert(textHide, '\n* Xiang') table.insert(textHide, '\n** (Changsha) ') if x_rom then local x_diff = x_pron.stylediff(x_rom) table.insert(textHide, '\n*** Wiktionary : ') table.insert(textHide, Consolas(x_pron.rom(x_rom))) table.insert(textHide, '\n*** Sinological IPA (key)') table.insert(textHide, x_diff and ' (old-style)' or '') table.insert(textHide, ' : ') table.insert(textHide, format_IPA('/' .. x_pron.ipa(x_rom) .. '/'))				if x_diff then table.insert(textHide, '\n*** Sinological IPA (key) (new-style) : ') table.insert(textHide, format_IPA('/' .. x_pron.ipa(x_rom, 'new') .. '/'))				end end if args["x_note"] then table.insert(textHide, makeNote(args["x_note"])) end end -- combine textShow and textHide into text text = { table.concat(textShow), '\n \n\n', table.concat(textHide), ' '        }		if not c_rom then table.insert(text, "") end

--Part 3 "Dialectal data" if dial ~= "n" and is_single_hanzi then local success, m_dial = pcall(mw.loadData, "Module:zh/data/dial-pron/" .. pagename) if success then local dialPron = {} local temporary = {} if dial and find(dial, "^[0-9\\,]+$") then for element in mw.text.gsplit(dial, ",") do						table.insert(dialPron, m_dial[tonumber(element)]) end else for _, element in ipairs(m_dial) do						table.insert(dialPron, element) end end for _, set in ipairs(dialPron) do					for _, object in ipairs(set[2]) do						table.insert(temporary, object) end end local rand = gsub("-" .. table.concat(temporary), "[^A-Za-z0-9]", codepoint('%1')) table.insert(text,                   '\n\n \n* ' ..                    ' Dialectal data ' ..					' \n' ..                    ' '                )

table.insert(text, '\n{| class="wikitable" ' ..					'id="' .. rand .. '" style="width:100%; margin:0; ' ..					'text-align:center; border-collapse: collapse; border-style: hidden;"')

local locStart = '\n|-\n!' local readingStart = table.concat({'\n!style="background:#E8ECFA; width:9em"|',				' [', tostring(mw.uri.fullUrl("Module:zh/data/dial-pron/" .. pagename, {["action"]="edit"})), ' edit]  '}) local locEnd = ' ' local headclr = 'style="background:#E8ECFA"|' local mclr = 'style="background:#FAF5F0"|' local jclr = 'style="background:#F0F5FA"|' local wclr = 'style="background:#F4F0FA"|' local huclr = 'style="background:#FAF9F0"|' local xclr = 'style="background:#F0F2FA"|' local gclr = 'style="background:#F0FAF3"|' local haclr = 'style="background:#FAF0F6"|' local cclr = 'style="background:#F0F5FA"|' local minclr = 'style="background:#F7FAF0"|' local clrList = { mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, mclr, jclr, jclr, jclr, wclr, wclr, wclr, wclr, huclr, huclr, xclr, xclr, gclr, haclr, haclr, cclr, cclr, cclr, minclr, minclr, minclr, minclr, minclr }				local locList = { table.concat({headclr, "Variety\n!", headclr, "Location"}), table.concat({"rowspan=17 ", mclr, "Mandarin\n!", mclr, "Beijing\n|", mclr}), table.concat({mclr, "Harbin\n|", mclr}), table.concat({mclr, "Tianjin\n|", mclr}), table.concat({mclr, "Jinan\n|", mclr}), table.concat({mclr, "Qingdao\n|", mclr}), table.concat({mclr, "Zhengzhou\n|", mclr}), table.concat({mclr, "Xi'an\n|", mclr}), table.concat({mclr, "Xining\n|", mclr}), table.concat({mclr, "Yinchuan\n|", mclr}), table.concat({mclr, "Lanzhou\n|", mclr}), table.concat({mclr, "Ürümqi\n|", mclr}), table.concat({mclr, "Wuhan\n|", mclr}), table.concat({mclr, "Chengdu\n|", mclr}), table.concat({mclr, "Guiyang\n|", mclr}), table.concat({mclr, "Kunming\n|", mclr}), table.concat({mclr, "Nanjing\n|", mclr}), table.concat({mclr, "Hefei\n|", mclr}), table.concat({"rowspan=3 ", jclr, "Jin\n!", jclr, "Taiyuan\n|", jclr}), table.concat({jclr, "Pingyao\n|", jclr}), table.concat({jclr, "Hohhot\n|", jclr}), table.concat({"rowspan=4 ", wclr, "Wu\n!", wclr, "Shanghai\n|", wclr}), table.concat({wclr, "Suzhou\n|", wclr}), table.concat({wclr, "Hangzhou\n|", wclr}), table.concat({wclr, "Wenzhou\n|", wclr}), table.concat({"rowspan=2 ", huclr, "Hui\n!", huclr, "Shexian\n|", huclr}), table.concat({huclr, "Tunxi\n|", huclr}), table.concat({"rowspan=2 ", xclr, "Xiang\n!", xclr, "Changsha\n|", xclr}), table.concat({xclr, "Xiangtan\n|", xclr}), table.concat({gclr, "Gan\n!", gclr, "Nanchang\n|", gclr}), table.concat({"rowspan=2 ", haclr, "Hakka\n!", haclr, "Meixian\n|", haclr}), table.concat({haclr, "Taoyuan\n|", haclr}), table.concat({"rowspan=3 ", cclr, "Cantonese\n!", cclr, "Guangzhou\n|", cclr}), table.concat({cclr, "Nanning\n|", cclr}), table.concat({cclr, "Hong Kong\n|", cclr}), table.concat({"rowspan=5 ", minclr, "Min\n!", minclr, "Xiamen (Min Nan)\n|", minclr}), table.concat({minclr, "Fuzhou (Min Dong)\n|", minclr}), table.concat({minclr, "Jian'ou (Min Bei)\n|", minclr}), table.concat({minclr, "Shantou (Min Nan)\n|", minclr}), table.concat({minclr, "Haikou (Min Nan)\n|", minclr})}

local function ipa_correct(ipa, location) if location == 22 then return (gsub(ipa, "13", "23")) else return ipa end end

local function fmtDial(text, location) local fmttedPron = {} if text == "" then return "" end for pronunciation in mw.text.gsplit(text, "|") do						local ipa = match(pronunciation, "^[^%(%)一-龯㐀-䶵～,]+") ipa = gsub(ipa, "([ptk])([0-5])", "%1̚%2") local environ = match(pronunciation, "[%(%)一-龯㐀-䶵～,]*$") or false table.insert(fmttedPron, " /" ..							tostring(ipa_format(ipa_correct(ipa, location))) .. "/ " .. (environ and "  "..environ.." " or nil)) end return table.concat(fmttedPron, " ") end

for locationNo = 1, 40 do					for readingNo = 1, #dialPron do						if readingNo == 1 then table.insert(text, locStart) table.insert(text, locList[locationNo]) end if locationNo == 1 then local situation = dialPron[readingNo][1] table.insert(text, readingStart) table.insert(text, pagename) table.insert(text, (pagename ~= situation and " (" ..								gsub(situation, pagename, "'''" .. pagename .. "'''") .. ")" or "")) table.insert(text, " ") else table.insert(text, (readingNo == 1 and "" or "\n|" .. clrList[locationNo-1])) table.insert(text, locEnd) table.insert(text, fmtDial(dialPron[readingNo][2][locationNo-1], locationNo)) table.insert(text, " ") end end end table.insert(text, "\n|} ") end end

--Part 4 "Middle Chinese & Old Chinese" local mc_preview, oc_preview local m_ltc_pron, m_och_pron

-- !!!		-- The following function modifies the tables generated by mod:ltc-pron and mod:och-pron, shifting them -- from using "mw-collapsible" to using "vsSwitcher", because the former -- can not collapse on the mobile site and makes Chinese entries a mess. -- It is supposed to be a temporary solution. -- !!!       local function shiftCustomtoggle2Vsswitcher(s) local result result = (s:gsub( '\n%* ]+">', '\n \n* ' ):gsub( ' ▼ (.-) \n{| class="wikitable',               ' %1\n \n{| class="wikitable' ):gsub( '{| class="wikitable mw%-collapsible mw%-collapsed" id="[^"]+"',               '{| class="wikitable"'            ):gsub(                '\n|}$',                '\n|}  '            ))            return result        end

if mc then m_ltc_pron = require("Module:User:iwsfutcmd/ltc-pron") mc_preview = m_ltc_pron.retrieve_pron(pagename, false, mc, true) if not mc_preview then require('Module:debug').track('zh-pron/Middle Chinese data not found') mc = false end end if oc then m_och_pron = require("Module:och-pron") oc_preview = m_och_pron.generate_show(pagename, oc) if not oc_preview then require('Module:debug').track('zh-pron/Old Chinese data not found') oc = false end end if mc or oc then table.insert(text, '\n\n ') if mc then table.insert(text, shiftCustomtoggle2Vsswitcher(m_ltc_pron.ipa(mc, mc_preview))) end if oc then table.insert(text, shiftCustomtoggle2Vsswitcher(m_och_pron.ipa(oc, oc_preview))) end table.insert(text, " ") end table.insert(text, " ") if namespace == "" then if mc then table.insert(text, '') if is_single_hanzi then if mc_preview:find'k̚$' then table.insert(text, '') elseif mc_preview:find't̚$' then table.insert(text, '') elseif mc_preview:find'p̚$' then table.insert(text, '') end end end if oc then table.insert(text, '') end if not ine(args["cat"]) then table.insert(text, '') end end end

local conv_text = {} --categories if namespace == "" then local catText = args["cat"] or "" local cat_start = '[[Category:'		local cat_end = ']]' if w_rom then w_rom = gsub(w_rom, '%d', '') end local function add_cat(cat_table, name, cat) table.insert(cat_table, cat_start .. name .. cat .. "|" .. sortkey .. cat_end) end

local cats = mw.text.split(catText, ',', true) if pos_aliases_cat[cats[1]] == 'chengyu' then table.insert(cats, 2, 'idioms') end table.insert(cats, 1, "lemmas") for i = 1, #cats do			local cat = cats[i] if cat == "" then break end cat = gsub(cat, '^ +', '') if find(cat, ':') then local cat_split = mw.text.split(cat, ':', true) local lang_name = langname_abbr[cat_split[1]] local category = pos_aliases_cat[cat_split[2]] or cat add_cat(conv_text, 'Chinese ', category) table.insert(conv_text, cat_start .. lang_name .. ' ' .. category .. '|' .. sortkey .. cat_end) else cat = pos_aliases_cat[cat] or cat add_cat(conv_text, 'Chinese ', cat) if m_rom then add_cat(conv_text, 'Mandarin ', cat) end if m_s_rom or m_s_audio then add_cat(conv_text, 'Mandarin ', cat) end if dg_rom or dg_audio then add_cat(conv_text, 'Dungan ', cat) end if c_rom then add_cat(conv_text, 'Cantonese ', cat) end if c_t_rom then add_cat(conv_text, 'Taishanese ', cat) end if g_rom or g_audio then add_cat(conv_text, 'Gan ', cat) end if h_rom and (find(h_rom, 'pfs=.') or find(h_rom, 'gd=.')) or h_audio then add_cat(conv_text, 'Hakka ', cat) end if j_rom or j_audio then add_cat(conv_text, 'Jin ', cat) end if mb_rom or mb_audio then add_cat(conv_text, 'Min Bei ', cat) end if md_rom or md_audio then add_cat(conv_text, 'Min Dong ', cat) end if mn_rom or mn_audio then add_cat(conv_text, 'Min Nan ', cat) end if mn_t_rom or mn_t_audio then add_cat(conv_text, 'Teochew ', cat) end if mn_l_rom or mn_l_audio then add_cat(conv_text, 'Min Nan ', cat) end if w_rom or w_audio then add_cat(conv_text, 'Wu ', cat) end if x_rom or x_audio then add_cat(conv_text, 'Xiang ', cat) end end end if m_s_rom or m_s_audio then add_cat(conv_text, 'Sichuanese Mandarin', '') end table.insert(conv_text, cat_start .. 'Chinese terms with IPA pronunciation|' .. sortkey .. cat_end) if is_single_hanzi then table.insert(conv_text, cat_start .. 'Chinese hanzi|' .. sortkey .. cat_end) end end

local output = table.concat(text) .. table.concat(conv_text) if namespace ~= '' then output = gsub(output, "%[%[Category:[^%]]+%]%]", "") end return output end

return export

title: Module:User:iwsfutcmd/zh-pron


text:
vihmakas

Etymology
From.

Adjective

 * 1) rainy

title: vihmakas


text: Category:Chinese renderings of Arabic male given names


text:
כוס אמכ

Etymology
From.

Interjection

 * 1)  fucking hell, god dammit, damn you

title: כוס אמכ


text:
refakat

Etymology
, from, verbal noun of.

Noun

 * 1) An act of accompanying, companionship.
 * 2)  An act of performing a duet.
 * 1)  An act of performing a duet.

title: refakat


text:
vituperável

Etymology
..

Adjective

 * 1) vituperable

title: vituperável


text: vituperáveis

title: vituperáveis


text:
ємність

Noun

 * 1) capacitance, capacity, volume
 * 2)  vessel, bottle anything that can hold liquid

title: ємність


text:
Module:User:iwsfutcmd/ltc-pron/data

local data = {}

data.init_type = { ["幫"] = 1, ["帮"] = 1, ["非"] = 1, ["滂"] = 2, ["敷"] = 2, ["並"] = 3, ["并"] = 3, ["奉"] = 3, ["明"] = 4, ["微"] = 4, ["端"] = 5, ["透"] = 6, ["定"] = 7, ["泥"] = 8, ["知"] = 9, ["徹"] = 10, ["澄"] = 11, ["孃"] = 12, ["娘"] = 12, ["精"] = 13, ["清"] = 14, ["從"] = 15, ["从"] = 15, ["心"] = 16, ["邪"] = 17, ["莊"] = 18, ["庄"] = 18, ["初"] = 19, ["崇"] = 20, ["生"] = 21, ["俟"] = 22, ["章"] = 23, ["昌"] = 24, ["常"] = 25, ["禪"] = 25, ["禅"] = 25, ["書"] = 26, ["书"] = 26, ["船"] = 27, ["見"] = 28, ["见"] = 28, ["溪"] = 29, ["谿"] = 29, ["羣"] = 30, ["群"] = 30, ["疑"] = 31, ["曉"] = 32, ["晓"] = 32, ["匣"] = 33, ["影"] = 34, ["于"] = 35, ["云"] = 35, ["雲"] = 35, ["以"] = 36, ["來"] = 37, ["来"] = 37, ["日"] = 38 }

data.fin_conv = { ["冬"] = "沃", ["東"] = "屋", ["江"] = "覺", ["鍾"] = "燭", ["眞"] = "質", ["臻"] = "櫛", ["諄"] = "術", ["痕"] = "麧", ["魂"] = "沒", ["欣"] = "迄", ["文"] = "物", ["寒"] = "曷", ["桓"] = "末", ["元"] = "月", ["刪"] = "黠", ["山"] = "鎋", ["仙"] = "薛", ["先"] = "屑", ["唐"] = "鐸", ["陽"] = "藥", ["庚"] = "陌", ["耕"] = "麥", ["清"] = "昔", ["青"] = "錫", ["登"] = "德", ["蒸"] = "職", ["侵"] = "緝", ["談"] = "盍", ["嚴"] = "業", ["凡"] = "乏", ["銜"] = "狎", ["咸"] = "洽", ["鹽"] = "葉", ["添"] = "怗", ["覃"] = "合" }

data.fin_type = { ["冬"] = 5, ["沃"] = 6, ["鍾"] = 7, ["燭"] = 8, ["江"] = 9, ["覺"] = 10, ["之"] = 19, ["魚"] = 22, ["模"] = 23, ["虞"] = 24, ["咍"] = 41, ["灰"] = 42, ["臻"] = 46, ["諄"] = 47, ["櫛"] = 51, ["術"] = 52, ["痕"] = 53, ["麧"] = 54, ["魂"] = 55, ["沒"] = 56, ["欣"] = 57, ["迄"] = 58, ["文"] = 59, ["物"] = 60, ["寒"] = 61, ["桓"] = 62, ["曷"] = 63, ["末"] = 64, ["豪"] = 89, ["肴"] = 90, ["蕭"] = 93, ["歌"] = 94, ["蒸"] = 133, ["尤"] = 136, ["侯"] = 137, ["幽"] = 138, ["談"] = 143, ["盍"] = 144, ["嚴"] = 145, ["凡"] = 146, ["業"] = 147, ["乏"] = 148, ["銜"] = 149, ["狎"] = 150, ["咸"] = 151, ["洽"] = 152, ["添"] = 157, ["怗"] = 158, ["帖"] = 158, ["覃"] = 159, ["合"] = 160 }

data.fin_type_open = { ["微開"] = 20, ["微合"] = 21, ["泰開"] = 25, ["泰合"] = 26, ["廢開"] = 27, ["廢合"] = 28, ["夬開"] = 29, ["夬合"] = 30, ["佳開"] = 31, ["佳合"] = 32, ["皆開"] = 33, ["皆合"] = 34, ["齊開"] = 39, ["齊合"] = 40, ["元開"] = 65, ["元合"] = 66, ["月開"] = 67, ["月合"] = 68, ["刪開"] = 69, ["刪合"] = 70, ["黠開"] = 71, ["黠合"] = 72, ["山開"] = 73, ["山合"] = 74, ["鎋開"] = 75, ["鎋合"] = 76, ["先開"] = 85, ["先合"] = 86, ["屑開"] = 87, ["屑合"] = 88, ["唐開"] = 101, ["唐合"] = 102, ["鐸開"] = 103, ["鐸合"] = 104, ["陽開"] = 105, ["陽合"] = 106, ["藥開"] = 107, ["藥合"] = 108, ["耕開"] = 117, ["耕合"] = 118, ["麥開"] = 119, ["麥合"] = 120, ["清開"] = 121, ["清合"] = 122, ["昔開"] = 123, ["昔合"] = 124, ["青開"] = 125, ["青合"] = 126, ["錫開"] = 127, ["錫合"] = 128, ["登開"] = 129, ["登合"] = 130, ["德開"] = 131, ["德合"] = 132, ["職開"] = 134, ["職合"] = 135 }

data.fin_type_deng_open = { ["支三開"] = 11, ["支三合"] = 12, ["支重鈕三開"] = 13, ["支重鈕三合"] = 14, ["脂三開"] = 15, ["脂三合"] = 16, ["脂重鈕四開"] = 15, ["脂重鈕四合"] = 16, ["脂重鈕三開"] = 17, ["脂重鈕三合"] = 18, ["祭三開"] = 35, ["祭三合"] = 36, ["祭重鈕四開"] = 35, ["祭重鈕四合"] = 36, ["祭重鈕三開"] = 37, ["祭重鈕三合"] = 38, ["戈一合"] = 95, ["戈三開"] = 96, ["戈三合"] = 97, ["仙三開"] = 77, ["仙三合"] = 78, ["仙重鈕三開"] = 79, ["仙重鈕三合"] = 80, ["薛三開"] = 81, ["薛三合"] = 82, ["薛重鈕三開"] = 83, ["薛重鈕三合"] = 84, ["麻二開"] = 98, ["麻二合"] = 99, ["麻三開"] = 100, ["陌二開"] = 113, ["陌二合"] = 114, ["陌三開"] = 115, ["陌三合"] = 116, ["庚二開"] = 109, ["庚二合"] = 110, ["庚三開"] = 111, ["庚三合"] = 112, ["庚重鈕三開"] = 111, ["庚重鈕三合"] = 112 }

data.initialConv = { ["Zhengzhang"] = { [1] = "p", [2] = "pʰ", [3] = "b", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "d", [8] = "n", [9] = "ʈ", [10] = "ʈʰ", [11] = "ɖ", [12] = "ɳ", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡z", [16] = "s", [17] = "z", [18] = "t͡ʃ", [19] = "t͡ʃʰ", [20] = "d͡ʒ", [21] = "ʃ", [22] = "ʒ", [23] = "t͡ɕ", [24] = "t͡ɕʰ", [25] = "d͡ʑ", [26] = "ɕ", [27] = "ʑ", [28] = "k", [29] = "kʰ", [30] = "ɡ", [31] = "ŋ", [32] = "h", [33] = "ɦ", [34] = "ʔ", [35] = "ɦ", [36] = "j", [37] = "l", [38] = "ȵ" },	["Karlgren"] = { [1] = "p", [2] = "pʰ", [3] = "bʱ", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "dʱ", [8] = "n", [9] = "ȶ", [10] = "ȶʰ", [11] = "ȡʱ", [12] = "n", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡zʱ", [16] = "s", [17] = "z", [18] = "ʈ͡ʂ", [19] = "ʈ͡ʂʰ", [20] = "ɖ͡ʐʱ", [21] = "ʂ", [22] = "ɖ͡ʐʰ", [23] = "t͡ɕ", [24] = "t͡ɕʰ", [25] = "ʑ", [26] = "ɕ", [27] = "d͡ʑʰ", [28] = "k", [29] = "kʰ", [30] = "g", [31] = "ŋ", [32] = "x", [33] = "ɣ", [34] = "ʔ", [35] = "", [36] = "", [37] = "l", [38] = "ȵʑ" },	["Li"] = { [1] = "p", [2] = "pʰ", [3] = "b", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "d", [8] = "n", [9] = "ȶ", [10] = "ȶʰ", [11] = "ȡ", [12] = "n", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡z", [16] = "s", [17] = "z", [18] = "t͡ʃ", [19] = "t͡ʃʰ", [20] = "d͡ʒ", [21] = "ʃ", [22] = "ʒ", [23] = "t͡ɕ", [24] = "t͡ɕʰ", [25] = "ʑ", [26] = "ɕ", [27] = "d͡ʑ", [28] = "k", [29] = "kʰ", [30] = "ɡ", [31] = "ŋ", [32] = "x", [33] = "ɣ", [34] = "ʔ", [35] = "ɣ", [36] = "", [37] = "l", [38] = "ȵ" },	["Pan"] = { [1] = "p", [2] = "pʰ", [3] = "b", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "d", [8] = "n", [9] = "ʈ", [10] = "ʈʰ", [11] = "ɖ", [12] = "ɳ", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡z", [16] = "s", [17] = "z", [18] = "ʈ͡ʂ", [19] = "ʈ͡ʂʰ", [20] = "ɖ͡ʐ", [21] = "ʃ", [22] = "ʐ", [23] = "t͡ɕ", [24] = "t͡ɕʰ", [25] = "d͡ʑ", [26] = "ɕ", [27] = "ʑ", [28] = "k", [29] = "kʰ", [30] = "ɡ", [31] = "ŋ", [32] = "h", [33] = "ɦ", [34] = "ʔ", [35] = "ɦ", [36] = "j", [37] = "l", [38] = "ȵ" },	["Pulleyblank"] = { [1] = "p", [2] = "pʰ", [3] = "b", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "d", [8] = "n", [9] = "ʈ", [10] = "ʈʰ", [11] = "ɖ", [12] = "ɳ", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡z", [16] = "s", [17] = "z", [18] = "ʈ͡ʂ", [19] = "ʈ͡ʂʰ", [20] = "ɖ͡ʐ", [21] = "ʂ", [22] = "ʐ", [23] = "c", [24] = "cʰ", [25] = "d͡ʑ", [26] = "ɕ", [27] = "ʑ", [28] = "k", [29] = "kʰ", [30] = "g", [31] = "ŋ", [32] = "h", [33] = "ɦ", [34] = "ʔ", [35] = "ɦ", [36] = "j", [37] = "l", [38] = "ȵ" },	["Wang"] = { [1] = "p", [2] = "pʰ", [3] = "b", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "d", [8] = "n", [9] = "ȶ", [10] = "ȶʰ", [11] = "ȡ", [12] = "n", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡z", [16] = "s", [17] = "z", [18] = "t͡ʃ", [19] = "t͡ʃʰ", [20] = "d͡ʒ", [21] = "ʃ", [22] = "ʒ", [23] = "t͡ɕ", [24] = "t͡ɕʰ", [25] = "ʑ", [26] = "ɕ", [27] = "d͡ʑ", [28] = "k", [29] = "kʰ", [30] = "ɡ", [31] = "ŋ", [32] = "x", [33] = "ɣ", [34] = "", [35] = "ɣ", [36] = "j", [37] = "l", [38] = "ȵʑ" },	["Shao"] = { [1] = "p", [2] = "pʰ", [3] = "b", [4] = "m", [5] = "t", [6] = "tʰ", [7] = "d", [8] = "n", [9] = "ȶ", [10] = "ȶʰ", [11] = "ȡ", [12] = "n", [13] = "t͡s", [14] = "t͡sʰ", [15] = "d͡z", [16] = "s", [17] = "z", [18] = "t͡ʃ", [19] = "t͡ʃʰ", [20] = "d͡ʒ", [21] = "ʃ", [22] = "ʒ", [23] = "t͡ɕ", [24] = "t͡ɕʰ", [25] = "d͡ʑ", [26] = "ɕ", [27] = "ʑ", [28] = "k", [29] = "kʰ", [30] = "ɡ", [31] = "ŋ", [32] = "x", [33] = "ɣ", [34] = "ʔ", [35] = "ɣ", [36] = "", [37] = "l", [38] = "ȵʑ" }, }

data.finalConv = { ["Zhengzhang"] = { [1] = "uŋ", [2] = "ɨuŋ", [3] = "uk̚", [4] = "ɨuk̚", [5] = "uoŋ", [6] = "uok̚", [7] = "ɨoŋ", [8] = "ɨok̚", [9] = "ˠʌŋ", [10] = "ˠʌk̚", [11] = "iᴇ", [12] = "iuᴇ", [13] = "ˠiᴇ", [14] = "ˠiuᴇ", [15] = "iɪ", [16] = "iuɪ", [17] = "ˠiɪ", [18] = "ˠiuɪ", [19] = "ɨ", [20] = "ɨi", [21] = "ʉi", [22] = "ɨʌ", [23] = "uo", [24] = "ɨo", [25] = "ɑi", [26] = "uɑi", [27] = "ɨɐi", [28] = "ʉɐi", [29] = "ˠai", [30] = "ˠuai", [31] = "ˠɛ", [32] = "ˠuɛ", [33] = "ˠɛi", [34] = "ˠuɛi", [35] = "iᴇi", [36] = "iuᴇi", [37] = "ˠiᴇi", [38] = "ˠiuᴇi", [39] = "ei", [40] = "wei", [41] = "ʌi", [42] = "uʌi", [43] = "iɪn", [44] = "ˠiɪn", [45] = "ˠiuɪn", [46] = "ɪn", [47] = "iuɪn", [48] = "iɪt̚", [49] = "ˠiɪt̚", [50] = "ˠiuɪt̚", [51] = "ɪt̚", [52] = "iuɪt̚", [53] = "ən", [54] = "ət̚", [55] = "uən", [56] = "uət̚", [57] = "ɨn", [58] = "ɨt̚", [59] = "ɨun", [60] = "ɨut̚", [61] = "ɑn", [62] = "uɑn", [63] = "ɑt̚", [64] = "uɑt̚", [65] = "ɨɐn", [66] = "ʉɐn", [67] = "ɨɐt̚", [68] = "ʉɐt̚", [69] = "ˠan", [70] = "ˠuan", [71] = "ˠat̚", [72] = "ˠuat̚", [73] = "ˠɛn", [74] = "ˠuɛn", [75] = "ˠɛt̚", [76] = "ˠuɛt̚", [77] = "iᴇn", [78] = "iuᴇn", [79] = "ˠiᴇn", [80] = "ˠiuᴇn", [81] = "iᴇt̚", [82] = "iuᴇt̚", [83] = "ˠiᴇt̚", [84] = "ˠiuᴇt̚", [85] = "en", [86] = "wen", [87] = "et̚", [88] = "wet̚", [89] = "ɑu", [90] = "ˠau", [91] = "iᴇu", [92] = "ˠiᴇu", [93] = "eu", [94] = "ɑ", [95] = "uɑ", [96] = "ɨɑ", [97] = "ɨuɑ", [98] = "ˠa", [99] = "ˠua", [100] = "ia", [101] = "ɑŋ", [102] = "wɑŋ", [103] = "ɑk̚", [104] = "wɑk̚", [105] = "ɨɐŋ", [106] = "ʉɐŋ", [107] = "ɨɐk̚", [108] = "ʉɐk̚", [109] = "ˠæŋ", [110] = "ˠwæŋ", [111] = "ˠiæŋ", [112] = "ˠwiæŋ", [113] = "ˠæk̚", [114] = "ˠwæk̚", [115] = "ˠiæk̚", [116] = "ˠwiæk̚", [117] = "ˠɛŋ", [118] = "ˠwɛŋ", [119] = "ˠɛk̚", [120] = "ˠwɛk̚", [121] = "iᴇŋ", [122] = "wiᴇŋ", [123] = "iᴇk̚", [124] = "wiᴇk̚", [125] = "eŋ", [126] = "weŋ", [127] = "ek̚", [128] = "wek̚", [129] = "əŋ", [130] = "wəŋ", [131] = "ək̚", [132] = "wək̚", [133] = "ɨŋ", [134] = "ɨk̚", [135] = "wɨk̚", [136] = "ɨu", [137] = "əu", [138] = "iɪu", [139] = "iɪm", [140] = "ˠiɪm", [141] = "iɪp̚", [142] = "ˠiɪp̚", [143] = "ɑm", [144] = "ɑp̚", [145] = "ɨɐm", [146] = "ɨɐm", [147] = "ɨɐp̚", [148] = "ɨɐp̚", [149] = "ˠam", [150] = "ˠap̚", [151] = "ˠɛm", [152] = "ˠɛp̚", [153] = "iᴇm", [154] = "ˠiᴇm", [155] = "iᴇp̚", [156] = "ˠiᴇp̚", [157] = "em", [158] = "ep̚", [159] = "ʌm", [160] = "ʌp̚" },	["Karlgren"] = { [1] = "uŋ", [2] = "i̯uŋ", [3] = "uk̚", [4] = "i̯uk̚", [5] = "uoŋ", [6] = "uok̚", [7] = "i̯woŋ", [8] = "i̯wok̚", [9] = "ɔŋ", [10] = "ɔk̚", [11] = "ie̯", [12] = "wie̯", [13] = "ie̯", [14] = "wie̯", [15] = "i", [16] = "wi", [17] = "i", [18] = "wi", [19] = "i", [20] = "e̯i", [21] = "we̯i", [22] = "i̯wo", [23] = "uo", [24] = "i̯u", [25] = "ɑi", [26] = "uɑi", [27] = "i̯ɐi", [28] = "i̯wɐi", [29] = "ai", [30] = "wai", [31] = "ai", [32] = "wai", [33] = "ăi", [34] = "wăi", [35] = "i̯ɛi", [36] = "i̯wɛi", [37] = "i̯ɛi", [38] = "i̯wɛi", [39] = "iei", [40] = "iwei", [41] = "ɑ̆i", [42] = "uɑ̆i", [43] = "i̯ĕn", [44] = "i̯ĕn", [45] = "i̯ĕn", [46] = "i̯æn", [47] = "i̯uĕn", [48] = "i̯ĕt̚", [49] = "i̯ĕt̚", [50] = "i̯ĕt̚", [51] = "i̯æt̚", [52] = "i̯uĕt̚", [53] = "ən", [54] = "ət̚", [55] = "uən", [56] = "uət̚", [57] = "i̯ən", [58] = "i̯ət̚", [59] = "i̯uən", [60] = "i̯uət̚", [61] = "ɑn", [62] = "uɑn", [63] = "ɑt̚", [64] = "uɑt̚", [65] = "ɨ̯ɐn", [66] = "i̯wɐn", [67] = "ɨ̯ɐt̚", [68] = "i̯wɐt̚", [69] = "an", [70] = "wan", [71] = "ăt̚", [72] = "wăt̚", [73] = "ăn", [74] = "wăn", [75] = "at̚", [76] = "wat̚", [77] = "i̯ɛn", [78] = "i̯wɛn", [79] = "i̯ɛn", [80] = "i̯wɛn", [81] = "i̯ɛt̚", [82] = "i̯wɛt̚", [83] = "i̯ɛt̚", [84] = "i̯wɛt̚", [85] = "ien", [86] = "iwen", [87] = "iet̚", [88] = "iwet̚", [89] = "ɑu", [90] = "au", [91] = "i̯ɛu", [92] = "i̯ɛu", [93] = "ieu", [94] = "ɑ", [95] = "uɑ", [96] = "i̯ɑ", [97] = "i̯wɑ", [98] = "a", [99] = "wa", [100] = "i̯a", [101] = "ɑŋ", [102] = "wɑŋ", [103] = "ɑk̚", [104] = "wɑk̚", [105] = "i̯aŋ", [106] = "iwaŋ", [107] = "i̯ak̚", [108] = "iwak̚", [109] = "ɐŋ", [110] = "wɐŋ", [111] = "i̯ɐŋ", [112] = "i̯wɐŋ", [113] = "ɐk̚", [114] = "wɐk̚", [115] = "iɐk̚", [116] = "iwɐk̚", [117] = "æŋ", [118] = "wæŋ", [119] = "æk̚", [120] = "wæk̚", [121] = "i̯ɛŋ", [122] = "i̯wɛŋ", [123] = "i̯ɛk̚", [124] = "i̯wɛk̚", [125] = "ieŋ", [126] = "iweŋ", [127] = "iek̚", [128] = "iwek̚", [129] = "əŋ", [130] = "wəŋ", [131] = "ək̚", [132] = "wək̚", [133] = "i̯əŋ", [134] = "i̯ək̚", [135] = "i̯wək̚", [136] = "i̯ə̯u", [137] = "ə̯u", [138] = "ieu", [139] = "i̯əm", [140] = "i̯əm", [141] = "i̯əp̚", [142] = "i̯əp̚", [143] = "ɑm", [144] = "ɑp̚", [145] = "i̯ɐm", [146] = "i̯wɐm", [147] = "i̯ɐp̚", [148] = "i̯wɐp̚", [149] = "am", [150] = "ap̚", [151] = "ăm", [152] = "ăp̚", [153] = "i̯ɛm", [154] = "i̯ɛm", [155] = "i̯ɛp̚", [156] = "i̯ɛp̚", [157] = "iem", [158] = "iep̚", [159] = "ăm", [160] = "ăp̚" },	["Li"] = { [1] = "uŋ", [2] = "iuŋ", [3] = "uk̚", [4] = "iuk̚", [5] = "oŋ", [6] = "ok̚", [7] = "ioŋ", [8] = "iok̚", [9] = "ɔŋ", [10] = "ɔk̚", [11] = "ie", [12] = "iue", [13] = "je", [14] = "jue", [15] = "i", [16] = "ui", [17] = "ji", [18] = "jui", [19] = "iə", [20] = "iəi", [21] = "iuəi", [22] = "iɔ", [23] = "o", [24] = "io", [25] = "ɑi", [26] = "uɑi", [27] = "iɐi", [28] = "iuɐi", [29] = "ai", [30] = "uai", [31] = "ɛ", [32] = "uɛ", [33] = "ɛi", [34] = "uɛi", [35] = "iɛi", [36] = "iuɛi", [37] = "jɛi", [38] = "juɛi", [39] = "ei", [40] = "uei", [41] = "ᴀi", [42] = "uᴀi", [43] = "iĕn", [44] = "jĕn", [45] = "juĕn", [46] = "iĕn", [47] = "iuĕn", [48] = "iĕt̚", [49] = "jĕt̚", [50] = "juĕt̚", [51] = "iĕt̚", [52] = "iuĕt̚", [53] = "ən", [54] = "ət̚", [55] = "uən", [56] = "uət̚", [57] = "iən", [58] = "iət̚", [59] = "iuən", [60] = "iuət̚", [61] = "ɑn", [62] = "uɑn", [63] = "ɑt̚", [64] = "uɑt̚", [65] = "iɐn", [66] = "iuɐn", [67] = "iɐt̚", [68] = "iuɐt̚", [69] = "an", [70] = "uan", [71] = "at̚", [72] = "uat̚", [73] = "ɛn", [74] = "uɛn", [75] = "ɛt̚", [76] = "uɛt̚", [77] = "iɛn", [78] = "iuɛn", [79] = "jɛn", [80] = "juɛn", [81] = "iɛt̚", [82] = "iuɛt̚", [83] = "jɛt̚", [84] = "juɛt̚", [85] = "en", [86] = "uen", [87] = "et̚", [88] = "uet̚", [89] = "ɑu", [90] = "au", [91] = "iɛu", [92] = "jɛu", [93] = "eu", [94] = "ɑ", [95] = "uɑ", [96] = "iɑ", [97] = "iuɑ", [98] = "a", [99] = "ua", [100] = "ia", [101] = "ɑŋ", [102] = "uɑŋ", [103] = "ɑk̚", [104] = "uɑk̚", [105] = "iaŋ", [106] = "iuaŋ", [107] = "iak̚", [108] = "iuak̚", [109] = "ɐŋ", [110] = "uɐŋ", [111] = "iɐŋ", [112] = "iuɐŋ", [113] = "ɐk̚", [114] = "uɐk̚", [115] = "iɐk̚", [116] = "iuɐk̚", [117] = "ɛŋ", [118] = "uɛŋ", [119] = "ɛk̚", [120] = "uɛk̚", [121] = "iɛŋ", [122] = "iuɛŋ", [123] = "iɛk̚", [124] = "iuɛk̚", [125] = "eŋ", [126] = "ueŋ", [127] = "ek̚", [128] = "uek̚", [129] = "əŋ", [130] = "uəŋ", [131] = "ək̚", [132] = "uək̚", [133] = "iəŋ", [134] = "iək̚", [135] = "iuək̚", [136] = "iu", [137] = "u", [138] = "iĕu", [139] = "iəm", [140] = "jəm", [141] = "iəp̚", [142] = "jəp̚", [143] = "ɑm", [144] = "ɑp̚", [145] = "iɐm", [146] = "iɐm", [147] = "iap̚", [148] = "iɐp̚", [149] = "am", [150] = "ap̚", [151] = "ɐm", [152] = "ɐp̚", [153] = "iɛm", [154] = "jɛm", [155] = "iɛp̚", [156] = "jɛp̚", [157] = "em", [158] = "ep̚", [159] = "ᴀm", [160] = "ᴀp̚" },	["Pan"] = { [1] = "uŋ", [2] = "iuŋ", [3] = "uk̚", [4] = "iuk̚", [5] = "uoŋ", [6] = "uok̚", [7] = "ioŋ", [8] = "iok̚", [9] = "ᵚɔŋ", [10] = "ᵚɔk̚", [11] = "iɛ", [12] = "ʷiɛ", [13] = "ᵚiɛ", [14] = "ʷᵚiɛ", [15] = "i", [16] = "ʷi", [17] = "ᵚi", [18] = "ʷᵚi", [19] = "ɨ", [20] = "ɨi", [21] = "ʷɨi", [22] = "iɔ", [23] = "uo", [24] = "io", [25] = "ɑi", [26] = "ʷɑi", [27] = "iɐi", [28] = "ʷiɐi", [29] = "ᵚai", [30] = "ʷᵚai", [31] = "ᵚæ", [32] = "ʷᵚæ", [33] = "ᵚæi", [34] = "ʷᵚæi", [35] = "iɛi", [36] = "ʷiɛi", [37] = "ᵚiɛi", [38] = "ʷᵚiei", [39] = "ei", [40] = "ʷei", [41] = "əi", [42] = "uoi", [43] = "in", [44] = "ᵚin", [45] = "ʷᵚin", [46] = "ɪn", [47] = "ʷin", [48] = "it̚", [49] = "ᵚit̚", [50] = "ʷᵚit̚", [51] = "ɪt̚", [52] = "ʷit̚", [53] = "ən", [54] = "ət̚", [55] = "uon", [56] = "uot̚", [57] = "ɨn", [58] = "ɨt̚", [59] = "iun", [60] = "iut̚", [61] = "ɑn", [62] = "ʷɑn", [63] = "ɑt̚", [64] = "ʷɑt̚", [65] = "iɐn", [66] = "ʷiɐn", [67] = "iɐt̚", [68] = "ʷiɐt̚", [69] = "ᵚan", [70] = "ʷᵚan", [71] = "ᵚat̚", [72] = "ʷᵚat̚", [73] = "ᵚæn", [74] = "ʷᵚæn", [75] = "ᵚæt̚", [76] = "ʷᵚæt̚", [77] = "iɛn", [78] = "ʷiɛn", [79] = "ᵚiɛn", [80] = "ʷᵚiɛn", [81] = "iɛt̚", [82] = "ʷiɛt̚", [83] = "ᵚiɛt̚", [84] = "ʷᵚiet̚", [85] = "en", [86] = "ʷen", [87] = "et̚", [88] = "ʷet̚", [89] = "ɑu", [90] = "ᵚau", [91] = "iɛu", [92] = "ᵚiɛu", [93] = "eu", [94] = "ɑ", [95] = "uɑ", [96] = "iɑ", [97] = "ʷiɑ", [98] = "ᵚa", [99] = "ʷᵚa", [100] = "ia", [101] = "ɑŋ", [102] = "ʷɑŋ", [103] = "ɑk̚", [104] = "ʷɑk̚", [105] = "iɐŋ", [106] = "ʷiɐŋ", [107] = "iɐk̚", [108] = "ʷiɐk̚", [109] = "ᵚaŋ", [110] = "ʷᵚaŋ", [111] = "ᵚiaŋ", [112] = "ʷᵚiaŋ", [113] = "ᵚak̚", [114] = "ʷᵚak̚", [115] = "ᵚiak̚", [116] = "ʷᵚiak̚", [117] = "ᵚæŋ", [118] = "ʷᵚæŋ", [119] = "ᵚæk̚", [120] = "ʷᵚæk̚", [121] = "iɛŋ", [122] = "ʷiɛŋ", [123] = "iɛk̚", [124] = "ʷiɛk̚", [125] = "eŋ", [126] = "ʷeŋ", [127] = "ek̚", [128] = "ʷek̚", [129] = "əŋ", [130] = "ʷəŋ", [131] = "ək̚", [132] = "ʷək̚", [133] = "ɨŋ", [134] = "ɨk̚", [135] = "ʷɨk̚", [136] = "iu", [137] = "əu", [138] = "ɨu", [139] = "im", [140] = "ᵚim", [141] = "ip̚", [142] = "ᵚip̚", [143] = "ɑm", [144] = "ɑp̚", [145] = "iɐm", [146] = "iɐm", [147] = "iɐp̚", [148] = "iɐp̚", [149] = "ᵚam", [150] = "ᵚap̚", [151] = "ᵚæm", [152] = "ᵚæp̚", [153] = "iɛm", [154] = "ᵚiɛm", [155] = "iɛp̚", [156] = "ᵚiɛp̚", [157] = "em", [158] = "ep̚", [159] = "əm", [160] = "əp̚" },	["Pulleyblank"] = { [1] = "əwŋ", [2] = "uwŋ", [3] = "əwk̚", [4] = "uwk̚", [5] = "awŋ", [6] = "awk̚", [7] = "uawŋ", [8] = "uawk̚", [9] = "aɨwŋ", [10] = "aɨwk̚", [11] = "iə̆", [12] = "wiə̆", [13] = "jiə̆", [14] = "jwiə̆", [15] = "i", [16] = "wi", [17] = "ji", [18] = "jwi", [19] = "ɨ", [20] = "ɨj", [21] = "uj", [22] = "ɨə̆", [23] = "ɔ", [24] = "uə̆", [25] = "aj", [26] = "waj", [27] = "ɨaj", [28] = "uaj", [29] = "aɨjs", [30] = "waɨjs", [31] = "aɨj", [32] = "waɨj", [33] = "əɨj", [34] = "wəɨj", [35] = "iaj", [36] = "wiaj", [37] = "jiaj", [38] = "jwiaj", [39] = "ɛj", [40] = "wɛj", [41] = "əj", [42] = "wəj", [43] = "in", [44] = "jin", [45] = "jin", [46] = "in", [47] = "win", [48] = "it̚", [49] = "jit̚", [50] = "jit̚", [51] = "it̚", [52] = "wit̚", [53] = "ən", [54] = "ət̚", [55] = "wən", [56] = "wət̚", [57] = "ɨn", [58] = "ɨt̚", [59] = "un", [60] = "ut̚", [61] = "an", [62] = "wan", [63] = "at̚", [64] = "wat̚", [65] = "ɨan", [66] = "uan", [67] = "ɨat̚", [68] = "uat̚", [69] = "aɨn", [70] = "waɨn", [71] = "aɨt̚", [72] = "waɨt̚", [73] = "əɨn", [74] = "wəɨn", [75] = "əɨt̚", [76] = "wəɨt̚", [77] = "ian", [78] = "wian", [79] = "ian", [80] = "wian", [81] = "iat̚", [82] = "wiat̚", [83] = "iat̚", [84] = "wiat̚", [85] = "ɛn", [86] = "wɛn", [87] = "ɛt̚", [88] = "wɛt̚", [89] = "aw", [90] = "aɨw", [91] = "iaw", [92] = "iaw", [93] = "ɛw", [94] = "a", [95] = "wa", [96] = "ɨa", [97] = "ua", [98] = "aɨ", [99] = "waɨ", [100] = "ia", [101] = "aŋ", [102] = "waŋ", [103] = "ak̚", [104] = "wak̚", [105] = "ɨaŋ", [106] = "uaŋ", [107] = "ɨak̚", [108] = "uak̚", [109] = "aɨjŋ", [110] = "waɨjŋ", [111] = "iajŋ", [112] = "wiajŋ", [113] = "aɨjk̚", [114] = "waɨjk̚", [115] = "iajk̚", [116] = "wiajk̚", [117] = "əɨjŋ", [118] = "wəɨjŋ", [119] = "əɨjk̚", [120] = "wəɨjk̚", [121] = "iajŋ", [122] = "wiajŋ", [123] = "iajk̚", [124] = "wiajk̚", [125] = "ɛjŋ", [126] = "wɛjŋ", [127] = "ɛjk̚", [128] = "wɛjk̚", [129] = "əŋ", [130] = "wəŋ", [131] = "ək̚", [132] = "wək̚", [133] = "iŋ", [134] = "ik̚", [135] = "wik̚", [136] = "uw", [137] = "əw", [138] = "jiw", [139] = "im", [140] = "jim", [141] = "ip̚", [142] = "jip̚", [143] = "am", [144] = "ap̚", [145] = "ɨam", [146] = "uam", [147] = "ɨap̚", [148] = "uap̚", [149] = "aɨm", [150] = "aɨp̚", [151] = "əɨm", [152] = "əɨp̚", [153] = "iam", [154] = "jiam", [155] = "iap̚", [156] = "jiap̚", [157] = "ɛm", [158] = "ɛp̚", [159] = "əm", [160] = "əp̚" },	["Wang"] = { [1] = "uŋ", [2] = "ĭuŋ", [3] = "uk̚", [4] = "ĭuk̚", [5] = "uoŋ", [6] = "uok̚", [7] = "ĭwoŋ", [8] = "ĭwok̚", [9] = "ɔŋ", [10] = "ɔk̚", [11] = "ǐe", [12] = "ǐwe", [13] = "ǐe", [14] = "ǐwe", [15] = "i", [16] = "wi", [17] = "i", [18] = "wi", [19] = "ĭə", [20] = "ĭəi", [21] = "ĭwəi", [22] = "ĭo", [23] = "u", [24] = "ĭu", [25] = "ɑi", [26] = "uɑi", [27] = "ĭɐi", [28] = "ĭwɐi", [29] = "æi", [30] = "wæi", [31] = "ai", [32] = "wai", [33] = "ɐi", [34] = "wɐi", [35] = "ĭɛi", [36] = "ĭwɛi", [37] = "ĭɛi", [38] = "ĭwɛi", [39] = "iei", [40] = "iwei", [41] = "ɒi", [42] = "uɒi", [43] = "ĭĕn", [44] = "ǐĕn", [45] = "ǐĕn", [46] = "ĭen", [47] = "ĭuĕn", [48] = "ĭĕt̚", [49] = "ĭĕt̚", [50] = "ĭĕt̚", [51] = "ĭet̚", [52] = "ĭuĕt̚", [53] = "ən", [54] = "ət̚", [55] = "uən", [56] = "uət̚", [57] = "ĭən", [58] = "ĭət̚", [59] = "ĭuən", [60] = "ĭuət̚", [61] = "ɑn", [62] = "uɑn", [63] = "ɑt̚", [64] = "uɑt̚", [65] = "ĭɐn", [66] = "ĭwɐn", [67] = "ĭɐt̚", [68] = "ĭwɐt̚", [69] = "an", [70] = "wan", [71] = "at̚", [72] = "wat̚", [73] = "æn", [74] = "wæn", [75] = "æt̚", [76] = "wæt̚", [77] = "ĭɛn", [78] = "ĭwɛn", [79] = "ĭɛn", [80] = "ĭwɛn", [81] = "ĭɛt̚", [82] = "ĭuɛt̚", [83] = "ĭɛt̚", [84] = "ĭuɛt̚", [85] = "ien", [86] = "iwen", [87] = "iet̚", [88] = "iwet̚", [89] = "ɑu", [90] = "au", [91] = "ĭɛu", [92] = "ĭɛu", [93] = "ieu", [94] = "ɑ", [95] = "uɑ", [96] = "ǐɑ", [97] = "ĭuɑ", [98] = "a", [99] = "wa", [100] = "ĭa", [101] = "ɑŋ", [102] = "uɑŋ", [103] = "ɑk̚", [104] = "uɑk̚", [105] = "ĭaŋ", [106] = "ĭwaŋ", [107] = "ĭak̚", [108] = "ĭak̚", [109] = "ɐŋ", [110] = "wɐŋ", [111] = "ĭɐŋ", [112] = "ĭwɐŋ", [113] = "ɐk̚", [114] = "wɐk̚", [115] = "ĭɐk̚", [116] = "ĭwɐk̚", [117] = "æŋ", [118] = "wæŋ", [119] = "æk̚", [120] = "wæk̚", [121] = "ĭɛŋ", [122] = "ĭwɛŋ", [123] = "ĭɛk̚", [124] = "ĭwɛk̚", [125] = "ieŋ", [126] = "iweŋ", [127] = "iek̚", [128] = "iwek̚", [129] = "əŋ", [130] = "uəŋ", [131] = "ək̚", [132] = "uək̚", [133] = "ĭəŋ", [134] = "ĭək̚", [135] = "ĭwək̚", [136] = "ĭəu", [137] = "əu", [138] = "iəu", [139] = "ĭĕm", [140] = "ĭĕm", [141] = "ĭĕp̚", [142] = "ĭĕp̚", [143] = "ɑm", [144] = "ɑp̚", [145] = "ĭɐm", [146] = "ĭwɐm", [147] = "ĭɐp̚", [148] = "ĭwɐp̚", [149] = "am", [150] = "ap̚", [151] = "ɐm", [152] = "ɐp̚", [153] = "ĭɛm", [154] = "ĭɛm", [155] = "ĭɛp̚", [156] = "ĭɛp̚", [157] = "iem", [158] = "iep̚", [159] = "ɒm", [160] = "ɒp̚" },	["Shao"] = { [1] = "uŋ", [2] = "iuŋ", [3] = "uk̚", [4] = "iuk̚", [5] = "oŋ", [6] = "ok̚", [7] = "ioŋ", [8] = "iok̚", [9] = "ɔŋ", [10] = "ɔk̚", [11] = "jɛ", [12] = "juɛ", [13] = "iɛ", [14] = "iuɛ", [15] = "jɪ", [16] = "juɪ", [17] = "iɪ", [18] = "iuɪ", [19] = "ie", [20] = "iəi", [21] = "iuəi", [22] = "iɔ", [23] = "o", [24] = "io", [25] = "ɑi", [26] = "uɑi", [27] = "iɐi", [28] = "iuɐi", [29] = "ai", [30] = "uai", [31] = "æi", [32] = "uæi", [33] = "ɐi", [34] = "uɐi", [35] = "jæi", [36] = "iuæi", [37] = "iæi", [38] = "iuæi", [39] = "ɛi", [40] = "uɛi", [41] = "ɒi", [42] = "uɒi", [43] = "jen", [44] = "ien", [45] = "iuen", [46] = "ien", [47] = "juen", [48] = "jet̚", [49] = "iet̚", [50] = "iuet̚", [51] = "iet̚", [52] = "juet̚", [53] = "ən", [54] = "ət̚", [55] = "uən", [56] = "uət̚", [57] = "iən", [58] = "iət̚", [59] = "iuən", [60] = "iuət̚", [61] = "ɑn", [62] = "uɑn", [63] = "ɑt̚", [64] = "uɑt̚", [65] = "iɐn", [66] = "iuɐn", [67] = "iɐt̚", [68] = "iuɐt̚", [69] = "ɐn", [70] = "uɐn", [71] = "ɐt̚", [72] = "uɐt̚", [73] = "æn", [74] = "uæn", [75] = "æt̚", [76] = "uæt̚", [77] = "jæn", [78] = "juæn", [79] = "iæn", [80] = "iuæn", [81] = "jæt̚", [82] = "juæt̚", [83] = "iæt̚", [84] = "iuæt̚", [85] = "ɛn", [86] = "uɛn", [87] = "ɛt̚", [88] = "uɛt̚", [89] = "ɑu", [90] = "au", [91] = "jæu", [92] = "iæu", [93] = "eu", [94] = "ɑ", [95] = "uɑ", [96] = "iɑ", [97] = "iuɑ", [98] = "a", [99] = "ua", [100] = "ia", [101] = "ɑŋ", [102] = "uɑŋ", [103] = "ɑk̚", [104] = "uɑk̚", [105] = "iɑŋ", [106] = "iuɑŋ", [107] = "iɑk̚", [108] = "iuɑk̚", [109] = "aŋ", [110] = "uaŋ", [111] = "iaŋ", [112] = "iuaŋ", [113] = "ak̚", [114] = "uak̚", [115] = "iak̚", [116] = "iuak̚", [117] = "ɐŋ", [118] = "uɐŋ", [119] = "ɐk̚", [120] = "uɐk̚", [121] = "iæŋ", [122] = "iuæŋ", [123] = "iæk̚", [124] = "iuæk̚", [125] = "ɛŋ", [126] = "uɛŋ", [127] = "ɛk̚", [128] = "uɛk̚", [129] = "əŋ", [130] = "uəŋ", [131] = "ək̚", [132] = "uək̚", [133] = "ieŋ", [134] = "iek̚", [135] = "iuek̚", [136] = "iəu", [137] = "əu", [138] = "ieu", [139] = "jem", [140] = "iem", [141] = "jep̚", [142] = "iep̚", [143] = "ɑm", [144] = "ɑp̚", [145] = "iɐm", [146] = "iɐm", [147] = "iɐp̚", [148] = "iɐp̚", [149] = "am", [150] = "ap̚", [151] = "ɐm", [152] = "ɐp̚", [153] = "jæm", [154] = "iæm", [155] = "jæp̚", [156] = "iæp̚", [157] = "ɛm", [158] = "ɛp̚", [159] = "ɒm", [160] = "ɒp̚" }, }

data.final_deng = { ["東一"] = 1, ["東三"] = 2, ["屋一"] = 3, ["屋三"] = 4, ["宵三"] = 91, ["宵重鈕四"] = 91, ["宵重鈕三"] = 92, ["侵三"] = 139, ["侵重鈕三"] = 140, ["緝三"] = 141, ["緝重鈕三"] = 142, ["葉三"] = 155, ["葉重鈕三"] = 156, ["鹽三"] = 153, ["鹽重鈕三"] = 154, ["真三"] = 43, ["真重鈕四"] = 43, ["眞三"] = 43, ["眞重鈕四"] = 43, ["質三"] = 48, ["質重鈕四"] = 48 }

data.division = { ["一"] = 'I', ["二"] = 'II', ["三"] = 'III', ["四"] = 'IV', ["重鈕三"]="Chongniu III", ["重鈕四"]="Chongniu IV" }

data.open_closed = { ["開"] = "Open", ["合"] = "Closed" }

data.tonality = { ["上"] = "Rising (X)", ["去"] = "Departing (H)", ["平"] = "Level (Ø)", ["入"] = "Checked (Ø)" }

data.tone_symbol = { ["平"] = "", ["上"] = "X", ["去"] = "H", ["入"] = "" }

data.tone_number = { ["平"] = 1, ["上"] = 2, ["去"] = 3, ["入"] = 4 }

data.final_openness = { ["真開"] = 44, ["真合"] = 45, ["眞開"] = 44, ["眞合"] = 45, ["質開"] = 49, ["質合"] = 50 }

data.final_type_1 = "[微泰廢夬佳皆齊元月刪黠山鎋先屑唐鐸陽藥耕麥清昔青錫登德職]" data.final_type_2 = "[東屋宵侵緝葉鹽]" data.final_type_3 = "[支脂祭戈仙薛麻陌庚]" data.final_type_4 = "[真眞質]" data.final_type_5 = "[冬沃鍾燭江覺之魚模虞咍灰臻諄櫛術痕麧魂沒欣迄文物寒桓曷末豪肴蕭歌蒸尤侯幽談盍嚴凡業乏銜狎咸洽添怗帖覃合]"

data.colour_1 = "#D0E4F7" data.colour_2 = "#E1EEFA" data.colour_3 = "#f7fbff"

return data

title: Module:User:iwsfutcmd/ltc-pron/data


text:
ispruživši

Participle

 * 1) past verbal adverb of ìspružiti

title: ispruživši


text:
vihmakulli

Etymology
From

title: vihmakulli


text:
vesikulli

Etymology
From.

title: vesikulli


text:
refik

Etymology
, from, from.

Noun

 * 1)  A  companion, friend.
 * 2)  Masculine spouse, husband.
 * 1)  Masculine spouse, husband.

title: refik


text:
കൗതുകം

Etymology
.

Noun

 * 1) curiosity

title: കൗതുകം


text:
vihmamatokkain

Etymology
From.

title: vihmamatokkain


text:
nateći

Verb

 * 1)  to swell, become swollen

title: nateći


text: natečen

title: natečen


text:
조개관자

Etymology
.

Noun

 * 1)  adductor muscle of a clam

title: 조개관자


text: vihmoja

title: vihmoja


text:
बधाना

Etymology
, from. Related to and.

Verb

 * 1) to increase

title: बधाना


title: Template:R:oge:Abuladze:1955


text:
refika

Etymology
, from, feminine of , from.

Noun

 * 1)  Feminine spouse, wife.

title: refika


text:
pyyntimenetelmä

Noun

 * 1) technique for hunting or fishing

title: pyyntimenetelmä


text:
pyörintänopeus

Noun

 * 1) rotation speed

title: pyörintänopeus


text:
pyöräilyrata

Noun

 * 1) cycling track

title: pyöräilyrata


text:
pyöräilyretki

Noun

 * 1) cycling trip, bike trip

title: pyöräilyretki


text:
pyöräsuunnistus

Noun

 * 1) bicycle orienteering

title: pyöräsuunnistus


text:
მოჭკა

Etymology
.

Adjective

 * 1) initial, first

Noun

 * 1) beginning, start

title: მოჭკა


text:
pyörävarkaus

Noun

 * 1) bicycle theft

title: pyörävarkaus


text:
pyörökatsomo

Noun

 * 1) rotating grandstand

title: pyörökatsomo


text:
pyöröpaalaus

Noun

 * 1) round baling

title: pyöröpaalaus


text:
päihtymystila

Noun

 * 1) (state of) drunkenness, intoxication, inebriation

title: päihtymystila


text:
päiväapulainen

Noun

 * 1) house helper or housemaid  who does not live at the house they work at

title: päiväapulainen


text:
päivähoitaja

Noun

 * 1) daycare worker

title: päivähoitaja


text:
päiväkuntoutus

Noun

 * 1) day rehabilitative care

title: päiväkuntoutus


text:
päiväkylpylä

Noun

 * 1) day spa

title: päiväkylpylä


text:
päivälehdistö

Noun

 * 1) daily press

title: päivälehdistö


text:
päivämaksu

Noun

 * 1) daily fee, daily rate

title: päivämaksu


text:
päivänäytäntö

Noun

 * 1) matinee showing of a movie or theatrical performance in the afternoon

title: päivänäytäntö


text:
päiväpalkkio

Noun

 * 1) daily remuneration

title: päiväpalkkio


text:
päiväruokinta

Noun

 * 1) day feeding

title: päiväruokinta


text:
päivätalletus

Noun

 * 1)  interbank call money

title: päivätalletus


text:
pärinäpoika

Noun

 * 1) motorcycle boy, rider boy

title: pärinäpoika


text:
pré-pandémico

Etymology
From.

Adjective

 * 1) prepandemic

title: pré-pandémico


text:
დროშაჲ

Etymology
Developed from earlier, like from , borrowed from , itself from. An Armenian mediation has to be assumed because of the. , borrowed directly from Iranian.

Noun

 * 1) flag

title: დროშაჲ


text:
cazibe

Etymology
, from.

Noun

 * 1) attraction, appeal.
 * 2)  gravitation
 * 1)  gravitation

title: cazibe


text: ひきょうもの

title: ひきょうもの


text:
return back

Verb

 * 1)  To return (something).

title: return back


text:
viiliä

Etymology
Cognate with 🇨🇬 and 🇨🇬.

Adjective

 * 1) cool

title: viiliä


text: enxagues

title: enxagues


text: കർമം

title: കർമം


text:
viikolliin

Etymology
From.

Adjective

 * 1) weekly

title: viikolliin


text:
viilike

Etymology
From. Cognates include 🇨🇬.

Noun

 * 1) shoulder strap

title: viilike


text:
സൂത്രം

Etymology
.

Noun

 * 1) a tricky or clever method or solution; artifice, contrivance
 * 2) sutra; a rule or thesis in Sanskrit grammar or Hindu law or philosophy
 * 3) thread, string
 * 4) yajnopavita; a sacred thread worn by certain castes in Hinduism
 * 5) secret
 * 1) secret

title: സൂത്രം


text:
Talk:initbutod

Thermometer
@Mar vin kaiser Hello, where did you get initbutod as thermometer? I looked at Maugnayin and thermometer is "initsukod" while thermonuclear is "initbutudnin". Ysrael214 (talk) 11:08, 20 April 2023 (UTC)
 * If you look at my user page, in my Tagalog to-do list, it's in the Maugnayin words to be checked section. That's basically a list of all the Maugnayin-ish words that I can't find in the Maugnayin main document. You see, aside from the main document, many other small minor documents have been published, but they're only available in some libraries. I'm thinking they're from there. I already forgot which source I got the word "initbutod" from. But for the time being, I compile a list of them in my user page. --Mar vin kaiser (talk) 09:21, 24 April 2023 (UTC)

title: Talk:initbutod