#!/usr/bin/perl # # aspell-import -- Perl script to import old dictionaries # # This file is part of The New Aspell # Copyright (C) 2001-2002 by Kevin Atkinson under the GNU LGPL # license version 2.0 or 2.1. You should have received a copy of the # LGPL license along with this library if you did not you can find it # at http://www.gnu.org/. %abrv = qw( american en british en canadian en catala ca czech cs dansk da deutsch de ellhnika el english en espanol es esperanto eo francais fr german de italian it liet lt nederlands nl norsk no polish pl portugues pt russian ru svenska sv); chdir $ENV{HOME}; foreach $file (<.ispell_*>, <.aspell.*.*>) { $_ = $file; if (/^.ispell_(.+)$/) {$lang = $1; $type = 'ispell'} elsif (/^.aspell.(.+?).(per|pws)$/) {$lang = $1; $type = 'personal'} elsif (/^.aspell.(.+?).(prepl)$/) {$lang = $1; $type = 'repl'} $abrv = $abrv{$lang}; if (not defined $abrv) { print "Warning language \"$lang\" is not known\n" unless length $lang == 2; next; } open IN, $file; print "Processing \"~/$file\", lang = $abrv\n"; if ($type eq 'ispell' || $type eq 'personal') { if $type eq 'personal'; while () { chop; push @{$words{$abrv}{per}}, $_; } } elsif ($type eq 'repl') { $_ = ; if (!/^personal\_repl\-1\.1/) { print "$file not in a supported format\n"; next; } while () { /^([^ ]+) (.+)\n$/ or die; push @{$words{$abrv}{repl}}, [$1,$2]; } } close IN; } $SIG{PIPE} = 'IGNORE'; foreach $abrv (keys %words) { print "Merging $abrv\n"; open P, "| aspell -a --lang=$abrv --sug-mode=ultra" or next; foreach (@{$words{$abrv}{per}}) { print P "* $_\n"; } foreach (@{$words{$abrv}{repl}}) { print P "\$\$ra $_->[0],$_->[1]\n"; } print P "#\n"; close P; }