views:

52

answers:

5

Trying to settle a debate with a client. I didnt localize the strings and images in the application and it didnt come up during the 3 week define and discover. They seem to think its a basic best practice and that it should have been done by default. I disagree, especially if there are no planned languages otw.

Seems like you would leave this for demand by users

So, Id like to ask the community to chime in on this and tell me if you by default have localized your iphone app or not?

I ask this to not only help me understand where I might have missed something but also to help others in the future as to what is considered "default" and "best practice"

+4  A: 

This question is going to spark a lot of opinion. Because Apple makes it ridiculously easy on iOS to localize strings, I personally feel you should set all apps up for localization by default. Anywhere you find yourself defining a literal string, substitute it with NSLocalizedString(), until it becomes second nature. Then, if you decide you want to localize later, you don't have to hunt and peck all over the place. If you never localize, you lose nothing except a few keystrokes.

A true localization will probably have localized NIBs to (may have different sized buttons for different languages, for instance). Still, if you assign all strings that will appear in the NIB in code with NSLocalizedString(), rather than in Interface Builder, you'll likely save time in the long run.

The fact that the AppStore makes your app visible in so many countries greatly increases the demand to localize. Read this post by Wil Shipley about the money you could be making by reaching many markets.

greg
At the very least, it gives you a central location to edit your message strings. If your app picks up in another country, you can let someone else do the work of translating the strings, and you can just drop the `.lang` (or whatever the iOS equivalent is) file in your project.
jnpcl
A: 

How could you possibly know what languages to use for localization without input from your client?

Assuming it was never discussed during requirements, it appears you are in the right here. If they wanted localized versions of their app, they should have requested it.

@greg has a very good point, in that it would have been beneficial to use localized strings from the very beginning, but setting up an app for localization isn't especially difficult. It's the actual translations that are difficult and expensive.

kubi
Completely disagree with this. Your app should always be localized in the primary language, even if that is the only language that will ever be used -- it's just good coding style.
Harkonian
A: 

My small sample suggests that the vast majority of apps in the U.S. App store are not localized to any other language.

It may be technically easy, but can be editorially very difficult unless you have educated multi-lingual staff available (hiring multiple contractors to cross-review translations for grammatical correctness, doing multi-lingual app descriptions, app documentation, web site support pages, marketing materials, etc. in all the languages that might be expected for an app localized to those languages. Keeping all that editorially synchronized with every update/bug fix.)

It also appears that lot of apps add multi-lingual support only after International sales get to the level which can support the above initial and on-going costs.

hotpaw2
It is not particularly hard to get translations for the app store and in app text -- I've been using OneHourTranslation.com for my last two projects. Don't expect them to translate Homer's Iliad, but for fairly straightforward stuff they are good.
Harkonian
A: 

i ask them going into it.

if i need a default answer, it is 'yes, prepare for localization'. it takes far less time to add it as you go, than the remove, rebuild, retest cycles.

Justin
+1  A: 

First, you have to internationalize it, that is to write your code such that it is easy to add new languages. Default - and first - language is usually english (Apple makes things easier if you start with english and customers are more likely to buy an app in english only than in swahili only).

Second, you can localize it to languages that are important for customers of your app. spanish, chinese, french, farsi, ...

mouviciel
+1 for using the correct terminology (internationalization and localization).
greg