Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Localizations in CFBundleLocalizations not recognized by iTunesConnect (OSX)

I have added several localizations in an OSX project for Mac App Store, submitted the app, but only English was recognized (Localizations: ( "English" ), taken from ITC Binary Details). The product is live on iTunes, where English is the only language displayed as well.

The localized strings are handled using a custom system, so we do not need extra folders like English.lproj. In order to localize the app, I have just added all language identifiers inside the project's Info.plist, under the key CFBundleLocalizations, as Apple suggests at https://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPInternational/Articles/ChoosingLocalizations.html

An application can notify the system that it supports additional localizations through its information property list (Info.plist) file. To specify localizations not included in your bundle’s .lproj directories, add the CFBundleLocalizations key to this file. The value for the key is an array of strings, each of which contains an ISO language designator as described in “Language and Locale Designations.”

The portion of the plist file that designates localizations is:

<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>

I have used the exact same method on 2 iOS apps in the past, and both of them were working fine. I do not understand why this time we get a different behavior. Any thoughts?

Thanks.

like image 352
dimitrios Avatar asked Nov 30 '12 12:11

dimitrios


1 Answers

I finally got it.

In my question I had stated:

The localized strings are handled using a custom system, so we do not need extra folders like English.lproj.

It turns out that this is exactly how I resolved this. I went to the Project > Info tab, under Localizations and added one entry for each language the app supports. This created one folder for each, e.g. es.lproj, fr.lproj etc. I submitted the app and in iTunesConnect I saw that the localizations were recognized:

Localizations : ( "de", "English", "es", "fr", "it", "nl", "pt", "sv" )

The update is not out yet, but I believe it will be ok.

I double-checked an older iOS app I had, which contained 3 localizations, that were properly recognized. In that app I hadn't created any extra .lproj folders with the procedure stated above. All I had done was to include the localization identifiers in the plist file, under CFBundleLocalizations. I don't know if there is something inherently different between iOS and OSX apps on this regard. If anyone has any comments on this, I'd be happy to know why what I did here actually solved the issue.

like image 63
dimitrios Avatar answered Nov 15 '22 11:11

dimitrios