2

How can you make one application for multiple languages?

I've heard that Apple rejects applications that only contain different languages. So how can you change your images, text and icons for a specific country or language?

I submitted three applications to App Store. However, their differences was only within the language (or language/text within images). That's the reason why two of them got rejected. Now I'd like to make one application for all the countries/languages that I'd like to support.

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
BarryK88
  • 1,806
  • 2
  • 25
  • 41

3 Answers3

4

Localization to different languages is fully supported and plainly accepted by Apple.

Look here: Internationalization and Localization, and specifically at this sample: International Mountains.

You cannot have two apps published if their only difference is the language. This is against a provision in the App Store rules about making applications that are functionally the same.

The solution is what I pointed you to: you can easily include multiple language support in one same app binary. So, go for it...

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
sergio
  • 68,819
  • 11
  • 102
  • 123
1

Cocoa has built-in support for localisation - there's an entire section of the developer site dedicated to this very topic.

However, a good first start would be to have a read of the Internationalization Programming Topics document, as this will walk you through the process of adding additional string resources, etc. to your app.

John Parker
  • 54,048
  • 11
  • 129
  • 129
  • I found a great tutorial which explains my concerns realy well. http://adeem.me/blog/2009/05/10/tutorial-part-2-localizing-your-iphone-application/ – BarryK88 Jun 01 '11 at 09:35
0

Apple supports 33 languages. Here is the list of languages:

en, 
fr, 
it,
de,
ja,
nl,
es,
pt,
pt-PT,
da,
fi,
nb,
sv,
ko,
zh-Hans,
zh-Hant,
ru,
pl,
tr,
uk,
ar,
hr,
cs,
el,
he,
ro,
sk,
th,
id,
en-GB,
ca,
hu,
vi

You can find your local language using this code:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSArray *languages = [defaults objectForKey:@"AppleLanguages"];
NSString *currentLanguage = [languages objectAtIndex:0];

Now you can put the if condition according to your wish, like this:

if ([currentLanguage isEqualToString:@"it"])
    imgView.image = [UIImage imageNamed:@"italy.jpg"];

if ([currentLanguage isEqualToString:@"en"])
    imgView.image = [UIImage imageNamed:@"america.jpg"];

if ([currentLanguage isEqualToString:@"fr"])
    imgView.image = [UIImage imageNamed:@"france.jpg"];

//Where imgView is an UIImageView declared globaly in viewcontroller.h part.
TheTiger
  • 13,264
  • 3
  • 57
  • 82