In making software products, internationalization and localization pose challenging tasks for developers, particularly if the software is not designed from the beginning with these concerns in mind. A common practice is to separate textual data and other environment-dependent resources from the program code. Thus, supporting a different environment, ideally, only requires change in those separate resources without code modification, greatly simplifying the task.
However user requirements might differ significantly over cultures, for example, reading from right to left as in Persian (farsi), Hebrew or Arabic may require additional changes to the GUI. OpenOffice.Org solves this with compilation switches.
Some say that the development team needs someone who understands foreign languages and cultures and has a technical background and such a person may be difficult to find. Others argue that the commercial case to localise products into multiple languages is very obvious, and that all is needed is a budgetary commitment from the producer to finance the considerable costs. It costs more to produce products for international markets, but in an increasingly global economy, English only is scarcely an option. For instance, if a message displayed to the user in one of several languages is modified, all of the translated versions must be changed. Software libraries that aid this task are available, such as gettext.
Since open source software can generally be freely modified and redistributed, it is more prone to internationalization. Most proprietary software is only available in languages considered to be economically viable whereas the KDE project, for example, has been translated into over 70 languages. Linux is generally available in many languages. The Debian distribution currently loads over 200 languages. Ubuntu's LiveCD allows you to conveniently pick to load any and all choices you want from dozens of languages when you boot up or when you choose System>Administration>Language Support. Ubuntu's 7.04 version covers languages from Afar to Zulu including dialect choices such as Ancient or Modern Greek or several varieties of English.Get Quote