package translate; use 5.006; use strict; use warnings; require Exporter; our @ISA = qw(Exporter); our @EXPORT = qw( get_config get_trans get_lang show_lang_codes reverse_trans); our $VERSION = '0.01'; =head1 SYNOPSIS use translate; my $key = get_config('path-to-ini-file', $sub_hash); my $from = get_lang($from_default); my $to = get_lang($to_default); my $trans_output_file = get_trans($input_file, $from, $to, $key); my $reverse = reverse_trans($trans_output_file, $to, $from, $key); =cut sub get_config { use Config::Tiny; use Data::Dumper; use open OUT => ':encoding(UTF-8)'; use Path::Tiny; use 5.011; my ( $ini_path, $sub_hash ) = @_; say "ini path is $ini_path"; say "sub_hash is $sub_hash"; my $Config = Config::Tiny->new; $Config = Config::Tiny->read( $ini_path, 'utf8' ); say Dumper $Config; my $key = $Config->{$sub_hash}{'api_key_1'}; return $key; } sub get_lang { use Path::Tiny; use 5.011; my $lang = shift; say "Would you like to change languages?"; my $prompt1 = ; chomp $prompt1; if ( $prompt1 eq ( "y" | "Y" ) ) { say "enter new lang: "; $prompt1 = ; chomp $prompt1; $lang = $prompt1; } return $lang; } sub show_lang_codes { use Path::Tiny; use 5.011; my $path_to_langs = path( "my_data", "lang_data", "1.langlist.txt" ); my $data = $path_to_langs->slurp_utf8; say "$data"; } sub get_trans { use Path::Tiny; use 5.011; use WWW::Google::Translate; my ( $wgt, $paragraph ) = @_; my $r = $wgt->translate( { q => $paragraph } ); return $r; } 1; # End of translate