Swift:如何更改应用程序内的语言?
我正在使用Localize-Swift
库( 链接 )来本地化我的应用程序,它与.strings文件工作正常。 问题是我必须本地化到左边的语言,我必须通过Interface Builder Storyboard本地化,这样我才能使视图控制器看起来正确的RTL格式。 问题是如何将故事板实时设置为用户select的语言?
例如我有2个故事板文件:
1- … /ProjectName/Base.lproj/Main.storyboard
2- … /ProjectName/fa-IR.lproj/Main.storyboard
我如何在他们之间实时切换?
我已经知道我可以改变它在scheme和设备的语言,但我想实时做,我不想让用户重新启动他们的设备。
谢谢
find我的答案:
NSUserDefaults.standardUserDefaults().setObject(["language identifier"], forKey: "AppleLanguages") NSUserDefaults.standardUserDefaults().synchronize()
不幸的是用户必须重新启动应用 如果有人可以find一个解决scheme,不重新启动应用程序,请通知我。
您可以使用NSBundle +语言第三方类。
也许RSMultiLanguage pod对你有用吗? 我已经在我的应用程序中使用它,它提供了更改应用程序中的用户语言的可能性。 我很确定你可以根据用户的位置设置一个if循环。 这样你可能不必重新启动应用程序。
RSMultiLanguage
用法
要运行示例项目,请克隆该回购站,并首先从示例目录运行pod安装。
安装
RSMultiLanguage通过CocoaPods可用。 要安装它,只需将以下行添加到您的Podfile:
pod "RSMultiLanguage"
作者
Roy Ng,roytornado@gmail.com
执照
RSMultiLanguage根据MIT许可证提供。 查看许可证文件获取更多信息。
-
需要重新启动应用程序。 按照下面的代码行。
UserDefaults.standard.set([“language identifier”],forKey:“AppleLanguages”)UserDefaults.standard.synchronize()
-
重新启动的应用程序不需要(答案可能需要定制在提供的源代码)。 按照提供的网页链接。