diff options
author | nille <nmeyering@gmail.com> | 2009-02-21 14:41:03 +0100 |
---|---|---|
committer | nille <nmeyering@gmail.com> | 2009-02-21 14:41:03 +0100 |
commit | b57bdd6a96e07c3871a86e928f6cf7b40d3d0880 (patch) | |
tree | 0fdffd5d799b1886c7400413081a48e6634eeacb /kana2romaji.cpp | |
parent | ad579827af1a7b027f7991efe2f27fd80c4244db (diff) | |
parent | ed9639977caa958ffd6008dfe14fa3b1795368ce (diff) |
Merge branch 'master' of git://timeoutd.org/jmdict
Diffstat (limited to 'kana2romaji.cpp')
-rw-r--r-- | kana2romaji.cpp | 68 |
1 files changed, 37 insertions, 31 deletions
diff --git a/kana2romaji.cpp b/kana2romaji.cpp index 931c09a..a51b7ec 100644 --- a/kana2romaji.cpp +++ b/kana2romaji.cpp @@ -218,7 +218,7 @@ void initRomaji() { romaji["プ"] = "pu"; romaji["ペ"] = "pe"; romaji["ポ"] = "po"; - romaji["ー"] = ""; + romaji["・"] = " "; // -- double width letters ------ romaji["A"] = "A"; @@ -292,9 +292,7 @@ void initRomaji() { romaji["$"] = "$"; romaji["%"] = "%"; romaji["&"] = "&"; - romaji["'"] = "'"; // TODO: - romaji["("] = "("; - romaji[")"] = ")"; + romaji["'"] = "'"; romaji["*"] = "*"; romaji["+"] = "+"; romaji[","] = ","; @@ -310,27 +308,29 @@ void initRomaji() { romaji["?"] = "?"; romaji["@"] = "@"; + romaji["〔"] = "("; + romaji["〕"] = ")"; + romaji["("] = "("; + romaji[")"] = ")"; romaji["["] = "["; - romaji["\"] = "\\"; romaji["]"] = "]"; + romaji["【"] = "["; + romaji["】"] = "]"; + romaji["{"] = "{"; + romaji["}"] = "}"; + romaji["\"] = "\\"; romaji["^"] = "^"; romaji["_"] = "_"; romaji["`"] = "`"; - - romaji["{"] = "{"; romaji["|"] = "|"; - romaji["}"] = "}"; romaji["~"] = "~"; - - - // don't know where those belong to + romaji["ー"] = "-"; + romaji["。"] = "."; + romaji["、"] = ","; romaji["〜"] = "~"; - romaji["、"] = ","; // TODO: romaji["−"] = "-"; - - romaji[" "] = " "; romaji["―"] = "-"; - romaji["・"] = "-"; // FIXME + romaji[" "] = " "; } void remove_quote_1( @@ -375,7 +375,7 @@ void kana2romaji(const string& kana, string& rom) { pred == "dzi" ) { remove_quote_1(pos, rom); - continue; + pos -= 2; } } else if (pos > 1) { @@ -395,33 +395,39 @@ void kana2romaji(const string& kana, string& rom) { // shorten "ji\1y" to "j" // otherwise remove "\1" and the preceding character // but not the y - rom.erase( - pos - 1, - (pos + 1 < rom.size() - && rom[pos + 1] == 'y' - && pred[0] == 'j') - ? 3 - : 2); - - continue; + rom.erase( + pos - 1, + (pos + 1 < rom.size() + && rom[pos + 1] == 'y' + && pred[0] == 'j') + ? 3 + : 2); + pos -= 2; } - - if(pred == "fu" || + else if( + pred == "fu" || pred == "de" || pred == "te" || pred == "vu") { remove_quote_1(pos, rom); - continue; + pos -= 2; } } else { - cout << "Encountered a placeholder at the beginning. Just removing it." << endl; rom.erase(pos); + --pos; } } - // FIXME! - else if (rom[pos] == '\2' && pos + 1 < rom.size()) + else if (rom[pos] == '\2') + { + if(pos + 1 < rom.size()) rom[pos] = rom[pos + 1]; + else + { + rom.erase(pos); + --pos; + } + } } |