Story 10 — User Board & Public Profile: i18n Compliance
Epic: EPIC-010 — Global Internationalization & Multi-Language Support (GitHub #100)
Priority: P2
User Story
As a MagikTap user, I want my personal dashboard, cards, profile settings, and public profile page fully translated and formatted for my locale.
Requirements
User Board Views
| View |
Key Areas |
cards/list.php |
Card list headers, NFC actions, link tracking toggle label |
profile/settings.php |
Tab labels, form labels, placeholder text, save/cancel buttons |
leads/index.php |
Lead table headers, filter labels, status badges |
notifications/index.php |
Notification types, mark read, delete, empty state message |
tickets/index.php |
Ticket table, status/priority labels, reply button |
referral/index.php |
Referral stats, referral link text, share labels |
Public Profile Pages
/@username and /p/{clientId} public profile pages
- Visitor locale detected from
Accept-Language header
- All static text translated (contact button, social labels, share text)
- Bio content remains in original language (user-generated)
- vCard download button label translated
Profile Settings Internationalization
- All form field labels translated
- Validation error messages translated
- Success/failure toast messages translated
- Social platform names remain untranslated (brand names)
- Placeholder text translated (e.g., "Enter your bio" → "أدخل السيرة الذاتية")
Cards Page
- Card list column headers translated
- "Select All" / "Deselect All" labels translated
- Link tracking toggle label translated
- Empty state message translated
- Card action buttons (Edit, Delete, Share) translated
Acceptance Criteria
| # |
Criteria |
Priority |
| 1 |
All 6 user board views use lang() for UI strings |
P0 |
| 2 |
Public profile static text detected from browser locale |
P0 |
| 3 |
Profile settings fully translated (labels, placeholders, errors) |
P1 |
| 4 |
Cards page fully translated |
P1 |
| 5 |
Notification/ticket/lead boards fully translated |
P1 |
| 6 |
vCard download button translated on public profile |
P2 |
| 7 |
Form validation messages translated |
P1 |
Files to Modify
app/app.portalv2/app/Views/cards/list.php
app/app.portalv2/app/Views/profile/settings.php
app/app.portalv2/app/Views/leads/index.php
app/app.portalv2/app/Views/notifications/index.php
app/app.portalv2/app/Views/tickets/index.php
app/app.portalv2/app/Views/referral/index.php
app/app.portalv2/app/Views/public/profile.php (or equivalent)
- Related controllers for locale-aware data passing
Story 10 — User Board & Public Profile: i18n Compliance
Epic: EPIC-010 — Global Internationalization & Multi-Language Support (GitHub #100)
Priority: P2
User Story
Requirements
User Board Views
cards/list.phpprofile/settings.phpleads/index.phpnotifications/index.phptickets/index.phpreferral/index.phpPublic Profile Pages
/@usernameand/p/{clientId}public profile pagesAccept-LanguageheaderProfile Settings Internationalization
Cards Page
Acceptance Criteria
lang()for UI stringsFiles to Modify
app/app.portalv2/app/Views/cards/list.phpapp/app.portalv2/app/Views/profile/settings.phpapp/app.portalv2/app/Views/leads/index.phpapp/app.portalv2/app/Views/notifications/index.phpapp/app.portalv2/app/Views/tickets/index.phpapp/app.portalv2/app/Views/referral/index.phpapp/app.portalv2/app/Views/public/profile.php(or equivalent)