react-native 在Android上显示土耳其字符的问题;字母"i"变成"ı"

mrphzbgm  于 4个月前  发布在  React
关注(0)|答案(4)|浏览(117)

描述

我正在使用React Native开发一个应用程序。
我有一个名为Gesta的语言字体文件,它支持土耳其语。
在iOS端我没有遇到任何问题。
在Android端,如果设备的系统语言是英语,那么字体显示正常。
但是如果设备的系统语言是土耳其语,字母"i"会变成字母"ı"。我想看到每个字母都是原样,我该如何解决这个问题?

重现步骤

  1. 将Gesta字体添加到react-native
    通过这个链接下载字体 - > Gesta-Regular.ttf.zip
    要将字体添加到项目中,请查看这个链接 - > https://dharasapariya.medium.com/a-guide-on-using-custom-fonts-in-react-native-android-6ef20d88c75f
  2. 打开终端并移动到项目根目录,然后运行 "npm run android" 或 "yarn android"
  3. 如果设备的语言是英语,你在字体中将看不到任何错误。
  4. 然后转到设备(模拟器或真实设备)的设置中的“语言”选项,点击“系统” -> “语言”
  5. 添加土耳其语,并将其设置为默认语言(向上移动)
  6. 重新运行应用程序。
  7. 你将看到"i"字母变成了"ı"。

React Native版本

0.73.5

受影响的平台

运行时 - Android

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

堆栈跟踪或日志

no logs

可复现性

截图和视频

当设备语言为土耳其语时(错误)的结果

当设备语言为英语时(正确)的结果

nom7f22z

nom7f22z1#

⚠️添加或重新格式化版本信息
i️我们无法在您的问题报告中找到或解析React Native的版本号。请使用此模板,并报告您的版本,包括主要、次要和补丁编号 - 例如:0.70.2
odopli94

odopli942#

  1. 将Gesta字体添加到react-native
    通过以下链接下载字体 - > Gesta-Regular.ttf.zip
    要将字体添加到项目中,请查看此内容。 - > dharasapariya.medium.com/a-guide-on-using-custom-fonts-in-react-native-android-6ef20d88c75f
    请使用此模板创建一个包含该字体的复现器:
    https://github.com/new?template_name=reproducer-react-native&template_owner=react-native-community
bzzcjhmw

bzzcjhmw3#

已添加复制品。

kt06eoxx

kt06eoxx4#

在这里也是一样的🙌🏻
当"i"字母大写时,应该是"İ",但显示的是"I"。

相关问题