Home | History | Annotate | Download | only in JAJP
      1 /*
      2  * Copyright (C) 2008,2009  OMRON SOFTWARE Co., Ltd.
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package jp.co.omronsoft.openwnn.JAJP;
     18 
     19 import jp.co.omronsoft.openwnn.*;
     20 import java.util.HashMap;
     21 import android.content.SharedPreferences;
     22 
     23 /**
     24  * The Romaji to half-width Kataka converter class for Japanese IME.
     25  *
     26  * @author Copyright (C) 2009 OMRON SOFTWARE CO., LTD.  All Rights Reserved.
     27  */
     28 public class RomkanHalfKatakana implements LetterConverter {
     29     /** HashMap for Romaji-to-Kana conversion (Japanese mode) */
     30     private static final HashMap<String, String> mRomkanTable = new HashMap<String, String>() {{
     31         put("la", "\uff67");         put("xa", "\uff67");         put("a", "\uff71");
     32         put("li", "\uff68");         put("lyi", "\uff68");        put("xi", "\uff68");
     33         put("xyi", "\uff68");        put("i", "\uff72");          put("yi", "\uff72");
     34         put("ye", "\uff72\uff6a");        put("lu", "\uff69");         put("xu", "\uff69");
     35         put("u", "\uff73");          put("whu", "\uff73");        put("wu", "\uff73");
     36         put("wha", "\uff73\uff67");       put("whi", "\uff73\uff68");       put("wi", "\uff73\uff68");
     37         put("we", "\uff73\uff6a");        put("whe", "\uff73\uff6a");       put("who", "\uff73\uff6b");
     38         put("le", "\uff6a");         put("lye", "\uff6a");        put("xe", "\uff6a");
     39         put("xye", "\uff6a");        put("e", "\uff74");          put("lo", "\uff6b");
     40         put("xo", "\uff6b");         put("o", "\uff75");          put("ca", "\uff76");
     41         put("ka", "\uff76");         put("ga", "\uff76\uff9e");        put("ki", "\uff77");
     42         put("kyi", "\uff77\uff68");       put("kye", "\uff77\uff6a");       put("kya", "\uff77\uff6c");
     43         put("kyu", "\uff77\uff6d");       put("kyo", "\uff77\uff6e");       put("gi", "\uff77\uff9e");
     44         put("gyi", "\uff77\uff9e\uff68");      put("gye", "\uff77\uff9e\uff6a");      put("gya", "\uff77\uff9e\uff6c");
     45         put("gyu", "\uff77\uff9e\uff6d");      put("gyo", "\uff77\uff9e\uff6e");      put("cu", "\uff78");
     46         put("ku", "\uff78");         put("qu", "\uff78");         put("kwa", "\uff78\uff67");
     47         put("qa", "\uff78\uff67");        put("qwa", "\uff78\uff67");       put("qi", "\uff78\uff68");
     48         put("qwi", "\uff78\uff68");       put("qyi", "\uff78\uff68");       put("qwu", "\uff78\uff69");
     49         put("qe", "\uff78\uff6a");        put("qwe", "\uff78\uff6a");       put("qye", "\uff78\uff6a");
     50         put("qo", "\uff78\uff6b");        put("qwo", "\uff78\uff6b");       put("qya", "\uff78\uff6c");
     51         put("qyu", "\uff78\uff6d");       put("qyo", "\uff78\uff6e");       put("gu", "\uff78\uff9e");
     52         put("gwa", "\uff78\uff9e\uff67");      put("gwi", "\uff78\uff9e\uff68");      put("gwu", "\uff78\uff9e\uff69");
     53         put("gwe", "\uff78\uff9e\uff6a");      put("gwo", "\uff78\uff9e\uff6b");      put("ke", "\uff79");
     54         put("ge", "\uff79\uff9e");        put("co", "\uff7a");         put("ko", "\uff7a");
     55         put("go", "\uff7a\uff9e");        put("sa", "\uff7b");         put("za", "\uff7b\uff9e");
     56         put("ci", "\uff7c");         put("shi", "\uff7c");        put("si", "\uff7c");
     57         put("syi", "\uff7c\uff68");       put("she", "\uff7c\uff6a");       put("sye", "\uff7c\uff6a");
     58         put("sha", "\uff7c\uff6c");       put("sya", "\uff7c\uff6c");       put("shu", "\uff7c\uff6d");
     59         put("syu", "\uff7c\uff6d");       put("sho", "\uff7c\uff6e");       put("syo", "\uff7c\uff6e");
     60         put("ji", "\uff7c\uff9e");        put("zi", "\uff7c\uff9e");        put("jyi", "\uff7c\uff9e\uff68");
     61         put("zyi", "\uff7c\uff9e\uff68");      put("je", "\uff7c\uff9e\uff6a");       put("jye", "\uff7c\uff9e\uff6a");
     62         put("zye", "\uff7c\uff9e\uff6a");      put("ja", "\uff7c\uff9e\uff6c");       put("jya", "\uff7c\uff9e\uff6c");
     63         put("zya", "\uff7c\uff9e\uff6c");      put("ju", "\uff7c\uff9e\uff6d");       put("jyu", "\uff7c\uff9e\uff6d");
     64         put("zyu", "\uff7c\uff9e\uff6d");      put("jo", "\uff7c\uff9e\uff6e");       put("jyo", "\uff7c\uff9e\uff6e");
     65         put("zyo", "\uff7c\uff9e\uff6e");      put("su", "\uff7d");         put("swa", "\uff7d\uff67");
     66         put("swi", "\uff7d\uff68");       put("swu", "\uff7d\uff69");       put("swe", "\uff7d\uff6a");
     67         put("swo", "\uff7d\uff6b");       put("zu", "\uff7d\uff9e");        put("ce", "\uff7e");
     68         put("se", "\uff7e");         put("ze", "\uff7e\uff9e");        put("so", "\uff7f");
     69         put("zo", "\uff7f\uff9e");        put("ta", "\uff80");         put("da", "\uff80\uff9e");
     70         put("chi", "\uff81");        put("ti", "\uff81");         put("cyi", "\uff81\uff68");
     71         put("tyi", "\uff81\uff68");       put("che", "\uff81\uff6a");       put("cye", "\uff81\uff6a");
     72         put("tye", "\uff81\uff6a");       put("cha", "\uff81\uff6c");       put("cya", "\uff81\uff6c");
     73         put("tya", "\uff81\uff6c");       put("chu", "\uff81\uff6d");       put("cyu", "\uff81\uff6d");
     74         put("tyu", "\uff81\uff6d");       put("cho", "\uff81\uff6e");       put("cyo", "\uff81\uff6e");
     75         put("tyo", "\uff81\uff6e");       put("di", "\uff81\uff9e");        put("dyi", "\uff81\uff9e\uff68");
     76         put("dye", "\uff81\uff9e\uff6a");      put("dya", "\uff81\uff9e\uff6c");      put("dyu", "\uff81\uff9e\uff6d");
     77         put("dyo", "\uff81\uff9e\uff6e");      put("ltsu", "\uff6f");       put("ltu", "\uff6f");
     78         put("xtu", "\uff6f");        put("", "\uff6f");           put("tsu", "\uff82");
     79         put("tu", "\uff82");         put("tsa", "\uff82\uff67");       put("tsi", "\uff82\uff68");
     80         put("tse", "\uff82\uff6a");       put("tso", "\uff82\uff6b");       put("du", "\uff82\uff9e");
     81         put("te", "\uff83");         put("thi", "\uff83\uff68");       put("the", "\uff83\uff6a");
     82         put("tha", "\uff83\uff6c");       put("thu", "\uff83\uff6d");       put("tho", "\uff83\uff6e");
     83         put("de", "\uff83\uff9e");        put("dhi", "\uff83\uff9e\uff68");      put("dhe", "\uff83\uff9e\uff6a");
     84         put("dha", "\uff83\uff9e\uff6c");      put("dhu", "\uff83\uff9e\uff6d");      put("dho", "\uff83\uff9e\uff6e");
     85         put("to", "\uff84");         put("twa", "\uff84\uff67");       put("twi", "\uff84\uff68");
     86         put("twu", "\uff84\uff69");       put("twe", "\uff84\uff6a");       put("two", "\uff84\uff6b");
     87         put("do", "\uff84\uff9e");        put("dwa", "\uff84\uff9e\uff67");      put("dwi", "\uff84\uff9e\uff68");
     88         put("dwu", "\uff84\uff9e\uff69");      put("dwe", "\uff84\uff9e\uff6a");      put("dwo", "\uff84\uff9e\uff6b");
     89         put("na", "\uff85");         put("ni", "\uff86");         put("nyi", "\uff86\uff68");
     90         put("nye", "\uff86\uff6a");       put("nya", "\uff86\uff6c");       put("nyu", "\uff86\uff6d");
     91         put("nyo", "\uff86\uff6e");       put("nu", "\uff87");         put("ne", "\uff88");
     92         put("no", "\uff89");         put("ha", "\uff8a");         put("ba", "\uff8a\uff9e");
     93         put("pa", "\uff8a\uff9f");        put("hi", "\uff8b");         put("hyi", "\uff8b\uff68");
     94         put("hye", "\uff8b\uff6a");       put("hya", "\uff8b\uff6c");       put("hyu", "\uff8b\uff6d");
     95         put("hyo", "\uff8b\uff6e");       put("bi", "\uff8b\uff9e");        put("byi", "\uff8b\uff9e\uff68");
     96         put("bye", "\uff8b\uff9e\uff6a");      put("bya", "\uff8b\uff9e\uff6c");      put("byu", "\uff8b\uff9e\uff6d");
     97         put("byo", "\uff8b\uff9e\uff6e");      put("pi", "\uff8b\uff9f");        put("pyi", "\uff8b\uff9f\uff68");
     98         put("pye", "\uff8b\uff9f\uff6a");      put("pya", "\uff8b\uff9f\uff6c");      put("pyu", "\uff8b\uff9f\uff6d");
     99         put("pyo", "\uff8b\uff9f\uff6e");      put("fu", "\uff8c");         put("hu", "\uff8c");
    100         put("fa", "\uff8c\uff67");        put("fwa", "\uff8c\uff67");       put("fi", "\uff8c\uff68");
    101         put("fwi", "\uff8c\uff68");       put("fyi", "\uff8c\uff68");       put("fwu", "\uff8c\uff69");
    102         put("fe", "\uff8c\uff6a");        put("fwe", "\uff8c\uff6a");       put("fye", "\uff8c\uff6a");
    103         put("fo", "\uff8c\uff6b");        put("fwo", "\uff8c\uff6b");       put("fya", "\uff8c\uff6c");
    104         put("fyu", "\uff8c\uff6d");       put("fyo", "\uff8c\uff6e");       put("bu", "\uff8c\uff9e");
    105         put("pu", "\uff8c\uff9f");        put("he", "\uff8d");         put("be", "\uff8d\uff9e");
    106         put("pe", "\uff8d\uff9f");        put("ho", "\uff8e");         put("bo", "\uff8e\uff9e");
    107         put("po", "\uff8e\uff9f");        put("ma", "\uff8f");         put("mi", "\uff90");
    108         put("myi", "\uff90\uff68");       put("mye", "\uff90\uff6a");       put("mya", "\uff90\uff6c");
    109         put("myu", "\uff90\uff6d");       put("myo", "\uff90\uff6e");       put("mu", "\uff91");
    110         put("me", "\uff92");         put("mo", "\uff93");         put("lya", "\uff6c");
    111         put("xya", "\uff6c");        put("ya", "\uff94");         put("lyu", "\uff6d");
    112         put("xyu", "\uff6d");        put("yu", "\uff95");         put("lyo", "\uff6e");
    113         put("xyo", "\uff6e");        put("yo", "\uff96");         put("ra", "\uff97");
    114         put("ri", "\uff98");         put("ryi", "\uff98\uff68");       put("rye", "\uff98\uff6a");
    115         put("rya", "\uff98\uff6c");       put("ryu", "\uff98\uff6d");       put("ryo", "\uff98\uff6e");
    116         put("ru", "\uff99");         put("re", "\uff9a");         put("ro", "\uff9b");
    117         put("lwa", "\uff9c");        put("xwa", "\uff9c");        put("wa", "\uff9c");
    118         put("wo", "\uff66");         put("nn", "\uff9d");         put("xn", "\uff9d");
    119         put("vu", "\uff73\uff9e");        put("va", "\uff73\uff9e\uff67");       put("vi", "\uff73\uff9e\uff68");
    120         put("vyi", "\uff73\uff9e\uff68");      put("ve", "\uff73\uff9e\uff6a");       put("vye", "\uff73\uff9e\uff6a");
    121         put("vo", "\uff73\uff9e\uff6b");       put("vya", "\uff73\uff9e\uff6c");      put("vyu", "\uff73\uff9e\uff6d");
    122         put("vyo", "\uff73\uff9e\uff6e");
    123         put("bb", "\uff6fb");        put("cc", "\uff6fc");        put("dd", "\uff6fd");
    124         put("ff", "\uff6ff");        put("gg", "\uff6fg");        put("hh", "\uff6fh");
    125         put("jj", "\uff6fj");        put("kk", "\uff6fk");        put("ll", "\uff6fl");
    126         put("mm", "\uff6fm");        put("pp", "\uff6fp");        put("qq", "\uff6fq");
    127         put("rr", "\uff6fr");        put("ss", "\uff6fs");        put("tt", "\uff6ft");
    128         put("vv", "\uff6fv");        put("ww", "\uff6fw");        put("xx", "\uff6fx");
    129         put("yy", "\uff6fy");        put("zz", "\uff6fz");        put("nb", "\uff9db");
    130         put("nc", "\uff9dc");        put("nd", "\uff9dd");        put("nf", "\uff9df");
    131         put("ng", "\uff9dg");        put("nh", "\uff9dh");        put("nj", "\uff9dj");
    132         put("nk", "\uff9dk");        put("nm", "\uff9dm");        put("np", "\uff9dp");
    133         put("nq", "\uff9dq");        put("nr", "\uff9dr");        put("ns", "\uff9ds");
    134         put("nt", "\uff9dt");        put("nv", "\uff9dv");        put("nw", "\uff9dw");
    135         put("nx", "\uff9dx");        put("nz", "\uff9dz");        put("nl", "\uff9dl");
    136         put("-", "\uff70"); put(".", "\uff61"); put(",", "\uff64"); put("/", "\uff65");
    137     }};
    138 
    139     /**
    140      * Default constructor
    141      */
    142     public RomkanHalfKatakana() {
    143         super();
    144     }
    145 
    146     /** @see LetterConverter#convert */
    147     public boolean convert(ComposingText text) {
    148         return RomkanFullKatakana.convert(text, mRomkanTable);
    149     }
    150 
    151     /** @see LetterConverter#setPreferences */
    152     public void setPreferences(SharedPreferences pref) {}
    153 }
    154