Pseudo Locales in Windows Vista Beta 2

What's a pseudo locale?  Pseudo-Locales are an aid to pseudo localization testing.  MSDN has an article about Pseudo-Locales.  Basically pseudo data is used during localization to make strings like [Шěđлеśđαỳ !!!], 8 ōf [Μäŕςћ !!] ōf 2006 instead of Wednesday, 8 March 2006.

Pseudo data can be used to ensure that your application is getting data from the user's locale instead of from an accidentally hard-coded or otherwise erroneous locale.  Since the pseudo-data looks kind of like English, its readable by English reading testers.  Pseudo localization also usually makes strings larger, uses unexpected Unicode characters and otherwise attempts to hit common application bugs while still being readable.

Pseudo locales are intended to compliment fuller pseudo localization testing by application developers.  Originally we used these for testing Windows Vista itself, however the data is being shipped as part of the normal locale data so that it can also be used for traditional application testing.

The data itself is not typically enabled, however by setting a registry key it becomes available to Windows Vista applications, and can even be used as the user default locale.  Enabled pseudo locales should also work as Microsoft .Net v2.0 "synthetic" cultures.


Here's the table from MSDN with the Vista pseudo locales and their names.

Pseudo-Locale Locale Name LCID
Base qps-ploc 0501
Mirrored qps-mirr 09ff
East Asian-language qps-asia 05fe

Base - The qps-ploc locale is used for English-like pseudo localizations.  Its strings are longer versions of English strings, using non-Latin and accented characters instead of the normal script.  Additionally simple Latin strings should sort in reverse order with this locale.

Mirrored - qpa-mirr is used for right-to-left pseudo data, which is another area of interest for testing.

East Asian - qps-asia is intended to utilize the large CJK character repertoire, which is also useful for testing.

Once enabled, these locales can be set as the user default using intl.cpl (Regional and Language Options).