2012-06-03 15:17:01 +00:00
|
|
|
# download dictionaries
|
|
|
|
|
|
|
|
Function DownloadHunspellDictionary
|
|
|
|
# Downloads hunspell dictionaries from a location that is given in the file
|
|
|
|
# $INSTDIR\Resources\HunspellDictionaryNames.txt
|
|
|
|
|
|
|
|
# read out the locations from the file
|
|
|
|
FileOpen $R5 "$INSTDIR\Resources\HunspellDictionaryNames.txt" r
|
2012-11-10 06:05:19 +00:00
|
|
|
${For} $5 1 120 # the file has 120 lines
|
|
|
|
|
2012-06-03 15:17:01 +00:00
|
|
|
FileRead $R5 $String # $String is now the dictionary name
|
2012-06-03 21:55:21 +00:00
|
|
|
StrCpy $R3 $String 5 # $R3 is now the dictionary language code
|
2012-06-03 15:17:01 +00:00
|
|
|
|
|
|
|
${if} $DictCode == $R3
|
|
|
|
StrCpy $String $String -2 # delete the linebreak characters at the end
|
|
|
|
# Download hunspell dictionaries,
|
|
|
|
# if first download repository is not available try the other ones listed in "DictionaryMirrors.txt"
|
|
|
|
FileOpen $R4 "$INSTDIR\Resources\DictionaryMirrors.txt" r
|
2012-06-03 21:55:21 +00:00
|
|
|
|
|
|
|
${For} $4 1 8
|
2012-06-03 15:17:01 +00:00
|
|
|
FileRead $R4 $Search # $Search is now the mirror
|
|
|
|
StrCpy $Search $Search -2 # delete the linebreak characters at the end
|
|
|
|
Push $R0
|
2012-06-03 21:55:21 +00:00
|
|
|
InetLoad::load /TIMEOUT=5000 "http://$Search.dl.sourceforge.net/project/lyxwininstaller/hunspell/$String" "$INSTDIR\Resources\dicts\$String" /END
|
2012-06-03 15:17:01 +00:00
|
|
|
Pop $R0
|
|
|
|
${if} $R0 == "OK"
|
|
|
|
${ExitFor}
|
|
|
|
${endif}
|
|
|
|
${Next}
|
2012-06-03 21:55:21 +00:00
|
|
|
|
2012-06-03 15:17:01 +00:00
|
|
|
FileClose $R4
|
|
|
|
# if download failed
|
|
|
|
${if} $R0 != "OK"
|
2012-06-03 21:55:21 +00:00
|
|
|
MessageBox MB_OK|MB_ICONEXCLAMATION "$(HunspellFailed)"
|
2012-06-03 15:17:01 +00:00
|
|
|
Goto abortinstall
|
|
|
|
${endif}
|
|
|
|
${endif} # end if $DictCode == $R3
|
|
|
|
|
|
|
|
${Next}
|
|
|
|
FileClose $R5
|
|
|
|
|
|
|
|
abortinstall:
|
2012-06-03 21:55:21 +00:00
|
|
|
Delete "$INSTDIR\$String"
|
2012-06-03 15:17:01 +00:00
|
|
|
|
|
|
|
FunctionEnd
|
|
|
|
|
|
|
|
#--------------------------------
|
|
|
|
|
|
|
|
Function DownloadThesaurusDictionary
|
|
|
|
# Downloads thesaurus dictionaries from a location that is given in the file
|
|
|
|
# $INSTDIR\Resources\ThesaurusDictionaryNames.txt
|
|
|
|
|
|
|
|
# read out the locations from the file
|
|
|
|
FileOpen $R5 "$INSTDIR\Resources\ThesaurusDictionaryNames.txt" r
|
2012-11-10 06:05:19 +00:00
|
|
|
${For} $5 1 44 # the file has 44 lines
|
|
|
|
|
|
|
|
FileRead $R5 $String # $String is now the dictionary name
|
2012-06-03 15:17:01 +00:00
|
|
|
StrCpy $R3 $String 5 3 # $R3 is now the dictionary language code
|
|
|
|
|
|
|
|
${if} $ThesCode == $R3
|
|
|
|
StrCpy $String $String -2 # delete the linebreak characters at the end
|
|
|
|
# Download thesaurus dictionaries,
|
|
|
|
# if first download repository is not available try the other ones listed in "DictionaryMirrors.txt"
|
|
|
|
FileOpen $R4 "$INSTDIR\Resources\DictionaryMirrors.txt" r
|
|
|
|
|
2012-06-03 21:55:21 +00:00
|
|
|
${For} $4 1 8
|
2012-06-03 15:17:01 +00:00
|
|
|
FileRead $R4 $Search # $Search is now the mirror
|
|
|
|
StrCpy $Search $Search -2 # delete the linebreak characters at the end
|
|
|
|
Push $R0
|
2012-06-03 21:55:21 +00:00
|
|
|
InetLoad::load /TIMEOUT=5000 "http://$Search.dl.sourceforge.net/project/lyxwininstaller/thesaurus/$String" "$INSTDIR\Resources\thes\$String" /END
|
2012-06-03 15:17:01 +00:00
|
|
|
Pop $R0
|
|
|
|
${if} $R0 == "OK"
|
|
|
|
${ExitFor}
|
|
|
|
${endif}
|
|
|
|
${Next}
|
|
|
|
|
|
|
|
FileClose $R4
|
|
|
|
# if download failed
|
|
|
|
${if} $R0 != "OK"
|
2012-06-03 21:55:21 +00:00
|
|
|
MessageBox MB_OK|MB_ICONEXCLAMATION "$(ThesaurusFailed)"
|
2012-06-03 15:17:01 +00:00
|
|
|
Goto abortinstall
|
|
|
|
${endif}
|
|
|
|
${endif} # end if $ThesCode == $R3
|
|
|
|
|
|
|
|
${Next}
|
|
|
|
FileClose $R5
|
|
|
|
|
|
|
|
abortinstall:
|
2012-06-03 21:55:21 +00:00
|
|
|
Delete "$INSTDIR\$String"
|
2012-06-03 15:17:01 +00:00
|
|
|
|
|
|
|
FunctionEnd
|
|
|
|
|
|
|
|
#--------------------------------
|
|
|
|
|
|
|
|
Function InstallHunspellDictionary
|
2012-11-10 06:05:19 +00:00
|
|
|
# install the selected hunspell dictionaries except of already existing ones
|
2012-06-03 15:17:01 +00:00
|
|
|
|
2012-11-10 06:05:19 +00:00
|
|
|
# download the dictionaries
|
2012-06-03 15:17:01 +00:00
|
|
|
${Do}
|
|
|
|
StrCpy $DictCode $DictCodes 5
|
|
|
|
StrCpy $DictCodes $DictCodes "" 5
|
2012-11-10 06:05:19 +00:00
|
|
|
# don't dowload existing ones thus check if $DictCode is in $FoundDict
|
|
|
|
StrCpy $String $FoundDict
|
|
|
|
StrCpy $Search $DictCode
|
|
|
|
Call StrPoint # function from LyXUtils.nsh
|
|
|
|
${if} $Pointer == "-1"
|
|
|
|
Call DownloadHunspellDictionary
|
|
|
|
${endif}
|
2012-06-03 15:17:01 +00:00
|
|
|
${LoopUntil} $DictCodes == ""
|
|
|
|
|
2012-11-10 06:05:19 +00:00
|
|
|
# some dictionaries need to be renamed to have a 2 letter code
|
2012-06-03 21:55:21 +00:00
|
|
|
${if} ${FileExists} "$INSTDIR\Resources\dicts\db_DE.aff"
|
|
|
|
Rename "$INSTDIR\Resources\dicts\db_DE.aff" "$INSTDIR\Resources\dicts\dsb_DE.aff"
|
|
|
|
Rename "$INSTDIR\Resources\dicts\db_DE.dic" "$INSTDIR\Resources\dicts\dsb_DE.dic"
|
|
|
|
${endif}
|
|
|
|
${if} ${FileExists} "$INSTDIR\Resources\dicts\hb_DE.aff"
|
|
|
|
Rename "$INSTDIR\Resources\dicts\hb_DE.aff" "$INSTDIR\Resources\dicts\hsb_DE.aff"
|
|
|
|
Rename "$INSTDIR\Resources\dicts\hb_DE.dic" "$INSTDIR\Resources\dicts\hsb_DE.dic"
|
|
|
|
${endif}
|
|
|
|
|
2012-06-03 15:17:01 +00:00
|
|
|
FunctionEnd
|
|
|
|
|
|
|
|
#--------------------------------
|
|
|
|
|
|
|
|
Function InstallThesaurusDictionary
|
2012-11-10 06:05:19 +00:00
|
|
|
# install the selected thesaurus dictionaries except of already existing ones
|
2012-06-03 15:17:01 +00:00
|
|
|
|
2012-11-10 06:05:19 +00:00
|
|
|
# download the dictionaries
|
2012-06-03 15:17:01 +00:00
|
|
|
${Do}
|
|
|
|
StrCpy $ThesCode $ThesCodes 5
|
|
|
|
StrCpy $ThesCodes $ThesCodes "" 5
|
2012-11-10 06:05:19 +00:00
|
|
|
# don't dowload existing ones thus check if $ThesCode is in $FoundThes
|
|
|
|
StrCpy $String $FoundThes
|
|
|
|
StrCpy $Search $ThesCode
|
|
|
|
Call StrPoint # function from LyXUtils.nsh
|
|
|
|
${if} $Pointer == "-1"
|
|
|
|
Call DownloadThesaurusDictionary
|
|
|
|
${endif}
|
2012-06-03 15:17:01 +00:00
|
|
|
${LoopUntil} $ThesCodes == ""
|
|
|
|
|
|
|
|
# some dictionaries of language variants are identic
|
|
|
|
# therefore copy and rename an existing dictionary
|
|
|
|
CreateDirectory "$INSTDIR\Resources\backup"
|
|
|
|
${if} ${FileExists} "$INSTDIR\Resources\thes\th_de_DE_v2.dat"
|
|
|
|
CopyFiles "$INSTDIR\Resources\thes\th_de_DE_v2.*" "$INSTDIR\Resources\backup"
|
|
|
|
Rename "$INSTDIR\Resources\backup\th_de_DE_v2.dat" "$INSTDIR\Resources\backup\th_de_AT_v2.dat"
|
|
|
|
Rename "$INSTDIR\Resources\backup\th_de_DE_v2.idx" "$INSTDIR\Resources\backup\th_de_AT_v2.idx"
|
|
|
|
CopyFiles "$INSTDIR\Resources\backup\th_de_AT_v2.*" "$INSTDIR\Resources\thes"
|
|
|
|
${endif}
|
|
|
|
${if} ${FileExists} "$INSTDIR\Resources\thes\th_en_US_v2.dat"
|
|
|
|
CopyFiles "$INSTDIR\Resources\thes\th_en_US_v2.*" "$INSTDIR\Resources\backup"
|
|
|
|
Rename "$INSTDIR\Resources\backup\th_en_US_v2.dat" "$INSTDIR\Resources\backup\th_en_AU_v2.dat"
|
|
|
|
Rename "$INSTDIR\Resources\backup\th_en_US_v2.idx" "$INSTDIR\Resources\backup\th_en_AU_v2.idx"
|
|
|
|
CopyFiles "$INSTDIR\Resources\backup\th_en_AU_v2.*" "$INSTDIR\Resources\thes"
|
|
|
|
${endif}
|
|
|
|
RMDir "$INSTDIR\Resources\backup"
|
|
|
|
|
|
|
|
FunctionEnd
|