2011-11-24 98 views
11

我写了一个使用自定义本地化的iOS应用程序(出于各种原因)。它取消了NSLocalizedString的定义,并用一个同名的内联函数取代了从服务器上下载的NSDictionary中的值。我如何本地化UIImagePickerController

我的问题是这样的...一切工作正常,但标准的UIKit视图(即UIImagePickerController)没有被国际化,我相信这是应该在设备语言改变时自动发生的事情?

例如,我的全应用程序是显示它的日本对手,但即使在设备的语言设置为日语标准控件(的UIImagePickerController和取消搜索栏按钮不显示!)

任何帮助大加赞赏:d

编辑

我试图消除我的NSLocalizedString的重新定义,我仍然有同样的问题,因此,虽然劝我对重新定义的标准API功能是伟大的,它并没有真正的他让我遇到我遇到的问题。

+0

如果您更改系统API,您会发生什么?不要取消定义/重定义'NSLocalizedString()'。 –

+0

我试过删除#undef NSLocalizedString,它没有区别 – TappCandy

回答

32

您是否将希望支持的语言添加到应用的定义中?在XCode 4中,可以在Project Info页面找到它(见下文)。

如果设备语言不在应用程序支持的语言列表中,UIKit视图不会在设备语言中显示。这是一件好事,否则在使用标准本地化框架的应用程序中,用户可能会看到不同语言的混合(UIKit视图将以设备语言显示,而所有其他内容(在设备语言中不可用)将处于该应用的基本语言)。

Supported localization panel in XCode 4

+0

完美!以为我试过这个,但我无法正确测试!非常感谢你:) – TappCandy

+1

Xcode 7.0.1仍然是正确的答案... –