37 lines
1.5 KiB
Markdown
37 lines
1.5 KiB
Markdown
---
|
|
epic: 14
|
|
story: 14.4
|
|
title: "RTL Language Support"
|
|
status: draft
|
|
---
|
|
|
|
## Epic 14 — Accessibility & Internationalization
|
|
**Goal:** Make CalcPad usable by everyone regardless of ability, language, or locale.
|
|
|
|
### Story 14.4: RTL Language Support
|
|
|
|
As a user who writes in Arabic or Hebrew,
|
|
I want the CalcPad interface to mirror for right-to-left languages,
|
|
So that the layout feels natural and text flows in the correct direction.
|
|
|
|
**Acceptance Criteria:**
|
|
|
|
**Given** the user's system locale or CalcPad language preference is set to an RTL language (Arabic or Hebrew)
|
|
**When** the application renders
|
|
**Then** the overall layout is mirrored: sidebar appears on the right, toolbar items are right-aligned, text input is right-aligned
|
|
**And** the result column position mirrors accordingly
|
|
|
|
**Given** an RTL layout is active
|
|
**When** the user types numeric expressions (e.g., `150 * 3`)
|
|
**Then** numbers and mathematical operators remain in left-to-right order
|
|
**And** variable names containing Latin characters remain LTR within the RTL context (bidirectional text handling)
|
|
|
|
**Given** an RTL layout is active
|
|
**When** mixed content appears (Arabic label text with numeric expressions)
|
|
**Then** the Unicode Bidirectional Algorithm is applied correctly
|
|
**And** the visual order of the expression is mathematically readable
|
|
|
|
**Given** the user switches between an RTL and LTR language in settings
|
|
**When** the language change is applied
|
|
**Then** the layout mirrors or un-mirrors immediately without requiring an application restart
|