Allow NSIS installer localization

This commit is contained in:
hensm
2020-07-03 02:48:22 +01:00
parent ce7e083ab0
commit cd26f1887b
2 changed files with 44 additions and 13 deletions

View File

@@ -41,3 +41,21 @@ Missing/outdated strings:
* `optionsUserAgentWhitelistRestrictedEnabled`
* `optionsUserAgentWhitelistRestrictedEnabledDescription`
* `optionsOptionRecommended`
### NSIS Installer Localization
If you're comfortable editing and compiling NSIS installer scripts, use the following guide, otherwise just provide translated strings in an issue or PR comment.
To localize Windows installer strings, first add the relevant `MUI_LANGUAGE` macro to the end of the existing list (list of language names can be found [here](https://sourceforge.net/p/nsis/code/HEAD/tree/NSIS/trunk/Contrib/Language%20files/)):
````nsi
!insertmacro MUI_LANGUAGE "German"
````
Then, provide each version of the existing `LangString` commands with that language grouped under the existing strings:
````nsi
LangString MSG__EXAMPLE_STRING1 ${LANG_GERMAN} "Hallo"
LangString MSG__EXAMPLE_STRING2 ${LANG_GERMAN} "Welt"
````
Try to keep the line length under 80 characters by splitting lines within the string with a backslash at the end of the line and a double indent on the next line. To escape characters (like other double quotes), prepend with a `$\`.

View File

@@ -1,8 +1,18 @@
Unicode True
SetCompressor /SOLID LZMA
# Registry keys
!define KEY_MANIFEST "Software\Mozilla\NativeMessagingHosts\{{applicationName}}"
!define KEY_UNINSTALL "Software\Microsoft\Windows\CurrentVersion\Uninstall\{{winRegistryKey}}"
!include MUI2.nsh
# Save installer language for uninstallation
!define MUI_LANGDLL_REGISTRY_ROOT HKLM
!define MUI_LANGDLL_REGISTRY_KEY "${KEY_MANIFEST}"
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
# MUI general
!define MUI_ABORTWARNING
@@ -17,12 +27,18 @@ SetCompressor /SOLID LZMA
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
# Translator note: see CONTRIBUTING for more info on how to
# translate NSIS installer strings.
!insertmacro MUI_LANGUAGE "English"
# Registry keys
!define KEY_MANIFEST "Software\Mozilla\NativeMessagingHosts\{{applicationName}}"
!define KEY_UNINSTALL "Software\Microsoft\Windows\CurrentVersion\Uninstall\{{winRegistryKey}}"
LangString MSG__INSTALL_BONJOUR ${LANG_ENGLISH} \
"Install Bonjour dependency?"
LangString MSG__FIREFOX_OPEN ${LANG_ENGLISH} \
"Firefox must be closed during uninstallation if the extension \
is installed. Close Firefox and click $\"Retry$\", click \
$\"Ignore$\" to force close or $\"Abort$\" to cancel \
uninstallation."
# Application name
@@ -52,12 +68,12 @@ Section
# Install Bonjour
IfFileExists "$SYSDIR\dnssd.dll" skipInstallBonjour
MessageBox MB_YESNO \
"Install Bonjour dependency?" \
IDNO skipInstallBonjour
MessageBox MB_YESNO \
$(MSG__INSTALL_BONJOUR) \
IDNO skipInstallBonjour
File /oname=Bonjour64.msi "C:\Program Files\Bonjour SDK\Installer\Bonjour64.msi"
ExecWait "msiexec /i $\"$INSTDIR\Bonjour64.msi$\""
File /oname=Bonjour64.msi "C:\Program Files\Bonjour SDK\Installer\Bonjour64.msi"
ExecWait "msiexec /i $\"$INSTDIR\Bonjour64.msi$\""
skipInstallBonjour:
Delete "$INSTDIR\Bonjour64.msi"
@@ -85,10 +101,7 @@ Section "uninstall"
FindWindow $0 "MozillaWindowClass"
StrCmp $0 0 continueUninstall
MessageBox MB_ABORTRETRYIGNORE|MB_ICONEXCLAMATION \
"Firefox must be closed during uninstallation if the extension \
is installed. Close Firefox and click $\"Retry$\", click \
$\"Ignore$\" to force close or $\"Abort$\" to cancel \
uninstallation." \
$(MSG__FIREFOX_OPEN) \
IDABORT abortUninstall \
IDRETRY retryUninstall