You've got your Android app out there, and it's selling like hotcakes. You've got the momentum, but you need more users. Now may be the time to consider internationalizing your Android application and publishing it to a much broader user base. Not every Android application is suitable for internationalization though. You will need to consider design and development issues, publication complications, and product suitability issues.
In this article, we list the 10 things Android app developers should think about when pondering "going global." These considerations apply whether you're using the latest and greatest Android Honeycomb (3.x) SDK or an older SDK.
Android Internationalization Tip #1: String Manipulation
When people think about internationalization, they usually think about String tables. And sure, that's where a lot of the work for internationalization of your app occurs: specifying alternative string resources for your application to load for different users. Luckily, Android makes this very easy and flexible. You can internationalize any resources you add to your project, be they strings, graphics, colors, layouts, dimensions, etc. Keep in mind that if you load and use custom fonts, you should have a fallback plan for foreign characters your font family doesn't support.
When it comes to string manipulation, you've got ample APIs for handling Unicode and other world-friendly character encodings.
Android Internationalization Tip #2: Flexible User Interfaces
Have you ever noticed how long German words are? How intricate a Japanese character can be? Or that some foreign languages are read top down, or back to front? Your application user interface needs to be flexible enough to handle these idiosyncrasies, within reason.
When possible, make your navigation controls, and such, visual instead of textual. Buttons like play, pause, stop, next, and previous are universally understood and can save you time and effort when internationalizing your user interfaces. Consider also what input methods and software keyboards are most appropriate for your application.
Android Internationalization Tip #3: Currency Formats
If your application is financial in nature, or deals in currency formats, then you'll want to be aware of a few things. First, you can use alternate format string resources to display currencies in the appropriate format. For example, some regions use commas and periods in different ways, others put the currency symbol before or after the value. Beyond formatting currencies correctly, things can get very tricky if you're doing any sort of conversions.
In terms of selling your apps, the Android Market supports numerous currencies in which you can sell your application. That said, some countries do not currently allow for paid applications through the market, but this has been changing as the platform grows and the Android Market works out the legal details.
Android Internationalization Tip #4: Dates
Think about how many ways we talk about dates. We use all numbers, we spell out the months, we shorten the month to a three letter version. Well, when you start looking at the calendaring of the world, things can get pretty complex. Not all users live by the Gregorian calendar system. Luckily, you've got a number of calendaring and date formatting APIs available within the Android SDK to help you sort this out.
Android Internationalization Tip #5: Time
Just like dates, time formats vary throughout the world, as does the actual time, whether or not there is a daylight savings time, etc. You'll find Android APIs that help smooth over time zone issues and the like, as well as date/time formatters for pretty-printing a date and/or time in the format you desire. It can get a bit tricky when you're trying to sync up times in multiple places, like an application server in California and a user in Calcutta.