2012-11-30 18 views
5

我在OSX項目中爲Mac App Store添加了幾個本地化,提交了該應用程序,但只識別了英語(本地化:(「英語」),取自ITC Binary Details )。該產品在iTunes上運行,其中英語也是唯一顯示的語言。未被iTunesConnect識別的CFBundleLocalizations中的本地化(OSX)

本地化的字符串使用自定義系統處理,所以我們不需要額外的文件夾,如英語.lproj。爲了本地化應用程序,我剛纔說的所有語言標識項目的Info.plist裏面,下鍵CFBundleLocalizations,蘋果建議在https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPInternational/Articles/ChoosingLocalizations.html

應用程序可以通知其支持通過附加的本地化系統的信息屬性列表(Info.plist)文件。要指定未包含在您的包的.lproj目錄中的本地化,請將CFBundleLocalizations項添加到此文件中。爲密鑰的值是一個字符串數組,每個包含如在描述的ISO語言指示符

,指定本地化plist文件的部分是「語言和區域的指定。」:

<key>CFBundleLocalizations</key> 
<array> 
    <string>en</string> 
    <string>de</string> 
    <string>fr</string> 
    <string>it</string> 
    <string>es</string> 
    <string>pt</string> 
    <string>nl</string> 
    <string>se</string> 
</array> 

過去我在2個iOS應用上使用了完全相同的方法,並且兩者都工作正常。我不明白爲什麼這次我們得到不同的行爲。有什麼想法嗎?

謝謝。

回答

4

我終於明白了。

在我的問題,我曾指出:

本地化的字符串使用自定義系統來處理,所以我們並不需要像English.lproj額外的文件夾。

事實證明,這正是我如何解決這個問題。我去了本地化項目下的Project> Info選項卡,併爲應用程序支持的每種語言添加了一個條目。這爲每個創建了一個文件夾,例如es.lproj,fr.lproj等。我提交了應用程序並在iTunesConnect中看到本地化已被識別:

本地化版本:(「de」,「English」,「es」,「fr」它「,」nl「,」pt「,」sv「)

更新還沒有結束,但我相信它會好的。

我雙重檢查舊的iOS應用我有,其中含有3個本地化,這被正確識別。在該應用程序中,我沒有使用上述過程創建任何額外的.lproj文件夾。我所做的只是將本地化標識符包含在CFBundleLocalizations下的plist文件中。我不知道在這方面iOS和OSX應用程序之間是否有內在的不同。如果有人對此有任何評論,我會很高興知道爲什麼我在這裏所做的實際上解決了這個問題。

+0

你剛讓我成爲一個快樂的人!我有自動添加的文件,但使用JSON根據本地化設置讀取語言。他們零星地工作。將這些添加到plist使他們工作!謝謝。至於實際解決了什麼問題 - 我認爲只是讓它們在環境中可用,就是訣竅 - 與文件夾結合使用。 –

1

Happend給我太多,但因爲appirater把所有的lproj文件夾,我不明白爲什麼所有的語言不能在iTunes的描述出現。

事實證明,即使你看到你的項目導航中的所有文件夾lproj,但不包括在你的包,除非你加你在項目中實際支持的語言 - >信息。