¿Hay alguna manera de traducir sin problemas un correo dentro de Mail.app?

4

Al mudarme recientemente a Alemania, recibí toneladas de correos electrónicos en alemán.

Mi flujo de trabajo actual definitivamente no es eficiente: copie el contenido del correo, vaya a translate.google.com, pegue el contenido ...

La solución ideal sería: solo activa un acceso directo y haz que el contenido del correo electrónico se traduzca al idioma predefinido que hayas establecido.

¿Sería eso posible?

    
pregunta nuc 27.10.2013 - 10:37

3 respuestas

4

Aquí hay un applecript que acabo de armar y que está funcionando para mí (10.9)

Puede colocarlo en el menú Applescript y ejecutarlo en los correos electrónicos seleccionados.

El guión:

  • Intente capturar los correos electrónicos seleccionados en Mail.
  • Enviar una solicitud para traducir Google
  • Convierta el HTML resultante en texto plano
  • Muestra un archivo de texto temporal con la traducción.

Puede configurar el idioma original como automático o uno de los idiomas en la lista de código de idiomas. Y también establece el idioma de resultados de la lista.

No hay razón para que no pueda crear un servicio utilizando este script. Pero eso te lo dejo a ti. Solo tenga en cuenta que para que el dispositivo funcione, deberá hacer clic con el botón derecho del mouse / clic + en el cuerpo de un mensaje para que aparezca el menú de servicio. O usa el menú Servicios.

#http://macscripter.net/viewtopic.php?id=31218
#http://macscripter.net/viewtopic.php?id=39742
#The above links are the starting points of this script which both attempt to translate text. But are broken or do not return the full text.

#This script will attampt to translate the text from the selected emails to your chosen language 

property languages_code : {Afrikaans:"af", Albanian:"sq", Arabic:"ar", Belarusian:"be", Bulgarian:"bg", Catalan:"ca", Chinese:"zh-CN", Croatian:"hr", Czech:"cs", Danish:"da", Dutch:"nl", English:"en", Estonian:"et", Filipino:"tl", Finnish:"fi", French:"fr", Galician:"gl", German:"de", Greek:"el", Hebrew:"iw", Hindi:"hi", Hungarian:"hu", Icelandic:"is", Indonesian:"id", Irish:"ga", Italian:"it", Japanese:"ja", Korean:"ko", Latvian:"lv", Lithuanian:"lt", Macedonian:"mk", Malay:"ms", Maltese:"mt", Norwegian:"no", Persian:"fa", Polish:"pl", Portuguese:"pt", Romanian:"ro", Russian:"ru", Serbian:"sr", Slovak:"sk", Slovenian:"sl", Spanish:"es", Swahili:"sw", Swedish:"sv", Thai:"th", Turkish:"tr", Ukrainian:"uk", Vietnamese:"vi", Welsh:"cy", Yiddish:"yi"}

#Curl stuff
property agent : "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; en-us) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10"
property charset : "UTF-8"
property header : "Charset:" & space & charset
property theURL : "https://translate.google.com/?" #This must be https

#used to delimit the html
property snipOpen : "TRANSLATED_TEXT="
property snipClose : ";INPUT_TOOL_PATH"

#You can either set a start language or leave it at auto.
property startLang : "auto"
#set a result language 
property resultLang : English of languages_code

#Ask Mail to get and process selected emails
tell application "Mail"
    set theMessages to (get selection)
    repeat with i from 1 to number of items in theMessages
        set this_item to item i of theMessages

        set thisSender to sender of this_item
        set thisSubject to subject of this_item
        set thisText to content of this_item as string
        my translate(thisSender, thisSubject, thisText)
    end repeat
end tell

(*************** SUBROUTINES *****************)
#Translate the message text and display them in a temp text file
on translate(thisSender, thisSubject, thisText)

    if thisText is not "" then
        #replace all spaces with "%20" for the URL to use without error
        set escapedText to findReplace(thisText, space, "%20")

        #send request  to google and get the returned HTML
        set TranslatedText to do shell script "/usr/bin/curl" & space & ¬
            "-A" & space & quoted form of agent & space & ¬
            "-H" & space & quoted form of header & space & ¬
            "-d" & space & quoted form of ("&ie=" & charset & "&oe=" & charset & "&langpair=" & startLang & "|" & resultLang & "&text=" & escapedText) & space & quoted form of theURL


        try
            #Use delimiters to split the text to just get the actual result part 
            set txt to Split(TranslatedText, snipOpen)'s item 2
            set txt to Split(txt, snipClose)'s item 1

            set displayText to ¬
                "Sender: " & thisSender & "<br>" & ¬
                "Subject: " & thisSubject & "<br>" & "<br>" & ¬
                txt
            #Use  Textutil to strip any other rich text or HTML code out and convert to plain text. Then open in a text document
            do shell script "echo  " & quoted form of displayText & "|textutil -format html -convert txt -stdin -stdout | open -f"
        on error errTxt number errNum
            display dialog errTxt with title "Error# " & errNum buttons {"Cancel", "OK"} default button 2 with icon 0 giving up after 0
        end try

    end if
end translate


on Split(txt, del)
    set {otid, AppleScript's text item delimiters} to {AppleScript's text item delimiters, del}
    set txt to text items of txt
    set AppleScript's text item delimiters to otid
    return txt
end Split



on findReplace(theString, search_string, replacement_string)
    if theString contains search_string then
        set AppleScript's text item delimiters to search_string
        set text_item_list to text items of theString
        set AppleScript's text item delimiters to replacement_string
        set theString to text_item_list as text
        set AppleScript's text item delimiters to ""
    end if
    return theString
end findReplace
    
respondido por el markhunte 27.10.2013 - 15:06
0

Puede hacer esto usando la aplicación de Apple 'Automator' (que encontrará en la carpeta Aplicaciones) que le permite hacer scripts de automatización de tipo arrastrar y soltar. A continuación, puede asignar la acción de Automator a una combinación de teclas dedicada.

Incluso puedes grabar los pasos en Automator y luego limpiarlos para hacerlos genéricos.

Automator y Applescript son dos características de OS X que se conocen muy poco pero que pueden ayudar exactamente en el tipo de caso que estás viendo.

Sitio web con información: enlace

Y creando servicios: enlace

    
respondido por el FromOZ 27.10.2013 - 11:18
0

En realidad, encontré esto más conveniente. Probado en El capitán 10.11.5

Is ¿Es posible enlazar mi Mac OSX Dictionary.app a Google Translate?

Captura de pantalla: enlace

    
respondido por el hasusuf 07.06.2016 - 13:51

Lea otras preguntas en las etiquetas