Hvordan kan du aktivere pseudo-locale i Windows til test?

Indlæg af Hanne Mølgaard Plasc

Problem



Windows Vista introducerede begrebet tre pseudo-lokaliteter: [15]


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


Aktivering af Base locale er nyttigt, fordi du kan kontrollere, at din applikation bruger den aktuelle lokalitet til formatering af elementer som datoer, tider, tal og penge.


For eksempel når den aktuelle landestandard er indstillet til Base , formateres en dato som:



  [[Шěđлеśđαỳ !!!]], 8 οf [[Μäŕςћ !!]] òf 2006



Bygninger af Windows er faktisk lavet i pseudo, og derefter lokaliseret til engelsk: [16]


Indtast billedbeskrivelse her


En anden værdi i brugen af ​​disse lokaliteter: det tester, at din ansøgning ikke antager, at en 16-bit PRIMARYLANGID består af en: [17]



  • 8-bit primær sprog id

  • 8-biters underlanguage id



når i virkeligheden er et primærlangid: [18]



  • et 10-bit primært sprog id

  • et 6-bits undersprog id



eller grafisk:


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


Disse tre pseudo-lokale går endelig i slutningen af ​​den 8. bit (noget, som Microsoft har været træt af at gøre for at bryde buggy-applikationer).


Hvordan aktiverer jeg pseudo-locale s i Windows?


Se også




  • MSDN: Pseudo-Locales

  • MSDN: Brug af pseudo-lokaliteter til lokaliseringstests

  • MSDN Blogs: Pseudo Locales i Windows Vista Beta 2

  • MSDN Blogs: En af mine kolleger er 'Pseudo Man' (en rig kilde til ordsprog i samtale!)

  • MSDN Blogs: Gå ud af slutningen af ​​den ottende bit


Bedste reference



  Hvordan aktiverer jeg pseudo-locale s i Windows? [19] [20] [21] [22] [23]



I første omgang er de tre pseudo-locale s ikke synlige i kontrolpanelet: [24]



  Bemærk, at NLS ikke automatisk opregner pseudo-lokalerne eller udsætter dem i regionens og sprogvalgsdelen af ​​Kontrolpanel. De er kun talbare, hvis værdier er angivet i registreringsdatabasen.



Du aktiverer dem ved at tilføje nogle registreringsnøgler:


[HKEY\_LOCAL\_MACHINESystemCurrentControlSetControlNlsLocale]
"00000501"="1"
"000009ff"="d"
"000005fe"="7"


Som kan gøres i RegEdit:


Indtast billedbeskrivelse her


Derefter kan du gå til Regional og sprogvalg i Kontrolpanel:


Indtast billedbeskrivelse her


og vælg pseudo-lokalen:


Indtast billedbeskrivelse her


De tre forskellige pseudo-lokaler er til at teste 3 slags lokaliteter:


Base qps-ploc locale bruges til engelsklignende pseudo-lokaliseringer. Dens strenge er længere versioner af engelske strenge, der bruger ikke-latinske og accentede tegn i stedet for det normale script. Derudover skal simple latinske strenge sortere i omvendt rækkefølge med denne lokalitet.


Mirrored qpa-mirr bruges til pseudodata til højre mod venstre, hvilket er et andet område af interesse for testning.


Østasien qps-asia er beregnet til at udnytte det store CJK karakterrepertoire, som også er nyttigt til testning.





Advarsel: Prøv ikke at ændre 'System Locale' :


Indtast billedbeskrivelse her


til en ny pseudo-lokalitet:


Indtast billedbeskrivelse her


Ellers efter genstart:


Indtast billedbeskrivelse her


Windows mislykkes i at starte:


Indtast billedbeskrivelse her


Og den eneste løsning er at manuelt redigere registreringsdatabasen fra gendannelseskonsollen. genoprette den gamle en-US lokalitet. [25]





Advarsel



Brug af pseudo-locales bruges til at finde lokaliseringsfejl i software. Desværre vil det også give dig mulighed for at finde fejl i andres 's software, herunder Microsoft's:



  • SQL Server Management Studio 1 styrter, når de præsenteres med andre lokaliteter (Microsoft Connect): [26]


    Indtast billedbeskrivelse her

    Indtast billedbeskrivelse her
    Indtast billedbeskrivelse her

  • Microsoft Excel lader dig ikke længere indtaste funktioner ( komma bruges til at adskille parametre virker ikke længere)

  • Visual Studio vil ikke længere lade dig redigere kommaseparerede egenskaber

  • Diagramdesigneren til SQL Server Management Studio rapporterer en fejl

  • .NET har en fejl i formatering af dato og klokkeslæt, der viser 22////11////2011 4::::42::::53 P̰̃M]

  • Windows Event Viewer:


    Indtast billedbeskrivelse her

  • Task Scheduler:


    Indtast billedbeskrivelse her

  • SQL Server Management Studio:


    Indtast billedbeskrivelse her



Held og lykke med at få Microsoft til at dyrke deres eget produkt.


1 10.50.1617.0





Opdater 4//10/2012:


Forsøger at Rediger top 200 rækker af en tabel i SQL Server Management Studio:


Indtast billedbeskrivelse her



  Udført SQL-sætning SELECT TOP (200) ...

  Fejlkilde: Microsoft.SqlServer.Management.DataTools

  Fejlmeddelelse: Objektreference er ikke sat til en forekomst af et objekt



Løses ved at ændre Negativt tegnsymbol fra -- til - .

Andre referencer 1


Du kan også ændre Internet Explorer s Accept-Languages for at anmode om qps-ploc sprog:


Indtast billedbeskrivelse her


Du kan bruge dette til at teste, at dit websted understøtter psuedo-locale, og kontrollere eventuelle manglende lokaliseringer:


Indtast billedbeskrivelse her [27]


Du kan se, jeg savnede to bit tekst på denne prøvewebsted.

Andre referencer 2


Det ligner snarere end at fastsætte lokaliseringsfejlene i .NET, SQL Server, Excel osv. Microsoft ændrede Pseudo-lokaliteten i Windows 10 for at dække fejlene:


| 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  | --                       | -                     |


Jeg kan forstå, at jeg ikke har lyst til at rette dine fejl, fordi du er lat for det. Men du skulle have været tvunget til at bære din skam for alle at se.


I stedet cop-out og forsøge at skjule din fiasko. Det er bare dårligt.