summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/tts/android/jar/src/org/qtproject/qt5/android/speech/QtTextToSpeech.java11
-rw-r--r--src/plugins/tts/android/src/qtexttospeech_android.cpp7
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();
}