GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Babelfish(3) User Contributed Perl Documentation Babelfish(3)
 

WWW::Babelfish - Perl extension for translation via Babelfish or Google

  use WWW::Babelfish;
  $obj = new WWW::Babelfish( service => 'Babelfish', agent => 'Mozilla/8.0', proxy => 'myproxy' );
  die( "Babelfish server unavailable\n" ) unless defined($obj);
  $french_text = $obj->translate( 'source' => 'English',
                                  'destination' => 'French',
                                  'text' => 'My hovercraft is full of eels',
                                  'delimiter' => "\n\t",
                                  'ofh' => \*STDOUT );
  die("Could not translate: " . $obj->error) unless defined($french_text);
  @languages = $obj->languages;

Perl interface to the WWW babelfish translation server.

new
Creates a new WWW::Babelfish object.
Parameters:
 service:        Babelfish, Google or Yahoo; default is Babelfish
 agent:          user agent string
 proxy:          proxy in the form of host:port
    
services
Returns a plain array of the services available (currently Babelfish, Google or Yahoo).
languages
Returns a plain array of the languages available for translation.
languagepairs
Returns a reference to a hash of hashes. The keys of the outer hash reflect all available languages. The hashes the corresponding values reference contain one (key) entry for each destination language that the particular source language can be translated to. The values of these inner hashes contain the Babelfish option name for the language pair. You should not modify the returned structure unless you really know what you're doing.
Here's an example of a possible return value:
        {
          'Chinese' => {
                         'English' => 'zh_en'
                       },
          'English' => {
                         'Chinese' => 'en_zh',
                         'French' => 'en_fr',
                         'German' => 'en_de',
                         'Italian' => 'en_it',
                         'Japanese' => 'en_ja',
                         'Korean' => 'en_ko',
                         'Portuguese' => 'en_pt',
                         'Spanish' => 'en_es'
                       },
          'French' => {
                        'English' => 'fr_en',
                        'German' => 'fr_de'
                      },
          'German' => {
                        'English' => 'de_en',
                        'French' => 'de_fr'
                      },
          'Italian' => {
                         'English' => 'it_en'
                       },
          'Japanese' => {
                          'English' => 'ja_en'
                        },
          'Korean' => {
                        'English' => 'ko_en'
                      },
          'Portuguese' => {
                            'English' => 'pt_en'
                          },
          'Russian' => {
                         'English' => 'ru_en'
                       },
          'Spanish' => {
                         'English' => 'es_en'
                       }
        };
    
translate
Translates some text using Babelfish.
Parameters:
 source:      Source language
 destination: Destination language
 text:        If this is a reference, translate interprets it as an 
              open filehandle to read from. Otherwise, it is treated 
              as a string to translate.
 delimiter:   Paragraph delimiter for the text; the default is "\n\n".
              Note that this is a string, not a regexp.
 ofh:         Output filehandle; if provided, the translation will be 
              written to this filehandle.
    
If no ofh parameter is given, translate will return the text; otherwise it will return 1. On failure it returns undef.
error
Returns a (hopefully) meaningful error string.

Babelfish translates 1000 characters at a time. This module tries to break the source text into reasonable logical chunks of less than 1000 characters, feeds them to Babelfish and then reassembles them. Formatting may get lost in the process; also it's doubtful this will work for non-Western languages since it tries to key on punctuation. What would make this work is if perl had properly localized regexps for sentence/clause boundaries.
Support for Google is preliminary and hasn't been extensively tested (by me). Google's translations used to be suspiciously similar to Babelfish's, but now some people tell me they're superior.

Dan Urist, durist@frii.com

perl(1).
2006-12-16 perl v5.28.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.