diff --git a/app/src/main/java/com/bnyro/translate/api/deepl/DeeplEngine.kt b/app/src/main/java/com/bnyro/translate/api/deepl/DeeplEngine.kt index d0e8ceabb..7d3209a32 100644 --- a/app/src/main/java/com/bnyro/translate/api/deepl/DeeplEngine.kt +++ b/app/src/main/java/com/bnyro/translate/api/deepl/DeeplEngine.kt @@ -104,11 +104,16 @@ class DeeplEngine : TranslationEngine( } override suspend fun translate(query: String, source: String, target: String): Translation { + val convertedTarget = when(target){ + "zh-Hant", "zh-Hans" -> "zh" + else -> target + } + if (getApiKey().isNotEmpty()) { val response = api.translate( apiKeyString, sourceOrAuto(source.uppercase()), - target.uppercase(), + convertedTarget.uppercase(), query ) @@ -130,7 +135,7 @@ class DeeplEngine : TranslationEngine( ), splitting = "newlines", lang = DeeplWebTranslationRequestParamsLang( - targetLang = target.uppercase(), + targetLang = convertedTarget.uppercase(), sourceLangUserSelected = sourceOrAuto(source.uppercase()).ifEmpty { "auto" }, preference = DeeplWebTranslationRequestParamsLangPreference( weight = emptyMap() diff --git a/app/src/main/java/com/bnyro/translate/api/gl/GlEngine.kt b/app/src/main/java/com/bnyro/translate/api/gl/GlEngine.kt index 87f7708ae..2cc166a86 100644 --- a/app/src/main/java/com/bnyro/translate/api/gl/GlEngine.kt +++ b/app/src/main/java/com/bnyro/translate/api/gl/GlEngine.kt @@ -260,8 +260,15 @@ class GlEngine : TranslationEngine( ).map { Language(it.first.trim(), it.second) } } + protected fun convertLanguageCode(languageCode: String): String { + return when(languageCode){ + "zh-Hant", "zh-Hans" -> "zh" + else -> languageCode + } + } + override suspend fun translate(query: String, source: String, target: String): Translation { - val translation = api.translate(source, target, query) + val translation = api.translate(convertLanguageCode(source), convertLanguageCode(target), query) return Translation(translation.translation) } } diff --git a/app/src/main/java/com/bnyro/translate/api/lv/LVEngine.kt b/app/src/main/java/com/bnyro/translate/api/lv/LVEngine.kt index 9e5a760bf..b97cbb823 100644 --- a/app/src/main/java/com/bnyro/translate/api/lv/LVEngine.kt +++ b/app/src/main/java/com/bnyro/translate/api/lv/LVEngine.kt @@ -46,10 +46,17 @@ class LVEngine : TranslationEngine( } } + protected fun convertLanguageCode(languageCode: String): String { + return when(languageCode){ + "zh-Hant", "zh-Hans" -> "zh" + else -> languageCode + } + } + override suspend fun translate(query: String, source: String, target: String): Translation { val response = api.translate( - sourceOrAuto(source), - target, + convertLanguageCode(sourceOrAuto(source)), + convertLanguageCode(target), query.replace("/", "") ) return Translation( diff --git a/app/src/main/java/com/bnyro/translate/api/mh/MhEngine.kt b/app/src/main/java/com/bnyro/translate/api/mh/MhEngine.kt index fa7142077..a6e77fcca 100644 --- a/app/src/main/java/com/bnyro/translate/api/mh/MhEngine.kt +++ b/app/src/main/java/com/bnyro/translate/api/mh/MhEngine.kt @@ -58,12 +58,20 @@ class MhEngine : TranslationEngine( .map { Language(it.id, it.name) } } + protected fun convertLanguageCode(languageCode: String): String { + return when(languageCode){ + "zh-Hant" -> "zh-TW" + "zh-Hans" -> "zh-CN" + else -> languageCode + } + } + override suspend fun translate(query: String, source: String, target: String): Translation { val response = api.translate( engine = getSelectedEngine(), - source = sourceOrAuto(source.take(2)), + source = convertLanguageCode(sourceOrAuto(source)), query = query, - target = target.take(2), + target = convertLanguageCode(target), ) return Translation( translatedText = response.translatedText, diff --git a/app/src/main/java/com/bnyro/translate/api/wm/WmEngine.kt b/app/src/main/java/com/bnyro/translate/api/wm/WmEngine.kt index fe22fbf04..820edb2b3 100644 --- a/app/src/main/java/com/bnyro/translate/api/wm/WmEngine.kt +++ b/app/src/main/java/com/bnyro/translate/api/wm/WmEngine.kt @@ -50,8 +50,15 @@ class WmEngine : TranslationEngine( } } + protected fun convertLanguageCode(languageCode: String): String { + return when(languageCode){ + "zh-Hant", "zh-Hans" -> "zh" + else -> languageCode + } + } + override suspend fun translate(query: String, source: String, target: String): Translation { - val response = api.translate(source, target, WmTranslationRequest(query)) + val response = api.translate(convertLanguageCode(source), convertLanguageCode(target), WmTranslationRequest(query)) return Translation(response.translation) } } \ No newline at end of file diff --git a/app/src/main/java/com/bnyro/translate/api/ya/YandexEngine.kt b/app/src/main/java/com/bnyro/translate/api/ya/YandexEngine.kt index e3f69541d..386135765 100644 --- a/app/src/main/java/com/bnyro/translate/api/ya/YandexEngine.kt +++ b/app/src/main/java/com/bnyro/translate/api/ya/YandexEngine.kt @@ -47,8 +47,17 @@ class YandexEngine : TranslationEngine( ).map { (key, value) -> Language(code = key, name = value) } } + protected fun convertLanguageCode(languageCode: String): String { + return when(languageCode){ + "zh-Hant", "zh-Hans" -> "zh" + else -> languageCode + } + } + override suspend fun translate(query: String, source: String, target: String): Translation { - val lang = if (source.isEmpty()) target else "$source-$target" + val convertedSource = convertLanguageCode(source) + val convertedTarget = convertLanguageCode(target) + val lang = if (convertedSource.isEmpty()) convertedTarget else "$convertedSource-$convertedTarget" val uuid = UUID.randomUUID().toString().replace("-", "") + "-0-0" val response = api.translate(lang, query, "android", uuid)