localexport={}functionstring.starts(String,Start)returnstring.sub(String,1,string.len(Start))==Startend--used by translation adder for language autocompletionfunctionexport.GetSingleLanguageByLanguagePrefix(prefix)localbyName=require("Module:languages/by name")localfound_code=nillocalfound_name=nilforname,codeinpairs(byName)doif(string.starts(name,prefix.args[1]))theniffound_code==nilorfound_code==codethenfound_code=codefound_name=nameelsereturn""endendendiffound_code~=nilthenreturnfound_code..":"..found_nameelsereturn""endend--translation adder may prefetch all data and do processing on client sidefunctionexport.GetAllData()localbyName=require("Module:languages/by name")returnrequire("Module:JSON").toJSON(byName)endfunctionexport.AllCanonicalToCode()localbyCanonicalName=require("Module:languages/canonical names")returnrequire("Module:JSON").toJSON(byCanonicalName)endfunctionexport.AllCodeToCanonical()localcodeToName=require("Module:languages/code to canonical name")returnrequire("Module:JSON").toJSON(codeToName)endfunctionexport.AllLangcodeToScripts()localresultData={}forcode,datainpairs(require("Module:languages/data/all"))doiftype(data[4])=="string"thendata[4]=mw.text.split(data[4],"%s*,%s*")endresultData[code]=data[4]endreturnrequire("Module:JSON").toJSON(resultData)endfunctionexport.GetLanguagesWithAutomaticTransliteration()localresultData={}forcode,datainpairs(require("Module:languages/data/all"))doifdata.override_translit==truethenresultData[code]=trueendendreturnrequire("Module:JSON").toJSON(resultData)endfunctionexport.AllWiktionaryCodeToWikimediaCode()localresultData={}forcode,datainpairs(require("Module:languages/data/all"))doiftype(data.wikimedia_codes)=="string"thendata.wikimedia_codes=mw.text.split(data.wikimedia_codes,"%s*,%s*")endresultData[code]=data.wikimedia_codesendreturnrequire("Module:JSON").toJSON(resultData)endreturnexport