Feature - Japan

This commit is contained in:
madwasp79 2019-01-25 18:00:53 +02:00
parent 6ccc7b5097
commit 0377b79177
2 changed files with 154 additions and 0 deletions

View file

@ -42,6 +42,7 @@ import android.view.ViewParent;
import android.view.inputmethod.InputMethodManager;
import android.widget.TextView;
import java.lang.Character.UnicodeBlock;
import net.osmand.plus.R;
import net.osmand.plus.download.DownloadActivity;
@ -514,4 +515,12 @@ public class AndroidUtils {
}
return result;
}
public static boolean checkIfKana(String string) {
boolean isKana = false;
for (char c : string.toCharArray()) {
isKana = UnicodeBlock.of(c) == UnicodeBlock.KATAKANA;
}
return isKana;
}
}

View file

@ -0,0 +1,145 @@
package net.osmand.plus;
import java.util.HashMap;
import java.util.Map;
public class KanaToRomaji {
Map<String, String> m = new HashMap<String, String>();
// Constructor
public KanaToRomaji() {
m.put("", "a");
m.put("", "i");
m.put("", "u");
m.put("", "e");
m.put("", "o");
m.put("", "ka");
m.put("", "ki");
m.put("", "ku");
m.put("", "ke");
m.put("", "ko");
m.put("", "sa");
m.put("", "shi");
m.put("", "su");
m.put("", "se");
m.put("", "so");
m.put("", "ta");
m.put("", "chi");
m.put("", "tsu");
m.put("", "te");
m.put("", "to");
m.put("", "na");
m.put("", "ni");
m.put("", "nu");
m.put("", "ne");
m.put("", "no");
m.put("", "ha");
m.put("", "hi");
m.put("", "fu");
m.put("", "he");
m.put("", "ho");
m.put("", "ma");
m.put("", "mi");
m.put("", "mu");
m.put("", "me");
m.put("", "mo");
m.put("", "ya");
m.put("", "yu");
m.put("", "yo");
m.put("", "ra");
m.put("", "ri");
m.put("", "ru");
m.put("", "re");
m.put("", "ro");
m.put("", "wa");
m.put("", "wo");
m.put("", "n");
m.put("", "ga");
m.put("", "gi");
m.put("", "gu");
m.put("", "ge");
m.put("", "go");
m.put("", "za");
m.put("", "ji");
m.put("", "zu");
m.put("", "ze");
m.put("", "zo");
m.put("", "da");
m.put("", "ji");
m.put("", "zu");
m.put("", "de");
m.put("", "do");
m.put("", "ba");
m.put("", "bi");
m.put("", "bu");
m.put("", "be");
m.put("", "bo");
m.put("", "pa");
m.put("", "pi");
m.put("", "pu");
m.put("", "pe");
m.put("", "po");
m.put("キャ", "kya");
m.put("キュ", "kyu");
m.put("キョ", "kyo");
m.put("シャ", "sha");
m.put("シュ", "shu");
m.put("ショ", "sho");
m.put("チャ", "cha");
m.put("チュ", "chu");
m.put("チョ", "cho");
m.put("ニャ", "nya");
m.put("ニュ", "nyu");
m.put("ニョ", "nyo");
m.put("ヒャ", "hya");
m.put("ヒュ", "hyu");
m.put("ヒョ", "hyo");
m.put("リャ", "rya");
m.put("リュ", "ryu");
m.put("リョ", "ryo");
m.put("ギャ", "gya");
m.put("ギュ", "gyu");
m.put("ギョ", "gyo");
m.put("ジャ", "ja");
m.put("ジュ", "ju");
m.put("ジョ", "jo");
m.put("ティ", "ti");
m.put("ディ", "di");
m.put("ツィ", "tsi");
m.put("ヂャ", "dya");
m.put("ヂュ", "dyu");
m.put("ヂョ", "dyo");
m.put("ビャ", "bya");
m.put("ビュ", "byu");
m.put("ビョ", "byo");
m.put("ピャ", "pya");
m.put("ピュ", "pyu");
m.put("ピョ", "pyo");
m.put("", "-");
}
public String convert(String s) {
StringBuilder t = new StringBuilder();
for (int i = 0; i < s.length(); i++) {
if (i <= s.length() - 2) {
if (m.containsKey(s.substring(i, i + 2))) {
t.append(m.get(s.substring(i, i + 2)));
i++;
} else if (m.containsKey(s.substring(i, i + 1))) {
t.append(m.get(s.substring(i, i + 1)));
} else if (s.charAt(i) == 'ッ') {
t.append(m.get(s.substring(i + 1, i + 2)).charAt(0));
} else {
t.append(s.charAt(i));
}
} else {
if (m.containsKey(s.substring(i, i + 1))) {
t.append(m.get(s.substring(i, i + 1)));
} else {
t.append(s.charAt(i));
}
}
}
return t.toString();
}
}