localexport={}functionexport.exists(frame)localargs=frame.argslocaletymlang=args[1]orerror("Etymology language code has not been specified. Please pass parameter 1 to the module invocation.")etymlang=require("Module:etymology languages").getByCode(etymlang)ifetymlangthenreturn"1"elsereturn""endendfunctionexport.getByCode(frame)localargs=frame.argslocaletymlang=args[1]orerror("Etymology language code (parameter 1) has not been specified.")localitemname=args[2]orerror("Function to call (parameter 2) has not been specified.")etymlang=require("Module:etymology languages").getByCode(etymlang)orerror("The etymology language code '"..etymlang.."' is not valid.")-- The item that the caller wanted to look upifitemname=="getCanonicalName"thenreturnetymlang:getCanonicalName()elseifitemname=="getAllNames"thenlocalindex=args[3];ifindex==""thenindex=nilendindex=tonumber(indexorerror("Numeric index of the desired item in the list (parameter 3) has not been specified."))returnetymlang:getAllNames()[index]or""elseifitemname=="getParentCode"thenreturnetymlang:getParentCode()elseifitemname=="getWikipediaArticle"thenreturnetymlang:getWikipediaArticle()elseerror("Requested invalid item name \""..itemname.."\".")endendfunctionexport.getByCanonicalName(frame)localargs=frame.argslocaletymlang=args[1]orerror("Etymology language name (parameter 1) has not been specified.")etymlang=require("Module:etymology languages").getByCanonicalName(etymlang)ifetymlangthenreturnetymlang:getCode()elsereturn""endendreturnexport