summaryrefslogtreecommitdiffstats
path: root/packaging
diff options
context:
space:
mode:
Diffstat (limited to 'packaging')
-rwxr-xr-xpackaging/macosx/osx-build.sh7
-rw-r--r--packaging/win32/AdvUninstLog.nsh874
-rw-r--r--packaging/win32/AdvUninstLog.txt240
-rw-r--r--packaging/win32/MessageBox.txt370
-rw-r--r--packaging/win32/RequireLatestNSIS.nsh18
-rw-r--r--packaging/win32/VersionCompleteXXXX.nsh94
-rw-r--r--packaging/win32/ifexist.nsh42
-rwxr-xr-xpackaging/win32/inkscape.nsi2
-rw-r--r--packaging/win32/languages/Greek.nsh113
-rw-r--r--packaging/win32/languages/Japanese.nsh226
-rw-r--r--packaging/win32/languages/SimpChinese.nsh226
-rw-r--r--packaging/win32/languages/TradChinese.nsh226
-rw-r--r--packaging/win32/md5dll.txt136
-rw-r--r--packaging/win32/portable/App/AppInfo/Launcher/InkscapePortable.ini51
-rw-r--r--packaging/win32/portable/App/AppInfo/Launcher/splash.jpgbin0 -> 45251 bytes
-rw-r--r--packaging/win32/portable/App/AppInfo/appinfo.ini52
-rw-r--r--packaging/win32/portable/App/AppInfo/installer.ini30
-rw-r--r--packaging/win32/portable/App/readme.txt2
-rw-r--r--packaging/win32/portable/Other/Source/AppNamePortable.ini6
-rw-r--r--packaging/win32/portable/Other/Source/InkscapePortable.ini6
-rw-r--r--packaging/win32/portable/Other/Source/InkscapePortable.jpgbin41966 -> 0 bytes
-rw-r--r--packaging/win32/portable/Other/Source/InkscapePortable.nsi130
-rw-r--r--packaging/win32/portable/Other/Source/LauncherLicense.txt (renamed from packaging/win32/portable/Other/Source/License.txt)83
-rw-r--r--packaging/win32/portable/Other/Source/PortableApps.comInstallerCustom.nsh12
-rw-r--r--packaging/win32/portable/Other/Source/PortableApps.comLauncherLANG_ENGLISH.nsh6
-rw-r--r--packaging/win32/portable/Other/Source/Readme.txt92
-rw-r--r--packaging/win32/portable/Other/Source/ReplaceInFileWithTextReplace.nsh64
-rw-r--r--packaging/win32/portable/help.html2
-rw-r--r--packaging/win32/portable/readme.packaging.txt7
29 files changed, 1526 insertions, 1591 deletions
diff --git a/packaging/macosx/osx-build.sh b/packaging/macosx/osx-build.sh
index 5d3ebaed4..7e7a74ed4 100755
--- a/packaging/macosx/osx-build.sh
+++ b/packaging/macosx/osx-build.sh
@@ -54,6 +54,7 @@ Compilation script for Inkscape on Mac OS X.
\033[1m-p,--prefix\033[0m specify install prefix (configure step only)
\033[1mb,build\033[0m
build Inkscape (run make)
+ \033[1m-j,--jobs\033[0m Set the number of parallel execution for make
\033[1mi,install\033[0m
install the build products locally, inside the source
directory (run make install)
@@ -97,6 +98,7 @@ BZRUPDATE="f"
AUTOGEN="f"
CONFIGURE="f"
BUILD="f"
+NJOBS=1
INSTALL="f"
PACKAGE="f"
DISTRIB="f"
@@ -131,6 +133,9 @@ do
UNIVERSAL="t" ;;
b|build)
BUILD="t" ;;
+ -j|--jobs)
+ NJOBS=$2
+ shift 1 ;;
i|install)
INSTALL="t" ;;
p|pack|package)
@@ -277,7 +282,7 @@ fi
if [[ "$BUILD" == "t" ]]
then
cd $SRCROOT
- make
+ make -j $NJOBS
status=$?
if [[ $status -ne 0 ]]; then
echo -e "\nBuild failed"
diff --git a/packaging/win32/AdvUninstLog.nsh b/packaging/win32/AdvUninstLog.nsh
index 2b5b5c77b..f48049164 100644
--- a/packaging/win32/AdvUninstLog.nsh
+++ b/packaging/win32/AdvUninstLog.nsh
@@ -1,437 +1,437 @@
- ;_____________________________ HEADER FILE BEGIN ____________________________
-
- # Advanced Uninstall Log NSIS header
- # Version 1.0 2007-01-31
- # By Red Wine (http://nsis.sf.net/User:Red_Wine)
-
- # Usage: See included examples Uninstall_Log_Default_UI.nsi - Uninstall_Log_Modern_UI.nsi
-
-!verbose push
- !verbose 3
-
-!ifndef ADVANCED_UNINSTALL.LOG_NSH
- !define ADVANCED_UNINSTALL.LOG_NSH
-
-!ifndef INSTDIR_REG_ROOT | INSTDIR_REG_KEY
- !error "You must properly define both INSTDIR_REG_ROOT and INSTDIR_REG_KEY"
-!endif
-
-!ifndef UNINSTALL_LOG
- !define UNINSTALL_LOG "Uninstall"
-!endif
-
-!ifndef UNINST_LOG_VERBOSE
- !define UNINST_LOG_VERBOSE "3"
-!endif
-
-!verbose pop
-
-!echo "Advanced Uninstall Log NSIS header v1.0 2007-01-31 by Red Wine (http://nsis.sf.net/User:Red_Wine)"
-
-!verbose push
- !verbose ${UNINST_LOG_VERBOSE}
-
-!define UNINST_EXE "$INSTDIR\${UNINSTALL_LOG}.exe"
-!define UNINST_DAT "$INSTDIR\${UNINSTALL_LOG}.dat"
-!define UNLOG_PART "$PLUGINSDIR\part."
-!define UNLOG_TEMP "$PLUGINSDIR\unlog.tmp"
-!define EXCLU_LIST "$PLUGINSDIR\exclude.tmp"
-!define UNLOG_HEAD "=========== Uninstaller Log please do not edit this file ==========="
-
- var unlog_tmp_0
- var unlog_tmp_1
- var unlog_tmp_2
- var unlog_tmp_3
- var unlog_error
-
-!include FileFunc.nsh
-!include TextFunc.nsh
-
-!insertmacro Locate
-!insertmacro un.Locate
-!insertmacro DirState
-!insertmacro un.DirState
-!insertmacro FileJoin
-!insertmacro TrimNewLines
-!insertmacro un.TrimNewLines
-
-;.............................. Uninstaller Macros ..............................
-
-!macro UNINSTALL.LOG_BEGIN_UNINSTALL
- !verbose push
- !verbose ${UNINST_LOG_VERBOSE}
-
- IfFileExists "${UNINST_DAT}" +3
- MessageBox MB_ICONSTOP|MB_OK "${UNINST_DAT} not found, unable to perform uninstall." /SD IDOK
- Quit
-
- StrCmp "$PLUGINSDIR" "" 0 +2
- InitPluginsDir
-
- CopyFiles "${UNINST_DAT}" "${UNLOG_TEMP}"
- FileOpen $unlog_tmp_2 "${UNLOG_TEMP}" r
-
- !verbose pop
-!macroend
-
-
-!macro UNINSTALL.LOG_END_UNINSTALL
- !verbose push
- !verbose ${UNINST_LOG_VERBOSE}
-
- FileClose $unlog_tmp_2
- DeleteRegValue ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" "${UNINSTALL_LOG}.dat"
- DeleteRegValue ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" "${UNINSTALL_LOG}Directory"
-
- !verbose pop
-!macroend
-
-
-!macro UNINSTALL.LOG_UNINSTALL TargetDir
- !verbose push
- !verbose ${UNINST_LOG_VERBOSE}
-
- !ifndef INTERACTIVE_UNINSTALL & UNATTENDED_UNINSTALL
- !error "You must insert either Interactive or Unattended Uninstall neither both, neither none."
- !endif
-
- !ifdef INTERACTIVE_UNINSTALL
- GetTempFileName $unlog_tmp_5 "$PLUGINSDIR"
- FileOpen $unlog_tmp_4 "$unlog_tmp_5" a
- !endif
-
- ${PerfomUninstall} "${TargetDir}" "${UnLog_Uninstall_CallBackFunc}"
-
- !ifdef INTERACTIVE_UNINSTALL
- FileClose $unlog_tmp_4
- !endif
-
- !verbose pop
-!macroend
-
-
-!define PerfomUninstall "!insertmacro PERFORMUNINSTALL"
-
-!macro PERFORMUNINSTALL TargetDir UninstCallBackFunc
- !verbose push
- !verbose ${UNINST_LOG_VERBOSE}
-
- !define ID ${__LINE__}
-
- ${un.Locate} "${TargetDir}" "/L=F" "${UninstCallBackFunc}"
-
- loop_${ID}:
-
- StrCpy $unlog_tmp_1 0
-
- ${un.Locate} "${TargetDir}" "/L=DE" "${UninstCallBackFunc}"
- StrCmp $unlog_tmp_1 "0" 0 loop_${ID}
-
- ${un.DirState} "${TargetDir}" $unlog_tmp_0
- StrCmp "$unlog_tmp_0" "0" 0 +2
- RmDir "${TargetDir}"
-
- IfErrors 0 +2
- MessageBox MB_ICONEXCLAMATION|MB_OK "${UNINSTALL_LOG} Log error" /SD IDOK
-
- !undef ID
-
- !verbose pop
-!macroend
-
-
-!macro INTERACTIVE_UNINSTALL
- !verbose push
- !verbose ${UNINST_LOG_VERBOSE}
-
- !ifdef INTERACTIVE_UNINSTALL
- !error "INTERACTIVE_UNINSTALL is already defined"
- !endif
-
- var unlog_tmp_4
- var unlog_tmp_5
-
- !define INTERACTIVE_UNINSTALL
-
- !ifdef INTERACTIVE_UNINSTALL & UNATTENDED_UNINSTALL
- !error "You must insert either Interactive or Unattended Uninstall neither both, neither none."
- !endif
-
- !ifdef UnLog_Uninstall_CallBackFunc
- !undef UnLog_Uninstall_CallBackFunc
- !endif
-
- !ifndef UnLog_Uninstall_CallBackFunc
- !insertmacro UNINSTALL.LOG_UNINSTALL_INTERACTIVE
- !define UnLog_Uninstall_CallBackFunc "un._LocateCallBack_Function_Interactive"
- !endif
-
- !verbose pop
-!macroend
-
-
-!macro UNATTENDED_UNINSTALL
- !verbose push
- !verbose ${UNINST_LOG_VERBOSE}
-
- !ifdef UNATTENDED_UNINSTALL
- !error "UNATTENDED_UNINSTALL is already defined"
- !endif
-
- !define UNATTENDED_UNINSTALL
-
- !ifdef INTERACTIVE_UNINSTALL & UNATTENDED_UNINSTALL
- !error "You must insert either Interactive or Unattended Uninstall neither both, neither none."
- !endif
-
- !ifdef UnLog_Uninstall_CallBackFunc
- !undef UnLog_Uninstall_CallBackFunc
- !endif
-
- !ifndef UnLog_Uninstall_CallBackFunc
- !insertmacro UNINSTALL.LOG_UNINSTALL_UNATTENDED
- !define UnLog_Uninstall_CallBackFunc "un._LocateCallBack_Function_Unattended"
- !endif
-
- !verbose pop
-!macroend
-
-
-!macro UNINSTALL.LOG_UNINSTALL_UNATTENDED
-
- Function un._LocateCallBack_Function_Unattended
- start:
- FileRead $unlog_tmp_2 "$unlog_tmp_3" ${NSIS_MAX_STRLEN}
- ${un.TrimNewLines} "$unlog_tmp_3" "$unlog_tmp_3"
- StrCmp "$unlog_tmp_3" "$R9" islog
- IfErrors nolog
- goto start
-
- islog:
- IfFileExists "$R9\*.*" isdir
-
- isfile:
- Delete "$R9"
- goto end
-
- isdir:
- RmDir "$R9"
- IntOp $unlog_tmp_1 $unlog_tmp_1 + 1
- goto end
-
- nolog:
- ClearErrors
- StrCmp "$R9" "${UNINST_EXE}" isfile
- StrCmp "$R9" "${UNINST_DAT}" isfile
-
- end:
- FileSeek $unlog_tmp_2 0 SET
- Push $unlog_tmp_0
- FunctionEnd
-
-!macroend
-
-
-!macro UNINSTALL.LOG_UNINSTALL_INTERACTIVE
-
- Function un._LocateCallBack_Function_Interactive
- start:
- FileRead $unlog_tmp_2 "$unlog_tmp_3" ${NSIS_MAX_STRLEN}
- ${un.TrimNewLines} "$unlog_tmp_3" "$unlog_tmp_3"
- StrCmp "$unlog_tmp_3" "$R9" islog
- IfErrors nolog
- goto start
-
- islog:
- IfFileExists "$R9\*.*" isdir
-
- isfile:
- Delete "$R9"
- goto end
-
- isdir:
- RmDir "$R9"
- IntOp $unlog_tmp_1 $unlog_tmp_1 + 1
- goto end
-
- nolog:
- ClearErrors
- FileSeek $unlog_tmp_4 0 SET
- read:
- FileRead $unlog_tmp_4 "$unlog_tmp_3"
- ${un.TrimNewLines} "$unlog_tmp_3" "$unlog_tmp_3"
- StrCmp "$unlog_tmp_3" "$R9" end
- IfErrors +2
- goto read
- ClearErrors
- StrCmp "$R9" "${UNINST_EXE}" isfile
- StrCmp "$R9" "${UNINST_DAT}" isfile
- IfFileExists "$R9\*.*" msgdir
-
- MessageBox MB_ICONQUESTION|MB_YESNO \
- 'Delete File "$R9"?' /SD IDNO IDYES isfile IDNO nodel
-
- msgdir:
- MessageBox MB_ICONQUESTION|MB_YESNO \
- 'Delete Directory "$R9"?' /SD IDNO IDYES isdir IDNO nodel
-
- nodel:
- FileSeek $unlog_tmp_4 0 END
- FileWrite $unlog_tmp_4 "$R9$\r$\n"
-
- end:
- FileSeek $unlog_tmp_2 0 SET
- Push $unlog_tmp_0
- FunctionEnd
-
-!macroend
-
-;................................. Installer Macros .................................
-
-!macro UNINSTALL.LOG_INSTALL_UNATTENDED
-
- Function _LocateCallBack_Function_Install
- loop:
- FileRead $unlog_tmp_2 "$unlog_tmp_3" ${NSIS_MAX_STRLEN}
- ${TrimNewLines} "$unlog_tmp_3" "$unlog_tmp_3"
- IfErrors 0 +4
- ClearErrors
- FileSeek $unlog_tmp_2 0 SET
- goto next
- StrCmp "$R9" "$unlog_tmp_3" end
- goto loop
- next:
- FileWrite $unlog_tmp_1 "$R9$\r$\n"
- end:
- Push $unlog_tmp_0
- FunctionEnd
-
-!macroend
-
-
-!ifdef UnLog_Install_Func_CallBack
- !undef UnLog_Install_Func_CallBack
-!endif
-
-!ifndef UnLog_Install_Func_CallBack
- !insertmacro UNINSTALL.LOG_INSTALL_UNATTENDED
- !define UnLog_Install_Func_CallBack "_LocateCallBack_Function_Install"
-!endif
-
-
-!macro UNINSTALL.LOG_PREPARE_INSTALL
- !verbose push
- !verbose ${UNINST_LOG_VERBOSE}
-
- Push $0
- Push $1
- ClearErrors
- ReadRegStr "$0" ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" "${UNINSTALL_LOG}Directory"
- IfErrors next
- ${DirState} "$0" $1
- StrCmp "$1" "-1" next
- StrCmp "$1" "0" next
- IfFileExists "$0\${UNINSTALL_LOG}.dat" next
- MessageBox MB_ICONEXCLAMATION|MB_OK \
- "Previous installation detected at $0.$\n\
- Required file ${UNINSTALL_LOG}.dat is missing.$\n$\nIt is highly recommended \
- to select an empty directory and perform a fresh installation." /SD IDOK
- StrCpy $unlog_error "error"
-
- next:
- ClearErrors
- StrCmp "$PLUGINSDIR" "" 0 +2
- InitPluginsDir
-
- GetTempFileName "$1"
- FileOpen $0 "$1" w
- FileWrite $0 "${UNLOG_HEAD}$\r$\n"
- FileClose $0
- Rename "$1" "${UNLOG_TEMP}"
- Pop $1
- Pop $0
-
- !verbose pop
-!macroend
-
-
-!macro UNINSTALL.LOG_UPDATE_INSTALL
- !verbose push
- !verbose ${UNINST_LOG_VERBOSE}
-
- Delete "${UNINST_DAT}"
- Rename "${UNLOG_TEMP}" "${UNINST_DAT}"
- WriteUninstaller "${UNINST_EXE}"
- WriteRegStr ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" "${UNINSTALL_LOG}.dat" "${UNINST_DAT}"
- WriteRegStr ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" "${UNINSTALL_LOG}Directory" "$INSTDIR"
-
- !verbose pop
-!macroend
-
-
-!define uninstall.log_install "!insertmacro UNINSTALL.LOG_INSTALL"
-
-!macro UNINSTALL.LOG_INSTALL FileOpenWrite FileOpenRead TargetDir
- !verbose push
- !verbose ${UNINST_LOG_VERBOSE}
-
- FileOpen $unlog_tmp_1 "${FileOpenWrite}" w
- FileOpen $unlog_tmp_2 "${FileOpenRead}" r
-
- ${Locate} "${TargetDir}" "/L=FD" "${UnLog_Install_Func_CallBack}"
-
- StrCmp $unlog_error "error" 0 +2
- ClearErrors
-
- IfErrors 0 +2
- MessageBox MB_ICONEXCLAMATION|MB_OK "Error creating ${UNINSTALL_LOG} Log." /SD IDOK
-
- FileClose $unlog_tmp_1
- FileClose $unlog_tmp_2
-
- !verbose pop
-!macroend
-
-
-!define uninstall.log_mergeID "!insertmacro UNINSTALL.LOG_MERGE"
-
-!macro UNINSTALL.LOG_MERGE UnlogPart
- !verbose push
- !verbose ${UNINST_LOG_VERBOSE}
-
- ${FileJoin} "${UNLOG_TEMP}" "${UnlogPart}" "${UNLOG_TEMP}"
-
- !verbose pop
-!macroend
-
-
-!macro UNINSTALL.LOG_OPEN_INSTALL
- !verbose push
- !verbose ${UNINST_LOG_VERBOSE}
-
- StrCmp $unlog_error "error" +2
- ${uninstall.log_install} "${EXCLU_LIST}" "${UNINST_DAT}" "$OUTDIR"
-
- !verbose pop
-!macroend
-
-
-!macro UNINSTALL.LOG_CLOSE_INSTALL
- !verbose push
- !verbose ${UNINST_LOG_VERBOSE}
-
- !define ID ${__LINE__}
-
- ${uninstall.log_install} "${UNLOG_PART}${ID}" "${EXCLU_LIST}" "$OUTDIR"
- ${uninstall.log_mergeID} "${UNLOG_PART}${ID}"
-
- !undef ID ${__LINE__}
-
- !verbose pop
-!macroend
-
-!endif
-
-!verbose pop
- ;_____________________________ HEADER FILE END ____________________________
-
+ ;_____________________________ HEADER FILE BEGIN ____________________________
+
+ # Advanced Uninstall Log NSIS header
+ # Version 1.0 2007-01-31
+ # By Red Wine (http://nsis.sf.net/User:Red_Wine)
+
+ # Usage: See included examples Uninstall_Log_Default_UI.nsi - Uninstall_Log_Modern_UI.nsi
+
+!verbose push
+ !verbose 3
+
+!ifndef ADVANCED_UNINSTALL.LOG_NSH
+ !define ADVANCED_UNINSTALL.LOG_NSH
+
+!ifndef INSTDIR_REG_ROOT | INSTDIR_REG_KEY
+ !error "You must properly define both INSTDIR_REG_ROOT and INSTDIR_REG_KEY"
+!endif
+
+!ifndef UNINSTALL_LOG
+ !define UNINSTALL_LOG "Uninstall"
+!endif
+
+!ifndef UNINST_LOG_VERBOSE
+ !define UNINST_LOG_VERBOSE "3"
+!endif
+
+!verbose pop
+
+!echo "Advanced Uninstall Log NSIS header v1.0 2007-01-31 by Red Wine (http://nsis.sf.net/User:Red_Wine)"
+
+!verbose push
+ !verbose ${UNINST_LOG_VERBOSE}
+
+!define UNINST_EXE "$INSTDIR\${UNINSTALL_LOG}.exe"
+!define UNINST_DAT "$INSTDIR\${UNINSTALL_LOG}.dat"
+!define UNLOG_PART "$PLUGINSDIR\part."
+!define UNLOG_TEMP "$PLUGINSDIR\unlog.tmp"
+!define EXCLU_LIST "$PLUGINSDIR\exclude.tmp"
+!define UNLOG_HEAD "=========== Uninstaller Log please do not edit this file ==========="
+
+ var unlog_tmp_0
+ var unlog_tmp_1
+ var unlog_tmp_2
+ var unlog_tmp_3
+ var unlog_error
+
+!include FileFunc.nsh
+!include TextFunc.nsh
+
+!insertmacro Locate
+!insertmacro un.Locate
+!insertmacro DirState
+!insertmacro un.DirState
+!insertmacro FileJoin
+!insertmacro TrimNewLines
+!insertmacro un.TrimNewLines
+
+;.............................. Uninstaller Macros ..............................
+
+!macro UNINSTALL.LOG_BEGIN_UNINSTALL
+ !verbose push
+ !verbose ${UNINST_LOG_VERBOSE}
+
+ IfFileExists "${UNINST_DAT}" +3
+ MessageBox MB_ICONSTOP|MB_OK "${UNINST_DAT} not found, unable to perform uninstall." /SD IDOK
+ Quit
+
+ StrCmp "$PLUGINSDIR" "" 0 +2
+ InitPluginsDir
+
+ CopyFiles "${UNINST_DAT}" "${UNLOG_TEMP}"
+ FileOpen $unlog_tmp_2 "${UNLOG_TEMP}" r
+
+ !verbose pop
+!macroend
+
+
+!macro UNINSTALL.LOG_END_UNINSTALL
+ !verbose push
+ !verbose ${UNINST_LOG_VERBOSE}
+
+ FileClose $unlog_tmp_2
+ DeleteRegValue ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" "${UNINSTALL_LOG}.dat"
+ DeleteRegValue ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" "${UNINSTALL_LOG}Directory"
+
+ !verbose pop
+!macroend
+
+
+!macro UNINSTALL.LOG_UNINSTALL TargetDir
+ !verbose push
+ !verbose ${UNINST_LOG_VERBOSE}
+
+ !ifndef INTERACTIVE_UNINSTALL & UNATTENDED_UNINSTALL
+ !error "You must insert either Interactive or Unattended Uninstall neither both, neither none."
+ !endif
+
+ !ifdef INTERACTIVE_UNINSTALL
+ GetTempFileName $unlog_tmp_5 "$PLUGINSDIR"
+ FileOpen $unlog_tmp_4 "$unlog_tmp_5" a
+ !endif
+
+ ${PerfomUninstall} "${TargetDir}" "${UnLog_Uninstall_CallBackFunc}"
+
+ !ifdef INTERACTIVE_UNINSTALL
+ FileClose $unlog_tmp_4
+ !endif
+
+ !verbose pop
+!macroend
+
+
+!define PerfomUninstall "!insertmacro PERFORMUNINSTALL"
+
+!macro PERFORMUNINSTALL TargetDir UninstCallBackFunc
+ !verbose push
+ !verbose ${UNINST_LOG_VERBOSE}
+
+ !define ID ${__LINE__}
+
+ ${un.Locate} "${TargetDir}" "/L=F" "${UninstCallBackFunc}"
+
+ loop_${ID}:
+
+ StrCpy $unlog_tmp_1 0
+
+ ${un.Locate} "${TargetDir}" "/L=DE" "${UninstCallBackFunc}"
+ StrCmp $unlog_tmp_1 "0" 0 loop_${ID}
+
+ ${un.DirState} "${TargetDir}" $unlog_tmp_0
+ StrCmp "$unlog_tmp_0" "0" 0 +2
+ RmDir "${TargetDir}"
+
+ IfErrors 0 +2
+ MessageBox MB_ICONEXCLAMATION|MB_OK "${UNINSTALL_LOG} Log error" /SD IDOK
+
+ !undef ID
+
+ !verbose pop
+!macroend
+
+
+!macro INTERACTIVE_UNINSTALL
+ !verbose push
+ !verbose ${UNINST_LOG_VERBOSE}
+
+ !ifdef INTERACTIVE_UNINSTALL
+ !error "INTERACTIVE_UNINSTALL is already defined"
+ !endif
+
+ var unlog_tmp_4
+ var unlog_tmp_5
+
+ !define INTERACTIVE_UNINSTALL
+
+ !ifdef INTERACTIVE_UNINSTALL & UNATTENDED_UNINSTALL
+ !error "You must insert either Interactive or Unattended Uninstall neither both, neither none."
+ !endif
+
+ !ifdef UnLog_Uninstall_CallBackFunc
+ !undef UnLog_Uninstall_CallBackFunc
+ !endif
+
+ !ifndef UnLog_Uninstall_CallBackFunc
+ !insertmacro UNINSTALL.LOG_UNINSTALL_INTERACTIVE
+ !define UnLog_Uninstall_CallBackFunc "un._LocateCallBack_Function_Interactive"
+ !endif
+
+ !verbose pop
+!macroend
+
+
+!macro UNATTENDED_UNINSTALL
+ !verbose push
+ !verbose ${UNINST_LOG_VERBOSE}
+
+ !ifdef UNATTENDED_UNINSTALL
+ !error "UNATTENDED_UNINSTALL is already defined"
+ !endif
+
+ !define UNATTENDED_UNINSTALL
+
+ !ifdef INTERACTIVE_UNINSTALL & UNATTENDED_UNINSTALL
+ !error "You must insert either Interactive or Unattended Uninstall neither both, neither none."
+ !endif
+
+ !ifdef UnLog_Uninstall_CallBackFunc
+ !undef UnLog_Uninstall_CallBackFunc
+ !endif
+
+ !ifndef UnLog_Uninstall_CallBackFunc
+ !insertmacro UNINSTALL.LOG_UNINSTALL_UNATTENDED
+ !define UnLog_Uninstall_CallBackFunc "un._LocateCallBack_Function_Unattended"
+ !endif
+
+ !verbose pop
+!macroend
+
+
+!macro UNINSTALL.LOG_UNINSTALL_UNATTENDED
+
+ Function un._LocateCallBack_Function_Unattended
+ start:
+ FileRead $unlog_tmp_2 "$unlog_tmp_3" ${NSIS_MAX_STRLEN}
+ ${un.TrimNewLines} "$unlog_tmp_3" "$unlog_tmp_3"
+ StrCmp "$unlog_tmp_3" "$R9" islog
+ IfErrors nolog
+ goto start
+
+ islog:
+ IfFileExists "$R9\*.*" isdir
+
+ isfile:
+ Delete "$R9"
+ goto end
+
+ isdir:
+ RmDir "$R9"
+ IntOp $unlog_tmp_1 $unlog_tmp_1 + 1
+ goto end
+
+ nolog:
+ ClearErrors
+ StrCmp "$R9" "${UNINST_EXE}" isfile
+ StrCmp "$R9" "${UNINST_DAT}" isfile
+
+ end:
+ FileSeek $unlog_tmp_2 0 SET
+ Push $unlog_tmp_0
+ FunctionEnd
+
+!macroend
+
+
+!macro UNINSTALL.LOG_UNINSTALL_INTERACTIVE
+
+ Function un._LocateCallBack_Function_Interactive
+ start:
+ FileRead $unlog_tmp_2 "$unlog_tmp_3" ${NSIS_MAX_STRLEN}
+ ${un.TrimNewLines} "$unlog_tmp_3" "$unlog_tmp_3"
+ StrCmp "$unlog_tmp_3" "$R9" islog
+ IfErrors nolog
+ goto start
+
+ islog:
+ IfFileExists "$R9\*.*" isdir
+
+ isfile:
+ Delete "$R9"
+ goto end
+
+ isdir:
+ RmDir "$R9"
+ IntOp $unlog_tmp_1 $unlog_tmp_1 + 1
+ goto end
+
+ nolog:
+ ClearErrors
+ FileSeek $unlog_tmp_4 0 SET
+ read:
+ FileRead $unlog_tmp_4 "$unlog_tmp_3"
+ ${un.TrimNewLines} "$unlog_tmp_3" "$unlog_tmp_3"
+ StrCmp "$unlog_tmp_3" "$R9" end
+ IfErrors +2
+ goto read
+ ClearErrors
+ StrCmp "$R9" "${UNINST_EXE}" isfile
+ StrCmp "$R9" "${UNINST_DAT}" isfile
+ IfFileExists "$R9\*.*" msgdir
+
+ MessageBox MB_ICONQUESTION|MB_YESNO \
+ 'Delete File "$R9"?' /SD IDNO IDYES isfile IDNO nodel
+
+ msgdir:
+ MessageBox MB_ICONQUESTION|MB_YESNO \
+ 'Delete Directory "$R9"?' /SD IDNO IDYES isdir IDNO nodel
+
+ nodel:
+ FileSeek $unlog_tmp_4 0 END
+ FileWrite $unlog_tmp_4 "$R9$\r$\n"
+
+ end:
+ FileSeek $unlog_tmp_2 0 SET
+ Push $unlog_tmp_0
+ FunctionEnd
+
+!macroend
+
+;................................. Installer Macros .................................
+
+!macro UNINSTALL.LOG_INSTALL_UNATTENDED
+
+ Function _LocateCallBack_Function_Install
+ loop:
+ FileRead $unlog_tmp_2 "$unlog_tmp_3" ${NSIS_MAX_STRLEN}
+ ${TrimNewLines} "$unlog_tmp_3" "$unlog_tmp_3"
+ IfErrors 0 +4
+ ClearErrors
+ FileSeek $unlog_tmp_2 0 SET
+ goto next
+ StrCmp "$R9" "$unlog_tmp_3" end
+ goto loop
+ next:
+ FileWrite $unlog_tmp_1 "$R9$\r$\n"
+ end:
+ Push $unlog_tmp_0
+ FunctionEnd
+
+!macroend
+
+
+!ifdef UnLog_Install_Func_CallBack
+ !undef UnLog_Install_Func_CallBack
+!endif
+
+!ifndef UnLog_Install_Func_CallBack
+ !insertmacro UNINSTALL.LOG_INSTALL_UNATTENDED
+ !define UnLog_Install_Func_CallBack "_LocateCallBack_Function_Install"
+!endif
+
+
+!macro UNINSTALL.LOG_PREPARE_INSTALL
+ !verbose push
+ !verbose ${UNINST_LOG_VERBOSE}
+
+ Push $0
+ Push $1
+ ClearErrors
+ ReadRegStr "$0" ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" "${UNINSTALL_LOG}Directory"
+ IfErrors next
+ ${DirState} "$0" $1
+ StrCmp "$1" "-1" next
+ StrCmp "$1" "0" next
+ IfFileExists "$0\${UNINSTALL_LOG}.dat" next
+ MessageBox MB_ICONEXCLAMATION|MB_OK \
+ "Previous installation detected at $0.$\n\
+ Required file ${UNINSTALL_LOG}.dat is missing.$\n$\nIt is highly recommended \
+ to select an empty directory and perform a fresh installation." /SD IDOK
+ StrCpy $unlog_error "error"
+
+ next:
+ ClearErrors
+ StrCmp "$PLUGINSDIR" "" 0 +2
+ InitPluginsDir
+
+ GetTempFileName "$1"
+ FileOpen $0 "$1" w
+ FileWrite $0 "${UNLOG_HEAD}$\r$\n"
+ FileClose $0
+ Rename "$1" "${UNLOG_TEMP}"
+ Pop $1
+ Pop $0
+
+ !verbose pop
+!macroend
+
+
+!macro UNINSTALL.LOG_UPDATE_INSTALL
+ !verbose push
+ !verbose ${UNINST_LOG_VERBOSE}
+
+ Delete "${UNINST_DAT}"
+ Rename "${UNLOG_TEMP}" "${UNINST_DAT}"
+ WriteUninstaller "${UNINST_EXE}"
+ WriteRegStr ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" "${UNINSTALL_LOG}.dat" "${UNINST_DAT}"
+ WriteRegStr ${INSTDIR_REG_ROOT} "${INSTDIR_REG_KEY}" "${UNINSTALL_LOG}Directory" "$INSTDIR"
+
+ !verbose pop
+!macroend
+
+
+!define uninstall.log_install "!insertmacro UNINSTALL.LOG_INSTALL"
+
+!macro UNINSTALL.LOG_INSTALL FileOpenWrite FileOpenRead TargetDir
+ !verbose push
+ !verbose ${UNINST_LOG_VERBOSE}
+
+ FileOpen $unlog_tmp_1 "${FileOpenWrite}" w
+ FileOpen $unlog_tmp_2 "${FileOpenRead}" r
+
+ ${Locate} "${TargetDir}" "/L=FD" "${UnLog_Install_Func_CallBack}"
+
+ StrCmp $unlog_error "error" 0 +2
+ ClearErrors
+
+ IfErrors 0 +2
+ MessageBox MB_ICONEXCLAMATION|MB_OK "Error creating ${UNINSTALL_LOG} Log." /SD IDOK
+
+ FileClose $unlog_tmp_1
+ FileClose $unlog_tmp_2
+
+ !verbose pop
+!macroend
+
+
+!define uninstall.log_mergeID "!insertmacro UNINSTALL.LOG_MERGE"
+
+!macro UNINSTALL.LOG_MERGE UnlogPart
+ !verbose push
+ !verbose ${UNINST_LOG_VERBOSE}
+
+ ${FileJoin} "${UNLOG_TEMP}" "${UnlogPart}" "${UNLOG_TEMP}"
+
+ !verbose pop
+!macroend
+
+
+!macro UNINSTALL.LOG_OPEN_INSTALL
+ !verbose push
+ !verbose ${UNINST_LOG_VERBOSE}
+
+ StrCmp $unlog_error "error" +2
+ ${uninstall.log_install} "${EXCLU_LIST}" "${UNINST_DAT}" "$OUTDIR"
+
+ !verbose pop
+!macroend
+
+
+!macro UNINSTALL.LOG_CLOSE_INSTALL
+ !verbose push
+ !verbose ${UNINST_LOG_VERBOSE}
+
+ !define ID ${__LINE__}
+
+ ${uninstall.log_install} "${UNLOG_PART}${ID}" "${EXCLU_LIST}" "$OUTDIR"
+ ${uninstall.log_mergeID} "${UNLOG_PART}${ID}"
+
+ !undef ID ${__LINE__}
+
+ !verbose pop
+!macroend
+
+!endif
+
+!verbose pop
+ ;_____________________________ HEADER FILE END ____________________________
+
diff --git a/packaging/win32/AdvUninstLog.txt b/packaging/win32/AdvUninstLog.txt
index b92c5cec7..c294c3df2 100644
--- a/packaging/win32/AdvUninstLog.txt
+++ b/packaging/win32/AdvUninstLog.txt
@@ -1,121 +1,121 @@
-Overview
-
-Advanced Uninstall Log for NSIS was born in the need to cover a specific gap.
-It's been discussed fairly enough that the File /r command is very useful
-in cases when developers want to add a huge amount of sub directories and
-files, nevertheless it has the disadvantage that such an installation should
-be uninstalled with RmDir /r which is risky and removes also data that has
-been added/created later within the installation folder.
-
-
-
-
-About Advanced Uninstall Log.
-
-Advanced Uninstall Log is a macro system provided in a NSIS header that
-is able to monitor an installation and build an uninstall log file which
-is used by the uninstaller to uninstall files/directories that have been
-added within specific installation blocks.
-
-This means that files which have been installed outside these blocks,
-or added later either by the user or application's activities, ignored
-by the uninstaller.
-
-Moreover files that might exist into the target directory prior the current
-installation, ignored as well.
-
-Advanced Uninstall Log creates an uninstall log that removes only files that
-have been installed and optionally interacts with users for every other file
-and/or directory has found in installation folder and requires permission to
-remove these files/directories.
-
-It is enhanced as well to support updates, e.g. if the installer later would
-update the installation by adding new data, the uninstaller would remove the
-new data that has been added by the installer, without bothering users about.
-
-
-
-
-Features
-
-If target installation folder exists and contains files and/or directories
-they all preserved from being uninstalled.
-
-Uninstaller removes data that has been added within specific installation
-blocks, preserving all other data that has been created/added outside of
-these installation blocks. See included examples for details.
-
-Supports unlimited updates/reinstallations.
-
-Supports two uninstaller modes. Interactive mode requires confirmation
-to remove every other file exept those files that have been installed.
-Unattended mode leaves intact every other file without bothering users.
-
-In case when uninstall log (uninstall.dat) has been removed manually instead
-of execute uninstaller, if users attempt to run the installer later, a warning
-issued that they should select a new output folder.
-
-Implements only the included with NSIS release headers FileFunc and TextFunc.
-There is no need for external plugins and headers, adds a very small overhead.
-
-
-
-
-Restrictions
-
-If uninstall log (uninstall.dat) is missing uninstaller won't execute at all.
-
-Due to file create - write procedure that is required in order to add/update
-the uninstall log (uninstall.dat), restricted users on NT based systems won't
-be able to execute the installer.
-
-
-
-
-Disadvantage
-
-Since the header does not implement anything else than the common NSIS release,
-a delay occurs while builds and reads the uninstall log because it needs to
-throw the list several times. Talking for common cases, most likely the delay
-won't be noticeable, however, in cases where the target directory isn't empty
-and contains a large amount of data which will be excluded from uninstall log,
-or added large amount of data after the installation which will be excluded also,
-the delay should be noticeable.
-
-
-
-
-Credits
-
-A very big thanks goes to kichik.
-When my idea of the Advanced Uninstall Log became an NSIS header, it was
-indeed an amateur's attempt to write a flexible and errors free NSIS header.
-Kichik dropped me a dozen of suggestions helping me to achieve my plan.
-However, his main suggestion to eliminate the mentioned above disadvantage,
-still remains untouched by me.
-
-
-
-
-License
-
-This header file is provided 'as-is', without any express or implied warranty.
-In no event will the author be held liable for any damages arising from the use
-of this header file.
-
-Permission is granted to anyone to use this header file for any purpose,
-including commercial applications, and to alter it and redistribute it freely,
-subject to the following restrictions:
-
- 1. The origin of this header file must not be misrepresented;
- you must not claim that you wrote the original header file.
- If you use this header file in a product, an acknowledgment in
- the product documentation would be appreciated but is not required.
-
- 2. Altered versions must be plainly marked as such, and must not be
- misrepresented as being the original header file.
-
- 3. This notice may not be removed or altered from any distribution.
-
-
+Overview
+
+Advanced Uninstall Log for NSIS was born in the need to cover a specific gap.
+It's been discussed fairly enough that the File /r command is very useful
+in cases when developers want to add a huge amount of sub directories and
+files, nevertheless it has the disadvantage that such an installation should
+be uninstalled with RmDir /r which is risky and removes also data that has
+been added/created later within the installation folder.
+
+
+
+
+About Advanced Uninstall Log.
+
+Advanced Uninstall Log is a macro system provided in a NSIS header that
+is able to monitor an installation and build an uninstall log file which
+is used by the uninstaller to uninstall files/directories that have been
+added within specific installation blocks.
+
+This means that files which have been installed outside these blocks,
+or added later either by the user or application's activities, ignored
+by the uninstaller.
+
+Moreover files that might exist into the target directory prior the current
+installation, ignored as well.
+
+Advanced Uninstall Log creates an uninstall log that removes only files that
+have been installed and optionally interacts with users for every other file
+and/or directory has found in installation folder and requires permission to
+remove these files/directories.
+
+It is enhanced as well to support updates, e.g. if the installer later would
+update the installation by adding new data, the uninstaller would remove the
+new data that has been added by the installer, without bothering users about.
+
+
+
+
+Features
+
+If target installation folder exists and contains files and/or directories
+they all preserved from being uninstalled.
+
+Uninstaller removes data that has been added within specific installation
+blocks, preserving all other data that has been created/added outside of
+these installation blocks. See included examples for details.
+
+Supports unlimited updates/reinstallations.
+
+Supports two uninstaller modes. Interactive mode requires confirmation
+to remove every other file exept those files that have been installed.
+Unattended mode leaves intact every other file without bothering users.
+
+In case when uninstall log (uninstall.dat) has been removed manually instead
+of execute uninstaller, if users attempt to run the installer later, a warning
+issued that they should select a new output folder.
+
+Implements only the included with NSIS release headers FileFunc and TextFunc.
+There is no need for external plugins and headers, adds a very small overhead.
+
+
+
+
+Restrictions
+
+If uninstall log (uninstall.dat) is missing uninstaller won't execute at all.
+
+Due to file create - write procedure that is required in order to add/update
+the uninstall log (uninstall.dat), restricted users on NT based systems won't
+be able to execute the installer.
+
+
+
+
+Disadvantage
+
+Since the header does not implement anything else than the common NSIS release,
+a delay occurs while builds and reads the uninstall log because it needs to
+throw the list several times. Talking for common cases, most likely the delay
+won't be noticeable, however, in cases where the target directory isn't empty
+and contains a large amount of data which will be excluded from uninstall log,
+or added large amount of data after the installation which will be excluded also,
+the delay should be noticeable.
+
+
+
+
+Credits
+
+A very big thanks goes to kichik.
+When my idea of the Advanced Uninstall Log became an NSIS header, it was
+indeed an amateur's attempt to write a flexible and errors free NSIS header.
+Kichik dropped me a dozen of suggestions helping me to achieve my plan.
+However, his main suggestion to eliminate the mentioned above disadvantage,
+still remains untouched by me.
+
+
+
+
+License
+
+This header file is provided 'as-is', without any express or implied warranty.
+In no event will the author be held liable for any damages arising from the use
+of this header file.
+
+Permission is granted to anyone to use this header file for any purpose,
+including commercial applications, and to alter it and redistribute it freely,
+subject to the following restrictions:
+
+ 1. The origin of this header file must not be misrepresented;
+ you must not claim that you wrote the original header file.
+ If you use this header file in a product, an acknowledgment in
+ the product documentation would be appreciated but is not required.
+
+ 2. Altered versions must be plainly marked as such, and must not be
+ misrepresented as being the original header file.
+
+ 3. This notice may not be removed or altered from any distribution.
+
+
eof \ No newline at end of file
diff --git a/packaging/win32/MessageBox.txt b/packaging/win32/MessageBox.txt
index dddab5553..c2aa963d6 100644
--- a/packaging/win32/MessageBox.txt
+++ b/packaging/win32/MessageBox.txt
@@ -1,186 +1,186 @@
-Customisable MessageBox Plug-In (v0.98 beta 3)
-
-[ Archive Page: http://nsis.sourceforge.net/archive/??? ]
-
---------------
-
-The Customisable MessageBox plug-in allows you to use a MessageBox in your installer which can be altered to how you want it to be. You can control:
- * the number of buttons shown
- * the text each button shows
- * a standard or customisable icon ( flexible so you can use the installer or other files )
- * a fully working 'forth' button!
-
-The plug-in uses a few tricks to allow for the messagebox functionality to be altered so that the button text can finally be altered making [ Yes | Yes to All | No | No to All ] ( and anything else you care for ) possible.
-
-Also with the changes made it is now possible to have a functional 'forth' button - yes you read correctly! When using the function just pass in four button texts and you will see the forth button - simple really :o)
-
-There is only the one function to show the messagebox so enjoy.
-
-[ As of v0.98 beta the parameters of calling the function have changed, check out usage for the revised options - thanks to n0On3 for the suggestions. ]
-
-
-Usage
------
-
-messagebox::show styles caption ( module_name, icon_id ) text but1 [ but2 but3 but4 ]
-
-styles - messagebox styles ( supports most of the windows messagebox styles )
-
-caption - the text to be used for the dialog title ( or the installer title if not specified )
-
-module_name - sets the name of the file ( usually a dll or exe file ) that contains the custom icon to be used - if 0 is passed then the installer will be used
-
-icon_id - the id of the icon group to be used for the custom icon
-
-text - the text to be shown by the messagebox
-
-but1 - specified text or name id to use ie IDYES, IDNO, etc ( there must always be at least one button )
-
-but2, but3, but4 - optional buttons which follow the same way as for but1
-
-
-When passing in options, you should use a "" pair for options you pass in to ensure the strings are correctly read. It is not necessary to do so for the predefined button texts
-e.g. "IDCANCEL" is the same as IDCANCEL.
-
-See Example.nsi for an example ;o) ( bit hacked at the moment due to testing but shows most things )
-
-
-Return Values
------
-
-To get the return value use Pop $0 immediately after the function has been used incase other functions alter the value.
-
-If there were no problems then the function will return the number of the button pressed working from the left being 'button 1'.
-i.e.
- if you have [ yes | no | abort ] and 'no' is selected then the return value will be '2'
-
-If an error happens then the messagebox will return 0.
-
-If there are no buttons passed then the function will return '-1'.
-
-
-Some More Info
-----------------
-
-If you pass an empty string for the caption ( "" ) then the installer title text will be used instead (stripping back the current section name as NSIS messageboxes do).
-If the installer is run silently then the title will be blank if setting the caption option to "" ( as NSIS messageboxes do ). This is because when the installer is silent it does not have a visible window and so will not have a window title ( had not taken this into account initially, oops - fixed from v0.98 beta 3 ).
-
-When you want to use a custom icon, setting module to '0' will look for the icon in the installer otherwise it will search the file specified.
-e.g.
- "0,103" will load the installer icon ( well in testing it does :o) )
- "shell32.dll,24" will load the help file icon from the shell32.dll ( as long as the file exists! )
-
-If the module passed is not valid then the usericon style will not be used ( you may receive a windows message informing of this ).
-
-If the icon is not valid then the messagebox will just show a blank area where the icon would be displayed assuming that the value of module is valid.
-
-If a usericon is specified then if there are any of the messagebox icon styles passed in, these will be ignored. This allows an icon to appear otherwise internal style conflicts will prevent any icon being shown.
-
-If you want to display the standard button texts then pass the following strings in for the necessary button:
-
- IDOK - Ok
- IDCANCEL - Cancel
- IDABORT - Abort
- IDRETRY - Retry
- IDIGNORE - Ignore
- IDYES - Yes
- IDNO - No
- IDHELP - Help / 4th button
- IDTRYAGAIN - Try Again
- IDCONTINUE - Continue
-
-When the function is processing the passed button texts to use, if a duplicate of the predefined texts (above) happen then the only the first instance will be allowed
-e.g.
- IDYES "ah go on if you dare" IDYES -> [ YES | ah go on if you dare ]
-
-Each button will be resized if needed to allow the text to fit correctly in the button without being clipped. If the text is still too long for the messagebox width ( limited to 80% of the screen width ) then buttons will be resized and clipping of the button text may happen again ( this will be fixed in v1.0 ).
-
-
-Final Notes
--------
-
-I have no idea how the code will work with international text (since i just use plain text in the code) so if you try it in a multilanguage setup then let me know how it reacts or if there are any issues with the function's display.
-
-The predefined button texts are hard coded and cannot be altered. To alter the default texts involves passing in the language button text as a custom button text.
-
-The button resizing code is not complete at the moment ( as can be clearly seen from the first messagebox ) when it detects that the width of the messagebox is at the 80% screen width. Issues are that the buttons are not correctly resized to ensure that they appear correctly ( as is the case with the second messagebox ). This is more down to fiddling with the button widths after the initial processing but will be fixed soon :o)
-
-
-Credits
--------
-
-Coded by Darren Owen, aka DrO (Sept 2003)
-
-n0On3 - Idea request and helpful feedback ( the simplified function use over previous versions :o) )
-
-A plugin from me to you :o)
-
-
-Version History
--------
-
-v0.1
-* Initial release of the function
-* Basic support to show that the button text can be altered on the messagebox
-* Inital support for controlling the number of buttons shown
-
-v0.5
-* Setting of text of only the buttons wanted ( "/but? blah" )
-* Now if a string is not passed then the text will not be set (broken in the v0.1 release)
-* Altered a lot of internal workings to allow for more customising of the MessageBox
-* Better support for the number of buttons to show
-* The functional '4th' button - making use of the 'Help' button to act as a real button
-* Fixed a number of crash issues due to buffer sizes and a few other bugs, etc
-
-v0.8
-* A lot of changes made :o)
-* Improved internal handling so that now button text is set correctly either when the number of buttons is set or user styles are set so now "/but2 blah" will always set the second buttons text and not just a few cases as beforehand
-* Altered the order of the parameters from earlier versions to make some internals easier to do :o)
-* The 4th / Help button will now close the MessageBox in ALL cases - would not close correctly if there was not a 'cancel' button in earlier versions
-* Buffers are now allocated to the NSIS buffer sizes passed to the dll on use for better compatibility between dll and installer
-* When the button numbers are set, the function will map the returned value now to the button selected instead of the normal wndows defined return value
-* some other bits and bobs that i've forgotten on the way
-
-v0.9
-* Added in support for displaying custom icons on the messagebox ( along with standard icons which can be shown ) either in the installer or from other files
-* Altered the example script to show off some more bits of what it can do
-
-v0.95 beta
-* Added in support for resizing of buttons based on the text set into the button ( use the /trim before the text to be set )
-* Messagebox is now limited to approximately 80% of the screen size ( as the messagebox normally does )
-* The resizing of button texts will also update the width of the text width to ensure it keeps to the size of the messagebox
-* Support is not complete for /trim ( still need to update the graduating of the width increment )
-* When the 80% width is reached, currently buttons will disappear off the messagebox ( handling for a double height button will come to cope with this soon )
-* Altered the example script to show off some more bits of what it can do
-
-v0.98 beta
-* Removed the passing in of a hwnd parameter - is always owned by the installer
-* Altered the custom icon option to be a single parameter now in the form 'module,id' where module can be 0 to use the installer
-* All return values are now mapped to the button number pressed ie 1,2,etc
-* Now the number of buttons to show is based on the button string texts passed in to the function :o)
-* Altered the order of parameters to work in a top to bottom order with respect to the messagebox layout and to match closer to the NSIS setup
-[ a good suggestion from n0On3 - nice ]
-- now goes: style title usericon text but1 [ but2 but3 but4 ]
-* Altered the button texts to be set in the order passed and will also convert the default ids too! eg IDYES -> "Yes", IDIGNORE -> "Ignore"
-* Fixed the graduating of the button trim feature to appear 'natural'
-[ adds approxiamately 3 character widths either side when the text won't fit fully in the button ]
-* Fixed a few bugs in the code introduced in the changes made
-* Support for MB_DEFBUTTON? is broken when a button has to be resized ( will fix this soon - already worked out how to but not why this happens )
-
-v0.98 beta 2
-* Fixed the MB_DEFBUTTON? issue ( needed to prevent the wm_active message being handled )
-* Verified the installer will show icons correctly if the installer is run silently ( no code changes were made )
-* Added in checking of the defined buttons to ensure that duplicates are not allowed (only the first occurrance is allowed)
-* Checked that all strings are verified for having data before being used
-* A few code tidy-ups introduced to the code
-* Typo fix in the example
-* Added in stripping out of the icon definitions if a user icon is specified (otherwise no icon will appear!)
-* Updated the readme file to reflect the changes made to the plug-in's functionality since v0.98 beta and to clarify things in better detail now ( i hope )
-* Added in a reference to the archive page for the plugin ( will upload majority of this file to the archive )
-* All internal buffers are now set to the buffer size passed into the plugin when it is called and altered how they are referenced
-* Fixed how the module string is cleared, should fix a potential crash issue i hope
-* Partially fixed the resizing of the text area when using long button strings to correctly limit out when the 80% limit is reached ( fine when now icon is used at the moment )
-* Added a silent installer option to the example script, just !define SILENT to get the silent version (should show that the function works fine either in a normal or silent installer)
-
-v0.98 beta 3
+Customisable MessageBox Plug-In (v0.98 beta 3)
+
+[ Archive Page: http://nsis.sourceforge.net/archive/??? ]
+
+--------------
+
+The Customisable MessageBox plug-in allows you to use a MessageBox in your installer which can be altered to how you want it to be. You can control:
+ * the number of buttons shown
+ * the text each button shows
+ * a standard or customisable icon ( flexible so you can use the installer or other files )
+ * a fully working 'forth' button!
+
+The plug-in uses a few tricks to allow for the messagebox functionality to be altered so that the button text can finally be altered making [ Yes | Yes to All | No | No to All ] ( and anything else you care for ) possible.
+
+Also with the changes made it is now possible to have a functional 'forth' button - yes you read correctly! When using the function just pass in four button texts and you will see the forth button - simple really :o)
+
+There is only the one function to show the messagebox so enjoy.
+
+[ As of v0.98 beta the parameters of calling the function have changed, check out usage for the revised options - thanks to n0On3 for the suggestions. ]
+
+
+Usage
+-----
+
+messagebox::show styles caption ( module_name, icon_id ) text but1 [ but2 but3 but4 ]
+
+styles - messagebox styles ( supports most of the windows messagebox styles )
+
+caption - the text to be used for the dialog title ( or the installer title if not specified )
+
+module_name - sets the name of the file ( usually a dll or exe file ) that contains the custom icon to be used - if 0 is passed then the installer will be used
+
+icon_id - the id of the icon group to be used for the custom icon
+
+text - the text to be shown by the messagebox
+
+but1 - specified text or name id to use ie IDYES, IDNO, etc ( there must always be at least one button )
+
+but2, but3, but4 - optional buttons which follow the same way as for but1
+
+
+When passing in options, you should use a "" pair for options you pass in to ensure the strings are correctly read. It is not necessary to do so for the predefined button texts
+e.g. "IDCANCEL" is the same as IDCANCEL.
+
+See Example.nsi for an example ;o) ( bit hacked at the moment due to testing but shows most things )
+
+
+Return Values
+-----
+
+To get the return value use Pop $0 immediately after the function has been used incase other functions alter the value.
+
+If there were no problems then the function will return the number of the button pressed working from the left being 'button 1'.
+i.e.
+ if you have [ yes | no | abort ] and 'no' is selected then the return value will be '2'
+
+If an error happens then the messagebox will return 0.
+
+If there are no buttons passed then the function will return '-1'.
+
+
+Some More Info
+----------------
+
+If you pass an empty string for the caption ( "" ) then the installer title text will be used instead (stripping back the current section name as NSIS messageboxes do).
+If the installer is run silently then the title will be blank if setting the caption option to "" ( as NSIS messageboxes do ). This is because when the installer is silent it does not have a visible window and so will not have a window title ( had not taken this into account initially, oops - fixed from v0.98 beta 3 ).
+
+When you want to use a custom icon, setting module to '0' will look for the icon in the installer otherwise it will search the file specified.
+e.g.
+ "0,103" will load the installer icon ( well in testing it does :o) )
+ "shell32.dll,24" will load the help file icon from the shell32.dll ( as long as the file exists! )
+
+If the module passed is not valid then the usericon style will not be used ( you may receive a windows message informing of this ).
+
+If the icon is not valid then the messagebox will just show a blank area where the icon would be displayed assuming that the value of module is valid.
+
+If a usericon is specified then if there are any of the messagebox icon styles passed in, these will be ignored. This allows an icon to appear otherwise internal style conflicts will prevent any icon being shown.
+
+If you want to display the standard button texts then pass the following strings in for the necessary button:
+
+ IDOK - Ok
+ IDCANCEL - Cancel
+ IDABORT - Abort
+ IDRETRY - Retry
+ IDIGNORE - Ignore
+ IDYES - Yes
+ IDNO - No
+ IDHELP - Help / 4th button
+ IDTRYAGAIN - Try Again
+ IDCONTINUE - Continue
+
+When the function is processing the passed button texts to use, if a duplicate of the predefined texts (above) happen then the only the first instance will be allowed
+e.g.
+ IDYES "ah go on if you dare" IDYES -> [ YES | ah go on if you dare ]
+
+Each button will be resized if needed to allow the text to fit correctly in the button without being clipped. If the text is still too long for the messagebox width ( limited to 80% of the screen width ) then buttons will be resized and clipping of the button text may happen again ( this will be fixed in v1.0 ).
+
+
+Final Notes
+-------
+
+I have no idea how the code will work with international text (since i just use plain text in the code) so if you try it in a multilanguage setup then let me know how it reacts or if there are any issues with the function's display.
+
+The predefined button texts are hard coded and cannot be altered. To alter the default texts involves passing in the language button text as a custom button text.
+
+The button resizing code is not complete at the moment ( as can be clearly seen from the first messagebox ) when it detects that the width of the messagebox is at the 80% screen width. Issues are that the buttons are not correctly resized to ensure that they appear correctly ( as is the case with the second messagebox ). This is more down to fiddling with the button widths after the initial processing but will be fixed soon :o)
+
+
+Credits
+-------
+
+Coded by Darren Owen, aka DrO (Sept 2003)
+
+n0On3 - Idea request and helpful feedback ( the simplified function use over previous versions :o) )
+
+A plugin from me to you :o)
+
+
+Version History
+-------
+
+v0.1
+* Initial release of the function
+* Basic support to show that the button text can be altered on the messagebox
+* Inital support for controlling the number of buttons shown
+
+v0.5
+* Setting of text of only the buttons wanted ( "/but? blah" )
+* Now if a string is not passed then the text will not be set (broken in the v0.1 release)
+* Altered a lot of internal workings to allow for more customising of the MessageBox
+* Better support for the number of buttons to show
+* The functional '4th' button - making use of the 'Help' button to act as a real button
+* Fixed a number of crash issues due to buffer sizes and a few other bugs, etc
+
+v0.8
+* A lot of changes made :o)
+* Improved internal handling so that now button text is set correctly either when the number of buttons is set or user styles are set so now "/but2 blah" will always set the second buttons text and not just a few cases as beforehand
+* Altered the order of the parameters from earlier versions to make some internals easier to do :o)
+* The 4th / Help button will now close the MessageBox in ALL cases - would not close correctly if there was not a 'cancel' button in earlier versions
+* Buffers are now allocated to the NSIS buffer sizes passed to the dll on use for better compatibility between dll and installer
+* When the button numbers are set, the function will map the returned value now to the button selected instead of the normal wndows defined return value
+* some other bits and bobs that i've forgotten on the way
+
+v0.9
+* Added in support for displaying custom icons on the messagebox ( along with standard icons which can be shown ) either in the installer or from other files
+* Altered the example script to show off some more bits of what it can do
+
+v0.95 beta
+* Added in support for resizing of buttons based on the text set into the button ( use the /trim before the text to be set )
+* Messagebox is now limited to approximately 80% of the screen size ( as the messagebox normally does )
+* The resizing of button texts will also update the width of the text width to ensure it keeps to the size of the messagebox
+* Support is not complete for /trim ( still need to update the graduating of the width increment )
+* When the 80% width is reached, currently buttons will disappear off the messagebox ( handling for a double height button will come to cope with this soon )
+* Altered the example script to show off some more bits of what it can do
+
+v0.98 beta
+* Removed the passing in of a hwnd parameter - is always owned by the installer
+* Altered the custom icon option to be a single parameter now in the form 'module,id' where module can be 0 to use the installer
+* All return values are now mapped to the button number pressed ie 1,2,etc
+* Now the number of buttons to show is based on the button string texts passed in to the function :o)
+* Altered the order of parameters to work in a top to bottom order with respect to the messagebox layout and to match closer to the NSIS setup
+[ a good suggestion from n0On3 - nice ]
+- now goes: style title usericon text but1 [ but2 but3 but4 ]
+* Altered the button texts to be set in the order passed and will also convert the default ids too! eg IDYES -> "Yes", IDIGNORE -> "Ignore"
+* Fixed the graduating of the button trim feature to appear 'natural'
+[ adds approxiamately 3 character widths either side when the text won't fit fully in the button ]
+* Fixed a few bugs in the code introduced in the changes made
+* Support for MB_DEFBUTTON? is broken when a button has to be resized ( will fix this soon - already worked out how to but not why this happens )
+
+v0.98 beta 2
+* Fixed the MB_DEFBUTTON? issue ( needed to prevent the wm_active message being handled )
+* Verified the installer will show icons correctly if the installer is run silently ( no code changes were made )
+* Added in checking of the defined buttons to ensure that duplicates are not allowed (only the first occurrance is allowed)
+* Checked that all strings are verified for having data before being used
+* A few code tidy-ups introduced to the code
+* Typo fix in the example
+* Added in stripping out of the icon definitions if a user icon is specified (otherwise no icon will appear!)
+* Updated the readme file to reflect the changes made to the plug-in's functionality since v0.98 beta and to clarify things in better detail now ( i hope )
+* Added in a reference to the archive page for the plugin ( will upload majority of this file to the archive )
+* All internal buffers are now set to the buffer size passed into the plugin when it is called and altered how they are referenced
+* Fixed how the module string is cleared, should fix a potential crash issue i hope
+* Partially fixed the resizing of the text area when using long button strings to correctly limit out when the 80% limit is reached ( fine when now icon is used at the moment )
+* Added a silent installer option to the example script, just !define SILENT to get the silent version (should show that the function works fine either in a normal or silent installer)
+
+v0.98 beta 3
* Fixed a crash when a silent installer is run ( pointed out by n0On3 ) - not checking the string length when getting the installer title if ""is the pased caption value, doh! \ No newline at end of file
diff --git a/packaging/win32/RequireLatestNSIS.nsh b/packaging/win32/RequireLatestNSIS.nsh
index 29552ac02..f859ec7ad 100644
--- a/packaging/win32/RequireLatestNSIS.nsh
+++ b/packaging/win32/RequireLatestNSIS.nsh
@@ -1,9 +1,9 @@
-!if ${NSIS_VERSION} = v2.45
- !error "There is a bug in !searchparse which makes this script not compile in NSIS 2.45. Please upgrade to NSIS 2.46 or later and try again."
-!else
- !echo "(If you get a compile error with !searchparse, please upgrade to NSIS 2.46 or later and try again.)"
-!endif
-!searchparse ${NSIS_VERSION} "v" V
-!if ${V} < 2.46
- !error "You only have NSIS ${V}, but NSIS 2.46 or later is required for proper Windows 7 support. Please upgrade to NSIS 2.46 or later and try again."
-!endif
+!if ${NSIS_VERSION} = v2.45
+ !error "There is a bug in !searchparse which makes this script not compile in NSIS 2.45. Please upgrade to NSIS 2.46 or later and try again."
+!else
+ !echo "(If you get a compile error with !searchparse, please upgrade to NSIS 2.46 or later and try again.)"
+!endif
+!searchparse ${NSIS_VERSION} "v" V
+!if ${V} < 2.46
+ !error "You only have NSIS ${V}, but NSIS 2.46 or later is required for proper Windows 7 support. Please upgrade to NSIS 2.46 or later and try again."
+!endif
diff --git a/packaging/win32/VersionCompleteXXXX.nsh b/packaging/win32/VersionCompleteXXXX.nsh
index e2ff740e4..e4c6961cd 100644
--- a/packaging/win32/VersionCompleteXXXX.nsh
+++ b/packaging/win32/VersionCompleteXXXX.nsh
@@ -1,47 +1,47 @@
-; See http://nsis.sourceforge.net/VersionCompleteXXXX for documentation
-!macro VersionCompleteXXXN _INPUT_VALUE _OUTPUT_SYMBOL _REVISION
- !searchparse /noerrors ${_INPUT_VALUE} "" _VERSION_1 "." _VERSION_2 "." _VERSION_3 "." _VERSION_4
- !if `${_VERSION_1}` == ``
- !undef _VERSION_1
- !define _VERSION_1 0
- !endif
- !if `${_VERSION_2}` == ``
- !undef _VERSION_2
- !define _VERSION_2 0
- !endif
- !if `${_VERSION_3}` == ``
- !undef _VERSION_3
- !define _VERSION_3 0
- !endif
- !define ${_OUTPUT_SYMBOL} ${_VERSION_1}.${_VERSION_2}.${_VERSION_3}.${_REVISION}
- !undef _VERSION_1
- !undef _VERSION_2
- !undef _VERSION_3
- !undef _VERSION_4
-!macroend
-!define VersionCompleteXXXN `!insertmacro VersionCompleteXXXN`
-!macro VersionCompleteXXXX _INPUT_VALUE _OUTPUT_SYMBOL
- !searchparse /noerrors ${_INPUT_VALUE} "" _VERSION_1 "." _VERSION_2 "." _VERSION_3 "." _VERSION_4
- !if `${_VERSION_1}` == ``
- !undef _VERSION_1
- !define _VERSION_1 0
- !endif
- !if `${_VERSION_2}` == ``
- !undef _VERSION_2
- !define _VERSION_2 0
- !endif
- !if `${_VERSION_3}` == ``
- !undef _VERSION_3
- !define _VERSION_3 0
- !endif
- !if `${_VERSION_4}` == ``
- !undef _VERSION_4
- !define _VERSION_4 0
- !endif
- !define ${_OUTPUT_SYMBOL} ${_VERSION_1}.${_VERSION_2}.${_VERSION_3}.${_VERSION_4}
- !undef _VERSION_1
- !undef _VERSION_2
- !undef _VERSION_3
- !undef _VERSION_4
-!macroend
-!define VersionCompleteXXXX `!insertmacro VersionCompleteXXXX`
+; See http://nsis.sourceforge.net/VersionCompleteXXXX for documentation
+!macro VersionCompleteXXXN _INPUT_VALUE _OUTPUT_SYMBOL _REVISION
+ !searchparse /noerrors ${_INPUT_VALUE} "" _VERSION_1 "." _VERSION_2 "." _VERSION_3 "." _VERSION_4
+ !if `${_VERSION_1}` == ``
+ !undef _VERSION_1
+ !define _VERSION_1 0
+ !endif
+ !if `${_VERSION_2}` == ``
+ !undef _VERSION_2
+ !define _VERSION_2 0
+ !endif
+ !if `${_VERSION_3}` == ``
+ !undef _VERSION_3
+ !define _VERSION_3 0
+ !endif
+ !define ${_OUTPUT_SYMBOL} ${_VERSION_1}.${_VERSION_2}.${_VERSION_3}.${_REVISION}
+ !undef _VERSION_1
+ !undef _VERSION_2
+ !undef _VERSION_3
+ !undef _VERSION_4
+!macroend
+!define VersionCompleteXXXN `!insertmacro VersionCompleteXXXN`
+!macro VersionCompleteXXXX _INPUT_VALUE _OUTPUT_SYMBOL
+ !searchparse /noerrors ${_INPUT_VALUE} "" _VERSION_1 "." _VERSION_2 "." _VERSION_3 "." _VERSION_4
+ !if `${_VERSION_1}` == ``
+ !undef _VERSION_1
+ !define _VERSION_1 0
+ !endif
+ !if `${_VERSION_2}` == ``
+ !undef _VERSION_2
+ !define _VERSION_2 0
+ !endif
+ !if `${_VERSION_3}` == ``
+ !undef _VERSION_3
+ !define _VERSION_3 0
+ !endif
+ !if `${_VERSION_4}` == ``
+ !undef _VERSION_4
+ !define _VERSION_4 0
+ !endif
+ !define ${_OUTPUT_SYMBOL} ${_VERSION_1}.${_VERSION_2}.${_VERSION_3}.${_VERSION_4}
+ !undef _VERSION_1
+ !undef _VERSION_2
+ !undef _VERSION_3
+ !undef _VERSION_4
+!macroend
+!define VersionCompleteXXXX `!insertmacro VersionCompleteXXXX`
diff --git a/packaging/win32/ifexist.nsh b/packaging/win32/ifexist.nsh
index 80fd40aaa..f14236c2e 100644
--- a/packaging/win32/ifexist.nsh
+++ b/packaging/win32/ifexist.nsh
@@ -1,21 +1,21 @@
-; See http://nsis.sourceforge.net/Check_if_a_file_exists_at_compile_time for documentation
-!macro !ifexist _FILE_NAME
- !tempfile _TEMPFILE
- !system `if exist "${_FILE_NAME}" echo !define _FILE_EXISTS > "${_TEMPFILE}"`
- !include `${_TEMPFILE}`
- !delfile `${_TEMPFILE}`
- !undef _TEMPFILE
- !ifdef _FILE_EXISTS
- !undef _FILE_EXISTS
-!macroend
-!define !ifexist "!insertmacro !ifexist"
-!macro !ifnexist _FILE_NAME
- !tempfile _TEMPFILE
- !system `if not exist "${_FILE_NAME}" echo !define _FILE_EXISTS > "${_TEMPFILE}"`
- !include `${_TEMPFILE}`
- !delfile `${_TEMPFILE}`
- !undef _TEMPFILE
- !ifdef _FILE_EXISTS
- !undef _FILE_EXISTS
-!macroend
-!define !ifnexist "!insertmacro !ifnexist"
+; See http://nsis.sourceforge.net/Check_if_a_file_exists_at_compile_time for documentation
+!macro !ifexist _FILE_NAME
+ !tempfile _TEMPFILE
+ !system `if exist "${_FILE_NAME}" echo !define _FILE_EXISTS > "${_TEMPFILE}"`
+ !include `${_TEMPFILE}`
+ !delfile `${_TEMPFILE}`
+ !undef _TEMPFILE
+ !ifdef _FILE_EXISTS
+ !undef _FILE_EXISTS
+!macroend
+!define !ifexist "!insertmacro !ifexist"
+!macro !ifnexist _FILE_NAME
+ !tempfile _TEMPFILE
+ !system `if not exist "${_FILE_NAME}" echo !define _FILE_EXISTS > "${_TEMPFILE}"`
+ !include `${_TEMPFILE}`
+ !delfile `${_TEMPFILE}`
+ !undef _TEMPFILE
+ !ifdef _FILE_EXISTS
+ !undef _FILE_EXISTS
+!macroend
+!define !ifnexist "!insertmacro !ifnexist"
diff --git a/packaging/win32/inkscape.nsi b/packaging/win32/inkscape.nsi
index fd9bbd424..3518a65bf 100755
--- a/packaging/win32/inkscape.nsi
+++ b/packaging/win32/inkscape.nsi
@@ -124,6 +124,7 @@ ShowUninstDetails hide
!insertmacro INKLANGFILE French
!insertmacro INKLANGFILE Galician
!insertmacro INKLANGFILE German
+!insertmacro INKLANGFILE Greek
!insertmacro INKLANGFILE Indonesian
!insertmacro INKLANGFILE Italian
!insertmacro INKLANGFILE Japanese
@@ -657,6 +658,7 @@ Function .onInit ; initialise the installer {{{2
!insertmacro LanguageAutoSelect French 1036
!insertmacro LanguageAutoSelect Galician 1110
!insertmacro LanguageAutoSelect German 1031
+ !insertmacro LanguageAutoSelect Greek 1032
!insertmacro LanguageAutoSelect Indonesian 1057
!insertmacro LanguageAutoSelect Italian 1040
!insertmacro LanguageAutoSelect Japanese 1041
diff --git a/packaging/win32/languages/Greek.nsh b/packaging/win32/languages/Greek.nsh
new file mode 100644
index 000000000..74902dd83
--- /dev/null
+++ b/packaging/win32/languages/Greek.nsh
@@ -0,0 +1,113 @@
+;Language: 鱔錣臄縔 (1032, CP1253)
+;By Dimitris Spingos (櫺徻鐙趛 迼蜄蜧) <dmtrs32@gmail.com>
+${LangFileString} CaptionDescription "黴槴殥蝁黀硻 蜤暡濋 膹濇摓鶅檛 僸摿蘦幪鐒 摿毉臲燽 蕘僸罼"
+${LangFileString} LICENSE_BOTTOM_TEXT "$(^Name) 樏魠麧酃 懤 鐋 蜲臄縤 塤樥 虀祼趛 (GPL). 塤樥 謯鵚灚酃 槼 檇臩 蜒 錪蜧蘪 謻趡濼鼩鵰. $_CLICK"
+${LangFileString} DIFFERENT_USER "孲 Inkscape 樍罼酃黀塯賙 摫 鐐 虀祼鐋 $0.$\r$\n變 黼翴曫鵴醲 裍 麧 瀇氋錣幰鵴醲 懤 歑濊蘙葐!$\r$\n凊鼁罼錌 黼罽樘橀醲 $0 罼 鍕罅貘瀀謯魶黀."
+${LangFileString} WANT_UNINSTALL_BEFORE "$R1 歃樥 碇 樍罼酃黀摜橀. $\n楋殦 罅 摫樍罼酃黀祼殦 鐋 貘檭蜧懤耬 椻儌鵰 貘澼 鐋 樍罼轗黀摷 $(^Name);"
+${LangFileString} OK_CANCEL_DESC "$\n$\n凊轘黀 攪埡恓 蜒 黼縻玃鵰 謯轘黀 購桻棑 蜒 樍罼轗錼澮."
+${LangFileString} NO_ADMIN "櫻 歃殦 僸罼澸憼酃 僸暠樥齌黀.$\r$\n 樍罼轗黀摷 鐐 Inkscape 蜒 錝蘪 鐐蘪 虀祼醲 裍 罅 懞 瀇氋錣夒鳺 懤 歑濊蘙葐.$\r$\n闋櫇謮錧隮 鐐 '顯罼轗黀摷 蜒 錝蘪 鐐蘪 虀祼醲'."
+${LangFileString} NOT_SUPPORTED "孲 Inkscape 麧 鐙歃樥 鵴 Windows 95/98/ME!$\r$\n凊鼁罼錌 槶楯隮 鐐 歑裍賚 澞鏸鐐豵 蜒 錼贄瀌殥橀 謻趡濼瀎蜌."
+${LangFileString} Full "剕碖趛"
+${LangFileString} Optimal "蹟鋷澞鐋"
+${LangFileString} Minimal "鱔媸澞鐋"
+${LangFileString} Core "黴槴殥蝁黀硻 Inkscape SVG (摫摋醲裎摋)"
+${LangFileString} CoreDesc "闌灚葐 贂麎罅 Inkscape 罼 dlls"
+${LangFileString} GTKFiles "GTK+ Runtime Environment (摫摋醲裎摋)"
+${LangFileString} GTKFilesDesc "欥 殥蝁錼濈魶聬 GUI 豵錭摫錝 錝蜒鶂濋燽, 虀踠濇瀔毉橀酃 摫 鐐 Inkscape"
+${LangFileString} Shortcuts "郚薀瀌濆鵴澽"
+${LangFileString} ShortcutsDesc "郚薀瀌濆鵴澽 蜒 樏罃耬鵰 鐐 Inkscape"
+${LangFileString} Alluser "顯罼轗黀摷 蜒 錝蘪 鐐蘪 虀祼醲"
+${LangFileString} AlluserDesc "顯罼轗黀摷 斠轘 鐋 氀摙斀蜛 蜒 瀔毉瀍鬿豵醲 虀踠濇瀔毉橀 斠鏸 鐐 臝瀇檶澞轘 (錝 毉 虀祼醲)"
+${LangFileString} Desktop "黴瀄塥樥 殥蝁鵸摥"
+${LangFileString} DesktopDesc "櫺擩瀦鼖葐 擩摥 黼薀懤蘦趛 鐐 Inkscape 黀賝 歑瀄塥樥 殥蝁鵸摥"
+${LangFileString} Startmenu "极臩 楜摙鍡"
+${LangFileString} StartmenuDesc "櫺擩瀦鼖葐 樥齘儌 懤臩 楜摙鍡 蜒 鐐 Inkscape"
+${LangFileString} Quicklaunch "鏍矠瀎 樏罃耬鵰"
+${LangFileString} QuicklaunchDesc "櫺擩瀦鼖葐 擩摥 黼薀懤蘦趛 鐐 Inkscape 黀 蜤摐徻 殥蝁錼裐 蜤矠瀎趛 樏罃耬鵰"
+${LangFileString} SVGWriter "e毉蜵 摙灚裐 SVG 懤 鐐 Inkscape"
+${LangFileString} SVGWriterDesc "黴澣檶 鐐 Inkscape 貘櫇謮錼蜵楜瀦 歑槴殥蝁黀 蜒 摙灚葐 SVG"
+${LangFileString} ContextMenu "樦敳濋 懤臩"
+${LangFileString} ContextMenuDesc "哢瀀魶聬 鐐 Inkscape 黀 鳺憼鏻蕓 懤臩 蜒 摙灚葐 SVG"
+${LangFileString} DeletePrefs "灌摦鼁巑 貘瀀謮蕘 貘濻濇祼潁"
+${LangFileString} DeletePrefsDesc "灌摦鼁巑 貘瀀謮蕘 貘濻濇祼潁 豵 摫椷樥罅 摫 貘檭蜧懤翴 樍罼酃黀嫇樥"
+${LangFileString} Addfiles "哢鵩殦 摙灚葐"
+${LangFileString} AddfilesDesc "哢鵩殦 摙灚葐"
+${LangFileString} Examples "凊鼁麧蜄憼酃"
+${LangFileString} ExamplesDesc "凊鼁麧蜄憼酃 虀祼趛 鐐 Inkscape"
+${LangFileString} Tutorials "枑魶憼酃"
+${LangFileString} TutorialsDesc "枑魶憼酃 虀祼趛 鐐 Inkscape"
+${LangFileString} Languages "极酃瓕嫇樥"
+${LangFileString} LanguagesDesc "顯罼轗黀摷 豵濋蜎 懤酃瓕嫇潁 蜒 鐐 Inkscape"
+${LangFileString} lng_am "鍰欒齌縔"
+${LangFileString} lng_ar "闌摵濋"
+${LangFileString} lng_az "鍥楒濋"
+${LangFileString} lng_be "呬纋瀎鶅罼"
+${LangFileString} lng_bg "鎰纆蝁齌縔"
+${LangFileString} lng_bn "泫樇蜺塝"
+${LangFileString} lng_br "鎚殦瀍濋"
+${LangFileString} lng_ca "忯酃錆臄縔"
+${LangFileString} lng_ca@valencia "忯酃錆臄縔 轍錧膻殧"
+${LangFileString} lng_cs "屙歃濋"
+${LangFileString} lng_da "攝縻縃罼"
+${LangFileString} lng_de "邋儵摿濋"
+${LangFileString} lng_dz "匽聧罾罼"
+${LangFileString} lng_el "鱔錣臄縔"
+${LangFileString} lng_en "錨蜱濋"
+${LangFileString} lng_en_AU "錨蜱濋 隸黀鼁錈摥"
+${LangFileString} lng_en_CA "錨蜱濋 忯罅髧"
+${LangFileString} lng_en_GB "錨蜱濋 鎚殦摿葐"
+${LangFileString} lng_en_US@piglatin "Pig 呫鏻臄縔"
+${LangFileString} lng_eo "攬謥鵘薀"
+${LangFileString} lng_es "机謯臄縔"
+${LangFileString} lng_es_MX "机謯臄縔 极鍣膬"
+${LangFileString} lng_et "攬鴄臄縔"
+${LangFileString} lng_eu "轍鵳濋"
+${LangFileString} lng_fa "粣嚧"
+${LangFileString} lng_fi "紩臊摿僸縔"
+${LangFileString} lng_fr "轔錭濋"
+${LangFileString} lng_ga "朸錆罽濋"
+${LangFileString} lng_gl "轔錁膦摿濋"
+${LangFileString} lng_he "靨鼁縔"
+${LangFileString} lng_hr "抁櫆鏻縔"
+${LangFileString} lng_hu "祌蝆齌縔"
+${LangFileString} lng_id "旯儌耬鶅摓"
+${LangFileString} lng_it "朿摠濋"
+${LangFileString} lng_ja "鏑摫縻縃罼"
+${LangFileString} lng_km "郲殥"
+${LangFileString} lng_ko "扺鼫敳濋"
+${LangFileString} lng_lt "呯鴄礭臄縔"
+${LangFileString} lng_mk "枑耪儌臄縔"
+${LangFileString} lng_mn "泬蝆瀇濋"
+${LangFileString} lng_ne "俜謯錁縔"
+${LangFileString} lng_nb "俬鼀誽濋 Bokm嶚"
+${LangFileString} lng_nl "砑錆罽濋"
+${LangFileString} lng_nn "俬鼀誽濋 Nynorsk"
+${LangFileString} lng_pa "凊薀箹斶濋"
+${LangFileString} lng_pl "厞錩臄縔"
+${LangFileString} lng_pt "厞嚪檶摠濋"
+${LangFileString} lng_pt_BR "厞嚪檶摠濋 鎚撂澣葐"
+${LangFileString} lng_ro "栨纍塥濋"
+${LangFileString} lng_ru "毤鶅罼"
+${LangFileString} lng_rw "忣臄摙瀦塥酃"
+${LangFileString} lng_sk "迵檺塎濋"
+${LangFileString} lng_sl "迵檺楜濋"
+${LangFileString} lng_sq "鍛皸臄縔"
+${LangFileString} lng_sr "訒鼀濋"
+${LangFileString} lng_sr@latin "訒鼀濋 鵴 錆鏻臄縤 蜤暡"
+${LangFileString} lng_sv "逄纊僸縔"
+${LangFileString} lng_te_IN "婍錝蜺瀦"
+${LangFileString} lng_th "婗"
+${LangFileString} lng_tr "孲齕濋"
+${LangFileString} lng_uk "祌膲摿濋"
+${LangFileString} lng_vi "鎊殦罅徾縃罼"
+${LangFileString} lng_zh_CN "闋錝豵氃徾罅 膦縻縃罼"
+${LangFileString} lng_zh_TW "凊鼁儌鶅摓 膦縻縃罼"
+${LangFileString} UInstOpt "黴澣檶椯 摫樍罼轗黀摷趛"
+${LangFileString} UInstOpt1 "凊鼁罼錌 僸摠楏醲 蜒 貘鵩殦殣 歑澣檶椯"
+${LangFileString} PurgePrefs "灌敳碖踠 貘瀀謮蕘 貘濻濇祼潁"
+${LangFileString} UninstallLogNotFound "$INSTDIR\uninstall.log 麧 碫楴賙!$\r$\n凊鼁罼錌 摫樍罼酃黀祼醲 罼魨麌緮薀摥 鐐 罼轗錝蜧 $INSTDIR 檇臩 鶋!"
+${LangFileString} FileChanged "孲 摙灚蜍 $filename 塝錆鍷 懤轗 鐋 樍罼轗黀摷.$\r$\n楋殦 摓憼 罅 僸摦鵘鷿醲 斠鏸 鐐 摙灚蜍;"
+${LangFileString} Yes "俉"
+${LangFileString} AlwaysYes "摫摿轘黀 謣薀 俉"
+${LangFileString} No "熨"
+${LangFileString} AlwaysNo "摫摿轘黀 謣薀 熨"
diff --git a/packaging/win32/languages/Japanese.nsh b/packaging/win32/languages/Japanese.nsh
index b8c61f22a..c8e949aa0 100644
--- a/packaging/win32/languages/Japanese.nsh
+++ b/packaging/win32/languages/Japanese.nsh
@@ -1,113 +1,113 @@
-;Language: Japanese (1041, CP932)
-;By Kenji Inoue <kenz@oct.zaq.ne.jp>, Masato Hashimoto <cabezon.hashimoto@gmail.com>
-${LangFileString} CaptionDescription "Open Source Scalable Vector Graphics Editor"
-${LangFileString} LICENSE_BOTTOM_TEXT "$(^Name) GNU General Public License (GPL) [XBQlYCZX\B$_CLICK"
-${LangFileString} DIFFERENT_USER "Inkscape [U $0 CXg[B$\r$\nB$\r$\n$0 OCxB"
-${LangFileString} WANT_UNINSTALL_BEFORE "$R1 CXg[B$\n$(^Name) CXg[OOo[W?"
-${LangFileString} OK_CANCEL_DESC "$\n$\nOK p CANCEL ~B"
-${LangFileString} NO_ADMIN "B$\r$\n[U Inkscape CXg[B$\r$\n'[U' IvV`FbN}[NOB"
-${LangFileString} NOT_SUPPORTED "Inkscape Windows 95/98/ME !$\r$\nItBVEFuTCgB"
-${LangFileString} Full "S"
-${LangFileString} Optimal "K"
-${LangFileString} Minimal ""
-${LangFileString} Core "Inkscape SVG Editor (K{)"
-${LangFileString} CoreDesc "Inkscape RAt@C鑪LL"
-${LangFileString} GTKFiles "GTK+ ^C (K{)"
-${LangFileString} GTKFilesDesc "}`vbgtH[ GUI c[Lbg (Inkscape gp)"
-${LangFileString} Shortcuts "V[gJbg"
-${LangFileString} ShortcutsDesc "Inkscape JnV[gJbg"
-${LangFileString} Alluser "[U"
-${LangFileString} AlluserDesc "Rs[^glAvP[VCXg[ ([U)"
-${LangFileString} Desktop "fXNgbv"
-${LangFileString} DesktopDesc "Inkscape V[gJbgfXNgbv"
-${LangFileString} Startmenu "X^[gj["
-${LangFileString} StartmenuDesc "X^[gj[ Inkscape "
-${LangFileString} Quicklaunch "NCbNN"
-${LangFileString} QuicklaunchDesc "Inkscape V[gJbgNCbNNc[o["
-${LangFileString} SVGWriter "SVG t@C Inkscape J"
-${LangFileString} SVGWriterDesc "SVG t@CWGfB^ Inkscape "
-${LangFileString} ContextMenu "ReLXgj["
-${LangFileString} ContextMenuDesc "SVG t@CReLXgj[ Inkscape "
-${LangFileString} DeletePrefs "l"
-${LangFileString} DeletePrefsDesc "OCXg[pl"
-${LangFileString} Addfiles "t@C"
-${LangFileString} AddfilesDesc "t@C"
-${LangFileString} Examples "Tvt@C"
-${LangFileString} ExamplesDesc "Inkscape Tvt@C"
-${LangFileString} Tutorials "`[gA"
-${LangFileString} TutorialsDesc "Inkscape `[gA"
-${LangFileString} Languages ""
-${LangFileString} LanguagesDesc "Inkscape t@CCXg["
-${LangFileString} lng_am "An"
-${LangFileString} lng_ar "ArA"
-${LangFileString} lng_az "A[oCW"
-${LangFileString} lng_be "x[V"
-${LangFileString} lng_bg "uKA"
-${LangFileString} lng_bn "xK"
-${LangFileString} lng_br "ug"
-${LangFileString} lng_ca "J^jA"
-${LangFileString} lng_ca@valencia "oVA"
-${LangFileString} lng_cs "`FR"
-${LangFileString} lng_da "f}[N"
-${LangFileString} lng_de "hCc"
-${LangFileString} lng_dz "]J"
-${LangFileString} lng_el "MV"
-${LangFileString} lng_en "p"
-${LangFileString} lng_en_AU "p (I[XgA)"
-${LangFileString} lng_en_CA "p (Ji_)"
-${LangFileString} lng_en_GB "p (p)"
-${LangFileString} lng_en_US@piglatin "sbOEe"
-${LangFileString} lng_eo "GXyg"
-${LangFileString} lng_es "XyC"
-${LangFileString} lng_es_MX "XyC (LVR)"
-${LangFileString} lng_et "GXgjA"
-${LangFileString} lng_eu "oXN"
-${LangFileString} lng_fa "t@V"
-${LangFileString} lng_fi "tBh"
-${LangFileString} lng_fr "tX"
-${LangFileString} lng_ga "ACh"
-${LangFileString} lng_gl "KVA"
-${LangFileString} lng_he "wuC"
-${LangFileString} lng_hr "NA`A"
-${LangFileString} lng_hu "nK["
-${LangFileString} lng_id "ChlVA"
-${LangFileString} lng_it "C^A"
-${LangFileString} lng_ja "{"
-${LangFileString} lng_km "N["
-${LangFileString} lng_ko ""
-${LangFileString} lng_lt "gAjA"
-${LangFileString} lng_mk "}PhjA"
-${LangFileString} lng_mn "S"
-${LangFileString} lng_ne "lp["
-${LangFileString} lng_nb "mEF[u[N["
-${LangFileString} lng_nl "I_"
-${LangFileString} lng_nn "mEF[j[mVN"
-${LangFileString} lng_pa "pWu"
-${LangFileString} lng_pl "|[h"
-${LangFileString} lng_pt "|gK"
-${LangFileString} lng_pt_BR "|gK (uW)"
-${LangFileString} lng_ro "[}jA"
-${LangFileString} lng_ru "VA"
-${LangFileString} lng_rw "Lj_"
-${LangFileString} lng_sk "XoLA"
-${LangFileString} lng_sl "XxjA"
-${LangFileString} lng_sq "AojA"
-${LangFileString} lng_sr "ZrA"
-${LangFileString} lng_sr@latin "ZrAe"
-${LangFileString} lng_sv "XEF[f"
-${LangFileString} lng_te_IN "eO"
-${LangFileString} lng_th "^C"
-${LangFileString} lng_tr "gR"
-${LangFileString} lng_uk "ENCi"
-${LangFileString} lng_vi "xgi"
-${LangFileString} lng_zh_CN " ()"
-${LangFileString} lng_zh_TW " ()"
-${LangFileString} UInstOpt "ACXg[IvV"
-${LangFileString} UInstOpt1 "KvIvVI"
-${LangFileString} PurgePrefs "lc"
-${LangFileString} UninstallLogNotFound "$INSTDIR\uninstall.log !$\r$\nfBNg $INSTDIR ACXg[!"
-${LangFileString} FileChanged "t@C $filename CXg[XB$\r$\nt@C?"
-${LangFileString} Yes ""
-${LangFileString} AlwaysYes "S"
-${LangFileString} No ""
-${LangFileString} AlwaysNo "S"
+;Language: Japanese (1041, CP932)
+;By Kenji Inoue <kenz@oct.zaq.ne.jp>, Masato Hashimoto <cabezon.hashimoto@gmail.com>
+${LangFileString} CaptionDescription "Open Source Scalable Vector Graphics Editor"
+${LangFileString} LICENSE_BOTTOM_TEXT "$(^Name) GNU General Public License (GPL) [XBQlYCZX\B$_CLICK"
+${LangFileString} DIFFERENT_USER "Inkscape [U $0 CXg[B$\r$\nB$\r$\n$0 OCxB"
+${LangFileString} WANT_UNINSTALL_BEFORE "$R1 CXg[B$\n$(^Name) CXg[OOo[W?"
+${LangFileString} OK_CANCEL_DESC "$\n$\nOK p CANCEL ~B"
+${LangFileString} NO_ADMIN "B$\r$\n[U Inkscape CXg[B$\r$\n'[U' IvV`FbN}[NOB"
+${LangFileString} NOT_SUPPORTED "Inkscape Windows 95/98/ME !$\r$\nItBVEFuTCgB"
+${LangFileString} Full "S"
+${LangFileString} Optimal "K"
+${LangFileString} Minimal ""
+${LangFileString} Core "Inkscape SVG Editor (K{)"
+${LangFileString} CoreDesc "Inkscape RAt@C鑪LL"
+${LangFileString} GTKFiles "GTK+ ^C (K{)"
+${LangFileString} GTKFilesDesc "}`vbgtH[ GUI c[Lbg (Inkscape gp)"
+${LangFileString} Shortcuts "V[gJbg"
+${LangFileString} ShortcutsDesc "Inkscape JnV[gJbg"
+${LangFileString} Alluser "[U"
+${LangFileString} AlluserDesc "Rs[^glAvP[VCXg[ ([U)"
+${LangFileString} Desktop "fXNgbv"
+${LangFileString} DesktopDesc "Inkscape V[gJbgfXNgbv"
+${LangFileString} Startmenu "X^[gj["
+${LangFileString} StartmenuDesc "X^[gj[ Inkscape "
+${LangFileString} Quicklaunch "NCbNN"
+${LangFileString} QuicklaunchDesc "Inkscape V[gJbgNCbNNc[o["
+${LangFileString} SVGWriter "SVG t@C Inkscape J"
+${LangFileString} SVGWriterDesc "SVG t@CWGfB^ Inkscape "
+${LangFileString} ContextMenu "ReLXgj["
+${LangFileString} ContextMenuDesc "SVG t@CReLXgj[ Inkscape "
+${LangFileString} DeletePrefs "l"
+${LangFileString} DeletePrefsDesc "OCXg[pl"
+${LangFileString} Addfiles "t@C"
+${LangFileString} AddfilesDesc "t@C"
+${LangFileString} Examples "Tvt@C"
+${LangFileString} ExamplesDesc "Inkscape Tvt@C"
+${LangFileString} Tutorials "`[gA"
+${LangFileString} TutorialsDesc "Inkscape `[gA"
+${LangFileString} Languages ""
+${LangFileString} LanguagesDesc "Inkscape t@CCXg["
+${LangFileString} lng_am "An"
+${LangFileString} lng_ar "ArA"
+${LangFileString} lng_az "A[oCW"
+${LangFileString} lng_be "x[V"
+${LangFileString} lng_bg "uKA"
+${LangFileString} lng_bn "xK"
+${LangFileString} lng_br "ug"
+${LangFileString} lng_ca "J^jA"
+${LangFileString} lng_ca@valencia "oVA"
+${LangFileString} lng_cs "`FR"
+${LangFileString} lng_da "f}[N"
+${LangFileString} lng_de "hCc"
+${LangFileString} lng_dz "]J"
+${LangFileString} lng_el "MV"
+${LangFileString} lng_en "p"
+${LangFileString} lng_en_AU "p (I[XgA)"
+${LangFileString} lng_en_CA "p (Ji_)"
+${LangFileString} lng_en_GB "p (p)"
+${LangFileString} lng_en_US@piglatin "sbOEe"
+${LangFileString} lng_eo "GXyg"
+${LangFileString} lng_es "XyC"
+${LangFileString} lng_es_MX "XyC (LVR)"
+${LangFileString} lng_et "GXgjA"
+${LangFileString} lng_eu "oXN"
+${LangFileString} lng_fa "t@V"
+${LangFileString} lng_fi "tBh"
+${LangFileString} lng_fr "tX"
+${LangFileString} lng_ga "ACh"
+${LangFileString} lng_gl "KVA"
+${LangFileString} lng_he "wuC"
+${LangFileString} lng_hr "NA`A"
+${LangFileString} lng_hu "nK["
+${LangFileString} lng_id "ChlVA"
+${LangFileString} lng_it "C^A"
+${LangFileString} lng_ja "{"
+${LangFileString} lng_km "N["
+${LangFileString} lng_ko ""
+${LangFileString} lng_lt "gAjA"
+${LangFileString} lng_mk "}PhjA"
+${LangFileString} lng_mn "S"
+${LangFileString} lng_ne "lp["
+${LangFileString} lng_nb "mEF[u[N["
+${LangFileString} lng_nl "I_"
+${LangFileString} lng_nn "mEF[j[mVN"
+${LangFileString} lng_pa "pWu"
+${LangFileString} lng_pl "|[h"
+${LangFileString} lng_pt "|gK"
+${LangFileString} lng_pt_BR "|gK (uW)"
+${LangFileString} lng_ro "[}jA"
+${LangFileString} lng_ru "VA"
+${LangFileString} lng_rw "Lj_"
+${LangFileString} lng_sk "XoLA"
+${LangFileString} lng_sl "XxjA"
+${LangFileString} lng_sq "AojA"
+${LangFileString} lng_sr "ZrA"
+${LangFileString} lng_sr@latin "ZrAe"
+${LangFileString} lng_sv "XEF[f"
+${LangFileString} lng_te_IN "eO"
+${LangFileString} lng_th "^C"
+${LangFileString} lng_tr "gR"
+${LangFileString} lng_uk "ENCi"
+${LangFileString} lng_vi "xgi"
+${LangFileString} lng_zh_CN " ()"
+${LangFileString} lng_zh_TW " ()"
+${LangFileString} UInstOpt "ACXg[IvV"
+${LangFileString} UInstOpt1 "KvIvVI"
+${LangFileString} PurgePrefs "lc"
+${LangFileString} UninstallLogNotFound "$INSTDIR\uninstall.log !$\r$\nfBNg $INSTDIR ACXg[!"
+${LangFileString} FileChanged "t@C $filename CXg[XB$\r$\nt@C?"
+${LangFileString} Yes ""
+${LangFileString} AlwaysYes "S"
+${LangFileString} No ""
+${LangFileString} AlwaysNo "S"
diff --git a/packaging/win32/languages/SimpChinese.nsh b/packaging/win32/languages/SimpChinese.nsh
index 8beb75db7..85fce0208 100644
--- a/packaging/win32/languages/SimpChinese.nsh
+++ b/packaging/win32/languages/SimpChinese.nsh
@@ -1,113 +1,113 @@
-;Language: Simplified Chinese (2052, CP936)
-;By Liang Wang <fabienow@gmail.com>
-${LangFileString} CaptionDescription "??埭??講??芞????"
-${LangFileString} LICENSE_BOTTOM_TEXT "$(^Name) ??GNU籵?羅???????痐???苤? ??虳?廜????痐?????埳??怷??? $_CLICK"
-${LangFileString} DIFFERENT_USER "妏???? $0 ?挩???蚾 Inkscape??$\r$\n???????????????瑀??伄????氿?$\r$\n???? $0 ???搧?????????珨?峞?"
-${LangFileString} WANT_UNINSTALL_BEFORE "$R1 ?挩???蚾?? $\n??猁?痚?蚾 $(^Name) 眳ヶ?く???珨???瘙??"
-${LangFileString} OK_CANCEL_DESC "$\n$\n???????????????葥?????????砦??"
-${LangFileString} NO_ADMIN "??羶??炵苀????埜?煄?$\r$\n??蚾 Inkscape ??????妏???萷????瑀??伄????氶?$\r$\n????恁????蚾??????妏???腄?恁??."
-${LangFileString} NOT_SUPPORTED "Inkscape ?瑀??? Windows 95/98/ME ??????!$\r$\n???橦?棶???桴????牉??洘??"
-${LangFileString} Full "????"
-${LangFileString} Optimal "????"
-${LangFileString} Minimal "??苤"
-${LangFileString} Core "Inkscape SVG ?鉏????(????)"
-${LangFileString} CoreDesc "Inkscape ???醴??? DLL "
-${LangFileString} GTKFiles "GTK+ 硒?郅???(????)"
-${LangFileString} GTKFilesDesc "Inkscape 妏?繭醴?す怢 GUI ??????"
-${LangFileString} Shortcuts "???揧?宒"
-${LangFileString} ShortcutsDesc "???? Inkscape ?醴??揧?宒"
-${LangFileString} Alluser "??蚾??????妏????"
-${LangFileString} AlluserDesc "??蚾????茼?籀??????庥?妏????怢???埽???(????妏????)"
-${LangFileString} Desktop "????"
-${LangFileString} DesktopDesc "???????牮?蕾 Inkscape ???揧?宒"
-${LangFileString} Startmenu "??宎?佽?"
-${LangFileString} StartmenuDesc "?睊?宎?佽???蕾 Inkscape ??醴"
-${LangFileString} Quicklaunch "????????戲"
-${LangFileString} QuicklaunchDesc "?睊???????戲??蕾 Inkscape ???揧?宒"
-${LangFileString} SVGWriter "?? Inkscape ???? SVG ?警?"
-${LangFileString} SVGWriterDesc "恁?? Inkscape ??峈 SVG ?躁????芚???恁?鉏????"
-${LangFileString} ContextMenu "?瓞??佽?"
-${LangFileString} ContextMenuDesc "???? Inkscape ?? SVG ?躁????芚??瓞??佽?"
-${LangFileString} DeletePrefs "刉??????ぇ???頞"
-${LangFileString} DeletePrefsDesc "刉????珨?帡?蚾?????譫???ぇ???頞"
-${LangFileString} Addfiles "?????躁?????"
-${LangFileString} AddfilesDesc "?????躁?????"
-${LangFileString} Examples "????"
-${LangFileString} ExamplesDesc "Inkscape 妏?繩???"
-${LangFileString} Tutorials "硌???眵?"
-${LangFileString} TutorialsDesc "Inkscape 妏??佽??"
-${LangFileString} Languages "????"
-${LangFileString} LanguagesDesc "??蚾 Inkscape ???????埸???"
-${LangFileString} lng_am "????????????"
-${LangFileString} lng_ar "??嶺????"
-${LangFileString} lng_az "????????"
-${LangFileString} lng_be "?袪???佴??"
-${LangFileString} lng_bg "??????????"
-${LangFileString} lng_bn "?牳?嶺??"
-${LangFileString} lng_br "??????????"
-${LangFileString} lng_ca "??怍癒??"
-${LangFileString} lng_ca@valencia "?????????? ??怍????????"
-${LangFileString} lng_cs "?暆???"
-${LangFileString} lng_da "??????"
-${LangFileString} lng_de "????"
-${LangFileString} lng_dz "?睊???"
-${LangFileString} lng_el "洷幫??"
-${LangFileString} lng_en "荎??"
-${LangFileString} lng_en_AU "荎??(?譬?????)"
-${LangFileString} lng_en_CA "荎??(???繫?)"
-${LangFileString} lng_en_GB "荎??(荎??)"
-${LangFileString} lng_en_US@piglatin "??嶺????"
-${LangFileString} lng_eo "?擠???"
-${LangFileString} lng_es "????????"
-${LangFileString} lng_es_MX "????????(蘋????)"
-${LangFileString} lng_et "??伈??????"
-${LangFileString} lng_eu "??佴????"
-${LangFileString} lng_fa "Farsi"
-${LangFileString} lng_fi "??擘??"
-${LangFileString} lng_fr "????"
-${LangFileString} lng_ga "????擘??"
-${LangFileString} lng_gl "??????????"
-${LangFileString} lng_he "洷??????"
-${LangFileString} lng_hr "???獉???????"
-${LangFileString} lng_hu "????????"
-${LangFileString} lng_id "荂????"
-${LangFileString} lng_it "????????"
-${LangFileString} lng_ja "????"
-${LangFileString} lng_km "??????"
-${LangFileString} lng_ko "????"
-${LangFileString} lng_lt "蕾??????"
-${LangFileString} lng_mk "????????"
-${LangFileString} lng_mn "?伄???"
-${LangFileString} lng_ne "?幘????"
-${LangFileString} lng_nb "鑑?? Bokmal ??"
-${LangFileString} lng_nl "??擘??"
-${LangFileString} lng_nn "鑑?? Nynorsk ??"
-${LangFileString} lng_pa "????????"
-${LangFileString} lng_pl "??擘??"
-${LangFileString} lng_pt "????????"
-${LangFileString} lng_pt_BR "????????(????)"
-${LangFileString} lng_ro "??????????"
-${LangFileString} lng_ru "????"
-${LangFileString} lng_rw "????竅??????"
-${LangFileString} lng_sk "佴?撌????"
-${LangFileString} lng_sl "佴?撌??????"
-${LangFileString} lng_sq "????????????"
-${LangFileString} lng_sr "????峎????"
-${LangFileString} lng_sr@latin "????峎????-嶺??"
-${LangFileString} lng_sv "??????"
-${LangFileString} lng_te_IN "Telugu"
-${LangFileString} lng_th "怍??"
-${LangFileString} lng_tr "?褻?????"
-${LangFileString} lng_uk "?睊?擘??"
-${LangFileString} lng_vi "埣??"
-${LangFileString} lng_zh_CN "????????"
-${LangFileString} lng_zh_TW "????????"
-${LangFileString} UInstOpt "????蚾恁??"
-${LangFileString} UInstOpt1 "??恁??????恁??"
-${LangFileString} PurgePrefs "????????ぇ???頞"
-${LangFileString} UninstallLogNotFound "羶???珛? $INSTDIR\uninstall.log ??$\r$\n?????????? $INSTDIR ?躁??窾??蚾??"
-${LangFileString} FileChanged "??蚾?? $filename ?躁??????拲?????$\r$\n???Й???閡罔???К??躁????礿?"
-${LangFileString} Yes "??"
-${LangFileString} AlwaysYes "??????"
-${LangFileString} No "??"
-${LangFileString} AlwaysNo "???埸?"
+;Language: Simplified Chinese (2052, CP936)
+;By Liang Wang <fabienow@gmail.com>
+${LangFileString} CaptionDescription "??埭??講??芞????"
+${LangFileString} LICENSE_BOTTOM_TEXT "$(^Name) ??GNU籵?羅???????痐???苤? ??虳?廜????痐?????埳??怷??? $_CLICK"
+${LangFileString} DIFFERENT_USER "妏???? $0 ?挩???蚾 Inkscape??$\r$\n???????????????瑀??伄????氿?$\r$\n???? $0 ???搧?????????珨?峞?"
+${LangFileString} WANT_UNINSTALL_BEFORE "$R1 ?挩???蚾?? $\n??猁?痚?蚾 $(^Name) 眳ヶ?く???珨???瘙??"
+${LangFileString} OK_CANCEL_DESC "$\n$\n???????????????葥?????????砦??"
+${LangFileString} NO_ADMIN "??羶??炵苀????埜?煄?$\r$\n??蚾 Inkscape ??????妏???萷????瑀??伄????氶?$\r$\n????恁????蚾??????妏???腄?恁??."
+${LangFileString} NOT_SUPPORTED "Inkscape ?瑀??? Windows 95/98/ME ??????!$\r$\n???橦?棶???桴????牉??洘??"
+${LangFileString} Full "????"
+${LangFileString} Optimal "????"
+${LangFileString} Minimal "??苤"
+${LangFileString} Core "Inkscape SVG ?鉏????(????)"
+${LangFileString} CoreDesc "Inkscape ???醴??? DLL "
+${LangFileString} GTKFiles "GTK+ 硒?郅???(????)"
+${LangFileString} GTKFilesDesc "Inkscape 妏?繭醴?す怢 GUI ??????"
+${LangFileString} Shortcuts "???揧?宒"
+${LangFileString} ShortcutsDesc "???? Inkscape ?醴??揧?宒"
+${LangFileString} Alluser "??蚾??????妏????"
+${LangFileString} AlluserDesc "??蚾????茼?籀??????庥?妏????怢???埽???(????妏????)"
+${LangFileString} Desktop "????"
+${LangFileString} DesktopDesc "???????牮?蕾 Inkscape ???揧?宒"
+${LangFileString} Startmenu "??宎?佽?"
+${LangFileString} StartmenuDesc "?睊?宎?佽???蕾 Inkscape ??醴"
+${LangFileString} Quicklaunch "????????戲"
+${LangFileString} QuicklaunchDesc "?睊???????戲??蕾 Inkscape ???揧?宒"
+${LangFileString} SVGWriter "?? Inkscape ???? SVG ?警?"
+${LangFileString} SVGWriterDesc "恁?? Inkscape ??峈 SVG ?躁????芚???恁?鉏????"
+${LangFileString} ContextMenu "?瓞??佽?"
+${LangFileString} ContextMenuDesc "???? Inkscape ?? SVG ?躁????芚??瓞??佽?"
+${LangFileString} DeletePrefs "刉??????ぇ???頞"
+${LangFileString} DeletePrefsDesc "刉????珨?帡?蚾?????譫???ぇ???頞"
+${LangFileString} Addfiles "?????躁?????"
+${LangFileString} AddfilesDesc "?????躁?????"
+${LangFileString} Examples "????"
+${LangFileString} ExamplesDesc "Inkscape 妏?繩???"
+${LangFileString} Tutorials "硌???眵?"
+${LangFileString} TutorialsDesc "Inkscape 妏??佽??"
+${LangFileString} Languages "????"
+${LangFileString} LanguagesDesc "??蚾 Inkscape ???????埸???"
+${LangFileString} lng_am "????????????"
+${LangFileString} lng_ar "??嶺????"
+${LangFileString} lng_az "????????"
+${LangFileString} lng_be "?袪???佴??"
+${LangFileString} lng_bg "??????????"
+${LangFileString} lng_bn "?牳?嶺??"
+${LangFileString} lng_br "??????????"
+${LangFileString} lng_ca "??怍癒??"
+${LangFileString} lng_ca@valencia "?????????? ??怍????????"
+${LangFileString} lng_cs "?暆???"
+${LangFileString} lng_da "??????"
+${LangFileString} lng_de "????"
+${LangFileString} lng_dz "?睊???"
+${LangFileString} lng_el "洷幫??"
+${LangFileString} lng_en "荎??"
+${LangFileString} lng_en_AU "荎??(?譬?????)"
+${LangFileString} lng_en_CA "荎??(???繫?)"
+${LangFileString} lng_en_GB "荎??(荎??)"
+${LangFileString} lng_en_US@piglatin "??嶺????"
+${LangFileString} lng_eo "?擠???"
+${LangFileString} lng_es "????????"
+${LangFileString} lng_es_MX "????????(蘋????)"
+${LangFileString} lng_et "??伈??????"
+${LangFileString} lng_eu "??佴????"
+${LangFileString} lng_fa "Farsi"
+${LangFileString} lng_fi "??擘??"
+${LangFileString} lng_fr "????"
+${LangFileString} lng_ga "????擘??"
+${LangFileString} lng_gl "??????????"
+${LangFileString} lng_he "洷??????"
+${LangFileString} lng_hr "???獉???????"
+${LangFileString} lng_hu "????????"
+${LangFileString} lng_id "荂????"
+${LangFileString} lng_it "????????"
+${LangFileString} lng_ja "????"
+${LangFileString} lng_km "??????"
+${LangFileString} lng_ko "????"
+${LangFileString} lng_lt "蕾??????"
+${LangFileString} lng_mk "????????"
+${LangFileString} lng_mn "?伄???"
+${LangFileString} lng_ne "?幘????"
+${LangFileString} lng_nb "鑑?? Bokmal ??"
+${LangFileString} lng_nl "??擘??"
+${LangFileString} lng_nn "鑑?? Nynorsk ??"
+${LangFileString} lng_pa "????????"
+${LangFileString} lng_pl "??擘??"
+${LangFileString} lng_pt "????????"
+${LangFileString} lng_pt_BR "????????(????)"
+${LangFileString} lng_ro "??????????"
+${LangFileString} lng_ru "????"
+${LangFileString} lng_rw "????竅??????"
+${LangFileString} lng_sk "佴?撌????"
+${LangFileString} lng_sl "佴?撌??????"
+${LangFileString} lng_sq "????????????"
+${LangFileString} lng_sr "????峎????"
+${LangFileString} lng_sr@latin "????峎????-嶺??"
+${LangFileString} lng_sv "??????"
+${LangFileString} lng_te_IN "Telugu"
+${LangFileString} lng_th "怍??"
+${LangFileString} lng_tr "?褻?????"
+${LangFileString} lng_uk "?睊?擘??"
+${LangFileString} lng_vi "埣??"
+${LangFileString} lng_zh_CN "????????"
+${LangFileString} lng_zh_TW "????????"
+${LangFileString} UInstOpt "????蚾恁??"
+${LangFileString} UInstOpt1 "??恁??????恁??"
+${LangFileString} PurgePrefs "????????ぇ???頞"
+${LangFileString} UninstallLogNotFound "羶???珛? $INSTDIR\uninstall.log ??$\r$\n?????????? $INSTDIR ?躁??窾??蚾??"
+${LangFileString} FileChanged "??蚾?? $filename ?躁??????拲?????$\r$\n???Й???閡罔???К??躁????礿?"
+${LangFileString} Yes "??"
+${LangFileString} AlwaysYes "??????"
+${LangFileString} No "??"
+${LangFileString} AlwaysNo "???埸?"
diff --git a/packaging/win32/languages/TradChinese.nsh b/packaging/win32/languages/TradChinese.nsh
index 2db61420c..e8f1a260f 100644
--- a/packaging/win32/languages/TradChinese.nsh
+++ b/packaging/win32/languages/TradChinese.nsh
@@ -1,113 +1,113 @@
-;Language: Traditional Chinese (1028, CP950)
-;By Dong-Jun Wu <ziyawu@gmail.com>
-${LangFileString} CaptionDescription "開放原始碼向量繪圖軟體"
-${LangFileString} LICENSE_BOTTOM_TEXT "$(^Name) 是以 GNU 通用公共許可證 (GPL) 發行。 這裡提供的許可證僅為參考訊息。 $_CLICK"
-${LangFileString} DIFFERENT_USER "使用者 $0 已經安裝 Inkscape。$\r$\n如果繼續你可能無法成功完成!$\r$\n請以 $0 身份登入後再試一次。"
-${LangFileString} WANT_UNINSTALL_BEFORE "$R1 已經安裝。 $\n你要在安裝 $(^Name) 之前移除上一個版本?"
-${LangFileString} OK_CANCEL_DESC "$\n$\n按「確定」繼續或者按「取消」中止。"
-${LangFileString} NO_ADMIN "你沒有系統管理員權限。$\r$\n安裝 Inkscape 到所有使用者可能無法成功完成。$\r$\n取消勾選「安裝給所有使用者」選項."
-${LangFileString} NOT_SUPPORTED "Inkscape 無法於 Windows 95/98/ME 下運行!$\r$\n請查看官方網站的詳細信息。"
-${LangFileString} Full "完整"
-${LangFileString} Optimal "理想"
-${LangFileString} Minimal "最小"
-${LangFileString} Core "Inkscape SVG 編輯程式(必須)"
-${LangFileString} CoreDesc "Inkscape 核心檔案和 DLL 檔"
-${LangFileString} GTKFiles "GTK+ 執行環境(必須)"
-${LangFileString} GTKFilesDesc "Inkscape 使用的跨平台 GUI 工具組"
-${LangFileString} Shortcuts "捷徑"
-${LangFileString} ShortcutsDesc "啟動 Inkscape 的捷徑"
-${LangFileString} Alluser "安裝給所有使用者"
-${LangFileString} AlluserDesc "安裝這個應用程式給任何使用這台電腦的人(所有使用者)"
-${LangFileString} Desktop "桌面"
-${LangFileString} DesktopDesc "於桌面上建立 Inkscape 捷徑"
-${LangFileString} Startmenu "開始功能表"
-${LangFileString} StartmenuDesc "於開始功能表建立 Inkscape 項目"
-${LangFileString} Quicklaunch "快速啟動"
-${LangFileString} QuicklaunchDesc "於快速啟動列建立 Inkscape 捷徑"
-${LangFileString} SVGWriter "用 Inkscape 開啟 SVG 檔"
-${LangFileString} SVGWriterDesc "選擇 Inkscape 作為 SVG 檔的預設編輯程式"
-${LangFileString} ContextMenu "右鍵功能表"
-${LangFileString} ContextMenuDesc "新增 Inkscape 到 SVG 檔的右鍵功能表"
-${LangFileString} DeletePrefs "刪除個人偏好設定"
-${LangFileString} DeletePrefsDesc "刪除上一次安裝遺留的個人偏好設定"
-${LangFileString} Addfiles "其他檔案"
-${LangFileString} AddfilesDesc "其他檔案"
-${LangFileString} Examples "範例"
-${LangFileString} ExamplesDesc "Inkscape 使用範例"
-${LangFileString} Tutorials "指導手冊"
-${LangFileString} TutorialsDesc "Inkscape 使用教學"
-${LangFileString} Languages "語言"
-${LangFileString} LanguagesDesc "安裝 Inkscape 各種語言翻譯"
-${LangFileString} lng_am "阿比西尼亞語"
-${LangFileString} lng_ar "阿拉伯語"
-${LangFileString} lng_az "亞塞拜然語"
-${LangFileString} lng_be "白俄羅斯語"
-${LangFileString} lng_bg "保加利亞語"
-${LangFileString} lng_bn "孟加拉語"
-${LangFileString} lng_br "不列塔尼語"
-${LangFileString} lng_ca "加泰隆語"
-${LangFileString} lng_ca@valencia "瓦倫西亞語 加泰羅尼亞語"
-${LangFileString} lng_cs "捷克語"
-${LangFileString} lng_da "丹麥語"
-${LangFileString} lng_de "德語"
-${LangFileString} lng_dz "宗卡語"
-${LangFileString} lng_el "希臘語"
-${LangFileString} lng_en "英語"
-${LangFileString} lng_en_AU "英語(澳大利亞)"
-${LangFileString} lng_en_CA "英語(加拿大)"
-${LangFileString} lng_en_GB "英語(不列顛)"
-${LangFileString} lng_en_US@piglatin "豬拉丁語"
-${LangFileString} lng_eo "世界語"
-${LangFileString} lng_es "西班牙文"
-${LangFileString} lng_es_MX "西班牙語(墨西哥)"
-${LangFileString} lng_et "愛沙尼亞語"
-${LangFileString} lng_eu "巴斯克語"
-${LangFileString} lng_fa "Farsi"
-${LangFileString} lng_fi "芬蘭語"
-${LangFileString} lng_fr "法文"
-${LangFileString} lng_ga "愛爾蘭語"
-${LangFileString} lng_gl "加里西亞語"
-${LangFileString} lng_he "希伯來語"
-${LangFileString} lng_hr "克羅埃西亞語"
-${LangFileString} lng_hu "匈牙利語"
-${LangFileString} lng_id "印尼語"
-${LangFileString} lng_it "義大利文"
-${LangFileString} lng_ja "日文"
-${LangFileString} lng_km "高棉語"
-${LangFileString} lng_ko "韓文"
-${LangFileString} lng_lt "立陶宛語"
-${LangFileString} lng_mk "馬其頓語"
-${LangFileString} lng_mn "蒙古語"
-${LangFileString} lng_ne "尼泊爾語"
-${LangFileString} lng_nb "挪威 Bokmal 語"
-${LangFileString} lng_nl "荷蘭語"
-${LangFileString} lng_nn "挪威 Nynorsk 語"
-${LangFileString} lng_pa "旁遮普語"
-${LangFileString} lng_pl "波蘭語"
-${LangFileString} lng_pt "葡萄牙文"
-${LangFileString} lng_pt_BR "葡萄牙文(巴西)"
-${LangFileString} lng_ro "羅馬尼亞語"
-${LangFileString} lng_ru "俄文"
-${LangFileString} lng_rw "金亞盧安達語"
-${LangFileString} lng_sk "斯洛法克語"
-${LangFileString} lng_sl "斯洛凡尼亞語"
-${LangFileString} lng_sq "阿爾巴尼亞語"
-${LangFileString} lng_sr "賽爾維亞語"
-${LangFileString} lng_sr@latin "塞爾維亞文-拉丁"
-${LangFileString} lng_sv "瑞典語"
-${LangFileString} lng_te_IN "Telugu"
-${LangFileString} lng_th "泰語"
-${LangFileString} lng_tr "土耳其語"
-${LangFileString} lng_uk "烏克蘭語"
-${LangFileString} lng_vi "越南話"
-${LangFileString} lng_zh_CN "簡體中文"
-${LangFileString} lng_zh_TW "繁體中文"
-${LangFileString} UInstOpt "反安裝選項"
-${LangFileString} UInstOpt1 "請選擇其他選項"
-${LangFileString} PurgePrefs "保留個人偏好設定"
-${LangFileString} UninstallLogNotFound "沒有找到 $INSTDIR\uninstall.log !$\r$\n請自行清除 $INSTDIR 資料夾來反安裝!"
-${LangFileString} FileChanged "安裝後 $filename 檔案已變更。$\r$\n你是否仍然要刪除那個檔案?"
-${LangFileString} Yes "是"
-${LangFileString} AlwaysYes "全部皆是"
-${LangFileString} No "否"
-${LangFileString} AlwaysNo "全部皆否"
+;Language: Traditional Chinese (1028, CP950)
+;By Dong-Jun Wu <ziyawu@gmail.com>
+${LangFileString} CaptionDescription "開放原始碼向量繪圖軟體"
+${LangFileString} LICENSE_BOTTOM_TEXT "$(^Name) 是以 GNU 通用公共許可證 (GPL) 發行。 這裡提供的許可證僅為參考訊息。 $_CLICK"
+${LangFileString} DIFFERENT_USER "使用者 $0 已經安裝 Inkscape。$\r$\n如果繼續你可能無法成功完成!$\r$\n請以 $0 身份登入後再試一次。"
+${LangFileString} WANT_UNINSTALL_BEFORE "$R1 已經安裝。 $\n你要在安裝 $(^Name) 之前移除上一個版本?"
+${LangFileString} OK_CANCEL_DESC "$\n$\n按「確定」繼續或者按「取消」中止。"
+${LangFileString} NO_ADMIN "你沒有系統管理員權限。$\r$\n安裝 Inkscape 到所有使用者可能無法成功完成。$\r$\n取消勾選「安裝給所有使用者」選項."
+${LangFileString} NOT_SUPPORTED "Inkscape 無法於 Windows 95/98/ME 下運行!$\r$\n請查看官方網站的詳細信息。"
+${LangFileString} Full "完整"
+${LangFileString} Optimal "理想"
+${LangFileString} Minimal "最小"
+${LangFileString} Core "Inkscape SVG 編輯程式(必須)"
+${LangFileString} CoreDesc "Inkscape 核心檔案和 DLL 檔"
+${LangFileString} GTKFiles "GTK+ 執行環境(必須)"
+${LangFileString} GTKFilesDesc "Inkscape 使用的跨平台 GUI 工具組"
+${LangFileString} Shortcuts "捷徑"
+${LangFileString} ShortcutsDesc "啟動 Inkscape 的捷徑"
+${LangFileString} Alluser "安裝給所有使用者"
+${LangFileString} AlluserDesc "安裝這個應用程式給任何使用這台電腦的人(所有使用者)"
+${LangFileString} Desktop "桌面"
+${LangFileString} DesktopDesc "於桌面上建立 Inkscape 捷徑"
+${LangFileString} Startmenu "開始功能表"
+${LangFileString} StartmenuDesc "於開始功能表建立 Inkscape 項目"
+${LangFileString} Quicklaunch "快速啟動"
+${LangFileString} QuicklaunchDesc "於快速啟動列建立 Inkscape 捷徑"
+${LangFileString} SVGWriter "用 Inkscape 開啟 SVG 檔"
+${LangFileString} SVGWriterDesc "選擇 Inkscape 作為 SVG 檔的預設編輯程式"
+${LangFileString} ContextMenu "右鍵功能表"
+${LangFileString} ContextMenuDesc "新增 Inkscape 到 SVG 檔的右鍵功能表"
+${LangFileString} DeletePrefs "刪除個人偏好設定"
+${LangFileString} DeletePrefsDesc "刪除上一次安裝遺留的個人偏好設定"
+${LangFileString} Addfiles "其他檔案"
+${LangFileString} AddfilesDesc "其他檔案"
+${LangFileString} Examples "範例"
+${LangFileString} ExamplesDesc "Inkscape 使用範例"
+${LangFileString} Tutorials "指導手冊"
+${LangFileString} TutorialsDesc "Inkscape 使用教學"
+${LangFileString} Languages "語言"
+${LangFileString} LanguagesDesc "安裝 Inkscape 各種語言翻譯"
+${LangFileString} lng_am "阿比西尼亞語"
+${LangFileString} lng_ar "阿拉伯語"
+${LangFileString} lng_az "亞塞拜然語"
+${LangFileString} lng_be "白俄羅斯語"
+${LangFileString} lng_bg "保加利亞語"
+${LangFileString} lng_bn "孟加拉語"
+${LangFileString} lng_br "不列塔尼語"
+${LangFileString} lng_ca "加泰隆語"
+${LangFileString} lng_ca@valencia "瓦倫西亞語 加泰羅尼亞語"
+${LangFileString} lng_cs "捷克語"
+${LangFileString} lng_da "丹麥語"
+${LangFileString} lng_de "德語"
+${LangFileString} lng_dz "宗卡語"
+${LangFileString} lng_el "希臘語"
+${LangFileString} lng_en "英語"
+${LangFileString} lng_en_AU "英語(澳大利亞)"
+${LangFileString} lng_en_CA "英語(加拿大)"
+${LangFileString} lng_en_GB "英語(不列顛)"
+${LangFileString} lng_en_US@piglatin "豬拉丁語"
+${LangFileString} lng_eo "世界語"
+${LangFileString} lng_es "西班牙文"
+${LangFileString} lng_es_MX "西班牙語(墨西哥)"
+${LangFileString} lng_et "愛沙尼亞語"
+${LangFileString} lng_eu "巴斯克語"
+${LangFileString} lng_fa "Farsi"
+${LangFileString} lng_fi "芬蘭語"
+${LangFileString} lng_fr "法文"
+${LangFileString} lng_ga "愛爾蘭語"
+${LangFileString} lng_gl "加里西亞語"
+${LangFileString} lng_he "希伯來語"
+${LangFileString} lng_hr "克羅埃西亞語"
+${LangFileString} lng_hu "匈牙利語"
+${LangFileString} lng_id "印尼語"
+${LangFileString} lng_it "義大利文"
+${LangFileString} lng_ja "日文"
+${LangFileString} lng_km "高棉語"
+${LangFileString} lng_ko "韓文"
+${LangFileString} lng_lt "立陶宛語"
+${LangFileString} lng_mk "馬其頓語"
+${LangFileString} lng_mn "蒙古語"
+${LangFileString} lng_ne "尼泊爾語"
+${LangFileString} lng_nb "挪威 Bokmal 語"
+${LangFileString} lng_nl "荷蘭語"
+${LangFileString} lng_nn "挪威 Nynorsk 語"
+${LangFileString} lng_pa "旁遮普語"
+${LangFileString} lng_pl "波蘭語"
+${LangFileString} lng_pt "葡萄牙文"
+${LangFileString} lng_pt_BR "葡萄牙文(巴西)"
+${LangFileString} lng_ro "羅馬尼亞語"
+${LangFileString} lng_ru "俄文"
+${LangFileString} lng_rw "金亞盧安達語"
+${LangFileString} lng_sk "斯洛法克語"
+${LangFileString} lng_sl "斯洛凡尼亞語"
+${LangFileString} lng_sq "阿爾巴尼亞語"
+${LangFileString} lng_sr "賽爾維亞語"
+${LangFileString} lng_sr@latin "塞爾維亞文-拉丁"
+${LangFileString} lng_sv "瑞典語"
+${LangFileString} lng_te_IN "Telugu"
+${LangFileString} lng_th "泰語"
+${LangFileString} lng_tr "土耳其語"
+${LangFileString} lng_uk "烏克蘭語"
+${LangFileString} lng_vi "越南話"
+${LangFileString} lng_zh_CN "簡體中文"
+${LangFileString} lng_zh_TW "繁體中文"
+${LangFileString} UInstOpt "反安裝選項"
+${LangFileString} UInstOpt1 "請選擇其他選項"
+${LangFileString} PurgePrefs "保留個人偏好設定"
+${LangFileString} UninstallLogNotFound "沒有找到 $INSTDIR\uninstall.log !$\r$\n請自行清除 $INSTDIR 資料夾來反安裝!"
+${LangFileString} FileChanged "安裝後 $filename 檔案已變更。$\r$\n你是否仍然要刪除那個檔案?"
+${LangFileString} Yes "是"
+${LangFileString} AlwaysYes "全部皆是"
+${LangFileString} No "否"
+${LangFileString} AlwaysNo "全部皆否"
diff --git a/packaging/win32/md5dll.txt b/packaging/win32/md5dll.txt
index 7d6992186..a8d3572c7 100644
--- a/packaging/win32/md5dll.txt
+++ b/packaging/win32/md5dll.txt
@@ -1,68 +1,68 @@
-Calculates the md5sum of a file or string.
-Has been tested to work with NSIS 2.0+
-
-
-Derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm
-
-[Md5Dll]
-Matthew "IGx89" Lieder
- -Original plugin Author
-
-Sunjammer (12th May 2002)
- -Original usage notes and example script
-
-[Md5Dll.0.1]
-KJD (2004)
- -Modified to reduce size and use exdll.h
- (reduced to about 6KB uncompressed, by removing CRTL dependency)
-
-[Md5dll.0.2]
-Davy Durham (2004)
- -MD5.cpp fix (correct for loop used to replace memset, exceeded bounds)
-
-[Md5dll.0.3]
-Shengalts Aleksander aka Instructor (2005)
- -New command: "GetMD5Random"
- -Changed names: "GetFileMD5" -> "GetMD5File", "GetMD5" -> "GetMD5String"
- -Fixed: string length error
-
-[Md5dll.0.4]
-KJD (2005)
- -Added dual name to exports for backwards compatibility
-
-
---------------------------------
-
-Usage:
-
-Push $1 ;string
-CallInstDll "md5dll" GetMD5String
-Pop $1 ;md5 of string
-
--or-
-
-Push $1 ;filename
-CallInstDll "md5dll" GetMD5File
-Pop $1 ;md5 of file
-
---------------------------------
-
-Example usage in recent NSIS versions
-
-OutFile "md5test.exe"
-Section ""
- #generate MD5sum of a string
- md5dll::GetMD5String "md5me"
- Pop $0
- DetailPrint "md5: [$0]"
-
- # generate MD5sum of a file
- md5dll::GetMD5File "${NSISDIR}\makensis.exe"
- Pop $0
- DetailPrint "md5: [$0]"
-
- #generate random MD5sum
- md5dll::GetMD5Random
- Pop $0
- DetailPrint "md5: [$0]"
-SectionEnd
+Calculates the md5sum of a file or string.
+Has been tested to work with NSIS 2.0+
+
+
+Derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm
+
+[Md5Dll]
+Matthew "IGx89" Lieder
+ -Original plugin Author
+
+Sunjammer (12th May 2002)
+ -Original usage notes and example script
+
+[Md5Dll.0.1]
+KJD (2004)
+ -Modified to reduce size and use exdll.h
+ (reduced to about 6KB uncompressed, by removing CRTL dependency)
+
+[Md5dll.0.2]
+Davy Durham (2004)
+ -MD5.cpp fix (correct for loop used to replace memset, exceeded bounds)
+
+[Md5dll.0.3]
+Shengalts Aleksander aka Instructor (2005)
+ -New command: "GetMD5Random"
+ -Changed names: "GetFileMD5" -> "GetMD5File", "GetMD5" -> "GetMD5String"
+ -Fixed: string length error
+
+[Md5dll.0.4]
+KJD (2005)
+ -Added dual name to exports for backwards compatibility
+
+
+--------------------------------
+
+Usage:
+
+Push $1 ;string
+CallInstDll "md5dll" GetMD5String
+Pop $1 ;md5 of string
+
+-or-
+
+Push $1 ;filename
+CallInstDll "md5dll" GetMD5File
+Pop $1 ;md5 of file
+
+--------------------------------
+
+Example usage in recent NSIS versions
+
+OutFile "md5test.exe"
+Section ""
+ #generate MD5sum of a string
+ md5dll::GetMD5String "md5me"
+ Pop $0
+ DetailPrint "md5: [$0]"
+
+ # generate MD5sum of a file
+ md5dll::GetMD5File "${NSISDIR}\makensis.exe"
+ Pop $0
+ DetailPrint "md5: [$0]"
+
+ #generate random MD5sum
+ md5dll::GetMD5Random
+ Pop $0
+ DetailPrint "md5: [$0]"
+SectionEnd
diff --git a/packaging/win32/portable/App/AppInfo/Launcher/InkscapePortable.ini b/packaging/win32/portable/App/AppInfo/Launcher/InkscapePortable.ini
new file mode 100644
index 000000000..cb4cdaf0e
--- /dev/null
+++ b/packaging/win32/portable/App/AppInfo/Launcher/InkscapePortable.ini
@@ -0,0 +1,51 @@
+[Launch]
+ProgramExecutable=Inkscape\inkscape.exe
+DirectoryMoveOK=yes
+
+[Environment]
+INKSCAPE_PORTABLE_PROFILE_DIR=%PAL:DataDir%\settings
+HOME=%PAL:DataDir%\settings
+APPDATA=%PAL:DataDir%\settings
+LANG=%PAL:LanguageCustom%
+
+[Language]
+Base=%PortableApps.comLocaleglibc%
+CheckIfExists=%PAL:AppDir%\Inkscape\locale\%PAL:LanguageCustom%\*.*
+DefaultIfNotExists=en_US
+
+[LanguageFile]
+Type=INI
+File=%PAL:DataDir%\settings\InkscapePortableSettings.ini
+Section=Language
+Key=LANG
+
+[FileWrite1]
+Type=INI
+File=%PAL:DataDir%\settings\InkscapePortableSettings.ini
+Section=Language
+Key=LANG
+Value=%PAL:LanguageCustom%
+
+[FileWrite2]
+Type=Replace
+File=%PAL:DataDir%\settings\preferences.xml
+Find=%PAL:LastDrive%%PAL:LastPackagePartialDir%
+Replace=%PAL:Drive%%PAL:PackagePartialDir%
+
+[FileWrite3]
+Type=Replace
+File=%PAL:DataDir%\settings\preferences.xml
+Find=%PAL:LastDrive%\
+Replace=%PAL:Drive%\
+
+[FileWrite4]
+Type=Replace
+File=%PAL:DataDir%\settings\.recently-used.xbel
+Find=file:///%PAL:LastDrive%%PAL:LastPackagePartialDir:ForwardSlash%
+Replace=file:///%PAL:Drive%%PAL:PackagePartialDir:ForwardSlash%
+
+[FileWrite5]
+Type=Replace
+File=%PAL:DataDir%\settings\.recently-used.xbel
+Find=file:///%PAL:LastDrive%
+Replace=file:///%PAL:Drive% \ No newline at end of file
diff --git a/packaging/win32/portable/App/AppInfo/Launcher/splash.jpg b/packaging/win32/portable/App/AppInfo/Launcher/splash.jpg
new file mode 100644
index 000000000..2cea13084
--- /dev/null
+++ b/packaging/win32/portable/App/AppInfo/Launcher/splash.jpg
Binary files differ
diff --git a/packaging/win32/portable/App/AppInfo/appinfo.ini b/packaging/win32/portable/App/AppInfo/appinfo.ini
index 677489010..544a66584 100644
--- a/packaging/win32/portable/App/AppInfo/appinfo.ini
+++ b/packaging/win32/portable/App/AppInfo/appinfo.ini
@@ -1,26 +1,26 @@
-[Format]
-Type=PortableApps.comFormat
-Version=0.91
-
-[Details]
-Name=Inkscape Portable
-AppID=InkscapePortable
-Publisher=Inkscape.org & PortableApps.com
-Homepage=Inkscape.org
-Category=Graphics & Pictures
-Description=Inkscape is a powerful vector graphics editor.
-Language=Multilingual
-
-[License]
-Shareable=true
-OpenSource=true
-Freeware=true
-CommercialUse=true
-
-[Version]
-PackageVersion=0.47
-DisplayVersion=0.47
-
-[Control]
-Icons=1
-Start=InkscapePortable.exe
+[Format]
+Type=PortableApps.comFormat
+Version=0.91
+
+[Details]
+Name=Inkscape Portable
+AppID=InkscapePortable
+Publisher=Inkscape.org & PortableApps.com
+Homepage=Inkscape.org
+Category=Graphics & Pictures
+Description=Inkscape is a powerful vector graphics editor.
+Language=Multilingual
+
+[License]
+Shareable=true
+OpenSource=true
+Freeware=true
+CommercialUse=true
+
+[Version]
+PackageVersion=0.47
+DisplayVersion=0.47
+
+[Control]
+Icons=1
+Start=InkscapePortable.exe
diff --git a/packaging/win32/portable/App/AppInfo/installer.ini b/packaging/win32/portable/App/AppInfo/installer.ini
index ad1918ecf..ffa60d15a 100644
--- a/packaging/win32/portable/App/AppInfo/installer.ini
+++ b/packaging/win32/portable/App/AppInfo/installer.ini
@@ -1,15 +1,15 @@
-[OptionalComponents]
-OptionalComponents=true
-OptionalDirectory1=App\Inkscape\locale
-OptionalDirectory2=App\Inkscape\share\locale
-OptionalFile1=App\Inkscape\share\clipart\draw-freely.*.svg
-OptionalFile2=App\Inkscape\share\screens\*.*.svg
-OptionalFile3=App\Inkscape\share\templates\default.*.svg
-OptionalFile4=App\Inkscape\share\tutorials\potrace-*.svg
-OptionalFile5=App\Inkscape\share\tutorials\*.*.svg
-
-[DirectoriesToPreserve]
-PreserveDirectory1=App\Inkscape\data
-PreserveDirectory2=App\Inkscape\modules
-PreserveDirectory3=App\Inkscape\plugins
-PreserveDirectory4=App\Inkscape\share\extensions
+[OptionalComponents]
+OptionalComponents=true
+OptionalDirectory1=App\Inkscape\locale
+OptionalDirectory2=App\Inkscape\share\locale
+OptionalFile1=App\Inkscape\share\clipart\draw-freely.*.svg
+OptionalFile2=App\Inkscape\share\screens\*.*.svg
+OptionalFile3=App\Inkscape\share\templates\default.*.svg
+OptionalFile4=App\Inkscape\share\tutorials\potrace-*.svg
+OptionalFile5=App\Inkscape\share\tutorials\*.*.svg
+
+[DirectoriesToPreserve]
+PreserveDirectory1=App\Inkscape\data
+PreserveDirectory2=App\Inkscape\modules
+PreserveDirectory3=App\Inkscape\plugins
+PreserveDirectory4=App\Inkscape\share\extensions
diff --git a/packaging/win32/portable/App/readme.txt b/packaging/win32/portable/App/readme.txt
index fd42dacfb..b67db5038 100644
--- a/packaging/win32/portable/App/readme.txt
+++ b/packaging/win32/portable/App/readme.txt
@@ -1 +1 @@
-The files in this directory are necessary for Inkscape Portable to function. There is normally no need to directly access or alter any of the files within these directories.
+The files in this directory are necessary for Inkscape Portable to function. There is normally no need to directly access or alter any of the files within these directories.
diff --git a/packaging/win32/portable/Other/Source/AppNamePortable.ini b/packaging/win32/portable/Other/Source/AppNamePortable.ini
new file mode 100644
index 000000000..e85e60f6a
--- /dev/null
+++ b/packaging/win32/portable/Other/Source/AppNamePortable.ini
@@ -0,0 +1,6 @@
+AdditionalParameters=
+DisableSplashScreen=false
+RunLocally=false
+
+# The above options are explained in the included readme.txt
+# This INI file is an example only and is not used unless it is placed as described in the included readme.txt
diff --git a/packaging/win32/portable/Other/Source/InkscapePortable.ini b/packaging/win32/portable/Other/Source/InkscapePortable.ini
deleted file mode 100644
index b734190da..000000000
--- a/packaging/win32/portable/Other/Source/InkscapePortable.ini
+++ /dev/null
@@ -1,6 +0,0 @@
-[InkscapePortable]
-AdditionalParameters=
-DisableSplashScreen=false
-
-# This INI is an example only and will not work until placed according to the directions in readme.txt
-# The above options are explained in the included readme.txt
diff --git a/packaging/win32/portable/Other/Source/InkscapePortable.jpg b/packaging/win32/portable/Other/Source/InkscapePortable.jpg
deleted file mode 100644
index 04955846f..000000000
--- a/packaging/win32/portable/Other/Source/InkscapePortable.jpg
+++ /dev/null
Binary files differ
diff --git a/packaging/win32/portable/Other/Source/InkscapePortable.nsi b/packaging/win32/portable/Other/Source/InkscapePortable.nsi
deleted file mode 100644
index c9081207d..000000000
--- a/packaging/win32/portable/Other/Source/InkscapePortable.nsi
+++ /dev/null
@@ -1,130 +0,0 @@
-;Copyright (C) 2004-2008 John T. Haller of PortableApps.com
-;Copyright (C) 2008-2009 Chris Morgan of PortableApps.com and Inkscape.org
-
-;Website: http://PortableApps.com/InkscapePortable
-
-;This software is OSI Certified Open Source Software.
-;OSI Certified is a certification mark of the Open Source Initiative.
-
-;This program is free software; you can redistribute it and/or
-;modify it under the terms of the GNU General Public License
-;as published by the Free Software Foundation; either version 2
-;of the License, or (at your option) any later version.
-
-;This program is distributed in the hope that it will be useful,
-;but WITHOUT ANY WARRANTY; without even the implied warranty of
-;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;GNU General Public License for more details.
-
-;You should have received a copy of the GNU General Public License
-;along with this program; if not, write to the Free Software
-;Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-!define PORTABLEAPPNAME "Inkscape Portable"
-!define NAME InkscapePortable
-!define VER "1.6.6.0"
-!define LAUNCHERLANGUAGE English
-
-;=== Program Details
-Name "${PORTABLEAPPNAME}"
-OutFile "..\..\${NAME}.exe"
-VIProductVersion "${VER}"
-VIAddVersionKey ProductName "${PORTABLEAPPNAME}"
-VIAddVersionKey Comments "Allows Inkscape to be run from a removable drive. For additional details, visit Inkscape.org"
-VIAddVersionKey CompanyName "PortableApps.com"
-VIAddVersionKey LegalCopyright "PortableApps.com & Inkscape.org"
-VIAddVersionKey FileDescription "${PORTABLEAPPNAME}"
-VIAddVersionKey FileVersion "${VER}"
-VIAddVersionKey ProductVersion "${VER}"
-VIAddVersionKey InternalName "${PORTABLEAPPNAME}"
-VIAddVersionKey LegalTrademarks "PortableApps.com is a Trademark of Rare Ideas, LLC."
-VIAddVersionKey OriginalFilename "${NAME}.exe"
-;VIAddVersionKey PrivateBuild ""
-;VIAddVersionKey SpecialBuild ""
-
-;=== Runtime Switches
-CRCCheck On
-WindowIcon Off
-SilentInstall Silent
-AutoCloseWindow True
-RequestExecutionLevel user
-
-; Best Compression
-SetCompress Auto
-SetCompressor /SOLID lzma
-SetCompressorDictSize 32
-SetDatablockOptimize On
-
-;=== Include
-;(Standard NSIS)
-!include FileFunc.nsh
-!insertmacro GetParameters
-!insertmacro GetRoot
-
-;(NSIS Plugins)
-!include TextReplace.nsh
-
-;(Custom)
-!include ReplaceInFileWithTextReplace.nsh
-
-;=== Program Icon
-Icon "..\..\App\AppInfo\appicon.ico"
-
-;=== Icon & Stye ===
-;!define MUI_ICON "..\..\App\AppInfo\appicon.ico"
-
-;=== Languages
-LoadLanguageFile "${NSISDIR}\Contrib\Language files\${LAUNCHERLANGUAGE}.nlf"
-!include PortableApps.comLauncherLANG_${LAUNCHERLANGUAGE}.nsh
-
-Var MISSINGFILEORPATH
-
-Section Main
- IfFileExists "$EXEDIR\App\Inkscape\inkscape.exe" DisplaySplash
- StrCpy $MISSINGFILEORPATH "inkscape.exe"
- MessageBox MB_OK|MB_ICONEXCLAMATION `$(LauncherFileNotFound)`
- Abort
-
- DisplaySplash:
- ReadINIStr $0 "$EXEDIR\${NAME}.ini" "${NAME}" DisableSplashScreen
- StrCmp $0 "true" SettingsDirectory
- ;=== Show the splash screen while processing registry entries
- InitPluginsDir
- File /oname=$PLUGINSDIR\splash.jpg "${NAME}.jpg"
- newadvsplash::show /NOUNLOAD 1200 0 0 -1 /L $PLUGINSDIR\splash.jpg
-
- SettingsDirectory:
- CreateDirectory $EXEDIR\Data\settings
- System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("INKSCAPE_PORTABLE_PROFILE_DIR", "$EXEDIR\Data\settings").n'
- System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("HOME", "$EXEDIR\Data\settings").n' ; possibly some GTK stuff
- System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("APPDATA", "$EXEDIR\Data\settings").n' ; Just to be on the safe side
-
- ;InkscapeLanguage:
- ReadEnvStr $0 "PortableApps.comLocaleglibc"
- StrCmp $0 "" InkscapeLanguageSettingsFile
- StrCmp $0 "en_US" SetInkscapeLanguageVariable
- IfFileExists "$EXEDIR\App\Inkscape\locale\$0\*.*" SetInkscapeLanguageVariable
-
- InkscapeLanguageSettingsFile:
- ReadINIStr $0 "$EXEDIR\Data\settings\${NAME}Settings.ini" Language LANG
- StrCmp $0 "" AdjustPaths
- StrCmp $0 "en_US" SetInkscapeLanguageVariable
- IfFileExists "$EXEDIR\App\Inkscape\locale\$0\*.*" SetInkscapeLanguageVariable AdjustPaths
-
- SetInkscapeLanguageVariable:
- System::Call 'Kernel32::SetEnvironmentVariableA(t, t) i("LANG", r0).n'
-
- AdjustPaths:
- ReadINIStr $0 "$EXEDIR\Data\settings\${NAME}Settings.ini" "${NAME}Settings" LastDrive
- ${GetRoot} $EXEDIR $1
- StrCmp $0 $1 Launch
- WriteINIStr "$EXEDIR\Data\settings\${NAME}Settings.ini" "${NAME}Settings" LastDrive $1
- ${ReplaceInFile} "$EXEDIR\Data\settings\preferences.xml" "$0\" "$1\"
- ${ReplaceInFile} "$EXEDIR\Data\settings\.recently-used.xbel" "file:///$0/" "file:///$1/"
-
- Launch:
- ${GetParameters} $0
- ReadINIStr $1 "$EXEDIR\${NAME}.ini" "${NAME}" AdditionalParameters
- Exec `"$EXEDIR\App\Inkscape\inkscape.exe" $0 $1`
- newadvsplash::stop /WAIT
-SectionEnd
diff --git a/packaging/win32/portable/Other/Source/License.txt b/packaging/win32/portable/Other/Source/LauncherLicense.txt
index d6a3987f4..89e08fb00 100644
--- a/packaging/win32/portable/Other/Source/License.txt
+++ b/packaging/win32/portable/Other/Source/LauncherLicense.txt
@@ -1,12 +1,12 @@
- GNU GENERAL PUBLIC LICENSE
- Version 2, June 1991
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
- Preamble
+ Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.) You can apply it to
+the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@@ -56,7 +56,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
- GNU GENERAL PUBLIC LICENSE
+ GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
@@ -255,35 +255,31 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
- NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE,
-THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT
-PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED
-IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND,
-EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY
-AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
-NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR
-AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY
-OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM
-AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING
-ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES
-ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM
-(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
-RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY
-OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS
-BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
@@ -295,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
+ Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -307,17 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
- Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
@@ -340,5 +335,5 @@ necessary. Here is a sample; alter the names:
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
-library. If this is what you want to do, use the GNU Library General
-Public License instead of this License. \ No newline at end of file
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/packaging/win32/portable/Other/Source/PortableApps.comInstallerCustom.nsh b/packaging/win32/portable/Other/Source/PortableApps.comInstallerCustom.nsh
deleted file mode 100644
index 1cce3522c..000000000
--- a/packaging/win32/portable/Other/Source/PortableApps.comInstallerCustom.nsh
+++ /dev/null
@@ -1,12 +0,0 @@
-!macro CustomCodePostInstall
- ${If} ${FileExists} "$INSTDIR\Data\settings\AppData" ; 0.46 Development Tests
- Rename "$INSTDIR\Data\settings\AppData" "$INSTDIR\Data\_settings"
- ${ElseIf} ${FileExists} "$INSTDIR\Data\settings\InkscapePortableAppData" ; 0.46 Pre-Release 1
- Rename "$INSTDIR\Data\settings\InkscapePortableAppData" "$INSTDIR\Data\_settings"
- ${EndIf}
- ${If} ${FileExists} "$INSTDIR\Data\_settings"
- Rename "$INSTDIR\Data\settings\InkscapePortableSettings.ini" "$INSTDIR\Data\_settings\InkscapePortableSettings.ini"
- RMDir /r "$INSTDIR\Data\settings"
- Rename "$INSTDIR\Data\settings" "$INSTDIR\Data\_settings"
- ${EndIf}
-!macroend
diff --git a/packaging/win32/portable/Other/Source/PortableApps.comLauncherLANG_ENGLISH.nsh b/packaging/win32/portable/Other/Source/PortableApps.comLauncherLANG_ENGLISH.nsh
deleted file mode 100644
index 79679e26d..000000000
--- a/packaging/win32/portable/Other/Source/PortableApps.comLauncherLANG_ENGLISH.nsh
+++ /dev/null
@@ -1,6 +0,0 @@
-LangString LauncherFileNotFound ${LANG_ENGLISH} "${PORTABLEAPPNAME} cannot be started. You may wish to re-install to fix this issue. (ERROR: $MISSINGFILEORPATH could not be found)"
-LangString LauncherAlreadyRunning ${LANG_ENGLISH} "Another instance of ${APPNAME} is already running. Please close other instances of ${APPNAME} before launching ${PORTABLEAPPNAME}."
-LangString LauncherAskCopyLocal ${LANG_ENGLISH} "${PORTABLEAPPNAME} appears to be running from a location that is read-only. Would you like to temporarily copy it to the local hard drive and run it from there?$\n$\nPrivacy Note: If you say Yes, your personal data within ${PORTABLEAPPNAME} will be temporarily copied to a local drive. Although this copy of your data will be deleted when you close ${PORTABLEAPPNAME}, it may be possible for someone else to access your data later."
-LangString LauncherNoReadOnly ${LANG_ENGLISH} "${PORTABLEAPPNAME} can not run directly from a read-only location and will now close."
-LangString LauncherPathTooLong ${LANG_ENGLISH} "The path to ${PORTABLEAPPNAME} is too long. Please shorten the path by eliminating some parent directories or shortening directory names."
-LangString LauncherNextButton ${LANG_ENGLISH} "&Next >"
diff --git a/packaging/win32/portable/Other/Source/Readme.txt b/packaging/win32/portable/Other/Source/Readme.txt
index 201ffd1b0..7c03cdaf2 100644
--- a/packaging/win32/portable/Other/Source/Readme.txt
+++ b/packaging/win32/portable/Other/Source/Readme.txt
@@ -1,67 +1,47 @@
-Inkscape Portable
-=================
-Copyright 2004-2008 John T. Haller
-Copyright 2008-2009 Chris Morgan
-
-Website: http://Inkscape.org/
-
-This software is OSI Certified Open Source Software.
-OSI Certified is a certification mark of the Open Source Initiative.
-
-This program is free software; you can redistribute it and/or
-modify it under the terms of the GNU General Public License
-as published by the Free Software Foundation; either version 2
-of the License, or (at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-ABOUT INKSCAPE PORTABLE
-=======================
-The Inkscape Portable launcher allows you to run Inkscape from a
-removable drive whose letter changes as you move it to another
-computer. The program can be entirely self-contained on the drive
-and then used on any Windows computer.
+The base application's source code is available from the portable app's
+homepage listed in the help.html file (if applicable).
+Details of most other things are available there as well.
LICENSE
=======
-This code is released under the GPL.
-The full code is included with this package as InkscapePortable.nsi.
+This package's installer and launcher are released under the GPL. The launcher
+is the PortableApps.com Launcher, available with full source and documentation
+from http://portableapps.com/development. We request that developers using the
+PortableApps.com Launcher please leave this directory intact and unchanged.
-INSTALLATION / DIRECTORY STRUCTURE
-==================================
-The program expects the following directory structure:
+USER CONFIGURATION
+==================
--\ <--- Directory with InkscapePortable.exe
- +\App\
- +\Inkscape\
- +\Data\
- +\settings\
+Some configuration in the PortableApps.com Launcher can be overridden by the
+user in an INI file next to **AppID**Portable.exe called **AppID**Portable.ini.
+If you are happy with the default options, it is not necessary, though. There
+is an example INI included with this package to get you started. To use it,
+copy AppNamePortable.ini from this directory to **AppID**Portable.ini next to
+**AppID**Portable.exe. The options in the INI file are as follows:
+ AdditionalParameters=
+ DisableSplashScreen=false
+ RunLocally=false
-INKSCAPEPORTABLE.INI CONFIGURATION
-==================================
-The Inkscape Portable launcher will look for an ini file called
-InkscapePortable.ini in the directory which contains InkscapePortable.exe.
-If you are happy with the default options, it is not necessary, though.
-The INI file is formatted as follows:
-
-[InkscapePortable]
-AdditionalParameters=
-DisableSplashScreen=false
+(There is no need for an INI header in this file; if you have one, though, it
+won't damage anything.)
The AdditionalParameters entry allows you to pass additional command-line
-parameter entries to inkscape.exe. Whatever you enter here will be
-appended to the call to inkscape.exe.
-
-The DisableSplashScreen entry allows you to run the Inkscape Portable
-launcher without the splash screen showing up. The default is false.
+parameters to the application.
+
+The DisableSplashScreen entry allows you to run the launcher without the splash
+screen showing up. The default is false.
+
+The RunLocally entry allows you to run the portable application from a read-
+only medium. This is known as Live mode. It copies what it needs to to a
+temporary directory on the host computer, runs the application, and then
+deletes it afterwards, leaving nothing behind. This can be useful for running
+the application from a CD or if you work on a computer that may have spyware or
+viruses and you'd like to keep your device set to read-only. As a consequence
+of this technique, any changes you make during the Live mode session aren't
+saved back to your device. The default is false.
+
+There may be other values also permitted in the user configuration file by the
+portable application; refer to help.html for any details of them.
diff --git a/packaging/win32/portable/Other/Source/ReplaceInFileWithTextReplace.nsh b/packaging/win32/portable/Other/Source/ReplaceInFileWithTextReplace.nsh
deleted file mode 100644
index ab81f62fc..000000000
--- a/packaging/win32/portable/Other/Source/ReplaceInFileWithTextReplace.nsh
+++ /dev/null
@@ -1,64 +0,0 @@
-; ReplaceInFile wrapper for testreplace function
-; John T. Haller of PortableApps.com
-; BSD License
-; Requires TextReplace plugin installed in NSIS and !include "TextReplace.nsh" in main nsi
-;
-; Usage: ${ReplaceInFile} SOURCE_FILE SEARCH_TEXT REPLACEMENT
-; or use ReplaceInFileCS for case-sensitive (use when possible, it's faster)
-; No return variable. Error will be set if unable to do the replacement (invalid file, locked file, etc)
-
-Function ReplaceInFile
- Exch $0 ;REPLACEMENT
- Exch
- Exch $1 ;SEARCH_TEXT
- Exch 2
- Exch $2 ;SOURCE_FILE
- Exch 3
- Exch $3 ;CASE_INSENSITIVE
- Push $4 ;NEW_FILE
- Push $5 ;RETURN_VALUE
-
- StrCpy $4 `$2.OldReplaceInFile`
-
- ${textreplace::ReplaceInFile} "$2" "$4" "$1" "$0" "$3 /C=0" $5
-
- IntCmp $5 0 StackCleanup ReturnError RenameToOriginal
-
- ReturnError:
- SetErrors
- Goto StackCleanup
-
- RenameToOriginal:
- Delete $2
- Rename $4 $2
-
- StackCleanup:
- Pop $5
- Pop $4
- Pop $3
- Pop $0
- Pop $1
- Pop $2
-
- ${textreplace::Unload}
-FunctionEnd
-
-!macro ReplaceInFileCS SOURCE_FILE SEARCH_TEXT REPLACEMENT
- Push `/S=1`
- Push `${SOURCE_FILE}`
- Push `${SEARCH_TEXT}`
- Push `${REPLACEMENT}`
- Call ReplaceInFile
-!macroend
-
-!macro ReplaceInFile SOURCE_FILE SEARCH_TEXT REPLACEMENT
- Push `/S=0`
- Push `${SOURCE_FILE}`
- Push `${SEARCH_TEXT}`
- Push `${REPLACEMENT}`
- Call ReplaceInFile
-!macroend
-
-!define ReplaceInFileCS '!insertmacro "ReplaceInFileCS"'
-
-!define ReplaceInFile '!insertmacro "ReplaceInFile"' \ No newline at end of file
diff --git a/packaging/win32/portable/help.html b/packaging/win32/portable/help.html
index eec89c5bb..1391c12f8 100644
--- a/packaging/win32/portable/help.html
+++ b/packaging/win32/portable/help.html
@@ -154,7 +154,7 @@ a {text-decoration: none; font-weight: normal; color: black;}
<h1 class="hastagline">Inkscape Portable Help</h1>
<h2 class="tagline">amazing vector graphics - everywhere!</h2>
<p>Inkscape Portable is the popular Inkscape vector graphics editor packaged with a PortableApps.com launcher as a <a href="http://portableapps.com/about/what_is_a_portable_app">portable app</a>, to help you design on your iPod, USB flash drive, portable hard drive, etc. It has all the same great features as Inkscape including editing vector graphics, designing things and more. Plus, it leaves no personal information behind on the machine you run it on, so you can take it with you wherever you go. <a href="http://inkscape.org/">Learn more about Inkscape...</a></p>
-
+
<p><a href="http://inkscape.org/donate.php"><img src="Other/Help/images/donation_button.png" width="110" height="23" border="0" align="top" alt="Make a Donation"></a> - Support Inkscape Development</p>
<p><a href="http://portableapps.com/donate"><img src="Other/Help/images/donation_button.png" width="110" height="23" border="0" align="top" alt="Make a Donation"></a> - Support PortableApps.com's Hosting and Development</p>
diff --git a/packaging/win32/portable/readme.packaging.txt b/packaging/win32/portable/readme.packaging.txt
index 4067a4f81..1ca4e9653 100644
--- a/packaging/win32/portable/readme.packaging.txt
+++ b/packaging/win32/portable/readme.packaging.txt
@@ -3,11 +3,12 @@ REQUIREMENTS
Inkscape compiled (see http://wiki.inkscape.org/wiki/index.php/Win32Port)
NSIS Portable
http://portableapps.com/apps/development/nsis_portable
- (or NSIS 2.45 or later [Windows 7 support] and the TextReplace plugin)
PortableApps.com AppCompactor
- http://portableapps.com/apps/utilities/appcompactor
+ http://portableapps.com/apps/utilities/portableapps.com_appcompactor
PortableApps.com Installer
http://portableapps.com/apps/development/portableapps.com_installer
+ PortableApps.com Launcher
+ http://portableapps.com/apps/development/portableapps.com_launcher
INSTRUCTIONS
============
@@ -16,8 +17,8 @@ An automated version is planned for later, but currently you'll just have to fol
(0. Compile Inkscape)
1. Copy everything from the "inkscape" build directory, EXCEPT for inkscape.dbg and gdb.exe, into ./App/Inkscape
2. Update the version number in the "Version" section of ./App/AppInfo/appinfo.ini
-3. Compile ./Other/Source/InkscapePortable.nsi with NSIS
4. Run the PortableApps.com AppCompactor on ./App/Inkscape
+3. Run the PortableApps.com Launcher on this directory
5. Run the PortableApps.com Installer on this directory
6. InkscapePortable_X.XX.paf.exe will now be in packaging/win32, ready for release