当前位置: 首页 > 面试题库 >

设置“ AppleLanguages”不会更改应用语言

别俊誉
2023-03-14
问题内容

我正在尝试实现可以​​更改应用程序语言的功能。
我试图这样设置:

let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("de", forKey: "AppleLanguages")

在应用重启后,语言仍然是“系统默认值”。
现在,我通过设置来测试不同的语言Scheme > Application Language > language
但是,用户是否可以单击按钮,然后在重新启动后查看选择的语言?

另外,执行此操作以避免在重新启动时更改语言的正确方法是什么?


问题答案:

是的,您可以立即更改应用语言,例如,

var language = "de"
let path = NSBundle.mainBundle().pathForResource(language, ofType: "lproj")
let bundle = NSBundle(path: path!)
let string = bundle?.localizedStringForKey("key", value: nil, table: nil)

使用您的NSUserDefaults值来设置语言。



 类似资料:
  • 使用一种语言比另外一种语言更流利?请为您的 Creative Cloud 应用程序选择其他语言。 选择您的操作系统筛选依据:所有系统较新的系统:Mac OS 10.7、Windows 7 或更高版本较旧的系统:Mac OS 10.6、Windows Vista 或更早版本 较新的系统:Mac OS 10.7、Windows 7 或更高版本 使用 Adobe Creative Cloud 桌面应用程

  • 我正在为我的laravel应用程序提供多语言支持,所有的材料都在网上看到说,将区域设置传递到应用程序门面并调用setLocale方法翻译网站,我试过了,但没有运气。 在我的路由文件中,我有这个 HomeController@changeLocale我有... 在发送请求的视图中... 我总是收到成功的通知,但是App::getLocale()仍然是默认设置,因此网站不会被翻译。我需要帮助。

  • 在这种情况下,我更改选择元素并调用数据更新方法。该方法从状态获取值。但是当数据更新时,状态还没有改变。当您再次调用数据更新时,状态已经更新了如何正确进行更新? 反应成分

  • 我在学习教程中的动画自动布局 http://weblog.invasivecode.com/post/42362079291/auto-layout-and-core-animation-auto-layout-was 一切都很顺利。 当我尝试在我的应用程序中使用这个概念,尝试从下到上设置设置屏幕(UIView)的动画时,当设置屏幕只是一个空的UIView时,效果非常好, 但如果我将UILabel

  • 我从互联网上搜索了很多来设置凌空的请求超时。我最终得到了重试策略的解决方案,但当研究它不设置超时时,它会设置请求的重试时间,但我不想重试我的请求。我想增加凌空请求超时,以便较慢的网络可以访问数据,凌空超时设置为5秒,这意味着如果网络直到5秒才连接,它将抛出超时异常。我如何管理更改时间以从服务器获取响应。 我的代码是 我有两个问题-- (1) 它会在30秒后重试请求吗? (2)如何设置请求超时30秒

  • Mysql 8.0.25 我想使用子句为我的datetime列设置默认值 Mysql 8文档说,在