localexport={}localArray=require("Module:array")localm_lang=require("Module:languages")-- Allows us to get the language object for the longest language code-- in a template name.-- For instance, when given "cel-bry-noun", where "cel-bry" yields-- Proto-Brythonic and "cel" yields Proto-Celtic, Proto-Brythonic wins out.localfunctionget_from_hyphenated_prefix(title,getter)localsegments={}forsegmentintitle:gmatch"[^-]+"dotable.insert(segments,segment)endlocalobjectfori=#segments-1,1,-1dolocalcode=table.concat(segments,"-",1,i)object=getter(code)ifobjectthenlocalrest=table.concat(segments,"-",i+1)ifrest==""thenrest=nilendreturnobject,restendendendfunctionexport.categorize(title,sortkey)localname=title.textlocallang_obj,rest=get_from_hyphenated_prefix(title.text,function(code)returnm_lang.getByCode(code)orm_lang.getByCode(code.."-pro")orm_lang.getByCode("inc-"..code)end)sortkey=sortkeyorrestorname--return "[[Category:" .. lang_obj:getCanonicalName()-- .. " headword-line templates|" .. sortkey .. "]]"return"[[หมวดหมู่:แม่แบบบรรทัดคำหลัก"..lang_obj:getCategoryName().."|"..sortkey.."]]"endfunctionexport.main(frame)localcurrent_title=mw.title.getCurrentTitle()ifcurrent_title.nsText==""orcurrent_title.nsText=="การสืบสร้าง"thenerror("This template is meant to be used in the Template namespace.")endlocalargs=frame:getParent().argslocaltitle=current_titlelocalis_demo=current_title.nsText=="มอดูล"or(current_title.nsText=="แม่แบบ"andcurrent_title.baseText=="headword-line template cat")ifis_demoandargs.titlethentitle=mw.title.new(args.title)endlocalcategories=export.categorize(title,args.sort)ifis_demothencategories=mw.text.nowiki(categories)endreturncategoriesendreturnexport