20
Internationalizing your apps Chuck Smith and Judith Meyer 360|iDev Denver Sep 27-30, 2009

Internationalizing Your Apps

Embed Size (px)

DESCRIPTION

Want more sales outside of the USA, but don't know where to start? I will show you the ins and outs of each step that must be taken and give guidelines on what you can do to be sure your apps feel local to everyone around the world, including text, images and the interface itself. You will get step by step instructions on how to internationalize any application. Also learn about the language limitations in App Stores around the world and a nice way to find the right translators for your apps.

Citation preview

Page 1: Internationalizing Your Apps

Internationalizingyour apps

Chuck Smith and Judith Meyer

360|iDev DenverSep 27-30, 2009

Page 2: Internationalizing Your Apps

2

Page 3: Internationalizing Your Apps

Why Go International? Why Translate?

• the “world economy crisis” is not as much of a crisis outside the US

• the dollar is weak; your apps are cheaper abroad

• chance to hit a nerve abroad (different tastes)

=> make a lot more money from the same programming effort

• 11 out of 12 people worldwide can’t speak English

• the rest feel more appreciated & more comfortable buying if a description is in their language

Page 4: Internationalizing Your Apps

Who should translate?

• Do not use machine translation. If you use the machine translation, you also tell you the foreign customer, they are not worth any you, your company is not also professional.

• Your college friend who studied some Spanish will still be out of his league translating something INTO Spanish. Translation agencies only let people translate into their native language.

• Not every native speaker and not even every certified translator can translate a good sales pitch for the App Store. Also, not everyone is a tech whizz.

• www.iphone-i18n.com knows good translators

Page 5: Internationalizing Your Apps

Translation Pitfalls

• Don't assume English word order. To enable translators to change the order as needed, use variables %d, %s and so on and do like this:

int levels = 99;[NSString stringWithFormat: NSLocalizedString( @"You can choose between %d exciting levels.", @"Level count" ), levels];==>• French: You can choose between %d levels exciting.• German: You can between %d exciting levels choose. • Japanese: You %d exciting levels from choose can.

Page 6: Internationalizing Your Apps

Translation Pitfalls• If you need both singular and plural form, do not

concatenate „s“ to the end of the word for the plural. • English: 1 fish – 2 fish; 1 wife – 2 wives; etc.• German: 1 Bier – 2 Biere; 1 Arbeit – 2 Arbeiten• French: 1 vin – 2 vins; 1 eau – 2 eaux• Chinese doesn't have a plural, but does have counters 1 ge ren – 2 ge ren; 1 ben shu – 2 ben shu • Swahili: 1 mtu – 2 watu; 1 jicho – 2 macho

• Ditto for verbs

• Also a complication, less likely to come up in iPhone programming: cases• Vi atakas elefanton. - You attack an elephant. Elefanto atakas vin. - An elephant attacks you.

Page 7: Internationalizing Your Apps

Localization: Know your Audience

Page 8: Internationalizing Your Apps

Localization: Respect Foreign Languages

• Traficante mineral water

• Silver Mist

• Mitsubishi Pajero

• „Bite the wax tadpole“ or „Happiness in your mouth“?

Page 9: Internationalizing Your Apps

Translation vs. Localization

• Brand / product name

• Form of address

• Measurements

• Date formats

• Pictures and icons

• Wording

Page 10: Internationalizing Your Apps

Localization: Local Asian Feel

Page 11: Internationalizing Your Apps

Implications of RTL Languages (Arabic, Hebrew)

Page 12: Internationalizing Your Apps

Retrieving the Current Locale

NSLocale *locale = [NSLocale currentLocale];

NSString *currentLocale = [locale displayNameForKey:NSLocaleIdentifier value:[locale localeIdentifier]];

NSLog( @"Complete locale: %@", currentLocale );

Page 13: Internationalizing Your Apps

App Interface

• Press ⌘I to show Info window on xib file

• General tab: Make File Localizable

• Press ⌘I again on file... Add Localization

• Add languages by 2-letter code

• Right-click xib file and now edit other langs

Page 14: Internationalizing Your Apps

Images

• See what images have text on them

• Follow same procedure as for interfaces

• Highlight file and choose Reveal in Finder

• Replace other images with localized images

Page 15: Internationalizing Your Apps

Getting strings

NSLocalizedString( @"Music", @"The menu item Music." );NSLocalizedString( @"Films", @"The button Films." );

Displaying strings in app

Displaying variables within string in appint titles = 142;[NSString stringWithFormat: NSLocalizedString( @"There are %d movie titles.", @"Movie statistics" ), titles];

Page 16: Internationalizing Your Apps

Strings file

• Autogenerate Localizable.strings file

• Go to root directory of app

• Terminal: genstrings ./Classes/*.m

• Make localizable like for interfaces

• Translate file

Page 17: Internationalizing Your Apps

Localizable.strings

Autogenerated file

/* The button Films. */"Films" = "Films";/* The menu item Music. */"Music" = "Music";

/* The button Films. */"Films" = "Filme";/* The menu item Music. */"Music" = "Musik";

Translated file

Page 18: Internationalizing Your Apps

App Store

• iTunes Connect: Manage Your Application > Edit Information > Localization

• Don’t forget planned promo text like: “SPECIAL OFFER: 50% OFF IN JULY!”

• Official languages: Dutch, English, French, German, Italian, Japanese, Spanish

• Other languages will need separate binary

Page 19: Internationalizing Your Apps

iPhone-i18n.com

• Exclusively translating iPhone apps

• We understand your linguistic and technical needs

• Translators understand technicalities and are skilled at writing promotional texts

• App with little text + App Store: only 60€ (US $85)

• Translation package (many languages) = lower price

Page 20: Internationalizing Your Apps

Thank you

Questions?

Fragen?

Demandoj?

Preguntas?

Demandes?

Pytania?

Frågor?

Вопросы?

问题? Domande?

ερωτήσεις?

Vragen? ?' ( ) * +