2011-11-24 35 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仍然是正確的答案... –