WinterCMS research
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
---
|
||||
phase: 15-locale-detection-routing
|
||||
plan: 03
|
||||
subsystem: ui
|
||||
tags: [locale, i18n, cookies, accept-language, account-settings]
|
||||
|
||||
# Dependency graph
|
||||
requires:
|
||||
- phase: 15-01
|
||||
provides: preferred_locale field on User model, LocaleMiddleware detection
|
||||
provides:
|
||||
- Language preference section in account settings
|
||||
- LocaleSuggestionBanner component for browser language detection
|
||||
- Dismissible banner with cookie persistence
|
||||
affects: [user-experience, theme]
|
||||
|
||||
# Tech tracking
|
||||
tech-stack:
|
||||
added: []
|
||||
patterns: [browser-locale-detection, dismissal-cookie-pattern]
|
||||
|
||||
key-files:
|
||||
created:
|
||||
- plugins/golem15/translate/components/LocaleSuggestionBanner.php
|
||||
- plugins/golem15/translate/components/localesuggestionbanner/default.htm
|
||||
- themes/quotify/assets/css/components/locale-banner.css
|
||||
modified:
|
||||
- themes/quotify/partials/account/update.htm
|
||||
- themes/quotify/layouts/default.htm
|
||||
- themes/quotify/assets/css/app.css
|
||||
- plugins/golem15/translate/Plugin.php
|
||||
|
||||
key-decisions:
|
||||
- "Banner shows localized text in target language (e.g., 'Diese Seite ist auf Deutsch verfugbar')"
|
||||
- "1-week dismissal cookie (10080 minutes) prevents banner showing repeatedly"
|
||||
- "Banner respects locale_manually_set cookie from LocalePicker"
|
||||
|
||||
patterns-established:
|
||||
- "Accept-Language parsing: extract 2-char code, match against enabled locales"
|
||||
- "Dismissal pattern: session flag + persistent cookie for multi-session"
|
||||
|
||||
# Metrics
|
||||
duration: 2min
|
||||
completed: 2026-02-02
|
||||
---
|
||||
|
||||
# Phase 15 Plan 03: Language Preferences & Suggestion Banner Summary
|
||||
|
||||
**Account settings language preference dropdown and LocaleSuggestionBanner component with Accept-Language detection and dismissible UI**
|
||||
|
||||
## Performance
|
||||
|
||||
- **Duration:** 2 min
|
||||
- **Started:** 2026-02-02T01:06:50Z
|
||||
- **Completed:** 2026-02-02T01:09:02Z
|
||||
- **Tasks:** 3
|
||||
- **Files modified:** 7
|
||||
|
||||
## Accomplishments
|
||||
- Added Language Preference section to account settings with en/pl/de dropdown
|
||||
- Created LocaleSuggestionBanner component with browser language detection
|
||||
- Implemented dismissal cookie and manual selection cookie integration
|
||||
- Added responsive sticky banner CSS with gradient styling
|
||||
|
||||
## Task Commits
|
||||
|
||||
Each task was committed atomically:
|
||||
|
||||
1. **Task 1: Add language preference section to account settings** - `652b035` (feat) [theme]
|
||||
2. **Task 2: Create LocaleSuggestionBanner component** - `8f8885f` (feat) [translate plugin]
|
||||
3. **Task 3: Add banner CSS and integrate into layout** - `006987e` (feat) [theme]
|
||||
|
||||
**Submodule update:** `82796d1` (feat: submodule pointer update)
|
||||
|
||||
## Files Created/Modified
|
||||
|
||||
**Created:**
|
||||
- `plugins/golem15/translate/components/LocaleSuggestionBanner.php` - Component with browser detection
|
||||
- `plugins/golem15/translate/components/localesuggestionbanner/default.htm` - Banner partial
|
||||
- `themes/quotify/assets/css/components/locale-banner.css` - Banner styles
|
||||
|
||||
**Modified:**
|
||||
- `themes/quotify/partials/account/update.htm` - Added Language Preference section
|
||||
- `themes/quotify/layouts/default.htm` - Registered and rendered banner component
|
||||
- `themes/quotify/assets/css/app.css` - Imported locale-banner.css
|
||||
- `plugins/golem15/translate/Plugin.php` - Registered LocaleSuggestionBanner component
|
||||
|
||||
## Decisions Made
|
||||
- Banner shows localized text in the suggested language (Polish/German) rather than current page language
|
||||
- Uses 1-week dismissal cookie to prevent annoyance while still showing eventually
|
||||
- Banner appears after flash messages, before page-wrapper for maximum visibility
|
||||
|
||||
## Deviations from Plan
|
||||
|
||||
None - plan executed exactly as written.
|
||||
|
||||
## Issues Encountered
|
||||
|
||||
None.
|
||||
|
||||
## User Setup Required
|
||||
|
||||
None - no external service configuration required.
|
||||
|
||||
## Next Phase Readiness
|
||||
- Language preferences fully functional for logged-in users
|
||||
- Browser language detection and suggestion banner working
|
||||
- Ready for Phase 15-04 (Auto-redirect Strategy) if planned
|
||||
|
||||
---
|
||||
*Phase: 15-locale-detection-routing*
|
||||
*Completed: 2026-02-02*
|
||||
Reference in New Issue
Block a user