diff options
-rw-r--r-- | src/plugins/tts/android/jar/src/org/qtproject/qt5/android/speech/QtTextToSpeech.java | 11 | ||||
-rw-r--r-- | src/plugins/tts/android/src/qtexttospeech_android.cpp | 7 |
2 files changed, 15 insertions, 3 deletions
diff --git a/src/plugins/tts/android/jar/src/org/qtproject/qt5/android/speech/QtTextToSpeech.java b/src/plugins/tts/android/jar/src/org/qtproject/qt5/android/speech/QtTextToSpeech.java index b50d748..f6f440c 100644 --- a/src/plugins/tts/android/jar/src/org/qtproject/qt5/android/speech/QtTextToSpeech.java +++ b/src/plugins/tts/android/jar/src/org/qtproject/qt5/android/speech/QtTextToSpeech.java @@ -253,7 +253,16 @@ public class QtTextToSpeech public Locale getLocale() { //Log.d("QtTextToSpeech", "getLocale: " + mLocale); - return mTts.getLanguage(); + final Locale language = mTts.getLanguage(); + String languageCode = language.getLanguage(); + String countryCode = language.getCountry(); + + if (languageCode.equals(language.getISO3Language())) + languageCode = convertLanguageCodeThreeDigitToTwoDigit(languageCode); + if (countryCode.equals(language.getISO3Country())) + countryCode = convertCountryCodeThreeDigitToTwoDigit(countryCode); + + return new Locale(languageCode, countryCode); } public Object getVoice() diff --git a/src/plugins/tts/android/src/qtexttospeech_android.cpp b/src/plugins/tts/android/src/qtexttospeech_android.cpp index aaed7f1..76d6573 100644 --- a/src/plugins/tts/android/src/qtexttospeech_android.cpp +++ b/src/plugins/tts/android/src/qtexttospeech_android.cpp @@ -286,8 +286,11 @@ QLocale QTextToSpeechEngineAndroid::locale() const { auto locale = m_speech.callObjectMethod("getLocale", "()Ljava/util/Locale;"); if (locale.isValid()) { - auto localeName = locale.callObjectMethod<jstring>("toString").toString(); - return QLocale(localeName); + auto localeLanguage = locale.callObjectMethod<jstring>("getLanguage").toString(); + auto localeCountry = locale.callObjectMethod<jstring>("getCountry").toString(); + if (!localeCountry.isEmpty()) + localeLanguage += QString("_%1").arg(localeCountry).toUpper(); + return QLocale(localeLanguage); } return QLocale(); } |