2011-07-08 64 views
11

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

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

我读了很多关于本地化的主题,我家有三本iOS书,但我仍然不知道自己做错了什么。

我忘了设置别的东西吗? 任何想法?

回答

17

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

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

+0

Got it!无论如何,正如我以前写过的,当我的应用程序在被杀死后重新运行应用程序时,即使将语言更改为德语,字符串仍然是英文的。 – strave

+0

你确定你正确地定位了所有的字符串吗? – akashivskyy

+0

正如我写的,我创建了Localized.strings,以此为方向:http://rndm-snippets.blogspot.com/2010/11/best-practice-localizationinternational.html(#1和#2),但带有xcode 4.当我在Finder中看到我的项目时,每种语言都有一个lproj文件夹。还有什么我应该考虑的? – strave