Module:languages: Difference between revisions

From Laenkea
Jump to navigation Jump to search
No edit summary
No edit summary
Line 5: Line 5:
error("Language code must be string. Got " .. type(code))
error("Language code must be string. Got " .. type(code))
end
end
local l = require("Module:languages/data")[code]
local l = mw.loadData("Module:languages/data")[code]
if l == nil then
if l == nil then
error("No such language code")
error("No such language code")
end
end
return l
return l
end
function export.get_by_canonical_name(name)
local c = mw.loadData("Module:languages/canonical names")[name]
if c == nil then
error("No such language name")
end
return export.get_by_code(c)
end
end



Revision as of 07:47, 6 August 2023

local export = {}

function export.get_by_code(code)
	if type(code) ~= "string" then
		error("Language code must be string. Got " .. type(code))
	end
	local l = mw.loadData("Module:languages/data")[code]
	if l == nil then
		error("No such language code")
	end
	return l
end

function export.get_by_canonical_name(name)
	local c = mw.loadData("Module:languages/canonical names")[name]
	if c == nil then
		error("No such language name")
	end
	return export.get_by_code(c)
end

function export.get_field_by_code(code, field)
	if type(field) ~= "string" then
		error("Desired field must be a string")
	end
	local l = export.get_by_code(code)
	return l[field]
end

function export.getByCode(frame)
	local code = frame.args[1]
	local field = frame.args[2]
	if type(field) == "string" then
		return export.get_field_by_code(code, field)
	end
	return export.get_by_code(code)
end

return export