[THIN] Re: how to stream an app with specific regional settings

  • From: Erik Blom <erik.blom@xxxxxxxxxx>
  • To: thin@xxxxxxxxxxxxx
  • Date: Fri, 27 Apr 2007 22:17:46 +0200

Hi Rick,

Thank you for another '110%' answer. I'm gonna try the setlocale utility this weekend. What actually happens is that the application in question checks if 'Dutch - Belgium' is selected in 'Regional and Language Options' > 'Regional Options' tab > 'Standards and Formats' box. This is not the case on our desktop publishing Citrix silo. So to integrate the app into the user's published desktop we had to publish it from a different silo so that we could use separate user profiles, where 'Dutch (Belgium)' is set as the standard.

As all this are merely registry settings, I was hoping to be able to isolate them for this application, to fool it into thinking it runs on a properly configured system. You're probably right that isolation is a no-go here.  Luckily I have the whole weekend to sort this stuff out :-)

Regards,

Erik

Rick Mack wrote:
Hi Erik,
 
Getting the right regional locale can be frustrating because there are a number of mechanisms which come into effect so isolation won't help you here at all.
 
The first is obviously the registry settings under HKCU\Control Panel\International, but these are ignored by default on TS/Citrix and are overridden by a server mechanism that looks at the TS client regional keyboard and uses that to set the session regional locale.
 
This has been a continuing source of frustration for admins in non-US countries that use  a default A4 page size because if you're using a US English keyboard, it'll set your sessional regional locale to match the keyboard locale. The good news is this can be turned off with a reg hack or the following policy snippet:
 
    POLICY "Ignore Remote Client Keyboard Locale"
    KEYNAME "System\CurrentControlSet\Control\Keyboard Layout" 
        PART "Set Server to disregard client keyboard locale" CHECKBOX 
        VALUENAME "IgnoreRemoteKeyboardLayout"
            VALUEON NUMERIC 1
            VALUEOFF NUMERIC 0      
        END PART
    END POLICY ; keyboard locale
 
However in your case there is a public domain utility called setlocale.exe that should let you set the locale to the one you want for the application by running it in the application initialization script. eg
 
With SetLocale you can preset a user's international settings. SetLocale is
designed for loginscripts, but might be used via the commandprompt or
shortcuts.

A keyboard layout name should be derived from the hexadecimal value of the
Language# identifier corresponding to the layout. For example, U.S. English
has a language identifier of 00000409, so the primary U.S. English layout is
named "00000409". Variants of U.S. English layout, such as the Dvorak layout,
are named "00010409," "00020409" and so on. You can manualy select a
different keyboard-layout through Settings | International, and read the
corresponding keyboard-layout-id in HKEY_CURRENT_USER\Keyboard Layout\Substitutes

Example:

  SetLocale 00000413 00020409

  This will set Dutch language using US international keyboard.

