locallanguages=require("Module:TNT")localp={}FEATURES={--User:Forcingyes/noparameterstodescriptionstrings(usedtobuildthecategorynames)sendPosition='send your position',uploadWikimediaData='upload changes to Wikimedia',tracking='record Wikipedia tracks',}--debugwithe.g.=p.featureCategories(nil,{platform='foo;bar;android',sendPosition='yes'})functionp.featureCategories(frame,debugArgs)localargs=debugArgsorframe:getParent().argsiflanguages.languageFromTitle(mw.title.getCurrentTitle())~='en'then--TODO:addcategorywithlanguageprefixifcategoryexistsreturn''endlocalsortKeyifnotargs.licensethensortKey='?'elseifstring.lower(args.license):find('proprietary')thenifargs.status=='broken'thenreturn''endsortKey='Proprietary'elseifargs.status=='unmaintained'thensortKey='Unmaintained'elseifargs.status=='broken'thensortKey='X'elsesortKey='Open source'--educatedguessendendlocaltxt=''--TODO:addcategory3Dsoftwareifnotargs.platformthenreturntxtendlocalplatforms={}for_,iteminpairs(mw.text.split(args.platform,'[;,]'))dokey=mw.ustring.lower(mw.text.split(--takethefirstwordtodetecte.g."Android 5.0+"asandroidmw.text.trim(item),' ')[1])platforms[key]=trueendifplatforms.androidthenforarg,descinpairs(FEATURES)doifargs[arg]andargs[arg]~=''andargs[arg]~='no'thentxt=txt..'[[Category:Android apps that can '..desc..'|'..sortKey..']]'endendendreturntxtendreturnp