描述
我正在使用React Native开发一个应用程序。
我有一个名为Gesta的语言字体文件,它支持土耳其语。
在iOS端我没有遇到任何问题。
在Android端,如果设备的系统语言是英语,那么字体显示正常。
但是如果设备的系统语言是土耳其语,字母"i"会变成字母"ı"。我想看到每个字母都是原样,我该如何解决这个问题?
重现步骤
- 将Gesta字体添加到react-native
通过这个链接下载字体 - > Gesta-Regular.ttf.zip
要将字体添加到项目中,请查看这个链接 - > https://dharasapariya.medium.com/a-guide-on-using-custom-fonts-in-react-native-android-6ef20d88c75f - 打开终端并移动到项目根目录,然后运行 "npm run android" 或 "yarn android"
- 如果设备的语言是英语,你在字体中将看不到任何错误。
- 然后转到设备(模拟器或真实设备)的设置中的“语言”选项,点击“系统” -> “语言”
- 添加土耳其语,并将其设置为默认语言(向上移动)
- 重新运行应用程序。
- 你将看到"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
可复现性
截图和视频
当设备语言为土耳其语时(错误)的结果
当设备语言为英语时(正确)的结果
4条答案
按热度按时间nom7f22z1#
odopli942#
通过以下链接下载字体 - > 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
bzzcjhmw3#
已添加复制品。
kt06eoxx4#
在这里也是一样的🙌🏻
当"i"字母大写时,应该是"İ",但显示的是"I"。