如何使cocoa懂得我的iPhone应用程序不是英文的?

我在一个纯粹的瑞典语的iPhone应用程序工作,它永远不会被本地化到任何其他语言。 应用程序中的所有string都是瑞典语,所以我们甚至没有Localizable.strings

问题是Cocoa生成的string(如Done和Edit)是英文的。 我已经尝试将Info.plist中的Localization native development region设置为Swedish ,但是这没有改变。 不应该比告诉Cocoa我的应用程序使用瑞典语更难,但显然是这样。

我也尝试了一堆其他的东西没有任何运气。 那么我需要做些什么来使cocoa本地化其string瑞典?

Cocoa生成的string(例如Done和Edit)是英文的,因为您的iPhone语言设置被设置为英语(在设置 – >常规 – >国际 – >语言中)。 如果将语言设置设置为瑞典语,则应该使用瑞典语查看文本。

这是默认情况下,iPhone的工作原理,如果你想改变一些button的文本强制他们瑞典语,你将不得不build立他们的出口,手动改变文本。 例如像这样的UIBarButtonItem(默认文本完成(英文)):

 UIBarButtonItem *doneButton = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneContact)] autorelease]; doneButton.title =@"Whatever"; self.navigationItem.rightBarButtonItem = doneButton; 

我希望这可以帮助你…

从CFBundle文档:

kCFBundleDevelopmentRegionKey包的开发语言的名称。 当CFBundle查找资源时,回退是查看Info.plist文件中由kCFBundleDevelopmentRegionKey给出名称的lproj。 因此,您必须确保包中包含一个包含每个本地化资源副本的确切名称的lproj,否则CFBundle无法保证后备机制的正常工作。 在iOS 2.0及更高版本中可用。 在CFBundle.h中声明。

我会说:你应该启用本地化,准备swedish.lproj并删除英文?

顺便说一句,完成和编辑应自动调整为当前活动的语言。 不是吗?

你可能不得不从XIB中提取所有string,并将其翻译(至less是一次性的过程),然后重新更新XIB。 下面的命令行可以帮助你做到这一点。

 ibtool --generate-strings-file out.strings yourWindow.xib // Update the out.strings with your language translation ibtool --strings-file out.strings yourWindow.xib --write yourWindow.xib