package Lingua::PTD::StarDict; $Lingua::PTD::StarDict::VERSION = '1.17'; use warnings; use strict; use parent 'Lingua::PTD'; use Module::Load::Conditional qw/check_install/; =encoding UTF-8 =head1 NAME Lingua::PTD::StarDict - Sub-module to export PTD to StarDict =head1 SYNOPSIS use Lingua::PTD; my $ptd = Lingua::PTD->new( $file ); $ptd->saveAs("stardict", $name, $options); =head1 DESCRIPTION Check L<> for complete reference. =head1 SEE ALSO NATools(3), perl(1) =head1 AUTHOR Alberto Manuel Brandão Simões, Eambs@cpan.orgE =head1 COPYRIGHT AND LICENSE Copyright (C) 2010-2014 by Alberto Manuel Brandão Simões =cut sub _save { my ($ptd, $name, $my_opts) = @_; my $min = $my_opts->{m} //= 0.2; my $dir = $my_opts->{d} //= './'; my $d; $ptd->downtr( sub { my ($w, $c, %t) = @_; return if $w =~ m/^_/; my @l; foreach (keys %t) { push @l, sprintf "%s (%.0f%s)", $_, $t{$_}*100,'%' if ($t{$_} > $min); } $d->{$w} = join '; ', @l if @l; }); if ( check_install( module=>'Lingua::StarDict::Gen' ) ) { require "Lingua::StarDict::Gen"; Lingua::StarDict::Gen::writeDict($d, $name, $dir); } else { die "Lingua::StarDict::Gen is required to output StarDict format." } return 1; } "This has been Sparta!"; __END__