Internationalizing Your Apps


Published on

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.

Published in: Technology, Business
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Internationalizing Your Apps

  1. 1. Internationalizing your apps Chuck Smith and Judith Meyer 360|iDev Denver Sep 27-30, 2009
  2. 2. 2
  3. 3. 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
  4. 4. 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. • knows good translators
  5. 5. 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.
  6. 6. 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.
  7. 7. Localization: Know your Audience
  8. 8. Localization: Respect Foreign Languages • Traficante mineral water • Silver Mist • Mitsubishi Pajero • „Bite the wax tadpole“ or „Happiness in your mouth“?
  9. 9. Translation vs. Localization • Brand / product name • Form of address • Measurements • Date formats • Pictures and icons • Wording
  10. 10. Localization: Local Asian Feel
  11. 11. Implications of RTL Languages (Arabic, Hebrew)
  12. 12. Retrieving the Current Locale NSLocale *locale = [NSLocale currentLocale]; NSString *currentLocale = [locale displayNameForKey:NSLocaleIdentifier value:[locale localeIdentifier]]; NSLog( @"Complete locale: %@", currentLocale );
  13. 13. 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
  14. 14. 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
  15. 15. Getting strings Displaying strings in app NSLocalizedString( @"Music", @"The menu item Music." ); NSLocalizedString( @"Films", @"The button Films." ); Displaying variables within string in app int titles = 142;[NSString stringWithFormat: NSLocalizedString( @"There are %d movie titles.", @"Movie statistics" ), titles];
  16. 16. Strings file • Autogenerate Localizable.strings file • Go to root directory of app • Terminal: genstrings ./Classes/*.m • Make localizable like for interfaces • Translate file
  17. 17. Localizable.strings Autogenerated file /* The button Films. */ "Films" = "Films";/* The menu item Music. */ "Music" = "Music"; Translated file /* The button Films. */ "Films" = "Filme";/* The menu item Music. */ "Music" = "Musik";
  18. 18. 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
  19. 19. • 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
  20. 20. Thank you ερωτήσεις? Frågor? Preguntas? Pytania? Вопросы? Questions? Demandoj? ?' ( ) * + Demandes? Vragen? ? Domande? Fragen?