software-mansion / software-mansion/react-native-svg

Add support for Mongolian text

Open
#2,015 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Feature request
Dominant language
TypeScript
Stars
8k
Forks
1.2k
Avg merge
10d 9h
Merged PRs (30d)
2

Description

Feature Request

The Mongolian writing system is written top to bottom, then left to right. It's letters have contextual forms (initial, medial, and final) much like Arabic. It would be great if these could be rendered correctly in an SVG, but the letters do not appear correctly. To fix, this requires addressing the following two problems:

Firstly, the letters render facing the wrong way. This is easily fixable by adding rotate:90 to the props.

Secondly, the letters do not connect properly. On iOS this comes out as disconnected letters next to each other, then the rotation happens so it is not legible. On Android, this is coming out as all the letters overlapping with each other (even worse).

It seems that the zero-width joiner u+200d is not being handled properly.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Mongolian text case in SVG on both iOS and Android, focusing on the rotate:90 behavior and handling of the zero-width joiner U+200D. Trace the text-rendering path used by React Native SVG and compare contextual letter forms and joining. Done means Mongolian letters render vertically, face correctly, and connect without overlap or disconnection on both platforms.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
mobile-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.