Module:User:kc kennylau/japanese

This is a private module sandbox of kc kennylau, for his own experimentation. Items in this module may be added and removed at kc kennylau's discretion; do not rely on this module's stability.


local export = {}

local ja = require("Module:ja")

function export.convert(frame)
	local text = mw.text.unstripNoWiki(frame.args[1])
	text = mw.ustring.gsub(text, "%* {{ja%-l|([^|=}]+)|([^|=}]*)|([^|=}]+)}}", function(a,b,c)
		if ja.script(a):match("Hani") then
			c = mw.ustring.gsub(c, "[A-ZĀĒĪŌŪ]", function(d)
				return "^" .. mw.ustring.lower(d)
			end)
			b = ja.kata_to_hira(ja.romaji_to_kata(c))
		end
		return "* {{ja-r|" .. a .. "|" .. b .. "}}"
	end)
	text = mw.ustring.gsub(text, "%* {{ja%-l|([^|=}]+)|([^|=}]*)}}", "* {{ja-r|%1|%2}}")
	text = mw.ustring.gsub(text, "%* {{l|ja|([^|=}]+)|tr=%[%[([^|=}]+)%]%], ([^|=}]+)}}", function(a,b,c)
		if ja.script(a):match("Hani") then
			c = mw.ustring.gsub(c, "[A-ZĀĒĪŌŪ]", function(d)
				return "^" .. mw.ustring.lower(d)
			end)
			b = ja.kata_to_hira(ja.romaji_to_kata(c))
			return "* {{ja-r|" .. a .. "|" .. b .. "}}"
		else
			return "* {{ja-r|" .. a .. "}}"
		end
	end)
	text = mw.ustring.gsub(text, "%* {{l|ja|([^|=}]+)|tr=([^|=}]+), ([^|=}]+)}}", function(a,b,c)
		if ja.script(a):match("Hani") then
			c = mw.ustring.gsub(c, "[A-ZĀĒĪŌŪ]", function(d)
				return "^" .. mw.ustring.lower(d)
			end)
			b = ja.kata_to_hira(ja.romaji_to_kata(c))
		end
		return "* {{ja-r|" .. a .. "|" .. b .. "}}"
	end)
	text = mw.ustring.gsub(text, "%* {{l|ja|([^|=}]+)|tr=[^|=}]+}}", "* {{ja-r|%1}}")
	text = mw.ustring.gsub(text, "%* %[%[([^|=}]+)%]%] %(%[%[([^|=}]+)%]%]%)", function(a,b)
		if ja.script(a):match("Hani") then
			b = mw.ustring.gsub(b, "[A-ZĀĒĪŌŪ]", function(c)
				return "^" .. mw.ustring.lower(c)
			end)
			b = ja.kata_to_hira(ja.romaji_to_kata(b))
		end
		return "* {{ja-r|" .. a .. "|" .. b .. "}}"
	end)
	return text
end

return export