¿Cómo usar enable pseudo-locale en Windows para probar?

Windows Vista introdujo el concepto de tres pseudo-locales :

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

La habilitación de la configuración regional Base es útil, ya que puede verificar que su aplicación esté utilizando la configuración regional actual para formatear elementos como fechas, horas, números, dinero.

Por ejemplo, cuando la configuración regional actual se establece en Base , una fecha se formateará como:

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

Las comstackciones de Windows se hacen en realidad en pseudo y luego se ubican en inglés:

enter image description here

Otro valor en el uso de estos entornos locales: prueba que su aplicación no asume que un PRIMARYLANGID 16 bits se compone de:

  • ID de idioma principal de 8 bits
  • Id. De sublenguaje de 8 bits

cuando en realidad un PRIMARYLANGID es :

  • una ID de idioma principal de 10 bits
  • una id de supresión de 6 bits

o gráficamente

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

Estos tres pseudo-locales finalmente abandonan el 8º bit (algo que Microsoft ha estado cansado de hacer para romper las aplicaciones defectuosas).

¿Cómo habilito pseudo-locale en Windows?

Ver también

  • MSDN: Pseudo-Locales
  • MSDN: Uso de Pseudo-Locales para pruebas de localización
  • Blogs de MSDN: Pseudo Locales en Windows Vista Beta 2
  • Blogs de MSDN: uno de mis colegas es el “Pseudo Hombre” (¡una rica fuente de juegos de palabras en una conversación!)
  • Blogs de MSDN: caminando al final del octavo bit

¿Cómo habilito pseudo-locale en Windows?

Inicialmente, los tres pseudo-locales no son visibles en el Panel de control :

Tenga en cuenta que NLS no enumera automáticamente las pseudo-locales ni las expone en la parte de opciones regionales y de idioma del Panel de control. Solo son enumerables si los valores se establecen en el registro.

Usted los habilita agregando algunas claves de registro:

 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Nls\Locale] "00000501"="1" "000009ff"="d" "000005fe"="7" 

Que se puede hacer en RegEdit:

enter image description here

Luego puede ir a Opciones regionales y de idioma en el Panel de control:

enter image description here

y seleccione la pseudo-locale:

enter image description here

Los tres pseudo-locale diferentes son para probar 3 tipos de configuraciones regionales:

Base La qps-ploc regional de qps-ploc se usa para pseudo localizaciones similares a las del inglés. Sus cadenas son versiones más largas de cadenas en inglés, utilizando caracteres no latinos y acentuados en lugar del guión normal. Además, las cadenas latinas simples deben ordenar en orden inverso con esta configuración regional.

qpa-mirr se usa para pseudo datos de derecha a izquierda, que es otra área de interés para las pruebas.

Este asiático qps-asia tiene la intención de utilizar el gran repertorio de caracteres CJK, que también es útil para las pruebas.


Advertencia: no intente cambiar la “configuración regional del sistema” :

enter image description here

a una nueva pseudo-locale:

enter image description here

De lo contrario, después del reinicio:

enter image description here

Windows no podrá iniciarse:

enter image description here

Y la única solución será editar manualmente el registro desde la consola de recuperación ; restaurar la antigua configuración en-US .


Advertencia

El uso de pseudo-locales se usa para encontrar errores de localización en el software. Desafortunadamente, esto también te permitirá encontrar errores en el software de otras personas ; incluyendo Microsoft:

  • SQL Server Management Studio 1 se bloquea cuando se presenta con otras configuraciones regionales ( Microsoft Connect ):

    enter image description here
    enter image description hereenter image description here

  • Microsoft Excel ya no le permitirá ingresar funciones (la coma utilizada para separar los parámetros ya no funciona)

  • Visual Studio ya no le permitirá editar propiedades separadas por comas

  • El diseñador de diagtwigs de SQL Server Management Studio informa un error

  • .NET tiene un error en el formato de fecha y hora, mostrando 22////11////2011 4::::42::::53 P̰̃M]

  • Visor de eventos de Windows:

    enter image description here

  • Progtwigdor de tareas:

    enter image description here

  • SQL Server Management Studio:

    enter image description here

Buena suerte con Microsoft para dogfood su propio producto.

1 10.50.1617.0


Actualización 4 // 10/2012:

Intentando editar las 200 mejores filas de una tabla en SQL Server Management Studio:

enter image description here

Sentencia SQL ejecutada SELECT TOP (200) …
Fuente de error: Microsoft.SqlServer.Management.DataTools
Mensaje de error: Referencia de objeto no establecida en una instancia de un objeto

Se soluciona cambiando el símbolo de signo negativo de -- a - .

También puede cambiar Accept-Languages Internet Explorer para solicitar el qps-ploc :

enter image description here

Puede usar esto para probar que su sitio web es compatible con psuedo-locale y verificar cualquier localización faltante:

enter image description here

Puede ver que me perdí dos bits de texto en este sitio web de muestra.

Parece que en lugar de corregir los errores de localización en .NET, SQL Server, Excel, etc., Microsoft cambió la Pseudo locale en Windows 10 para enmascarar los errores:

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

Puedo entender que no quiero arreglar tus errores, porque eres flojo, es demasiado difícil. Pero deberías haber sido obligado a usar tu vergüenza para que todos lo vean.

En lugar de eso, te escamoteas e intentas ocultar tu falla. Eso es simplemente malo.