Earth Eastern Hemisphere
NASA, 2006 — Public Domain
Courtesy of U.S. federal government

Automatic language selection and language menu prioritisation algorithm

Language negotiation example: Resource available in Arabic, English, French, German, Spanish, Russian or Chinese. User prefers Ukrainian, English or French. Our algorithm would probably recommend English, French and Russian language options, in this order of preference. Screen shot of language selection user-interface

Our language negotiation algorithm efficiently selects the best language for communication or information transfer, based on:

We use specifications and data from WC3, IETF, IANA, Unicode, Wikimedia, Google, and Microsoft, to give your end-users a truly optimal experience. Our system uses thousands of language, geographical and demographic details to ensure that your customer's first impressions will be familiar and positive.

Every time you view a Web page, your computer software indicates which languages you can accept or understand. For example, your HTTP request header suggests that you prefer resources in English. Your IP address suggests that you are browsing from United States.

Our system evaluates a wide variety of evidence to dynamically present information in the languages, conventions and formats your customer is most likely to prefer; removing the need for complicated language & country selection pages or controls with long lists of options; improving customer fulfilment and business retention.

In addition to suggesting a default language choice, alternative language options are ranked and translated for presentation to your customer by our flexible, object-oriented API. Where necessary, different resources on the same page may be presented in different languages, according to language availability lists for each resource; or you might present the same resource with alternative languages side-by-side.

A clearly commented reference implementation is available in PHP, which has been structured to facilitate translation into any object-oriented language. Our reference implementation is integrated into this Web site/ page. Normalisation of language codes provides some tolerance of variations in the formatting of language codes, and exceptions are thrown when appropriate. SQL metadata supports efficient cross-referencing and automatic differential updates.

Please test our system by changing your language preferences in your Web browser, before visiting some of our example resources: examine how your software language preferences/ priorities and menu selections affect the language options offered in our menus:

Price, features & terms: negotiable.