Artículos creados en febrero, 2010

Servicio de traducción en Snow Leopard v2 (Texto y Webs)

Se imagina que, con solamente seleccionar un texto en inglés (en cualquier programa) y presionar una combinación de teclas (O dos clic de ratón, como prefiera) se traduzca en Google Translate?? ¿¿Se imagina que eso no tome recursos del ordenador porque no es ningún proceso en memoria, ni ejecutándose continuamente?? ¿¿Se imagina bajarlo ya preparado o haciéndolo usted mismo desde cero?? Pues si le está costando imaginárselo es que no ha leído aún el artículo «COMO CREAR UN SERVICIO DE TRADUCCION EN MAC» que hace no mucho tiempo he publicado y cuya nueva versión comenzaré a explicar a continuación.

Hace un par de días, uno de los lectores del Blog (Micropark) me comentaba que estaría bien que también se le pudiesen enviar direcciones WEB al traductor creado en el artículo antes mencionado para que se tradujesen como WEB completas. Como no era algo muy complejo, me puse a hacerlo y este es el resultado:

En este artículo no me pararé a explicar cada uno de los pasos y los detalles del porqué se hacen las cosas, ya que lo explico todo, paso por paso, en el ANTERIOR ARTÍCULO.

Ciertamente, Micropark tenía razón, si se seleccionaba un texto la traducción funcionaba perfectamente pero si seleccionábamos una dirección WEB el servicio se limitaba a traducirla como si se tratase de un texto normal, es decir, realizaba una traducción de la propia dirección y no del contenido.

La propia página del traductor de Google hace su distinción del texto que introducimos en ella para saber si se trata de un enlace o no, pero como en nuestro caso ya le enviamos una dirección concreta, la función de detección de enlaces de google no nos sirve. Teniendo esto en cuenta está claro el siguiente paso lógico que debemos de dar:

Tenemos que modificar el Servicio, o más bien el script del flujo de trabajo del automator, para que sea nuestro propio script el que distinga si se trata de una dirección WEB o de un texto normal para lo que nos basaremos en 3 reglas muy simples:

  • Regla 1: Si el texto comienza por http, es una WEB
  • Regla 2: Si comienza por www. también es una WEB
  • Regla 3: Si no es ninguna de las anteriores es un texto normal.

Si se cumple alguna de las 2 primeras, formaremos la dirección a enviar al navegador WEB de la manera que el traductor de Google forma la URL cuando se trata de una WEB a traducir. En cambio, si es la regla 3 la que se cumple, enviamos la dirección tal y como lo hacíamos anteriormente (en la 1era versión del Script).

Así que el flujo de trabajo de automator queda exactamente igual salvo por el Script, que será así:


on run {input}

set input to {input} as text
set LaDirecc to ""
set LaDireccCompleta to CompruebaLinks(input, LaDirecc)
tell application "Safari"
activate
set the URL of (make new document) to LaDireccCompleta
end tell

end run

on CompruebaLinks(input, LaDirecc)
set Comienzo to input as text
set Comienzo to characters 1 thru 4 of input as text
set EsEnlace to false
if Comienzo is "www." then set EsEnlace to true
if Comienzo is "http" then set EsEnlace to true
if EsEnlace is true then
set LaDirecc to "http://translate.google.es/translate?js=y&prev=_t&hl=es&ie=UTF-8&layout=1&eotf=1&u=" & input
else
set LaDirecc to "http://translate.google.com/#en|es|" & input
end if
set input to LaDirecc
return LaDirecc

end CompruebaLinks

Si se fija un poco verá que para hacer la comprobación de las 3 reglas tampoco es necesario complicarse la vida mucho. De hecho, para hacerlo el único paso adicional realizado es comprobar los 4 primeros caracteres con los que comienza la cadena o texto a traducir. Como ya hemos dicho, si comienza por «http» o por «www.» (Fíjese que ambas cadenas son de 4 caracteres ya que en «www.» he incluido el punto) es una dirección web. Esto hace que si introducimos, por ejemplo: «archivoslog.es» no lo reconozca como dirección WEB pero realmente es la manera más simple de hacer la distinción ya que tratar de hacerlo por la terminación, además de complicar muchísimo el código del script debido a la gran cantidad de dominios existentes (.com, .es, .org, .ar, .eu…etc) seria relativamente sencillo encontrarnos fallos en textos con errores de sintaxis (Sin espacio tras el primer punto).

La diferencia más grande, además de la detección de enlaces, evidentemente, es que realizamos esta misma mediante una función llamada CompruebaLinks a la que le pasamos dos variables:

  • input: Es la que contiene el texto seleccionado y que previamente convertimos al tipo «text» para poder manejarla a nuestro antojo.
  • LaDirecc: Esta variable la enviamos vacía al proceso aunque es un pequeño truco para que la reconozca pero su principal misión es la de devolvernos el resultado de la función, es decir, la dirección final ya procesada para enviarla al navegador.

Y ya está, la verdad es que no ha sido complicado ¿verdad?. Ahora bien, como siempre, también está disponible el enlace de descarga del servicio ya completo al cual solamente le faltaría ubicarlo en la carpeta Servicios una vez descargado. Como último apunte, como en MAC hay 2 carpetas «servicios», os detallo la diferencia de ubicar nuestra pequeña creación en una u otra:

Para que todos los usuarios del sistema tengan acceso al servicio (Requiere autenticación):

  • Disco principal/sistema/Librería/Servicios

Si quiere tener el servicio solo para el usuairo actual, la ruta es:

  • Home del usuario/Librería/Servicios

Si tiene dudas de como realizar alguno de los pasos: VER EL ARTÍCULO ANTERIOR (Versión 1)

Servicio de traducción (Versión 2) Google para Snow Leopard: DESCARGAR

.

leer más