mapbox / mapbox/mapbox-maps-ios
Kurdish (Sorani) text broken in SymbolLayer — ە (U+06D5) does not join with adjacent letters
Nobody has claimed this yet.
- Dominant language
- Swift
- Stars
- 601
- Forks
- 196
- PR merge metrics
- No merged PRs in 30d
Description
## Environment
- Xcode version: 26.4
- iOS version: 26.4
- Devices affected: iPhone 16, iPhone 15
- Maps SDK Version: 11.x (latest)
## Observed behavior and steps to reproduce
Kurdish (Sorani) text in SymbolLayer labels renders with broken/disconnected
letters. The character **ە** (U+06D5, Arabic Letter Ae) does not join with adjacent
letters.
This character appears in almost every Kurdish word, making place names unreadable
for 8+ million Kurdish speakers.
**Steps to reproduce:**
1. Create a SymbolLayer with `textField` containing Kurdish text, e.g. "بنکەی
پۆلیسی" (police station)
2. The ە character renders disconnected from adjacent letters
3. Words appear broken with gaps
**Screenshots attached:**
- Broken rendering on iOS SDK
- How Kurdish text should look (correct rendering)
## Expected behavior
Kurdish text should render with proper Arabic script shaping, where ە joins
correctly with adjacent letters — the same way it works on **Mapbox GL JS** using
the `mapbox-gl-rtl-text` plugin.
The web version handles Kurdish correctly. The iOS SDK does not.
## Notes / preliminary analysis
- The `mapbox-gl-rtl-text` plugin is available for GL JS but **not for iOS SDK**
- Kurdish (Sorani) uses Arabic script with additional characters (ە ۆ ێ ڕ ڵ ڤ)
- The character ە (U+06D5) is the primary issue — it has no Unicode Presentation
Forms, so the iOS SDK cannot shape it
- Arabic text (ة U+0629) renders correctly — only Kurdish ە breaks
- This affects millions of Kurdish users in Iraq, Iran, Syria, and Turkey
**Feature request:** Please add RTL text shaping support to the iOS Maps SDK,
equivalent to the web `mapbox-gl-rtl-text` plugin, with proper handling of Kurdish
characters.


Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the issue in an iOS Maps SDK SymbolLayer using a textField containing the provided Kurdish example, then compare its shaping with Mapbox GL JS and the mapbox-gl-rtl-text plugin. Done means Kurdish characters including ە join correctly in rendered labels and the behavior matches the expected Arabic-script shaping.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, swift
- Domain
- internationalization, mobile-dev
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100