Archive: Language support in un-installation


Language support in un-installation
Hi all,

My installer program has fifteen language support, and I want my un-installer to execute in the same language as the language selected during the installation. But I don't want to give the option to choose the language during un-installation.

Can anybody plz help me in this regards.

Regards
Venu


If using the MUI, see MUI_LANGDLL_REGISTRY_ROOT, MUI_LANGDLL_REGISTRY_KEY and MUI_LANGDLL_REGISTRY_VALUENAME in the MUI readme. If not, simply write the language from the installer in the registry and read it in the uninstaller.


Thanks for reply...

I am using MUI, and the syntax I am writing is as :

InstallDir $PROGRAMFILES\MyDevice\Driver
InstallDirRegKey HKCU "Software\MyDevice\Driver" ""

!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
!define MUI_LANGDLL_REGISTRY_KEY "Software\MyDevice\Driver"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"

.........

Once my installer successful installs the driver, next time installer doesn't prompt for language selection and the installation wizard always comes in the language selected during the first successful installation. But the un-installer always comes in default english language.

Why my uninstaller doesnot read the registry for selecting language selected during installation.

Thanks in advance....

Regards
Venu


Did you insert the MUI_UNGETLANGUAGE macro in un.onInit? See Examples\Modern UI\MultiLanguage.nsi for a full example.


Thanks.... Actually my script didn't have un.onInit function.... After defining un.onInit function.... Its working very fine.

Thanks a lot...

Regards
Venu


Hi all,

Now after defining "MUI_UNGETLANGUAGE" in un.onInit, the un-installer takes the language selected during the installation.

But once I start the installation and even the installer succeeds or fails, next time when I execute the installer, my installer doesnot prompt for the language selection.

I tried to solve this by deleting the registry key "HKCU "Software\MyDevice\Driver" 'installerLanguage' in .onInit function but it always delets the key even next time the installation is not successful and due to this my previous successfull installation prompts for language selection during the un-installation.

Can anyone tell me how to always prompt for language selection whenever a user starts the installation, without delecting the registry key.

Thanks in advance.
Venu


I don't understand...why don't you just delete the language key as the last thing you do in the uninstall process?

Why would you *want* to delete the key in the .oninit of the install rather than at any point in the uninstall?


Thanks for reply,

I am deleting the registry key "HKCU "Software\MyDevice\Driver" so that if last installation was unsuccessfull, the next installation should again prompt for the language selection.
Otherwise if I don't delete that key, than the next installation never prompts for the language selection.

can any one tell me is there any way to prompts every time for language selection.

Thanks
Venu


I'll update the Modern UI so that it will only save the language when the installation was succesful.


Thanks for reply.
So it is a limitation of NSIS.

Regards
Venu


Not really a limitation, but this makes it easier.

The Modern UI has already been
updated, try the latest CVS version.