3

It seams base localization does not work on iOS7?

I have an app (its available on the app store) that has localisations for Dutch, Chinese and a base localization = English. This looks like this in xcode 6:

enter image description here

The plist file contains the "Localization native development region" key:

enter image description here

Problem:

  1. When the app runs on on iPhone iOS7 configured for English, it uses the Dutch localization ?! I would expect that iOS uses the base localization since its configured as English?
  2. I do not have a "development language" entry in the Localizations section of Xcode, I have seen this in some posts, what is the meaning of this "development language"? And could this be a possible cause or something?
  3. I can solve the problem by adding an localization language "English" (which then seams to become the development language, I have tested this) but this would simply be a duplicate of my "base" language. Surely this is not the way to go?

I know there are many topics on localizations already but I have read them all (I believe) and cannot find a clear answer.

HixField
  • 3,538
  • 1
  • 28
  • 54

1 Answers1

3

1.Localization native development language states the preferred language to be use if the iOS language and your app languages doesn't match, so I'm thinking about a storyboard that has been localized in english and a strings file in english, to make your app use english language.

2.Development language is not the same of the first point, is the base language, by default is set to english and it doesn't seems to exist a clear way to change that (I've filed a radar to Apple about it asking for xcode to show a menu at the beginning of each project). To change it you need to do it manually, but appstore will always show english as language

3.This is the solution, when iOS doesn't find a suitable localization it iterates through an array of laguages until it finds an existing one, if you add an english localization you could solve the problem.

Appstore reads directories in your app bundle

Community
  • 1
  • 1
Andrea
  • 26,120
  • 10
  • 85
  • 131
  • I have been experimenting. By default the app bundle did not have an en.lproj folder (root level). I believe this caused IOS7 to decide that English is not supported (it does not read/use the"Localization native development region"?). And it took the first .lproj it encountered being nl.lproj (dutch). What I have done now, is added English as a localization (it was then assigned as "development language" automatically) and to keep this I had to assign at least one file to be localized in english (otherwise xcode does not take the new loc language). – HixField Mar 12 '15 at 13:28
  • This now creates an en.lproj folder (root level) and then iOS 7 seams to decide that English translation is supported. Its a bit of a workaround because I now have one resource file being in base.lproj and en.lproj that is exactly the same. – HixField Mar 12 '15 at 13:29
  • By the way, I found something else out. I work with a lot of data.bundles that contain json file and stuff. In here I had to create an (empty then) en.lproj manually otherwise it would take the nl.lproj data files out of the bundle (and not the base.lproj=english) ones too! I am using the standard functions to access localized resources by the way – HixField Mar 12 '15 at 13:30
  • I see, localization is a big topic and even if apple provides a lot of documentations about it I've never seen an easy way to start a project from a different language instead of english, and when you try to change something in a "not documented" way, your projects can be screwed. – Andrea Mar 12 '15 at 13:38