NAME
WebService::Async::Google::TranslateV1_0 - Subclass of WebService::Async that has a simple interface to Google Translate Service.
SYNOPSIS
Simple usage
SOURCE
use WebService::Async::Google::TranslateV1_0;
my $translator = WebService::Async::Google::TranslateV1_0->new;
$translator->source_language('en');
$translator->set_destination_languages(qw(it fr));
$translator->set_message( message1 => 'apple' );
$translator->set_message( message2 => 'banana' );
$translator->set_message( message3 => 'orange' );
$translator->translate(
on_each_translation => sub {
my ($self, $id, $res) = @_;
print $res;
},
on_translation_complete => sub {
my ($self, $all_res) = @_;
print $all_res;
},
);
RESULTS
<?xml version="1.0" encoding="UTF-8"?>
<result id="message3">
<translated lang="it">arancione</translated>
</result>
<?xml version="1.0" encoding="UTF-8"?>
<result id="message1">
<translated lang="fr">Apple</translated>
</result>
<?xml version="1.0" encoding="UTF-8"?>
<result id="message2">
<translated lang="fr">la banane</translated>
</result>
<?xml version="1.0" encoding="UTF-8"?>
<result id="message2">
<translated lang="it">banana</translated>
</result>
<?xml version="1.0" encoding="UTF-8"?>
<result id="message3">
<translated lang="fr">orange</translated>
</result>
<?xml version="1.0" encoding="UTF-8"?>
<result id="message1">
<translated lang="it">mela</translated>
</result>
<?xml version="1.0" encoding="UTF-8"?>
<results>
<result id="message2">
<translated lang="it">banana</translated>
<translated lang="fr">la banane</translated>
</result>
<result id="message3">
<translated lang="it">arancione</translated>
<translated lang="fr">orange</translated>
</result>
<result id="message1">
<translated lang="it">mela</translated>
<translated lang="fr">Apple</translated>
</result>
</results>
Using custom templates
SOURCE
use WebService::Async::Google::TranslateV1_0;
my $translator = WebService::Async::Google::TranslateV1_0->new;
$translator->single_template(get_data_section('single'));
$translator->whole_template(get_data_section('whole'));
$translator->critical_error_template(get_data_section('critical_error'));
$translator->source_language('en');
$translator->set_destination_languages(qw(it fr));
$translator->set_message( message1 => 'apple' );
$translator->set_message( message2 => 'banana' );
$translator->set_message( message3 => 'orange' );
$translator->translate(
on_each_translation => sub {
my ($self, $id, $res) = @_;
print $res;
},
on_translation_complete => sub {
my ($self, $all_res) = @_;
print $all_res;
},
);
__DATA__
@@ single
?= Text::MicroTemplate::encoded_string '<?xml version="1.0" encoding="UTF-8"?>'
? my ($id, $lang, $message) = @_
<result key="<?= $id ?>">
<translated lang="<?= $lang ?>"><?= $message ?></translated>
</result>
?= "\0"
@@ whole
?= Text::MicroTemplate::encoded_string '<?xml version="1.0" encoding="UTF-8"?>'
? my ($self, $messages) = @_;
<results>
? for my $key ($self->all_messages_ids) {
<result key="<?= $key ?>">
? for my $lang ($self->all_destination_languages) {
? my $text = $self->get_translated_message(id => $key, language => $lang);
<translated lang="<?= $lang ?>"><?= $text ?></translated>
? }
</result>
? }
</results>
?= "\0"
@@ critical_error
CRITICAL ERROR
RESULTS
<?xml version="1.0" encoding="UTF-8"?>
<result key="message3">
<translated lang="it">arancione</translated>
</result>
<?xml version="1.0" encoding="UTF-8"?>
<result key="message1">
<translated lang="fr">Apple</translated>
</result>
<?xml version="1.0" encoding="UTF-8"?>
<result key="message2">
<translated lang="fr">la banane</translated>
</result>
<?xml version="1.0" encoding="UTF-8"?>
<result key="message2">
<translated lang="it">banana</translated>
</result>
<?xml version="1.0" encoding="UTF-8"?>
<result key="message3">
<translated lang="fr">orange</translated>
</result>
<?xml version="1.0" encoding="UTF-8"?>
<result key="message1">
<translated lang="it">mela</translated>
</result>
<?xml version="1.0" encoding="UTF-8"?>
<results>
<result key="message2">
<translated lang="it">banana</translated>
<translated lang="fr">la banane</translated>
</result>
<result key="message3">
<translated lang="it">arancione</translated>
<translated lang="fr">orange</translated>
</result>
<result key="message1">
<translated lang="it">mela</translated>
<translated lang="fr">Apple</translated>
</result>
</results>
DESCRIPTION
WebService::Async::Google::TranslateV1_0 is subclass of WebService::Async that has a simple interface to Google Translate Service.
METHODS
source_language
Sets the source language.
$translator->source_language('en');
set_destination_languages
Sets destination languages.
$translator->set_destination_languages(qw(it fr));
set_message
Sets messages that you want to translate.
$translator->set_message( message1 => 'apple' );
translate
$translator->translate(
on_each_translation => sub {
my ($self, $id, $res) = @_;
},
on_translation_complete => sub {
my ($self, $all_res) = @_;
},
);
AUTHOR
keroyon <keroyon@cpan.org>
SEE ALSO
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.