Upload
john-wilker
View
2.356
Download
1
Tags:
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
Internationalizingyour apps
Chuck Smith and Judith Meyer
360|iDev DenverSep 27-30, 2009
2
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
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
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.
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.
Localization: Know your Audience
Localization: Respect Foreign Languages
• Traficante mineral water
• Silver Mist
• Mitsubishi Pajero
• „Bite the wax tadpole“ or „Happiness in your mouth“?
Translation vs. Localization
• Brand / product name
• Form of address
• Measurements
• Date formats
• Pictures and icons
• Wording
Localization: Local Asian Feel
Implications of RTL Languages (Arabic, Hebrew)
Retrieving the Current Locale
NSLocale *locale = [NSLocale currentLocale];
NSString *currentLocale = [locale displayNameForKey:NSLocaleIdentifier value:[locale localeIdentifier]];
NSLog( @"Complete locale: %@", currentLocale );
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
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
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];
Strings file
• Autogenerate Localizable.strings file
• Go to root directory of app
• Terminal: genstrings ./Classes/*.m
• Make localizable like for interfaces
• Translate file
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
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
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
Thank you
Questions?
Fragen?
Demandoj?
Preguntas?
Demandes?
Pytania?
Frågor?
Вопросы?
问题? Domande?
ερωτήσεις?
Vragen? ?' ( ) * +