- Initialize useState with getInitialLocale() instead of hardcoded 'en',
so the correct locale is used from the very first render
- Default to 'pt-BR' instead of 'en' for SSR and fallback
- Add fallback chain in t(): tries current locale -> pt-BR -> en
- Extract resolveKey() helper for cleaner key resolution
- Cast dictionaries as Record<string, unknown> to avoid type issues
- Wrap localStorage access in try-catch for blocked storage scenarios
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>