react / react/react-native

Turkish Character Display Problem on Android; Letters "i" turn into "ı"

Open
#44,183 5 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Issue: Author Provided Repro Needs: Attention Needs: Version Info Platform: Android
Dominant language
C++
Stars
127k
Forks
25.3k
Avg merge
1d 23h
Merged PRs (30d)
4

Description

Description

I am developing an application with react native.
I have a language font file called Gesta. It supports the Turkish language.
I do not encounter any problems on the iOS side
On the android side
If the language of the device is English, the fonts are displayed properly.
If the language of the device is Turkish, the letters "i" turn into the letter "ı". I want to see each letter as it is, how can I correct this?

Steps to reproduce
  1. Add Gesta fonts to react-native
    download font by this link - > Gesta-Regular.ttf.zip
    to add the font to project look at this. - > https://dharasapariya.medium.com/a-guide-on-using-custom-fonts-in-react-native-android-6ef20d88c75f
  2. Open terminal and move to project root then run "npm run android" or "yarn android"
  3. If the device language is English, you will not see any mistakes in the fonts.
  4. Then go to Language Settings in Device ( Emulator or Real ), Settings -> System -> Languages
  5. Add Turkish language. And set it, ( move it up)
  6. Re run the app.
  7. You will see "i" letters turn into "ı".
React Native Version

0.73.5

Affected Platforms

Runtime - Android

Output of npx react-native info
System:
    OS: macOS 14.4.1
    CPU: (12) arm64 Apple M2 Pro
    Memory: 72.73 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 16.20.2 - /var/folders/wj/qz_yjcdx7fd99qb06y7dt_f9k6zxbt/T/yarn--1713796063065-0.18942484615667166/node
    Yarn: 1.22.21 - /var/folders/wj/qz_yjcdx7fd99qb06y7dt_f9k6zxbt/T/yarn--1713796063065-0.18942484615667166/yarn
    npm: 8.19.4 - ~/.nvm/versions/node/v16.20.2/bin/npm
    Watchman: 2024.01.22.00 - /opt/homebrew/bin/watchman
  Managers:
    CocoaPods: 1.15.2 - /usr/local/bin/pod
  SDKs:
    iOS SDK:
      Platforms: DriverKit 23.2, iOS 17.2, macOS 14.2, tvOS 17.2, visionOS 1.0, watchOS 10.2
    Android SDK: Not Found
  IDEs:
    Android Studio: 2023.1 AI-231.9392.1.2311.11330709
    Xcode: 15.2/15C500b - /usr/bin/xcodebuild
  Languages:
    Java: 17.0.10 - /usr/bin/javac
  npmPackages:
    @react-native-community/cli: Not Found
    react: 18.2.0 => 18.2.0 
    react-native: 0.73.5 => 0.73.5
    react-native-macos: Not Found
  npmGlobalPackages:
    *react-native*: Not Found
Stacktrace or Logs
no logs
Reproducer
Screenshots and Videos

Result when device language is Turkish ( WRONG )
image

Result when device language is English ( CORRECT )
image

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 running the linked semcak1/android-gestafont-issue reproducer with React Native 0.73.5 on Android, comparing English and Turkish device languages using the provided Gesta font. Investigate the Android-specific rendering path before proposing a change. Done means the letter "i" displays correctly in Turkish without regressing the English-language result.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, react-native
Domain
mobile
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.