Walking off the end of the eighth bit

by Michael S. Kaplan, published on 2006/08/16 15:06 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2006/08/16/702877.aspx


My recent post Keyboard UI in setup hoist by its own petard?, or more specifically one of the screenshots in that post, caused dmanchester to ask:

In that second screenshot of the Vista installation, what's going on with the window title and the "Enter your language..." text? Are those placeholders for yet-to-be-localized text? Does the use of Cyrillic and Greek in the placeholders help confirm fields' Unicode compatibility?

This is of course a pseudo-localized build, which is a great mechanism to find issues without waiting for the localized strings to come back from the folks doing the translation...

There are also many other issues that can be found by extending the principle to locales, which is the point that Shawn raises in his post Pseudo Locales in Windows Vista Beta 2.

Shawn's post links to the MSDN topic that talks about these three locales that you can enable in Vista with a bit of registry tweaking. Though to be honest I would also recommend in addition to the entries documented to be added to HKLM\SYSTEM\CurrentControlSet\Control\Nls\Locale, also adding the entries to the HKLM\SYSTEM\CurrentControlSet\Control\Nls\Language key as well. I'm just saying. :-)

(The reversal of all the latin letters is something I provided the data for, though it was originally Shawn's idea!)

In any case, the MSDN topic mentions without explaining that you can test the "9-bit locale identifiers" [sic]. Some of you may recall when I talked about this issue with Primary Language Identifiers over a year ago in Why do LCIDs skip around so much?, where I pointed out the very real problem that bad app development that is not properly parsing LCIDs can cause.

And these three pseudo locales all have LCIDs that can help testing her, so I heartily recommend trying out these locales in you applications to see how things work for you. There is very little room left in the 8-bit PRIMARYLANGID space, so future versions may start to really expose deep-seated application bugs....

 

This post brought to you by (U+0ea2, a.k.a. LAO LETTER YO)


Ian Boyd on 17 Feb 2010 1:52 PM:

You linked back to this old article, so that makes it fair game!

But what, exactly, would i add to Nls\Language?

reg_sz "501", "l_intl.nls" ?

reg_sz "501", "0409" ?

reg_sz "501", "501" ?

You don't say *why* i would want to add them here, but i assume it's  so they're visible though the control panel. And i can't really test how my application behaves under a different code page until i can select it.

Michael S. Kaplan on 17 Feb 2010 2:39 PM:

They're all fair game!

You want to add them to be the same as all the others. So reg_sz "0501", "l_intl.nls" is what you are looking for....

Michael S. Kaplan on 17 Feb 2010 2:40 PM:

Not doing it could be a very bad idea.


referenced by

2011/04/11 One of my colleagues is the "Pseudo Man" (a rich source of puns in conversation!)

2010/09/30 Office skipped version "13" (makes you wonder what they will do in 2013!)

2010/03/02 Seeing double? You're not drunk; you're just running pseudo! (aka Announcement: Pseudo Day!)

2010/02/16 LOCALE_SDECIMAL? Quite a character! Or two. Or three...

2008/02/21 Why is the separator blue?

2007/07/23 Your LCID sucks

2007/02/04 The name of the song is not 'ps-PS I Love You'

go to newer or older post, or back to index or month or day