NextUpgrade r13 localization audit

This report lists likely visible string literals still found outside Localization/*.lua.
It is intentionally conservative: some entries can be format strings or API-related.

NextUpgrade/UI/MainFrame.lua:76  ..tostring(key)] or tostring(key or 
NextUpgrade/UI/MainFrame.lua:173  ) or (NS.L.DETAILS or 
NextUpgrade/UI/MainFrame.lua:181  |cffd9a928NextUpgrade:|r 
NextUpgrade/UI/MainFrame.lua:181  Open the quest out of combat.
NextUpgrade/UI/MainFrame.lua:206   then out[#out+1]=(o.finished and 
NextUpgrade/UI/MainFrame.lua:231  ,UIParent,NextUpgradeDB.point or 
NextUpgrade/UI/MainFrame.lua:260  ..(self.build or 
NextUpgrade/UI/MainFrame.lua:260  ..(L.BY or 
NextUpgrade/UI/MainFrame.lua:354  ,function() NS.currentPage=
NextUpgrade/UI/MainFrame.lua:354  ; if NextUpgradeDB.rememberLastPage then NextUpgradeDB.currentPage=
NextUpgrade/UI/MainFrame.lua:382  ),color or C.text);b:SetPoint(
NextUpgrade/UI/MainFrame.lua:495  %s · %d ilvl · %s
NextUpgrade/UI/MainFrame.lua:495  ,best.ilvl or 0,best.recommendation or 
NextUpgrade/UI/MainFrame.lua:495  ) or self.L.NO_DATA,
NextUpgrade/UI/MainFrame.lua:504  ,function(self) self:SetBackdropColor(.10,.12,.14,.98);GameTooltip:SetOwner(self,
NextUpgrade/UI/MainFrame.lua:530  ..(best.ilvl or 0)..
NextUpgrade/UI/MainFrame.lua:530  ..(best.recommendation or 
NextUpgrade/UI/MainFrame.lua:531  ..bestText,best and recColor(best.recommendation,self.L) or C.muted);line2:SetPoint(
NextUpgrade/UI/MainFrame.lua:540  %d. %s · %d ilvl · %s
NextUpgrade/UI/MainFrame.lua:540  ,it.ilvl or 0,it.recommendation or 
NextUpgrade/UI/MainFrame.lua:712  ,1,true) and n:find(
NextUpgrade/UI/MainFrame.lua:743  )<(b.data.name or 
NextUpgrade/UI/MainFrame.lua:765  ..(self.L[guide.zoneKey] or 
NextUpgrade/UI/MainFrame.lua:767  ..(self.L[ak] or ak),C.muted);z:SetPoint(
NextUpgrade/UI/MainFrame.lua:791  ..(v.realm or 
NextUpgrade/UI/MainFrame.lua:791  ..(v.specName or v.class or 
NextUpgrade/UI/MainFrame.lua:792  %d/%m %H:%M
NextUpgrade/UI/MainFrame.lua:907  Supported languages
NextUpgrade/UI/MainFrame.lua:952  NextUpgrade 
NextUpgrade/UI/MainFrame.lua:952  ..(self.build or 
NextUpgrade/UI/MainFrame.lua:954  Midnight 
NextUpgrade/UI/MainFrame.lua:954  ..(self.GuideData.updated or 
NextUpgrade/UI/MainFrame.lua:974  %s: %d%% · %s
NextUpgrade/UI/MainFrame.lua:1012  ..(self.build or 
NextUpgrade/UI/MainFrame.lua:1012  ..(self.L.BY or 
NextUpgrade/UI/MainFrame.lua:1044  |cffff4444NextUpgrade UI error:|r 
NextUpgrade_Equipment/Equipment.lua:10  ,12,-10);local sorted={};for _,it in ipairs(gear) do sorted[#sorted+1]=it end;table.sort(sorted,function(a,b)return(a.ilvl or 0)<(b.ilvl or 0)end);local low={};for i=1,math.min(3,#sorted) do low[#low+1]=(sorted[i].name or 
NextUpgrade_Equipment/Equipment.lua:10  ..tostring(sorted[i].ilvl or 0) end;local lw=text(over,8,self.L.GEAR_LOWEST..
NextUpgrade_Equipment/Equipment.lua:10  ,-12,-34);lw:SetWordWrap(true);if bisData then local bp=text(over,8,self.L.GEAR_BIS_PROGRESS..
NextUpgrade_Equipment/Equipment.lua:12  ,-12,y);row:SetHeight(h);backdrop(row,sel and C.panel3 or C.panel2);add(f.content,row);if it.texture then local ic=row:CreateTexture(nil,
NextUpgrade_Equipment/Equipment.lua:12  ,9,-11);ic:SetTexture(it.texture) end;local sl=text(row,8,slotLabel(it.slotKey,self.L),C.muted);sl:SetPoint(
NextUpgrade_Equipment/Equipment.lua:12  ,50,-9);sl:SetWidth(100);local nm=text(row,10,it.name or 
NextUpgrade_Equipment/Equipment.lua:12  ,-165,-9);nm:SetWordWrap(false);local status,col=gearStatus(it,self.L);local st=text(row,8,status,col);st:SetPoint(
NextUpgrade_Equipment/Equipment.lua:12  ,-12,-9);local tr=it.track and ((self.L[it.track.key] or it.track.key)..
NextUpgrade_Equipment/Equipment.lua:12  ..it.track.maxRank) or self.L.NO_TRACK;local sub=text(row,8,tr..
NextUpgrade_Equipment/Equipment.lua:12  ..tostring(it.ilvl or 0)..
NextUpgrade_Equipment/Equipment.lua:12  );if it.link and GameTooltip.SetHyperlink then pcall(GameTooltip.SetHyperlink,GameTooltip,it.link) end;GameTooltip:Show()end);row:SetScript(
NextUpgrade_Equipment/Equipment.lua:13  ,50,yy);yy=yy-23;local delta=(self.data.averageEquipped or 0)-(it.ilvl or 0);local dl=text(row,8,string.format(self.L.GEAR_DELTA,delta),C.muted);dl:SetPoint(
NextUpgrade_Equipment/Equipment.lua:13  ,50,yy);yy=yy-22;local wt;if it.isBis then wt=self.L.GEAR_BIS_DESC elseif delta>=7 then wt=self.L.GEAR_WEAK_DESC elseif bis then wt=self.L.GEAR_INTERIM_DESC else wt=self.L.GEAR_KEEP_REASON end;local wy=text(row,8,self.L.GEAR_ANALYSIS_WHY..
NextUpgrade_Equipment/Equipment.lua:13  ,-12,yy);wy:SetWordWrap(true);yy=yy-42;if bis then local bn=self:GetLocalizedItemName(bis.itemID,bis.fallback);local b1=text(row,8,self.L.BIS_TARGET..
NextUpgrade_Equipment/Equipment.lua:13  ..(bn or bis.fallback),C.green);b1:SetPoint(
NextUpgrade_Equipment/Equipment.lua:13  ,-12,yy);yy=yy-21;local b2=text(row,8,self.L.BIS_SOURCE_LABEL..
NextUpgrade_Equipment/Equipment.lua:34  ,ai,displayName or 
NextUpgrade_Equipment/Equipment.lua:35  ,altIcon and 26 or 0,0);an:SetPoint(
NextUpgrade_Equipment/Equipment.lua:70  ,12,y);add(f.content,n);setContentHeight(f,220);return end;local over=contentCard(f,y,158);local oh=text(over,11,self.L.UPGRADE_TOP5,C.gold);oh:SetPoint(
NextUpgrade_Equipment/Equipment.lua:70  ,12,-10);local yy=-34;for i,it in ipairs(list) do if i>5 then break end;local dec,col=upgradeDecision(it,self.L);local tx=text(over,9,string.format(
NextUpgrade_Equipment/Equipment.lua:70  ,i,it.name or 
NextUpgrade_Equipment/Equipment.lua:70  ,it.ilvl or 0),C.text);tx:SetPoint(
NextUpgrade_Equipment/Equipment.lua:70  ,-145,yy);local dt=text(over,8,dec,col);dt:SetPoint(
NextUpgrade_Equipment/Equipment.lua:70  ,-12,yy);yy=yy-22 end;if bisData then local p=text(over,8,self.L[bisData.upgradePriorityKey] or 
NextUpgrade_Equipment/Equipment.lua:71  ,9,-15);ic:SetTexture(it.texture) end;local nm=text(row,10,it.name or 
NextUpgrade_Equipment/Equipment.lua:71  ,-150,-9);local dec,col=upgradeDecision(it,self.L);local rr=text(row,9,dec,col);rr:SetPoint(
NextUpgrade_Equipment/Equipment.lua:71  ,-12,-9);local det=(it.track and ((self.L[it.track.key] or it.track.key)..
NextUpgrade_Equipment/Equipment.lua:71  ..(it.ilvl or 0)..
NextUpgrade_Equipment/Equipment.lua:71  ..(it.crestQty or 0))) or ((it.ilvl or 0)..
NextUpgrade_Equipment/Equipment.lua:71  ..self.L.NO_TRACK);local d=text(row,8,det,C.muted);d:SetPoint(
NextUpgrade_Equipment/Equipment.lua:72  ,-18,-60);why:SetWordWrap(true);local nxt=not it.track and self.L.UPGRADE_NO_TRACK_ACTION or ((it.crestQty or 0)>=20 and self.L.UPGRADE_HAVE_CRESTS or self.L.UPGRADE_NO_CRESTS);local nx=text(row,8,self.L.UPGRADE_NEXT_STEP..
NextUpgrade_Equipment/Equipment.lua:72  ,-18,-92);nx:SetWordWrap(true);if it.bis then local bn=self:GetLocalizedItemName(it.bis.itemID,it.bis.fallback);local bb=text(row,8,self.L.BIS_TARGET..
NextUpgrade_Equipment/Equipment.lua:72  ..(bn or 
NextUpgrade_Equipment/Equipment.lua:72  ,-18,-126);local sr=text(row,8,self.L.BIS_SOURCE_LABEL..
NextUpgrade_Equipment/Equipment.lua:72  ,-18,-148);if not it.isBis and (it.delta or 0)<5 then local inter=text(row,8,self.L.UPGRADE_BIS_ALT_TEXT,C.green);inter:SetPoint(
NextUpgrade_Equipment/Equipment.lua:72  ,-18,-169);inter:SetWordWrap(true) end end end;local ctrl=text(row,8,isOpen and self.L.HIDE or self.L.DETAILS,C.gold);ctrl:SetPoint(
NextUpgrade_Weeklies/Weeklies.lua:6  ):lower();for _,q in ipairs(self.data.weeklies or {}) do local qt=(q.title or 
NextUpgrade_Weeklies/Weeklies.lua:6  ):lower();if qt~=
NextUpgrade_Weeklies/Weeklies.lua:7  ,12,y);add(f.content,h);y=y-26;local list=self.data.weeklies or {};if #list==0 then local n=text(f.content,9,self.L.NO_WEEKLIES,C.muted);n:SetPoint(
NextUpgrade_Weeklies/Weeklies.lua:7  ,12,y);add(f.content,n);y=y-28 else for _,q in ipairs(list) do if q.title and q.title:gsub(
NextUpgrade_Weeklies/Weeklies.lua:7   then local key=
NextUpgrade_Weeklies/Weeklies.lua:7  ..tostring(q.questID);local op=expanded(key);local obj=op and questObjectives(q.questID) or {};local rh=op and math.max(92,72+#obj*17) or 50;local row=contentCard(f,y,rh);local tt=text(row,10,q.title,C.text);tt:SetPoint(
NextUpgrade_Weeklies/Weeklies.lua:7  ,-115,-13);local st=text(row,8,self.L.WEEKLY_STATUS_ACTIVE,C.green);st:SetPoint(
NextUpgrade_Weeklies/Weeklies.lua:7  ,-12,-13);if op then local yy=-42;for _,o in ipairs(obj) do local z=text(row,8,o,C.muted);z:SetPoint(
NextUpgrade_Weeklies/Weeklies.lua:7  ,-145,yy);yy=yy-17 end;if #obj==0 then local z=text(row,8,self.L.NO_OBJECTIVES,C.muted);z:SetPoint(
NextUpgrade_Weeklies/Weeklies.lua:7  ,12,yy) end;local b=button(row,self.L.OPEN_QUEST_BUTTON,120,22);b:SetPoint(
NextUpgrade_Weeklies/Weeklies.lua:7  ,function()openQuest(q)end) end;row:EnableMouse(true);row:SetScript(
NextUpgrade_Weeklies/Weeklies.lua:7  ,function()toggle(key)end);y=y-rh-6 end end end;y=y-12;local rec=text(f.content,12,self.L.WEEKLY_CORE,C.text);rec:SetPoint(
NextUpgrade_Weeklies/Weeklies.lua:7  ,12,y);add(f.content,rec);y=y-26;local note=text(f.content,8,self.L.WEEKLY_GUIDE_NOTE,C.muted);note:SetPoint(
NextUpgrade_Weeklies/Weeklies.lua:7  ,-12,y);note:SetWordWrap(true);add(f.content,note);y=y-32;for _,g in ipairs(self.GuideData.weeklyActivities or {}) do local title=g.questID and self:GetQuestEntity(g.questID,g.titleKey) or (self.L[g.titleKey] or g.titleKey);local active=match(self,title);local key=
NextUpgrade_Weeklies/Weeklies.lua:7  ..g.key;local op=expanded(key);local rh=op and 148 or 68;local row=contentCard(f,y,rh);local nm=text(row,10,title,C.gold);nm:SetPoint(
NextUpgrade_Weeklies/Weeklies.lua:7  ,-175,-10);local status=text(row,8,active and self.L.WEEKLY_ACTIVE_MATCH or self.L.WEEKLY_NOT_ACTIVE,active and C.green or C.muted);status:SetPoint(
NextUpgrade_Weeklies/Weeklies.lua:7  ,-12,-10);local zone=text(row,8,self.L[g.zoneKey] or 
NextUpgrade_Weeklies/Weeklies.lua:7  ,12,-32);local brief=text(row,8,self.L[g.detailKey] or 
NextUpgrade_Weeklies/Weeklies.lua:7  ,-12,-49);brief:SetWordWrap(true);if op then local pu=text(row,8,self.L.WEEKLY_PICKUP..
NextUpgrade_Weeklies/Weeklies.lua:7  ..(self.L[g.pickupKey] or 
NextUpgrade_Weeklies/Weeklies.lua:7  ,-12,-80);pu:SetWordWrap(true);local why=text(row,8,self.L.WEEKLY_REWARD_REASON..
NextUpgrade_Weeklies/Weeklies.lua:7  ..(self.L[g.detailKey] or 
NextUpgrade_Weeklies/Weeklies.lua:7  ,-12,-113);why:SetWordWrap(true) end;local ctrl=text(row,8,op and self.L.HIDE or self.L.DETAILS,C.gold);ctrl:SetPoint(
NextUpgrade_Professions/Professions.lua:51  ,1,true) or n:find(
NextUpgrade_Professions/Professions.lua:51  ,1,true) or n:find(
NextUpgrade_Professions/Professions.lua:167   .. b):gsub(
NextUpgrade_Professions/Professions.lua:280   .. tostring(maxRank) .. 
NextUpgrade_Professions/Professions.lua:311   or selectedKind == 
NextUpgrade_Professions/Professions.lua:353  ..tostring(tipText or 

Likely visible literals found: 101