How to use allow pseudo-language in Windows for testing?

Windows Vista introduced the concept of three pseudo-locales :

Pseudo Locale Locale Name LCID =================== =========== ====== Base qps-ploc 0x0501 Mirrored qps-mirr 0x09ff East Asian-language qps-asia 0x05fe 

Enabling the Base language is useful because you can check if your application uses the current locale to format elements such as dates, time, numbers, money.

For example, if the current locale is set to Base , the date will be formatted as:

[Shteylśđαỳ !!!], 8 ōf [Μäŕςћ !!] ōf 2006

The build of Windows is actually done in pseudo , and then localized in English:

enter image description here

Another value in using these locales: it verifies that your application does not assume that the 16-bit PRIMARYLANGID consists of:

  • 8-bit primary language identifier
  • 8-bit sublingual identifier

when in reality PRIMARYLANGID ::

  • 10-bit primary language identifier
  • 6-bit sublingual identifier

or graphically:

 +-----------------------+-------------------------+ | Sublanguage ID | Primary Language ID | +-----------------------+-------------------------+ 15 10 9 0 bit 

These three pseudo-locales finally leave the end of the 8th bit (something because Microsoft is tired of doing hacking buggy applications).

How to enable pseudo-language in Windows?

see also

+19
windows windows-7 internationalization localization pseudolocalization
Aug 12 '11 at 16:01
source share
3 answers

How to enable pseudo-locale on Windows?

Initially, three pseudo-locales are not visible on the control panel :

Please note that NLS does not automatically list pseudo-locales and does not display them in the regional and language settings section of the control panel. They are listed only if the values ​​are specified in the registry.

You enable them by adding some registry keys:

 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\Locale] "00000501"="1" // qps-ploc (Windows Vista and later) "000005fe"="7" // qps-ploca (Windows Vista and later) "00000901"="1" // qps-Latn-x-sh (Windows 10 and later) "000009ff"="d" // qps-plocm (Windows Vista and later) 

What can be done in RegEdit:

enter image description here

Then you can go to the regional and language settings in the control panel:

enter image description here

and select the pseudo-locale:

enter image description here

Three different pseudo-locales are designed to test 3 types of locales:

The qps-ploc used for pseudo qps-ploc similar to English. Its strings are longer versions of English strings using non-Latin and accented characters instead of the usual script. In addition, simple Latin strings must be sorted in reverse order with this language.

Mirror qpa-mirr used for qpa-mirr from right to left, which is another area of ​​interest for testing.

East Asian qps-asia designed to use a large repertoire of CJK characters, which is also useful for testing.




Warning: Do not attempt to change the "System Locale":

enter image description here

to the new pseudo-locale:

enter image description here

Otherwise, after rebooting:

enter image description here

Windows will not start:

enter image description here

And the only fix would be to manually edit the registry from the recovery console ; restoration of the old en-US locale.




Warning

The use of pseudo-locales is used to find localization errors in software. Unfortunately, this will also allow you to find bugs in other people's software; including Microsoft:

  • SQL Server Management Studio 1 crashes when displayed in other locales ( Microsoft Connect ):

    enter image description here
    enter image description hereenter image description here

  • Microsoft Excel no longer allows you to enter functions (the comma used to separate parameters no longer works)

  • Visual Studio no longer allows editing properties separated by commas

  • SQL Server Management Studio Chart Designer reports an error

  • In .NET, there is an error in formatting the date and time, showing 22////11////2011 4::42::53 P̰̃M]

  • Windows Event Viewer:

    enter image description here

  • Task Manager:

    enter image description here

  • SQL Server Management Studio:

    enter image description here

Good luck getting Microsoft to make its own product.

1 10.50.1617.0




Update 4 // 10/2012:

Trying to edit the top 200 rows of a table in SQL Server Management Studio:

enter image description here

Executed SELECT TOP (200) SQL statement ...
Error source: Microsoft.SqlServer.Management.DataTools
Error message: object reference not set to object instance

Corrected by changing the negative character from -- to - .

+22
Aug 12 '11 at 16:02
source share

You can also modify Internet Explorer Accept-Languages to request the qps-ploc :

enter image description here

You can use this to check if your site supports psuedo-locale and checks for missing localizations:

enter image description here

You can see that I missed two bits of text on this website.

+5
Oct 06 2018-11-11T00:
source share

Most likely, instead of fixing localization errors in .NET, SQL Server, Excel, etc. Microsoft has changed pseudo-language in Windows 10 to mask errors:

 | Item | Windows 7 | Windows 10 | |-----------------------|--------------------------|-----------------------| | Locale Identifier | 0x0501 (1281) | 0x0501 (1281) | | Locale Name | qps-ploc | qps-ploc | | Example Number | --123,,4567,,8901 | -123,,4567,,8901 | | Example Currency | --$$123,,4567,,8901..00 | -$123,,4567,,8901.000 | | Example Float | --123,,4567,,8901..00 | -123,,4567,,8901.000 | | Example Date | 9//08//2015 | 9/8/2015 | | Example Time | 9::51::17 Μ | 9:45:09 | | Example DateTime | 9//08//2015 9::51::17 Μ | 9/8/2015 9:45 | | LOCALE_SLANGUAGE | Pseudo Language (Pseudo) | Pseudo (Pseudo) | | LOCALE_SENGLANGUAGE | Pseudo Language | Pseudo | | LOCALE_SDECIMAL | .. | . | | LOCALE_SCURRENCY | $$ | $ | | LOCALE_SMONDECIMALSEP | .. | . | | LOCALE_SDATE | // | / | | LOCALE_STIME | :: | : | | LOCALE_SSHORTDATE | d//MM//yyyy | d/MM/yy | | LOCALE_STIMEFORMAT | h::mm::ss tt | H:mm:ss | | LOCALE_ITIME | 0 | 1 | | LOCALE_ICENTURY | 1 | 0 | | LOCALE_SNEGATIVESIGN | -- | - | 

I understand that I do not want to correct my mistakes, because you are too lazy. But you had to be forced to wear your shame so that everyone could see.

Instead, you retire and try to hide your failure. This is just bad.

+2
Aug 09 '15 at 18:37
source share



All Articles