1. A computer-implemented method comprising: obtaining a set of attribute clusters, each cluster associated with a language and each cluster comprising a definition of first a set of language indicators shared among a plurality of users who have a common preferred language; obtaining a user profile for a user that contains a second set of language indicators, each language indicator related to a language potentially preferred by the user; by a processor, applying a clustering algorithm to the user profile to associate it with one of the set of attribute clusters having a highest correlation with the second set of language indicators, wherein the highest correlation indicates the likely language preference of the user is more similar to a language preference of users in the one of the set of attribute clusters than to a language preference of users in at least one other of the set of attribute clusters; and localizing a first application based upon the language associated with the cluster to which the user profile is associated, by performing at least one localization selected from the group consisting of: setting a language of at least one user interface element in the first application, setting a default input language for the user, setting a date format, setting a time format, setting a sort order, and setting a writing directionality.