;; ;; rvsej.el --- Replace Version Strings, English to Japanese. ;; (defconst rvsej-version "Rvsej version 1.3") ;; ;; Author: Takashi Masuda ;; Created: Oct 05, 2008 ;; Revised: Oct 13, 2008 ;; This program is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; ;; This program is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with this program; see the file COPYING. If not, write to ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. (provide 'rvsej) ;;; User Customizable Variables: ;;; Code: (defun rvsej (en-version type) (let* ((mule-codename-alist '(("KIRITSUBO" . "桐壺") ("HAHAKIGI" . "帚木") ("UTSUSEMI" . "空蝉") ("YUUGAO" . "夕顔") ("WAKAMURASAKI" . "若紫") ("SUETSUMUHANA" . "末摘花") ("MOMIJINOGA" . "紅葉賀") ("HANANOEN" . "花宴") ("AOI" . "葵") ("SAKAKI" . "賢木") ("HANACHIRUSATO" . "花散里") ("SUMA" . "須磨") ("AKASHI" . "明石") ("MIOTSUKUSHI" . "澪標") ("YOMOGIU" . "蓬生") ("SEKIYA" . "関屋") ("EAWASE" . "絵合") ("MATSUKAZE" . "松風") ("USUGUMU" . "薄雲") ("ASAGAO" . "朝顔") ("OTOME" . "少女") ("TAMAKAZURA" . "玉鬘") ("HATSUNE" . "初音") ("KOCHOU" . "胡蝶") ("HOTARU" . "蛍") ("TOKONATSU" . "常夏") ("KAGARIBI" . "篝火") ("NOWAKE" . "野分") ("MIYUKI" . "行幸") ("FUJIBAKAMA" . "藤袴") ("MAKIBASHIRA" . "真木柱") ("UMEGAE" . "梅枝") ("FUJINOURABA" . "藤裏葉") ("WAKANA-KAMI" . "若菜上") ("WAKANA-SHIMO" . "若菜下") ("KASHIWAGI" . "柏木") ("YOKOBUE" . "横笛") ("SUZUMUSHI" . "鈴虫") ("YUUGIRI" . "夕霧") ("MINORI" . "御法") ("MABOROSHI" . "幻") ("KUMOGAKURE" . "雲隠") ("NIOUMIYA" . "匂宮") ("KOUBAI" . "紅梅") ("TAKEGAWA" . "竹河") ("HASHIHIME" . "橋姫") ("SHIIGAMOTO" . "椎本") ("AGEMAKI" . "総角") ("SAWARABI" . "早蕨") ("YADORIGI" . "宿木") ("AZUMAYA" . "東屋") ("UKIFUNE" . "浮舟") ("KAGEROU" . "蜻蛉") ("TENARAI" . "手習") ("YUMENOUKIHASHI" . "夢浮橋"))) (meadow-codename-alist '(("KARUKAYA" . "刈萱") ("ASAGAO" . "朝顔") ("KIKYOU" . "桔梗") ("WOMINAHESHI" . "女郎花") ("NADESHIKO" . "撫子") ("AOI" . "葵") ("SIYOU" . "紫陽") ("MIDORI" . "翠") ("MIDORI-NO-TAMA" . "翠之珠") ("TSUYU" . "露") ("AWSAKA" . "逢坂") ("SHOUBU" . "菖蒲") ("KASURI" . "絣") ("FUDI-GASANE" . "藤襲") ("TSUTSUJI" . "躑躅") ("TACHIBANA" . "橘") ("YAMA-TACHIBANA" . "山橘") ("HIINA" . "雛") ("FUTAAWI" . "二藍") ("EBIZOME" . "葡萄染") ("HACHISU" . "蓮") ("SASHINUKI" . "指貫") ("TANAHASHI" . "棚橋") ("UKIHASHI" . "浮橋") ("AWOFUCHI" . "青淵") ("TANINOHORA" . "谷の洞") ("HATAITA" . "鰭板") ("KUROGANE" . "鉄") ("TSUCHIKURE" . "土塊") ("IKADUCHI" . "雷") ("HAYACHI" . "疾風") ("FUSAU" . "不祥雲") ("HOKOBOSHI" . "矛星") ("HIDIKASA" . "肱笠雨") ("ARANORA" . "荒野ら") ("KAKITSUBATA" . "杜若") ("KIKU" . "菊"))) (replace (if (fboundp 'replace-regexp-in-string) 'replace-regexp-in-string (lambda (regexp rep string) (string-match regexp string) (replace-match rep nil nil string)))) (convert-en2ja (lambda (en-version alist) "alist を使用して、en-version に対応した ja-version を返す。" (or (let (ja-version en-name ja-name) (catch 'found (mapcar (lambda (cell) (setq en-name (car cell) ja-name (cdr cell)) (when (string-match en-name en-version) (setq ja-version (funcall replace en-name ja-name en-version)) (throw 'found t))) alist)) ja-version) en-version)))) (funcall convert-en2ja en-version (cond ((eq type 'mule) mule-codename-alist) ((eq type 'meadow) meadow-codename-alist))))) ;; For MULE (when (boundp 'mule-version) (setq mule-version (rvsej mule-version 'mule)) (defun mule-version () "Mule の日本語バージョン名を表示する。" (interactive) (message "Mule version %s" mule-version))) ;; For MEADOW (when (featurep 'meadow) (defadvice Meadow-version (after Meadow-version-after-advice activate) "Meadow の日本語バージョン名を表示する。" (setq ad-return-value (rvsej ad-return-value 'meadow)))) ;; For EMCWS (when (featurep 'emcws) (defun emcws-version () "emcws のバージョンを表示する。" (interactive) (message "emcws-version \"%s\"" emcws-version))) ;;; Local Variables: ;;; mode: emacs-lisp ;;; coding: euc-jp-unix ;;; tab-width: 8 ;;; End: