;;; kana-to-roman.el --- Kana to Roman converter ;; Copyright (C) 1996 MORIOKA Tomohiko ;; Author: MORIOKA Tomohiko ;; Version: ;; $Id: kana-to-roman.el,v 0.4 1996/10/04 14:52:16 morioka Exp $ ;; Keywords: Roman-to-Kana, input, Japanese, mule ;; This file is not part of GNU Emacs. ;; 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 GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. ;;; Code: (require 'roman-to-kana) ;; (npp ;; (sort (mapcar (lambda (cell) ;; (cons (cdr cell)(car cell)) ;; ) ;; hepburn-roman-to-kana-translation-rule-alist) ;; (lambda (c1 c2) ;; (string< (car c2)(car c1)) ;; ))) (defvar kana-to-roman-translate-table 'hepburn) (defvar hepburn-kana-to-roman-translation-rule-alist '(("ヴぉ" . "vo") ("ヴぇ" . "ve") ("ヴぃ" . "vi") ("ヴぁ" . "va") ("ヴ" . "vu") ("んの" . "nno") ("んね" . "nne") ("んぬ" . "nnu") ("んに" . "nni") ("んな" . "nna") ("ん" . "n") ;;("ん" . "x") ;;("ん" . "n'") ("を" . "wo") ("ゑ" . "we") ("ゐ" . "wi") ("わ" . "wa") ("ろ" . "ro") ("れ" . "re") ("る" . "ru") ("りょ" . "ryo") ("りゅ" . "ryu") ("りゃ" . "rya") ("りぇ" . "rye") ("りぃ" . "ryi") ("り" . "ri") ("ら" . "ra") ("よ" . "yo") ("ゆ" . "yu") ("や" . "ya") ("も" . "mo") ("め" . "me") ("む" . "mu") ("みょ" . "myo") ("みゅ" . "myu") ("みゃ" . "mya") ("みぇ" . "mye") ("みぃ" . "myi") ("み" . "mi") ("ま" . "ma") ("ぽ" . "po") ("ぼ" . "bo") ("ほ" . "ho") ("ぺ" . "pe") ("べ" . "be") ("へ" . "he") ("ぷぉ" . "pfo") ("ぷぇ" . "pfe") ("ぷぃ" . "pfi") ("ぷぁ" . "pfa") ("ぷ" . "pu") ("ぶ" . "bu") ("ふぉ" . "fo") ("ふぇ" . "fe") ("ふぃ" . "fi") ("ふぁ" . "fa") ("ふ" . "fu") ("ぴょ" . "pyo") ("ぴゅ" . "pyu") ("ぴゃ" . "pya") ("ぴぇ" . "pye") ("ぴぃ" . "pyi") ("ぴ" . "pi") ("びょ" . "byo") ("びゅ" . "byu") ("びゃ" . "bya") ("びぇ" . "bye") ("びぃ" . "byi") ("び" . "bi") ("ひょ" . "hyo") ("ひゅ" . "hyu") ("ひゃ" . "hya") ("ひぇ" . "hye") ("ひぃ" . "hyi") ("ひ" . "hi") ("ぱ" . "pa") ("ば" . "ba") ("は" . "ha") ("の" . "no") ("ね" . "ne") ("ぬ" . "nu") ("にょ" . "nyo") ("にゅ" . "nyu") ("にゃ" . "nya") ("にぇ" . "nye") ("にぃ" . "nyi") ("に" . "ni") ("な" . "na") ("ど" . "do") ("とぅ" . "tu") ("と" . "to") ("でぃ" . "di") ("で" . "de") ("てぃ" . "ti") ("て" . "te") ("づぉ" . "dzo") ("づぇ" . "dze") ("づぃ" . "dzi") ("づぁ" . "dza") ("づ" . "dzu") ("つぉ" . "tso") ("つぇ" . "tse") ("つぃ" . "tsi") ("つぁ" . "tsa") ("つ" . "tsu") ("っヴぉ" . "vvo") ("っヴぇ" . "vve") ("っヴぃ" . "vvi") ("っヴぁ" . "vva") ("っヴ" . "vvu") ("っを" . "wwo") ("っゑ" . "wwe") ("っゐ" . "wwi") ("っわ" . "wwa") ("っろ" . "rro") ("っれ" . "rre") ("っる" . "rru") ("っりょ" . "rryo") ("っりゅ" . "rryu") ("っりゃ" . "rrya") ("っりぇ" . "rrye") ("っりぃ" . "rryi") ("っり" . "rri") ("っら" . "rra") ("っよ" . "yyo") ("っゆ" . "yyu") ("っや" . "yya") ("っも" . "mmo") ("っめ" . "mme") ("っむ" . "mmu") ("っみょ" . "mmyo") ("っみゅ" . "mmyu") ("っみゃ" . "mmya") ("っみぇ" . "mmye") ("っみぃ" . "mmyi") ("っみ" . "mmi") ("っま" . "mma") ("っぽ" . "ppo") ("っぼ" . "bbo") ("っほ" . "hho") ("っぺ" . "ppe") ("っべ" . "bbe") ("っへ" . "hhe") ("っぷぉ" . "ppfo") ("っぷぇ" . "ppfe") ("っぷぃ" . "ppfi") ("っぷぁ" . "ppfa") ("っぷ" . "ppu") ("っぶ" . "bbu") ("っふぉ" . "ffo") ("っふぇ" . "ffe") ("っふぃ" . "ffi") ("っふぁ" . "ffa") ("っふ" . "ffu") ("っぴょ" . "ppyo") ("っぴゅ" . "ppyu") ("っぴゃ" . "ppya") ("っぴぇ" . "ppye") ("っぴぃ" . "ppyi") ("っぴ" . "ppi") ("っびょ" . "bbyo") ("っびゅ" . "bbyu") ("っびゃ" . "bbya") ("っびぇ" . "bbye") ("っびぃ" . "bbyi") ("っび" . "bbi") ("っひょ" . "hhyo") ("っひゅ" . "hhyu") ("っひゃ" . "hhya") ("っひぇ" . "hhye") ("っひぃ" . "hhyi") ("っひ" . "hhi") ("っぱ" . "ppa") ("っば" . "bba") ("っは" . "hha") ("っにょ" . "nnyo") ("っにゅ" . "nnyu") ("っにゃ" . "nnya") ("っにぇ" . "nnye") ("っにぃ" . "nnyi") ("っど" . "ddo") ("っとぅ" . "ttu") ("っと" . "tto") ("っでぃ" . "ddi") ("っで" . "dde") ("ってぃ" . "tti") ("って" . "tte") ("っづぉ" . "ddzo") ("っづぇ" . "ddze") ("っづぃ" . "ddzi") ("っづぁ" . "ddza") ("っづ" . "ddzu") ("っつぉ" . "ttso") ("っつぇ" . "ttse") ("っつぃ" . "ttsi") ("っつぁ" . "ttsa") ("っつ" . "ttsu") ("っぢょ" . "ddjo") ("っぢゅ" . "ddju") ("っぢゃ" . "ddja") ("っぢぇ" . "ddje") ("っぢ" . "ddji") ("っちょ" . "ccho") ("っちゅ" . "cchu") ("っちゃ" . "ccha") ("っちぇ" . "cche") ("っち" . "cchi") ("っだ" . "dda") ("った" . "tta") ("っぞ" . "zzo") ("っそ" . "sso") ("っぜ" . "zze") ("っせ" . "sse") ("っず" . "zzu") ("っす" . "ssu") ("っじょ" . "jjo") ("っじゅ" . "jju") ("っじゃ" . "jja") ("っじぇ" . "jje") ("っじ" . "zzi") ("っじ" . "jji") ("っしょ" . "ssho") ("っしゅ" . "sshu") ("っしゃ" . "ssha") ("っしぇ" . "sshe") ("っし" . "sshi") ("っざ" . "zza") ("っさ" . "ssa") ("っご" . "ggo") ("っこ" . "kko") ("っげ" . "gge") ("っけ" . "kke") ("っぐ" . "ggu") ("っく" . "kku") ("っぎょ" . "ggyo") ("っぎゅ" . "ggyu") ("っぎゃ" . "ggya") ("っぎぇ" . "ggye") ("っぎぃ" . "ggyi") ("っぎ" . "ggi") ("っきょ" . "kkyo") ("っきゅ" . "kkyu") ("っきゃ" . "kkya") ("っきぇ" . "kkye") ("っきぃ" . "kkyi") ("っき" . "kki") ("っが" . "gga") ("っか" . "kka") ("っう" . "wwu") ("っいぇ" . "yye") ("っい" . "yyi") ("っ" . "q") ("ぢょ" . "djo") ("ぢゅ" . "dju") ("ぢゃ" . "dja") ("ぢぇ" . "dje") ("ぢ" . "dji") ("ちょ" . "cho") ("ちゅ" . "chu") ("ちゃ" . "cha") ("ちぇ" . "che") ("ち" . "chi") ("だ" . "da") ("た" . "ta") ("ぞ" . "zo") ("そ" . "so") ("ぜ" . "ze") ("せ" . "se") ("ず" . "zu") ("す" . "su") ("じょ" . "jo") ("じゅ" . "ju") ("じゃ" . "ja") ("じぇ" . "je") ("じ" . "zi") ("じ" . "ji") ("しょ" . "sho") ("しゅ" . "shu") ("しゃ" . "sha") ("しぇ" . "she") ("し" . "shi") ("ざ" . "za") ("さ" . "sa") ("ご" . "go") ("こ" . "ko") ("げ" . "ge") ("け" . "ke") ("ぐ" . "gu") ("く" . "ku") ("ぎょ" . "gyo") ("ぎゅ" . "gyu") ("ぎゃ" . "gya") ("ぎぇ" . "gye") ("ぎぃ" . "gyi") ("ぎ" . "gi") ("きょ" . "kyo") ("きゅ" . "kyu") ("きゃ" . "kya") ("きぇ" . "kye") ("きぃ" . "kyi") ("き" . "ki") ("が" . "ga") ("か" . "ka") ("お" . "o") ("え" . "e") ("う" . "u") ("いぇ" . "ye") ("い" . "i") ("あ" . "a") )) (defun hiragana-to-roman-translate-string (str &optional table) (or table (setq table (symbol-value (intern (concat (symbol-name kana-to-roman-translate-table) "-kana-to-roman-translation-rule-alist")) ))) (let (ret dest) (while (setq ret (roman-to-kana-string-1 str table)) (setq dest (concat dest (car ret))) (setq str (cdr ret)) ) (concat dest str) )) (defun hiragana-to-roman-translate-region (start end) (save-excursion (let ((str (buffer-substring start end))) (delete-region start end) (goto-char start) (insert (hiragana-to-roman-translate-string str)) ))) ;;; @ end ;;; (provide 'kana-to-roman) (run-hooks 'kana-to-roman-load-hook) ;;; kana-to-roman.el ends here