在使用Swift的应用程序中使用语言选择选项

时间:2015-12-17 14:24:33

标签: ios swift localization localizable.strings

我已经谷歌搜索了几个小时,但找不到以下问题的建议(使用Swift)。

我在很多应用程序中都看到了从应用程序内部选择语言的选项:

Choose your language screen http://forum.unity3d.com/attachments/screen568x568-4-jpeg.108285/

我想实现类似的功能,但实现它时遇到了麻烦。我已经本地化了我的应用程序,并设置了我的Localizable.strings文件。我想象它与存储在NSUserDefaults中选择的语言有关,但是一旦选择了语言,我怎样才能使应用程序使用适当的Localizable.strings文件?或者这是接近它的错误方法?

其他人如何在Swift中成功实现此功能?

1 个答案:

答案 0 :(得分:1)

我已经在我的某个项目中遇到过这个问题并找到了一个解决方案:

当用户从列表中选择语言时,发布NSNotification。您的所有UIViewController子类都必须注册此通知,并根据所选的新语言更改标签值。

您可以使用本地化字符串来设置标签,但不应调用NSLocalizedString(...),因为它依赖于与应用程序语言不同的设备语言。

您可以在Github上找到我自定义本地化的实现,可在Swift和objective-C上找到。