You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This PR introduces multilingual support to the application using i18n (internationalization) and a language switcher, enabling users to interact with the platform in multiple languages.
This improves:
Accessibility for non-English users
User experience for a global audience
Scalability for adding new languages in the future
Separation of UI text from business logic for better maintainability
✨ Description of Changes
🌍 i18n Integration
Integrated i18n setup into the project
Added translation configuration and initialization layer
Structured translation files for scalable language support
📁 Translation System
Created language resource files (e.g., en.json, hi.json, etc.)
Moved all static UI text into translation keys
Replaced hardcoded strings with translation function (t())
🔄 Language Switcher
Added a language selector component in the UI
Supports switching languages dynamically without page reload
Stores selected language in localStorage (persistent preference)
🧠 State & Context Updates
Added i18n provider wrapper at app level
Ensured global access to language state across components
🖥️ UI Improvements
Updated navigation and key pages to support translations
Ensured consistent layout across different language lengths
🧪 Testing Instructions
Run the project locally:
npm install
npm run dev
Then:
Open the application
Locate the language switcher (header/settings/menu)
Switch between available languages
Verify:
UI text updates instantly
No page refresh is required
Selected language persists after reload
No missing translation keys appear in console/UI
🧪 Edge Case Testing
Switch language multiple times rapidly
Refresh page after changing language
Check fallback behavior for missing translation keys
Verify UI consistency for long translated strings
👀 Impact Assessment
User-facing changes
UI is now multilingual
New language switcher added
Improved accessibility and usability
Backend/API
No backend changes
Performance
Minimal impact (lightweight i18n runtime usage)
Security
No impact
Cross-browser/device
Language switcher added and UI dynamically updates based on selected language.
⚡ Checklist
i18n configured properly
Translation files added and structured
Language switcher working correctly
All UI strings replaced with translation keys
Language persistence tested
No hardcoded strings left
Tested across multiple languages
No console errors introduced
🔖 Reviewer Notes
Please check:
Proper usage of t() translation function across components
Language switcher state persistence
Fallback behavior for missing keys
UI consistency across different language lengths ⚠️ Breaking Changes
UI text structure changed due to i18n migration (no functional breaking change)
🏆 Future Enhancements
Add more languages (Spanish, French, etc.)
Auto-detect browser language
Backend-driven translations for dynamic content
Improve translation caching strategy
🎯 Priority / Impact Level
High (User Experience Improvement / Accessibility Upgrade)
This PR introduces multilingual support to the application using i18n (internationalization) and a language switcher, enabling users to interact with the platform in multiple languages.
This improves:
Accessibility for non-English users User experience for a global audience Scalability for adding new languages in the future Separation of UI text from business logic for better maintainability ✨ Description of Changes
🌍 i18n Integration
Integrated i18n setup into the project Added translation configuration and initialization layer Structured translation files for scalable language support
📁 Translation System
Created language resource files (e.g., en.json, hi.json, etc.) Moved all static UI text into translation keys Replaced hardcoded strings with translation function (t())
🔄 Language Switcher
Added a language selector component in the UI Supports switching languages dynamically without page reload Stores selected language in localStorage (persistent preference)
🧠 State & Context Updates
Added i18n provider wrapper at app level Ensured global access to language state across components
🖥️ UI Improvements
Updated navigation and key pages to support translations Ensured consistent layout across different language lengths 🧪 Testing Instructions
Run the project locally:
npm install npm run dev
Then:
Open the application Locate the language switcher (header/settings/menu) Switch between available languages Verify: UI text updates instantly No page refresh is required Selected language persists after reload No missing translation keys appear in console/UI 🧪 Edge Case Testing Switch language multiple times rapidly Refresh page after changing language Check fallback behavior for missing translation keys Verify UI consistency for long translated strings 👀 Impact Assessment
User-facing changes
UI is now multilingual New language switcher added Improved accessibility and usability
Backend/API
No backend changes
Performance
Minimal impact (lightweight i18n runtime usage)
Security
No impact
Cross-browser/device
Language switcher added and UI dynamically updates based on selected language.
⚡ Checklist i18n configured properly Translation files added and structured Language switcher working correctly All UI strings replaced with translation keys Language persistence tested No hardcoded strings left Tested across multiple languages No console errors introduced 🔖 Reviewer Notes
Please check:
Proper usage of t() translation function across components Language switcher state persistence Fallback behavior for missing keys UI consistency across different language lengths ⚠️ Breaking Changes UI text structure changed due to i18n migration (no functional breaking change) 🏆 Future Enhancements Add more languages (Spanish, French, etc.) Auto-detect browser language Backend-driven translations for dynamic content Improve translation caching strategy 🎯 Priority / Impact Level
High (User Experience Improvement / Accessibility Upgrade)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
gssoc'26Contribution for Girlscript Summer of Code'26
2 participants
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🛠️ Pull Request
🏷️ PR Type
Select the type of PR (check one):
✨ Feature
🛠️ Improvement / Refactor
🔗 Related Issue
Closes #124
📝 Rationale / Motivation
This PR introduces multilingual support to the application using i18n (internationalization) and a language switcher, enabling users to interact with the platform in multiple languages.
This improves:
Accessibility for non-English users
User experience for a global audience
Scalability for adding new languages in the future
Separation of UI text from business logic for better maintainability
✨ Description of Changes
🌍 i18n Integration
Integrated i18n setup into the project
Added translation configuration and initialization layer
Structured translation files for scalable language support
📁 Translation System
Created language resource files (e.g., en.json, hi.json, etc.)
Moved all static UI text into translation keys
Replaced hardcoded strings with translation function (t())
🔄 Language Switcher
Added a language selector component in the UI
Supports switching languages dynamically without page reload
Stores selected language in localStorage (persistent preference)
🧠 State & Context Updates
Added i18n provider wrapper at app level
Ensured global access to language state across components
🖥️ UI Improvements
Updated navigation and key pages to support translations
Ensured consistent layout across different language lengths
🧪 Testing Instructions
Run the project locally:
npm install
npm run dev
Then:
Open the application
Locate the language switcher (header/settings/menu)
Switch between available languages
Verify:
UI text updates instantly
No page refresh is required
Selected language persists after reload
No missing translation keys appear in console/UI
🧪 Edge Case Testing
Switch language multiple times rapidly
Refresh page after changing language
Check fallback behavior for missing translation keys
Verify UI consistency for long translated strings
👀 Impact Assessment
User-facing changes
UI is now multilingual
New language switcher added
Improved accessibility and usability
Backend/API
No backend changes
Performance
Minimal impact (lightweight i18n runtime usage)
Security
No impact
Cross-browser/device
Language switcher added and UI dynamically updates based on selected language.
⚡ Checklist
i18n configured properly
Translation files added and structured
Language switcher working correctly
All UI strings replaced with translation keys
Language persistence tested
No hardcoded strings left
Tested across multiple languages
No console errors introduced
🔖 Reviewer Notes
Please check:
Proper usage of t() translation function across components
⚠️ Breaking Changes
Language switcher state persistence
Fallback behavior for missing keys
UI consistency across different language lengths
UI text structure changed due to i18n migration (no functional breaking change)
🏆 Future Enhancements
Add more languages (Spanish, French, etc.)
Auto-detect browser language
Backend-driven translations for dynamic content
Improve translation caching strategy
🎯 Priority / Impact Level
High (User Experience Improvement / Accessibility Upgrade)