MetaTrans
view release on metacpan or search on metacpan
bin/metatrans view on Meta::CPAN
'big dog' does not match 'angry dog' (not all words are contained)
EOF
$help_text->insert('end', "\nNo filtering\n", 'underline');
$help_text->insert('end', <<EOF);
Just no filtering at all :).
EOF
$help_text->insert('end', "\nMatch at word boundaries only\n", 'underline');
$help_text->insert('end', <<EOF);
This options makes matching behave in a slightly different way.
Subexpressions and words are matched at word boundaries only. In practice
this means that with 'Match expression words' the expression 'big dog'
won't be matched to 'big angry doggie' while it would be with
match-at-word-boundaries-only option disabled. The same applies to
'Match expression at start' and 'Match expression anywhere'. The option
has no effect with 'Exact match' and 'No filtering'.
EOF
}
################################################################################
# gui initialization #
################################################################################
&populate_from_be;
&populate_to_be;
&enable_disable_swap;
my %Status_Labels;
my $row = 1;
foreach my $translator ($MetaTrans->get_translators)
{
$dicts_t->Label(
-text => $translator->host_server,
-anchor => 'w',
-bg => 'white',
-font => $nonbold_font,
)->grid(-column => 0, -row => $row, -sticky => 'wens');
$Status_Labels{$translator} = $dicts_t->Label(
-text => 'busy',
-font => $nonbold_font,
)->grid(-column => 2, -row => $row, -sticky => 'wens');
my $cb = $dicts_t->Checkbutton(
-bg => 'white',
-command => sub {
$MetaTrans->toggle_enabled_translator($translator);
&populate_from_be;
&populate_to_be;
&refresh_trans_states;
},
)->grid(-column => 4, -row => $row, -sticky => 'we');
$cb->select unless $MetaTrans->is_enabled_translator($translator);
$row ++;
$dicts_t->Frame(
-width => 1,
-height => 1,
-bg => 'black',
)->grid(-column => 0, -row => $row, -columnspan => 5);
$row ++;
}
&refresh_trans_states;
################################################################################
# procedures #
################################################################################
sub populate_from_be
{
$from_be->delete(0, 'end');
my @src_lang_codes = $MetaTrans->get_all_src_lang_codes;
my %src_lang_codes_hash = map {($_, 1)} @src_lang_codes;
foreach my $lang_code (@src_lang_codes)
{ $from_be->insert('end', get_lang_by_code($lang_code)); }
unless (defined $Src_Language &&
$src_lang_codes_hash{get_code_by_lang($Src_Language)})
{
if ($config{lang_from} && $src_lang_codes_hash{$config{lang_from}})
{
$Src_Language = get_lang_by_code($config{lang_from});
}
elsif ($src_lang_codes[0])
{
$Src_Language = get_lang_by_code($src_lang_codes[0]);
}
}
}
sub populate_to_be
{
$to_be->delete(0, 'end');
$Old_Dest_Language = $config{lang_to}
unless defined $Old_Dest_Language;
undef $Dest_Language;
if (! defined $Src_Language)
{
return;
}
my $src_lang_code = get_code_by_lang($Src_Language);
foreach my $lang_code (
$MetaTrans->get_dest_lang_codes_for_src_lang_code($src_lang_code))
{
$to_be->insert('end', get_lang_by_code($lang_code));
$Dest_Language = get_lang_by_code($lang_code)
unless defined $Dest_Language;
$Dest_Language = get_lang_by_code($lang_code)
if $lang_code eq $Old_Dest_Language;
}
$Old_Dest_Language = get_code_by_lang($Dest_Language)
if defined $Dest_Language;
}
( run in 1.602 second using v1.01-cache-2.11-cpan-df04353d9ac )