# HG changeset patch # User Daniel Atallah # Date 1257652387 0 # Node ID 6d6921daf2da10a83ec570b4bfb6c410d9f421a7 # Parent 3c9534e77ea1e30eb3d3a86316293c8d55170bf1 Add the ability to choose which translations are installed. diff -r 3c9534e77ea1 -r 6d6921daf2da Makefile.mingw --- a/Makefile.mingw Mon Nov 02 03:18:15 2009 +0000 +++ b/Makefile.mingw Sun Nov 08 03:53:07 2009 +0000 @@ -72,7 +72,7 @@ #build an expression for `find` to use to ignore the above files EXTERNAL_DLLS_FIND_EXP = $(patsubst %,-o -name %,$(EXTERNAL_DLLS)) -.PHONY: all docs install installer installer_offline installer_zip debug_symbols_zip installers clean uninstall create_release_install_dir $(PIDGIN_REVISION_H) $(PIDGIN_REVISION_RAW_TXT) +.PHONY: all docs install installer installer_offline installer_zip debug_symbols_zip installers clean uninstall create_release_install_dir generate_translations_installer_include $(PIDGIN_REVISION_H) $(PIDGIN_REVISION_RAW_TXT) all: $(PIDGIN_CONFIG_H) $(PIDGIN_REVISION_H) $(MAKE) -C $(PURPLE_TOP) -f $(MINGW_MAKEFILE) @@ -90,18 +90,25 @@ $(MAKE) -C share/ca-certs -f $(MINGW_MAKEFILE) install $(MAKE) -C share/sounds -f $(MINGW_MAKEFILE) install +generate_translations_installer_include: create_release_install_dir + rm -f pidgin/win32/nsis/pidgin-translations.nsh + find $(STRIPPED_RELEASE_DIR)/locale -maxdepth 1 -mindepth 1 \ + -exec basename {} ';' \ + | sed -e s/^/\!insertmacro\ LANG_SECTION\ \"/ -e s/$$/\"/ \ + > pidgin/win32/nsis/pidgin-translations.nsh + create_release_install_dir: install rm -rf $(STRIPPED_RELEASE_DIR) cp -R $(PIDGIN_INSTALL_DIR) $(STRIPPED_RELEASE_DIR) find $(STRIPPED_RELEASE_DIR) \( -name '*.dll' -o -name '*.exe' \) \ - -not \( -false $(EXTERNAL_DLLS_FIND_EXP) \) -exec $(STRIP) --strip-unneeded {} ';' + -not \( -false $(EXTERNAL_DLLS_FIND_EXP) \) \ + -exec $(STRIP) --strip-unneeded {} ';' -installer: create_release_install_dir - +installer: create_release_install_dir generate_translations_installer_include $(MAKENSIS) $(MAKENSISOPT)V3 $(MAKENSISOPT)DPIDGIN_VERSION="$(PIDGIN_VERSION)" $(MAKENSISOPT)DPIDGIN_PRODUCT_VERSION="$(PIDGIN_PRODUCT_VERSION)" $(MAKENSISOPT)DPIDGIN_INSTALL_DIR="$(STRIPPED_RELEASE_DIR)" $(MAKENSISOPT)DGTK_INSTALL_VERSION="$(GTK_INSTALL_VERSION)" pidgin/win32/nsis/pidgin-installer.nsi mv pidgin/win32/nsis/pidgin-$(PIDGIN_VERSION).exe ./ -installer_offline: create_release_install_dir debug_symbols_zip +installer_offline: create_release_install_dir generate_translations_installer_include debug_symbols_zip $(MAKENSIS) $(MAKENSISOPT)V3 $(MAKENSISOPT)DPIDGIN_VERSION="$(PIDGIN_VERSION)" $(MAKENSISOPT)DPIDGIN_PRODUCT_VERSION="$(PIDGIN_PRODUCT_VERSION)" $(MAKENSISOPT)DOFFLINE_INSTALLER $(MAKENSISOPT)DPIDGIN_INSTALL_DIR="$(STRIPPED_RELEASE_DIR)" $(MAKENSISOPT)DGTK_INSTALL_VERSION="$(GTK_INSTALL_VERSION)" pidgin/win32/nsis/pidgin-installer.nsi mv pidgin/win32/nsis/pidgin-$(PIDGIN_VERSION)-offline.exe ./ diff -r 3c9534e77ea1 -r 6d6921daf2da pidgin/win32/nsis/pidgin-installer.nsi --- a/pidgin/win32/nsis/pidgin-installer.nsi Mon Nov 02 03:18:15 2009 +0000 +++ b/pidgin/win32/nsis/pidgin-installer.nsi Sun Nov 08 03:53:07 2009 +0000 @@ -35,6 +35,7 @@ !include "Sections.nsh" !include "WinVer.nsh" !include "LogicLib.nsh" +!include "Memento.nsh" !include "FileFunc.nsh" !insertmacro GetParameters @@ -73,6 +74,9 @@ !define ASPELL_REG_KEY "SOFTWARE\Aspell" !define DOWNLOADER_URL "http://pidgin.im/win32/download_redir.php" +!define MEMENTO_REGISTRY_ROOT HKLM +!define MEMENTO_REGISTRY_KEY "${PIDGIN_UNINSTALL_KEY}" + ;-------------------------------- ;Version resource VIProductVersion "${PIDGIN_PRODUCT_VERSION}" @@ -408,7 +412,7 @@ Delete "$INSTDIR\plugins\liboscar.dll" Delete "$INSTDIR\plugins\libjabber.dll" - File /r ..\..\..\${PIDGIN_INSTALL_DIR}\*.* + File /r /x locale ..\..\..\${PIDGIN_INSTALL_DIR}\*.* File "${PIDGIN_INSTALLER_DEPS}\exchndl.dll" ; Check if Perl is installed, if so add it to the AppPaths @@ -494,6 +498,22 @@ SectionGroupEnd ;-------------------------------- +;Translations + +!macro LANG_SECTION lang + ${MementoUnselectedSection} "${lang}" SecLang_${lang} + SetOutPath "$INSTDIR\locale\${lang}\LC_MESSAGES" + File /oname=pidgin.mo "..\..\..\${PIDGIN_INSTALL_DIR}\locale\${lang}\LC_MESSAGES\pidgin.mo" + SetOutPath "$INSTDIR" + ${MementoSectionEnd} +!macroend +SectionGroup $(TRANSLATIONS_SECTION_TITLE) SecTranslations + # pidgin-translations is generated based on the contents of the locale directory + !include "pidgin-translations.nsh" +SectionGroupEnd +${MementoSectionDone} + +;-------------------------------- ;Spell Checking SectionGroup /e $(PIDGIN_SPELLCHECK_SECTION_TITLE) SecSpellCheck @@ -1199,6 +1219,8 @@ DeleteRegValue HKCU "${OLD_GAIM_REG_KEY}" "Installer Language" WriteRegStr HKCU "${PIDGIN_REG_KEY}" "Installer Language" "$R0" + ${MementoSectionRestore} + !insertmacro SetSectionFlag ${SecSpellCheck} ${SF_RO} !insertmacro UnselectSection ${SecSpellCheck} @@ -1310,6 +1332,13 @@ Pop $R0 FunctionEnd +Function .onInstSuccess + + ${MementoSectionSave} + +FunctionEnd + + Function un.onInit Call un.RunCheck