translatr 2.0

Retail,Spanish Language,Translation,Text,Short Phrase,Business,Glasses,Smiling,Looking At Camera,Holding Aloft,Latin American and Hispanic Ethnicity,Young Women,20s,Beautiful,Standing,Communication,Casual Clothing,Blouse,One Person,Information Sign,Announcement Message,Sign

Hace algunos meses liberé una versión de un Servicio Web que te permite traducir textos. Esta versión funcionaba con el motor de BabelFish de Altavista pero después de su adquisición por Yahoo! este dejó de funcionar.

Además de que me dí a la tarea de aprender dos cosas, WCF con REST y ASMX; además de que estamos haciendo un nuevo gadget de Babelbot con Silverlight.

Entonces he aquí queridos lectores la versión 2.0 de su servicio de traducción de Intellekt que tiene las nuevas características:

  1. Es un modelo extensible : puedes usar cualquier engine de traducción mediante web.config – actualmente soporta Windows Live Translator y Google Translate.
  2. Soporta ASMX mediante SOAP – puedes añadir una Web Reference desde tu VS 2008 y fácilmente podrás utilizarlo.
  3. Soporta REST – es un servicio RESTful que te permitirá el acceso desde cualquier sitio para mashup como Popfly, Virtual Earth, Facebook … you name it.
  4. Ya soporta UTF8 y URL Encoding (para los caracteres especiales y acentos)
  5. Es mucho más rápido y robusto que la versión anterior.

ASMX

Para utilizar el ASMX de translatr 2.0 solo apunta tu navegador a http://intellekt.ws/translatr/translatr.asmx.

El método que existe es TranslateThis y requiere de entrada lo siguiente:

  1. InputText [string] – El texto a traducir
  2. LanguagePair [string] – Una cadena de lenguaje separada por pipe que te define el lenguaje de entrada y de salida.
    1. es|en – Español -> Inglés
    2. en|es – Inglés -> Español
    3. etc.
  3. ReturnValue [string] – El texto traducido.
POST /translatr/translatr.asmx HTTP/1.1

Host: intellekt.ws

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://intellekt.ws/TranslateThis"



<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

  <soap:Body>

    <TranslateThis xmlns="http://intellekt.ws/">

      <inputText>string</inputText>

      <languagePair>string</languagePair>

    </TranslateThis>

  </soap:Body>

</soap:Envelope>

REST

Tambien incluí la versión RESTful para el traductor de manera que puedas usarlo de una manera más sencilla con JS. Básicamente lo único que tienes que hacer es apuntar directamente a este URL del navegador :

http://intellekt.ws/translatr/translatr_r.svc/TranslateThis?i={InputText}&l={Language|Pair}

Tiene los mismos parámetros que el ASMX, solo que se tienen que escribir directamente en el navegador. Por ejemplo puedes hacer la traducción dentro de este URL:

http://intellekt.ws/translatr/translatr_r.svc/translatethis?i=hello&l=es|en

Aquí cambia el valor de retorno. En vez de obtener un mensaje en SOAP estarás obteniendo un XML simple que podrás manipular fácilmente desde cualquier programa. Tambien puede regresar JSON pero ahorita lo dejamos como XML.

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">Hello</string>

Mantenganse pendientes de los siguientes posts donde explicaremos como consumir este servicio desde JS, NET y Silverlight.

Estén pendientes.

Cheers! Beer


Comentarios

Deja una respuesta