diff options
-rw-r--r-- | backends/text-to-speech/linux/linux-text-to-speech.cpp | 6 | ||||
-rw-r--r-- | gui/widget.cpp | 4 |
2 files changed, 6 insertions, 4 deletions
diff --git a/backends/text-to-speech/linux/linux-text-to-speech.cpp b/backends/text-to-speech/linux/linux-text-to-speech.cpp index 3445ca972a..9f330bc997 100644 --- a/backends/text-to-speech/linux/linux-text-to-speech.cpp +++ b/backends/text-to-speech/linux/linux-text-to-speech.cpp @@ -31,6 +31,8 @@ #include "common/translation.h" #include "common/debug.h" #include "common/system.h" +#include "common/ustr.h" +#include "common/config-manager.h" SPDConnection *_connection; void speech_begin_callback(size_t msg_id, size_t client_id, SPDNotificationType state){ @@ -104,6 +106,10 @@ void LinuxTextToSpeechManager::updateState(LinuxTextToSpeechManager::SpeechState bool LinuxTextToSpeechManager::say(Common::String str) { if (_speechState == BROKEN) return true; + //Convert string, that might have foreign characters to UTF-8 + if (ConfMan.get("gui_language") != "C") { + str = Common::convertUtf32ToUtf8(Common::convertToU32String(str.c_str(), Common::kWindows1250)).c_str(); + } if (isSpeaking()) stop(); debug("say: %s", str.c_str()); diff --git a/gui/widget.cpp b/gui/widget.cpp index 1a3986ef43..d02d64fbeb 100644 --- a/gui/widget.cpp +++ b/gui/widget.cpp @@ -258,10 +258,6 @@ Common::String Widget::cleanupHotkey(const Common::String &label) { void Widget::read(Common::String str) { #ifdef USE_TTS -#if defined(USE_LINUX_TTS) && defined(USE_TRANSLATION) - if (ConfMan.get("gui_language") != "C") - return; -#endif if (ConfMan.hasKey("tts_enabled", "scummvm") && ConfMan.getBool("tts_enabled", "scummvm")) { int volume = (ConfMan.getInt("speech_volume", "scummvm") * 100) / 256; |