iPhone App Localization for Store
We've localized our app into several languages, and everything shows up properly in our Ad Hoc builds.
We built and released an App Store version that came out today, but none of our international users see the localized strings.
More info:
- In iTunes Connect, under Binary Details, the languages show as: Localizations : ( "de", "en", "ja", "pt" )
- The Settings.app strings show up as translated, but none of the strings inside the app itself show up in anything other than English
- We've tried deleting and re-downloading the app from the store on multiple phones开发者_运维百科, to no avail
- We do not have any localizations in iTunes Connect itself (in terms of descriptions, etc).
- Other apps we try are in the correct language
We're wondering if #4 is the problem—do we need to have localizations created inside iTunes Connect for our App Store app to show up as properly localized as well?
It sounds like some sort of build problem with your Distribution build. My guess is that you have a leftover Localizable.strings file in the root of your project (from pre-localization), perhaps only in your Distribution build. If you have this, NSLocalizedString will prefer it to any actually localized languages (which is sort of counterintuitive).
You can check by cracking the .app bundle you submitted and looking in that first level of the hierarchy for this file.
I've seen this before hanging around from pre-localization due to accidental non-clean builds.
As long as the iPhone itself is in the correct language (via Settings.app), the localization should be correct. iTunes Connect Binary Details are showing what languages the app supports, as per your Localization files included in the app build.
As far as Localizing in iTunes Connect, that is for the App Store, if you want to show your app in different languages (in the App Store, not the app itself).
As long as your app strings include (for example):
cell.textLabel.text = NSLocalizedString("MyProducts","A Description of My Products");
and your localization file includes:
"MyProducts" = "My Products";
And your project includes:
Localizable.strings
-en.lproj
-es.lproj
-fr.lproj
It's a mix of both answers from WrightsCS and quixoto.
Make sure each string has been prefixed with NSLocalizedString before running GENSTRINGS and producing your localizable.strings.
Once you have translated your localizable.strings, place each into a respective resources folder (en.lproj, fr.lproj, de.lproj, etc). You must also make sure that no English resources are left outside the en.lproj folder as these may take precedence at runtime.
I've got a Localization Knowledge Base running here, if anyone is interested: http://kb.applingua.com
精彩评论