我在Swift 3.2中开发了一个应用程序,目前使用的是基础语言英语。我添加了阿拉伯语和法语的String文件。 但是直到我的团队完成和测试的所有内容我都希望将应用程序限制为一种语言,因为即使是英文版本也需要解决问题并上传到App Store。 删除sting和nib文件选项对我不起作用。
如果有任何代码我可以添加到appdelegate以限制仅适用于英语的应用,请告知我们。
答案 0 :(得分:2)
在didFinishLaunchingWithOptions
第一行中向AppDelegate添加以下代码,从左到右强制应用。
然后在编辑方案中 - 在启动时添加了一个参数-AppleLanguages (Base)
。我非常适合强迫用户使用英语。
UIView.appearance().semanticContentAttribute = .forceLeftToRight
UserDefaults.standard.set(["Base"], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
答案 1 :(得分:1)
答案 2 :(得分:0)
这是一种做你想要的方法。我不认为在代码中有另一种方法可以做到这一点。
// You can change 'Base' to 'en' if you don't have Base.lproj folder
func localizedString(_ key: String) -> String? {
if let path = Bundle.main.path(forResource: "Base", ofType: ".lproj"),
let baseBundle = Bundle(path: path) {
return baseBundle.localizedString(forKey: key, value: nil, table: nil)
}
return nil
}
编辑:我找到了另一种基于此answer的方法。
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UserDefaults.standard.set(["Base"], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
// Rest of your init code
}
编辑2:
您在初始viewDidLoad
的{{1}}首次发布应用时可以做些什么:
ViewController