;; This file: http://user.it.uu.se/~embe8573/conf/emacs-init/translate.el ;; http://user.it.uu.se/~embe8573/conf/emacs-init/get-search-string.el (require 'google-translate-core-ui) (require 'get-search-string) (defun translate (src-lang dst-lang text) (interactive) (let ((killed kill-ring)) (google-translate-translate src-lang dst-lang text 'kill-ring) (let ((translation (current-kill 0))) (setq kill-ring-yank-pointer killed) (message "%s: %s" text translation) ))) (defun translate-with-prompt (from to) (let*((prompt (pcase from ((or "sv" "da") "ord") ("en" "word") ("es" "palabra") )) (word (get-search-string prompt)) ) (translate from to word) )) (defun danish-to-swedish () (interactive) (translate-with-prompt "da" "sv")) (defun english-to-spanish () (interactive) (translate-with-prompt "en" "es")) (defun english-to-swedish () (interactive) (translate-with-prompt "en" "sv")) (defun spanish-to-english () (interactive) (translate-with-prompt "es" "en")) (defun spanish-to-swedish () (interactive) (translate-with-prompt "es" "sv")) (defun swedish-to-danish () (interactive) (translate-with-prompt "sv" "da")) (defun swedish-to-english () (interactive) (translate-with-prompt "sv" "en")) (defun swedish-to-spanish () (interactive) (translate-with-prompt "sv" "es")) ;; note: these aliases are in Swedish (defalias 'da 'danish-to-swedish) (defalias 'en 'english-to-swedish) (defalias 'en-sp 'english-to-spanish) (defalias 'sp 'spanish-to-swedish) (defalias 'sp-en 'spanish-to-english) (defalias 'sv 'swedish-to-english) (defalias 'sv-da 'swedish-to-danish) (defalias 'sv-sp 'swedish-to-spanish)