如何在设置包中手动加载语言 - ios

时间:2014-03-13 05:13:12

标签: ios objective-c localization settings.bundle

在我的应用程序中,我在设置页面中实现了一些功能。有没有办法通过从数据库中获取本地化的标题来更改设置页面的标题字符串(NOT THE KEY)。如果不可能,是否有任何方法可以根据用户偏好加载本地化字符串文件(.lproj),而不管设备语言如何。

我的情景:

案例1:

实现:

用户打开应用程序 - >从服务器获取基于设备语言的本地化字符串 - >更新应用程序字符串

实施:

设置屏幕 - >应该使用从服务器获取的本地化字符串(设备区域设置)进行更新。

案例2:

实现:

用户登录应用程序 - >根据用户首选项从服务器获取本地化字符串 - >更新应用程序字符串

实施:

设置屏幕 - >应使用本地化字符串更新(根据用户首选语言)

其他情景: 如果超过两个案例"实施"不可能。我需要手动加载设置包中的字符串(.lproj)。例如。如果用户登录并且他/她的语言是法语,我需要手动加载设置包中的fr.strings文件。在这种情况下,当设备语言发生变化时,设置包将加载相应的语言。但在我的场景中,我需要在登录用户的设置包中加载语言,而不管设备语言如何。

在上面的场景中,我需要实现" To Implement"部分。有没有办法实现这一目标。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

如果这是一个设置包,不,您在Xcode中构建应用程序后无法修改它。设置包是经过代码签名的,因此无法更改,也无法加载新的字符串。因此,您无法复制已从服务器下载的新字符串。

必须在您控制源代码的应用程序中移动设置,并且您可以交换字符串,就像您在应用程序的其余部分听起来一样。