cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
BrHartmann
Level 7

/clone_wait breaks install UI localization

I've narrowed this down through some experimentation. I have a pure installscript project which launches some other installation packages - basic MSI projects where a setup.exe launcher was created.

I'm working on localized releases and found that even if I include the language parameter when running these installations from the launcher's installscript (ie. /L1034 for Spanish), the first dialog is translated, but the main progress dialog (where the message "Please wait while Windows configures [ProductName]" shows) will end up in English. When i test the same package by itself from a cmd window, I see the same behavior if I use /clone_wait. If I run it without /clone_wait, all the dialogs get translated correctly.

From prior research awhile back on the forums, it sounded like we need to be using /clone_wait, particularly if the launcher will sometimes be run from a CD. I'm wondering if this is really the case, and perhaps that parameter could/should be dropped so we can get a properly localized installation.
Labels (1)
0 Kudos
5 Replies
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

The clone_wait parameter is used to prevent a setup.exe from exiting if it needs to run from the temp folder (the setup is running from Add/Remove Programs or removable media). This parameter just causes the setup that spawns a temp copy to wait for the temp setup to exit before it exits.

The use of clone_wait shouldn't cause any issues with language support. If the first dialog (such as SdWelcome) shows up with the correct language, then the progress dialog should use the same language. This should be correct since both of these dialogs come from the same resource file (_isres_0xYyyy.dll where Yyyy is a language ID) which won't change while a setup is running. In addition, the default strings displayed on the progress dialog through SdLoadString are loaded from the same resource DLL. (Note that in all cases, the setup will first check for resources in a user resource DLL for the current language (_isuser.dll) before checking in an _isres DLL.)

We've tried reproducing this behavior in a sample project that contains multiple languages and the progress dialog strings are correct for the selected language whether /clone_wait is passed to the setup or not. Have you been able to reproduce this behavior with a sample project? If so, can you attach the sample project to this thread?
0 Kudos
BrHartmann
Level 7

Hi Josh,

Sorry for the delay - I was a bit busy for awhile and had to put this on the back burner. I just put together and tested a sample project with the same 9 languages enabled that my other project had. The sample project just has a script function with a 15 second delay so the evidence of the issue (which still occurs) won't flash by too quickly.

I realized there were a couple details I left out earlier which may or may not explain why the issue didn't occur when you tried to reproduce it:

1 - It's a 32-bit basic MSI project, but I installed on Win7 x64 OS.
2 - I was also supplying the /passive command during install

So, here's the cmd line I used for the sample program (from an Admin-elevated cmd window to avoid UAC prompts):

> CloneWaitLanguageTestInstall.exe /L1036 /V"/passive" /clone_wait

(take away the /clone_wait and it installed properly with French-translated dialogs, include /clone_wait and it reverts to English, including during the subsequent uninstall)

I included my compiled setup exe at the root level of the zipped attached project in case it compiles differently for you and the issue somehow relates to my installer build process.
0 Kudos
BrHartmann
Level 7

I tested further without including the /V"/passive" parameter, and the problem still occurs.
0 Kudos
BrHartmann
Level 7

I also just checked it on a 32-bit Win7 VM, and the problem still occurs, so 32 vs. 64-bit OS does not appear to be a factor at all.
0 Kudos
BrHartmann
Level 7

sorry for the string of posts, but one last clarification --

when I initially referred to "the first dialog", I meant the "Preparing to Install..." dialog, which includes "Extracting: {my msi file}".

You are correct that SdWelcome always matched the language of the later progress dialog. However, when I tested the sample program without /passive (which would have caused the SdWelcome dialog to be skipped), all dialogs from SdWelcome (inclusive) onward were displayed in English rather than my requested language (French, in this case) when /clone_wait was used.
0 Kudos