1. A method for providing multi-lingual and regional support for an application, the method comprising the steps of: installing an application on a computer, the application having a first logic module that is adapted to handle non-user interface components of the application, the application also having a localization module that is adapted to handle localization aspects of the application including a user interface logic; issuing a query to the computer to determine what languages are supported by the computer and whether any localized preferences for a particular language have been indicated by a user of the computer; issuing a query to a server maintained at location remote from the computer for language resources that are available at the server; determining if there are matches between the query issued to the computer and the query for language resources issued to the server; downloading from the server to the computer language resource files for matched languages and any user-indicated localized preferences thereof; wherein the language resource files are supplied to the localization module; wherein the downloaded language resources comprise generic files for a language and sub-files of the generic files, each of the sub-files representing a regional preference for the language; amalgamating the downloaded language resource files into a queriable object; storing version information of the downloaded language resources; periodically querying the sever to see if any new versions of the downloaded language resources exist and, if so, then downloading the updated previously downloaded language resources.