Android Internationalization Tip #6: Names and Addresses
Names and addresses also come in different forms, such as family names, forenames, surnames, given names, middle names, and initials. Sometimes you're best off just giving users a single field for all their various and sundry names, and not trying to categorize their parts.
Addresses are much worse. Some countries have post codes, others have provinces, states, counties, townships, and territories. Again, sometimes your best bet is to give users one big multi-line field for the "middle part" of their address that can be formatted any which way, instead of trying to compartmentalize and order the specific items.
Android Internationalization Tip #7: Server-Driven Apps
Some Android applications are very lightweight, leaving all the heavy lifting to an application server or the cloud. These applications often have very few package assets -- they simply get all their content from the server, be it text, images, media files, or what have you. These sorts of applications fall into a special category of internationalization because, really, it's the content you want to internationalize, not the application skeleton.
Here you've got a few options. You can try to detect the current language or regional settings on the device programmatically and request the appropriate locale-aware assets from your server. You may want to establish your own set of supported languages that are configurable by the user in the form of application preferences, separate from the Android device settings, so that you can clearly state which locales your app supports. The benefit here is that you can always add new language support on the server side, even after the app has been published. This choice may depend on if your application is accessible from the web or other devices that don't give users a choice for their language and locale.
Android Internationalization Tip #8: Export and Law
Most application developers won't have to worry too much about export law these days. But there are some exceptions. There are still rules about exporting certain encryption techniques and such. The Android Market has a reasonable write-up on this, but really, the short answer is: knowing the law is your responsibility, not Google's. The terms of service on all these distribution mechanisms limit their liability, not yours.
More common are the problems with compliance with local law. Not all countries are governed by the same rules. Once you sell your application in a foreign land, it's a good idea to make sure you're not unwittingly breaking its laws (in case you might someday want to visit). Some countries have very strict rules when it comes to privacy, use of user data, where that data is stored, how it is transmitted, etc. Be especially aware if your application is of a financial nature. Other nations have laws outlawing gambling and pornography, and their legal definitions vary. But we are developers, and not lawyers, our best advice here is seek professional help.
Android Internationalization Tip #9: Taxes
You can read up on the tax implications of selling on the Android Market, but other tax implications may exist as well, especially if you self publish. Again, as we are developers and not accountants, our best advice here is seek professional help.
Android Internationalization Tip #10: Device Availability
While Android devices are available on every continent, the devices found in Kenya will not necessarily be the same sorts you find at your neighborhood Verizon store. Device availability in certain regions varies, in fact it trends. The "hottest" new devices tend to start out in places like Asia and the United States and migrate to other areas. Third-world countries are huge growth markets in mobile, but most individuals are not using top-of-the-line smartphones, but some of the older phones, running older versions of the Android platform. This means that remaining backwards compatible to Android 1.6 is more important if you want to support users worldwide.
Android Internationalization Bonus Tip: Cultural Differences --Real or Imagined
Consider this a soft topic for software. Despite everything you do to make your application world friendly, some applications are just not appropriate for certain regions. This is a judgment call more than anything, and dependent on the amount of risk and potential flack you're willing to take -- as a company or in terms of your market ratings.
Sometimes, this is just a matter of being sensitive to your potential users. Games especially can be highly stereotypical. It may be part of the storyline, but consider internationalizing those aspects of your application as well. How many first person shooter bad guys have German accents? In fact, there are laws in many countries about that particular topic, especially the visuals concerning it.
Other times it's simply a matter of an app's utility relying fundamentally on its region or regions. After all, why would an Android user in Southern Sudan need an app to find the nearest New York bagelry or London chip shop? Simply use common sense: not all apps are meant to be internationalized. That said, an application that targets a region that is multi-lingual would do well to support its secondary languages, be they American Spanish, French Canadian, or what have you.
Internationalizing your application may seem daunting at first, but as you can see from this simple checklist, most applications currently on the Android Market can be easily updated to support multiple languages, locales and a more diverse set of users. Still, many app developers do not devote the small amount of time and effort necessary to take this step -- giving those who do a decided market advantage. Bonne chance!