使我的IPHONE应用程序的语言从应用程序设置更改而不更改设备的语言

时间:2010-12-30 10:58:32

标签: iphone localization application-settings

我想从应用程序设置中更改语言。为此,我创建了一个settings.bundle,并使用此代码How to force NSLocalizedString to use a specific language强制使用该语言,我还将UIApplicationExitsOnSuspend设置为YES,以便在每次进入后台时重新加载我的应用程序。 它部分适用于我,但我有两个问题: - 使用此方法不会更改启动屏幕(已本地化)。 - 我必须输入/ goBack两次以使语言更改在应用程序上生效只在OS 4及更高版本上查看。

有没有人可以解决这个问题?

3 个答案:

答案 0 :(得分:0)

您需要为此创建自己的翻译框架!对不起!

答案 1 :(得分:0)

不幸的是,没有内置方式。可能最容易的是集成GetLocalization.com之类的服务,以便您的应用程序可以通过API下载语言文件(然后很容易添加新的语言和翻译甚至应用程序已经发布)。那么你需要的只是简单的加载器,它将该语言文件加载到内存和函数,在运行时将原始字符串替换为已翻译的字符串。你可以计算原始字符串的哈希值,因此搜索它们的速度很快,对此好的算法是Peter Weinberger的hashPJW。

答案 2 :(得分:0)

通过从应用程序中选择使用特定语言的技巧是强制NSLocalizedString根据所选语言使用特定的包,

这是我为此http://learning-ios.blogspot.com/2011/04/advance-localization-in-ios-apps.html

撰写的帖子

以下是一个示例应用https://github.com/object2dot0/Advance-Localization-in-ios-apps

的代码