summaryrefslogtreecommitdiff
path: root/pidgin/win32
diff options
context:
space:
mode:
authorPaul Aurich <darkrain42@pidgin.im>2010-02-04 05:30:35 +0000
committerPaul Aurich <darkrain42@pidgin.im>2010-02-04 05:30:35 +0000
commite328463639b280c3e86922fcb5c80f05fdd24e7e (patch)
treebaafb0a4a6a9642994f8f00905d41036d665a8e7 /pidgin/win32
parenta3280b5063de133ec50d859ab98a2a73fdfa46c1 (diff)
parent57c5e125284e2083fbbcebb0c8857e94d883e112 (diff)
downloadpidgin-e328463639b280c3e86922fcb5c80f05fdd24e7e.tar.gz
propagate from branch 'im.pidgin.pidgin' (head 3180b88b4c1b8e73c22589457b99d2c1b6096bf4)
to branch 'im.pidgin.pidgin.next.minor' (head 1507ce18860b4a4481751cda84af9a334bfff934)
Diffstat (limited to 'pidgin/win32')
-rw-r--r--pidgin/win32/gtkdocklet-win32.c5
-rw-r--r--pidgin/win32/gtkwin32dep.c78
-rw-r--r--pidgin/win32/nsis/available.lst127
-rw-r--r--pidgin/win32/nsis/langmacros.nsh13
-rw-r--r--pidgin/win32/nsis/pidgin-installer.nsi428
-rw-r--r--pidgin/win32/nsis/translations/afrikaans.nsh5
-rw-r--r--pidgin/win32/nsis/translations/albanian.nsh5
-rw-r--r--pidgin/win32/nsis/translations/arabic.nsh5
-rw-r--r--pidgin/win32/nsis/translations/basque.nsh155
-rw-r--r--pidgin/win32/nsis/translations/bulgarian.nsh6
-rw-r--r--pidgin/win32/nsis/translations/catalan.nsh4
-rw-r--r--pidgin/win32/nsis/translations/czech.nsh5
-rw-r--r--pidgin/win32/nsis/translations/danish.nsh6
-rw-r--r--pidgin/win32/nsis/translations/dutch.nsh4
-rw-r--r--pidgin/win32/nsis/translations/english.nsh9
-rw-r--r--pidgin/win32/nsis/translations/finnish.nsh4
-rw-r--r--pidgin/win32/nsis/translations/french.nsh6
-rw-r--r--pidgin/win32/nsis/translations/galician.nsh4
-rw-r--r--pidgin/win32/nsis/translations/german.nsh159
-rw-r--r--pidgin/win32/nsis/translations/hebrew.nsh161
-rw-r--r--pidgin/win32/nsis/translations/hungarian.nsh5
-rw-r--r--pidgin/win32/nsis/translations/italian.nsh5
-rw-r--r--pidgin/win32/nsis/translations/japanese.nsh4
-rw-r--r--pidgin/win32/nsis/translations/korean.nsh5
-rw-r--r--pidgin/win32/nsis/translations/kurdish.nsh4
-rw-r--r--pidgin/win32/nsis/translations/lithuanian.nsh5
-rw-r--r--pidgin/win32/nsis/translations/norwegian.nsh4
-rw-r--r--pidgin/win32/nsis/translations/persian.nsh5
-rw-r--r--pidgin/win32/nsis/translations/polish.nsh46
-rw-r--r--pidgin/win32/nsis/translations/portuguese-br.nsh6
-rw-r--r--pidgin/win32/nsis/translations/portuguese.nsh4
-rw-r--r--pidgin/win32/nsis/translations/romanian.nsh4
-rw-r--r--pidgin/win32/nsis/translations/russian.nsh6
-rw-r--r--pidgin/win32/nsis/translations/serbian-latin.nsh5
-rw-r--r--pidgin/win32/nsis/translations/simp-chinese.nsh4
-rw-r--r--pidgin/win32/nsis/translations/slovak.nsh4
-rw-r--r--pidgin/win32/nsis/translations/slovenian.nsh5
-rw-r--r--pidgin/win32/nsis/translations/spanish.nsh6
-rw-r--r--pidgin/win32/nsis/translations/swedish.nsh156
-rw-r--r--pidgin/win32/nsis/translations/trad-chinese.nsh5
-rw-r--r--pidgin/win32/nsis/translations/valencian.nsh4
-rw-r--r--pidgin/win32/nsis/translations/vietnamese.nsh6
-rw-r--r--pidgin/win32/untar.c9
-rw-r--r--pidgin/win32/winpidgin.c620
44 files changed, 953 insertions, 1163 deletions
diff --git a/pidgin/win32/gtkdocklet-win32.c b/pidgin/win32/gtkdocklet-win32.c
index 2e4b6400f0..482a14c4bf 100644
--- a/pidgin/win32/gtkdocklet-win32.c
+++ b/pidgin/win32/gtkdocklet-win32.c
@@ -585,12 +585,7 @@ static void winpidgin_tray_create() {
G_CALLBACK(dummy_button_cb), NULL);
image = gtk_image_new();
-#if GLIB_CHECK_VERSION(2,10,0)
g_object_ref_sink(image);
-#else
- g_object_ref(image);
- gtk_object_sink(GTK_OBJECT(image));
-#endif
osinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osinfo);
diff --git a/pidgin/win32/gtkwin32dep.c b/pidgin/win32/gtkwin32dep.c
index 277ac5e859..d94a07f4d3 100644
--- a/pidgin/win32/gtkwin32dep.c
+++ b/pidgin/win32/gtkwin32dep.c
@@ -142,56 +142,33 @@ int winpidgin_gz_untar(const char* filename, const char* destdir) {
void winpidgin_shell_execute(const char *target, const char *verb, const char *clazz) {
+ SHELLEXECUTEINFOW wsinfo;
+ wchar_t *w_uri, *w_verb, *w_clazz = NULL;
+
g_return_if_fail(target != NULL);
g_return_if_fail(verb != NULL);
- if (G_WIN32_HAVE_WIDECHAR_API()) {
- SHELLEXECUTEINFOW wsinfo;
- wchar_t *w_uri, *w_verb, *w_clazz = NULL;
-
- w_uri = g_utf8_to_utf16(target, -1, NULL, NULL, NULL);
- w_verb = g_utf8_to_utf16(verb, -1, NULL, NULL, NULL);
-
- memset(&wsinfo, 0, sizeof(wsinfo));
- wsinfo.cbSize = sizeof(wsinfo);
- wsinfo.lpVerb = w_verb;
- wsinfo.lpFile = w_uri;
- wsinfo.nShow = SW_SHOWNORMAL;
- if (clazz != NULL) {
- w_clazz = g_utf8_to_utf16(clazz, -1, NULL, NULL, NULL);
- wsinfo.fMask |= SEE_MASK_CLASSNAME;
- wsinfo.lpClass = w_clazz;
- }
-
- if(!ShellExecuteExW(&wsinfo))
- purple_debug_error("winpidgin", "Error opening URI: %s error: %d\n",
- target, (int) wsinfo.hInstApp);
-
- g_free(w_uri);
- g_free(w_verb);
- g_free(w_clazz);
- } else {
- SHELLEXECUTEINFOA sinfo;
- gchar *locale_uri;
-
- locale_uri = g_locale_from_utf8(target, -1, NULL, NULL, NULL);
-
- memset(&sinfo, 0, sizeof(sinfo));
- sinfo.cbSize = sizeof(sinfo);
- sinfo.lpVerb = verb;
- sinfo.lpFile = locale_uri;
- sinfo.nShow = SW_SHOWNORMAL;
- if (clazz != NULL) {
- sinfo.fMask |= SEE_MASK_CLASSNAME;
- sinfo.lpClass = clazz;
- }
+ w_uri = g_utf8_to_utf16(target, -1, NULL, NULL, NULL);
+ w_verb = g_utf8_to_utf16(verb, -1, NULL, NULL, NULL);
+
+ memset(&wsinfo, 0, sizeof(wsinfo));
+ wsinfo.cbSize = sizeof(wsinfo);
+ wsinfo.lpVerb = w_verb;
+ wsinfo.lpFile = w_uri;
+ wsinfo.nShow = SW_SHOWNORMAL;
+ if (clazz != NULL) {
+ w_clazz = g_utf8_to_utf16(clazz, -1, NULL, NULL, NULL);
+ wsinfo.fMask |= SEE_MASK_CLASSNAME;
+ wsinfo.lpClass = w_clazz;
+ }
- if(!ShellExecuteExA(&sinfo))
- purple_debug_error("winpidgin", "Error opening URI: %s error: %d\n",
- target, (int) sinfo.hInstApp);
+ if(!ShellExecuteExW(&wsinfo))
+ purple_debug_error("winpidgin", "Error opening URI: %s error: %d\n",
+ target, (int) wsinfo.hInstApp);
- g_free(locale_uri);
- }
+ g_free(w_uri);
+ g_free(w_verb);
+ g_free(w_clazz);
}
@@ -406,6 +383,7 @@ winpidgin_conv_im_blink(PurpleAccount *account, const char *who, char **message,
}
void winpidgin_init(HINSTANCE hint) {
+ FARPROC exchndl_SetLogFile;
purple_debug_info("winpidgin", "winpidgin_init start\n");
@@ -423,6 +401,16 @@ void winpidgin_init(HINSTANCE hint) {
MyFlashWindowEx = (LPFNFLASHWINDOWEX) wpurple_find_and_loadproc("user32.dll", "FlashWindowEx");
+ exchndl_SetLogFile = wpurple_find_and_loadproc("exchndl.dll", "SetLogFile");
+ if (exchndl_SetLogFile) {
+ gchar *filename = g_build_filename(purple_user_dir(),
+ "pidgin.RPT", NULL);
+ purple_debug_info("winpidgin", "Setting exchndl.dll LogFile to %s\n",
+ filename);
+ (exchndl_SetLogFile)(filename);
+ g_free(filename);
+ }
+
purple_debug_info("winpidgin", "winpidgin_init end\n");
}
diff --git a/pidgin/win32/nsis/available.lst b/pidgin/win32/nsis/available.lst
new file mode 100644
index 0000000000..57ac1e2370
--- /dev/null
+++ b/pidgin/win32/nsis/available.lst
@@ -0,0 +1,127 @@
+#This file is from ftp://ftp.services.openoffice.org/pub/OpenOffice.org/contrib/dictionaries/available.lst
+af,ZA,af_ZA,Afrikaans (South Africa),af_ZA.zip
+ak,GH,ak_GH,Akan (Ghana),ak_GH.zip
+sq,AL,sq_AL,Albanian (Albania),sq_AL.zip
+bg,BG,bg_BG,Bulgarian (Bulgaria),bg_BG.zip
+ca,ES,ca_ES,Catalan (Spain),ca_ES.zip
+hr,HR,hr_HR,Croatian (Croatia),hr_HR.zip
+cs,CZ,cs_CZ,Czech (Czech Republic),cs_CZ.zip
+da,DK,da_DK,Danish (Denmark),da_DK.zip
+nl,NL,nl_NL,Dutch (Netherlands),nl_NL.zip
+nl,NL,nl_med,Dutch Medical (Netherlands),nl_med.zip
+nl,BE,nl_NL,Dutch (Belgium),nl_NL.zip
+nl,BE,nl_NL,Dutch Medical (Belgium),nl_NL.zip
+en,AU,en_AU,English (Australia),en_AU.zip
+en,CA,en_CA,English (Canada),en_CA.zip
+en,NZ,en_NZ,English (New Zealand),en_NZ.zip
+en,ZA,en_ZA,English (South Africa),en_ZA.zip
+en,GB,en_GB,English (United Kingdom),en_GB.zip
+en,US,en_US,English (United States),en_US.zip
+cop,EG,cop_EG,Coptic (Egypt),cop_EG.zip
+eo,ANY,eo_l3,Esperanto,eo.zip
+et,EE,et_EE,Estonian (Estonia),et_EE.zip
+fo,FO,fo_FO,Faroese (Faroe Islands),fo_FO.zip
+fr,BE,fr_FR,Français Réforme 1990 & Classique (Belgium),fr_FR_1-3-2.zip
+fr,CA,fr_FR,Français Réforme 1990 & Classique (Canada),fr_FR_1-3-2.zip
+fr,FR,fr_FR,Français Réforme 1990 & Classique (France),fr_FR_1-3-2.zip
+fr,LU,fr_FR,Français Réforme 1990 & Classique (Luxembourg),fr_FR_1-3-2.zip
+fr,MC,fr_FR,Français Réforme 1990 & Classique (Monaco),fr_FR_1-3-2.zip
+fr,CH,fr_FR,Français Réforme 1990 & Classique (Switzerland),fr_FR_1-3-2.zip
+fr,BE,fr_FR-classique,Français Classique (Belgium),fr_FR-classique_1-3-2.zip
+fr,CA,fr_FR-classique,Français Classique (Canada),fr_FR-classique_1-3-2.zip
+fr,FR,fr_FR-classique,Français Classique (France),fr_FR-classique_1-3-2.zip
+fr,LU,fr_FR-classique,Français Classique (Luxembourg),fr_FR-classique_1-3-2.zip
+fr,MC,fr_FR-classique,Français Classique (Monaco),fr_FR-classique_1-3-2.zip
+fr,CH,fr_FR-classique,Français Classique (Switzerland),fr_FR-classique_1-3-2.zip
+fr,BE,fr_FR-1990,Français Réforme 1990 (Belgium),fr_FR-1990_1-3-2.zip
+fr,CA,fr_FR-1990,Français Réforme 1990 (Canada),fr_FR-1990_1-3-2.zip
+fr,FR,fr_FR-1990,Français Réforme 1990 (France),fr_FR-1990_1-3-2.zip
+fr,LU,fr_FR-1990,Français Réforme 1990 (Luxembourg),fr_FR-1990_1-3-2.zip
+fr,MC,fr_FR-1990,Français Réforme 1990 (Monaco),fr_FR-1990_1-3-2.zip
+fr,CH,fr_FR-1990,Français Réforme 1990 (Switzerland),fr_FR-1990_1-3-2.zip
+fy,NL,fy_NL,Frisian (Netherlands),fy_NL.zip
+gl,ES,gl_ES,Galician (Spain),gl_ES.zip
+gsc,FR,gsc_FR,Gascon (France),gsc_FR.zip
+de,AT,de_DE,German (Austria Base),de_DE.zip
+de,AT,de_AT,German (Austria Extension),de_AT.zip
+de,AT,de_AT_frami,German (Austria) neu 08/2006 (frami),de_AT_frami.zip
+de,DE,de_DE,German (Germany),de_DE.zip
+de,DE,de_DE_frami,German (Germany) neu 08/2006 (frami),de_DE_frami.zip
+de,LI,de_CH,German (Liechtenstein),de_CH.zip
+de,LI,de_CH_frami,German (Liechtenstein) neu 08/2006 (frami),de_CH_frami.zip
+de,LU,de_DE,German (Luxembourg),de_DE.zip
+de,LU,de_DE_frami,German (Luxembourg) neu 08/2006 (frami),de_DE_frami.zip
+de,CH,de_CH,German (Switzerland),de_CH.zip
+de,CT,de_CH_frami,German (Switzerland) neu 08/2006 (frami),de_CH_frami.zip
+el,GR,el_GR,Greek (Greece),el_GR.zip
+gu,IN,gu_IN,Gujarati (India),gu_IN.zip
+gd,GB,gd_GB,Scots Gaelic (Scotland),gd_GB.zip
+he,IL,he_IL,Hebrew (Israel),he_IL.zip
+hil,PH,hil_PH,Hiligaynon (Philippines),hil_PH.zip
+hu,HU,hu_HU,Hungarian (Hungary),hu_HU.zip
+hu,HU,hu_HU_comb,Hungarian (Hungary) collected compounds,hu_HU_comb.zip
+id,ID,id_ID,Indonesian (Indonesia),id_ID.zip
+ia,ANY,ia_ANY,Interlingua (ANY locale),ia_ANY.zip
+ga,IE,ga_IE,Irish (Ireland),ga_IE.zip
+it,IT,it_IT,Italian (Italy),it_IT.zip
+it,CH,it_IT,Italian (Switzerland),it_IT.zip
+sw,KE,sw_KE,Kiswahili (Africa),sw_KE.zip
+lv,LV,lv_LV,Latvian (Latvia),lv_LV.zip
+ku,TR,ku_TR,Kurdish (Turkey),ku_TR.zip
+ku,TR,ku_TR,Kurdish (Syria),ku_TR.zip
+it,IT,la,Latin (for x-register),la.zip
+lt,LT,lt_LT,Lithuanian (Lithuania),lt_LT.zip
+mk,MK,mk_MK,Macedonian (Macedonia),mk_MK.zip
+ms,MY,ms_MY,Malay (Malaysia),ms_MY.zip
+mi,NZ,mi_NZ,Maori (New Zealand),mi_NZ.zip
+mr,IN,mr_IN,Marathi (India),mr_IN.zip
+mos,BF,mos_BF,Moore,ms_BF.zip
+nr,ZA,nr_ZA,Ndebele (South Africa),nr_ZA.zip
+ne,NP,ne_NP,Nepali (Nepal),ne_NP.zip
+ns,ZA,ns_ZA,Northern Sotho (South Africa),ns_ZA.zip
+nb,NO,nb_NO,Norwegian Bokmaal (Norway),nb_NO.zip
+nn,NO,nn_NO,Norwegian Nynorsk (Norway),nn_NO.zip
+oc,FR,oc_FR,Occitan (Languedoc),oc_FR.zip
+pl,PL,pl_PL,Polish (Poland),pl_PL.zip
+pt,BR,pt_BR,Portuguese (Brazil),pt_BR.zip
+pt,PT,pt_PT,Portuguese (Portugal),pt_PT.zip
+ro,RO,ro_RO,Romanian (Romania),ro_RO.zip
+ru,RU,ru_RU,Russian (Russia),ru_RU.zip
+ru,RU,ru_RU_ye,Russian_ye (Russia),ru_RU_ye.zip
+ru,RU,ru_RU_yo,Russian_yo (Russia),ru_RU_yo.zip
+tn,ZA,tn_ZA,Setswana (Africa),tn_ZA.zip
+sk,SK,sk_SK,Slovak (Slovakia),sk_SK.zip
+sl,SI,sl_SI,Slovenian (Slovenia),sl_SI.zip
+st,ZA,st_ZA,Southern Sotho (South Africa),st_ZA.zip
+es,AR,es_AR,Spanish (Argentina),es_AR.zip
+es,BZ,es_HN,Spanish (Belize),es_HN.zip
+es,BO,es_BO,Spanish (Bolivia),es_BO.zip
+es,CL,es_CL,Spanish (Chile),es_CL.zip
+es,CO,es_CO,Spanish (Colombia),es_CO.zip
+es,CR,es_CR,Spanish (Costa Rica),es_CR.zip
+es,CU,es_CU,Spanish (Cuba),es_CU.zip
+es,DO,es_DO,Spanish (Dominican Republic),es_DO.zip
+es,EC,es_EC,Spanish (Ecuador),es_EC.zip
+es,SV,es_SV,Spanish (El Salvador),es_SV.zip
+es,GT,es_GT,Spanish (Guatemala),es_GT.zip
+es,HN,es_HN,Spanish (Honduras),es_HN.zip
+es,MX,es_MX,Spanish (Mexico),es_MX.zip
+es,NI,es_NI,Spanish (Nicaragua),es_NI.zip
+es,PA,es_PA,Spanish (Panama),es_PA.zip
+es,PY,es_PY,Spanish (Paraguay),es_PY.zip
+es,PE,es_PE,Spanish (Peru),es_PE.zip
+es,PR,es_PR,Spanish (Puerto Rico),es_PR.zip
+es,ES,es_ES,Spanish (Spain),es_ES.zip
+es,UY,es_UY,Spanish (Uruguay),es_UY.zip
+es,VE,es_VE,Spanish (Venezuela),es_VE.zip
+ss,ZA,ss_ZA,Swati (South Africa),ss_ZA.zip
+sv,SE,sv_SE,Swedish (Sweden),sv_SE.zip
+ts,ZA,ts_ZA,Tsonga (South Africa),ts_ZA.zip
+uk,UA,uk_UA,Ukrainian (Ukraine),uk_UA.zip
+ur,IN,ur_PK,Urdu (India),ur_PK.zip
+ur,PK,ur_PK,Urdu (Pakistan),ur_PK.zip
+ve,ZA,ve_ZA,Venda (South Africa),ve_ZA.zip
+vi,VN,vi_VN,Vietnamese (Viet-Nam),vi_VN.zip
+cy,GB,cy_GB,Welsh (Wales),cy_GB.zip
+xh,ZA,xh_ZA,Xhosa (South Africa),xh_ZA.zip
+zu,ZA,zu_ZA,Zulu (South Africa),zu_ZA.zip
diff --git a/pidgin/win32/nsis/langmacros.nsh b/pidgin/win32/nsis/langmacros.nsh
index c12076b150..5c3696c73a 100644
--- a/pidgin/win32/nsis/langmacros.nsh
+++ b/pidgin/win32/nsis/langmacros.nsh
@@ -31,7 +31,6 @@
; Startup checks
!insertmacro PIDGIN_MACRO_LANGSTRING_INSERT INSTALLER_IS_RUNNING ${CUR_LANG}
!insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_IS_RUNNING ${CUR_LANG}
- !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT GTK_INSTALLER_NEEDED ${CUR_LANG}
; License Page
!insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_LICENSE_BUTTON ${CUR_LANG}
@@ -48,10 +47,7 @@
!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}
-
- ; GTK+ Directory Page
- !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT GTK_UPGRADE_PROMPT ${CUR_LANG}
- !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT GTK_WINDOWS_INCOMPATIBLE ${CUR_LANG}
+ !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT DEBUG_SYMBOLS_SECTION_TITLE ${CUR_LANG}
; Installer Finish Page
!insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_FINISH_VISIT_WEB_SITE ${CUR_LANG}
@@ -59,10 +55,6 @@
; Pidgin Section Prompts and Texts
!insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL ${CUR_LANG}
- ; GTK+ Section Prompts
- !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT GTK_INSTALL_ERROR ${CUR_LANG}
- !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT GTK_BAD_INSTALL_PATH ${CUR_LANG}
-
; URI Handler section
!insertmacro PIDGIN_MACRO_LANGSTRING_INSERT URI_HANDLERS_SECTION_TITLE ${CUR_LANG}
@@ -99,6 +91,9 @@
!insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_SPELLCHECK_SWEDISH ${CUR_LANG}
!insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_SPELLCHECK_UKRAINIAN ${CUR_LANG}
+ !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_DEBUGSYMBOLS_ERROR ${CUR_LANG}
+ !insertmacro PIDGIN_MACRO_LANGSTRING_INSERT PIDGIN_GTK_DOWNLOAD_ERROR ${CUR_LANG}
+
!undef CUR_LANG
!macroend
diff --git a/pidgin/win32/nsis/pidgin-installer.nsi b/pidgin/win32/nsis/pidgin-installer.nsi
index ba2ebf2297..63ff566790 100644
--- a/pidgin/win32/nsis/pidgin-installer.nsi
+++ b/pidgin/win32/nsis/pidgin-installer.nsi
@@ -8,11 +8,9 @@
;--------------------------------
;Global Variables
Var name
-Var GTK_FOLDER
Var ISSILENT
Var STARTUP_RUN_KEY
Var SPELLCHECK_SEL
-Var LANGUAGE_SET
;--------------------------------
;Configuration
@@ -20,14 +18,10 @@ Var LANGUAGE_SET
;The name var is set in .onInit
Name $name
-!ifdef WITH_GTK
-OutFile "pidgin-${PIDGIN_VERSION}.exe"
-!else
-!ifdef DEBUG
-OutFile "pidgin-${PIDGIN_VERSION}-debug.exe"
+!ifdef OFFLINE_INSTALLER
+OutFile "pidgin-${PIDGIN_VERSION}-offline.exe"
!else
-OutFile "pidgin-${PIDGIN_VERSION}-no-gtk.exe"
-!endif
+OutFile "pidgin-${PIDGIN_VERSION}.exe"
!endif
SetCompressor /SOLID lzma
@@ -41,6 +35,7 @@ SetDateSave on
!include "Sections.nsh"
!include "WinVer.nsh"
!include "LogicLib.nsh"
+!include "Memento.nsh"
!include "FileFunc.nsh"
!insertmacro GetParameters
@@ -52,11 +47,13 @@ SetDateSave on
!insertmacro WordFind
!insertmacro un.WordFind
+!include "TextFunc.nsh"
+
;--------------------------------
;Defines
!define PIDGIN_NSIS_INCLUDE_PATH "."
-!define PIDGIN_INSTALLER_DEPS "..\..\..\..\win32-dev\pidgin-inst-deps"
+!define PIDGIN_INSTALLER_DEPS "..\..\..\..\win32-dev\pidgin-inst-deps-0.2"
; Remove these and the stuff that uses them at some point
!define OLD_GAIM_REG_KEY "SOFTWARE\gaim"
@@ -70,16 +67,16 @@ SetDateSave on
!define STARTUP_RUN_KEY "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
!define PIDGIN_UNINST_EXE "pidgin-uninst.exe"
-!define GTK_MIN_VERSION "2.6.10"
-!define GTK_REG_KEY "SOFTWARE\GTK\2.0"
+!define GTK_MIN_VERSION "2.14.0"
!define PERL_REG_KEY "SOFTWARE\Perl"
!define PERL_DLL "perl510.dll"
-!define GTK_DEFAULT_INSTALL_PATH "$COMMONFILES\GTK\2.0"
-!define GTK_RUNTIME_INSTALLER "..\..\..\..\gtk_installer\gtk-runtime-${GTK_INSTALL_VERSION}*.exe"
!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}"
@@ -87,14 +84,10 @@ VIAddVersionKey "ProductName" "Pidgin"
VIAddVersionKey "FileVersion" "${PIDGIN_VERSION}"
VIAddVersionKey "ProductVersion" "${PIDGIN_VERSION}"
VIAddVersionKey "LegalCopyright" ""
-!ifdef WITH_GTK
-VIAddVersionKey "FileDescription" "Pidgin Installer (w/ GTK+ Installer)"
+!ifdef OFFLINE_INSTALLER
+VIAddVersionKey "FileDescription" "Pidgin Installer (Offline)"
!else
-!ifdef DEBUG
-VIAddVersionKey "FileDescription" "Pidgin Installer (Debug Version)"
-!else
-VIAddVersionKey "FileDescription" "Pidgin Installer (w/o GTK+ Installer)"
-!endif
+VIAddVersionKey "FileDescription" "Pidgin Installer"
!endif
;--------------------------------
@@ -139,14 +132,6 @@ ReserveFile "${NSISDIR}\Plugins\System.dll"
!insertmacro MUI_PAGE_LICENSE "../../../COPYING"
!insertmacro MUI_PAGE_COMPONENTS
-!ifdef WITH_GTK
- ; GTK+ install dir page
- !define MUI_PAGE_CUSTOMFUNCTION_PRE preGtkDirPage
- !define MUI_PAGE_CUSTOMFUNCTION_LEAVE postGtkDirPage
- !define MUI_DIRECTORYPAGE_VARIABLE $GTK_FOLDER
- !insertmacro MUI_PAGE_DIRECTORY
-!endif
-
; Pidgin install dir page
!insertmacro MUI_PAGE_DIRECTORY
@@ -317,7 +302,7 @@ Section -SecUninstallOldPidgin
IfErrors uninstall_problem
; Ready to uninstall..
ClearErrors
- ExecWait '"$TEMP\$R6" /S _?=$R1'
+ ExecWait '"$TEMP\$R6" /S /KEEPGTK=1 _?=$R1'
IfErrors exec_error
Delete "$TEMP\$R6"
Goto done
@@ -348,77 +333,38 @@ SectionEnd
;--------------------------------
;GTK+ Runtime Install Section
-!ifdef WITH_GTK
Section $(GTK_SECTION_TITLE) SecGtk
- Call CheckUserInstallRights
- Pop $R1
-
- SetOutPath $TEMP
- SetOverwrite on
- File /oname=gtk-runtime.exe ${GTK_RUNTIME_INSTALLER}
- SetOverwrite off
+ InitPluginsDir
+ StrCpy $R1 "$PLUGINSDIR\gtk.zip"
+!ifdef OFFLINE_INSTALLER
- Call DoWeNeedGtk
- Pop $R0
- Pop $R6
+ SetOutPath $PLUGINSDIR
+ File /oname=gtk.zip "..\..\..\..\gtk_installer\gtk-runtime-${GTK_INSTALL_VERSION}.zip"
- StrCmp $R0 "0" have_gtk
- StrCmp $R0 "1" upgrade_gtk
- StrCmp $R0 "2" upgrade_gtk
- ;StrCmp $R0 "3" no_gtk no_gtk
+!else
- ;no_gtk:
- StrCmp $R1 "NONE" gtk_no_install_rights
- ClearErrors
- ExecWait '"$TEMP\gtk-runtime.exe" /L=$LANGUAGE $ISSILENT /D=$GTK_FOLDER'
- IfErrors gtk_install_error done
+ ; We need to download the GTK+ runtime
+ retry:
+ StrCpy $R2 "${DOWNLOADER_URL}?version=${PIDGIN_VERSION}&gtk_version=${GTK_INSTALL_VERSION}&dl_pkg=gtk"
+ DetailPrint "Downloading GTK+ Runtime ... ($R2)"
+ NSISdl::download /TIMEOUT=10000 $R2 $R1
+ Pop $R0
+ StrCmp $R0 "cancel" done
+ StrCmp $R0 "success" +2
+ MessageBox MB_RETRYCANCEL "$(PIDGIN_GTK_DOWNLOAD_ERROR) : $R1" /SD IDCANCEL IDRETRY retry IDCANCEL done
- upgrade_gtk:
- StrCpy $GTK_FOLDER $R6
- StrCmp $R0 "2" +2 ; Upgrade isn't optional
- MessageBox MB_YESNO $(GTK_UPGRADE_PROMPT) /SD IDYES IDNO done
- ClearErrors
- ExecWait '"$TEMP\gtk-runtime.exe" /L=$LANGUAGE $ISSILENT /D=$GTK_FOLDER'
- IfErrors gtk_install_error done
-
- gtk_install_error:
- Delete "$TEMP\gtk-runtime.exe"
- MessageBox MB_OK $(GTK_INSTALL_ERROR) /SD IDOK
- Quit
-
- have_gtk:
- StrCpy $GTK_FOLDER $R6
- StrCmp $R1 "NONE" done ; If we have no rights, we can't re-install
- ; Even if we have a sufficient version of GTK+, we give user choice to re-install.
- ClearErrors
- ExecWait '"$TEMP\gtk-runtime.exe" /L=$LANGUAGE $ISSILENT'
- IfErrors gtk_install_error
- Goto done
+!endif
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; end got_install rights
+ SetOutPath "$INSTDIR"
- gtk_no_install_rights:
- ; Install GTK+ to Pidgin install dir
- StrCpy $GTK_FOLDER $INSTDIR
- ClearErrors
- ExecWait '"$TEMP\gtk-runtime.exe" /L=$LANGUAGE $ISSILENT /D=$GTK_FOLDER'
- IfErrors gtk_install_error
- SetOverwrite on
- ClearErrors
- CopyFiles /FILESONLY "$GTK_FOLDER\bin\*.dll" $GTK_FOLDER
- SetOverwrite off
- IfErrors gtk_install_error
- Delete "$GTK_FOLDER\bin\*.dll"
- Goto done
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; end gtk_no_install_rights
+ nsisunz::UnzipToLog $R1 "$INSTDIR"
+ Pop $R0
+ StrCmp $R0 "success" +2
+ DetailPrint "$R0" ;print error message to log
done:
- Delete "$TEMP\gtk-runtime.exe"
SectionEnd ; end of GTK+ section
-!endif
;--------------------------------
;Pidgin Install Section
@@ -430,15 +376,12 @@ Section $(PIDGIN_SECTION_TITLE) SecPidgin
Call CheckUserInstallRights
Pop $R0
- ; Get GTK+ lib dir if we have it..
-
- StrCmp $R0 "NONE" pidgin_none
+ StrCmp $R0 "NONE" pidgin_install_files
StrCmp $R0 "HKLM" pidgin_hklm pidgin_hkcu
pidgin_hklm:
- ReadRegStr $R1 HKLM ${GTK_REG_KEY} "Path"
WriteRegStr HKLM "${HKLM_APP_PATHS_KEY}" "" "$INSTDIR\pidgin.exe"
- WriteRegStr HKLM "${HKLM_APP_PATHS_KEY}" "Path" "$R1\bin"
+ WriteRegStr HKLM "${HKLM_APP_PATHS_KEY}" "Path" "$INSTDIR\Gtk\bin"
WriteRegStr HKLM ${PIDGIN_REG_KEY} "" "$INSTDIR"
WriteRegStr HKLM ${PIDGIN_REG_KEY} "Version" "${PIDGIN_VERSION}"
WriteRegStr HKLM "${PIDGIN_UNINSTALL_KEY}" "DisplayName" "Pidgin"
@@ -452,10 +395,6 @@ Section $(PIDGIN_SECTION_TITLE) SecPidgin
Goto pidgin_install_files
pidgin_hkcu:
- ReadRegStr $R1 HKCU ${GTK_REG_KEY} "Path"
- StrCmp $R1 "" 0 +2
- ReadRegStr $R1 HKLM ${GTK_REG_KEY} "Path"
-
WriteRegStr HKCU ${PIDGIN_REG_KEY} "" "$INSTDIR"
WriteRegStr HKCU ${PIDGIN_REG_KEY} "Version" "${PIDGIN_VERSION}"
WriteRegStr HKCU "${PIDGIN_UNINSTALL_KEY}" "DisplayName" "Pidgin"
@@ -466,9 +405,6 @@ Section $(PIDGIN_SECTION_TITLE) SecPidgin
WriteRegStr HKCU "${PIDGIN_UNINSTALL_KEY}" "UninstallString" "$INSTDIR\${PIDGIN_UNINST_EXE}"
Goto pidgin_install_files
- pidgin_none:
- ReadRegStr $R1 HKLM ${GTK_REG_KEY} "Path"
-
pidgin_install_files:
SetOutPath "$INSTDIR"
; Pidgin files
@@ -478,18 +414,8 @@ Section $(PIDGIN_SECTION_TITLE) SecPidgin
Delete "$INSTDIR\plugins\liboscar.dll"
Delete "$INSTDIR\plugins\libjabber.dll"
- File /r ..\..\..\${PIDGIN_INSTALL_DIR}\*.*
- !ifdef DEBUG
+ File /r /x locale ..\..\..\${PIDGIN_INSTALL_DIR}\*.*
File "${PIDGIN_INSTALLER_DEPS}\exchndl.dll"
- !endif
-
- ; Install shfolder.dll if need be..
- SearchPath $R4 "shfolder.dll"
- StrCmp $R4 "" 0 got_shfolder
- SetOutPath "$SYSDIR"
- File "${PIDGIN_INSTALLER_DEPS}\shfolder.dll"
- SetOutPath "$INSTDIR"
- got_shfolder:
; Check if Perl is installed, if so add it to the AppPaths
ReadRegStr $R2 HKLM ${PERL_REG_KEY} ""
@@ -574,6 +500,22 @@ SectionGroup /e $(URI_HANDLERS_SECTION_TITLE) SecURIHandlers
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
@@ -667,6 +609,37 @@ SectionGroup /e $(PIDGIN_SPELLCHECK_SECTION_TITLE) SecSpellCheck
SectionEnd
SectionGroupEnd
+Section /o $(DEBUG_SYMBOLS_SECTION_TITLE) SecDebugSymbols
+ InitPluginsDir
+
+ ; We need to download and extract the debug symbols
+ StrCpy $R1 "$PLUGINSDIR\pidgin-${PIDGIN_VERSION}-dbgsym.zip"
+!ifdef OFFLINE_INSTALLER
+
+ SetOutPath $PLUGINSDIR
+ File /oname=pidgin-${PIDGIN_VERSION}-dbgsym.zip "..\..\..\..\gtk_installer\gtk-runtime-${GTK_INSTALL_VERSION}.zip"
+
+!else
+
+ retry:
+ StrCpy $R2 "${DOWNLOADER_URL}?version=${PIDGIN_VERSION}&dl_pkg=dbgsym"
+ DetailPrint "Downloading Debug Symbols... ($R2)"
+ NSISdl::download /TIMEOUT=10000 $R2 $R1
+ Pop $R0
+ StrCmp $R0 "cancel" done
+ StrCmp $R0 "success" +2
+ MessageBox MB_RETRYCANCEL "$(PIDGIN_DEBUGSYMBOLS_ERROR) : $R2" /SD IDCANCEL IDRETRY retry IDCANCEL done
+
+!endif
+
+ nsisunz::UnzipToLog $R1 "$INSTDIR"
+ Pop $R0
+ StrCmp $R0 "success" +2
+ DetailPrint "$R0" ;print error message to log
+
+ done:
+SectionEnd
+
;--------------------------------
;Uninstaller Section
@@ -819,11 +792,20 @@ Section Uninstall
Delete "$INSTDIR\softokn3.dll"
Delete "$INSTDIR\ssl3.dll"
Delete "$INSTDIR\${PIDGIN_UNINST_EXE}"
- !ifdef DEBUG
Delete "$INSTDIR\exchndl.dll"
- !endif
Delete "$INSTDIR\install.log"
+ ; Remove the debug symbols
+ RMDir /r "$INSTDIR\pidgin-${PIDGIN_VERSION}-dbgsym"
+
+ ; Remove the local GTK+ copy (if we're not just upgrading)
+ ${GetParameters} $R0
+ ClearErrors
+ ${GetOptions} "$R3" "/KEEPGTK=" $R1
+ IfErrors +2
+ StrCmp $R1 "1" +2
+ RMDir /r "$INSTDIR\Gtk"
+
;Try to remove Pidgin install dir (only if empty)
RMDir "$INSTDIR"
@@ -849,10 +831,8 @@ SectionEnd ; end of uninstall section
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
!insertmacro MUI_DESCRIPTION_TEXT ${SecPidgin} \
$(PIDGIN_SECTION_DESCRIPTION)
-!ifdef WITH_GTK
!insertmacro MUI_DESCRIPTION_TEXT ${SecGtk} \
$(GTK_SECTION_DESCRIPTION)
-!endif
!insertmacro MUI_DESCRIPTION_TEXT ${SecShortcuts} \
$(PIDGIN_SHORTCUTS_SECTION_DESCRIPTION)
@@ -1145,93 +1125,42 @@ FunctionEnd
; Call DoWeNeedGtk
; First Pop:
; 0 - We have the correct version
-; Second Pop: Key where Version was found
; 1 - We have an old version that should work, prompt user for optional upgrade
-; Second Pop: HKLM or HKCU depending on where GTK was found.
; 2 - We have an old version that needs to be upgraded
-; Second Pop: HKLM or HKCU depending on where GTK was found.
; 3 - We don't have Gtk+ at all
-; Second Pop: "NONE, HKLM or HKCU" depending on our rights..
;
Function DoWeNeedGtk
- ; Logic should be:
- ; - Check what user rights we have (HKLM or HKCU)
- ; - If HKLM rights..
- ; - Only check HKLM key for GTK+
- ; - If installed to HKLM, check it and return.
- ; - If HKCU rights..
- ; - First check HKCU key for GTK+
- ; - if good or bad exists stop and ret.
- ; - If no hkcu gtk+ install, check HKLM
- ; - If HKLM ver exists but old, return as if no ver exits.
- ; - If no rights
- ; - Check HKLM
Push $0
Push $1
- Push $2
- Push $3
- Call CheckUserInstallRights
- Pop $1
- StrCmp $1 "HKLM" check_hklm
- StrCmp $1 "HKCU" check_hkcu check_hklm
- check_hkcu:
- ReadRegStr $0 HKCU ${GTK_REG_KEY} "Version"
- StrCpy $2 "HKCU"
- StrCmp $0 "" check_hklm have_gtk
-
- check_hklm:
- ReadRegStr $0 HKLM ${GTK_REG_KEY} "Version"
- StrCpy $2 "HKLM"
- StrCmp $0 "" no_gtk have_gtk
-
- have_gtk:
- ; GTK+ is already installed; check version.
- ; Change this to not even run the GTK installer if this version is already installed.
- ${VersionCompare} ${GTK_INSTALL_VERSION} $0 $3
- IntCmp $3 1 +1 good_version good_version
- ${VersionCompare} ${GTK_MIN_VERSION} $0 $3
-
- ; Bad version. If hklm ver and we have hkcu or no rights.. return no gtk
- StrCmp $1 "NONE" no_gtk ; if no rights.. can't upgrade
- StrCmp $1 "HKCU" 0 +2 ; if HKLM can upgrade..
- StrCmp $2 "HKLM" no_gtk ; have hkcu rights.. if found hklm ver can't upgrade..
- Push $2
- IntCmp $3 1 +3
- Push "1" ; Optional Upgrade
- Goto done
- Push "2" ; Mandatory Upgrade
- Goto done
-
- good_version:
- StrCmp $2 "HKLM" have_hklm_gtk have_hkcu_gtk
- have_hkcu_gtk:
- ; Have HKCU version
- ReadRegStr $0 HKCU ${GTK_REG_KEY} "Path"
- Goto good_version_cont
-
- have_hklm_gtk:
- ReadRegStr $0 HKLM ${GTK_REG_KEY} "Path"
- Goto good_version_cont
-
- good_version_cont:
- Push $0 ; The path to existing GTK+
- Push "0"
- Goto done
+ IfFileExists "$INSTDIR\Gtk\CONTENTS" +3
+ Push "3"
+ Goto done
- no_gtk:
- Push $1 ; our rights
- Push "3"
- Goto done
+ ClearErrors
+ ${ConfigRead} "$INSTDIR\Gtk\CONTENTS" "Bundle Version " $0
+ IfErrors 0 +3
+ Push "3"
+ Goto done
+
+ ${VersionCompare} ${GTK_INSTALL_VERSION} $0 $1
+ IntCmp $1 1 +3
+ Push "0" ; Have a good version
+ Goto done
+
+ ${VersionCompare} ${GTK_MIN_VERSION} $0 $1
+ IntCmp $1 1 +3
+ Push "1" ; Optional Upgrade
+ Goto done
+ Push "2" ; Mandatory Upgrade
+ Goto done
done:
- ; The top two items on the stack are what we want to return
- Exch 4
+ ; The item on the stack is what we want to return
+ Exch
Pop $1
- Exch 4
+ Exch
Pop $0
- Pop $3
- Pop $2
FunctionEnd
@@ -1302,6 +1231,8 @@ Function .onInit
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}
@@ -1346,12 +1277,10 @@ Function .onInit
IfSilent 0 +2
StrCpy $ISSILENT "/NOUI"
- StrCpy $LANGUAGE_SET "0"
ClearErrors
${GetOptions} "$R3" "/L=" $R1
- IfErrors +4
+ IfErrors +3
StrCpy $LANGUAGE $R1
- StrCpy $LANGUAGE_SET "1"
Goto skip_lang
; Select Language
@@ -1416,17 +1345,14 @@ Function .onInit
FunctionEnd
Function .onInstSuccess
- ; NSIS doesn't appear to save the language when in Silent Mode, so we do so manually
- IfSilent 0 done
- StrCmp $LANGUAGE_SET "0" done
+ ${MementoSectionSave}
- WriteRegStr "${MUI_LANGDLL_REGISTRY_ROOT}" "${MUI_LANGDLL_REGISTRY_KEY}" "${MUI_LANGDLL_REGISTRY_VALUENAME}" $LANGUAGE
-
- done:
FunctionEnd
+
Function un.onInit
+
Call un.RunCheck
StrCpy $name "Pidgin ${PIDGIN_VERSION}"
;LogSet on
@@ -1440,107 +1366,23 @@ FunctionEnd
Function preWelcomePage
Push $R0
-
-!ifndef WITH_GTK
- ; If this installer dosn't have GTK, check whether we need it.
- ; We do this here and not in .onInit because language change in
- ; .onInit doesn't take effect until it is finished.
- Call DoWeNeedGtk
- Pop $R0
- Pop $GTK_FOLDER
-
- IntCmp $R0 1 done done
- MessageBox MB_OK $(GTK_INSTALLER_NEEDED) /SD IDOK
- Quit
-
- done:
-
-!else
Push $R1
- Push $R2
Call DoWeNeedGtk
Pop $R0
- Pop $R2
- IntCmp $R0 1 gtk_selection_done gtk_not_mandatory
+ IntCmp $R0 1 done gtk_not_mandatory
; Make the GTK+ Section RO if it is required.
!insertmacro SetSectionFlag ${SecGtk} ${SF_RO}
- Goto gtk_selection_done
+ Goto done
gtk_not_mandatory:
; Don't select the GTK+ section if we already have this version or newer installed
!insertmacro UnselectSection ${SecGtk}
- gtk_selection_done:
-
- ; If on Win95/98/ME warn them that the GTK+ version wont work
- ${Unless} ${IsNT}
- !insertmacro UnselectSection ${SecGtk}
- !insertmacro SetSectionFlag ${SecGtk} ${SF_RO}
- MessageBox MB_OK $(GTK_WINDOWS_INCOMPATIBLE) /SD IDOK
- IntCmp $R0 1 done done ; Upgrade isn't optional - abort if we don't have a suitable version
- Quit
- ${EndIf}
done:
- Pop $R2
Pop $R1
-!endif
Pop $R0
FunctionEnd
-!ifdef WITH_GTK
-Function preGtkDirPage
- Push $R0
- Push $R1
- Call DoWeNeedGtk
- Pop $R0
- Pop $R1
-
- IntCmp $R0 2 +2 +2 no_gtk
- StrCmp $R0 "3" no_gtk no_gtk
-
- ; Don't show dir selector.. Upgrades are done to existing path..
- Pop $R1
- Pop $R0
- Abort
-
- no_gtk:
- StrCmp $R1 "NONE" 0 no_gtk_cont
- ; Got no install rights..
- Pop $R1
- Pop $R0
- Abort
- no_gtk_cont:
- ; Suggest path..
- StrCmp $R1 "HKCU" 0 hklm1
- ${GetParent} $SMPROGRAMS $R0
- ${GetParent} $R0 $R0
- StrCpy $R0 "$R0\GTK\2.0"
- Goto got_path
- hklm1:
- StrCpy $R0 "${GTK_DEFAULT_INSTALL_PATH}"
-
- got_path:
- StrCpy $name "GTK+ ${GTK_INSTALL_VERSION}"
- StrCpy $GTK_FOLDER $R0
- Pop $R1
- Pop $R0
-FunctionEnd
-
-Function postGtkDirPage
- Push $R0
- StrCpy $name "Pidgin ${PIDGIN_VERSION}"
- Push $GTK_FOLDER
- Call VerifyDir
- Pop $R0
- StrCmp $R0 "0" 0 done
- MessageBox MB_OK $(GTK_BAD_INSTALL_PATH) /SD IDOK
- Pop $R0
- Abort
- done:
- Pop $R0
-FunctionEnd
-!endif
-
; SpellChecker Related Functions
;-------------------------------
@@ -1668,6 +1510,8 @@ Function InstallAspellAndDict
Pop $R0 ;This is the language code
Push $R1
+ InitPluginsDir
+
IfErrors done ; We weren't able to convert the section to lang code
retry:
@@ -1702,12 +1546,12 @@ Function InstallAspell
IntCmp $R0 15 installed
; If this is the check after installation, don't infinite loop on failure
- StrCmp $R1 "$TEMP\aspell_installer.exe" 0 +3
+ StrCmp $R1 "$PLUGINSDIR\aspell_installer.exe" 0 +3
StrCpy $R0 $(ASPELL_INSTALL_FAILED)
Goto done
; We need to download and install aspell
- StrCpy $R1 "$TEMP\aspell_installer.exe"
+ StrCpy $R1 "$PLUGINSDIR\aspell_installer.exe"
StrCpy $R2 "${DOWNLOADER_URL}?version=${PIDGIN_VERSION}&dl_pkg=aspell_core"
DetailPrint "Downloading Aspell... ($R2)"
NSISdl::download /TIMEOUT=10000 $R2 $R1
@@ -1743,12 +1587,12 @@ Function InstallAspellDictionary
StrCmp $R2 "" 0 installed
; If this is the check after installation, don't infinite loop on failure
- StrCmp $R1 "$TEMP\aspell_dict-$R0.exe" 0 +3
+ StrCmp $R1 "$PLUGINSDIR\aspell_dict-$R0.exe" 0 +3
StrCpy $R0 $(ASPELL_INSTALL_FAILED)
Goto done
; We need to download and install aspell
- StrCpy $R1 "$TEMP\aspell_dict-$R0.exe"
+ StrCpy $R1 "$PLUGINSDIR\aspell_dict-$R0.exe"
StrCpy $R3 "${DOWNLOADER_URL}?version=${PIDGIN_VERSION}&dl_pkg=lang_$R0"
DetailPrint "Downloading the Aspell $R0 Dictionary... ($R3)"
NSISdl::download /TIMEOUT=10000 $R3 $R1
@@ -1758,10 +1602,10 @@ Function InstallAspellDictionary
Goto done
; Use a specific temporary $OUTDIR for each dictionary because the installer doesn't clean up after itself
StrCpy $R4 "$OUTDIR"
- SetOutPath "$TEMP\aspell_dict-$R0"
+ SetOutPath "$PLUGINSDIR\aspell_dict-$R0"
ExecWait '"$R1"'
SetOutPath "$R4"
- RMDir /r "$TEMP\aspell_dict-$R0"
+ RMDir /r "$PLUGINSDIR\aspell_dict-$R0"
Delete $R1
Goto check ; Check that it is now installed correctly
diff --git a/pidgin/win32/nsis/translations/afrikaans.nsh b/pidgin/win32/nsis/translations/afrikaans.nsh
index c730a0bc31..628ffa778b 100644
--- a/pidgin/win32/nsis/translations/afrikaans.nsh
+++ b/pidgin/win32/nsis/translations/afrikaans.nsh
@@ -12,7 +12,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "Die installeerder loop reeds."
!define PIDGIN_IS_RUNNING "Pidgin loop reeds rens. Verlaat Pidgin eers en probeer dan weer."
-!define GTK_INSTALLER_NEEDED "Die GTK+-looptydomgewing is f soek f moet opgegradeer word.$\rInstalleer asb. v{GTK_MIN_VERSION} of hor van die GTK+-looptyd"
; License Page
!define PIDGIN_LICENSE_BUTTON "Volgende >"
@@ -31,8 +30,6 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Skep 'n Begin-kieslysinskrywing vir Pidgin"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "'n Ou weergawe van die GTK+-looptyd is gevind. Wil u opgradeer?$\rLet wel: $(^Name) werk dalk net as u so maak."
-!define GTK_WINDOWS_INCOMPATIBLE "Windows 95/98/Me is onversoenbaar met GTK+ 2.8.0 en nuwer. GTK+ ${GTK_INSTALL_VERSION} sal nie installeer nie.$\rIndien u nie GTK+ ${GTK_MIN_VERSION} of nuwer reeds genstalleer het nie, sal die installasie nou staak."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Besoek die WinPidgin-webblad"
@@ -41,8 +38,6 @@
!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Kan nie die tans genstalleerde weergawe van Pidgin verwyder nie. Die nuwe weergawe sal genstalleer word sonder om die huidige een te verwyder."
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Fout met installering van GTK+-looptyd."
-!define GTK_BAD_INSTALL_PATH "Die pad wat u verskaf het, is ontoeganklik of kan nie geskep word nie."
; URL Handler section
!define URI_HANDLERS_SECTION_TITLE "URI-hanteerders"
diff --git a/pidgin/win32/nsis/translations/albanian.nsh b/pidgin/win32/nsis/translations/albanian.nsh
index 100a583b8c..6cc93dce23 100644
--- a/pidgin/win32/nsis/translations/albanian.nsh
+++ b/pidgin/win32/nsis/translations/albanian.nsh
@@ -8,8 +8,6 @@
;; Author: Besnik Bleta <besnik@spymac.com>
;;
-; Startup GTK+ check
-!define GTK_INSTALLER_NEEDED "Ose mungon mjedisi GTK+ runtime ose lyp përditësim.$\rJu lutem instaloni GTK+ runtime v${GTK_MIN_VERSION} ose më të vonshëm"
; License Page
!define PIDGIN_LICENSE_BUTTON "Më tej >"
@@ -23,14 +21,11 @@
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "U gjet një version i vjetër për GTK+ runtime. Doni të përditësohet?$\rShënim: Pidgin-i mund të mos punojë nëse nuk e bëni."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Vizitoni Faqen Web të Pidgin-it për Windows"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "gabim gjatë instalimit të GTK+ runtime."
-!define GTK_BAD_INSTALL_PATH "Shtegu që treguat nuk mund të arrihet ose krijohet."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "Çinstaluesi nuk gjeti dot zëra regjistri për Pidgin-in.$\rKa mundësi që këtë zbatim ta ketë instaluar një tjetër përdorues."
diff --git a/pidgin/win32/nsis/translations/arabic.nsh b/pidgin/win32/nsis/translations/arabic.nsh
index 35f9c146c8..66a62b7a95 100644
--- a/pidgin/win32/nsis/translations/arabic.nsh
+++ b/pidgin/win32/nsis/translations/arabic.nsh
@@ -9,7 +9,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING " ."
!define PIDGIN_IS_RUNNING " . ."
-!define GTK_INSTALLER_NEEDED " + (GTK+) .$\r v${GTK_MIN_VERSION} +"
; License Page
!define PIDGIN_LICENSE_BUTTON " >"
@@ -29,8 +28,6 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC " "
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT " +. ˿$\r: $(^Name) ."
-!define GTK_WINDOWS_INCOMPATIBLE " 95/98/Me + 2.8.0 . + ${GTK_INSTALL_VERSION} .$\r + ${GTK_MIN_VERSION} ."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE " "
@@ -39,8 +36,6 @@
!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL " . ."
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR " +."
-!define GTK_BAD_INSTALL_PATH " ."
; URL Handler section
!define URI_HANDLERS_SECTION_TITLE " "
diff --git a/pidgin/win32/nsis/translations/basque.nsh b/pidgin/win32/nsis/translations/basque.nsh
index c698245a7b..eb5a3ba734 100644
--- a/pidgin/win32/nsis/translations/basque.nsh
+++ b/pidgin/win32/nsis/translations/basque.nsh
@@ -1,80 +1,75 @@
-;;
-;; basque.nsh
-;;Abio-menua - Istanteko Mezularitza
-;; Basque language strings for the Windows Pidgin NSIS installer.
-;; Windows Code page: 1252
-;;
-;; Author: Mikel Pascual Aldabaldetreku <mikel.paskual@gmail.com>, 2007.
-
-; Startup Checks
-!define INSTALLER_IS_RUNNING "Instalatzailea martxan dago."
-!define PIDGIN_IS_RUNNING "Pidgin istantzia bat dago martxan. Pidgin itxi eta berriro saiatu."
-!define GTK_INSTALLER_NEEDED "GTK+ exekuzio-ingurunea falta da, edo eguneratu egin beharko litzateke.$\rGTK+ exekuzio-ingurunearen ${GTK_MIN_VERSION} bertsioa edo berriagoa instalatu"
-
-; License Page
-!define PIDGIN_LICENSE_BUTTON "Jarraitu >"
-!define PIDGIN_LICENSE_BOTTOM_TEXT "GNU Lizentzia Orokor Publikopean (GPL) argitaratzen da $(^Name). Informatzeko helburu soilarekin aurkezten da hemen lizentzia. $_CLICK"
-
-; Components Page
-!define PIDGIN_SECTION_TITLE "Pidgin Istanteko Mezularitza Bezeroa (beharrezkoa)"
-!define GTK_SECTION_TITLE "GTK+ exekuzio ingurunea (beharrezkoa)"
-!define PIDGIN_SHORTCUTS_SECTION_TITLE "Lasterbideak"
-!define PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE "Mahaigaina"
-!define PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE "Abio-menua"
-!define PIDGIN_SECTION_DESCRIPTION "Funtsezko Pidgin fitxategi eta dll-ak"
-!define GTK_SECTION_DESCRIPTION "Plataforma anitzeko GUI tresna-sorta, Pidgin-ek erabilia"
-
-!define PIDGIN_SHORTCUTS_SECTION_DESCRIPTION "Pidgin abiarazteko lasterbideak"
-!define PIDGIN_DESKTOP_SHORTCUT_DESC "Pidgin-entzako lasterbidea Mahaigainean"
-!define PIDGIN_STARTMENU_SHORTCUT_DESC "Pidgin-entzako lasterbidea Abio-Menuan"
-
-; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "GTK+ exekuzio-ingurunearen bertsio zahar bat aurkitu da. Eguneratu egin nahi al duzu?$\rOharra: Bestela, posible da $(^Name) ez ibiltzea."
-!define GTK_WINDOWS_INCOMPATIBLE "GTK+ 2.8.0 eta berriagoekin bateraezinak dira Windows 95/98/Me. Ez da GTK+ ${GTK_INSTALL_VERSION} instalatuko.$\rJadanik ez badaukazu GTK+ ${GTK_MIN_VERSION} edo berriagorik instalatuta, bertan behera utziko da instalazioa."
-
-; Installer Finish Page
-!define PIDGIN_FINISH_VISIT_WEB_SITE "Pidgin Webgunera etorri"
-
-; Pidgin Section Prompts and Texts
-!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Ezin izan da jadanik instalatuta zegoen Pidgin bertsioa kendu. Aurreko bertsioa kendu gabe instalatuko da bertsio berria."
-
-; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Errorea GTK+ exekuzio-ingurunea instalatzean."
-!define GTK_BAD_INSTALL_PATH "The path you entered can not be accessed or created."
-
-; URL Handler section
-!define URI_HANDLERS_SECTION_TITLE "URI Kudeatzaileak"
-
-; Uninstall Section Prompts
-!define un.PIDGIN_UNINSTALL_ERROR_1 "Ezin izan dira Pidgin-en erregistro-sarrerak aurkitu.$\rZiurrenik, beste erabiltzaile batek instalatu zuen aplikazio hau."
-!define un.PIDGIN_UNINSTALL_ERROR_2 "Ez daukazu aplikazio hau kentzeko baimenik."
-
-; Spellcheck Section Prompts
-!define PIDGIN_SPELLCHECK_SECTION_TITLE "Zuzentzaile Ortografikoa"
-!define PIDGIN_SPELLCHECK_ERROR "Errorea Zuzentzaile Ortografikoa instalatzean"
-!define PIDGIN_SPELLCHECK_DICT_ERROR "Errorea Zuzentzaile Ortografikoarentzako hiztegia instalatzean"
-!define PIDGIN_SPELLCHECK_SECTION_DESCRIPTION "Zuzentzaile Ortografikoa. (Internet konexioa behar du instalatzeko)"
-!define ASPELL_INSTALL_FAILED "Ezin izan da instalatu"
-!define PIDGIN_SPELLCHECK_BRETON "Britaniera"
-!define PIDGIN_SPELLCHECK_CATALAN "Katalana"
-!define PIDGIN_SPELLCHECK_CZECH "Txekiera"
-!define PIDGIN_SPELLCHECK_WELSH "Gaelikoa"
-!define PIDGIN_SPELLCHECK_DANISH "Daniera"
-!define PIDGIN_SPELLCHECK_GERMAN "Alemana"
-!define PIDGIN_SPELLCHECK_GREEK "Grekoa"
-!define PIDGIN_SPELLCHECK_ENGLISH "Ingelesa"
-!define PIDGIN_SPELLCHECK_ESPERANTO "Esperantoa"
-!define PIDGIN_SPELLCHECK_SPANISH "Gaztelania"
-!define PIDGIN_SPELLCHECK_FAROESE "Faroera"
-!define PIDGIN_SPELLCHECK_FRENCH "Frantsesa"
-!define PIDGIN_SPELLCHECK_ITALIAN "Italiera"
-!define PIDGIN_SPELLCHECK_DUTCH "Nederlandera"
-!define PIDGIN_SPELLCHECK_NORWEGIAN "Norvegiera"
-!define PIDGIN_SPELLCHECK_POLISH "Poloniera"
-!define PIDGIN_SPELLCHECK_PORTUGUESE "Portugesa"
-!define PIDGIN_SPELLCHECK_ROMANIAN "Errumaniera"
-!define PIDGIN_SPELLCHECK_RUSSIAN "Errusiera"
-!define PIDGIN_SPELLCHECK_SLOVAK "Eslovakiera"
-!define PIDGIN_SPELLCHECK_SWEDISH "Suediera"
-!define PIDGIN_SPELLCHECK_UKRAINIAN "Ukraniera"
-
+;;
+;; basque.nsh
+;;Abio-menua - Istanteko Mezularitza
+;; Basque language strings for the Windows Pidgin NSIS installer.
+;; Windows Code page: 1252
+;;
+;; Author: Mikel Pascual Aldabaldetreku <mikel.paskual@gmail.com>, 2007.
+
+; Startup Checks
+!define INSTALLER_IS_RUNNING "Instalatzailea martxan dago."
+!define PIDGIN_IS_RUNNING "Pidgin istantzia bat dago martxan. Pidgin itxi eta berriro saiatu."
+
+; License Page
+!define PIDGIN_LICENSE_BUTTON "Jarraitu >"
+!define PIDGIN_LICENSE_BOTTOM_TEXT "GNU Lizentzia Orokor Publikopean (GPL) argitaratzen da $(^Name). Informatzeko helburu soilarekin aurkezten da hemen lizentzia. $_CLICK"
+
+; Components Page
+!define PIDGIN_SECTION_TITLE "Pidgin Istanteko Mezularitza Bezeroa (beharrezkoa)"
+!define GTK_SECTION_TITLE "GTK+ exekuzio ingurunea (beharrezkoa)"
+!define PIDGIN_SHORTCUTS_SECTION_TITLE "Lasterbideak"
+!define PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE "Mahaigaina"
+!define PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE "Abio-menua"
+!define PIDGIN_SECTION_DESCRIPTION "Funtsezko Pidgin fitxategi eta dll-ak"
+!define GTK_SECTION_DESCRIPTION "Plataforma anitzeko GUI tresna-sorta, Pidgin-ek erabilia"
+
+!define PIDGIN_SHORTCUTS_SECTION_DESCRIPTION "Pidgin abiarazteko lasterbideak"
+!define PIDGIN_DESKTOP_SHORTCUT_DESC "Pidgin-entzako lasterbidea Mahaigainean"
+!define PIDGIN_STARTMENU_SHORTCUT_DESC "Pidgin-entzako lasterbidea Abio-Menuan"
+
+; GTK+ Directory Page
+
+; Installer Finish Page
+!define PIDGIN_FINISH_VISIT_WEB_SITE "Pidgin Webgunera etorri"
+
+; Pidgin Section Prompts and Texts
+!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Ezin izan da jadanik instalatuta zegoen Pidgin bertsioa kendu. Aurreko bertsioa kendu gabe instalatuko da bertsio berria."
+
+; GTK+ Section Prompts
+
+; URL Handler section
+!define URI_HANDLERS_SECTION_TITLE "URI Kudeatzaileak"
+
+; Uninstall Section Prompts
+!define un.PIDGIN_UNINSTALL_ERROR_1 "Ezin izan dira Pidgin-en erregistro-sarrerak aurkitu.$\rZiurrenik, beste erabiltzaile batek instalatu zuen aplikazio hau."
+!define un.PIDGIN_UNINSTALL_ERROR_2 "Ez daukazu aplikazio hau kentzeko baimenik."
+
+; Spellcheck Section Prompts
+!define PIDGIN_SPELLCHECK_SECTION_TITLE "Zuzentzaile Ortografikoa"
+!define PIDGIN_SPELLCHECK_ERROR "Errorea Zuzentzaile Ortografikoa instalatzean"
+!define PIDGIN_SPELLCHECK_DICT_ERROR "Errorea Zuzentzaile Ortografikoarentzako hiztegia instalatzean"
+!define PIDGIN_SPELLCHECK_SECTION_DESCRIPTION "Zuzentzaile Ortografikoa. (Internet konexioa behar du instalatzeko)"
+!define ASPELL_INSTALL_FAILED "Ezin izan da instalatu"
+!define PIDGIN_SPELLCHECK_BRETON "Britaniera"
+!define PIDGIN_SPELLCHECK_CATALAN "Katalana"
+!define PIDGIN_SPELLCHECK_CZECH "Txekiera"
+!define PIDGIN_SPELLCHECK_WELSH "Gaelikoa"
+!define PIDGIN_SPELLCHECK_DANISH "Daniera"
+!define PIDGIN_SPELLCHECK_GERMAN "Alemana"
+!define PIDGIN_SPELLCHECK_GREEK "Grekoa"
+!define PIDGIN_SPELLCHECK_ENGLISH "Ingelesa"
+!define PIDGIN_SPELLCHECK_ESPERANTO "Esperantoa"
+!define PIDGIN_SPELLCHECK_SPANISH "Gaztelania"
+!define PIDGIN_SPELLCHECK_FAROESE "Faroera"
+!define PIDGIN_SPELLCHECK_FRENCH "Frantsesa"
+!define PIDGIN_SPELLCHECK_ITALIAN "Italiera"
+!define PIDGIN_SPELLCHECK_DUTCH "Nederlandera"
+!define PIDGIN_SPELLCHECK_NORWEGIAN "Norvegiera"
+!define PIDGIN_SPELLCHECK_POLISH "Poloniera"
+!define PIDGIN_SPELLCHECK_PORTUGUESE "Portugesa"
+!define PIDGIN_SPELLCHECK_ROMANIAN "Errumaniera"
+!define PIDGIN_SPELLCHECK_RUSSIAN "Errusiera"
+!define PIDGIN_SPELLCHECK_SLOVAK "Eslovakiera"
+!define PIDGIN_SPELLCHECK_SWEDISH "Suediera"
+!define PIDGIN_SPELLCHECK_UKRAINIAN "Ukraniera"
+
diff --git a/pidgin/win32/nsis/translations/bulgarian.nsh b/pidgin/win32/nsis/translations/bulgarian.nsh
index 92eb24420c..8bb392c53d 100644
--- a/pidgin/win32/nsis/translations/bulgarian.nsh
+++ b/pidgin/win32/nsis/translations/bulgarian.nsh
@@ -8,9 +8,6 @@
;;
-; Startup GTK+ check
-!define GTK_INSTALLER_NEEDED "GTK+ runtime .$\r v${GTK_MIN_VERSION} -"
-
; Components Page
!define PIDGIN_SECTION_TITLE "Pidgin ( )"
!define GTK_SECTION_TITLE "GTK+ Runtime (required)"
@@ -19,11 +16,8 @@
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT " GTK+ runtime . ?$\rNote: Pidgin ."
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR " GTK+ runtime."
-!define GTK_BAD_INSTALL_PATH " ."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 " Pidgin.$\r ."
diff --git a/pidgin/win32/nsis/translations/catalan.nsh b/pidgin/win32/nsis/translations/catalan.nsh
index d0c5e61237..895363b90d 100644
--- a/pidgin/win32/nsis/translations/catalan.nsh
+++ b/pidgin/win32/nsis/translations/catalan.nsh
@@ -12,7 +12,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "L'instal.lador encara est executant-se."
!define PIDGIN_IS_RUNNING "Hi ha una instncia del Pidgin executant-se. Surt del Pidgin i torna a intentar-ho."
-!define GTK_INSTALLER_NEEDED "L'entorn d'execuci GTK+ no existeix o necessita sser actualitzat.$\rSius plau instal.la la versi${GTK_MIN_VERSION} o superior de l'entonr GTK+"
; License Page
!define PIDGIN_LICENSE_BUTTON "Segent >"
@@ -34,14 +33,11 @@
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "S'ha trobat una versi antiga de l'entorn d'execuci GTK. Vols actualitzar-la?$\rNota: $(^Name) no funcionar sino ho fas."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Visita la pgina web de Pidgin per Windows"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Error installlant l'entorn d'execuci GTK+."
-!define GTK_BAD_INSTALL_PATH "El directori que has introdut no pot sser accedit o creat."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "L'instal.lador podria no trobar les entrades del registre de Pidgin.$\rProbablement un altre usuari ha instal.lat aquesta aplicaci."
diff --git a/pidgin/win32/nsis/translations/czech.nsh b/pidgin/win32/nsis/translations/czech.nsh
index 9f46f6f451..79a1736115 100644
--- a/pidgin/win32/nsis/translations/czech.nsh
+++ b/pidgin/win32/nsis/translations/czech.nsh
@@ -8,8 +8,6 @@
;; Version 2
;;
-; Startup GTK+ check
-!define GTK_INSTALLER_NEEDED "GTK+ runtime buto chyb, nebo je poteba provst upgrade.$\rProvete instalaci verze${GTK_MIN_VERSION} nebo vy."
; License Page
!define PIDGIN_LICENSE_BUTTON "Dal >"
@@ -23,14 +21,11 @@
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Byla nalezena star verze GTK+ runtime. Chcete provst upgrade?$\rUpozornn: Bez upgradu $(^Name) nemus pracovat sprvn."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Navtvit Windows Pidgin Web Page"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Chyba pi instalaci GTK+ runtime."
-!define GTK_BAD_INSTALL_PATH "Zadan cesta je nedostupn, nebo ji nelze vytvoit."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "Odinstaln proces neme najt zznamy pro Pidgin v registrech.$\rPravdpodobn instalaci tto aplikace provedl jin uivatel."
diff --git a/pidgin/win32/nsis/translations/danish.nsh b/pidgin/win32/nsis/translations/danish.nsh
index 68a5daa9ca..2beda186a7 100644
--- a/pidgin/win32/nsis/translations/danish.nsh
+++ b/pidgin/win32/nsis/translations/danish.nsh
@@ -8,9 +8,6 @@
;; Version 2
;;
-; Startup GTK+ check
-!define GTK_INSTALLER_NEEDED "GTK+ runtime environment enten mangler eller skal opgraderes.$\rInstallr venligst GTK+ runtime version v${GTK_MIN_VERSION} eller hjere."
-
; License Page
!define PIDGIN_LICENSE_BUTTON "Nste >"
!define PIDGIN_LICENSE_BOTTOM_TEXT "$(^Name) er frigivet under GPL licensen. Licensen er kun medtaget her til generel orientering. $_CLICK"
@@ -23,14 +20,11 @@
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Der blev fundet en ldre version af GTK+ runtime. nsker du at opgradere?$\rNB: $(^Name) virker muligvis ikke uden denne opgradering."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Besg Windows Pidgin's hjemmeside"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Fejl under installeringen af GTK+ runtime."
-!define GTK_BAD_INSTALL_PATH "Stien du har angivet kan ikke findes eller oprettes."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "Afinstallationen kunne ikke finde Pidgin i registreringsdatabasen.$\rMuligvis har en anden bruger installeret programmet."
diff --git a/pidgin/win32/nsis/translations/dutch.nsh b/pidgin/win32/nsis/translations/dutch.nsh
index 034d8a3590..d023cf31a2 100644
--- a/pidgin/win32/nsis/translations/dutch.nsh
+++ b/pidgin/win32/nsis/translations/dutch.nsh
@@ -11,7 +11,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "Er is al een installatie actief."
!define PIDGIN_IS_RUNNING "Pidgin wordt op dit moment uitgevoerd. Sluit Pidgin af en start de installatie opnieuw."
-!define GTK_INSTALLER_NEEDED "De GTK+ runtime-omgeving is niet aanwezig of moet vernieuwd worden.$\rInstalleer v${GTK_MIN_VERSION} of nieuwer van de GTK+ runtime-omgeving"
; License Page
@@ -26,14 +25,11 @@
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Er is een oude versie van GTK+ gevonden. Wilt u deze bijwerken?$\rLet op: $(^Name) werkt misschien niet als u dit niet doet."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Neem een kijkje op de Windows Pidgin webpagina"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Fout bij installatie van GTK+ runtime omgeving."
-!define GTK_BAD_INSTALL_PATH "Het door u gegeven pad kan niet benaderd worden."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "Het verwijderingsprogramma voor Pidgin kon geen register-ingangen voor Pidgin vinden.$\rWaarschijnlijk heeft een andere gebruiker het programma genstalleerd."
diff --git a/pidgin/win32/nsis/translations/english.nsh b/pidgin/win32/nsis/translations/english.nsh
index 20009091e0..d1f26da35f 100644
--- a/pidgin/win32/nsis/translations/english.nsh
+++ b/pidgin/win32/nsis/translations/english.nsh
@@ -14,7 +14,6 @@
; Startup Checks
!insertmacro PIDGIN_MACRO_DEFAULT_STRING INSTALLER_IS_RUNNING "The installer is already running."
!insertmacro PIDGIN_MACRO_DEFAULT_STRING PIDGIN_IS_RUNNING "An instance of Pidgin is currently running. Please exit Pidgin and try again."
-!insertmacro PIDGIN_MACRO_DEFAULT_STRING GTK_INSTALLER_NEEDED "The GTK+ runtime environment is either missing or needs to be upgraded.$\rPlease install v${GTK_MIN_VERSION} or higher of the GTK+ runtime"
; License Page
!insertmacro PIDGIN_MACRO_DEFAULT_STRING PIDGIN_LICENSE_BUTTON "Next >"
@@ -32,10 +31,9 @@
!insertmacro PIDGIN_MACRO_DEFAULT_STRING PIDGIN_SHORTCUTS_SECTION_DESCRIPTION "Shortcuts for starting Pidgin"
!insertmacro PIDGIN_MACRO_DEFAULT_STRING PIDGIN_DESKTOP_SHORTCUT_DESC "Create a shortcut to Pidgin on the Desktop"
!insertmacro PIDGIN_MACRO_DEFAULT_STRING PIDGIN_STARTMENU_SHORTCUT_DESC "Create a Start Menu entry for Pidgin"
+!insertmacro PIDGIN_MACRO_DEFAULT_STRING DEBUG_SYMBOLS_SECTION_TITLE "Debug Symbols (for reporting crashes)"
; GTK+ Directory Page
-!insertmacro PIDGIN_MACRO_DEFAULT_STRING GTK_UPGRADE_PROMPT "An old version of the GTK+ runtime was found. Do you wish to upgrade?$\rNote: $(^Name) may not work unless you do."
-!insertmacro PIDGIN_MACRO_DEFAULT_STRING GTK_WINDOWS_INCOMPATIBLE "Windows 95/98/Me are incompatible with GTK+ 2.8.0 or newer. GTK+ ${GTK_INSTALL_VERSION} will not be installed.$\rIf you don't have GTK+ ${GTK_MIN_VERSION} or newer already installed, installation will now abort."
; Installer Finish Page
!insertmacro PIDGIN_MACRO_DEFAULT_STRING PIDGIN_FINISH_VISIT_WEB_SITE "Visit the Pidgin Web Page"
@@ -44,8 +42,6 @@
!insertmacro PIDGIN_MACRO_DEFAULT_STRING 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."
; GTK+ Section Prompts
-!insertmacro PIDGIN_MACRO_DEFAULT_STRING GTK_INSTALL_ERROR "Error installing GTK+ runtime."
-!insertmacro PIDGIN_MACRO_DEFAULT_STRING GTK_BAD_INSTALL_PATH "The path you entered can not be accessed or created."
; URL Handler section
!insertmacro PIDGIN_MACRO_DEFAULT_STRING URI_HANDLERS_SECTION_TITLE "URI Handlers"
@@ -83,3 +79,6 @@
!insertmacro PIDGIN_MACRO_DEFAULT_STRING PIDGIN_SPELLCHECK_SWEDISH "Swedish"
!insertmacro PIDGIN_MACRO_DEFAULT_STRING PIDGIN_SPELLCHECK_UKRAINIAN "Ukrainian"
+!insertmacro PIDGIN_MACRO_DEFAULT_STRING PIDGIN_DEBUGSYMBOLS_ERROR "Error Installing Debug Symbols"
+
+!insertmacro PIDGIN_MACRO_DEFAULT_STRING PIDGIN_GTK_DOWNLOAD_ERROR "Error Downloading the GTK+ Runtime"
diff --git a/pidgin/win32/nsis/translations/finnish.nsh b/pidgin/win32/nsis/translations/finnish.nsh
index bb11b6381e..890fc65cb6 100644
--- a/pidgin/win32/nsis/translations/finnish.nsh
+++ b/pidgin/win32/nsis/translations/finnish.nsh
@@ -13,7 +13,6 @@
; Startup checks
!define INSTALLER_IS_RUNNING "Asennusohjelma on jo kynniss."
!define PIDGIN_IS_RUNNING "Pidgin on tll hetkell kynniss. Poistu Pidginist ja yrit uudelleen."
-!define GTK_INSTALLER_NEEDED "Ajonaikainen GTK+-ymprist joko puuttuu tai tarvitsee pivityst.$\rOle hyv ja asenna v${GTK_MIN_VERSION} tai uudempi ajonaikainen GTK+-ymprist."
; License Page
!define PIDGIN_LICENSE_BUTTON "Seuraava >"
@@ -33,14 +32,11 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Tee Pidgin-pikakuvake kynnistysvalikkoon"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Vanha versio ajonaikaisesta GTK+-ympristst lytynyt. Tahdotko pivitt?$\rHuomio: $(^Name) ei vlttmtt toimi mikli jtt pivittmtt."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Vieraile Pidginin WWW-sivustolla"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Virhe asennettaessa ajonaikaista GTK+-ymprist."
-!define GTK_BAD_INSTALL_PATH "Antamasi polku ei toimi tai sit ei voi luoda."
; URL Handler section
!define URI_HANDLERS_SECTION_TITLE "URI-ksittelijt"
diff --git a/pidgin/win32/nsis/translations/french.nsh b/pidgin/win32/nsis/translations/french.nsh
index 4c074c5f4e..4731e540b7 100644
--- a/pidgin/win32/nsis/translations/french.nsh
+++ b/pidgin/win32/nsis/translations/french.nsh
@@ -1,4 +1,3 @@
-;; vim:syn=winbatch:fileencoding=cp1252:
;;
;; french.nsh
;;
@@ -15,7 +14,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "Le programme d'installation est dj en cours d'excution."
!define PIDGIN_IS_RUNNING "Une instance de Pidgin est en cours d'excution. Veuillez quitter Pidgin et ressayer."
-!define GTK_INSTALLER_NEEDED "Les bibliothques de l'environnement GTK+ ne sont pas installes ou ont besoin d'une mise jour.$\rVeuillez installer la version ${GTK_MIN_VERSION} ou plus rcente des bibliothques GTK+."
; License Page
!define PIDGIN_LICENSE_BUTTON "Suivant >"
@@ -35,8 +33,6 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Crer un raccourci pour Pidgin dans le menu Dmarrer"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Une ancienne version des bibliothques GTK+ a t trouve. Voulez-vous la mettre jour ?$\rNote : $(^Name) peut ne pas fonctionner si vous ne le faites pas."
-!define GTK_WINDOWS_INCOMPATIBLE "Windows 95/98/Me est incompatible avec GTK+ version 2.8.0 ou plus rcentes. GTK+ ${GTK_INSTALL_VERSION} ne sera pas install.$\rSi vous n'avez pas install GTK+ version ${GTK_MIN_VERSION} ou pkus rcente, l'installation s'arrtera."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Visitez la page web de Pidgin Windows"
@@ -45,8 +41,6 @@
!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Impossible de dsinstaller la version de Pidgin en place. La nouvelle version sera installe sans supprimer la version en place."
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Erreur lors de l'installation des bibliothques GTK+"
-!define GTK_BAD_INSTALL_PATH "Le dossier d'installation ne peut pas tre cr ou n'est pas accessible."
; URL Handler section
!define URI_HANDLERS_SECTION_TITLE "Gestion des liens (URI)"
diff --git a/pidgin/win32/nsis/translations/galician.nsh b/pidgin/win32/nsis/translations/galician.nsh
index 928391301d..bc74343b05 100644
--- a/pidgin/win32/nsis/translations/galician.nsh
+++ b/pidgin/win32/nsis/translations/galician.nsh
@@ -9,7 +9,6 @@
;;
; Startup GTK+ check
-!define GTK_INSTALLER_NEEDED "O entorno de execucin de GTK+ falta ou necesita ser actualizado.$\rPor favor, instale a versin v${GTK_MIN_VERSION} do executable GTK+ ou algunha posterior."
; License Page
!define PIDGIN_LICENSE_BUTTON "Seguinte >"
@@ -23,14 +22,11 @@
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Atopouse unha versin antiga do executable de GTK+. Desexa actualizala?$\rObservacin: $(^Name) non funcionar a menos que o faga."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Visite a pxina Web de Pidgin Windows"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Erro ao instalar o executable GTK+."
-!define GTK_BAD_INSTALL_PATH "Non se puido acceder ou crear a ruta que vd. indicou."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "O desinstalador non puido atopar as entradas no rexistro de Pidgin.$\r probable que outro usuario instalara a aplicacin."
diff --git a/pidgin/win32/nsis/translations/german.nsh b/pidgin/win32/nsis/translations/german.nsh
index 7930acb6a9..1f8e7f02ec 100644
--- a/pidgin/win32/nsis/translations/german.nsh
+++ b/pidgin/win32/nsis/translations/german.nsh
@@ -1,82 +1,77 @@
-;; vim:syn=winbatch:encoding=cp1252:
-;;
-;; german.nsh
-;;
-;; German language strings for the Windows Pidgin NSIS installer.
-;; Windows Code page: 1252
-;;
-;; Author: Bjoern Voigt <bjoern@cs.tu-berlin.de>, 2008.
-;; Version 3
-;;
-
-; Startup checks
-!define INSTALLER_IS_RUNNING "Der Installer luft schon."
-!define PIDGIN_IS_RUNNING "Eine Instanz von Pidgin luft momentan schon. Beenden Sie Pidgin und versuchen Sie es nochmal."
-!define GTK_INSTALLER_NEEDED "Die GTK+ Runtime Umgebung fehlt entweder oder muss aktualisiert werden.$\rBitte installieren Sie v${GTK_MIN_VERSION} oder hher der GTK+ Runtime"
-
-; License Page
-!define PIDGIN_LICENSE_BUTTON "Weiter >"
-!define PIDGIN_LICENSE_BOTTOM_TEXT "$(^Name) wird unter der GNU General Public License (GPL) verffentlicht. Die Lizenz dient hier nur der Information. $_CLICK"
-
-; Components Page
-!define PIDGIN_SECTION_TITLE "Pidgin Instant Messaging Client (erforderlich)"
-!define GTK_SECTION_TITLE "GTK+ Runtime Umgebung (erforderlich)"
-!define PIDGIN_SHORTCUTS_SECTION_TITLE "Verknpfungen"
-!define PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE "Desktop"
-!define PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE "Startmen"
-!define PIDGIN_SECTION_DESCRIPTION "Pidgin-Basisdateien und -DLLs"
-!define GTK_SECTION_DESCRIPTION "Ein Multi-Plattform-GUI-Toolkit, verwendet von Pidgin"
-
-!define PIDGIN_SHORTCUTS_SECTION_DESCRIPTION "Verknpfungen zum Starten von Pidgin"
-!define PIDGIN_DESKTOP_SHORTCUT_DESC "Erstellt eine Verknpfung zu Pidgin auf dem Desktop"
-!define PIDGIN_STARTMENU_SHORTCUT_DESC "Erstellt einen Eintrag fr Pidgin im Startmen"
-
-; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Eine alte Version der GTK+ Runtime wurde gefunden. Mchten Sie aktualisieren?$\rHinweis: $(^Name) funktioniert evtl. nicht, wenn Sie nicht aktualisieren."
-!define GTK_WINDOWS_INCOMPATIBLE "Windows 95/98/Me sind inkompatibel zu GTK+ 2.8.0 oder neuer. GTK+ ${GTK_INSTALL_VERSION} wird nicht installiert.$\rWenn Sie nicht GTK+ ${GTK_MIN_VERSION} oder neuer installiert haben, wird die Installation jetzt abgebrochen."
-
-; Installer Finish Page
-!define PIDGIN_FINISH_VISIT_WEB_SITE "Besuchen Sie die Pidgin Webseite"
-
-; Pidgin Section Prompts and Texts
-!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Die aktuell installierte Version von Pidgin kann nicht deinstalliert werden. Die neue Version wird installiert, ohne dass die aktuell installierte Version gelscht wird."
-
-; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Fehler beim Installieren der GTK+ Runtime."
-!define GTK_BAD_INSTALL_PATH "Der Pfad, den Sie eingegeben haben, existiert nicht und kann nicht erstellt werden."
-
-; URL Handler section
-!define URI_HANDLERS_SECTION_TITLE "URI-Behandlung"
-
-; Uninstall Section Prompts
-!define un.PIDGIN_UNINSTALL_ERROR_1 "Der Deinstaller konnte keine Registrierungsschlssel fr Pidgin finden.$\rEs ist wahrscheinlich, da ein anderer Benutzer diese Anwendung installiert hat."
-!define un.PIDGIN_UNINSTALL_ERROR_2 "Sie haben keine Berechtigung, diese Anwendung zu deinstallieren."
-
-; Spellcheck Section Prompts
-!define PIDGIN_SPELLCHECK_SECTION_TITLE "Untersttzung fr Rechtschreibkontrolle"
-!define PIDGIN_SPELLCHECK_ERROR "Fehler bei der Installation der Rechtschreibkontrolle"
-!define PIDGIN_SPELLCHECK_DICT_ERROR "Fehler bei der Installation des Wrterbuches fr die Rechtschreibkontrolle"
-!define PIDGIN_SPELLCHECK_SECTION_DESCRIPTION "Untersttzung fr Rechtschreibkontrolle. (Fr die Installation ist eine Internet-Verbindung ntig)"
-!define ASPELL_INSTALL_FAILED "Installation gescheitert"
-!define PIDGIN_SPELLCHECK_BRETON "Bretonisch"
-!define PIDGIN_SPELLCHECK_CATALAN "Katalanisch"
-!define PIDGIN_SPELLCHECK_CZECH "Tschechisch"
-!define PIDGIN_SPELLCHECK_WELSH "Walisisch"
-!define PIDGIN_SPELLCHECK_DANISH "Dnisch"
-!define PIDGIN_SPELLCHECK_GERMAN "Deutsch"
-!define PIDGIN_SPELLCHECK_GREEK "Griechisch"
-!define PIDGIN_SPELLCHECK_ENGLISH "Englisch"
-!define PIDGIN_SPELLCHECK_ESPERANTO "Esperanto"
-!define PIDGIN_SPELLCHECK_SPANISH "Spanisch"
-!define PIDGIN_SPELLCHECK_FAROESE "Farersprache"
-!define PIDGIN_SPELLCHECK_FRENCH "Franzsisch"
-!define PIDGIN_SPELLCHECK_ITALIAN "Italienisch"
-!define PIDGIN_SPELLCHECK_DUTCH "Hollndisch"
-!define PIDGIN_SPELLCHECK_NORWEGIAN "Norwegisch"
-!define PIDGIN_SPELLCHECK_POLISH "Polnisch"
-!define PIDGIN_SPELLCHECK_PORTUGUESE "Portugiesisch"
-!define PIDGIN_SPELLCHECK_ROMANIAN "Rumnisch"
-!define PIDGIN_SPELLCHECK_RUSSIAN "Russisch"
-!define PIDGIN_SPELLCHECK_SLOVAK "Slowakisch"
-!define PIDGIN_SPELLCHECK_SWEDISH "Schwedisch"
-!define PIDGIN_SPELLCHECK_UKRAINIAN "Ukrainisch"
+;; vim:syn=winbatch:encoding=cp1252:
+;;
+;; german.nsh
+;;
+;; German language strings for the Windows Pidgin NSIS installer.
+;; Windows Code page: 1252
+;;
+;; Author: Bjoern Voigt <bjoern@cs.tu-berlin.de>, 2008.
+;; Version 3
+;;
+
+; Startup checks
+!define INSTALLER_IS_RUNNING "Der Installer luft schon."
+!define PIDGIN_IS_RUNNING "Eine Instanz von Pidgin luft momentan schon. Beenden Sie Pidgin und versuchen Sie es nochmal."
+
+; License Page
+!define PIDGIN_LICENSE_BUTTON "Weiter >"
+!define PIDGIN_LICENSE_BOTTOM_TEXT "$(^Name) wird unter der GNU General Public License (GPL) verffentlicht. Die Lizenz dient hier nur der Information. $_CLICK"
+
+; Components Page
+!define PIDGIN_SECTION_TITLE "Pidgin Instant Messaging Client (erforderlich)"
+!define GTK_SECTION_TITLE "GTK+ Runtime Umgebung (erforderlich)"
+!define PIDGIN_SHORTCUTS_SECTION_TITLE "Verknpfungen"
+!define PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE "Desktop"
+!define PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE "Startmen"
+!define PIDGIN_SECTION_DESCRIPTION "Pidgin-Basisdateien und -DLLs"
+!define GTK_SECTION_DESCRIPTION "Ein Multi-Plattform-GUI-Toolkit, verwendet von Pidgin"
+
+!define PIDGIN_SHORTCUTS_SECTION_DESCRIPTION "Verknpfungen zum Starten von Pidgin"
+!define PIDGIN_DESKTOP_SHORTCUT_DESC "Erstellt eine Verknpfung zu Pidgin auf dem Desktop"
+!define PIDGIN_STARTMENU_SHORTCUT_DESC "Erstellt einen Eintrag fr Pidgin im Startmen"
+
+; GTK+ Directory Page
+
+; Installer Finish Page
+!define PIDGIN_FINISH_VISIT_WEB_SITE "Besuchen Sie die Pidgin Webseite"
+
+; Pidgin Section Prompts and Texts
+!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Die aktuell installierte Version von Pidgin kann nicht deinstalliert werden. Die neue Version wird installiert, ohne dass die aktuell installierte Version gelscht wird."
+
+; GTK+ Section Prompts
+
+; URL Handler section
+!define URI_HANDLERS_SECTION_TITLE "URI-Behandlung"
+
+; Uninstall Section Prompts
+!define un.PIDGIN_UNINSTALL_ERROR_1 "Der Deinstaller konnte keine Registrierungsschlssel fr Pidgin finden.$\rEs ist wahrscheinlich, da ein anderer Benutzer diese Anwendung installiert hat."
+!define un.PIDGIN_UNINSTALL_ERROR_2 "Sie haben keine Berechtigung, diese Anwendung zu deinstallieren."
+
+; Spellcheck Section Prompts
+!define PIDGIN_SPELLCHECK_SECTION_TITLE "Untersttzung fr Rechtschreibkontrolle"
+!define PIDGIN_SPELLCHECK_ERROR "Fehler bei der Installation der Rechtschreibkontrolle"
+!define PIDGIN_SPELLCHECK_DICT_ERROR "Fehler bei der Installation des Wrterbuches fr die Rechtschreibkontrolle"
+!define PIDGIN_SPELLCHECK_SECTION_DESCRIPTION "Untersttzung fr Rechtschreibkontrolle. (Fr die Installation ist eine Internet-Verbindung ntig)"
+!define ASPELL_INSTALL_FAILED "Installation gescheitert"
+!define PIDGIN_SPELLCHECK_BRETON "Bretonisch"
+!define PIDGIN_SPELLCHECK_CATALAN "Katalanisch"
+!define PIDGIN_SPELLCHECK_CZECH "Tschechisch"
+!define PIDGIN_SPELLCHECK_WELSH "Walisisch"
+!define PIDGIN_SPELLCHECK_DANISH "Dnisch"
+!define PIDGIN_SPELLCHECK_GERMAN "Deutsch"
+!define PIDGIN_SPELLCHECK_GREEK "Griechisch"
+!define PIDGIN_SPELLCHECK_ENGLISH "Englisch"
+!define PIDGIN_SPELLCHECK_ESPERANTO "Esperanto"
+!define PIDGIN_SPELLCHECK_SPANISH "Spanisch"
+!define PIDGIN_SPELLCHECK_FAROESE "Farersprache"
+!define PIDGIN_SPELLCHECK_FRENCH "Franzsisch"
+!define PIDGIN_SPELLCHECK_ITALIAN "Italienisch"
+!define PIDGIN_SPELLCHECK_DUTCH "Hollndisch"
+!define PIDGIN_SPELLCHECK_NORWEGIAN "Norwegisch"
+!define PIDGIN_SPELLCHECK_POLISH "Polnisch"
+!define PIDGIN_SPELLCHECK_PORTUGUESE "Portugiesisch"
+!define PIDGIN_SPELLCHECK_ROMANIAN "Rumnisch"
+!define PIDGIN_SPELLCHECK_RUSSIAN "Russisch"
+!define PIDGIN_SPELLCHECK_SLOVAK "Slowakisch"
+!define PIDGIN_SPELLCHECK_SWEDISH "Schwedisch"
+!define PIDGIN_SPELLCHECK_UKRAINIAN "Ukrainisch"
diff --git a/pidgin/win32/nsis/translations/hebrew.nsh b/pidgin/win32/nsis/translations/hebrew.nsh
index 16eced30b7..6f4034fd64 100644
--- a/pidgin/win32/nsis/translations/hebrew.nsh
+++ b/pidgin/win32/nsis/translations/hebrew.nsh
@@ -1,83 +1,78 @@
-;;
-;; hebrew.nsh
-;;
-;; Hebrew language strings for the Windows Pidgin NSIS installer.
-;; Windows Code page: 1255
-;;
-;; Updated: Shalom Craimer <scraimer@gmail.com>
-;; Origional Author: Eugene Shcherbina <eugene@websterworlds.com>
-;; Version 3
-;;
-
-; Startup checks
-!define INSTALLER_IS_RUNNING " ."
-!define PIDGIN_IS_RUNNING " ' . ' ."
-!define GTK_INSTALLER_NEEDED ". GTK+ $\r v${GTK_MIN_VERSION} .GTK+ "
-
-; License Page
-!define PIDGIN_LICENSE_BUTTON " >"
-!define PIDGIN_LICENSE_BOTTOM_TEXT "$(^Name) . .GPL $_CLICK"
-
-; Components Page
-!define PIDGIN_SECTION_TITLE "() .Pidgin "
-!define GTK_SECTION_TITLE "() .GTK+ "
-!define PIDGIN_SHORTCUTS_SECTION_TITLE " "
-!define PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE " "
-!define PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE " "
-!define PIDGIN_SECTION_DESCRIPTION ". DLL- Pidgin "
-!define GTK_SECTION_DESCRIPTION "-, ' GUI "
-
-!define PIDGIN_SHORTCUTS_SECTION_DESCRIPTION "- '"
-!define PIDGIN_DESKTOP_SHORTCUT_DESC " - ' "
-!define PIDGIN_STARTMENU_SHORTCUT_DESC " - ' "
-
-; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "A?. GTK+ $\rNote: . $(^Name)"
-!define GTK_WINDOWS_INCOMPATIBLE " 95/98/ -GTK+ 2.8.0 . GTK+ ${GTK_INSTALL_VERSION} .$\r GTK+ ${GTK_MIN_VERSION} , ."
-
-; Installer Finish Page
-!define PIDGIN_FINISH_VISIT_WEB_SITE ".Pidgin "
-
-; Pidgin Section Prompts and Texts
-!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL " '. ."
-
-; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR ".GTK+ "
-!define GTK_BAD_INSTALL_PATH ". "
-
-; URL Handler section
-!define URI_HANDLERS_SECTION_TITLE " URI"
-
-; Uninstall Section Prompts
-!define un.PIDGIN_UNINSTALL_ERROR_1 ".GTK+ $\r. "
-!define un.PIDGIN_UNINSTALL_ERROR_2 ". "
-
-; Spellcheck Section Prompts
-!define PIDGIN_SPELLCHECK_SECTION_TITLE " "
-!define PIDGIN_SPELLCHECK_ERROR " "
-!define PIDGIN_SPELLCHECK_DICT_ERROR " "
-!define PIDGIN_SPELLCHECK_SECTION_DESCRIPTION " ( )"
-!define ASPELL_INSTALL_FAILED " "
-!define PIDGIN_SPELLCHECK_BRETON ""
-!define PIDGIN_SPELLCHECK_CATALAN ""
-!define PIDGIN_SPELLCHECK_CZECH "'"
-!define PIDGIN_SPELLCHECK_WELSH ""
-!define PIDGIN_SPELLCHECK_DANISH ""
-!define PIDGIN_SPELLCHECK_GERMAN ""
-!define PIDGIN_SPELLCHECK_GREEK ""
-!define PIDGIN_SPELLCHECK_ENGLISH ""
-!define PIDGIN_SPELLCHECK_ESPERANTO ""
-!define PIDGIN_SPELLCHECK_SPANISH ""
-!define PIDGIN_SPELLCHECK_FAROESE ""
-!define PIDGIN_SPELLCHECK_FRENCH ""
-!define PIDGIN_SPELLCHECK_ITALIAN ""
-!define PIDGIN_SPELLCHECK_DUTCH ""
-!define PIDGIN_SPELLCHECK_NORWEGIAN ""
-!define PIDGIN_SPELLCHECK_POLISH ""
-!define PIDGIN_SPELLCHECK_PORTUGUESE ""
-!define PIDGIN_SPELLCHECK_ROMANIAN ""
-!define PIDGIN_SPELLCHECK_RUSSIAN ""
-!define PIDGIN_SPELLCHECK_SLOVAK ""
-!define PIDGIN_SPELLCHECK_SWEDISH ""
-!define PIDGIN_SPELLCHECK_UKRAINIAN ""
-
+;;
+;; hebrew.nsh
+;;
+;; Hebrew language strings for the Windows Pidgin NSIS installer.
+;; Windows Code page: 1255
+;;
+;; Updated: Shalom Craimer <scraimer@gmail.com>
+;; Origional Author: Eugene Shcherbina <eugene@websterworlds.com>
+;; Version 3
+;;
+
+; Startup checks
+!define INSTALLER_IS_RUNNING " ."
+!define PIDGIN_IS_RUNNING " ' . ' ."
+
+; License Page
+!define PIDGIN_LICENSE_BUTTON " >"
+!define PIDGIN_LICENSE_BOTTOM_TEXT "$(^Name) . .GPL $_CLICK"
+
+; Components Page
+!define PIDGIN_SECTION_TITLE "() .Pidgin "
+!define GTK_SECTION_TITLE "() .GTK+ "
+!define PIDGIN_SHORTCUTS_SECTION_TITLE " "
+!define PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE " "
+!define PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE " "
+!define PIDGIN_SECTION_DESCRIPTION ". DLL- Pidgin "
+!define GTK_SECTION_DESCRIPTION "-, ' GUI "
+
+!define PIDGIN_SHORTCUTS_SECTION_DESCRIPTION "- '"
+!define PIDGIN_DESKTOP_SHORTCUT_DESC " - ' "
+!define PIDGIN_STARTMENU_SHORTCUT_DESC " - ' "
+
+; GTK+ Directory Page
+
+; Installer Finish Page
+!define PIDGIN_FINISH_VISIT_WEB_SITE ".Pidgin "
+
+; Pidgin Section Prompts and Texts
+!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL " '. ."
+
+; GTK+ Section Prompts
+
+; URL Handler section
+!define URI_HANDLERS_SECTION_TITLE " URI"
+
+; Uninstall Section Prompts
+!define un.PIDGIN_UNINSTALL_ERROR_1 ".GTK+ $\r. "
+!define un.PIDGIN_UNINSTALL_ERROR_2 ". "
+
+; Spellcheck Section Prompts
+!define PIDGIN_SPELLCHECK_SECTION_TITLE " "
+!define PIDGIN_SPELLCHECK_ERROR " "
+!define PIDGIN_SPELLCHECK_DICT_ERROR " "
+!define PIDGIN_SPELLCHECK_SECTION_DESCRIPTION " ( )"
+!define ASPELL_INSTALL_FAILED " "
+!define PIDGIN_SPELLCHECK_BRETON ""
+!define PIDGIN_SPELLCHECK_CATALAN ""
+!define PIDGIN_SPELLCHECK_CZECH "'"
+!define PIDGIN_SPELLCHECK_WELSH ""
+!define PIDGIN_SPELLCHECK_DANISH ""
+!define PIDGIN_SPELLCHECK_GERMAN ""
+!define PIDGIN_SPELLCHECK_GREEK ""
+!define PIDGIN_SPELLCHECK_ENGLISH ""
+!define PIDGIN_SPELLCHECK_ESPERANTO ""
+!define PIDGIN_SPELLCHECK_SPANISH ""
+!define PIDGIN_SPELLCHECK_FAROESE ""
+!define PIDGIN_SPELLCHECK_FRENCH ""
+!define PIDGIN_SPELLCHECK_ITALIAN ""
+!define PIDGIN_SPELLCHECK_DUTCH ""
+!define PIDGIN_SPELLCHECK_NORWEGIAN ""
+!define PIDGIN_SPELLCHECK_POLISH ""
+!define PIDGIN_SPELLCHECK_PORTUGUESE ""
+!define PIDGIN_SPELLCHECK_ROMANIAN ""
+!define PIDGIN_SPELLCHECK_RUSSIAN ""
+!define PIDGIN_SPELLCHECK_SLOVAK ""
+!define PIDGIN_SPELLCHECK_SWEDISH ""
+!define PIDGIN_SPELLCHECK_UKRAINIAN ""
+
diff --git a/pidgin/win32/nsis/translations/hungarian.nsh b/pidgin/win32/nsis/translations/hungarian.nsh
index 950588f01c..50939b534b 100644
--- a/pidgin/win32/nsis/translations/hungarian.nsh
+++ b/pidgin/win32/nsis/translations/hungarian.nsh
@@ -9,7 +9,6 @@
;;
; Startup Checks
-!define GTK_INSTALLER_NEEDED "A GTK+ futtat krnyezet hinyzik vagy frisstse szksges.$\rKrem teleptse a v${GTK_MIN_VERSION} vagy magasabb verzij GTK+ futtat krnyezetet."
!define INSTALLER_IS_RUNNING "A telept mr fut."
!define PIDGIN_IS_RUNNING "Jelenleg fut a Pidgin egy pldnya. Lpjen ki a Pidginbl s azutn prblja jra."
@@ -31,8 +30,6 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Start Men bejegyzs ltrehozsa a Pidginhez"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Egy rgi verzij GTK+ futtatkrnyezet van teleptve. Kvnja frissteni?$\rMegjegyzs: a Pidgin nem fog mkdni, ha nem frissti."
-!define GTK_WINDOWS_INCOMPATIBLE "A Windows 95/98/Me nem kompatibillisek a GTK+ 2.8.0 vagy jabb vltozatokkal. A GTK+ ${GTK_INSTALL_VERSION} nem kerl teleptsre. $\rHa a GTK+ ${GTK_MIN_VERSION} vagy jabb mg nincs teleptve, akkor a telepts most megszakad."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "A Windows Pidgin weboldalnak felkeresse"
@@ -42,8 +39,6 @@
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Hiba a GTK+ futtatkrnyezet teleptse kzben."
-!define GTK_BAD_INSTALL_PATH "A megadott elrsi t nem rhet el, vagy nem hozhat ltre."
!define URI_HANDLERS_SECTION_TITLE "URI kezelk"
diff --git a/pidgin/win32/nsis/translations/italian.nsh b/pidgin/win32/nsis/translations/italian.nsh
index 94db272ec1..6b5fcfd02c 100644
--- a/pidgin/win32/nsis/translations/italian.nsh
+++ b/pidgin/win32/nsis/translations/italian.nsh
@@ -11,7 +11,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "Il programma di installazione gi in esecuzione"
!define PIDGIN_IS_RUNNING " attualmente in esecuzione un'istanza di Pidgin. Esci da Pidgin e riprova."
-!define GTK_INSTALLER_NEEDED "L'ambiente di runtime GTK+ non presente o deve essere aggiornato.$\rInstallare GTK+ versione ${GTK_MIN_VERSION} o maggiore"
; License Page
!define PIDGIN_LICENSE_BUTTON "Avanti >"
@@ -31,8 +30,6 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Crea una voce per Pidgin nel Menu Avvio"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT " stata trovata una versione precedente di GTK+. Vuoi aggiornarla?$\rNota: $(^Name) potrebbe non funzionare senza l'aggiornamento."
-!define GTK_WINDOWS_INCOMPATIBLE "Windows 95/98/Me non incompatible con GTK+ 2.8.0 o successivo. GTK+ ${GTK_INSTALL_VERSION} non sar installato.$\rSe non hai GTK+ ${GTK_MIN_VERSION} o successivo gi installato sul tuo computer, questa installazione sar interrotta."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Visita la pagina web di Pidgin"
@@ -41,8 +38,6 @@
!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Impossibile rimuovere la versione di Pidgin attualmente presente sul tuo computer. La nuova versione sar installata senza rimuovere la versione precedente."
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Error nell'installazione del runtime GTK+."
-!define GTK_BAD_INSTALL_PATH "Il percorso scelto non pu essere raggiunto o creato."
; URL Handler section
!define URI_HANDLERS_SECTION_TITLE "Gestori degli URI"
diff --git a/pidgin/win32/nsis/translations/japanese.nsh b/pidgin/win32/nsis/translations/japanese.nsh
index 406b7df614..4379a00007 100644
--- a/pidgin/win32/nsis/translations/japanese.nsh
+++ b/pidgin/win32/nsis/translations/japanese.nsh
@@ -12,7 +12,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "CXg[ɎsĂ܂"
!define PIDGIN_IS_RUNNING "Pidgin sĂ܂BPidgin IĂēxsĂ"
-!define GTK_INSTALLER_NEEDED "GTK+^C‹̓AbvO[hKv܂B$\rv${GTK_MIN_VERSION}͂ȏGTK+^CCXg[ĂB"
; License Page
!define PIDGIN_LICENSE_BUTTON " >"
@@ -33,14 +32,11 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "X^[gj[ Pidgin ̍ڂ쐬"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Âo[WGTK+^C‚܂BAbvO[h܂?$\r: $(^Name)̓AbvO[hȂ蓮Ȃł傤B"
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Windows PidginWeby[WKĂB"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "GTK+^C̃CXg[ŃG[܂B"
-!define GTK_BAD_INSTALL_PATH "Ȃ̓͂pXɃANZX܂͍쐬ł܂B"
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "ACXg[PidgiñWXgGg𔭌ł܂łB$\r炭ʂ̃[UɃCXg[ꂽł傤B"
diff --git a/pidgin/win32/nsis/translations/korean.nsh b/pidgin/win32/nsis/translations/korean.nsh
index 0733561201..ee7e9c0fea 100644
--- a/pidgin/win32/nsis/translations/korean.nsh
+++ b/pidgin/win32/nsis/translations/korean.nsh
@@ -7,8 +7,6 @@
;; Author: Kyung-uk Son <vvs740@chol.com>
;;
-; Startup GTK+ check
-!define GTK_INSTALLER_NEEDED "GTK+ Ÿ ȯ濡 ְų ׷̵尡 ʿմϴ.$\rGTK+ Ÿ ȯ v${GTK_MIN_VERSION}̳ ̻ ġּ."
; Components Page
!define PIDGIN_SECTION_TITLE " ޽ (ʼ)"
@@ -17,11 +15,8 @@
!define GTK_SECTION_DESCRIPTION " ϴ Ƽ ÷ GUI Ŷ"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT " GTK+ Ÿ ãҽϴ. ׷̵ұ?$\rNote: ׷̵ ֽϴ."
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "GTK+ Ÿ ġ ߻."
-!define GTK_BAD_INSTALL_PATH "ԷϽ ο ų ϴ."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "ν緯 Ʈ Ʈ ã ϴ.$\r α׷ ٸ ġ ϴ."
diff --git a/pidgin/win32/nsis/translations/kurdish.nsh b/pidgin/win32/nsis/translations/kurdish.nsh
index 361c4107ef..28b7f46fa6 100644
--- a/pidgin/win32/nsis/translations/kurdish.nsh
+++ b/pidgin/win32/nsis/translations/kurdish.nsh
@@ -12,7 +12,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "Sazker jixwe dimee."
!define PIDGIN_IS_RUNNING "Pidgin niha jixwe dimee. Ji Pidgin derkeve careke din biceribne."
-!define GTK_INSTALLER_NEEDED "Derdora runtime ya GTK+ an tune an rojanekirina w pwst e. $\rJi kerema xwe v${GTK_MIN_VERSION} an bilindtir a GTK+ saz bike."
; License Page
!define PIDGIN_LICENSE_BUTTON "P >"
@@ -32,14 +31,11 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Pidgin binivse menuya destpk"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Guhertoyeke kevn a GTK+ hatiye dtin. Tu dixwaz bilind bik?$\rNot: Heke tu nek, dibe ku $(^Name) naxebite."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Were Malpera Pidgin a Windows"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Di sazkirina GTK+ de ewt derket."
-!define GTK_BAD_INSTALL_PATH "rya te nivsand nay gihitin an afirandin."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "Raker tketiyn registry yn Pidgin nedt. $\rQey bikarhnereke din v bername saz kir."
diff --git a/pidgin/win32/nsis/translations/lithuanian.nsh b/pidgin/win32/nsis/translations/lithuanian.nsh
index 9649772b1e..f272e512fd 100644
--- a/pidgin/win32/nsis/translations/lithuanian.nsh
+++ b/pidgin/win32/nsis/translations/lithuanian.nsh
@@ -9,7 +9,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "Diegimo programa jau paleista."
!define PIDGIN_IS_RUNNING "iuo metu Pidgin yra paleistas. Udarykite i program ir pabandykite i naujo."
-!define GTK_INSTALLER_NEEDED "GTK+ vykdymo meto aplinkos nra arba ji turi bti atnaujinta.$\rdiekite v${GTK_MIN_VERSION} arba naujesn GTK+ vykdymo meto aplinkos versij"
; License Page
!define PIDGIN_LICENSE_BUTTON "Toliau >"
@@ -29,8 +28,6 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Sukurti pradinio meniu ra, skirt Pidgin."
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Rasta sena GTK+ vykdymo meto aplinkos versija. Ar norite j atnaujinti?$\rPastaba: $(^Name) gali neveikti, jeigu to nepadarysite."
-!define GTK_WINDOWS_INCOMPATIBLE "Windows 95/98/Me yra nesuderinami su GTK+ 2.8.0 ir naujesnmis versijomis. GTK+ ${GTK_INSTALL_VERSION} nebus diegta.$\rJeigu neturite sidieg GTK+ ${GTK_MIN_VERSION} ar naujesns versijos, diegimas dabar bus nutrauktas."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Aplankyti Pidgin tinklalap"
@@ -39,8 +36,6 @@
!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Nepavyko idiegti anksiau diegtos Pidgin versijos. Nauja versija bus diegta neidiegus senosios."
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "GTK+ vykdymo meto aplinkos diegimo klaida"
-!define GTK_BAD_INSTALL_PATH "Js vestas kelias negali bti pasiektas ar sukurtas."
; URL Handler section
!define URI_HANDLERS_SECTION_TITLE "URI dorokls"
diff --git a/pidgin/win32/nsis/translations/norwegian.nsh b/pidgin/win32/nsis/translations/norwegian.nsh
index 3c546c5ad8..6bfa31e60a 100644
--- a/pidgin/win32/nsis/translations/norwegian.nsh
+++ b/pidgin/win32/nsis/translations/norwegian.nsh
@@ -11,7 +11,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "Installeren kjrer allerede."
!define PIDGIN_IS_RUNNING "En instans av Pidgin kjrer fra fr. Avslutt Pidgin og prv igjen."
-!define GTK_INSTALLER_NEEDED "GTK+ runtime environment mangler eller trenger en oppgradering.$\rVennligst installr GTK+ v${GTK_MIN_VERSION} eller hyere"
; License Page
!define PIDGIN_LICENSE_BUTTON "Neste >"
@@ -31,14 +30,11 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Legg til Pidgin i Startmenyen"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "En eldre versjon av GTK+ runtime ble funnet. nsker du oppgradere?$\rMerk: $(^Name) vil kanskje ikke virke hvis du ikke oppgraderer."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Besk Pidgin for Windows' Nettside"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "En feil oppstod ved installering av GTK+ runtime."
-!define GTK_BAD_INSTALL_PATH "Stien du oppga kan ikke aksesseres eller lages."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "Avinstalleringsprogrammet kunne ikke finne noen registeroppfring for Pidgin.$\rTrolig har en annen bruker avinstallert denne applikasjonen."
diff --git a/pidgin/win32/nsis/translations/persian.nsh b/pidgin/win32/nsis/translations/persian.nsh
index 88654e66a4..b34c02b6db 100644
--- a/pidgin/win32/nsis/translations/persian.nsh
+++ b/pidgin/win32/nsis/translations/persian.nsh
@@ -13,7 +13,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "ȝ ."
!define PIDGIN_IS_RUNNING " . ."
-!define GTK_INSTALLER_NEEDED " GTK+ .$\r ${GTK_MIN_VERSION} GTK+ "
; License Page
!define PIDGIN_LICENSE_BUTTON " >"
@@ -33,8 +32,6 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC " "
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT " GTK+ . Ͽ$\r: $(^Name) ."
-!define GTK_WINDOWS_INCOMPATIBLE " 95/98/Me GTK+ 2.8.0 Ґ . GTK+ ${GTK_INSTALL_VERSION} .$\r ǐ GTK+ ${GTK_MIN_VERSION} ϡ ."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE " "
@@ -43,8 +40,6 @@
!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL " . ."
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR " GTK+."
-!define GTK_BAD_INSTALL_PATH " ."
; URL Handler section
!define URI_HANDLERS_SECTION_TITLE " "
diff --git a/pidgin/win32/nsis/translations/polish.nsh b/pidgin/win32/nsis/translations/polish.nsh
index 413cb1e4bd..d3643169e0 100644
--- a/pidgin/win32/nsis/translations/polish.nsh
+++ b/pidgin/win32/nsis/translations/polish.nsh
@@ -8,13 +8,6 @@
;; Note: If translating this file, replace '!insertmacro PIDGIN_MACRO_DEFAULT_STRING'
;; with '!define'.
-; Make sure to update the PIDGIN_MACRO_LANGUAGEFILE_END macro in
-; langmacros.nsh when updating this file
-
-; Startup Checks
-!define INSTALLER_IS_RUNNING "Instalator jest ju uruchomiony."
-!define PIDGIN_IS_RUNNING "Program Pidgin jest obecnie uruchomiony. Prosz zakoczy dziaanie programu Pidgin i sprbowa ponownie."
-!define GTK_INSTALLER_NEEDED "Brak biblioteki GTK+ lub wymaga zaktualizowania.$\rProsz zainstalowa wersj ${GTK_MIN_VERSION} lub wysz biblioteki GTK+"
; License Page
!define PIDGIN_LICENSE_BUTTON "Dalej >"
@@ -27,7 +20,6 @@
!define PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE "Pulpit"
!define PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE "Menu Start"
!define PIDGIN_SECTION_DESCRIPTION "Gwne pliki programu Pidgin i biblioteki DLL"
-!define GTK_SECTION_DESCRIPTION "Wieloplatformowy zestaw narzdzi do tworzenia interfejsu graficznego, uywany przez program Pidgin"
!define PIDGIN_SHORTCUTS_SECTION_DESCRIPTION "Skrty do uruchamiania programu Pidgin"
!define PIDGIN_DESKTOP_SHORTCUT_DESC "Utworzenie skrtu do programu Pidgin na pulpicie"
@@ -40,46 +32,10 @@
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Odwied stron WWW programu Pidgin"
-; Pidgin Section Prompts and Texts
-!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Nie mona odinstalowa obecnie zainstalowanej wersji programu Pidgin. Nowa wersja zostanie zainstalowana bez usuwania obecnie zainstalowanej wersji."
-
; GTK+ Section Prompts
!define GTK_INSTALL_ERROR "Bd podczas instalowania biblioteki GTK+."
!define GTK_BAD_INSTALL_PATH "Nie mona uzyska dostpu do podanej cieki lub jej utworzy."
-; URL Handler section
-!define URI_HANDLERS_SECTION_TITLE "Obsuga adresw URI"
-
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "Instalator nie moe odnale wpisw w rejestrze dla programu Pidgin.$\rMoliwe, e inny uytkownik zainstalowa ten program."
-!define un.PIDGIN_UNINSTALL_ERROR_2 "Brak uprawnie do odinstalowania tego programu."
-
-; Spellcheck Section Prompts
-!define PIDGIN_SPELLCHECK_SECTION_TITLE "Obsuga sprawdzania pisowni"
-!define PIDGIN_SPELLCHECK_ERROR "Bd podczas instalowania sprawdzania pisowni"
-!define PIDGIN_SPELLCHECK_DICT_ERROR "Bd podczas instalowania sownika dla sprawdzania pisowni"
-!define PIDGIN_SPELLCHECK_SECTION_DESCRIPTION "Obsuga sprawdzania pisowni (do jej instalacji wymagane jest poczenie z Internetem)."
-!define ASPELL_INSTALL_FAILED "Instalacja nie powioda si"
-!define PIDGIN_SPELLCHECK_BRETON "bretoski"
-!define PIDGIN_SPELLCHECK_CATALAN "kataloski"
-!define PIDGIN_SPELLCHECK_CZECH "czeski"
-!define PIDGIN_SPELLCHECK_WELSH "walijski"
-!define PIDGIN_SPELLCHECK_DANISH "duski"
-!define PIDGIN_SPELLCHECK_GERMAN "niemiecki"
-!define PIDGIN_SPELLCHECK_GREEK "grecki"
-!define PIDGIN_SPELLCHECK_ENGLISH "angielski"
-!define PIDGIN_SPELLCHECK_ESPERANTO "esperanto"
-!define PIDGIN_SPELLCHECK_SPANISH "hiszpaski"
-!define PIDGIN_SPELLCHECK_FAROESE "farerski"
-!define PIDGIN_SPELLCHECK_FRENCH "francuski"
-!define PIDGIN_SPELLCHECK_ITALIAN "woski"
-!define PIDGIN_SPELLCHECK_DUTCH "holenderski"
-!define PIDGIN_SPELLCHECK_NORWEGIAN "norweski"
-!define PIDGIN_SPELLCHECK_POLISH "polski"
-!define PIDGIN_SPELLCHECK_PORTUGUESE "portugalski"
-!define PIDGIN_SPELLCHECK_ROMANIAN "rumuski"
-!define PIDGIN_SPELLCHECK_RUSSIAN "rosyjski"
-!define PIDGIN_SPELLCHECK_SLOVAK "sowacki"
-!define PIDGIN_SPELLCHECK_SWEDISH "szwedzki"
-!define PIDGIN_SPELLCHECK_UKRAINIAN "ukraiski"
-
+!define un.PIDGIN_UNINSTALL_ERROR_2 "Brak uprawnie do odinstalowania tego programu." \ No newline at end of file
diff --git a/pidgin/win32/nsis/translations/portuguese-br.nsh b/pidgin/win32/nsis/translations/portuguese-br.nsh
index 7da0d4a4be..f0a6433acf 100644
--- a/pidgin/win32/nsis/translations/portuguese-br.nsh
+++ b/pidgin/win32/nsis/translations/portuguese-br.nsh
@@ -8,8 +8,6 @@
;; Version 3
;;
-; Startup GTK+ check
-!define GTK_INSTALLER_NEEDED "O ambiente de tempo de execuo do GTK+ est ausente ou precisa ser atualizado.$\rFavor instalar a verso v${GTK_MIN_VERSION} ou superior do ambiente de tempo de execuo do GTK+."
; License Page
!define PIDGIN_LICENSE_BUTTON "Avanar >"
@@ -29,11 +27,8 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Crie uma entrada no Menu Iniciar para o Pidgin"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Uma verso antiga do ambiente de tempo de execuo do GTK+ foi encontrada. Voc deseja atualiz-lo?$\rNota: O $(^Name) poder no funcionar a menos que voc o faa."
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Erro ao instalar o ambiente de tempo de execuo do GTK+."
-!define GTK_BAD_INSTALL_PATH "O caminho que voc digitou no pde ser acessado ou criado."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Visite a pgina da web do Pidgin para Windows"
@@ -44,7 +39,6 @@
!define INSTALLER_IS_RUNNING "O instalador j est em execuo."
!define PIDGIN_IS_RUNNING "Uma instncia do Pidgin est em execuo. Feche o Pidgin e tente novamente."
-!define GTK_WINDOWS_INCOMPATIBLE "O Windows 95/98/Me incompatvel com o GTK+ 2.8.0 ou superior. O GTK+ ${GTK_INSTALL_VERSION} no ser instalado.$\rSe voc no possuir o GTK+ verso ${GTK_MIN_VERSION} ou superior j instalado, o instalador ir fechar agora."
!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "No foi possvel desinstalar a verso do Pidgin que est instalada atualmente. A nova verso ser instalada sem que a verso antiga seja removida."
!define URI_HANDLERS_SECTION_TITLE "Handlers para endereos"
!define PIDGIN_SPELLCHECK_SECTION_TITLE "Suporte a verificao ortogrfica"
diff --git a/pidgin/win32/nsis/translations/portuguese.nsh b/pidgin/win32/nsis/translations/portuguese.nsh
index 0b1307041e..2837df89a0 100644
--- a/pidgin/win32/nsis/translations/portuguese.nsh
+++ b/pidgin/win32/nsis/translations/portuguese.nsh
@@ -11,7 +11,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "O instalador j est a ser executado."
!define PIDGIN_IS_RUNNING "Uma instncia do Pidgin j est a ser executada. Saia do Pidgin e tente de novo."
-!define GTK_INSTALLER_NEEDED "O ambiente de GTK+ est ausente ou precisa de ser actualizado.$\rPor favor instale a verso v${GTK_MIN_VERSION} ou mais recente do ambiente de GTK+."
; License Page
!define PIDGIN_LICENSE_BUTTON "Seguinte >"
@@ -31,14 +30,11 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Criar uma entrada para o Pidgin na Barra de Iniciar"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Foi encontrada uma verso antiga do ambiente de execuo GTK+. Deseja actualiz-lo?$\rNota: O $(^Name) poder no funcionar se no o fizer."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Visite a Pgina Web do Pidgin para Windows"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Erro ao instalar o ambiente de execuo GTK+."
-!define GTK_BAD_INSTALL_PATH "O caminho que digitou no pode ser acedido nem criado."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "O desinstalador no encontrou entradas de registo do Pidgin.$\r provvel que outro utilizador tenha instalado este programa."
diff --git a/pidgin/win32/nsis/translations/romanian.nsh b/pidgin/win32/nsis/translations/romanian.nsh
index 8dde8203dd..e43b68fd8b 100644
--- a/pidgin/win32/nsis/translations/romanian.nsh
+++ b/pidgin/win32/nsis/translations/romanian.nsh
@@ -10,7 +10,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "Instalarea este deja pornit."
!define PIDGIN_IS_RUNNING "O instan a programului Pidgin este deja pornit. nchidei-o i ncercai din nou."
-!define GTK_INSTALLER_NEEDED "Mediul GTK+ nu e prezent sau avei o versiune prea veche.$\rInstalai cel puin versiunea v${GTK_MIN_VERSION} a mediului GTK+"
; License Page
!define PIDGIN_LICENSE_BUTTON "nainte >"
@@ -30,14 +29,11 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Creeaz o intrare Pidgin n meniul Start"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Avei o versiune veche a mediului GTK+. Dorii s o actualizai?$\rNot: E posibil ca $(^Name) s nu funcioneze cu versiunea veche."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Vizitai pagina de web Windows Pidgin"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Eroare la instalarea mediului GTK+."
-!define GTK_BAD_INSTALL_PATH "Directorul specificat nu poate fi accesat sau creat."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "Programul de dezinstalare nu a gsit intrri Pidgin n regitri.$\rProbabil un alt utilizator a instalat aceast aplicaie."
diff --git a/pidgin/win32/nsis/translations/russian.nsh b/pidgin/win32/nsis/translations/russian.nsh
index 0219680bda..05f2a9fcf6 100644
--- a/pidgin/win32/nsis/translations/russian.nsh
+++ b/pidgin/win32/nsis/translations/russian.nsh
@@ -8,9 +8,6 @@
;; Version 2
;;
-; Startup GTK+ check
-!define GTK_INSTALLER_NEEDED " GTK+ .$\r v${GTK_MIN_VERSION} GTK+."
-
; License Page
!define PIDGIN_LICENSE_BUTTON " >"
!define PIDGIN_LICENSE_BOTTOM_TEXT "$(^Name) GPL. . $_CLICK"
@@ -22,14 +19,11 @@
!define GTK_SECTION_DESCRIPTION " , Pidgin."
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT " GTK+. ?$\r: Pidgin ."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE " - Pidgin Windows."
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR " GTK+."
-!define GTK_BAD_INSTALL_PATH " ."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 " Pidgin ..$\r ."
diff --git a/pidgin/win32/nsis/translations/serbian-latin.nsh b/pidgin/win32/nsis/translations/serbian-latin.nsh
index 62e91090f3..a842e62e01 100644
--- a/pidgin/win32/nsis/translations/serbian-latin.nsh
+++ b/pidgin/win32/nsis/translations/serbian-latin.nsh
@@ -7,8 +7,6 @@
;; Author: Danilo Segan <dsegan@gmx.net>
;;
-; Startup GTK+ check
-!define GTK_INSTALLER_NEEDED "GTK+ okolina za izvravanje ili nije naena ili se moraunaprediti.$\rMolimo instalirajte v${GTK_MIN_VERSION} ili veu GTK+ okoline za izvravanje"
; Components Page
!define PIDGIN_SECTION_TITLE "Pidgin klijent za brze poruke (neophodno)"
@@ -17,11 +15,8 @@
!define GTK_SECTION_DESCRIPTION "Skup orua za grafiko okruenje, za vie platformi, koristi ga Pidgin "
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Naena je stara verzija GTK+ izvrne okoline. Da li elite da je unapredite?$\rPrimedba: Ukoliko to ne uradite, $(^Name) moda nee raditi."
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Greka prilikom instalacije GTK+ okoline za izvravanje."
-!define GTK_BAD_INSTALL_PATH "Putanja koju ste naveli se ne moe ni napraviti niti joj se moe prii."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "Program za uklanjanje instalacije ne moe da pronae stavke registra za Pidgin.$\rVerovatno je ovu aplikaciju instalirao drugi korisnik."
diff --git a/pidgin/win32/nsis/translations/simp-chinese.nsh b/pidgin/win32/nsis/translations/simp-chinese.nsh
index bdd05db74e..1ef9242ce2 100644
--- a/pidgin/win32/nsis/translations/simp-chinese.nsh
+++ b/pidgin/win32/nsis/translations/simp-chinese.nsh
@@ -11,7 +11,6 @@
; Startup GTK+ check
!define INSTALLER_IS_RUNNING "װѾС"
!define PIDGIN_IS_RUNNING "Pidgin ʵС˳ Pidgin ȻһΡ"
-!define GTK_INSTALLER_NEEDED "ȱ GTK+ ʱ̻Ҫ¸û$\r밲װ v${GTK_MIN_VERSION} ߰汾 GTK+ ʱ̻"
; License Page
!define PIDGIN_LICENSE_BUTTON "һ >"
@@ -31,14 +30,11 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "ڿʼ˵д Pidgin Ŀݷʽ"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "˾ɰ汾 GTK+ ʱ̡Ҫ?$\rע: $(^Name) ޷"
; Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE " Windows Pidgin ҳ"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "װ GTK+ ʱʧܡ"
-!define GTK_BAD_INSTALL_PATH "޷ʻ򴴽·"
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "жسҲ Pidgin עĿ$\rûװ˴˳"
diff --git a/pidgin/win32/nsis/translations/slovak.nsh b/pidgin/win32/nsis/translations/slovak.nsh
index 5482ddd831..806292f801 100644
--- a/pidgin/win32/nsis/translations/slovak.nsh
+++ b/pidgin/win32/nsis/translations/slovak.nsh
@@ -11,7 +11,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "Intalcia je u spusten"
!define PIDGIN_IS_RUNNING "Pidgin je prve spusten. Vypnite ho a skste znova."
-!define GTK_INSTALLER_NEEDED "GTK+ runtime prostredie chba alebo mus by upgradovan.$\rNaintalujte, prosm, GTK+ runtime verziu v${GTK_MIN_VERSION}, alebo noviu"
; License Page
!define PIDGIN_LICENSE_BUTTON "alej >"
@@ -31,14 +30,11 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Vytvori odkaz na Pidgin v tart Menu"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Bola njden staria verzia GTK+ runtime. Prajete si upgradova sasn verziu?$\rPoznmka: $(^Name) nemus po upgradovan fungova sprvne."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Navtvi webstrnku Windows Pidgin"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Chyba pri intalcii GTK+ runtime."
-!define GTK_BAD_INSTALL_PATH "Zadan cesta nie je prstupn alebo ju nie je mon vytvori."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "Intaltoru sa nepodarilo njs poloky v registri pre Pidgin.$\rJe mon, e tto aplikciu naintaloval in pouvate."
diff --git a/pidgin/win32/nsis/translations/slovenian.nsh b/pidgin/win32/nsis/translations/slovenian.nsh
index 20b843970d..a8e2fb9a0c 100644
--- a/pidgin/win32/nsis/translations/slovenian.nsh
+++ b/pidgin/win32/nsis/translations/slovenian.nsh
@@ -11,7 +11,6 @@
; Startup GTK+ check
!define INSTALLER_IS_RUNNING "Nameanje e poteka."
!define PIDGIN_IS_RUNNING "Trenutno e tee ena razliica Pidgina. Prosimo, zaprite aplikacijo in poskusite znova."
-!define GTK_INSTALLER_NEEDED "Izvajalno okolje GTK+ manjka ali pa ga je potrebno nadgraditi.$\rProsimo, namestite v${GTK_MIN_VERSION} ali novejo razliico izvajalnega okolja GTK+"
; License Page
!define PIDGIN_LICENSE_BUTTON "Naprej >"
@@ -31,8 +30,6 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Ustvari izbiro Pidgin v meniju Start"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Nameeno imate starejo razliico izvajalnega okolja GTK+. Jo elite nadgraditi?$\rOpomba: e je ne boste nadgradili, $(^Name) morda ne bo deloval."
-!define GTK_WINDOWS_INCOMPATIBLE "Okolja Windows 95/98/Me z GTK+ 2.8.0 ali novejimi niso zdruljiva. GTK+ ${GTK_INSTALL_VERSION} will not be installed.$\rIf you don't have GTK+ ${GTK_MIN_VERSION} ali noveji je e nameen, zato se bo namestitev zdaj prekinila."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Obiite spletno stran Windows Pidgin"
@@ -41,8 +38,6 @@
!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Trenutno nameene razliice Pidgina ni mogoe odstraniti. Nova razliica bo nameena brez odstranitve trenutno nameene razliice."
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Napaka pri namestitvi izvajalnega okolja GTK+."
-!define GTK_BAD_INSTALL_PATH "Pot, ki ste jo vnesli, ni dosegljiva ali je ni mogoe ustvariti."
; URL Handler section
!define URI_HANDLERS_SECTION_TITLE "URI Handlers"
diff --git a/pidgin/win32/nsis/translations/spanish.nsh b/pidgin/win32/nsis/translations/spanish.nsh
index 923c58c3ef..7c934ca837 100644
--- a/pidgin/win32/nsis/translations/spanish.nsh
+++ b/pidgin/win32/nsis/translations/spanish.nsh
@@ -8,9 +8,6 @@
;; Version 2
;;
-; Startup GTK+ check
-!define GTK_INSTALLER_NEEDED "El entorno de ejecucin de GTK+ falta o necesita ser actualizado.$\rPor favor, instale la versin v${GTK_MIN_VERSION} del ejecutable GTK+ o alguna posterior."
-
; License Page
!define PIDGIN_LICENSE_BUTTON "Siguiente >"
!define PIDGIN_LICENSE_BOTTOM_TEXT "$(^Name) se distribuye bajo la licencia GPL. Esta licencia se incluye aqu slo con propsito informativo: $_CLICK"
@@ -22,14 +19,11 @@
!define GTK_SECTION_DESCRIPTION "Una suite de herramientas GUI multiplataforma, utilizada por Pidgin"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Se ha encontrado una versin antiga del ejecutable de GTK+. Desea actualizarla?$\rObservacin: $(^Name) no funcionar a menos que lo haga."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Visite la pgina Web de Pidgin Windows"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Error al instalar el ejecutable GTK+."
-!define GTK_BAD_INSTALL_PATH "No se pudo acceder o crear la ruta que vd. indic."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "El desinstalador no pudo encontrar las entradas en el registro de Pidgin.$\rEs probable que otro usuario instalara la aplicacin."
diff --git a/pidgin/win32/nsis/translations/swedish.nsh b/pidgin/win32/nsis/translations/swedish.nsh
index b7a07cd49b..9583383314 100644
--- a/pidgin/win32/nsis/translations/swedish.nsh
+++ b/pidgin/win32/nsis/translations/swedish.nsh
@@ -1,80 +1,76 @@
-;;
-;; swedish.nsh
-;;
-;; Swedish language strings for the Windows Pidgin NSIS installer.
-;; Windows Code page: 1252
-;;
-;; Author: Tore Lundqvist <tlt@mima.x.se>, 2003.
-;; Author: Peter Hjalmarsson <xake@telia.com>, 2005.
-;; Version 3
-
-; Startup Checks
-!define INSTALLER_IS_RUNNING "Installationsprogrammet krs redan."
-!define PIDGIN_IS_RUNNING "En instans av Pidgin krs redan. Avsluta Pidgin och frsk igen."
-!define GTK_INSTALLER_NEEDED "Krmiljn GTK+ r antingen inte installerat eller behver uppgraderas.$\rVar god installera v${GTK_MIN_VERSION} eller hgre av GTK+-krmiljn."
-
-; License Page
-!define PIDGIN_LICENSE_BUTTON "Nsta >"
-!define PIDGIN_LICENSE_BOTTOM_TEXT "$(^Name) r utgivet under GPL. Licensen finns tillgnglig hr fr informationssyften enbart. $_CLICK"
-
-; Components Page
-!define PIDGIN_SECTION_TITLE "Pidgin Snabbmeddelandeklient (obligatorisk)"
-!define GTK_SECTION_TITLE "GTK+-krmilj (obligatorisk)"
-!define PIDGIN_SHORTCUTS_SECTION_TITLE "Genvgar"
-!define PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE "Skrivbord"
-!define PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE "Startmeny"
-!define PIDGIN_SECTION_DESCRIPTION "Pidgins krnfiler och DLL:er"
-!define GTK_SECTION_DESCRIPTION "En GUI-verktygsuppsttning fr flera olika plattformar som Pidgin anvnder."
-
-!define PIDGIN_SHORTCUTS_SECTION_DESCRIPTION "Genvgar fr att starta Pidgin"
-!define PIDGIN_DESKTOP_SHORTCUT_DESC "Skapar en genvg till Pidgin p skrivbordet"
-!define PIDGIN_STARTMENU_SHORTCUT_DESC "Skapar ett tillgg i startmenyn fr Pidgin"
-
-; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "En ldre version av GTK+ runtime hittades, vill du uppgradera den?$\rOBS! $(^Name) kommer kanske inte att fungera om du inte uppgraderar."
-
-; Installer Finish Page
-!define PIDGIN_FINISH_VISIT_WEB_SITE "Besk Windows-Pidgin hemsida"
-
-; Pidgin Section Prompts and Texts
-!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Kunde inte avinstallera den nuvarande versionen av Pidgin. Den nya versionen kommer att installeras utan att ta bort den fr nrvarande installerade versionen."
-
-; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Fel vid installation av GTK+ runtime."
-!define GTK_BAD_INSTALL_PATH "Den skvg du angivit gr inte att komma t eller skapa."
-
-; URL Handler section
-!define URI_HANDLERS_SECTION_TITLE "URI Hanterare"
-
-; Uninstall Section Prompts
-!define un.PIDGIN_UNINSTALL_ERROR_1 "Avinstalleraren kunde inte hitta registervrden fr Pidgin.$\rAntagligen har en annan anvndare installerat applikationen."
-!define un.PIDGIN_UNINSTALL_ERROR_2 "Du har inte rttigheter att avinstallera den hr applikationen."
-
-; Spellcheck Section Prompts
-!define PIDGIN_SPELLCHECK_SECTION_TITLE "Std fr rttstavning"
-!define PIDGIN_SPELLCHECK_ERROR "Fel vid installation fr rttstavning"
-!define PIDGIN_SPELLCHECK_DICT_ERROR "Fel vid installation av rttstavningsordlista"
-!define PIDGIN_SPELLCHECK_SECTION_DESCRIPTION "Std fr Rttstavning. (Internetanslutning krvs fr installation)"
-!define ASPELL_INSTALL_FAILED "Installationen misslyckades"
-!define PIDGIN_SPELLCHECK_BRETON "Bretonska"
-!define PIDGIN_SPELLCHECK_CATALAN "Katalanska"
-!define PIDGIN_SPELLCHECK_CZECH "Tjeckiska"
-!define PIDGIN_SPELLCHECK_WELSH "Kymriska"
-!define PIDGIN_SPELLCHECK_DANISH "Danska"
-!define PIDGIN_SPELLCHECK_GERMAN "Tyska"
-!define PIDGIN_SPELLCHECK_GREEK "Grekiska"
-!define PIDGIN_SPELLCHECK_ENGLISH "Engelska"
-!define PIDGIN_SPELLCHECK_ESPERANTO "Esperanto"
-!define PIDGIN_SPELLCHECK_SPANISH "Spanska"
-!define PIDGIN_SPELLCHECK_FAROESE "Friska"
-!define PIDGIN_SPELLCHECK_FRENCH "Franska"
-!define PIDGIN_SPELLCHECK_ITALIAN "Italienska"
-!define PIDGIN_SPELLCHECK_DUTCH "Nederlndska"
-!define PIDGIN_SPELLCHECK_NORWEGIAN "Norska"
-!define PIDGIN_SPELLCHECK_POLISH "Polska"
-!define PIDGIN_SPELLCHECK_PORTUGUESE "Portugisiska"
-!define PIDGIN_SPELLCHECK_ROMANIAN "Rumnska"
-!define PIDGIN_SPELLCHECK_RUSSIAN "Ryska"
-!define PIDGIN_SPELLCHECK_SLOVAK "Slovakiska"
-!define PIDGIN_SPELLCHECK_SWEDISH "Svenska"
-!define PIDGIN_SPELLCHECK_UKRAINIAN "Ukrainska"
+;;
+;; swedish.nsh
+;;
+;; Swedish language strings for the Windows Pidgin NSIS installer.
+;; Windows Code page: 1252
+;;
+;; Author: Tore Lundqvist <tlt@mima.x.se>, 2003.
+;; Author: Peter Hjalmarsson <xake@telia.com>, 2005.
+;; Version 3
+
+; Startup Checks
+!define INSTALLER_IS_RUNNING "Installationsprogrammet krs redan."
+!define PIDGIN_IS_RUNNING "En instans av Pidgin krs redan. Avsluta Pidgin och frsk igen."
+
+; License Page
+!define PIDGIN_LICENSE_BUTTON "Nsta >"
+!define PIDGIN_LICENSE_BOTTOM_TEXT "$(^Name) r utgivet under GPL. Licensen finns tillgnglig hr fr informationssyften enbart. $_CLICK"
+
+; Components Page
+!define PIDGIN_SECTION_TITLE "Pidgin Snabbmeddelandeklient (obligatorisk)"
+!define GTK_SECTION_TITLE "GTK+-krmilj (obligatorisk)"
+!define PIDGIN_SHORTCUTS_SECTION_TITLE "Genvgar"
+!define PIDGIN_DESKTOP_SHORTCUT_SECTION_TITLE "Skrivbord"
+!define PIDGIN_STARTMENU_SHORTCUT_SECTION_TITLE "Startmeny"
+!define PIDGIN_SECTION_DESCRIPTION "Pidgins krnfiler och DLL:er"
+!define GTK_SECTION_DESCRIPTION "En GUI-verktygsuppsttning fr flera olika plattformar som Pidgin anvnder."
+
+!define PIDGIN_SHORTCUTS_SECTION_DESCRIPTION "Genvgar fr att starta Pidgin"
+!define PIDGIN_DESKTOP_SHORTCUT_DESC "Skapar en genvg till Pidgin p skrivbordet"
+!define PIDGIN_STARTMENU_SHORTCUT_DESC "Skapar ett tillgg i startmenyn fr Pidgin"
+
+; GTK+ Directory Page
+
+; Installer Finish Page
+!define PIDGIN_FINISH_VISIT_WEB_SITE "Besk Windows-Pidgin hemsida"
+
+; Pidgin Section Prompts and Texts
+!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Kunde inte avinstallera den nuvarande versionen av Pidgin. Den nya versionen kommer att installeras utan att ta bort den fr nrvarande installerade versionen."
+
+; GTK+ Section Prompts
+
+; URL Handler section
+!define URI_HANDLERS_SECTION_TITLE "URI Hanterare"
+
+; Uninstall Section Prompts
+!define un.PIDGIN_UNINSTALL_ERROR_1 "Avinstalleraren kunde inte hitta registervrden fr Pidgin.$\rAntagligen har en annan anvndare installerat applikationen."
+!define un.PIDGIN_UNINSTALL_ERROR_2 "Du har inte rttigheter att avinstallera den hr applikationen."
+
+; Spellcheck Section Prompts
+!define PIDGIN_SPELLCHECK_SECTION_TITLE "Std fr rttstavning"
+!define PIDGIN_SPELLCHECK_ERROR "Fel vid installation fr rttstavning"
+!define PIDGIN_SPELLCHECK_DICT_ERROR "Fel vid installation av rttstavningsordlista"
+!define PIDGIN_SPELLCHECK_SECTION_DESCRIPTION "Std fr Rttstavning. (Internetanslutning krvs fr installation)"
+!define ASPELL_INSTALL_FAILED "Installationen misslyckades"
+!define PIDGIN_SPELLCHECK_BRETON "Bretonska"
+!define PIDGIN_SPELLCHECK_CATALAN "Katalanska"
+!define PIDGIN_SPELLCHECK_CZECH "Tjeckiska"
+!define PIDGIN_SPELLCHECK_WELSH "Kymriska"
+!define PIDGIN_SPELLCHECK_DANISH "Danska"
+!define PIDGIN_SPELLCHECK_GERMAN "Tyska"
+!define PIDGIN_SPELLCHECK_GREEK "Grekiska"
+!define PIDGIN_SPELLCHECK_ENGLISH "Engelska"
+!define PIDGIN_SPELLCHECK_ESPERANTO "Esperanto"
+!define PIDGIN_SPELLCHECK_SPANISH "Spanska"
+!define PIDGIN_SPELLCHECK_FAROESE "Friska"
+!define PIDGIN_SPELLCHECK_FRENCH "Franska"
+!define PIDGIN_SPELLCHECK_ITALIAN "Italienska"
+!define PIDGIN_SPELLCHECK_DUTCH "Nederlndska"
+!define PIDGIN_SPELLCHECK_NORWEGIAN "Norska"
+!define PIDGIN_SPELLCHECK_POLISH "Polska"
+!define PIDGIN_SPELLCHECK_PORTUGUESE "Portugisiska"
+!define PIDGIN_SPELLCHECK_ROMANIAN "Rumnska"
+!define PIDGIN_SPELLCHECK_RUSSIAN "Ryska"
+!define PIDGIN_SPELLCHECK_SLOVAK "Slovakiska"
+!define PIDGIN_SPELLCHECK_SWEDISH "Svenska"
+!define PIDGIN_SPELLCHECK_UKRAINIAN "Ukrainska"
diff --git a/pidgin/win32/nsis/translations/trad-chinese.nsh b/pidgin/win32/nsis/translations/trad-chinese.nsh
index 99a7ca5ddc..625745daa3 100644
--- a/pidgin/win32/nsis/translations/trad-chinese.nsh
+++ b/pidgin/win32/nsis/translations/trad-chinese.nsh
@@ -13,7 +13,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "w˵{b椤C"
!define PIDGIN_IS_RUNNING "Pidgin b椤AХoӵ{AwˡC"
-!define GTK_INSTALLER_NEEDED "䤣ŦX GTK+ ҩάOݭnQsC$\rЦw v${GTK_MIN_VERSION} ΥHW GTK+ ҡC"
; License Page
!define PIDGIN_LICENSE_BUTTON "U@B >"
@@ -33,8 +32,6 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "b}l\إ߱|"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "o{@ª GTK+ ҡCznNɯŶܡH$\rЪ`NGpGzɯšA $(^Name) iLkTQC"
-!define GTK_WINDOWS_INCOMPATIBLE "۪ 2.8.0 }lAGTK P Windows 95/98/Me wAۮeAGTK+ ${GTK_INSTALL_VERSION} ]N|QwˡC$\rpGtΤwgw˪ GTK+ ${GTK_MIN_VERSION} ΧsAw˵{NHYC"
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "X Windows Pidgin "
@@ -43,8 +40,6 @@
!define PIDGIN_PROMPT_CONTINUE_WITHOUT_UNINSTALL "Lkثeww˪ PidginAsNbgªpUiwˡC"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "w GTK+ ҮɵoͿ~C"
-!define GTK_BAD_INSTALL_PATH "zҿJw˥ؿLksΫإߡC"
; URL Handler section
!define URI_HANDLERS_SECTION_TITLE "URI Bz{"
diff --git a/pidgin/win32/nsis/translations/valencian.nsh b/pidgin/win32/nsis/translations/valencian.nsh
index e795e72722..90f2c35d6e 100644
--- a/pidgin/win32/nsis/translations/valencian.nsh
+++ b/pidgin/win32/nsis/translations/valencian.nsh
@@ -14,7 +14,6 @@
; Startup Checks
!define INSTALLER_IS_RUNNING "L'instalador encara est eixecutant-se."
!define PIDGIN_IS_RUNNING "Una instancia de Pidgin est eixecutant-se. Ix del Pidgin i torna a intentar-ho."
-!define GTK_INSTALLER_NEEDED "L'entorn d'eixecucio GTK+ no es troba o necessita ser actualisat.$\rPer favor instala la versio${GTK_MIN_VERSION} o superior de l'entorn GTK+"
; License Page
!define PIDGIN_LICENSE_BUTTON "Segent >"
@@ -34,14 +33,11 @@
!define PIDGIN_STARTMENU_SHORTCUT_DESC "Crear una entrada per a Pidgin en Menu Inici"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Una versio antiua de l'entorn GTK+ fon trobada. Vols actualisar-la?$\rNota: $(^Name) no funcionar si no ho fas."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Visita la pagina de Pidgin per a Windows"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Erro instalant l'entorn GTK+."
-!define GTK_BAD_INSTALL_PATH "La ruta introduida no pot ser accedida o creada."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "El desinstalador podria no trobar les entrades del registre de Pidgin.$\rProbablement un atre usuari instal esta aplicacio."
diff --git a/pidgin/win32/nsis/translations/vietnamese.nsh b/pidgin/win32/nsis/translations/vietnamese.nsh
index d71a4a0164..97082e9e88 100644
--- a/pidgin/win32/nsis/translations/vietnamese.nsh
+++ b/pidgin/win32/nsis/translations/vietnamese.nsh
@@ -9,9 +9,6 @@
;; it does, these translations can not be used.
;;
-; Startup GTK+ check
-!define GTK_INSTALLER_NEEDED "The GTK+ runtime environment không có hoặc cần được nâng cấp.$\rHãy cài đặt GTK+ runtime v${GTK_MIN_VERSION} hoặc mới hơn"
-
; License Page
!define PIDGIN_LICENSE_BUTTON "Tiếp theo >"
!define PIDGIN_LICENSE_BOTTOM_TEXT "$(^Name) được phát hành theo giấy phép GPL. Giấy phép thấy ở đây chỉ là để cung cấp thông tin mà thôi. $_CLICK"
@@ -23,14 +20,11 @@
!define GTK_SECTION_DESCRIPTION "Bộ công cụ giao diện đồ họa đa nền để dùng cho Pidgin"
; GTK+ Directory Page
-!define GTK_UPGRADE_PROMPT "Phát hiện thấy có phiên bản cũ của GTK+ runtime. Bạn muốn nâng cấp không?$\rNote: $(^Name) có thể không chạy nếu không nâng cấp."
; Installer Finish Page
!define PIDGIN_FINISH_VISIT_WEB_SITE "Hãy xem trang chủ Windows Pidgin"
; GTK+ Section Prompts
-!define GTK_INSTALL_ERROR "Lỗi cài đặt GTK+ runtime."
-!define GTK_BAD_INSTALL_PATH "Đường dẫn mà bạn nhập có thể không truy cập được hay không tạo được."
; Uninstall Section Prompts
!define un.PIDGIN_UNINSTALL_ERROR_1 "Trình gỡ cài đặt không tìm được các registry entry cho Pidgin.$\rCó thể là chương trình được người dùng khác cài đặt."
diff --git a/pidgin/win32/untar.c b/pidgin/win32/untar.c
index 7121513485..2f6d338a7c 100644
--- a/pidgin/win32/untar.c
+++ b/pidgin/win32/untar.c
@@ -80,14 +80,7 @@
#include "untar.h"
#include <glib.h>
-#if GLIB_CHECK_VERSION(2,6,0)
-# include <glib/gstdio.h>
-#else
-#define mkdir(a,b) _mkdir((a))
-#define g_mkdir mkdir
-#define g_fopen fopen
-#define g_unlink unlink
-#endif
+#include <glib/gstdio.h>
#define untar_error( error, args... ) purple_debug(PURPLE_DEBUG_ERROR, "untar", error, ## args )
#define untar_warning( warning, args... ) purple_debug(PURPLE_DEBUG_WARNING, "untar", warning, ## args )
diff --git a/pidgin/win32/winpidgin.c b/pidgin/win32/winpidgin.c
index 1538558568..13f6d088df 100644
--- a/pidgin/win32/winpidgin.c
+++ b/pidgin/win32/winpidgin.c
@@ -26,33 +26,23 @@
*/
/* This is for ATTACH_PARENT_PROCESS */
+#define UNICODE
+#define _UNICODE
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x501
#endif
#include <windows.h>
+#include <tchar.h>
#include <fcntl.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
-
-/* These will hopefully be in the win32api next time it is updated - at which point, we'll remove them */
-#ifndef LANG_PERSIAN
-#define LANG_PERSIAN 0x29
-#endif
-#ifndef LANG_BOSNIAN
-#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05
-#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08
-#endif
-#ifndef SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN
-#define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04
-#endif
-#ifndef LANG_XHOSA
-#define LANG_XHOSA 0x34
-#endif
-
+#include <sys/types.h>
+#include <sys/stat.h>
+#include "config.h"
typedef int (CALLBACK* LPFNPIDGINMAIN)(HINSTANCE, int, char**);
-typedef void (CALLBACK* LPFNSETDLLDIRECTORY)(LPCTSTR);
+typedef void (CALLBACK* LPFNSETDLLDIRECTORY)(LPCWSTR);
typedef BOOL (CALLBACK* LPFNATTACHCONSOLE)(DWORD);
static BOOL portable_mode = FALSE;
@@ -63,19 +53,19 @@ static BOOL portable_mode = FALSE;
static LPFNPIDGINMAIN pidgin_main = NULL;
static LPFNSETDLLDIRECTORY MySetDllDirectory = NULL;
-static const char *get_win32_error_message(DWORD err) {
- static char err_msg[512];
+static const TCHAR *get_win32_error_message(DWORD err) {
+ static TCHAR err_msg[512];
FormatMessage(
FORMAT_MESSAGE_FROM_SYSTEM,
NULL, err,
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
- (LPTSTR) &err_msg, sizeof(err_msg), NULL);
+ (LPTSTR) &err_msg, sizeof(err_msg) / sizeof(TCHAR), NULL);
return err_msg;
}
-static BOOL read_reg_string(HKEY key, char* sub_key, char* val_name, LPBYTE data, LPDWORD data_len) {
+static BOOL read_reg_string(HKEY key, TCHAR *sub_key, TCHAR *val_name, LPBYTE data, LPDWORD data_len) {
HKEY hkey;
BOOL ret = FALSE;
LONG retv;
@@ -86,11 +76,11 @@ static BOOL read_reg_string(HKEY key, char* sub_key, char* val_name, LPBYTE data
NULL, NULL, data, data_len)))
ret = TRUE;
else {
- const char *err_msg = get_win32_error_message(retv);
+ const TCHAR *err_msg = get_win32_error_message(retv);
- printf("Could not read reg key '%s' subkey '%s' value: '%s'.\nMessage: (%ld) %s\n",
- (key == HKEY_LOCAL_MACHINE) ? "HKLM"
- : ((key == HKEY_CURRENT_USER) ? "HKCU" : "???"),
+ _tprintf(_T("Could not read reg key '%s' subkey '%s' value: '%s'.\nMessage: (%ld) %s\n"),
+ (key == HKEY_LOCAL_MACHINE) ? _T("HKLM")
+ : ((key == HKEY_CURRENT_USER) ? _T("HKCU") : _T("???")),
sub_key, val_name, retv, err_msg);
}
RegCloseKey(hkey);
@@ -99,23 +89,36 @@ static BOOL read_reg_string(HKEY key, char* sub_key, char* val_name, LPBYTE data
TCHAR szBuf[80];
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, retv, 0,
- (LPTSTR) &szBuf, sizeof(szBuf), NULL);
- printf("Could not open reg subkey: %s\nError: (%ld) %s\n",
+ (LPTSTR) &szBuf, sizeof(szBuf) / sizeof(TCHAR), NULL);
+ _tprintf(_T("Could not open reg subkey: %s\nError: (%ld) %s\n"),
sub_key, retv, szBuf);
}
return ret;
}
-static void common_dll_prep(const char *path) {
+static void common_dll_prep(const TCHAR *path) {
HMODULE hmod;
HKEY hkey;
+ struct _stat stat_buf;
+ TCHAR test_path[MAX_PATH + 1];
+
+ _sntprintf(test_path, sizeof(test_path) / sizeof(TCHAR),
+ _T("%s\\libgtk-win32-2.0-0.dll"), path);
+ test_path[sizeof(test_path) / sizeof(TCHAR) - 1] = _T('\0');
+
+ if (_tstat(test_path, &stat_buf) != 0) {
+ printf("Unable to determine GTK+ path. \n"
+ "Assuming GTK+ is in the PATH.\n");
+ return;
+ }
+
- printf("GTK+ path found: %s\n", path);
+ _tprintf(_T("GTK+ path found: %s\n"), path);
- if ((hmod = GetModuleHandle("kernel32.dll"))) {
+ if ((hmod = GetModuleHandle(_T("kernel32.dll")))) {
MySetDllDirectory = (LPFNSETDLLDIRECTORY) GetProcAddress(
- hmod, "SetDllDirectoryA");
+ hmod, "SetDllDirectoryW");
if (!MySetDllDirectory)
printf("SetDllDirectory not supported\n");
} else
@@ -141,20 +144,21 @@ static void common_dll_prep(const char *path) {
*/
osinfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
GetVersionEx(&osinfo);
- if ((osinfo.dwMajorVersion == 5 &&
- osinfo.dwMinorVersion == 0 &&
- strcmp(osinfo.szCSDVersion, "Service Pack 3") >= 0) ||
- (osinfo.dwMajorVersion == 5 &&
- osinfo.dwMinorVersion == 1 &&
- strcmp(osinfo.szCSDVersion, "") >= 0)
+ if ((osinfo.dwMajorVersion == 5
+ && osinfo.dwMinorVersion == 0
+ && _tcscmp(osinfo.szCSDVersion, _T("Service Pack 3")) >= 0)
+ ||
+ (osinfo.dwMajorVersion == 5
+ && osinfo.dwMinorVersion == 1
+ && _tcscmp(osinfo.szCSDVersion, _T("")) >= 0)
) {
DWORD regval = 1;
DWORD reglen = sizeof(DWORD);
printf("Using Win2k (SP3+) / WinXP (No SP)... Checking SafeDllSearch\n");
read_reg_string(HKEY_LOCAL_MACHINE,
- "System\\CurrentControlSet\\Control\\Session Manager",
- "SafeDllSearchMode",
+ _T("System\\CurrentControlSet\\Control\\Session Manager"),
+ _T("SafeDllSearchMode"),
(LPBYTE) &regval,
&reglen);
@@ -162,16 +166,16 @@ static void common_dll_prep(const char *path) {
printf("Trying to set SafeDllSearchMode to 0\n");
regval = 0;
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
- "System\\CurrentControlSet\\Control\\Session Manager",
+ _T("System\\CurrentControlSet\\Control\\Session Manager"),
0, KEY_SET_VALUE, &hkey
) == ERROR_SUCCESS) {
if (RegSetValueEx(hkey,
- "SafeDllSearchMode", 0,
+ _T("SafeDllSearchMode"), 0,
REG_DWORD, (LPBYTE) &regval,
sizeof(DWORD)
) != ERROR_SUCCESS)
printf("Error writing SafeDllSearchMode. Error: %u\n",
- (UINT) GetLastError());
+ (UINT) GetLastError());
RegCloseKey(hkey);
} else
printf("Error opening Session Manager key for writing. Error: %u\n",
@@ -182,29 +186,23 @@ static void common_dll_prep(const char *path) {
}
}
-static void portable_mode_dll_prep(const char *pidgin_dir) {
+static void portable_mode_dll_prep(const TCHAR *pidgin_dir) {
/* need to be able to fit MAX_PATH + "PIDGIN_ASPELL_DIR=\\Aspell\\bin" in path2 */
- char path[MAX_PATH + 1];
- char path2[MAX_PATH + 33];
- const char *prev = NULL;
+ TCHAR path[MAX_PATH + 1];
+ TCHAR path2[MAX_PATH + 33];
+ const TCHAR *prev = NULL;
/* We assume that GTK+ is installed under \\path\to\Pidgin\..\GTK
* First we find \\path\to
*/
- if (*pidgin_dir) {
+ if (*pidgin_dir)
/* pidgin_dir points to \\path\to\Pidgin */
- const char *tmp = pidgin_dir;
-
- while ((tmp = strchr(tmp, '\\'))) {
- prev = tmp;
- tmp++;
- }
- }
+ prev = _tcsrchr(pidgin_dir, _T('\\'));
if (prev) {
int cnt = (prev - pidgin_dir);
- strncpy(path, pidgin_dir, cnt);
- path[cnt] = '\0';
+ _tcsncpy(path, pidgin_dir, cnt);
+ path[cnt] = _T('\0');
} else {
printf("Unable to determine current executable path. \n"
"This will prevent the settings dir from being set.\n"
@@ -213,160 +211,141 @@ static void portable_mode_dll_prep(const char *pidgin_dir) {
}
/* Set $HOME so that the GTK+ settings get stored in the right place */
- _snprintf(path2, sizeof(path2), "HOME=%s", path);
- _putenv(path2);
+ _sntprintf(path2, sizeof(path2) / sizeof(TCHAR), _T("HOME=%s"), path);
+ _tputenv(path2);
/* Set up the settings dir base to be \\path\to
* The actual settings dir will be \\path\to\.purple */
- _snprintf(path2, sizeof(path2), "PURPLEHOME=%s", path);
- printf("Setting settings dir: %s\n", path2);
- _putenv(path2);
+ _sntprintf(path2, sizeof(path2) / sizeof(TCHAR), _T("PURPLEHOME=%s"), path);
+ _tprintf(_T("Setting settings dir: %s\n"), path2);
+ _tputenv(path2);
- _snprintf(path2, sizeof(path2), "PIDGIN_ASPELL_DIR=%s\\Aspell\\bin", path);
- printf("%s\n", path2);
- _putenv(path2);
+ _sntprintf(path2, sizeof(path2) / sizeof(TCHAR), _T("PIDGIN_ASPELL_DIR=%s\\Aspell\\bin"), path);
+ _tprintf(_T("%s\n"), path2);
+ _tputenv(path2);
/* set the GTK+ path to be \\path\to\GTK\bin */
- strcat(path, "\\GTK\\bin");
+ _tcscat(path, _T("\\GTK\\bin"));
common_dll_prep(path);
}
-static void dll_prep() {
- char path[MAX_PATH + 1];
- HKEY hkey;
- char gtkpath[MAX_PATH + 1];
- DWORD plen;
-
- plen = sizeof(gtkpath);
- hkey = HKEY_CURRENT_USER;
- if (!read_reg_string(hkey, "SOFTWARE\\GTK\\2.0", "Path",
- (LPBYTE) &gtkpath, &plen)) {
- hkey = HKEY_LOCAL_MACHINE;
- if (!read_reg_string(hkey, "SOFTWARE\\GTK\\2.0", "Path",
- (LPBYTE) &gtkpath, &plen)) {
- printf("GTK+ Path Registry Key not found. "
- "Assuming GTK+ is in the PATH.\n");
- return;
- }
- }
+static void dll_prep(const TCHAR *pidgin_dir) {
+ TCHAR gtk_path[MAX_PATH + 1];
+ gtk_path[0] = _T('\0');
- /* this value is replaced during a successful RegQueryValueEx() */
- plen = sizeof(path);
- /* Determine GTK+ dll path .. */
- if (!read_reg_string(hkey, "SOFTWARE\\GTK\\2.0", "DllPath",
- (LPBYTE) &path, &plen)) {
- strcpy(path, gtkpath);
- strcat(path, "\\bin");
+ if (*pidgin_dir) {
+ _sntprintf(gtk_path, sizeof(gtk_path) / sizeof(TCHAR), _T("%s\\Gtk\\bin"), pidgin_dir);
+ gtk_path[sizeof(gtk_path) / sizeof(TCHAR)] = _T('\0');
}
- common_dll_prep(path);
+ common_dll_prep(gtk_path);
}
-static char* winpidgin_lcid_to_posix(LCID lcid) {
- char *posix = NULL;
+static TCHAR* winpidgin_lcid_to_posix(LCID lcid) {
+ TCHAR *posix = NULL;
int lang_id = PRIMARYLANGID(lcid);
int sub_id = SUBLANGID(lcid);
switch (lang_id) {
- case LANG_AFRIKAANS: posix = "af"; break;
- case LANG_ARABIC: posix = "ar"; break;
- case LANG_AZERI: posix = "az"; break;
- case LANG_BENGALI: posix = "bn"; break;
- case LANG_BULGARIAN: posix = "bg"; break;
- case LANG_CATALAN: posix = "ca"; break;
- case LANG_CZECH: posix = "cs"; break;
- case LANG_DANISH: posix = "da"; break;
- case LANG_ESTONIAN: posix = "et"; break;
- case LANG_PERSIAN: posix = "fa"; break;
- case LANG_GERMAN: posix = "de"; break;
- case LANG_GREEK: posix = "el"; break;
+ case LANG_AFRIKAANS: posix = _T("af"); break;
+ case LANG_ARABIC: posix = _T("ar"); break;
+ case LANG_AZERI: posix = _T("az"); break;
+ case LANG_BENGALI: posix = _T("bn"); break;
+ case LANG_BULGARIAN: posix = _T("bg"); break;
+ case LANG_CATALAN: posix = _T("ca"); break;
+ case LANG_CZECH: posix = _T("cs"); break;
+ case LANG_DANISH: posix = _T("da"); break;
+ case LANG_ESTONIAN: posix = _T("et"); break;
+ case LANG_PERSIAN: posix = _T("fa"); break;
+ case LANG_GERMAN: posix = _T("de"); break;
+ case LANG_GREEK: posix = _T("el"); break;
case LANG_ENGLISH:
switch (sub_id) {
case SUBLANG_ENGLISH_UK:
- posix = "en_GB"; break;
+ posix = _T("en_GB"); break;
case SUBLANG_ENGLISH_AUS:
- posix = "en_AU"; break;
+ posix = _T("en_AU"); break;
case SUBLANG_ENGLISH_CAN:
- posix = "en_CA"; break;
+ posix = _T("en_CA"); break;
default:
- posix = "en"; break;
+ posix = _T("en"); break;
}
break;
- case LANG_SPANISH: posix = "es"; break;
- case LANG_BASQUE: posix = "eu"; break;
- case LANG_FINNISH: posix = "fi"; break;
- case LANG_FRENCH: posix = "fr"; break;
- case LANG_GALICIAN: posix = "gl"; break;
- case LANG_GUJARATI: posix = "gu"; break;
- case LANG_HEBREW: posix = "he"; break;
- case LANG_HINDI: posix = "hi"; break;
- case LANG_HUNGARIAN: posix = "hu"; break;
+ case LANG_SPANISH: posix = _T("es"); break;
+ case LANG_BASQUE: posix = _T("eu"); break;
+ case LANG_FINNISH: posix = _T("fi"); break;
+ case LANG_FRENCH: posix = _T("fr"); break;
+ case LANG_GALICIAN: posix = _T("gl"); break;
+ case LANG_GUJARATI: posix = _T("gu"); break;
+ case LANG_HEBREW: posix = _T("he"); break;
+ case LANG_HINDI: posix = _T("hi"); break;
+ case LANG_HUNGARIAN: posix = _T("hu"); break;
case LANG_ICELANDIC: break;
- case LANG_INDONESIAN: posix = "id"; break;
- case LANG_ITALIAN: posix = "it"; break;
- case LANG_JAPANESE: posix = "ja"; break;
- case LANG_GEORGIAN: posix = "ka"; break;
- case LANG_KANNADA: posix = "kn"; break;
- case LANG_KOREAN: posix = "ko"; break;
- case LANG_LITHUANIAN: posix = "lt"; break;
- case LANG_MACEDONIAN: posix = "mk"; break;
- case LANG_DUTCH: posix = "nl"; break;
- case LANG_NEPALI: posix = "ne"; break;
+ case LANG_INDONESIAN: posix = _T("id"); break;
+ case LANG_ITALIAN: posix = _T("it"); break;
+ case LANG_JAPANESE: posix = _T("ja"); break;
+ case LANG_GEORGIAN: posix = _T("ka"); break;
+ case LANG_KANNADA: posix = _T("kn"); break;
+ case LANG_KOREAN: posix = _T("ko"); break;
+ case LANG_LITHUANIAN: posix = _T("lt"); break;
+ case LANG_MACEDONIAN: posix = _T("mk"); break;
+ case LANG_DUTCH: posix = _T("nl"); break;
+ case LANG_NEPALI: posix = _T("ne"); break;
case LANG_NORWEGIAN:
switch (sub_id) {
case SUBLANG_NORWEGIAN_BOKMAL:
- posix = "nb"; break;
+ posix = _T("nb"); break;
case SUBLANG_NORWEGIAN_NYNORSK:
- posix = "nn"; break;
+ posix = _T("nn"); break;
}
break;
- case LANG_PUNJABI: posix = "pa"; break;
- case LANG_POLISH: posix = "pl"; break;
- case LANG_PASHTO: posix = "ps"; break;
+ case LANG_PUNJABI: posix = _T("pa"); break;
+ case LANG_POLISH: posix = _T("pl"); break;
+ case LANG_PASHTO: posix = _T("ps"); break;
case LANG_PORTUGUESE:
switch (sub_id) {
case SUBLANG_PORTUGUESE_BRAZILIAN:
- posix = "pt_BR"; break;
+ posix = _T("pt_BR"); break;
default:
- posix = "pt"; break;
+ posix = _T("pt"); break;
}
break;
- case LANG_ROMANIAN: posix = "ro"; break;
- case LANG_RUSSIAN: posix = "ru"; break;
- case LANG_SLOVAK: posix = "sk"; break;
- case LANG_SLOVENIAN: posix = "sl"; break;
- case LANG_ALBANIAN: posix = "sq"; break;
+ case LANG_ROMANIAN: posix = _T("ro"); break;
+ case LANG_RUSSIAN: posix = _T("ru"); break;
+ case LANG_SLOVAK: posix = _T("sk"); break;
+ case LANG_SLOVENIAN: posix = _T("sl"); break;
+ case LANG_ALBANIAN: posix = _T("sq"); break;
/* LANG_CROATIAN == LANG_SERBIAN == LANG_BOSNIAN */
case LANG_SERBIAN:
switch (sub_id) {
case SUBLANG_SERBIAN_LATIN:
- posix = "sr@Latn"; break;
+ posix = _T("sr@Latn"); break;
case SUBLANG_SERBIAN_CYRILLIC:
- posix = "sr"; break;
+ posix = _T("sr"); break;
case SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC:
case SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN:
- posix = "bs"; break;
+ posix = _T("bs"); break;
case SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN:
- posix = "hr"; break;
+ posix = _T("hr"); break;
}
break;
- case LANG_SWEDISH: posix = "sv"; break;
- case LANG_TAMIL: posix = "ta"; break;
- case LANG_TELUGU: posix = "te"; break;
- case LANG_THAI: posix = "th"; break;
- case LANG_TURKISH: posix = "tr"; break;
- case LANG_UKRAINIAN: posix = "uk"; break;
- case LANG_VIETNAMESE: posix = "vi"; break;
- case LANG_XHOSA: posix = "xh"; break;
+ case LANG_SWEDISH: posix = _T("sv"); break;
+ case LANG_TAMIL: posix = _T("ta"); break;
+ case LANG_TELUGU: posix = _T("te"); break;
+ case LANG_THAI: posix = _T("th"); break;
+ case LANG_TURKISH: posix = _T("tr"); break;
+ case LANG_UKRAINIAN: posix = _T("uk"); break;
+ case LANG_VIETNAMESE: posix = _T("vi"); break;
+ case LANG_XHOSA: posix = _T("xh"); break;
case LANG_CHINESE:
switch (sub_id) {
case SUBLANG_CHINESE_SIMPLIFIED:
- posix = "zh_CN"; break;
+ posix = _T("zh_CN"); break;
case SUBLANG_CHINESE_TRADITIONAL:
- posix = "zh_TW"; break;
+ posix = _T("zh_TW"); break;
default:
- posix = "zh"; break;
+ posix = _T("zh"); break;
}
break;
case LANG_URDU: break;
@@ -397,8 +376,8 @@ static char* winpidgin_lcid_to_posix(LCID lcid) {
/* Deal with exceptions */
if (posix == NULL) {
switch (lcid) {
- case 0x0455: posix = "my_MM"; break; /* Myanmar (Burmese) */
- case 9999: posix = "ku"; break; /* Kurdish (from NSIS) */
+ case 0x0455: posix = _T("my_MM"); break; /* Myanmar (Burmese) */
+ case 9999: posix = _T("ku"); break; /* Kurdish (from NSIS) */
}
}
@@ -410,19 +389,19 @@ static char* winpidgin_lcid_to_posix(LCID lcid) {
- Check NSIS Installer Language reg value
- Use default user locale
*/
-static const char *winpidgin_get_locale() {
- const char *locale = NULL;
+static const TCHAR *winpidgin_get_locale() {
+ const TCHAR *locale = NULL;
LCID lcid;
- char data[10];
- DWORD datalen = 10;
+ TCHAR data[10];
+ DWORD datalen = sizeof(data) / sizeof(TCHAR);
/* Check if user set PIDGINLANG env var */
- if ((locale = getenv("PIDGINLANG")))
+ if ((locale = _tgetenv(_T("PIDGINLANG"))))
return locale;
- if (!portable_mode && read_reg_string(HKEY_CURRENT_USER, "SOFTWARE\\pidgin",
- "Installer Language", (LPBYTE) &data, &datalen)) {
- if ((locale = winpidgin_lcid_to_posix(atoi(data))))
+ if (!portable_mode && read_reg_string(HKEY_CURRENT_USER, _T("SOFTWARE\\pidgin"),
+ _T("Installer Language"), (LPBYTE) &data, &datalen)) {
+ if ((locale = winpidgin_lcid_to_posix(_ttoi(data))))
return locale;
}
@@ -430,39 +409,39 @@ static const char *winpidgin_get_locale() {
if ((locale = winpidgin_lcid_to_posix(lcid)))
return locale;
- return "en";
+ return _T("en");
}
static void winpidgin_set_locale() {
- const char *locale = NULL;
- char envstr[25];
+ const TCHAR *locale;
+ TCHAR envstr[25];
locale = winpidgin_get_locale();
- _snprintf(envstr, 25, "LANG=%s", locale);
- printf("Setting locale: %s\n", envstr);
- _putenv(envstr);
+ _sntprintf(envstr, sizeof(envstr) / sizeof(TCHAR), _T("LANG=%s"), locale);
+ _tprintf(_T("Setting locale: %s\n"), envstr);
+ _tputenv(envstr);
}
static void winpidgin_add_stuff_to_path() {
- char perl_path[MAX_PATH + 1];
- char *ppath = NULL;
- char mit_kerberos_path[MAX_PATH + 1];
- char *mpath = NULL;
+ TCHAR perl_path[MAX_PATH + 1];
+ TCHAR *ppath = NULL;
+ TCHAR mit_kerberos_path[MAX_PATH + 1];
+ TCHAR *mpath = NULL;
DWORD plen;
printf("%s", "Looking for Perl... ");
- plen = sizeof(perl_path);
- if (read_reg_string(HKEY_LOCAL_MACHINE, "SOFTWARE\\Perl", "",
+ plen = sizeof(perl_path) / sizeof(TCHAR);
+ if (read_reg_string(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Perl"), _T(""),
(LPBYTE) &perl_path, &plen)) {
/* We *could* check for perl510.dll, but it seems unnecessary. */
- printf("found in '%s'.\n", perl_path);
+ _tprintf(_T("found in '%s'.\n"), perl_path);
- if (perl_path[strlen(perl_path) - 1] != '\\')
- strcat(perl_path, "\\");
- strcat(perl_path, "bin");
+ if (perl_path[_tcslen(perl_path) - 1] != _T('\\'))
+ _tcscat(perl_path, _T("\\"));
+ _tcscat(perl_path, _T("bin"));
ppath = perl_path;
} else
@@ -470,48 +449,47 @@ static void winpidgin_add_stuff_to_path() {
printf("%s", "Looking for MIT Kerberos... ");
- plen = sizeof(mit_kerberos_path);
- if (read_reg_string(HKEY_LOCAL_MACHINE, "SOFTWARE\\MIT\\Kerberos", "InstallDir",
+ plen = sizeof(mit_kerberos_path) / sizeof(TCHAR);
+ if (read_reg_string(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\MIT\\Kerberos"), _T("InstallDir"),
(LPBYTE) &mit_kerberos_path, &plen)) {
/* We *could* check for gssapi32.dll */
- printf("found in '%s'.\n", mit_kerberos_path);
+ _tprintf(_T("found in '%s'.\n"), mit_kerberos_path);
- if (mit_kerberos_path[strlen(mit_kerberos_path) - 1] != '\\')
- strcat(mit_kerberos_path, "\\");
- strcat(mit_kerberos_path, "bin");
+ if (mit_kerberos_path[_tcslen(mit_kerberos_path) - 1] != _T('\\'))
+ _tcscat(mit_kerberos_path, _T("\\"));
+ _tcscat(mit_kerberos_path, _T("bin"));
mpath = mit_kerberos_path;
} else
printf("%s", "not found.\n");
if (ppath != NULL || mpath != NULL) {
- const char *path = getenv("PATH");
- BOOL add_ppath = ppath != NULL && (path == NULL || !strstr(path, ppath));
- BOOL add_mpath = mpath != NULL && (path == NULL || !strstr(path, mpath));
- char *newpath;
+ const TCHAR *path = _tgetenv(_T("PATH"));
+ BOOL add_ppath = ppath != NULL && (path == NULL || !_tcsstr(path, ppath));
+ BOOL add_mpath = mpath != NULL && (path == NULL || !_tcsstr(path, mpath));
+ TCHAR *newpath;
int newlen;
if (add_ppath || add_mpath) {
/* Enough to add "PATH=" + path + ";" + ppath + ";" + mpath + \0 */
- newlen = 6 + (path ? strlen(path) + 1 : 0);
+ newlen = 6 + (path ? _tcslen(path) + 1 : 0);
if (add_ppath)
- newlen += strlen(ppath) + 1;
+ newlen += _tcslen(ppath) + 1;
if (add_mpath)
- newlen += strlen(mpath) + 1;
- newpath = malloc(newlen);
- *newpath = '\0';
+ newlen += _tcslen(mpath) + 1;
+ newpath = malloc(newlen * sizeof(TCHAR));
- _snprintf(newpath, newlen, "PATH=%s%s%s%s%s%s",
- path ? path : "",
- path ? ";" : "",
- add_ppath ? ppath : "",
- add_ppath ? ";" : "",
- add_mpath ? mpath : "",
- add_mpath ? ";" : "");
+ _sntprintf(newpath, newlen, _T("PATH=%s%s%s%s%s%s"),
+ path ? path : _T(""),
+ path ? _T(";") : _T(""),
+ add_ppath ? ppath : _T(""),
+ add_ppath ? _T(";") : _T(""),
+ add_mpath ? mpath : _T(""),
+ add_mpath ? _T(";") : _T(""));
- printf("New PATH: %s\n", newpath);
+ _tprintf(_T("New PATH: %s\n"), newpath);
- _putenv(newpath);
+ _tputenv(newpath);
free(newpath);
}
}
@@ -523,7 +501,7 @@ static void winpidgin_add_stuff_to_path() {
static BOOL winpidgin_set_running(BOOL fail_if_running) {
HANDLE h;
- if ((h = CreateMutex(NULL, FALSE, "pidgin_is_running"))) {
+ if ((h = CreateMutex(NULL, FALSE, _T("pidgin_is_running")))) {
DWORD err = GetLastError();
if (err == ERROR_ALREADY_EXISTS) {
if (fail_if_running) {
@@ -531,14 +509,14 @@ static BOOL winpidgin_set_running(BOOL fail_if_running) {
printf("An instance of Pidgin is already running.\n");
- if((msg_win = FindWindowEx(NULL, NULL, TEXT("WinpidginMsgWinCls"), NULL)))
+ if((msg_win = FindWindowEx(NULL, NULL, _T("WinpidginMsgWinCls"), NULL)))
if(SendMessage(msg_win, PIDGIN_WM_FOCUS_REQUEST, (WPARAM) NULL, (LPARAM) NULL))
return FALSE;
/* If we get here, the focus request wasn't successful */
MessageBox(NULL,
- "An instance of Pidgin is already running",
+ _T("An instance of Pidgin is already running"),
NULL, MB_OK | MB_TOPMOST);
return FALSE;
@@ -549,80 +527,98 @@ static BOOL winpidgin_set_running(BOOL fail_if_running) {
return TRUE;
}
-#define PROTO_HANDLER_SWITCH "--protocolhandler="
+#define PROTO_HANDLER_SWITCH L"--protocolhandler="
-static void handle_protocol(char *cmd) {
- char *remote_msg, *tmp1, *tmp2;
- int len;
+static void handle_protocol(wchar_t *cmd) {
+ char *remote_msg, *utf8msg;
+ wchar_t *tmp1, *tmp2;
+ int len, wlen;
SIZE_T len_written;
HWND msg_win;
DWORD pid;
HANDLE process;
/* The start of the message */
- tmp1 = cmd + strlen(PROTO_HANDLER_SWITCH);
+ tmp1 = cmd + wcslen(PROTO_HANDLER_SWITCH);
/* The end of the message */
- if ((tmp2 = strchr(tmp1, ' ')))
- len = (tmp2 - tmp1);
+ if ((tmp2 = wcschr(tmp1, L' ')))
+ wlen = (tmp2 - tmp1);
else
- len = strlen(tmp1);
+ wlen = wcslen(tmp1);
- if (len == 0) {
+ if (wlen == 0) {
printf("No protocol message specified.\n");
return;
}
- if (!(msg_win = FindWindowEx(NULL, NULL, TEXT("WinpidginMsgWinCls"), NULL))) {
+ if (!(msg_win = FindWindowEx(NULL, NULL, _T("WinpidginMsgWinCls"), NULL))) {
printf("Unable to find an instance of Pidgin to handle protocol message.\n");
return;
}
+ len = WideCharToMultiByte(CP_UTF8, 0, tmp1,
+ wlen, NULL, 0, NULL, NULL);
+ if (len) {
+ utf8msg = malloc(len * sizeof(char));
+ len = WideCharToMultiByte(CP_UTF8, 0, tmp1,
+ wlen, utf8msg, len, NULL, NULL);
+ }
+
+ if (len == 0) {
+ printf("No protocol message specified.\n");
+ return;
+ }
+
GetWindowThreadProcessId(msg_win, &pid);
if (!(process = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE, FALSE, pid))) {
DWORD dw = GetLastError();
- const char *err_msg = get_win32_error_message(dw);
- printf("Unable to open Pidgin process. (%u) %s\n", (UINT) dw, err_msg);
+ const TCHAR *err_msg = get_win32_error_message(dw);
+ _tprintf(_T("Unable to open Pidgin process. (%u) %s\n"), (UINT) dw, err_msg);
return;
}
- printf("Trying to handle protocol message:\n'%.*s'\n", len, tmp1);
+ wprintf(L"Trying to handle protocol message:\n'%.*s'\n", wlen, tmp1);
- /* MEM_COMMIT initializes the memory to zero,
- * so we don't need to worry that our section of tmp1 isn't nul-terminated */
+ /* MEM_COMMIT initializes the memory to zero
+ * so we don't need to worry that our section of utf8msg isn't nul-terminated */
if ((remote_msg = (char*) VirtualAllocEx(process, NULL, len + 1, MEM_COMMIT, PAGE_READWRITE))) {
- if (WriteProcessMemory(process, remote_msg, tmp1, len, &len_written)) {
- if (!SendMessage(msg_win, PIDGIN_WM_PROTOCOL_HANDLE, len_written, (LPARAM) remote_msg))
+ if (WriteProcessMemory(process, remote_msg, utf8msg, len, &len_written)) {
+ if (!SendMessageA(msg_win, PIDGIN_WM_PROTOCOL_HANDLE, len_written, (LPARAM) remote_msg))
printf("Unable to send protocol message to Pidgin instance.\n");
} else {
DWORD dw = GetLastError();
- const char *err_msg = get_win32_error_message(dw);
- printf("Unable to write to remote memory. (%u) %s\n", (UINT) dw, err_msg);
+ const TCHAR *err_msg = get_win32_error_message(dw);
+ _tprintf(_T("Unable to write to remote memory. (%u) %s\n"), (UINT) dw, err_msg);
}
VirtualFreeEx(process, remote_msg, 0, MEM_RELEASE);
} else {
DWORD dw = GetLastError();
- const char *err_msg = get_win32_error_message(dw);
- printf("Unable to allocate remote memory. (%u) %s\n", (UINT) dw, err_msg);
+ const TCHAR *err_msg = get_win32_error_message(dw);
+ _tprintf(_T("Unable to allocate remote memory. (%u) %s\n"), (UINT) dw, err_msg);
}
CloseHandle(process);
+ free(utf8msg);
}
int _stdcall
WinMain (struct HINSTANCE__ *hInstance, struct HINSTANCE__ *hPrevInstance,
char *lpszCmdLine, int nCmdShow) {
- char errbuf[512];
- char pidgin_dir[MAX_PATH];
- char exe_name[MAX_PATH];
+ TCHAR errbuf[512];
+ TCHAR pidgin_dir[MAX_PATH];
+ TCHAR exe_name[MAX_PATH];
HMODULE hmod;
- char *tmp;
- int pidgin_argc = __argc;
- char **pidgin_argv = __argv;
- int i;
- BOOL debug = FALSE, help = FALSE, version = FALSE, multiple = FALSE;
+ TCHAR *tmp;
+ wchar_t *wtmp;
+ int pidgin_argc;
+ char **pidgin_argv; /* This is in utf-8 */
+ int i, j, k;
+ BOOL debug = FALSE, help = FALSE, version = FALSE, multiple = FALSE, success;
+ LPWSTR *szArglist;
+ LPWSTR cmdLine;
/* If debug or help or version flag used, create console for output */
for (i = 1; i < __argc; i++) {
@@ -655,7 +651,7 @@ WinMain (struct HINSTANCE__ *hInstance, struct HINSTANCE__ *hPrevInstance,
* (_istty() doesn't work for stuff using the GUI subsystem) */
if (_fileno(stdout) == -1 || _fileno(stdout) == -2) {
LPFNATTACHCONSOLE MyAttachConsole = NULL;
- if ((hmod = GetModuleHandle("kernel32.dll"))) {
+ if ((hmod = GetModuleHandle(_T("kernel32.dll")))) {
MyAttachConsole =
(LPFNATTACHCONSOLE)
GetProcAddress(hmod, "AttachConsole");
@@ -668,68 +664,104 @@ WinMain (struct HINSTANCE__ *hInstance, struct HINSTANCE__ *hPrevInstance,
}
}
+ cmdLine = GetCommandLineW();
+
/* If this is a protocol handler invocation, deal with it accordingly */
- if ((tmp = strstr(lpszCmdLine, PROTO_HANDLER_SWITCH)) != NULL) {
- handle_protocol(tmp);
+ if ((wtmp = wcsstr(cmdLine, PROTO_HANDLER_SWITCH)) != NULL) {
+ handle_protocol(wtmp);
return 0;
}
/* Load exception handler if we have it */
if (GetModuleFileName(NULL, pidgin_dir, MAX_PATH) != 0) {
- char *prev = NULL;
- tmp = pidgin_dir;
/* primitive dirname() */
- while ((tmp = strchr(tmp, '\\'))) {
- prev = tmp;
- tmp++;
- }
+ tmp = _tcsrchr(pidgin_dir, _T('\\'));
- if (prev) {
- prev[0] = '\0';
+ if (tmp) {
+ HMODULE hmod;
+ tmp[0] = _T('\0');
- /* prev++ will now point to the executable file name */
- strcpy(exe_name, prev + 1);
+ /* tmp++ will now point to the executable file name */
+ _tcscpy(exe_name, tmp + 1);
- strcat(pidgin_dir, "\\exchndl.dll");
- if (LoadLibrary(pidgin_dir))
+ _tcscat(pidgin_dir, _T("\\exchndl.dll"));
+ if ((hmod = LoadLibrary(pidgin_dir))) {
+ FARPROC proc;
+ /* exchndl.dll is built without UNICODE */
+ char debug_dir[MAX_PATH];
printf("Loaded exchndl.dll\n");
+ /* Temporarily override exchndl.dll's logfile
+ * to something sane (Pidgin will override it
+ * again when it initializes) */
+ proc = GetProcAddress(hmod, "SetLogFile");
+ if (proc) {
+ if (GetTempPathA(sizeof(debug_dir) * sizeof(char), debug_dir) != 0) {
+ strcat(debug_dir, "pidgin.RPT");
+ printf(" Setting exchndl.dll LogFile to %s\n",
+ debug_dir);
+ (proc)(debug_dir);
+ }
+ }
+ proc = GetProcAddress(hmod, "SetDebugInfoDir");
+ if (proc) {
+ char *pidgin_dir_ansi = NULL;
+ tmp[0] = _T('\0');
+#ifdef _UNICODE
+ i = WideCharToMultiByte(CP_ACP, 0, pidgin_dir,
+ -1, NULL, 0, NULL, NULL);
+ if (i != 0) {
+ pidgin_dir_ansi = malloc(i * sizeof(char));
+ i = WideCharToMultiByte(CP_ACP, 0, pidgin_dir,
+ -1, pidgin_dir_ansi, i, NULL, NULL);
+ if (i == 0) {
+ free(pidgin_dir_ansi);
+ pidgin_dir_ansi = NULL;
+ }
+ }
+#else
+ pidgin_dir_ansi = pidgin_dir;
+#endif
+ if (pidgin_dir_ansi != NULL) {
+ _snprintf(debug_dir, sizeof(debug_dir) / sizeof(char),
+ "%s\\pidgin-%s-dbgsym",
+ pidgin_dir_ansi, VERSION);
+ debug_dir[sizeof(debug_dir) / sizeof(char) - 1] = '\0';
+ printf(" Setting exchndl.dll DebugInfoDir to %s\n",
+ debug_dir);
+ (proc)(debug_dir);
+#ifdef _UNICODE
+ free(pidgin_dir_ansi);
+#endif
+ }
+ }
- prev[0] = '\0';
+ }
+
+ tmp[0] = _T('\0');
}
} else {
DWORD dw = GetLastError();
- const char *err_msg = get_win32_error_message(dw);
- _snprintf(errbuf, 512,
- "Error getting module filename.\nError: (%u) %s",
+ const TCHAR *err_msg = get_win32_error_message(dw);
+ _sntprintf(errbuf, 512,
+ _T("Error getting module filename.\nError: (%u) %s"),
(UINT) dw, err_msg);
- printf("%s\n", errbuf);
+ _tprintf(_T("%s\n"), errbuf);
MessageBox(NULL, errbuf, NULL, MB_OK | MB_TOPMOST);
- pidgin_dir[0] = '\0';
+ pidgin_dir[0] = _T('\0');
}
/* Determine if we're running in portable mode */
- if (strstr(lpszCmdLine, "--portable-mode")
- || (exe_name != NULL && strstr(exe_name, "-portable.exe"))) {
- int i = 0, c = 0;
-
+ if (wcsstr(cmdLine, L"--portable-mode")
+ || (exe_name != NULL && _tcsstr(exe_name, _T("-portable.exe")))) {
printf("Running in PORTABLE mode.\n");
portable_mode = TRUE;
-
- /* Remove the --portable-mode arg from the args passed to pidgin so it doesn't choke */
- pidgin_argv = malloc(sizeof(char*) * pidgin_argc);
- for (; i < __argc; i++) {
- if (strstr(__argv[i], "--portable-mode") == NULL)
- pidgin_argv[c++] = __argv[i];
- else
- pidgin_argc--;
- }
}
if (portable_mode)
portable_mode_dll_prep(pidgin_dir);
else if (!getenv("PIDGIN_NO_DLL_CHECK"))
- dll_prep();
+ dll_prep(pidgin_dir);
winpidgin_set_locale();
@@ -741,23 +773,53 @@ WinMain (struct HINSTANCE__ *hInstance, struct HINSTANCE__ *hPrevInstance,
return 0;
/* Now we are ready for Pidgin .. */
- if ((hmod = LoadLibrary("pidgin.dll")))
+ if ((hmod = LoadLibrary(_T("pidgin.dll"))))
pidgin_main = (LPFNPIDGINMAIN) GetProcAddress(hmod, "pidgin_main");
if (!pidgin_main) {
DWORD dw = GetLastError();
BOOL mod_not_found = (dw == ERROR_MOD_NOT_FOUND || dw == ERROR_DLL_NOT_FOUND);
- const char *err_msg = get_win32_error_message(dw);
+ const TCHAR *err_msg = get_win32_error_message(dw);
- _snprintf(errbuf, 512, "Error loading pidgin.dll.\nError: (%u) %s%s%s",
+ _sntprintf(errbuf, 512, _T("Error loading pidgin.dll.\nError: (%u) %s%s%s"),
(UINT) dw, err_msg,
- mod_not_found ? "\n" : "",
- mod_not_found ? "This probably means that GTK+ can't be found." : "");
- printf("%s\n", errbuf);
- MessageBox(NULL, errbuf, TEXT("Error"), MB_OK | MB_TOPMOST);
+ mod_not_found ? _T("\n") : _T(""),
+ mod_not_found ? _T("This probably means that GTK+ can't be found.") : _T(""));
+ _tprintf(_T("%s\n"), errbuf);
+ MessageBox(NULL, errbuf, _T("Error"), MB_OK | MB_TOPMOST);
return 0;
}
+ /* Convert argv to utf-8*/
+ szArglist = CommandLineToArgvW(cmdLine, &j);
+ pidgin_argc = j;
+ pidgin_argv = malloc(pidgin_argc* sizeof(char*));
+ k = 0;
+ for (i = 0; i < j; i++) {
+ success = FALSE;
+ /* Remove the --portable-mode arg from the args passed to pidgin so it doesn't choke */
+ if (wcsstr(szArglist[i], L"--portable-mode") == NULL) {
+ int len = WideCharToMultiByte(CP_UTF8, 0, szArglist[i],
+ -1, NULL, 0, NULL, NULL);
+ if (len != 0) {
+ char *arg = malloc(len * sizeof(char));
+ len = WideCharToMultiByte(CP_UTF8, 0, szArglist[i],
+ -1, arg, len, NULL, NULL);
+ if (len != 0) {
+ pidgin_argv[k++] = arg;
+ success = TRUE;
+ }
+ }
+ if (!success)
+ wprintf(L"Error converting argument '%s' to UTF-8\n",
+ szArglist[i]);
+ }
+ if (!success)
+ pidgin_argc--;
+ }
+ LocalFree(szArglist);
+
+
return pidgin_main(hInstance, pidgin_argc, pidgin_argv);
}