When it comes to localization, many developers and seem to think of “translating strings” first and foremost. Localization is more than this! It’s the way of displaying entities the user expects them. Let’s take the most popular for example: dates and times.
In germany we have a 24 hour time system and by the time I’m writing this, it is 22:59. For you US guys this is 10:59 p.m. and you might go mad when an app or web page forces you to use another system than the ‘normal’ one. Same goes for dates. Germany: 01. June 2013; US: June 1, 2013.
There is no need re-invent the wheel - every seroius programming and scripting language has some kind of date/time formatter mechanism which you should use! You only have to make sure it is locale-aware.
Basics of formatting dates and times is mostly known by most programmers. Formatting numbers is too often seen doing wrong - means not localized. Separating tousands in a large number is done differently. What a surprise… The number 7382.61 (the price of an 64GB iPhone 5 in Botswanan Pula) looks for the german guys like 7.382,61, the US’ see more like 7,382.61 and if you write esperanto it is 7 382,61.
Speaking of money, currencies are localized too. Let’s assume our 7382.61 Pula as a fixed amount in YOUR currency. In Germany they have 7.382,61€, US $7,382.61 and if you are from in Iran ۷٬۳۸۳﷼ is your expected output. As you might see the amount is written from left to right (LTR) instead of right to left (RTL) and the currency symbol is placed where it is expected to be - without doing extra coding magic on your side! Most mobile OS’ are able to manage RTL string at least for date/times and general numbers and currencies and I expect every web technology could do more. So why is nobody using this?
Demo code for the iOS capabilites can be found at Github and screenshots are attached.