Ios 在不重新启动应用程序的情况下,语言更改无法正常工作
Ios 在不重新启动应用程序的情况下,语言更改无法正常工作,ios,swift,xcode,localization,Ios,Swift,Xcode,Localization,更改语言后,键盘仍显示以前的语言 同样适用于相机和其他物品 这是我登录页面的代码 let actionSheetController = UIAlertController(title: "Select App Language", message: nil, preferredStyle: .actionSheet) actionSheetController.addAction(UIAlertAction(title: "Arabic"
let actionSheetController = UIAlertController(title: "Select App Language", message: nil, preferredStyle: .actionSheet)
actionSheetController.addAction(UIAlertAction(title: "Arabic", style: .default, handler: { (alert) in
if currentLanguage != "ar"
{
// DispatchQueue.main.async {
UIView.appearance().semanticContentAttribute = .forceRightToLeft
UINavigationBar.appearance().semanticContentAttribute = .forceRightToLeft
let storyboard = UIStoryboard(name: "Main", bundle: nil)
// the view controller that you want to show after changing the language
let viewController = storyboard.instantiateViewController(withIdentifier: "LoginVC") as! UINavigationController
LanguageManager.shared.setLanguage(language: .ar, rootViewController: viewController) { (view) in
self.userDefaults.set(["ar","en"], forKey: "AppleLanguages")
// self.userDefaults.setValue(["lo","en"], forKey: "AppleLanguages")
L10n.shared.language = "ar"
currentLanguage = "ar"
self.userDefaults.set(currentLanguage, forKey: "currentLanguage")
self.userDefaults.synchronize()
view.transform = CGAffineTransform(scaleX: 2, y: 2)
view.alpha = 0
}
}
// }
}))
actionSheetController.addAction(UIAlertAction(title: "English", style: .default, handler: { (alert) in
// DispatchQueue.main.async {
if currentLanguage != "en"
{
UIView.appearance().semanticContentAttribute = .forceLeftToRight
UINavigationBar.appearance().semanticContentAttribute = .forceLeftToRight
let storyboard = UIStoryboard(name: "Main", bundle: nil)
// the view controller that you want to show after changing the language
let viewController = storyboard.instantiateViewController(withIdentifier: "LoginVC") as! UINavigationController
LanguageManager.shared.setLanguage(language: .en, rootViewController: viewController) { (view) in
self.userDefaults.set(["en","ar"], forKey: "AppleLanguages")
// self.userDefaults.setValue(["en","lo"], forKey: "AppleLanguages")
L10n.shared.language = "en"
currentLanguage = "en"
Bundle.setLanguage("en")
self.userDefaults.set(currentLanguage, forKey: "currentLanguage")
self.userDefaults.synchronize()
//LanguageManager.shared.defaultLanguage = .en
view.transform = CGAffineTransform(scaleX: 2, y: 2)
view.alpha = 0
}
}
// }
}))
actionSheetController.addAction(UIAlertAction( title: "z_cancel".getLocalizedValue(), style: .cancel, handler: { (alert) in
return
}))
if UIDevice.current.userInterfaceIdiom == .pad {
let popoverController = actionSheetController.popoverPresentationController
popoverController?.sourceView = self.view
popoverController?.sourceRect = self.view.bounds
}
self.present(actionSheetController, animated: true, completion: nil)
在这里输入代码
if let currentLang = userDefaults.value(forKey: "currentLanguage") as ? String {
if currentLang == "ar" {
LanguageManager.shared.defaultLanguage = .ar
LanguageManager.shared.setLanguage(language: .ar)
}
else {
LanguageManager.shared.setLanguage(language: .en)
}
currentLanguage = currentLang
L10n.shared.language = currentLang
}