Browse Prior Art Database

Virtualization Of System Locales On Windows Systems

IP.com Disclosure Number: IPCOM000171461D
Original Publication Date: 2008-Jun-10
Included in the Prior Art Database: 2008-Jun-10
Document File: 8 page(s) / 281K

Publishing Venue

Microsoft

Related People

Chetley T Laughlin: INVENTOR

Abstract

Currently, most platforms have a system-wide locale, where the system-wide locale identifies the country that the device either is from or is currently used in. This locale is used to translate between code pages and Unicode data as the default for non-Unicode aware applications. This can create problems when a user attempts to run two non-Unicode applications developed in two different locales. Only the application that matches the system locale will work in current systems. A utility was developed that virtualizes the system locale application programming interface (API), so that it can change the system locale that is used for each process. This allows applications from different countries to run simultaneously on the same device. A simple user interface (UI) is provided so that a user can choose the system locale for each application.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 44% of the total text.

Virtualization of system locales on Windows Systems

            Currently, most computing platforms have a system-wide locale.  This system-wide locale identifies the country that the device either is from or within which the device is currently being used.  This locale is used to translate between code pages and Unicode data, as the default for non-Unicode aware applications.  Many applications assume that the system locale based on where the developer wrote the program.  For example, Japanese applications assume 0411 is the system locale.  This can create problems when a user attempts to run two non-Unicode applications developed in two different locales.  Currently, only one of those applications, the application that matches the device’s current system locale will work at one time.  A utility was developed that virtualizes the system locale application programming interface (API), so that it can change the system locale that is used for each process.  This allows applications from different countries to run simultaneously on the same device.  A simple user interface (UI) is provided so that a user can choose the system locale for each application.

            The utility called system locale virtualization utility provides process specific and customizable system locales for Windows-based devices.  This utility virtualizes the system locale for all processes in the device.  This provides each process with its own system locale that can be set independently by the user.  The device’s system is then able to support multiple non-Unicode aware applications simultaneously. 

            This utility requires no binary modification of the applications themselves.  Using a modified APIs to patch the original platform API calls to use the user requested system locale instead of the device’s current system locale. 

            An example situation in which this utility is beneficial is described below.  A user installed two non-Unicode instant messaging (IM) programs, one developed and compiled in

Czechoslovakia

  and the other in

Japan

.  Several IM protocols are non-Unicode aware and assume a system locale.  These applications therefore, translate Unicode (used on the device) to a code page using the system locales when pushing the data to another device.  The translation is based on the sending device’s system locale.  This forces one of the applications to be non-functional, regardless of what the locale of the device is set to use.  If the virtualization utility is installed on the device, the user can select the Czech local to be used with the corresponding application and the Japanese locale with the Japanese application.  The utility uses modified APIs to force the correct data to be provided for each application.  Now both applicatio...