summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kana2romaji.cpp31
1 files changed, 29 insertions, 2 deletions
diff --git a/kana2romaji.cpp b/kana2romaji.cpp
index 646e47c..7024f3f 100644
--- a/kana2romaji.cpp
+++ b/kana2romaji.cpp
@@ -374,7 +374,9 @@ void kana2romaji(const string& kana, string& rom) {
string const pred = rom.substr(pos - 3, 3);
if(pred == "chi" ||
pred == "shi" ||
- pred == "dzi"
+ pred == "dzi" ||
+ pred == "tsu" ||
+ pred == "shi"
) {
remove_quote_1(pos, rom);
pos -= 2;
@@ -416,6 +418,31 @@ void kana2romaji(const string& kana, string& rom) {
remove_quote_1(pos, rom);
pos -= 2;
}
+ else if(
+ pred == "su" ||
+ pred == "zu" ||
+ pred == "te" ||
+ pred == "de" ||
+ pred == "ku" ||
+ pred == "gu" ||
+ pred == "mu"
+ )
+ {
+ rom[pos - 1] = 'w';
+ rom.erase(pos);
+ }
+ else if(
+ pred == "to" ||
+ pred == "do"
+ )
+ {
+ rom[pos - 1] = 'h';
+ rom.erase(pos);
+ }
+ else
+ {
+ cout << "Encountered a special character in " << kana << " but don't know what to do with it.\n";
+ }
}
else
{
@@ -437,7 +464,7 @@ void kana2romaji(const string& kana, string& rom) {
{
if(pos == 0)
{
- cout << "ー is the first letter of a word. Don't know how to translate this.\n";
+ cout << "ー is the first letter of " << kana << ". Don't know how to translate this.\n";
rom.erase(pos);
--pos;
}