85 lines
2.0 KiB
Perl
Executable File
85 lines
2.0 KiB
Perl
Executable File
#!/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') {
|
|
<IN> if $type eq 'personal';
|
|
while (<IN>) {
|
|
chop;
|
|
push @{$words{$abrv}{per}}, $_;
|
|
}
|
|
} elsif ($type eq 'repl') {
|
|
$_ = <IN>;
|
|
if (!/^personal\_repl\-1\.1/) {
|
|
print "$file not in a supported format\n";
|
|
next;
|
|
}
|
|
while (<IN>) {
|
|
/^([^ ]+) (.+)\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;
|
|
}
|