Software internationalization is a process of adopting software application to work with different culture settings. Software internationalization should not be mistaken with software localization, which is a process of translating user interface to a foreign language. During software internationalization phase you make your application work correctly with different date/time formats, decimal point signs, moneys signs.
Software internationalization is different for every development platform and for some platforms software internationalization is much easier to do than for others. Platforms designed in the last several years have better support for software internationalization, than traditional development environments. .NET and Java are famous for their excellent support of culture settings. On the other hand, C++, VB6 and many other older languages have much inferior support of software internationalization. Some platforms, such as Palm (even latest versions) still don't have support for Unicode and without Unicode it is almost impossible to create truly multilingual software.
First step for every software internationalization process is to decide whether you will use Unicode codepage. If you start new development and you don't have much legacy code, you should stick to Unicode. Windows 2000/XP/2003 support Unicode natively and for Windows 98/ME special library is available (unicows.dll) so there is no reason to develop MBCS software for Windows. But if you have legacy application with large source code, converting application to Unicode is not always a good solution, because it is difficult to isolate all place where application make certain assumptions about size of chars and length of strings. Changing source code for software internationalization and retesting application sometimes takes more time than writing new application from ground-up.
Next, during software internationalization process you have to convert all usages of time/date strings to conform OS culture settings. Various countries have different day/month order, for example in European countries day goes first, and then month, contrary to US custom. So sometimes it is difficult to understand whether 1/2/2005 is February, 1 or January, 2. Remember, you should not only display date in correct format, you should also take input from user correctly. The same situation exists with money units.
Software internationalization is not easy; it takes time and efforts even to make up best way to it. But pay back is usually huge as global market is much larger than domestic market, even as large as software market in US.