Skip to content

Commit bc17b94

Browse files
committed
Fix Apertium DeepL Glosbe Lingva Mozhi MinT Yandex Traditional/Simplified Chinese LanguageCode
1 parent 56ad926 commit bc17b94

File tree

6 files changed

+52
-9
lines changed

6 files changed

+52
-9
lines changed

app/src/main/java/com/bnyro/translate/api/deepl/DeeplEngine.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,16 @@ class DeeplEngine : TranslationEngine(
104104
}
105105

106106
override suspend fun translate(query: String, source: String, target: String): Translation {
107+
val convertedTarget = when(target){
108+
"zh-Hant", "zh-Hans" -> "zh"
109+
else -> target
110+
}
111+
107112
if (getApiKey().isNotEmpty()) {
108113
val response = api.translate(
109114
apiKeyString,
110115
sourceOrAuto(source.uppercase()),
111-
target.uppercase(),
116+
convertedTarget.uppercase(),
112117
query
113118
)
114119

@@ -130,7 +135,7 @@ class DeeplEngine : TranslationEngine(
130135
),
131136
splitting = "newlines",
132137
lang = DeeplWebTranslationRequestParamsLang(
133-
targetLang = target.uppercase(),
138+
targetLang = convertedTarget.uppercase(),
134139
sourceLangUserSelected = sourceOrAuto(source.uppercase()).ifEmpty { "auto" },
135140
preference = DeeplWebTranslationRequestParamsLangPreference(
136141
weight = emptyMap()

app/src/main/java/com/bnyro/translate/api/gl/GlEngine.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,15 @@ class GlEngine : TranslationEngine(
260260
).map { Language(it.first.trim(), it.second) }
261261
}
262262

263+
protected fun convertLanguageCode(languageCode: String): String {
264+
return when(languageCode){
265+
"zh-Hant", "zh-Hans" -> "zh"
266+
else -> languageCode
267+
}
268+
}
269+
263270
override suspend fun translate(query: String, source: String, target: String): Translation {
264-
val translation = api.translate(source, target, query)
271+
val translation = api.translate(convertLanguageCode(source), convertLanguageCode(target), query)
265272
return Translation(translation.translation)
266273
}
267274
}

app/src/main/java/com/bnyro/translate/api/lv/LVEngine.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,17 @@ class LVEngine : TranslationEngine(
4646
}
4747
}
4848

49+
protected fun convertLanguageCode(languageCode: String): String {
50+
return when(languageCode){
51+
"zh-Hant", "zh-Hans" -> "zh"
52+
else -> languageCode
53+
}
54+
}
55+
4956
override suspend fun translate(query: String, source: String, target: String): Translation {
5057
val response = api.translate(
51-
sourceOrAuto(source),
52-
target,
58+
convertLanguageCode(sourceOrAuto(source)),
59+
convertLanguageCode(target),
5360
query.replace("/", "")
5461
)
5562
return Translation(

app/src/main/java/com/bnyro/translate/api/mh/MhEngine.kt

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,20 @@ class MhEngine : TranslationEngine(
5858
.map { Language(it.id, it.name) }
5959
}
6060

61+
protected fun convertLanguageCode(languageCode: String): String {
62+
return when(languageCode){
63+
"zh-Hant" -> "zh-TW"
64+
"zh-Hans" -> "zh-CN"
65+
else -> languageCode
66+
}
67+
}
68+
6169
override suspend fun translate(query: String, source: String, target: String): Translation {
6270
val response = api.translate(
6371
engine = getSelectedEngine(),
64-
source = sourceOrAuto(source.take(2)),
72+
source = convertLanguageCode(sourceOrAuto(source)),
6573
query = query,
66-
target = target.take(2),
74+
target = convertLanguageCode(target),
6775
)
6876
return Translation(
6977
translatedText = response.translatedText,

app/src/main/java/com/bnyro/translate/api/wm/WmEngine.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,15 @@ class WmEngine : TranslationEngine(
5050
}
5151
}
5252

53+
protected fun convertLanguageCode(languageCode: String): String {
54+
return when(languageCode){
55+
"zh-Hant", "zh-Hans" -> "zh"
56+
else -> languageCode
57+
}
58+
}
59+
5360
override suspend fun translate(query: String, source: String, target: String): Translation {
54-
val response = api.translate(source, target, WmTranslationRequest(query))
61+
val response = api.translate(convertLanguageCode(source), convertLanguageCode(target), WmTranslationRequest(query))
5562
return Translation(response.translation)
5663
}
5764
}

app/src/main/java/com/bnyro/translate/api/ya/YandexEngine.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,17 @@ class YandexEngine : TranslationEngine(
4747
).map { (key, value) -> Language(code = key, name = value) }
4848
}
4949

50+
protected fun convertLanguageCode(languageCode: String): String {
51+
return when(languageCode){
52+
"zh-Hant", "zh-Hans" -> "zh"
53+
else -> languageCode
54+
}
55+
}
56+
5057
override suspend fun translate(query: String, source: String, target: String): Translation {
51-
val lang = if (source.isEmpty()) target else "$source-$target"
58+
val convertedSource = convertLanguageCode(source)
59+
val convertedTarget = convertLanguageCode(target)
60+
val lang = if (convertedSource.isEmpty()) convertedTarget else "$convertedSource-$convertedTarget"
5261

5362
val uuid = UUID.randomUUID().toString().replace("-", "") + "-0-0"
5463
val response = api.translate(lang, query, "android", uuid)

0 commit comments

Comments
 (0)