Archive: MUI with location specific product names


MUI with location specific product names
Hello everyone!

I'm having a problem when i define name as a langstring. ie:

Name "$(PRODUCT_NAME) $(PRODUCT_EDITION)"

The problem is is that Name can only be defined once. Therefore, when you build containing Uninstall source as well you cannot re-define it like:

Name "$(un.PRODUCT_NAME) $(un.PRODUCT_EDITION)"

This causes the uninstall to not detect the "!insertmacro MUI_UNGETLANGUAGE" macro.

I looked through the documentation and the forum and did not find UnName or any other work around. Does anyone know how I can get around this?

Cheers,

ZIMSMS


Which version of NSIS are you using? You don't need the un. prefix for language strings since 2.0b4.


Yeah, I'm using 2.0b4, I guess it's time to try an update. Hopefully I won't have to change too much, I have close to 30 installers that would need updating.

Thanks!


There have not been that many script changes since beta 4.

But beta 3 was the last version with uninstaller specific language strings, beta 4 and later have shared language strings for installer and uninstaller.


Alright, I upgraded to 2.0RC3. The issue still persists. I believe I have an explanation. The Name definition(see above) always starts out in the os specified format since it's a langstring, which is fine. However, if I install as french on an english box the name parameter isn't re-evaluated before the call to MUI_UNGETLANGUAGE, so it's default state is the current os version therefore it doesn't know that it should be looking for the french product name, when evaluating MUI_UNGETLANGUAGE.

so for example during the install:
1. I am on an english OS and choose a french install.
2. The name that gets placed in the add-remove is the french product name, like it should.
3. I perform an uninstall, when it first goes to obtain the installed language it is looking for the english product name, therefore, not finding the french product name, and displaying the language dialog.

Option A: Maybe the MUI_UNGETLANGUAGE should evaluate each of the defined language product names?

Option B: Any ideas on a simple way to resolve this?


So you have the langauge stored in a language specific registry key. That doesn't really make sense does it? I see no reason for a registry key to be language specific, it only causes troubles.