-
Notifications
You must be signed in to change notification settings - Fork 182
Open
Description
Story 2 — Multi-Language Translation Files
Epic: EPIC-010 — Global Internationalization & Multi-Language Support (GitHub #100)
Priority: P0
User Story
As a MagikTap user, I want all UI labels, messages, and notifications available in my language (English, Spanish, Arabic, Amharic, or Tigrigna), so I can use the platform comfortably.
Requirements
Translation File Structure
Create Language/{locale}/{group}.php files for all 5 locales:
Language/
├── en/
│ ├── common.php # Shared: buttons, labels, pagination, errors
│ ├── auth.php # Login, register, password reset
│ ├── dashboard.php # Dashboard widgets, stats, greetings
│ ├── cards.php # Card list, card details, NFC
│ ├── profile.php # Profile settings, social links, bio
│ ├── notifications.php # Notification types, actions
│ ├── leads.php # Lead management, capture forms
│ ├── tickets.php # Support tickets, statuses
│ ├── finance.php # Plans, payments, subscriptions, commissions
│ └── admin.php # Admin-specific labels, user management
├── es/ # (same structure — Spanish)
├── ar/ # (same structure — Arabic)
├── am/ # (same structure — Amharic)
└── ti/ # (same structure — Tigrigna)
Key Count Estimates
| Group | ~Keys | Description |
|---|---|---|
| common | 80+ | Buttons (Save, Cancel, Delete), pagination, table headers, form labels |
| auth | 30+ | Login form, registration, password reset, validation messages |
| dashboard | 40+ | Widget titles, stat labels, greeting templates |
| cards | 35+ | Card list columns, card actions, NFC instructions |
| profile | 45+ | Settings tabs, social link labels, bio placeholder |
| notifications | 25+ | Notification types, mark read, delete, empty state |
| leads | 30+ | Lead columns, filters, capture form fields |
| tickets | 30+ | Ticket status, priority labels, reply actions |
| finance | 50+ | Plan names, pricing, subscription status, commission labels |
| admin | 40+ | User management, reseller management, system settings |
| Total | ~405 | Per locale |
Translation Quality
- English: developer-authored (source of truth)
- Spanish: professional-grade translations
- Arabic: professional-grade translations with RTL context notes
- Amharic: native speaker translations (Ge'ez script: ግዕዝ)
- Tigrigna: native speaker translations (Ge'ez script: ግዕዝ)
Acceptance Criteria
| # | Criteria | Priority |
|---|---|---|
| 1 | All 10 translation groups created for en locale |
P0 |
| 2 | All 10 translation groups created for es, ar, am, ti |
P0 |
| 3 | Keys are consistent across all 5 locales | P0 |
| 4 | Ge'ez script characters render correctly (UTF-8) | P0 |
| 5 | Parameterized strings use {0}, {1} placeholders |
P1 |
| 6 | Pluralization rules handle locale-specific cases | P2 |
Files to Create
- 50 files:
Language/{en,es,ar,am,ti}/{common,auth,dashboard,cards,profile,notifications,leads,tickets,finance,admin}.php
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels