;;; -*- lexical-binding: t -*- ;;; ;;; this file: ;;; http://user.it.uu.se/~embe8573/emacs-init/translate.el ;;; https://dataswamp.org/~incal/emacs-init/translate.el ;;; ;;; also needed: ;;; https://dataswamp.org/~incal/emacs-init/get-search-string.el ;;; ;;; the main event: ;;; https://github.com/atykhonov/google-translate ;;; ;;; quick test: ;;; (google-translate-translate "en" "sv" "amber") (require 'get-search-string) (require 'google-translate-core-ui) (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 ("az" "söz") ("da" "ord") ("de" "Wort") ("en" "word") ("es" "palabra") ("fr" "parole") ("it" "parola") ("no" "ord") ("pl" "słowo") ("sv" "ord") ("tr" "sözcük") (_ "word?") )) (word (get-search-string prompt)) ) (translate from to word) )) (defun azeri-to-english () (interactive) (translate-with-prompt "az" "en")) (defun danish-to-swedish () (interactive) (translate-with-prompt "da" "sv")) (defun english-to-azeri () (interactive) (translate-with-prompt "en" "az")) (defun english-to-french () (interactive) (translate-with-prompt "en" "fr")) (defun english-to-german () (interactive) (translate-with-prompt "en" "de")) (defun english-to-spanish () (interactive) (translate-with-prompt "en" "es")) (defun english-to-swedish () (interactive) (translate-with-prompt "en" "sv")) (defun english-to-turkish () (interactive) (translate-with-prompt "en" "tr")) (defun french-to-english () (interactive) (translate-with-prompt "fr" "en")) (defun french-to-swedish () (interactive) (translate-with-prompt "fr" "sv")) (defun german-to-english () (interactive) (translate-with-prompt "de" "en")) (defun italian-to-swedish () (interactive) (translate-with-prompt "it" "sv")) (defun norwegian-to-swedish () (interactive) (translate-with-prompt "no" "sv")) (defun polish-to-english () (interactive) (translate-with-prompt "pl" "en")) (defun romanian-to-english () (interactive) (translate-with-prompt "ro" "en")) (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-french () (interactive) (translate-with-prompt "sv" "fr")) (defun swedish-to-italian () (interactive) (translate-with-prompt "sv" "it")) (defun swedish-to-norwegian () (interactive) (translate-with-prompt "sv" "no")) (defun swedish-to-spanish () (interactive) (translate-with-prompt "sv" "es")) (defun turkish-to-english () (interactive) (translate-with-prompt "tr" "en"))