]> git.lyx.org Git - lyx.git/blob - development/Win32/packaging/AltInstaller/Aspell.nsh
Make sure that undo is recorded when magic tricks are played with InsetBibitem.
[lyx.git] / development / Win32 / packaging / AltInstaller / Aspell.nsh
1 # Aspell dictionaries
2
3 !if ${INSTALLER_TYPE} == "NotUpdate" # only for Small and Complete installer
4
5 Function InstallAspell
6  # install Aspell when it is not already installed
7
8   ${if} $AspellPath == ""
9    # extract Aspell's program files
10    SetOutPath "$INSTDIR\external"
11    File /r "${PRODUCT_SOURCEDIR}\${AspellInstall}"
12    # copy the files and register Aspell
13    CopyFiles "$INSTDIR\${AspellInstall}" "$APPDATA"
14    # finally copy the Aspell personal files to the Application folder of all users
15    # this assures that every user can have its own word list
16    StrCpy $AppSubfolder "Aspell"
17    StrCpy $AppFiles "$APPDATA\Aspell\Personal"
18    ${if} $ProductRootKey == "HKLM" # if install for all users
19     Call CreateAppPathSub # function from LyXUtils.nsh
20    ${else}
21     CreateDirectory "$APPDATA\$AppSubfolder"
22     CopyFiles "$AppFiles" "$APPDATA\$AppSubfolder"
23    ${endif}
24    
25    WriteRegStr HKLM "SOFTWARE\Aspell" "Base Path" "${AspellDir}"
26    WriteRegStr HKLM "SOFTWARE\Aspell" "Dictionary Path" "${AspellDictPath}"
27    WriteRegStr HKLM "SOFTWARE\Aspell" "Personal Path" "${AspellPersonalPath}"
28    
29    WriteRegStr HKLM "Software\Aspell" "OnlyWithLyX" "Yes${PRODUCT_VERSION_SHORT}" # special entry to tell the uninstaller that it was installed with LyX
30    
31    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Aspell" "DisplayName" "${AspellDisplay}"
32    WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Aspell" "NoModify" 0x00000001
33    WriteRegDWORD HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Aspell" "NoRepair" 0x00000001
34    WriteRegStr HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Aspell" "UninstallString" "${AspellDir}\${AspellUninstall}"
35   ${endif}
36
37 FunctionEnd
38
39 !endif # endif ${INSTALLER_TYPE} == "NotUpdate"
40
41 #--------------------------------
42
43 !if ${INSTALLER_TYPE} == "NotUpdate" # only for Small and Complete installer
44
45 Function DownloadDictionary
46  # Downloads Aspell dictionaries from a location that is given in the file
47  # $INSTDIR\Resources\AspellDictionaryNames.txt
48  
49  # read out the locations from the file 
50  FileOpen $R5 "$INSTDIR\Resources\AspellDictionaryNames.txt" r
51  ${Do}
52   FileRead $R5 $String # $String is now the dictionary name
53   StrCpy $R3 $String 2 # $R3 is now the dictionary language code
54   ${if} $R3 == "tr"
55   ${andif} $DictCode != "tr" # if nothing was found (the last line in the file starts with "tr")
56    FileClose $R5
57    StrCpy $String ""
58    StrCpy $AspellInstallYes "$RunNumber$AspellInstallYes"
59    Goto abortinstall
60   ${endif}
61  ${LoopUntil} $DictCode == $R3
62  FileClose $R5
63
64   StrCpy $String $String -2 # delete the linebreak characters at the end
65  
66   # Download aspell dictionaries,
67   # if first download repository is not available try the other ones listed in "AspellRepositories.txt"
68   FileOpen $R5 "$INSTDIR\Resources\AspellRepositories.txt" r
69   ${For} $4 1 4
70    FileRead $R5 $Search # $Search is now the AspellLocation
71    StrCpy $Search $Search -2 # delete the linebreak characters at the end
72    Push $R0
73    InetLoad::load /TIMEOUT=5000 "$Search/aspell6-$String.exe" "$INSTDIR\aspell6-$String.exe" /END
74    Pop $R0
75    # test if the downloaded file is really the expected one, because if the file didn't exist on the download server,
76    # berlios.de downloads a text file with the name of the non-existing file that contains the line "File doesn't exist" 
77    FileOpen $R4 "$INSTDIR\aspell6-$String.exe" r
78    FileRead $R4 $Search
79    FileClose $R4
80    StrCpy $Search $Search -1 # delete the unix linebreak character at the end
81    ${if} $Search == "File doesn't exist"
82     StrCpy $R0 ""
83    ${endif}
84    ${if} $R0 == "OK"
85     ${ExitFor}
86    ${endif}
87   ${Next}
88   FileClose $R5
89   
90   # Download failed
91   ${if} $R0 != "OK"
92    MessageBox MB_OK|MB_ICONEXCLAMATION "$(AspellDownloadFailed) $R0"
93    StrCpy $AspellInstallYes "$RunNumber$AspellInstallYes"
94    Goto abortinstall
95   ${endif}
96  
97   # Download successful
98   ExecWait '"$INSTDIR\aspell6-$String.exe" /NoDirChange /AutoClose'
99   ${if} $AspellBaseReg == "HKLM"
100    ReadRegStr $R2 HKLM "Software\Aspell\Dictionaries" $DictCode
101   ${else}
102    ReadRegStr $R2 HKCU "Software\Aspell\Dictionaries" $DictCode
103   ${endif}
104   ${if} $R2 == ""
105    MessageBox MB_OK|MB_ICONEXCLAMATION "$(AspellInstallFailed)"
106    StrCpy $AspellInstallYes "$RunNumber$AspellInstallYes"
107   ${endif}
108
109   abortinstall:
110   Delete "$INSTDIR\aspell6-$String.exe"
111
112 FunctionEnd
113
114 !endif # endif ${INSTALLER_TYPE} == "NotUpdate"
115
116 #--------------------------------
117
118 !if ${INSTALLER_TYPE} == "NotUpdate" # only for Small and Complete installer
119
120 Function InstallAspellDictionary
121  # install Aspell dictionaries
122
123  StrCpy $AspellInstallYes ""
124
125  # install the english dictionary if not already installed
126  StrCpy $DictCode "en"
127  StrCpy $RunNumber "1"
128  ${if} $AspellBaseReg == "HKLM" # $AspellBaseReg is either "HKLM" or if Aspell is already installed only for the current user "HKCU"
129   ReadRegStr $R2 HKLM "Software\Aspell\Dictionaries" $DictCode
130  ${else}
131   ReadRegStr $R2 HKCU "Software\Aspell\Dictionaries" $DictCode
132  ${endif}
133  ${if} $R2 == ""
134   MessageBox MB_OK|MB_ICONINFORMATION "$(AspellInfo)"
135   StrCpy $AspellMessage "Yes"
136   Call DownloadDictionary
137  ${else}
138   StrCpy $AspellInstallYes "$RunNumber$AspellInstallYes"
139  ${endif}
140  
141  # install the dictionary corresponding to the system and the chosen menu language
142  # check if the system language and the chosen menu language are the same, if not install
143  # both dictionaries
144  StrCpy $DictCode $LangCode 2
145  StrCpy $0 $DictCode # $0 is now the language code of the chosen LyX menu language
146  StrCpy $RunNumber "2"
147  ${if} $AspellInstallYes == "1"
148  ${andif} $DictCode == "en"
149   StrCpy $AspellInstallYes "$RunNumber$AspellInstallYes"
150  ${else}
151   ${if} $AspellBaseReg == "HKLM"
152    ReadRegStr $R2 HKLM "Software\Aspell\Dictionaries" $DictCode
153   ${else}
154    ReadRegStr $R2 HKCU "Software\Aspell\Dictionaries" $DictCode
155   ${endif}
156   ${if} $R2 == ""
157    ${if} $AspellMessage != "Yes"
158     MessageBox MB_OK|MB_ICONINFORMATION "$(AspellInfo)"
159    ${endif}
160    Call DownloadDictionary
161   ${else}
162    StrCpy $AspellInstallYes "$RunNumber$AspellInstallYes"
163   ${endif}
164  ${endif} # endif $AspellInstallYes == "1"
165  ${if} $LangCodeSys != $DictCode
166   StrCpy $RunNumber "3"
167   ${if} $LangCodeSys == "en"
168    StrCpy $AspellInstallYes "$RunNumber$AspellInstallYes"
169   ${else}
170    StrCpy $DictCode $LangCodeSys
171    ${if} $AspellBaseReg == "HKLM"
172     ReadRegStr $R2 HKLM "Software\Aspell\Dictionaries" $DictCode
173    ${else}
174     ReadRegStr $R2 HKCU "Software\Aspell\Dictionaries" $DictCode
175    ${endif}
176    ${if} $R2 == ""
177     ${if} $AspellMessage != "Yes"
178      MessageBox MB_OK|MB_ICONINFORMATION "$(AspellInfo)"
179     ${endif}
180     Call DownloadDictionary
181    ${else}
182     StrCpy $AspellInstallYes "$RunNumber$AspellInstallYes"
183    ${endif}
184   ${endif} # endif $LangCodeSys == "en"
185  ${else} # else ${if} $LangCodeSys != $DictCode
186   StrCpy $AspellInstallYes "4$AspellInstallYes"
187  ${endif}
188
189  # check the registry to divide between nothing installed or all already installed
190  ${if} $AspellInstallYes == "321"
191  ${orif} $AspellInstallYes == "421"
192   ${if} $AspellBaseReg == "HKLM"
193    ReadRegStr $R2 HKLM "Software\Aspell\Dictionaries" "en"
194   ${else}
195    ReadRegStr $R2 HKCU "Software\Aspell\Dictionaries" "en"
196   ${endif}
197   ${if} $R2 != ""
198    ${if} $0 == "en"
199    ${andif} $LangCodeSys == "en"
200     MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellAll) English$(AspellPart4)" IDYES DownloadNow IDNO DownloadLater
201    ${endif}
202    ${if} $0 == "en"
203     MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellAll) English$(AspellPartAnd)$LangNameSys$(AspellPart4)" IDYES DownloadNow IDNO DownloadLater
204    ${endif}
205    ${if} $LangCodeSys == "en"
206     MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellAll) English$(AspellPartAnd)$LangName$(AspellPart4)" IDYES DownloadNow IDNO DownloadLater
207    ${endif}
208    ${if} $LangCodeSys != $0
209     MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellAll) English$(AspellPartSep)$LangName$(AspellPartAnd)$LangNameSys$\r$\n$(AspellPart4)" IDYES DownloadNow IDNO DownloadLater
210    ${endif}
211    ${if} $LangCodeSys == $0
212     MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellAll) English$(AspellPartAnd)$LangName$(AspellPart4)" IDYES DownloadNow IDNO DownloadLater
213    ${endif}
214   ${endif}
215  ${endif}
216  
217  Delete "$INSTDIR\Resources\AspellDictionaryNames.txt"
218  Delete "$INSTDIR\Resources\AspellRepositories.txt"
219  
220  # show message about Aspell dictionaries
221  # the code rule to display the correct message:
222  # - when the English dictionary is already installed or couldn't be installed -> set a "1"
223  # - when the dictionary of the chosen LyX menu language is already installed or couldn't be installed -> set a "2"
224  # - when the dictionary of the Windows system language is already installed or couldn't be installed -> set a "3"
225  # - when the dictionary of the chosen LyX menu language is equal to the dictionary of the Windows system language -> set a "4"
226  ${if} $AspellInstallYes == "32"
227  ${orif} $AspellInstallYes == "42"
228   MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellPartStart)$(AspellPart1)$(AspellPart4)" IDYES DownloadNow IDNO DownloadLater
229  ${endif}
230  ${if} $AspellInstallYes == "3"
231  ${orif} $AspellInstallYes == "4"
232   MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellPartStart)$(AspellPart1)$(AspellPartAnd)$(AspellPart2)$(AspellPart4)" IDYES DownloadNow IDNO DownloadLater
233  ${endif}
234  ${if} $AspellInstallYes == "2"
235   MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellPartStart)$(AspellPart1)$(AspellPartAnd)$(AspellPart3)$(AspellPart4)" IDYES DownloadNow IDNO DownloadLater
236  ${endif}
237  ${if} $AspellInstallYes == ""
238   MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellPartStart)$(AspellPart1)$(AspellPartSep)$(AspellPart2)$(AspellPartAnd)$(AspellPart3)$(AspellPart4)" IDYES DownloadNow IDNO DownloadLater
239  ${endif}
240  ${if} $AspellInstallYes == "321"
241  ${orif} $AspellInstallYes == "421"
242   MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellNone)" IDYES DownloadNow IDNO DownloadLater
243  ${endif}
244  ${if} $AspellInstallYes == "31"
245  ${orif} $AspellInstallYes == "41"
246   MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellPartStart)$(AspellPart2)$(AspellPart4)" IDYES DownloadNow IDNO DownloadLater
247  ${endif}
248  ${if} $AspellInstallYes == "21"
249   MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellPartStart)$(AspellPart3)$(AspellPart4)" IDYES DownloadNow IDNO DownloadLater
250  ${endif}
251  ${if} $AspellInstallYes == "1"
252   MessageBox MB_ICONINFORMATION|MB_DEFBUTTON2|MB_YESNO "$(AspellPartStart)$(AspellPart2)$(AspellPartAnd)$(AspellPart3)$(AspellPart4)" IDYES DownloadNow IDNO DownloadLater
253  ${endif}
254
255  DownloadNow:
256   ExecShell "open" "${AspellLocationExact}"
257  DownloadLater:
258
259  # when something was installed, copy the Aspell dictionary files to the Application
260  # folder of all users this assures that every user can have its own word list
261  ${if} $AspellInstallYes != "321"
262  ${andif} $AspellInstallYes != "421" 
263   StrCpy $AppSubfolder "Aspell"
264   StrCpy $AppFiles "$APPDATA\Aspell\Dictionaries"
265   Call CreateAppPathSub # function from LyXUtils.nsh
266  ${endif}
267  
268 FunctionEnd
269
270 !endif # endif ${INSTALLER_TYPE} == "NotUpdate"
271  
272 #---------------------------
273
274
275 Function un.UninstAspell
276
277     ReadRegStr $1 SHCTX "Software\Aspell" "Base Path"
278     # delete Aspells' install folder
279     RMDir /r $1
280     # remove LyX's config files
281     StrCpy $AppSubfolder "Aspell"
282     Call un.DelAppPathSub # function from LyXUtils.nsh
283     # unregister Aspell and its dictionaries
284     DeleteRegKey SHCTX "Software\Aspell"
285     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell"
286     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-af"
287     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-am"
288     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-ar"
289     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-az"
290     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-be"
291     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-bg"
292     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-bn"
293     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-br"
294     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-ca"
295     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-cs"
296     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-csb"
297     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-cy"
298     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-da"
299     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-de"
300     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-en"
301     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-el"
302     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-eo"
303     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-es"
304     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-et"
305     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-fa"
306     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-fi"
307     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-fo"
308     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-fr"
309     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-fy"
310     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-ga"
311     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-gd"
312     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-gl"
313     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-gu"
314     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-gv"
315     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-he"
316     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-hi"
317     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-hil"
318     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-hr"
319     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-hsb"
320     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-hu"
321     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-hy"
322     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-ia"
323     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-id"
324     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-is"
325     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-it"
326     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-ku"
327     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-la"
328     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-lt"
329     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-lv"
330     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-mg"
331     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-mi"
332     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-mk"
333     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-ml"
334     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-mn"
335     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-mr"
336     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-ms"
337     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-mt"
338     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-nb"
339     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-nds"
340     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-nl"
341     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-nn"
342     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-no"
343     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-ny"
344     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-or"
345     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-pa"
346     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-pl"
347     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-pt"
348     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-qu"
349     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-ro"
350     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-ru"
351     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-rw"
352     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-sc"
353     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-sk"
354     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-sl"
355     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-sr"
356     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-sv"
357     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-sw"
358     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-ta"
359     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-te"
360     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-tet"
361     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-tl"
362     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-tn"
363     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-tr"
364     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-uk"
365     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-uz"
366     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-vi"
367     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-wa"
368     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-yi"
369     DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\Aspell6-Dictionary-zu"
370   
371 FunctionEnd
372