本地化:在模拟器中更改语言时应用程序崩溃

时间:2011-07-08 15:18:32

标签: iphone objective-c ipad localization ios-simulator

为了本地化我的应用程序,我为三种语言创建了Localizable.strings。我不需要本地化任何nib文件,因为我在我的项目中没有使用任何文件。没有图像本地化,只有字符串。在代码中,我使用NSLocalizedStrings(@“key”,@“comment”)读取字符串。 Localized.strings文件使用UTF-16格式。字符串看起来像这样:“Projects”=“Projekte”;。

当我在模拟器中运行应用程序并更改语言时,我在后面运行的应用程序崩溃(SIGKILL)。如果我重新运行该应用程序,我可以看到该语言已被更改,因为“编辑”按钮的标签是德语,但我的所有字符串仍然是英语。

我读了许多关于本地化的帖子,我家里有三本iOS书,但我仍然不知道我做错了什么。

我忘了设置别的东西吗? 有什么想法吗?

1 个答案:

答案 0 :(得分:17)

这是因为当您更改设备的语言时,SpringBoard会杀死所有应用,以便他们在下次启动时“加载”新语言。如果没有您的应用程序被杀,您将无法更改系统语言。如果您想保存新语言, 就会被杀死。

您的应用不会崩溃。它被iOS杀死了(SIGKILL)。