Renderers now use LocalizationManager for all UI text: box opening,
loot reveal, feature unlock, prompts, and error messages. Added
missing localization keys to both en.json and fr.json.
Box selection and inventory now show "Boite pas ouf (x4)" instead of
listing each instance separately. Picks the first instance of the
selected type when opening.
GetItem() returns null for box definition IDs, causing [MISSING:box_*]
display. Added GetLocalizedName() helper that checks both item and box
registries before resolving the localization key.