EmacsWiki: wuxch-dict.el
Скачать
;;; синтаксический анализатор результатов словаря Babylon и вставка в мой личный словарь.
(defun do-vocabulary-insert-word (новое-слово)
"сделать-словарь-вставить-слово:"
(сделать-словарь-вставить-все новое-слово "" "" "" "")
)
(defun do-vocabulary-insert-all (new-word new-phonetic new-term new-english new-chinese)
"сделать-словарь-вставить-все:"
(пусть ((имя-словаря-файла "~/vocabulary/vocabulary.bib")
(комментарий-str "@comment{"))
(найти-файл-словарь-имя-файла)
(goto-char (точка-мин))
(if (поиск вперед (concat "VOCABULARY {" новое слово ",") nil t)
(программа
(сообщение "%s уже есть в словаре" новое слово))
(программа
(goto-char (точка-мин))
(когда (поиск вперед комментарий-str nil t)
(предыдущая строка)
(начало строки)
(вставить (concat "\n@VOCABULARY{" новое слово ",\n"))
(вставить (concat " ключ = {" новое слово "},\n"))
(вставить (concat " слово = {" новое слово "},\n"))
(вставить (concat " фонетический = {\\char\"005B" новый-фонетический "\\char\"005D},\n"))
(вставить (concat " term = {" новый термин "},\n"))
(вставить (concat " english = {" new-english "},\n"))
(вставить (concat " китайский = {" новый китайский "},\n"))
(вставить (concat " owner = {吴晓春},\n"))
(insert (concat " timestamp = {" (format-time-string "%Y.
\\(n\\|adj\\|adv\\|v\\|prep\\|vi\\|vt\\|conj\\)\\.[ ] ")
(термин setq (строка соответствия 1))
;; (сообщение "term is :%s" term)
(setq english (buffer-substring (point) (line-end-position)))
;; (сообщение "english is :%s" на английском языке)
)
(если (и словесный фонетический термин английский китайский)
(программа
(сообщение "парсить из вавилонского перевода ОК!" )
(список слов фонетический термин английский китайский)
)
(программа
(сообщение "анализ ошибки перевода вавилон!")
ноль
)
)
)
)
(global-set-key [(control c)(b)] 'babylon-translation-to-my-dict-and-cite)
(defun babylon-translation-utility-add-cite (text-word dict-word)
"вавилон-функция-перевода:"
(insert (concat "\\cite{" dict-word "}"))
(заполнить пункт t)
(буфер сохранения)
(сообщение "цитировать \"%s\" с \"%s\" OK!" text-word dict-word)
)
(defun babylon-utility-word-suggestion (слово)
"вавилон-утилита-слово-предложение:"
(пусть ((предложение)
(лен (длинное слово))
(количество последних игнорируемых букв 1)
)
(setq предлагает (concat (подстрока слова 0 (- len номер последней буквы, которую следует игнорировать)) "[a-z]*" ))
)
)
(defun babylon-translation-to-my-dict-and-cite ()
"вавилон-перевод-на-диктовать-и-цитировать:"
(интерактивный)
(let* ((dict-word)
(текстовое слово)
(совпадающее текстовое слово)
(исходный-буфер (текущий-буфер)))
(setq dict-word (babylon-translation-to-my-dict))
(когда дикт-слово
(setq text-word dict-word)
(переключиться на буфер исходного баффа)
(if (повторный поиск (concat "\\b" dict-word "\\b") nil t)
(программа
(babylon-translation-utility-add-cite text-word dict-word)
)
(программа
(setq текстовое слово
(чтение-регулярное выражение
(concat" не может найти ["слово-слово"], повторный поиск?"
"по умолчанию:[" (слово-слово-предложение-слова-вавилона-утилиты) "]")
(вавилон-утилита-слово-предложение дикт-слово)))
(if (повторный поиск (concat "\\b" text-word "\\b") nil t)
(программа
(setq совпадающее текстовое слово (строка совпадения 0))
(babylon-translation-utility-add-cite matched-text-word dict-word)
)
(программа
;; попробуй еще раз сверху
(goto-char (точка-мин))
(if (повторный поиск (concat "\\b" text-word "\\b") nil t)
(программа
(setq совпадающее текстовое слово (строка совпадения 0))
(babylon-translation-utility-add-cite matched-text-word dict-word)
)
(программа
(сообщение "Поиск снова не удался, прервите!")
)
)
)
)
)
)
)
)
)
(defun babylon-translation-to-my-dict()
"parse-babylon-dict:"
(интерактивный)
(пусть ((buf "*babylon-temp-buffer*")
(результат синтаксического анализа ноль)
(слово))
;; сначала очистить буфер
(если (получить буфер буфера)
(буфер убийства)
(программа
(переключиться на буфер (получить буфер, создать буфер))
(буфер обмена-дергать)))
(setq parse-result (babylon-translation-parse buf))
(если результат синтаксического анализа
(программа
(setq слово (n-й 0 результат синтаксического анализа))
(сделать-словарь-вставить-все слова
(n-й 1 результат синтаксического анализа)
(n-й 2 результат синтаксического анализа)
(n-й 3-й результат синтаксического анализа)
(n-й 4-й результат синтаксического анализа))
(убить-новое слово)
(буфер убийства)
(сообщение "поместите [%s] в словарь ОК и оставьте слово в буфере обмена")
слово
)
(программа
(сообщение "анализ ошибки перевода вавилон!")
ноль
)
)
)
)
(defvar babylon-phonetic-adjust-list ноль)
(setq вавилон-фонетическая настройка-список '(
(«ɪ».
