The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Lingua::Translator::Microsoft - A client library for the Microsoft Translator API

SYNOPSIS

    my $api_key = read_file('/home/myapp/priv/translator.priv');
    my $translator = Lingua::Translator::Microsoft->new(
        api_key  => $api_key,
        app_id   => $app_id,
    );

    say $translator->translate('nl', 'en', 'voorbeeld'); # outputs 'example'

    my $mp3 = $translator->speak('de', 'Worüber man nicht sprechen kann, darüber muss man schweigen');
    open(my $fh, ">", "tractatus.mp3", {format => "mp3"});
    print $fh $mp3;
    system("mplayer tractatus.mp3");

    say $translator->detect("Ci vuole un fiore."); # outputs 'it'

DESCRIPTION

This is a client library for Microsoft's translate service. Currently you can use the following calls from the API:

Translate
GetTranslations
Detect
Speak

All API-calling methods croak() unless they get a successful reply from the service.

FUNCTIONS

Lingua::Translator::Microsoft->new(api_key => $api_key, app_id => $app_id);

Instantiate a new Lingua::Translator::Microsoft object.

Arguments:

  • api_key [required]

    The API key (client secret).

  • app_id [required]

    Your application ID (client id). You need to register your application to be able to use the service.

  • auth_url [optional]

    The URL to get the OAuth token from. Defaults to https://datamarket.accesscontrol.windows.net/v2/OAuth2-13. You probably don't need to change this.

  • api_url [optional]

    The URL for the Microsoft Translator API (v2). Defaults to http://api.microsofttranslator.com/v2/Http.svc. You probably don't need to change this.

Returns:

  • A new Lingua::Translator::Microsoft instance.

$translator->translate($source_language_code, $target_language_code, $text)

Translate some text

Arguments:

  • source_language_code [required] (String)

  • target_language_code [required] (String)

  • text [required] (String)

    The text to translate.

Returns:

  • The translated text as a string.

$translator->get_translations($source_language_code, $target_language_code, $text, { max_translations => 3})

Translate some text (with multiple results).

This function is sensitive to context. It returns an arrayref of translation in scalar context but a list of translations in list context.

Arguments:

  • source_language_code [required] (String)

  • target_language_code [required] (String)

  • text [required] (String)

    The text to translate.

  • options [optional] (Hashref)

    A struct containing options to the call. For now the only option that you can put here is max_translations which limits the number of results to a given number. max_translations defaults to 5.

Returns:

  • In list context the results as a list of strings (translations).

  • In scalar context an arrayref of strings (translations).

$translator->speak($language_code, $text)

Pronounce some text

Arguments:

  • language_code [required] (String)

  • text [required] (String)

    The text to synthetize.

Returns:

  • A wav stream containing the text spoken in the chosen language.

$translator->detect($text)

Detect the language of a text.

Arguments:

  • text [required] (String)

    The text to do language detection on.

Returns:

  • The code of the detected language.

AUTHOR

This module is written by Larion Garaczi <larion@cpan.org> (2016)

SOURCE CODE

The source code for this module is hosted on GitHub https://github.com/larion/lingua-translator-microsoft.

Feel free to contribute :)

LICENSE AND COPYRIGHT

This module is free software and is published under the same terms as Perl itself.