Es un ejemplo muy simple, (solo traduce de español a ingles), pero es muy fácil ampliarlo y darle más opciones.
' gambas class file
'Fuente: basado en el script de
'#info@elelefantemoteado.com.ar
'#
'#wget http: / / linux.die.net / man / 1 / wget
'#sed http: / / linux.die.net / man / 1 / sed
'Fuente URL:
'http://elelefantemoteado.com.ar/txt/traduccion-en-la-linea-de-comandos/
PRIVATE MiHttp AS NEW HttpClient
PUBLIC FUNCTION traducir(palabra AS String, idiomainicial AS String, idiomafinal AS String) AS String
DIM a AS Integer
DIM Buffer AS String
DIM parteFinal, parteInicial AS String
palabra = Replace$(palabra, " ", "%20")
MiHttp.url = Subst$("http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=&1&langpair=&2%7C&3", palabra, idiomainicial, idiomafinal)
MiHttp.Get()
WHILE (Lof(MiHttp) = FALSE AND a < 10)
'espero 1 segundo o que llegue a>10
a = a + 1
WAIT 1
WEND
IF a = 10 OR Lof(MiHttp) = FALSE THEN
message("No ha sido posible conectarse al servidor")
RETURN
ENDIF
IF Lof(MiHttp) THEN
READ #MiHttp, Buffer, Lof(MiHttp)
ENDIF
'lo siguiente es para coger solo la traduccion...
parteInicial = "{\"responseData\": {\"translatedText\":\""
parteFinal = "\"}, \"responseDetails\": null, \"responseStatus\": 200}"
RETURN Between(buffer, parteInicial, partefinal)
END
PUBLIC SUB ButtonTraducir_Click()
'es : español
'en : ingles
LabelTraducido.text = traducir(TextBoxTextoOriginal.text, "es", "en")
END
PRIVATE FUNCTION Between(Datos AS String, Cadena1 AS String, Cadena2 AS String) AS String
DIM iinf AS Integer
DIM isup AS Integer
iinf = InStr(Datos, Cadena1) + Len(Cadena1)
isup = InStr(Datos, Cadena2, iinf)
RETURN Mid(Datos, iinf, isup - iinf)
END
Teneis que activar los componente gb.net y gb.net.curl, y crear un textbox (TextBoxTextoOriginal), un boton (ButtonTraducir) y label (LabelTraducido)
Os puede quedar una cosa asi:
Espero que os sea útil, saludos.
Nota:
Como sabemos , la traducción automática no es muy buena, y habrá que repasarla, pero te puede facilitar mucho el trabajo.