相关疑难解决方法(0)

在运行iOS时,以编程方式动态更改语言

我已经堆叠和谷歌搜索了几个小时.我现在有点绝望了.我想在应用程序中更改应用程序的语言,而不仅仅是使用默认语言.

从我的尝试开始,我就像所有人一样重新启动.意思是,苹果强制您手动重启应用程序.这意味着您必须退出应用程序然后再次启动它.

好吧,谷歌搜索后,我试图设置一个警报,然后强迫应用程序退出

exit(0);
Run Code Online (Sandbox Code Playgroud)

我的坏,苹果似乎不喜欢这样,并阻止开发者使用它...我想我没有指向正确的方向.

最后,尽管存在所有问题,我还是可以见面,我想讨论一下.

任何提示?


编辑,APPLE的相关信息

通常,您不应在应用程序中更改iOS系统语言(通过使用AppleLanguages pref键).这违反了在Settings应用程序中切换语言的基本iOS用户模型,并且还使用了未记录的首选项键,这意味着在将来的某个时候,键名可能会更改,这会破坏您的应用程序.

如果要在应用程序中切换语言,可以通过手动加载捆绑包中的资源文件来实现.您可以使用NSBundle:pathForResource:ofType:inDirectory:forLocalization:为此目的,但请记住,您的应用程序将负责所有本地化数据的加载.

关于退出(0)问题,Apple DTS无法评论应用程序批准过程.您应该联系appreview@apple.com以获得此问题的答案.

好吧,到目前为止我必须选择.

iphone localization runtime ios

32
推荐指数
3
解决办法
4万
查看次数

如何获得操作系统语言和语言环境?

我的应用程序在运行时更改语言,并建议用户重新启动应用程序.我是这样做的:

    typealias LanguageLocaleType = (language: String?, locale: String?, title: String)

    let elements: [LanguageLocaleType] = [
        (nil, nil, "System Default"),
        ("en", "en_US", "English"),
        ("ar", "ar_SA", "Arabic"),
    ]

    //...func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)...

    let element = elements[indexPath.row]

    guard let language = element.language else {
        // How to really reset app back to OS language/locale???
        UserDefaults.standard.removeObject(forKey: "AppleLanguages")
        UserDefaults.standard.removeObject(forKey: "AppleLocale")
        return
    }

    UserDefaults.standard.set([language], forKey: "AppleLanguages")

    if let locale = element.locale, !locale.isEmpty,
        Locale.current.identifier != locale,
        !Locale.current.identifier.hasPrefix("\(language)_") {
            UserDefaults.standard.set(locale, forKey: "AppleLocale")
    }
Run Code Online (Sandbox Code Playgroud)

我想提供在列表中设置语言并选择正确的语言,其中一个语言被提供给语言设置System …

localization ios nslocale swift

6
推荐指数
1
解决办法
1625
查看次数

如何在不重新启动应用程序swift4的情况下更改本地化语言?

你好我试图在不重新启动应用程序的情况下更改本地化字符串文件,更改语言后,我需要重新启动应用程序以查看新语言,这就是我正在更改应用程序语言的方式,但是我需要重新启动应用程序才能使用此库查看更改 https ://github.com/marmelroy/Localize-Swift我需要以编程方式设置所有标签值,这令人头疼,我不想这样

var selectedLanguage:Languages
let preferredLanguage : String = Bundle.main.preferredLocalizations.first!
print("app langugage \(preferredLanguage)")
if(preferredLanguage == "en") {
    // Localize.setCurrentLanguage("de")
    selectedLanguage = .de
    LanguageManger.shared.setLanguage(language: selectedLanguage)
}
else {
    // Localize.setCurrentLanguage("en")
    selectedLanguage = .en
    LanguageManger.shared.setLanguage(language: selectedLanguage)

}

LanguageManger.shared.setLanguage(language: selectedLanguage)

// return to root view contoller and reload it

let transition: UIViewAnimationOptions = .transitionFlipFromLeft
let rootviewcontroller: UIWindow = ((UIApplication.shared.delegate?.window)!)!
        rootviewcontroller.rootViewController = self.storyboard?.instantiateViewController(withIdentifier: "rootnav")
        let mainwindow = (UIApplication.shared.delegate?.window!)!
        mainwindow.backgroundColor = UIColor(hue: 0.6477, saturation: 0.6314, brightness: 0.6077, alpha: 0.8)
        UIView.transition(with: mainwindow, duration: 0.55001, …
Run Code Online (Sandbox Code Playgroud)

multilingual localization ios swift

6
推荐指数
1
解决办法
2314
查看次数

标签 统计

ios ×3

localization ×3

swift ×2

iphone ×1

multilingual ×1

nslocale ×1

runtime ×1