Getting your app translated is a fickle beast that almost every developer out there eventually comes to hate. So much so that most developers either put it in as an afterthought or forgo it all together. It places unique restrictions at all levels of development and can make maintaining a site a nightmare. Even when its done correctly culture norms or tendencies can make it all pointless. For instance it may be natural for American users to flow from A -> B -> C but that doesn't mean that someone in Indonesia who naturally likes to go from B -> A -> C is going to like it, or understand it, or want to use your site. (And we want everyone to love our site, don't we?)

Because of this a lot of the time developers usually fall down three avenues for completing localization.

  1. Build entirely different sites for each locale with their own unique structure but the same overall feel and goal
  2. Separate content entirely on their own by locale
  3. Provide in place translations for content, i.e. word for word replacement.

#1 is usually how the big boys do it. Its the only way to completely adapt a site to suit the needs of the targeted culture. Its also un-godly expensive and completely ridiculous to maintain. But hey, if you got the money.
#2 is what most people are forced to do if you have a CMS and / or post content regularly. Its a pain to reformat each post / page for each locale your targeting but it'll net you enough flexibility.
#3 is what everyone else has to deal with. You usually have to get pretty low level but it is easier to work with than #1. It's still harder to maintain than #2 though.

For the most part everyone deals with #2 and #3.

But with the power of Ember (and other JS apps) we have a unique opportunity in that we can achieve #3 without as much maintenance overhead and we also have the flexibility to very easily achieve #2 by varying our API responses! With a properly adapted API, Ember localization becomes just a tedious nuisance instead of an architectural nightmare.

Localization Example

This is a presentation that i've given about globalization and localization at Ember San Diego.

It has in detail how to go about exactly localizing your application.

Direct link: