Leavn Multi-Language UX Verification Skill
Skill Metadata
- Name: leavn-language-ux-verify
- Category: Testing, Localization, UX
- Description: Comprehensive verification of Leavn app UX across 6 supported languages (English, Spanish, German, Chinese Simplified, Arabic, Hebrew)
- Author: Claude
- Version: 1.0.0
- Last Updated: 2025-10-25
Purpose
Systematically test language switching, localization, RTL support, and content rendering across all supported languages in the Leavn iOS app. Generates a detailed report of what works vs what doesn't.
Supported Languages
- English (en) - LTR
- Spanish (es) - LTR
- German (de) - LTR
- Chinese Simplified (zh-Hans) - LTR
- Arabic (ar) - RTL
- Hebrew (he) - RTL
Instructions
Phase 1: Code Analysis
Locate Localization Infrastructure
- Find
I18n facade implementation
- Locate
.lproj directories or localization files
- Check
PreferencesStore for language preference storage
- Find Settings view for language selection UI
Identify Key Screens for Testing
- Home screen (DailyVerseCard, quick actions, etc.)
- Bible reader (BookSelectionView, verse display, search)
- Community tab (prayer requests, groups)
- Library tab (sermons, devotionals)
- Guided tab (meditation, audio experiences)
- Onboarding flow
- Settings screen
Check RTL Support Implementation
- Search for
.environment(\.layoutDirection, ...) usage
- Check for hardcoded leading/trailing vs proper semantic layout
- Verify Material Design icons flip correctly for RTL
- Check text alignment attributes
Phase 2: Test Execution Plan
Test 1: Language Switching Mechanism
What to verify:
How to verify:
- Read Settings view implementation
- Check if language change triggers app-wide update
- Look for notification center broadcasts or observable changes
- Verify persistence mechanism
Test 2: Tab Bar & Navigation
What to verify:
Key files:
ContentView.swift (tab bar)
AppCoordinator.swift (navigation)
- Feature view files
Test 3: Home Screen Content
What to verify:
Key files:
Features/Home/ directory
DailyVerseCard.swift
Test 4: Bible Reader Experience
What to verify:
Key files:
Features/Bible/ directory
BookSelectionView.swift
BibleService implementation
Test 5: Community Features
What to verify:
Key files:
Features/Community/ directory
CloudKitCommunityClient.swift
Test 6: Library Content
What to verify:
Key files:
Features/Library/ directory
- Audio playback views
Test 7: Guided Experiences
What to verify:
Key files:
Features/Guided/ directory
Test 8: Onboarding Flow
What to verify:
Key files:
- Look for
Onboarding in Features/
- Check
UserDefaults for onboarding completion flag
Test 9: RTL Layout Verification (Arabic/Hebrew)
What to verify:
How to verify:
- Check for hardcoded
.leading/.trailing that should be semantic
- Look for
.flipsForRightToLeftLayoutDirection() on images
- Verify no absolute positioning that breaks RTL
Test 10: Date/Time Formatting
What to verify:
How to verify:
- Search for
DateFormatter usage
- Check if
.locale is set properly
- Look for hardcoded date strings
Test 11: Search Functionality
What to verify:
Key files:
UnifiedSearchService.swift
- Search UI components
Test 12: AI-Generated Content
What to verify:
Key files:
UnifiedAIService.swift
- Devotional generation logic
Phase 3: Report Generation
Create a structured markdown report with this format:
# Leavn Multi-Language UX Verification Report
**Generated**: [timestamp]
**Tested By**: Claude Code
**App Version**: [from project]
## Executive Summary
- Total Tests: X
- Passed: Y
- Failed: Z
- Warnings: W
## Test Results by Language
### English (en)
#### Fully Working
- [List features that work perfectly]
#### Issues Found
- [List problems with severity: P0/P1/P2]
#### Not Tested
- [List untestable items with reason]
### Spanish (es)
[Same structure]
### German (de)
[Same structure]
### Chinese Simplified (zh-Hans)
[Same structure]
### Arabic (ar)
#### RTL-Specific Issues
- [List RTL layout problems]
[Same structure as above]
### Hebrew (he)
#### RTL-Specific Issues
- [List RTL layout problems]
[Same structure as above]
## Critical Issues (P0)
[Blockers that break UX in any language]
## High Priority Issues (P1)
[Major UX problems, workarounds exist]
## Medium Priority Issues (P2)
[Polish items, minor inconsistencies]
## Recommendations
1. [Prioritized action items]
2. [Architecture suggestions]
3. [Testing infrastructure needs]
## Coverage Analysis
- **Localization Files**: [% of strings covered]
- **RTL Support**: [% of views verified]
- **Date/Time Formatting**: [consistency score]
- **Bible Content**: [translation availability]
## Appendix: Code Locations
- Localization system: [file paths]
- Settings language picker: [file path]
- RTL configuration: [file path]
- Key issues found: [file:line references]
Phase 4: Execution Steps
Analyze Codebase
- Glob for localization files: *.lproj, *.strings, I18n*
- Read Settings views for language picker
- Read PreferencesStore for persistence
- Read key feature views
Check Localization Coverage
- Count strings in each .lproj directory
- Compare English vs other languages
- Find missing translations
Verify RTL Implementation
- Grep for hardcoded .leading/.trailing
- Check for .environment(\.layoutDirection)
- Find views that need RTL fixes
Test Date/Time Formatting
- Find all DateFormatter instances
- Verify .locale is set
- Check for hardcoded formats
Analyze Bible Service
- Read BibleService implementation
- Check translation parameter handling
- Verify API supports all languages
Generate Report
- Compile findings
- Categorize by severity
- Create actionable recommendations
Output Deliverables
- Comprehensive Markdown Report (as detailed above)
- Issue List (importable to todo list or GitHub issues)
- Code Snippets showing problematic patterns
- File Path Reference for all issues found
Success Criteria
- All 6 languages tested across 12 test categories
- RTL languages verified for layout correctness
- Critical issues clearly identified with P0/P1/P2 severity
- Actionable recommendations provided
- Code locations documented for all issues
Notes
- This skill performs static analysis of code - it doesn't run the simulator
- For runtime testing, consider creating a complementary UI test suite
- Focus on finding architectural issues, not just missing translations
- Pay special attention to RTL - it's often the most broken area
- Check for hardcoded strings that bypass localization system
Example Usage
User: "Run the language UX verification skill"
Claude: *Executes this skill, generates comprehensive report*
Maintenance
Update this skill when:
- New languages are added to Leavn
- New major features are added (new tabs, flows)
- Localization architecture changes (e.g., new I18n system)
- RTL support implementation changes
End of Skill Definition
1---2name: leavn-multi-language-ux-verification-skill3description: Systematically test language switching, localization, RTL support, and content rendering across all supported languages in the Leavn iOS app. Gener...4---5
6# Leavn Multi-Language UX Verification Skill
7
8## Skill Metadata
9- **Name**: leavn-language-ux-verify
10- **Category**: Testing, Localization, UX
11- **Description**: Comprehensive verification of Leavn app UX across 6 supported languages (English, Spanish, German, Chinese Simplified, Arabic, Hebrew)
12- **Author**: Claude
13- **Version**: 1.0.0
14- **Last Updated**: 2025-10-25
15
16## Purpose
17Systematically test language switching, localization, RTL support, and content rendering across all supported languages in the Leavn iOS app. Generates a detailed report of what works vs what doesn't.
18
19## Supported Languages
201. English (en) - LTR
212. Spanish (es) - LTR
223. German (de) - LTR
234. Chinese Simplified (zh-Hans) - LTR
245. Arabic (ar) - RTL
256. Hebrew (he) - RTL
26
27## Instructions
28
29### Phase 1: Code Analysis
30
311. **Locate Localization Infrastructure**
32 - Find `I18n` facade implementation
33 - Locate `.lproj` directories or localization files
34 - Check `PreferencesStore` for language preference storage
35 - Find Settings view for language selection UI
36
372. **Identify Key Screens for Testing**
38 - Home screen (DailyVerseCard, quick actions, etc.)
39 - Bible reader (BookSelectionView, verse display, search)
40 - Community tab (prayer requests, groups)
41 - Library tab (sermons, devotionals)
42 - Guided tab (meditation, audio experiences)
43 - Onboarding flow
44 - Settings screen
45
463. **Check RTL Support Implementation**
47 - Search for `.environment(\.layoutDirection, ...)` usage
48 - Check for hardcoded leading/trailing vs proper semantic layout
49 - Verify Material Design icons flip correctly for RTL
50 - Check text alignment attributes
51
52### Phase 2: Test Execution Plan
53
54#### Test 1: Language Switching Mechanism
55**What to verify:**
56- [ ] Settings has language picker UI
57- [ ] All 6 languages are listed
58- [ ] Selection persists in PreferencesStore
59- [ ] App reflects change immediately or requires restart
60- [ ] No crashes or console errors on switch
61
62**How to verify:**
63- Read Settings view implementation
64- Check if language change triggers app-wide update
65- Look for notification center broadcasts or observable changes
66- Verify persistence mechanism
67
68#### Test 2: Tab Bar & Navigation
69**What to verify:**
70- [ ] Tab labels translate correctly
71- [ ] Navigation titles update per language
72- [ ] Back button text localizes
73- [ ] Modal/sheet titles translate
74
75**Key files:**
76- `ContentView.swift` (tab bar)
77- `AppCoordinator.swift` (navigation)
78- Feature view files
79
80#### Test 3: Home Screen Content
81**What to verify:**
82- [ ] Daily verse card UI text
83- [ ] Greeting messages
84- [ ] Section headers
85- [ ] Quick action buttons
86- [ ] Date/time formatting matches locale
87
88**Key files:**
89- `Features/Home/` directory
90- `DailyVerseCard.swift`
91
92#### Test 4: Bible Reader Experience
93**What to verify:**
94- [ ] Book names translate (Genesis, Exodus, etc.)
95- [ ] Chapter/verse labels
96- [ ] Search placeholder text
97- [ ] Empty states
98- [ ] Bible content API returns correct translation
99- [ ] Verse numbers render properly in RTL
100
101**Key files:**
102- `Features/Bible/` directory
103- `BookSelectionView.swift`
104- `BibleService` implementation
105
106#### Test 5: Community Features
107**What to verify:**
108- [ ] Prayer request form labels
109- [ ] Group names/descriptions
110- [ ] Messaging UI
111- [ ] Timestamp formatting per locale
112- [ ] Empty states
113
114**Key files:**
115- `Features/Community/` directory
116- `CloudKitCommunityClient.swift`
117
118#### Test 6: Library Content
119**What to verify:**
120- [ ] Sermon list UI text
121- [ ] Devotional cards
122- [ ] Filter/sort options
123- [ ] Playback controls text
124
125**Key files:**
126- `Features/Library/` directory
127- Audio playback views
128
129#### Test 7: Guided Experiences
130**What to verify:**
131- [ ] Meditation instructions
132- [ ] Audio controls
133- [ ] Timer/duration displays
134
135**Key files:**
136- `Features/Guided/` directory
137
138#### Test 8: Onboarding Flow
139**What to verify:**
140- [ ] Welcome screens
141- [ ] Permission requests (notifications, audio)
142- [ ] Skip/Continue buttons
143- [ ] Feature explanation text
144
145**Key files:**
146- Look for `Onboarding` in Features/
147- Check `UserDefaults` for onboarding completion flag
148
149#### Test 9: RTL Layout Verification (Arabic/Hebrew)
150**What to verify:**
151- [ ] UI mirrors correctly (back buttons, chevrons, etc.)
152- [ ] Text alignment flips (right-aligned for RTL)
153- [ ] Icons flip appropriately (not all should flip)
154- [ ] Navigation flows right-to-left
155- [ ] Tab bar icons stay in correct order
156- [ ] Verse references format correctly (Arabic numerals vs Eastern Arabic)
157
158**How to verify:**
159- Check for hardcoded `.leading`/`.trailing` that should be semantic
160- Look for `.flipsForRightToLeftLayoutDirection()` on images
161- Verify no absolute positioning that breaks RTL
162
163#### Test 10: Date/Time Formatting
164**What to verify:**
165- [ ] Date formats match locale (MM/DD vs DD/MM vs YYYY-MM-DD)
166- [ ] Time formats (12h vs 24h)
167- [ ] Relative time ("2 hours ago" translates)
168- [ ] Calendar system (Gregorian vs others)
169
170**How to verify:**
171- Search for `DateFormatter` usage
172- Check if `.locale` is set properly
173- Look for hardcoded date strings
174
175#### Test 11: Search Functionality
176**What to verify:**
177- [ ] Search placeholder translates
178- [ ] Search results render correctly in all languages
179- [ ] Bible search works with translated book names
180- [ ] Search suggestions localize
181
182**Key files:**
183- `UnifiedSearchService.swift`
184- Search UI components
185
186#### Test 12: AI-Generated Content
187**What to verify:**
188- [ ] Devotionals generate in selected language
189- [ ] AI prompts include language context
190- [ ] Generated content displays properly in RTL
191
192**Key files:**
193- `UnifiedAIService.swift`
194- Devotional generation logic
195
196### Phase 3: Report Generation
197
198Create a structured markdown report with this format:
199
200```markdown
201# Leavn Multi-Language UX Verification Report
202**Generated**: [timestamp]
203**Tested By**: Claude Code
204**App Version**: [from project]
205
206## Executive Summary
207- Total Tests: X
208- Passed: Y
209- Failed: Z
210- Warnings: W
211
212## Test Results by Language
213
214### English (en)
215#### Fully Working
216- [List features that work perfectly]
217
218#### Issues Found
219- [List problems with severity: P0/P1/P2]
220
221#### Not Tested
222- [List untestable items with reason]
223
224### Spanish (es)
225[Same structure]
226
227### German (de)
228[Same structure]
229
230### Chinese Simplified (zh-Hans)
231[Same structure]
232
233### Arabic (ar)
234#### RTL-Specific Issues
235- [List RTL layout problems]
236
237[Same structure as above]
238
239### Hebrew (he)
240#### RTL-Specific Issues
241- [List RTL layout problems]
242
243[Same structure as above]
244
245## Critical Issues (P0)
246[Blockers that break UX in any language]
247
248## High Priority Issues (P1)
249[Major UX problems, workarounds exist]
250
251## Medium Priority Issues (P2)
252[Polish items, minor inconsistencies]
253
254## Recommendations
2551. [Prioritized action items]
2562. [Architecture suggestions]
2573. [Testing infrastructure needs]
258
259## Coverage Analysis
260- **Localization Files**: [% of strings covered]
261- **RTL Support**: [% of views verified]
262- **Date/Time Formatting**: [consistency score]
263- **Bible Content**: [translation availability]
264
265## Appendix: Code Locations
266- Localization system: [file paths]
267- Settings language picker: [file path]
268- RTL configuration: [file path]
269- Key issues found: [file:line references]
270```
271
272### Phase 4: Execution Steps
273
2741. **Analyze Codebase**
275 ```
276 - Glob for localization files: *.lproj, *.strings, I18n*
277 - Read Settings views for language picker
278 - Read PreferencesStore for persistence
279 - Read key feature views
280 ```
281
2822. **Check Localization Coverage**
283 ```
284 - Count strings in each .lproj directory
285 - Compare English vs other languages
286 - Find missing translations
287 ```
288
2893. **Verify RTL Implementation**
290 ```
291 - Grep for hardcoded .leading/.trailing
292 - Check for .environment(\.layoutDirection)
293 - Find views that need RTL fixes
294 ```
295
2964. **Test Date/Time Formatting**
297 ```
298 - Find all DateFormatter instances
299 - Verify .locale is set
300 - Check for hardcoded formats
301 ```
302
3035. **Analyze Bible Service**
304 ```
305 - Read BibleService implementation
306 - Check translation parameter handling
307 - Verify API supports all languages
308 ```
309
3106. **Generate Report**
311 ```
312 - Compile findings
313 - Categorize by severity
314 - Create actionable recommendations
315 ```
316
317## Output Deliverables
318
3191. **Comprehensive Markdown Report** (as detailed above)
3202. **Issue List** (importable to todo list or GitHub issues)
3213. **Code Snippets** showing problematic patterns
3224. **File Path Reference** for all issues found
323
324## Success Criteria
325
326- All 6 languages tested across 12 test categories
327- RTL languages verified for layout correctness
328- Critical issues clearly identified with P0/P1/P2 severity
329- Actionable recommendations provided
330- Code locations documented for all issues
331
332## Notes
333
334- This skill performs **static analysis** of code - it doesn't run the simulator
335- For runtime testing, consider creating a complementary UI test suite
336- Focus on finding architectural issues, not just missing translations
337- Pay special attention to RTL - it's often the most broken area
338- Check for hardcoded strings that bypass localization system
339
340## Example Usage
341
342```
343User: "Run the language UX verification skill"
344Claude: *Executes this skill, generates comprehensive report*
345```
346
347## Maintenance
348
349Update this skill when:
350- New languages are added to Leavn
351- New major features are added (new tabs, flows)
352- Localization architecture changes (e.g., new I18n system)
353- RTL support implementation changes
354
355---
356
357**End of Skill Definition**