ios - 以 RTL 语言翻转的 SwiftUI 菜单内容
问题描述
在 project.pbxproj 中,我将 developmentRegion 更改为 ar 以在整个应用程序中强制使用阿拉伯语和 RTL 布局,除此示例中的菜单视图内容外,一切看起来都不错:
import SwiftUI
struct ContentView: View {
@State private var selectedTime: Int = 0
var body: some View {
Form {
Picker("", selection: $selectedTime) {
Text("صباحاً").tag(0)
Text("مساءً").tag(1)
}
.labelsHidden()
.pickerStyle(SegmentedPickerStyle())
Menu {
Button("السبت", action: {})
Button("الأحد", action: {})
Button("الاثنين", action: {})
Button("الثلاثاء", action: {})
Button("الاربعاء", action: {})
Button("الخميس", action: {})
Button("الجمعة", action: {})
} label: {
Label("اليوم", systemImage: "calendar")
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
.preferredColorScheme(.dark)
}
}
菜单内的按钮标签被翻转
任何帮助表示赞赏,谢谢
解决方案
实现此目的的唯一方法是通过设置更改语言并重新启动应用程序。
File -> New -> File -> Settings Bundle
如果需要,删除无用的设置
重要笔记
- 直到现在我找不到任何解决方法(
18 August 2021
) - 如果愿意,您应该要求用户更改语言并为他们打开设置
- 您可以通过以下方式以编程方式更改语言:
UserDefaults.standard.set(["ar"], forKey: "AppleLanguages")
但!
- 设置必须存在
- 应用程序必须在语言更改后重新启动
exit()
如果语言不是,您可以在设置语言后强制关闭应用程序,例如使用代码ar
开发说明
模拟器不断缓存设置。因此,您可能会遇到阻止您查看当前设置的问题。尝试在测试项目中测试流程并在实际项目中实施结果。
推荐阅读
- python - 如果熊猫数据框中的条件并匹配两列并根据条件更新新列
- laravel - Laravel API 中的数据库插入
- html - Img 上的 6 个 div - Angular
- python - Python 获取文件路径
- azure - 如何通过 POSTMAN 访问 Microsoft 语言检测 API
- gradle - Debug Intellij Plugin RunIde Error:Could not get unknown property 'project' for build 'RootProjectName' of type org.gradle.invocation.DefaultGradle
- python - ffmpeg-python批量从相机中提取帧
- oauth - 我被困在我的自定义 Alexa 技能的帐户链接上
- cron - 产品目录同步不适用于 Hybris CompositeCronjob
- javascript - Vaadin-grid 使用延迟加载导出到 CSV