Module:pine-pron: Difference between revisions

From Linguifex
Jump to navigation Jump to search
(Created page with "local sub = mw.ustring.sub local find = mw.ustring.find local gmatch = mw.ustring.gmatch local gsub = mw.ustring.gsub local match = mw.ustring.match local u = mw.ustring.char local split = mw.text.split local gsplit = mw.text.gsplit local lang = require("Module:languages").getByCode("pine") local c = require("Module:languages/data").chars local m_IPA = require("Module:IPA") local export = {} function export.crux(term) return term end function export.show(frame) loc...")
 
No edit summary
Line 11: Line 11:
local c = require("Module:languages/data").chars
local c = require("Module:languages/data").chars
local m_IPA = require("Module:IPA")
local m_IPA = require("Module:IPA")
local long_vowels = {
["ả"] = "æː", ["ẻ"] = "eː", ["ỉ"] = "iː",
["ỏ"] = "oː", ["ủ"] = "uː", ["ỷ"] = "yː",
}
local laxen = {
["y"] = "ʏ", ["i"] = "ɪ", ["ů"] = "œ", ["e"] = "ɛ",
["u"] = "ʊ", ["o"] = "ɔ", ["a"] = "ɑ",
}


local export = {}
local export = {}


function export.crux(term)
function export.crux(term)
-- default to short lax vowels
term = term:gsub("[aeiouyů]", laxen)
-- long vowels
term = term:gsub("[ảẻỉỏủỷ]", long_vowels)
term = term:gsub("ɔɑ", "ɑː"); term = term:gsub("ɛœ", "øː")
return term
return term
end
end

Revision as of 23:09, 17 November 2025



local sub = mw.ustring.sub
local find = mw.ustring.find
local gmatch = mw.ustring.gmatch
local gsub = mw.ustring.gsub
local match = mw.ustring.match
local u = mw.ustring.char
local split = mw.text.split
local gsplit = mw.text.gsplit

local lang = require("Module:languages").getByCode("pine")
local c = require("Module:languages/data").chars
local m_IPA = require("Module:IPA")

local long_vowels = {
	["ả"] = "æː", ["ẻ"] = "eː", ["ỉ"] = "iː",
	["ỏ"] = "oː", ["ủ"] = "uː", ["ỷ"] = "yː",
}

local laxen = {
	["y"] = "ʏ", ["i"] = "ɪ", ["ů"] = "œ", ["e"] = "ɛ",
	["u"] = "ʊ", ["o"] = "ɔ", ["a"] = "ɑ",
}

local export = {}

function export.crux(term)
	-- default to short lax vowels
	term = term:gsub("[aeiouyů]", laxen)
	-- long vowels
	term = term:gsub("[ảẻỉỏủỷ]", long_vowels)
	term = term:gsub("ɔɑ", "ɑː"); term = term:gsub("ɛœ", "øː")
	
	return term
end

function export.show(frame)
	local parent_args = frame:getParent().args
	local params = {
		[1] = { default = mw.title.getCurrentTitle().nsText == 'Template' and "Niṡkullit" or mw.title.getCurrentTitle().text },
	}
	local args = require("Module:parameters").process(parent_args, params)
	local term = mw.ustring.lower(args[1])
	
	local pronunciations = {
		{pron = "[" .. term .. "]"}
	}

	return "* " .. m_IPA.format_IPA_full{lang = lang, items = pronunciations}
end

return export