I have developed an app in Swift 3.2 which is currently live with base language English. I have added String files for Arabic and French. But till the time everything in completed and tested by my team I want to restrict app to one language as there would be issues I need to address even for the English version and upload to App store. Deleting the sting and nib file option will not work for me.
Please let me know if there is any code that I can add to appdelegate to restrict app only for English.
Added below code to AppDelegate in didFinishLaunchingWithOptions
First line to force app left to right.
Then in Edit Scheme - Added an Argument on Launch -AppleLanguages (Base)
. Working quite well for me to force user to English.
UIView.appearance().semanticContentAttribute = .forceLeftToRight
UserDefaults.standard.set(["Base"], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
Here's a method that do what you want. I don't think there's another way to do that in the code.
// 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
}
EDIT: I found another way to do it based on this answer.
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
UserDefaults.standard.set(["Base"], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
// Rest of your init code
}
EDIT 2:
What you could do for the first launch of the app in the viewDidLoad
of your initial ViewController
:
if let languageArray = UserDefaults.standard.object(forKey: "AppleLanguages") as? [String],
languageArray.count >= 1,
languageArray[0] != "Base" && languageArray.count == 1 {
UserDefaults.standard.set(["Base"], forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With