大佬教程收集整理的这篇文章主要介绍了ios – 强制本地化内部框架,如UIKit,无需重启App,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前的代码是:
创建一个名为BundleExtension.swift的文件,并将以下代码添加到其中 –
var bundleKey: UInt8 = 0 class AnyLanguageBundle: Bundle { override func localizedString(forKey key: String,value: String?,table tablename: String?) -> String { guard let path = objc_getAssociatedObject(self,&bundleKey) as? String,let bundle = Bundle(path: path) else { return super.localizedString(forKey: key,value: value,table: tableName) } return bundle.localizedString(forKey: key,table: tableName) } } extension Bundle { class func setLanguage(_ language: String) { defer { object_setClass(Bundle.main,AnyLanguageBundle.self) } objc_setAssociatedObject(Bundle.main,&bundleKey,Bundle.main.path(forresource: language,ofType: "lproj"),.oBJC_ASSOCIATION_RETAIN_NONATOMIC) } }
func languageButtonAction() { // This is done so that network calls Now have the Accept-Language as "hi" (Using AlamofirE) check if you can remove these UserDefaults.standard.set(["hi"],forKey: "AppleLanguages") UserDefaults.standard.synchronize() // @R_874_9531@e the language by swaping bundle Bundle.setLanguage("hi") // Done to reintantiate the storyboards instantly let storyboard = UIStoryboard.init(name: "Main",bundle: nil) UIApplication.shared.keyWindow?.rootViewController = storyboard.instantiateInitialViewController() }
以上是大佬教程为你收集整理的ios – 强制本地化内部框架,如UIKit,无需重启App全部内容,希望文章能够帮你解决ios – 强制本地化内部框架,如UIKit,无需重启App所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。