Module:User:Erutuon/languages/templates

local export = {}

function export.getByCode(frame) local args = frame.args local langcode = args[1] or error("Language code has not been specified. Please pass parameter 1 to the module invocation.") local itemname = args[2] or error("Type of information to look up has not been specified. Please pass parameter 2 to the module invocation.") local lang = require("Module:User:Erutuon/languages").getByCode(langcode) if not lang then error("The language code '" .. langcode .. "' is not valid.") end -- The item that the caller wanted to look up	if itemname == "getOtherNames" then local index = args[3]; if index == "" then index = nil end index = tonumber(index) or error("Please specify the numeric index of the desired name.") return lang:getOtherNames[index] or "" elseif itemname == "getFamily" then return lang:getFamily:getCode elseif itemname == "getWikimediaLanguages" then local index = args[3]; if index == "" then index = nil end index = tonumber(index) or error("Please specify the numeric index of the desired language.") local langs = lang:getWikimediaLanguages if langs[index] then return langs[index]:getCode else return "" end elseif itemname == "getScripts" then local index = args[3]; if index == "" then index = nil end index = tonumber(index) or error("Please specify the numeric index of the desired script.") local scripts = lang:getScriptCodes if scripts[index] then return scripts[index] else return "" end elseif itemname == "getAncestors" then local index = args[3]; if index == "" then index = nil end index = tonumber(index) or error("Please specify the numeric index of the desired ancestor.") local ancestors = lang:getAncestors if ancestors[index] then return ancestors[index]:getCode else return "" end elseif itemname == "transliterate" then local text = args[3]; if text == "" then text = nil end local sc = args[4]; if sc == "" then sc = nil end local module_override = args[5]; if module_override == "" then module_override = nil end sc = (sc and (require("Module:scripts").getByCode(sc) or error("The script code \"" .. sc .. "\" is not valid.")) or nil) return lang:transliterate(text, sc, module_override) or "" elseif itemname == "makeEntryName" then local text = args[3]; if text == "" then text = nil end return lang:makeEntryName(text) or "" elseif itemname == "makeSortKey" then local text = args[3]; if text == "" then text = nil end return lang:makeSortKey(text) or "" elseif lang[itemname] then local ret = lang[itemname](lang) if type(ret) == "string" then return ret else error("The function \"" .. itemname .. "\" did not return a string value.") end else error("Requested invalid item name \"" .. itemname .. "\".") end end

return export