使用 Swift 强制 NSLocalizedString 使用特定语言

2024-01-24

通过 swift,我如何强制我的应用程序从特定的 Localized.strings 读取数据。

我在实例化 ViewController 之前将其放入 didFinishLaunchingWithOptions 中,但它仍然以英语显示应用程序。

NSUserDefaults.standardUserDefaults().removeObjectForKey("AppleLanguages")
NSUserDefaults.standardUserDefaults().setObject("fr", forKey: "AppleLanguages"   
NSUserDefaults.standardUserDefaults().synchronize()

我尝试像这样为“AppleLanguages”键传递一个数组,但它仍然不起作用:

NSUserDefaults.standardUserDefaults().setObject(["fr"], forKey: "AppleLanguages"

完成此操作后,我可以在应用程序内部调用它并考虑更改而无需重新启动应用程序吗?


不可能通过更改值来立即更改应用程序的语言AppleLanguages。更改生效之前需要重新启动应用程序。

看来您的问题是访问不同语言的本地化字符串而不是更改应用程序的语言,对吧?如果您希望您的应用程序支持多种语言,您只需提供翻译并依赖settings.app 进行实际更改即可。

如果您想访问当前使用的本地化以外的本地化字符串,则需要访问正确的翻译包。然后只需查询该包的翻译即可。下面的代码应该可以解决问题。

let language = "en"
let path = Bundle.main.path(forResource: language, ofType: "lproj")
let bundle = Bundle(path: path!)
let string = bundle?.localizedStringForKey("key", value: nil, table: nil)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Swift 强制 NSLocalizedString 使用特定语言 的相关文章

随机推荐

  • 在菜单的开关盒中使用字符串?

    我目前正在为论坛制作一个应用程序 并且我正在添加一个收藏夹部分 您可以在其中添加您最喜欢的部分以便快速访问 我设置了一个菜单 其中包含不同部分的列表 因此我所做的是创建一个 switch case 来决定按下某个菜单项 在本例中为该部分 时
  • 构建 RCP 应用程序时在第谷中进行 p2.inf 过滤

    我正在使用 tycho 构建 RCP 应用程序 RCP 应用程序使用 p2 及其自更新功能在 p2 inf 文件中配置存储库 奇迹般有效 现在我想在 p2 inf 文件中引入一个占位符 updatesiteurl 并根据其构建的环境将其替换
  • Java,将Class实例转换为HashMap

    如果我有这样的课 class MyObject public int myInt public String myString 是否可以在不实现转换代码的情况下将此类的实例转换为 HashMap MyObject obj new MyObj
  • WPF:定义绑定的默认值

    在 WPF 中 我希望能够对默认情况下应用绑定的方式进行模板化 例如 我想写 Text Binding Path PedigreeName 但这就像我输入了 Text Binding Path PedigreeName Mode TwoWa
  • 你能在 javascript 或 jquery 中从一个数组中删除另一个数组吗

    我在 javascript 中有三个数组 var array1 new Array 1 2 3 4 5 var array2 new Array a b c d e var array3 new Array a c d 我基本上想要 创建一
  • gcc 的有效消毒剂抑制字符串是什么?

    当与 gcc 一起使用消毒剂时 可以提供一份异常 抑制列表来处理误报等 抑制文件格式的记录很少 每个抑制的形式为 name of check path or name 有效值是多少name of check 我求助于从源代码中获取值 这些基
  • 出现错误:CS1061

    Refer to 在 ASP net MVC 中良好且完整地实现 RSS 提要 https stackoverflow com questions 369794 good and full implementation of rss fee
  • R SSH 隧道 MySQL

    我正在寻找一种方法 允许我在 R 中使用 SSH 隧道连接到 MySQL 服务器 而不是文件 我假设它需要 RCurl 和 RODBC 的组合 但我似乎无法让它正常工作 我碰到这个帖子 https stackoverflow com que
  • 是否可以使用Javascript更新mySQL数据库中的数据?

    我开始使用 javascript 学习一些 SQL 我想将我的变量 来自 javascript 的 Val Points 放入用户 例如 Robert 的表 Usuarios 中 这是可以通过Javascript实现的还是还有其他方法 va
  • MySQL:#126 - 表的密钥文件不正确

    我从 MySQL 查询中收到以下错误 126 Incorrect key file for table 我什至还没有声明该表的键 但我确实有索引 有谁知道可能是什么问题 根据我的经验 每次发生这种情况时 磁盘都已满 EDIT 还值得注意的是
  • asp.net 中的表单身份验证 Cookie 值漏洞

    在asp net中 我可以像往常一样使用表单身份验证登录 复制我们的身份验证cookie值 注销 使用Chrome的 编辑此Cookie 插件将cookie人工添加到客户端 刷新 匿名 登陆页面嘿 很快我又登录了 这似乎是一个漏洞 有没有办
  • 计算垂直于直线的点

    我有一条由 x1 y1 x2 y2 指定的线 L 并想要计算 该点的坐标为 位于与 L 的一半长度相交的法线上 距 L 一定距离 D 例子 如果直线是 x1 a x2 a 水平 则 计算出的点将为 x2 x1 2 D 如果直线是 a y1
  • Define 是未定义的 Javascript 节点

    我正在尝试使用 Node 运行 Javascript 文件 以将博客更新发布到 Tumblr 到目前为止 在我的 main js 文件中 我有以下内容 Tumblr Information var tumblr require vendor
  • 由于图形 API 不再可用,有什么方法可以通过 API 创建 facebook 事件

    我想使用 API 创建 Facebook 事件 我了解到 Graph API 不再可用于发布事件 我还尝试了 Javascript SDK 和 PHP SDK 但收到相同的错误消息 有没有办法通过 Javascript API 创建 Fac
  • 将嵌套 XML 绑定到 CheckboxList

    我有一个嵌套的xml包含菜单和子菜单的文件 我需要在页面加载时将其绑定到 asp net CheckBox 控件 我正在尝试使用下面的 C 代码进行绑定 C DataSet ds new DataSet try Reading the da
  • 当设备方向改变时,UIWebview 中出现黑条

    我有一个 UIWebView 正在加载到另一个视图上 旋转时 纵向或横向的一切看起来都很好 但是当我处于纵向时 当我从纵向旋转到横向时 我通过捏或双击稍微放大 视图不会完全填充使用 uiwebview 右侧大约有 10 个像素变黑 如该屏幕
  • 使用 JavaScript 通过 websocket 进行视频流传输

    最快的直播方式是什么live使用 JavaScript 制作视频 TCP 上的 WebSockets 是否是足够快的协议来传输 30fps 的视频 TCP 上的 WebSockets 是否是足够快的协议来传输 30fps 的视频 是的 是的
  • TYPO3 扩展生成器多个图像上传不起作用

    我的目标是使用 TYPO3 7 6 2 版本中的扩展生成器创建扩展 我从扩展构建器文档创建了类别产品扩展 除了上传单个图像之外 它工作得很好 但我必须创建将多个图像添加到单个产品并在前端显示图像轮播的功能 但扩展生成器不适用于文件上传 我是
  • 组合连续原子变量的存储/加载

    参考 稍微过时的 paper http www open std org JTC1 SC22 WG21 docs papers 2007 n2338 html作者 Hans Boehm 在 原子操作 下 它提到内存模型 当时提出 不会阻止优
  • 使用 Swift 强制 NSLocalizedString 使用特定语言

    通过 swift 我如何强制我的应用程序从特定的 Localized strings 读取数据 我在实例化 ViewController 之前将其放入 didFinishLaunchingWithOptions 中 但它仍然以英语显示应用程