# HG changeset patch # User Daniel Atallah # Date 1274239565 0 # Node ID 62f0988c666c51400edc46dfadc8dac78ed0fa20 # Parent 5edd3992f59dd97f4b10cc184467f53d418fd2aa Final piece of getting the installer translations integrated with the regular po files. This is a variation of the instructions at: http://nsis.sourceforge.net/Creating_language_files_and_integrating_with_MUI Using a Perl tool that the gcompris folks wrote. The NSIS LangStrings needed to have the underscores removed because .desktop files variable names may not contain underscores. Currently only translations with >=50% coverage will be present in the installer diff -r 5edd3992f59d -r 62f0988c666c Makefile.am --- a/Makefile.am Wed May 19 02:50:02 2010 +0000 +++ b/Makefile.am Wed May 19 03:26:05 2010 +0000 @@ -77,7 +77,7 @@ if ENABLE_GTK appsdir = $(datadir)/applications -apps_in_files = pidgin.desktop.in +apps_in_files = pidgin.desktop.in pidgin/win32/nsis/nsis_installer.desktop.in apps_DATA = $(apps_in_files:.desktop.in=.desktop) @INTLTOOL_DESKTOP_RULE@ GTK_DIR=pidgin diff -r 5edd3992f59d -r 62f0988c666c Makefile.mingw --- a/Makefile.mingw Wed May 19 02:50:02 2010 +0000 +++ b/Makefile.mingw Wed May 19 03:26:05 2010 +0000 @@ -75,6 +75,8 @@ #build an expression for `find` to use to ignore the above files EXTERNAL_DLLS_FIND_EXP = $(patsubst %,-o -name %,$(EXTERNAL_DLLS)) +include $(PIDGIN_COMMON_RULES) + .PHONY: all docs install installer installer_offline installer_zip debug_symbols_zip installers clean uninstall create_release_install_dir generate_installer_includes $(PIDGIN_REVISION_H) $(PIDGIN_REVISION_RAW_TXT) all: $(PIDGIN_CONFIG_H) $(PIDGIN_REVISION_H) @@ -101,7 +103,7 @@ pidgin/win32/nsis/gtk-runtime-$(GTK_BUNDLE_VERSION).zip: pidgin/win32/nsis/generate_gtk_zip.sh `pwd` -generate_installer_includes: create_release_install_dir pidgin/win32/nsis/gtk-runtime-$(GTK_BUNDLE_VERSION).zip debug_symbols_zip +generate_installer_includes: create_release_install_dir pidgin/win32/nsis/gtk-runtime-$(GTK_BUNDLE_VERSION).zip debug_symbols_zip $(PIDGIN_TREE_TOP)/pidgin/win32/nsis/nsis_translations.desktop rm -f pidgin/win32/nsis/pidgin-translations.nsh pidgin/win32/nsis/pidgin-spellcheck.nsh pidgin/win32/nsis/pidgin-spellcheck-preselect.nsh find $(STRIPPED_RELEASE_DIR)/locale -maxdepth 1 -mindepth 1 \ -exec basename {} ';' \ @@ -119,6 +121,13 @@ -e "s/ \"[^\"]*\"\ \"[^\"]*\"[\t\ ]*$$//" | \ iconv -f utf-8 -t latin1 \ > pidgin/win32/nsis/pidgin-spellcheck-preselect.nsh + #Generate the Installer translations + echo "!define GCOMPRIS_NSIS_INCLUDE_PATH \".\"" > $(PIDGIN_TREE_TOP)/pidgin/win32/nsis/langmacros.nsh + echo "@INSERT_TRANSLATIONS@" >> $(PIDGIN_TREE_TOP)/pidgin/win32/nsis/langmacros.nsh + $(PERL) $(PIDGIN_TREE_TOP)/pidgin/win32/nsis/create_nsis_translations.pl \ + $(PIDGIN_TREE_TOP)/pidgin/win32/nsis/nsis_translations.desktop \ + $(PIDGIN_TREE_TOP)/pidgin/win32/nsis/langmacros.nsh \ + $(PIDGIN_TREE_TOP)/pidgin/win32/nsis/translations create_release_install_dir: install rm -rf $(STRIPPED_RELEASE_DIR) diff -r 5edd3992f59d -r 62f0988c666c libpurple/win32/global.mak --- a/libpurple/win32/global.mak Wed May 19 02:50:02 2010 +0000 +++ b/libpurple/win32/global.mak Wed May 19 03:26:05 2010 +0000 @@ -108,6 +108,7 @@ PERL ?= perl WINDRES ?= windres STRIP ?= strip +INTLTOOL_MERGE ?= $(WIN32_DEV_TOP)/intltool_0.40.4-1_win32/bin/intltool-merge PIDGIN_COMMON_RULES := $(PURPLE_TOP)/win32/rules.mak PIDGIN_COMMON_TARGETS := $(PURPLE_TOP)/win32/targets.mak diff -r 5edd3992f59d -r 62f0988c666c libpurple/win32/rules.mak --- a/libpurple/win32/rules.mak Wed May 19 02:50:02 2010 +0000 +++ b/libpurple/win32/rules.mak Wed May 19 03:26:05 2010 +0000 @@ -8,3 +8,6 @@ %.o: %.rc $(WINDRES) -I$(PURPLE_TOP) -i $< -o $@ + +%.desktop: %.desktop.in $(wildcard $(PIDGIN_TREE_TOP)/po/*.po) + LC_ALL=C $(PERL) $(INTLTOOL_MERGE) -d -u -c $(PIDGIN_TREE_TOP)/po/.intltool-merge-cache $(PIDGIN_TREE_TOP)/po $< $@ diff -r 5edd3992f59d -r 62f0988c666c pidgin/Makefile.am --- a/pidgin/Makefile.am Wed May 19 02:50:02 2010 +0000 +++ b/pidgin/Makefile.am Wed May 19 03:26:05 2010 +0000 @@ -28,43 +28,8 @@ win32/nsis/available.lst \ win32/nsis/pidgin-installer.nsi \ win32/nsis/pidgin-plugin.nsh \ - win32/nsis/langmacros.nsh \ - win32/nsis/translations/afrikaans.nsh \ - win32/nsis/translations/albanian.nsh \ - win32/nsis/translations/arabic.nsh \ - win32/nsis/translations/basque.nsh \ - win32/nsis/translations/bulgarian.nsh \ - win32/nsis/translations/catalan.nsh \ - win32/nsis/translations/czech.nsh \ - win32/nsis/translations/danish.nsh \ - win32/nsis/translations/dutch.nsh \ - win32/nsis/translations/english.nsh \ - win32/nsis/translations/finnish.nsh \ - win32/nsis/translations/french.nsh \ - win32/nsis/translations/german.nsh \ - win32/nsis/translations/hebrew.nsh \ - win32/nsis/translations/hungarian.nsh \ - win32/nsis/translations/italian.nsh \ - win32/nsis/translations/japanese.nsh \ - win32/nsis/translations/korean.nsh \ - win32/nsis/translations/kurdish.nsh \ - win32/nsis/translations/lithuanian.nsh \ - win32/nsis/translations/norwegian.nsh \ - win32/nsis/translations/norwegian_nynorsk.nsh \ - win32/nsis/translations/persian.nsh \ - win32/nsis/translations/polish.nsh \ - win32/nsis/translations/portuguese.nsh \ - win32/nsis/translations/portuguese-br.nsh \ - win32/nsis/translations/romanian.nsh \ - win32/nsis/translations/russian.nsh \ - win32/nsis/translations/serbian-latin.nsh \ - win32/nsis/translations/simp-chinese.nsh \ - win32/nsis/translations/slovak.nsh \ - win32/nsis/translations/slovenian.nsh \ - win32/nsis/translations/spanish.nsh \ - win32/nsis/translations/swedish.nsh \ - win32/nsis/translations/trad-chinese.nsh \ - win32/nsis/translations/vietnamese.nsh + win32/nsis/create_nsis_translations.pl \ + win32/nsis/nsis_translations.desktop.in if ENABLE_GTK diff -r 5edd3992f59d -r 62f0988c666c pidgin/win32/nsis/create_nsis_translations.pl --- a/pidgin/win32/nsis/create_nsis_translations.pl Wed May 19 02:50:02 2010 +0000 +++ b/pidgin/win32/nsis/create_nsis_translations.pl Wed May 19 03:26:05 2010 +0000 @@ -288,6 +288,18 @@ " \"ENGLISH\"". " \"\${GCOMPRIS_NSIS_INCLUDE_PATH}\\translations\\en.nsh\"\n"; +my $selectTranslationFunction = ' +!macro SELECT_TRANSLATION_SECTION LANG_NAME LANG_CODE + StrCmp "$LANGUAGE" "${LANG_${LANG_NAME}}" 0 end_${LANG_CODE} + !insertmacro SelectSection ${SecLang_${LANG_CODE}} + Goto done + end_${LANG_CODE}: +!macroend +; Convert the current $LANGUAGE to a language code that we can use for translation mo selection +; If there\'s a better way to do this, I\'d love to know it +!macro SELECT_TRANSLATION_FUNCTION +'; + # # Two pass are needed: # - create the utf8 file @@ -331,9 +343,11 @@ $gcomprisLanguages .= " !insertmacro GCOMPRIS_MACRO_INCLUDE_LANGFILE". " \"". uc($localeNames{$lang}[0]) . "\"". " \"\${GCOMPRIS_NSIS_INCLUDE_PATH}\\translations\\$lang.nsh\"\n"; + $selectTranslationFunction .= " !insertmacro SELECT_TRANSLATION_SECTION". + " \"" . uc($localeNames{$lang}[0]) . "\" \"$lang\"\n"; } else { print "Ignoring language $lang because it is less than 50% translated ($found_key_count of $total_key_count).\n"; - continue; + next; } @@ -347,6 +361,11 @@ } +$selectTranslationFunction .= ' +done: +!macroend +'; + # We have all the data, let's replace it my $gcomprisInstaller; open (MYFILE, $installer); @@ -356,6 +375,7 @@ print "Processing \@INSERT_TRANSLATIONS\@\n"; $gcomprisInstaller .= $muiLanguages; $gcomprisInstaller .= $gcomprisLanguages; + $gcomprisInstaller .= $selectTranslationFunction; } else { diff -r 5edd3992f59d -r 62f0988c666c pidgin/win32/nsis/langmacros.nsh --- a/pidgin/win32/nsis/langmacros.nsh Wed May 19 02:50:02 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -;; -;; Windows Pidgin NSIS installer language macros -;; - -!macro PIDGIN_MACRO_DEFAULT_STRING LABEL VALUE - !ifndef "${LABEL}" - !define "${LABEL}" "${VALUE}" - !ifdef INSERT_DEFAULT - !warning "${LANG} lang file missing ${LABEL}, using default..." - !endif - !endif -!macroend - -!macro PIDGIN_MACRO_LANGSTRING_INSERT LABEL LANG - LangString "${LABEL}" "${LANG_${LANG}}" "${${LABEL}}" - !undef "${LABEL}" -!macroend - -!macro PIDGIN_MACRO_LANGUAGEFILE_BEGIN LANG - !define CUR_LANG "${LANG}" -!macroend - -!macro PIDGIN_MACRO_LANGUAGEFILE_END - !define INSERT_DEFAULT - !include "${PIDGIN_DEFAULT_LANGFILE}" - !undef INSERT_DEFAULT - - ; Pidgin Language file Version 3 - ; String labels should match those from the default language file. - - ; Startup checks - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT INSTALLER_IS_RUNNING ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_IS_RUNNING ${CUR_LANG} - - ; License Page - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_LICENSE_BUTTON ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_LICENSE_BOTTOM_TEXT ${CUR_LANG} - - ; Components Page - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_SECTION_TITLE ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT GTK_SECTION_TITLE ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_SHORTCUTS_SECTION_TITLE ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_SECTION_DESCRIPTION ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT GTK_SECTION_DESCRIPTION ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_SHORTCUTS_SECTION_DESCRIPTION ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_DESKTOP_SHORTCUT_DESC ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_STARTMENU_SHORTCUT_DESC ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT DEBUG_SYMBOLS_SECTION_TITLE ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT TRANSLATIONS_SECTION_TITLE ${CUR_LANG} - - ; Installer Finish Page - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_FINISH_VISIT_WEB_SITE ${CUR_LANG} - - ; Pidgin Section Prompts and Texts - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL ${CUR_LANG} - - ; URI Handler section - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT URI_HANDLERS_SECTION_TITLE ${CUR_LANG} - - ; Uninstall Section Prompts - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT un.PIDGIN_UNINSTALL_ERROR_1 ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT un.PIDGIN_UNINSTALL_ERROR_2 ${CUR_LANG} - - ; Spellcheck Section Prompts - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_SPELLCHECK_SECTION_TITLE ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_SPELLCHECK_ERROR ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_SPELLCHECK_SECTION_DESCRIPTION ${CUR_LANG} - - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_DEBUGSYMBOLS_ERROR ${CUR_LANG} - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_GTK_DOWNLOAD_ERROR ${CUR_LANG} - - !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_PROMPT_FORCE_NO_GTK ${CUR_LANG} - - !undef CUR_LANG -!macroend - -!macro PIDGIN_MACRO_INCLUDE_LANGFILE LANG FILE - !insertmacro PIDGIN_MACRO_LANGUAGEFILE_BEGIN "${LANG}" - !include "${FILE}" - !insertmacro PIDGIN_MACRO_LANGUAGEFILE_END -!macroend diff -r 5edd3992f59d -r 62f0988c666c pidgin/win32/nsis/nsis_translations.desktop.in --- a/pidgin/win32/nsis/nsis_translations.desktop.in Wed May 19 02:50:02 2010 +0000 +++ b/pidgin/win32/nsis/nsis_translations.desktop.in Wed May 19 03:26:05 2010 +0000 @@ -1,50 +1,50 @@ [Desktop Entry] Encoding=UTF-8 -_INSTALLER_IS_RUNNING=The installer is already running. -_PIDGIN_IS_RUNNING=An instance of Pidgin is currently running. Please exit Pidgin and try again. +_INSTALLERISRUNNING=The installer is already running. +_PIDGINISRUNNING=An instance of Pidgin is currently running. Please exit Pidgin and try again. # License Page -_PIDGIN_LICENSE_BUTTON=Next > -_PIDGIN_LICENSE_BOTTOM_TEXT=$(^Name) is released under the GNU General Public License (GPL). The license is provided here for information purposes only. $_CLICK +_PIDGINLICENSEBUTTON=Next > +_PIDGINLICENSEBOTTOMTEXT=$(^Name) is released under the GNU General Public License (GPL). The license is provided here for information purposes only. $_CLICK # Components Page -_PIDGIN_SECTION_TITLE=Pidgin Instant Messaging Client (required) -_GTK_SECTION_TITLE=GTK+ Runtime (required if not present) -_PIDGIN_SHORTCUTS_SECTION_TITLE=Shortcuts -_PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE=Desktop -_PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE=Start Menu -_TRANSLATIONS_SECTION_TITLE=Localizations -_PIDGIN_SECTION_DESCRIPTION=Core Pidgin files and dlls -_GTK_SECTION_DESCRIPTION=A multi-platform GUI toolkit, used by Pidgin +_PIDGINSECTIONTITLE=Pidgin Instant Messaging Client (required) +_GTKSECTIONTITLE=GTK+ Runtime (required if not present) +_PIDGINSHORTCUTSSECTIONTITLE=Shortcuts +_PIDGINDESKTOPSHORTCUTSECTIONTITLE=Desktop +_PIDGINSTARTMENUSHORTCUTSECTIONTITLE=Start Menu +_TRANSLATIONSSECTIONTITLE=Localizations +_PIDGINSECTIONDESCRIPTION=Core Pidgin files and dlls +_GTKSECTIONDESCRIPTION=A multi-platform GUI toolkit, used by Pidgin -_PIDGIN_SHORTCUTS_SECTION_DESCRIPTION=Shortcuts for starting Pidgin -_PIDGIN_DESKTOP_SHORTCUT_DESC=Create a shortcut to Pidgin on the Desktop -_PIDGIN_STARTMENU_SHORTCUT_DESC=Create a Start Menu entry for Pidgin -_DEBUG_SYMBOLS_SECTION_TITLE=Debug Symbols (for reporting crashes) +_PIDGINSHORTCUTSSECTIONDESCRIPTION=Shortcuts for starting Pidgin +_PIDGINDESKTOPSHORTCUTDESC=Create a shortcut to Pidgin on the Desktop +_PIDGINSTARTMENUSHORTCUTDESC=Create a Start Menu entry for Pidgin +_DEBUGSYMBOLSSECTIONTITLE=Debug Symbols (for reporting crashes) # Installer Finish Page -_PIDGIN_FINISH_VISIT_WEB_SITE=Visit the Pidgin Web Page +_PIDGINFINISHVISITWEBSITE=Visit the Pidgin Web Page # Pidgin Section Prompts and Texts -_PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL=Unable to uninstall the currently installed version of Pidgin. The new version will be installed without removing the currently installed version. +_PIDGINPROMPTCONTINUEWITHOUTUNINSTALL=Unable to uninstall the currently installed version of Pidgin. The new version will be installed without removing the currently installed version. # GTK+ Section Prompts -_PIDGIN_PROMPT_FORCE_NO_GTK=Pidgin requires a compatible GTK+ Runtime (which doesn't appear to be already present).$\rAre you sure you want to skip installing the GTK+ Runtime? +_PIDGINPROMPTFORCENOGTK=Pidgin requires a compatible GTK+ Runtime (which doesn't appear to be already present).$\rAre you sure you want to skip installing the GTK+ Runtime? # URL Handler section -_URI_HANDLERS_SECTION_TITLE=URI Handlers +_URIHANDLERSSECTIONTITLE=URI Handlers #Spellcheck Section Prompts -_PIDGIN_SPELLCHECK_SECTION_TITLE=Spellchecking Support -_PIDGIN_SPELLCHECK_ERROR=Error Installing Spellchecking ($R3).$\rIf retrying fails, manual installation instructions are at: http://developer.pidgin.im/wiki/Installing%20Pidgin#manual_win32_spellcheck_installation -_PIDGIN_SPELLCHECK_SECTION_DESCRIPTION=Support for Spellchecking. (Internet connection required for installation) +_PIDGINSPELLCHECKSECTIONTITLE=Spellchecking Support +_PIDGINSPELLCHECKERROR=Error Installing Spellchecking ($R3).$\rIf retrying fails, manual installation instructions are at: http://developer.pidgin.im/wiki/Installing%20Pidgin#manual_win32_spellcheck_installation +_PIDGINSPELLCHECKSECTIONDESCRIPTION=Support for Spellchecking. (Internet connection required for installation) -_PIDGIN_DEBUGSYMBOLS_ERROR=Error Installing Debug Symbols ($R2).$\rIf retrying fails, you may need to use the 'Offline Installer' from http://pidgin.im/download/windows/ . +_PIDGINDEBUGSYMBOLSERROR=Error Installing Debug Symbols ($R2).$\rIf retrying fails, you may need to use the 'Offline Installer' from http://pidgin.im/download/windows/ . -_PIDGIN_GTK_DOWNLOAD_ERROR=Error Downloading the GTK+ Runtime ($R2).$\rThis is required for Pidgin to function; if retrying fails, you may need to use the 'Offline Installer' from http://pidgin.im/download/windows/ . +_PIDGINGTKDOWNLOADERROR=Error Downloading the GTK+ Runtime ($R2).$\rThis is required for Pidgin to function; if retrying fails, you may need to use the 'Offline Installer' from http://pidgin.im/download/windows/ . # Uninstall Section Prompts -_un.PIDGIN_UNINSTALL_ERROR_1=The uninstaller could not find registry entries for Pidgin.$\rIt is likely that another user installed this application. -_un.PIDGIN_UNINSTALL_ERROR_2=You do not have permission to uninstall this application. +_PIDGINUNINSTALLERROR1=The uninstaller could not find registry entries for Pidgin.$\rIt is likely that another user installed this application. +_PIDGINUNINSTALLERROR2=You do not have permission to uninstall this application. diff -r 5edd3992f59d -r 62f0988c666c pidgin/win32/nsis/pidgin-installer.nsi --- a/pidgin/win32/nsis/pidgin-installer.nsi Wed May 19 02:50:02 2010 +0000 +++ b/pidgin/win32/nsis/pidgin-installer.nsi Wed May 19 03:26:05 2010 +0000 @@ -107,8 +107,8 @@ !define MUI_HEADERIMAGE_BITMAP ".\pixmaps\pidgin-header.bmp" ; Alter License section - !define MUI_LICENSEPAGE_BUTTON $(PIDGIN_LICENSE_BUTTON) - !define MUI_LICENSEPAGE_TEXT_BOTTOM $(PIDGIN_LICENSE_BOTTOM_TEXT) + !define MUI_LICENSEPAGE_BUTTON $(PIDGINLICENSEBUTTON) + !define MUI_LICENSEPAGE_TEXT_BOTTOM $(PIDGINLICENSEBOTTOMTEXT) !define MUI_LANGDLL_REGISTRY_ROOT "HKCU" !define MUI_LANGDLL_REGISTRY_KEY ${PIDGIN_REG_KEY} @@ -121,7 +121,7 @@ !define MUI_FINISHPAGE_NOAUTOCLOSE !define MUI_FINISHPAGE_RUN "$INSTDIR\pidgin.exe" !define MUI_FINISHPAGE_RUN_NOTCHECKED - !define MUI_FINISHPAGE_LINK $(PIDGIN_FINISH_VISIT_WEB_SITE) + !define MUI_FINISHPAGE_LINK $(PIDGINFINISHVISITWEBSITE) !define MUI_FINISHPAGE_LINK_LOCATION "http://pidgin.im" ;-------------------------------- @@ -146,90 +146,8 @@ ;-------------------------------- ;Languages - ;; English goes first because its the default. The rest are - ;; in alphabetical order (at least the strings actually displayed - ;; will be). - - !insertmacro MUI_LANGUAGE "English" - - !insertmacro MUI_LANGUAGE "Afrikaans" - !insertmacro MUI_LANGUAGE "Albanian" - !insertmacro MUI_LANGUAGE "Arabic" - !insertmacro MUI_LANGUAGE "Basque" - !insertmacro MUI_LANGUAGE "Bulgarian" - !insertmacro MUI_LANGUAGE "Catalan" - !insertmacro MUI_LANGUAGE "Czech" - !insertmacro MUI_LANGUAGE "Danish" - !insertmacro MUI_LANGUAGE "SimpChinese" - !insertmacro MUI_LANGUAGE "TradChinese" - !insertmacro MUI_LANGUAGE "German" - !insertmacro MUI_LANGUAGE "Spanish" - !insertmacro MUI_LANGUAGE "Farsi" - !insertmacro MUI_LANGUAGE "Finnish" - !insertmacro MUI_LANGUAGE "French" - !insertmacro MUI_LANGUAGE "Hebrew" - !insertmacro MUI_LANGUAGE "Italian" - !insertmacro MUI_LANGUAGE "Japanese" - !insertmacro MUI_LANGUAGE "Korean" - !insertmacro MUI_LANGUAGE "Kurdish" - !insertmacro MUI_LANGUAGE "Lithuanian" - !insertmacro MUI_LANGUAGE "Hungarian" - !insertmacro MUI_LANGUAGE "Dutch" - !insertmacro MUI_LANGUAGE "Norwegian" - !insertmacro MUI_LANGUAGE "NorwegianNynorsk" - !insertmacro MUI_LANGUAGE "Polish" - !insertmacro MUI_LANGUAGE "PortugueseBR" - !insertmacro MUI_LANGUAGE "Portuguese" - !insertmacro MUI_LANGUAGE "Romanian" - !insertmacro MUI_LANGUAGE "Russian" - !insertmacro MUI_LANGUAGE "Serbian" - !insertmacro MUI_LANGUAGE "Slovak" - !insertmacro MUI_LANGUAGE "Slovenian" - !insertmacro MUI_LANGUAGE "Swedish" - -;-------------------------------- -;Translations - - !define PIDGIN_DEFAULT_LANGFILE "${PIDGIN_NSIS_INCLUDE_PATH}\translations\english.nsh" - !include "${PIDGIN_NSIS_INCLUDE_PATH}\langmacros.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "AFRIKAANS" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\afrikaans.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "ALBANIAN" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\albanian.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "ARABIC" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\arabic.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "BASQUE" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\basque.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "BULGARIAN" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\bulgarian.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "CATALAN" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\catalan.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "CZECH" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\czech.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "DANISH" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\danish.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "DUTCH" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\dutch.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "ENGLISH" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\english.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "FARSI" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\persian.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "FINNISH" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\finnish.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "FRENCH" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\french.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "GERMAN" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\german.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "HEBREW" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\hebrew.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "HUNGARIAN" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\hungarian.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "ITALIAN" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\italian.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "JAPANESE" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\japanese.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "KOREAN" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\korean.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "KURDISH" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\kurdish.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "LITHUANIAN" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\lithuanian.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "NORWEGIAN" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\norwegian.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "NORWEGIANNYNORSK" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\norwegian_nynorsk.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "POLISH" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\polish.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "PORTUGUESE" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\portuguese.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "PORTUGUESEBR" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\portuguese-br.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "ROMANIAN" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\romanian.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "RUSSIAN" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\russian.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "SERBIAN" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\serbian-latin.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "SIMPCHINESE" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\simp-chinese.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "SLOVAK" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\slovak.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "SLOVENIAN" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\slovenian.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "SPANISH" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\spanish.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "SWEDISH" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\swedish.nsh" - !insertmacro PIDGIN_MACRO_INCLUDE_LANGFILE "TRADCHINESE" "${PIDGIN_NSIS_INCLUDE_PATH}\translations\trad-chinese.nsh" - ;-------------------------------- ;Reserve Files ; Only need this if using bzip2 compression @@ -324,7 +242,7 @@ uninstall_problem: ; We can't uninstall. Either the user must manually uninstall or we ignore and reinstall over it. - MessageBox MB_OKCANCEL $(PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL) /SD IDOK IDOK done + MessageBox MB_OKCANCEL $(PIDGINPROMPTCONTINUEWITHOUTUNINSTALL) /SD IDOK IDOK done Quit done: SectionEnd @@ -333,7 +251,7 @@ ;-------------------------------- ;GTK+ Runtime Install Section -Section $(GTK_SECTION_TITLE) SecGtk +Section $(GTKSECTIONTITLE) SecGtk InitPluginsDir StrCpy $R1 "$PLUGINSDIR\gtk.zip" @@ -352,7 +270,7 @@ Pop $R0 StrCmp $R0 "cancel" done StrCmp $R0 "success" +2 - MessageBox MB_RETRYCANCEL "$(PIDGIN_GTK_DOWNLOAD_ERROR)" /SD IDCANCEL IDRETRY retry IDCANCEL done + MessageBox MB_RETRYCANCEL "$(PIDGINGTKDOWNLOADERROR)" /SD IDCANCEL IDRETRY retry IDCANCEL done !endif @@ -371,7 +289,7 @@ ;-------------------------------- ;Pidgin Install Section -Section $(PIDGIN_SECTION_TITLE) SecPidgin +Section $(PIDGINSECTIONTITLE) SecPidgin SectionIn 1 RO ; Check install rights.. @@ -470,13 +388,13 @@ ;-------------------------------- ;Shortcuts -SectionGroup /e $(PIDGIN_SHORTCUTS_SECTION_TITLE) SecShortcuts - Section /o $(PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE) SecDesktopShortcut +SectionGroup /e $(PIDGINSHORTCUTSSECTIONTITLE) SecShortcuts + Section /o $(PIDGINDESKTOPSHORTCUTSECTIONTITLE) SecDesktopShortcut SetOverwrite on CreateShortCut "$DESKTOP\Pidgin.lnk" "$INSTDIR\pidgin.exe" SetOverwrite off SectionEnd - Section $(PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE) SecStartMenuShortcut + Section $(PIDGINSTARTMENUSHORTCUTSECTIONTITLE) SecStartMenuShortcut SetOverwrite on CreateShortCut "$SMPROGRAMS\Pidgin.lnk" "$INSTDIR\pidgin.exe" SetOverwrite off @@ -492,7 +410,7 @@ Call RegisterURIHandler SectionEnd !macroend -SectionGroup /e $(URI_HANDLERS_SECTION_TITLE) SecURIHandlers +SectionGroup /e $(URIHANDLERSSECTIONTITLE) SecURIHandlers !insertmacro URI_SECTION "aim" !insertmacro URI_SECTION "msnim" !insertmacro URI_SECTION "myim" @@ -510,7 +428,7 @@ SetOutPath "$INSTDIR" ${MementoSectionEnd} !macroend -SectionGroup $(TRANSLATIONS_SECTION_TITLE) SecTranslations +SectionGroup $(TRANSLATIONSSECTIONTITLE) SecTranslations # pidgin-translations is generated based on the contents of the locale directory !include "pidgin-translations.nsh" SectionGroupEnd @@ -526,11 +444,11 @@ Call InstallDict SectionEnd !macroend -SectionGroup $(PIDGIN_SPELLCHECK_SECTION_TITLE) SecSpellCheck +SectionGroup $(PIDGINSPELLCHECKSECTIONTITLE) SecSpellCheck !include "pidgin-spellcheck.nsh" SectionGroupEnd -Section /o $(DEBUG_SYMBOLS_SECTION_TITLE) SecDebugSymbols +Section /o $(DEBUGSYMBOLSSECTIONTITLE) SecDebugSymbols InitPluginsDir StrCpy $R1 "$PLUGINSDIR\dbgsym.zip" @@ -549,7 +467,7 @@ Pop $R0 StrCmp $R0 "cancel" done StrCmp $R0 "success" +2 - MessageBox MB_RETRYCANCEL "$(PIDGIN_DEBUGSYMBOLS_ERROR)" /SD IDCANCEL IDRETRY retry IDCANCEL done + MessageBox MB_RETRYCANCEL "$(PIDGINDEBUGSYMBOLSERROR)" /SD IDCANCEL IDRETRY retry IDCANCEL done !endif @@ -750,11 +668,11 @@ Goto done cant_uninstall: - MessageBox MB_OK $(un.PIDGIN_UNINSTALL_ERROR_1) /SD IDOK + MessageBox MB_OK $(PIDGINUNINSTALLERROR1) /SD IDOK Quit no_rights: - MessageBox MB_OK $(un.PIDGIN_UNINSTALL_ERROR_2) /SD IDOK + MessageBox MB_OK $(PIDGINUNINSTALLERROR2) /SD IDOK Quit done: @@ -764,19 +682,19 @@ ;Descriptions !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN !insertmacro MUI_DESCRIPTION_TEXT ${SecPidgin} \ - $(PIDGIN_SECTION_DESCRIPTION) + $(PIDGINSECTIONDESCRIPTION) !insertmacro MUI_DESCRIPTION_TEXT ${SecGtk} \ - $(GTK_SECTION_DESCRIPTION) + $(GTKSECTIONDESCRIPTION) !insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} \ - $(PIDGIN_SHORTCUTS_SECTION_DESCRIPTION) + $(PIDGINSHORTCUTSSECTIONDESCRIPTION) !insertmacro MUI_DESCRIPTION_TEXT ${SecDesktopShortcut} \ - $(PIDGIN_DESKTOP_SHORTCUT_DESC) + $(PIDGINDESKTOPSHORTCUTDESC) !insertmacro MUI_DESCRIPTION_TEXT ${SecStartMenuShortcut} \ - $(PIDGIN_STARTMENU_SHORTCUT_DESC) + $(PIDGINSTARTMENUSHORTCUTDESC) !insertmacro MUI_DESCRIPTION_TEXT ${SecSpellCheck} \ - $(PIDGIN_SPELLCHECK_SECTION_DESCRIPTION) + $(PIDGINSPELLCHECKSECTIONDESCRIPTION) !insertmacro MUI_FUNCTION_DESCRIPTION_END @@ -1068,7 +986,7 @@ System::Call 'kernel32::CreateMutexA(i 0, i 0, t "pidgin_is_running") i .R1 ?e' Pop $R0 IntCmp $R0 0 +3 ;This could check for ERROR_ALREADY_EXISTS(183), but lets just assume - MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION $(PIDGIN_IS_RUNNING) /SD IDCANCEL IDRETRY retry_runcheck + MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION $(PIDGINISRUNNING) /SD IDCANCEL IDRETRY retry_runcheck Abort ; Close the Handle (If we don't do this, the uninstaller called from within will fail) @@ -1098,7 +1016,7 @@ System::Call 'kernel32::CreateMutexA(i 0, i 0, t "pidgin_installer_running") i .R1 ?e' Pop $R0 IntCmp $R0 0 +3 ;This could check for ERROR_ALREADY_EXISTS(183), but lets just assume - MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION $(INSTALLER_IS_RUNNING) /SD IDCANCEL IDRETRY retry_runcheck + MessageBox MB_RETRYCANCEL|MB_ICONEXCLAMATION $(INSTALLERISRUNNING) /SD IDCANCEL IDRETRY retry_runcheck Abort ; Allow installer to run even if pidgin is running via "/NOPIDGINRUNCHECK=1" @@ -1289,129 +1207,17 @@ StrCmp $WARNED_GTK_STATE "1" done IntCmp $CURRENT_GTK_STATE 1 done done 0 StrCpy $WARNED_GTK_STATE "1" - MessageBox MB_YESNO $(PIDGIN_PROMPT_FORCE_NO_GTK) /SD IDNO IDYES done + MessageBox MB_YESNO $(PIDGINPROMPTFORCENOGTK) /SD IDNO IDYES done !insertmacro SelectSection ${SecGtk} done: Pop $R0 FunctionEnd - -; Convert the current $LANGUAGE to a language code that we can use for translation mo selection -; If there's a better way to do this, I'd love to know it Function SelectTranslationForCurrentLanguage - - StrCmp "$LANGUAGE" "1078" 0 sq - !insertmacro SelectSection ${SecLang_af} - Goto done - sq: StrCmp "$LANGUAGE" "1052" 0 ar - !insertmacro SelectSection ${SecLang_sq} - Goto done - ar: StrCmp "$LANGUAGE" "1025" 0 eu - !insertmacro SelectSection ${SecLang_ar} - Goto done - eu: StrCmp "$LANGUAGE" "1069" 0 bg - !insertmacro SelectSection ${SecLang_eu} - Goto done - bg: StrCmp "$LANGUAGE" "1026" 0 ca - !insertmacro SelectSection ${SecLang_bg} - Goto done - ca: StrCmp "$LANGUAGE" "1027" 0 cs - !insertmacro SelectSection ${SecLang_ca} - Goto done - cs: StrCmp "$LANGUAGE" "1029" 0 da - !insertmacro SelectSection ${SecLang_cs} - Goto done - da: StrCmp "$LANGUAGE" "1030" 0 nl - !insertmacro SelectSection ${SecLang_da} - Goto done - nl: StrCmp "$LANGUAGE" "1043" 0 fa - !insertmacro SelectSection ${SecLang_nl} - Goto done - ;We have several English translations, but we don't have a way of guessing, so we don't choose one - ;en: StrCmp "$LANGUAGE" "1033" 0 +3 - ;!insertmacro SelectSection ${SecLang_en_??} - ;Goto done - fa: StrCmp "$LANGUAGE" "1065" 0 fi - !insertmacro SelectSection ${SecLang_fa} - Goto done - fi: StrCmp "$LANGUAGE" "1035" 0 fr - !insertmacro SelectSection ${SecLang_fi} - Goto done - fr: StrCmp "$LANGUAGE" "1036" 0 de - !insertmacro SelectSection ${SecLang_fr} - Goto done - de: StrCmp "$LANGUAGE" "1031" 0 he - !insertmacro SelectSection ${SecLang_de} - Goto done - he: StrCmp "$LANGUAGE" "1037" 0 hu - !insertmacro SelectSection ${SecLang_he} - Goto done - hu: StrCmp "$LANGUAGE" "1038" 0 it - !insertmacro SelectSection ${SecLang_hu} - Goto done - it: StrCmp "$LANGUAGE" "1040" 0 ja - !insertmacro SelectSection ${SecLang_it} - Goto done - ja: StrCmp "$LANGUAGE" "1041" 0 ko - !insertmacro SelectSection ${SecLang_ja} - Goto done - ko: StrCmp "$LANGUAGE" "1042" 0 ku - !insertmacro SelectSection ${SecLang_ko} - Goto done - ku: StrCmp "$LANGUAGE" "9999" 0 lt - !insertmacro SelectSection ${SecLang_ku} - Goto done - lt: StrCmp "$LANGUAGE" "1063" 0 nb - !insertmacro SelectSection ${SecLang_lt} - Goto done - nb: StrCmp "$LANGUAGE" "1044" 0 nn - !insertmacro SelectSection ${SecLang_nb} - Goto done - nn: StrCmp "$LANGUAGE" "2068" 0 pl - !insertmacro SelectSection ${SecLang_nn} - Goto done - pl: StrCmp "$LANGUAGE" "1045" 0 pt - !insertmacro SelectSection ${SecLang_pl} - Goto done - pt: StrCmp "$LANGUAGE" "2070" 0 pt_BR - !insertmacro SelectSection ${SecLang_pt} - Goto done - pt_BR: StrCmp "$LANGUAGE" "1046" 0 ro - !insertmacro SelectSection ${SecLang_pt_BR} - Goto done - ro: StrCmp "$LANGUAGE" "1048" 0 ru - !insertmacro SelectSection ${SecLang_ro} - Goto done - ru: StrCmp "$LANGUAGE" "1049" 0 sr - !insertmacro SelectSection ${SecLang_ru} - Goto done - sr: StrCmp "$LANGUAGE" "3098" 0 zh_CN - !insertmacro SelectSection ${SecLang_sr} - Goto done - zh_CN: StrCmp "$LANGUAGE" "2052" 0 sk - !insertmacro SelectSection ${SecLang_zh_CN} - Goto done - sk: StrCmp "$LANGUAGE" "1051" 0 sl - !insertmacro SelectSection ${SecLang_sk} - Goto done - sl: StrCmp "$LANGUAGE" "1060" 0 es - !insertmacro SelectSection ${SecLang_sl} - Goto done - es: StrCmp "$LANGUAGE" "1034" 0 sv - !insertmacro SelectSection ${SecLang_es} - Goto done - sv: StrCmp "$LANGUAGE" "1053" 0 zh_TW - !insertmacro SelectSection ${SecLang_sv} - Goto done - zh_TW: StrCmp "$LANGUAGE" "1028" 0 done - !insertmacro SelectSection ${SecLang_zh_TW} - Goto done - - done: +!insertmacro SELECT_TRANSLATION_FUNCTION FunctionEnd - ; SpellChecker Related Functions ;------------------------------- @@ -1465,7 +1271,7 @@ Pop $R4 StrCmp $R4 "cancel" done StrCmp $R4 "success" +3 - MessageBox MB_RETRYCANCEL "$(PIDGIN_SPELLCHECK_ERROR)" /SD IDCANCEL IDRETRY retry IDCANCEL done + MessageBox MB_RETRYCANCEL "$(PIDGINSPELLCHECKERROR)" /SD IDCANCEL IDRETRY retry IDCANCEL done Goto done SetOutPath "$INSTDIR\spellcheck\share\enchant\myspell" nsisunz::UnzipToLog "$R2" "$OUTDIR"