Feature: Language Selection
Implement language picker UI with auto-detection, manual selection, and session persistence.
Priority: High
Tags: @workflow-localization, @priority-high, @mobile
Requirements
- Add language picker component (dropdown or toggle)
- Implement device language auto-detection
- Persist language preference in browser storage
- Update all text immediately on language change
- Add to main layout/navigation
Behavior Checklist
✅ Auto-Detection from Device Settings
✅ Manual Language Selection
✅ Immediate UI Update on Language Change
✅ Language Preference Persistence
✅ Supported Languages List
✅ Integration
Technical Notes
- Use Blazor's
IStringLocalizer<T> for all text
- Store language preference in localStorage:
localStorage.setItem('preferredLanguage', 'ts-ZA')
- Detect device language:
navigator.language via JS interop
- Update culture on change:
CultureInfo.CurrentCulture and CultureInfo.CurrentUICulture
- Component re-render on culture change
- Mobile-friendly language picker (icon or dropdown in nav bar)
UI Design
Option 1: Dropdown in Navigation
- Location: Top-right of nav bar
- Icon: Globe icon or language code (e.g., "EN", "TS")
- Click to open dropdown with language options
Option 2: Toggle Switch
- Location: Top-right of nav bar
- Two-state toggle: EN ↔ TS
- Tap to switch between languages
Option 3: Settings Page
- Add "Language" setting in user preferences
- Radio buttons for language selection
- Apply button (or auto-apply)
Localization Files Required
- All existing resource files (.resx) are already created for:
- Enrollment module (BasicInfo, Criteria, Commitments, Signature)
- Need to create resource files for future modules:
- Mapping
- Assessment
- Attendance
- Reports
- PhotoRelease
- Village management
- User administration
Related Feature Files
Specs/Features/LanguageSelection.feature
Specs/Features/LocalizedForms.feature
Specs/Features/SingleLanguageDisplay.feature
Specs/Docs/10Trees_Localization.feature.md
Feature: Language Selection
Implement language picker UI with auto-detection, manual selection, and session persistence.
Priority: High
Tags:
@workflow-localization,@priority-high,@mobileRequirements
Behavior Checklist
✅ Auto-Detection from Device Settings
✅ Manual Language Selection
✅ Immediate UI Update on Language Change
✅ Language Preference Persistence
✅ Supported Languages List
✅ Integration
Technical Notes
IStringLocalizer<T>for all textlocalStorage.setItem('preferredLanguage', 'ts-ZA')navigator.languagevia JS interopCultureInfo.CurrentCultureandCultureInfo.CurrentUICultureUI Design
Option 1: Dropdown in Navigation
Option 2: Toggle Switch
Option 3: Settings Page
Localization Files Required
Related Feature Files
Specs/Features/LanguageSelection.featureSpecs/Features/LocalizedForms.featureSpecs/Features/SingleLanguageDisplay.featureSpecs/Docs/10Trees_Localization.feature.md