如何使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