Language# Language
-------- ---------------------------
00000436 Afrikaans
0000041c Albanian
00000401 Arabic (Saudi Arabia)
00000801 Arabic (Iraq)
00000c01 Arabic (Egypt)
00001001 Arabic (Libya)
00001401 Arabic (Algeria)
00001801 Arabic (Morocco)
00001c01 Arabic (Tunisia)
00002001 Arabic (Oman)
00002401 Arabic (Yemen)
00002801 Arabic (Syria)
00002c01 Arabic (Jordan)
00003001 Arabic (Lebanon)
00003401 Arabic (Kuwait)
00003801 Arabic (U.A.E.)
00003c01 Arabic (Bahrain)
00004001 Arabic (Qatar)
0000042b Windows 2000 or later: Armenian. This is Unicode only.
0000042c Azeri (Latin)
0000082c Azeri (Cyrillic)
0000042d Basque
00000423 Belarussian
00000402 Bulgarian
00000455 Burmese
00000403 Catalan
00000404 Chinese (Taiwan)
00000804 Chinese (PRC)
00000c04 Chinese (Hong Kong SAR, PRC)
00001004 Chinese (Singapore)
00001404 Windows 98/Me, Windows 2000 or later: Chinese (Macau SAR)
0000041a Croatian
00000405 Czech
00000406 Danish
00000465 Whistler: Divehi. This is Unicode only.
00000413 Dutch (Netherlands)
00000813 Dutch (Belgium)
00000409 English (United States)
00000809 English (United Kingdom)
00000c09 English (Australian)
00001009 English (Canadian)
00001409 English (New Zealand)
00001809 English (Ireland)
00001c09 English (South Africa)
00002009 English (Jamaica)
00002409 English (Caribbean)
00002809 English (Belize)
00002c09 English (Trinidad)
00003009 Windows 98/Me, Windows 2000 or later: English (Zimbabwe)
00003409 Windows 98/Me, Windows 2000 or later: English (Philippines)
00000425 Estonian
00000438 Faeroese
00000429 Farsi
0000040b Finnish
0000040c French (Standard)
0000080c French (Belgian)
00000c0c French (Canadian)
0000100c French (Switzerland)
0000140c French (Luxembourg)
0000180c Windows 98/Me, Windows 2000 or later: French (Monaco)
00000456 Whistler: Galician
00000437 Windows 2000 and later: Georgian. This is Unicode only.
00000407 German (Standard)
00000807 German (Switzerland)
00000c07 German (Austria)
00001007 German (Luxembourg)
00001407 German (Liechtenstein)
00000408 Greek
00000447 Whistler: Gujarati. This is Unicode only.
0000040d Hebrew
00000439 Windows 2000 and later: Hindi. This is Unicode only.
0000040e Hungarian
0000040f Icelandic
00000421 Indonesian
00000410 Italian (Standard)
00000810 Italian (Switzerland)
00000411 Japanese
0000044b Whistler: Kannada. This is Unicode only.
00000860 Kashmiri
0000043f Kazakh
00000457 Windows 2000 and later: Konkani. This is Unicode only.
00000412 Korean
00000812 Windows 95, Windows NT 4.0 only: Korean (Johab)
00000440 Whistler: Kyrgyz.
00000426 Latvian
00000427 Lithuanian
00000827 Windows 98 only: Lithuanian (Classic)
0000042f FYRO Macedonian
0000043e Malay (Malaysian)
0000083e Malay (Brunei Darussalam)
00000458 Manipuri
0000044e Windows 2000 and later: Marathi. This is Unicode only.
00000450 Whistler: Mongolian
00000414 Norwegian (Bokmal)
00000814 Norwegian (Nynorsk)
00000415 Polish
00000416 Portuguese (Brazil)
00000816 Portuguese (Portugal)
00000446 Whistler: Punjabi. This is Unicode only.
00000418 Romanian
00000419 Russian
0000044f Windows 2000 and later: Sanskrit. This is Unicode only.
00000c1a Serbian (Cyrillic)
0000081a Serbian (Latin)
00000459 Sindhi
0000041b Slovak
00000424 Slovenian
0000040a Spanish (Traditional Sort)
0000080a Spanish (Mexican)
00000c0a Spanish (Modern Sort)
0000100a Spanish (Guatemala)
0000140a Spanish (Costa Rica)
0000180a Spanish (Panama)
00001c0a Spanish (Dominican Republic)
0000200a Spanish (Venezuela)
0000240a Spanish (Colombia)
0000280a Spanish (Peru)
00002c0a Spanish (Argentina)
0000300a Spanish (Ecuador)
0000340a Spanish (Chile)
0000380a Spanish (Uruguay)
00003c0a Spanish (Paraguay)
0000400a Spanish (Bolivia)
0000440a Spanish (El Salvador)
0000480a Spanish (Honduras)
00004c0a Spanish (Nicaragua)
0000500a Spanish (Puerto Rico)
00000430 Sutu
00000441 Swahili (Kenya)
0000041d Swedish
0000081d Swedish (Finland)
0000045a Whistler: Syriac. This is Unicode only.
00000449 Windows 2000 and later: Tamil. This is Unicode only.
00000444 Tatar (Tatarstan)
0000044a Whistler: Telugu. This is Unicode only.
0000041e Thai
0000041f Turkish
00000422 Ukrainian
00000420 Windows 98/Me, Windows 2000 or later: Urdu (Pakistan)
00000820 Urdu (India)
00000443 Uzbek (Latin)
00000843 Uzbek (Cyrillic)
0000042a Windows 98/Me, Windows NT 4.0 and later: Vietnamese

regards,
 
Rick
 
--
Ulrich Mack
Commander Australia
 
On 4/26/07, Erik Blom <erik.blom@xxxxxxxxxx> wrote:
Hi all,

We have an application that requires specific regional settings for it
in order to run. We would like to integrate this app into our published
desktop (whose regional settings are different) and tried using
application streaming to do this, but so far without success. The
application always seems to use the regional settings configured in the
users' profile, and not the settings configured in the application
isolation environment.

We tried modifying the streamed application with a pre-launch script
that 'regedits' the needed values in HKCU\Control Panel\International.
These values are indeed written to HKCU\Software\Citrix\RadeCache - what
I presume is the isolation environment in the registry. However, they do
not seem to be used.

Then we modified the streamed applications' AIE rules to make sure that
they really isolate HKCU\Control Panel\International. Still no luck...

Can anybody shed any light on this?

Thanks,

Erik
SBC SITES ONLY GOOGLE SEARCH: http://www.F1U.com
************************************************
For Archives, RSS, to Unsubscribe, Subscribe or
set Digest or Vacation mode use the below link:
//www.freelists.org/list/thin
************************************************

SBC SITES ONLY GOOGLE SEARCH: http://www.F1U.com ************************************************ For Archives, RSS, to Unsubscribe, Subscribe or set Digest or Vacation mode use the below link: //www.freelists.org/list/thin ************************************************

Other related posts: