Skip to content

Localization: wrap remaining hardcoded strings with L(); fix the rep bar tooltip on paragon/renown factions - #1209

Merged
EllesmereGaming merged 9 commits into
EllesmereGaming:mainfrom
labrie75:wrap-remaining-hardcoded-strings-with-L()
Aug 7, 2026
Merged

Localization: wrap remaining hardcoded strings with L(); fix the rep bar tooltip on paragon/renown factions#1209
EllesmereGaming merged 9 commits into
EllesmereGaming:mainfrom
labrie75:wrap-remaining-hardcoded-strings-with-L()

Conversation

@labrie75

@labrie75 labrie75 commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

A sweep for user-facing strings that bypass the locale system. Every one of them
already has translations sitting unused in the repo's locale files (deDE has
"WENIG MANA", koKR has "낮은 마나", and so on) -- the call sites just never went
through L():

string where it shows
LOW MANA the mana warning overlay (Aura Buff Reminders)
Low Durability / Low Durability (%d%%) / Low Durability (Preview) the QoL durability warning overlay and its preview
Not Bound keybind readouts in the QoL and Quest Tracker options
Weapon the consumable row of the reminders options preview (its neighbours Flask/Food/Rune/Stone are already wrapped)
Renown, Paragon, Rested, House Level %d: %d / %d the XP / reputation / house data bars
Experience, Level, XP, Remaining, Standing, Reputation, House Favor, Favor, House Level the three data bars' tooltips

One real bug rides along, found while testing the wraps: the reputation
bar's tooltip recomputes its numbers from the raw watched-faction payload,
ignoring the paragon/renown/friendship handling the bar itself does. On a
paragon faction it shows the wrong standing and a negative value:

Standing     Friendly          <- wrong
Reputation   -3,000 / 6,000 (-50.0%)   <- while the bar correctly shows 47%

The bar now stashes its resolved standing/current/maximum on its own frame and
the tooltip reuses them, falling back to the raw payload only if the bar has
not rendered yet. No Blizzard frames involved.

Apart from that, all call sites are wraps only -- SetText("LOW MANA") becomes
SetText(EllesmereUI.L("LOW MANA")), the one concatenation becomes an Lf
format ("Low Durability (" .. pct .. "%)" -> Lf("Low Durability (%d%%)", pct),
whose key the locale files already carry). No behaviour changes; on an enUS
client every string renders exactly as it does today.

Locales/_keys.txt is regenerated (+20 keys). Locales/koKR.lua gains three
lines for the format fragments that had no key yet -- every other key was already
translated -- and two existing values are corrected to Blizzard's official koKR
terms: Renown was "명성" but the koKR client labels renown "영예" (reputation
panel, renown toasts), and Paragon was "절정" but the paragon tooltip in the
reputation panel is titled "최대 영예".

How was it tested?

Tested in game on live retail with a koKR client: the low-mana overlay, the
durability warning (live and preview), the Not Bound readouts in both options
panels, the reminders options preview row, and all three data bars with their
tooltips now render in Korean. Watching a paragon faction, the bar tooltip now
matches the bar (standing and positive cycle numbers) instead of showing a
negative reputation. No load errors.

Screenshots

N/A

Checklist

  • New settings default OFF -- n/a, no setting added
  • Zero cost while disabled -- wraps only
  • Cheap while enabled -- one catalog lookup where a literal was read
  • No writes onto Blizzard-owned frames -- text on the addon's own FontStrings only
  • Tested in-game, works on live retail; no load errors

@EllesmereGaming
EllesmereGaming merged commit ab58ede into EllesmereGaming:main Aug 7, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants