From afb81937a7df686f63cebaecfbc9e736f34f3608 Mon Sep 17 00:00:00 2001 From: Max Staudt Date: Tue, 28 Dec 2021 03:21:47 +0100 Subject: [PATCH] Interpret Latin input as both Romaji and English This allows jmdict to be fed any input and autodetecting the intended translation direction, similar to Sumatora on Android. Whether English, Romaji, Kana, or Kanji - it will simply do The Right Thing To Do(TM): UTF8 input -> Japanese->English Non-UTF8 input -> Romaji->English, plus English->Japanese --- jmdict.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/jmdict.cpp b/jmdict.cpp index efbb705..2364ab5 100644 --- a/jmdict.cpp +++ b/jmdict.cpp @@ -161,7 +161,8 @@ void guessLanguage(const std::string& subject) { if (options::source == options::JAPANESE && !isUTF8) options::source = options::JAPANESE_ROMAJI; else if (options::source == options::UNKNOWN) - options::source = isUTF8 ? options::JAPANESE : options::NOT_JAPANESE; + // options::source = isUTF8 ? options::JAPANESE : options::NOT_JAPANESE; + options::source = isUTF8 ? options::JAPANESE : options::UNKNOWN; } int main(int argc, char** argv) @@ -180,8 +181,12 @@ try { fromJapanese(subject); else if (options::source == options::JAPANESE_ROMAJI) fromRomaji(subject); - else + else if (options::source == options::NOT_JAPANESE) + toJapanese(subject); + else { + fromRomaji(subject); toJapanese(subject); + } cout << entries << " match(es) found." << endl; return EXIT_SUCCESS; -- 2.30.2