.NET Tutorial 12. Usando servicios Web: Crea un traductor Español-Inglés-Ruso-Alemán-etc con sólo 2 lineas de código.

Hoy vamos a ver como es posible crear un traductor "multilingüe" en apenas dos lineas de código.
La idea es usar un servicio Web y usarlo desde nuestra aplicación de .NET.

Para ello usaremos un servicio Web del nuevo buscador de Microsoft: Bing

No profundizaremos mucho en que son los servicios Web, pero a grandes rasgos podriamos decir que un servicio Web es una clase que realiza una determinada tarea pero que dicha clase no está alojada en nuestro PC, sino que se ejecuta a través de internet. Cómo cualquier otra clase o Namespace de .NET, dispone de sus propios miembros, funciones, etc.

En nuestro caso para utilizar el traductor de Microsoft, según vemos aqui: http://msdn.microsoft.com/en-us/library/dd576287.aspx utilizaremos el Servicio SOAP.

Tal y como vemos, cuando pulsamos en el link del Servicio SOAP, la referencia que tenemos que agregar en nuestro proyecto es esta: http://api.microsofttranslator.com/V1/SOAP.svc

Pues bien, antes de hacer todo esto, es necesario (lo  pide este servicio en particular, otros servicios funcionan de forma similar) obtener una "ID" para poder utilizar este servicio.

Para ello tendremos que ir a la página: http://www.bing.com/developer y obtener lo que ellos llaman una "AppID". Esta "AppID" será necesaria para llamar a diversos argumentos del servicio.


(Haz click para agrandar la imagen)

Una vez rellenados los datos se creará un "ID". Copiaremos dicho ID y será el que usaremos en nuestro código.

En nuestro caso particular se nos ha generado este ID:

AB13BEE13E3C5413302B66BEEB883DB51188E4AC


(Haz click para agrandar la imagen)

Para añadir el servicio Web en nuestro proyecto tendremos que proceder de la siguiente forma:

Al pulsar en "Agregar referencia de servicio…" se nos mostrará una ventana similar a esta:

Escribimos la dirección que comentamos antes y pulsamos en el botón Ir

A continuación deberiamos ver una pantalla similar a esta:

En ella vemos las operaciones disponibles de dicho servicio. Por último, cambiaremos el Espacio de nombres y lo llamaremos "ServicioTraductor".

Al aceptar todo esto, en nuestro explorador de soluciones veremos algo tal que así:

Para traducir un texto del español al inglés por ejemplo, se utiliza la función Translate, de esta forma:

objeto.Translate (AppId, "hola","es","en")

El primer argumento es el "AppID" que se generó anteriormente.
"hola" es el texto que se va a traducir
"es" es el "idioma de origen"
"en" es el "idioma al que se va a traducir"

Cómo véis es tremendamente simple de usar. Aquí un pantallazo de todo el código de este traductor.

Ese es todo el código para traducir del español al ruso, del español al inglés, del inglés al francés, del fránces al italiano, etc, etc…Existen un total de 15 idiomas. Imagina todas las combinaciones posibles.

 

Unas pantallas del resultado: Traducciendo del Español al Inglés:


(Haz click para agrandar la imagen)

Cómo podéis ver la traducción es bastante "real"

Otra traducción del Español al Inglés:


(Haz click para agrandar la imagen)

Y aquí la prueba "de fuego". Hemos cogido el texto "traducido" del inglés y le volvemos a decir que traduzca dicho texto del Español. En un traductor "ideal" el texto del español al inglés, debería ser el mismo que el traducido del inglés al español:


(Haz click para agrandar la imagen)

Como veis no es exactamente igual, pero se acerca bastante.

 

Como habéis podido ver, utilizar este tipo de servicios puede ser realmente una buena opción, sin necesidad de "complicarse" la vida. Como habéis visto el código de traducción es de apenas 1 linea, ya que todo "el trabajo sucio" lo está haciendo el servicio Web.

Espero vuestros comentarios.

 

Saludos.
mov eax,ollydbg; Int 13h  

 

Descargar proyecto .NET Tutorial 12
(80 KB. Visual Studio 2008)