Skip to content

Commit

Permalink
fix: do not use TencentErrorResponse to decode Ali error
Browse files Browse the repository at this point in the history
  • Loading branch information
tisfeng committed Dec 22, 2023
1 parent 94cf2e0 commit bd953c4
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 22 deletions.
11 changes: 1 addition & 10 deletions Easydict/Feature/Service/Ali/AliService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -82,16 +82,7 @@ class AliService: QueryService {
}
case let .failure(error):
NSLog("ali lookup error \(error)")
let ezError = EZError(nsError: error)

if let data = response.data {
do {
let errorResponse = try JSONDecoder().decode(TencentErrorResponse.self, from: data)
ezError?.errorDataMessage = errorResponse.response.error.message
} catch {
NSLog("Failed to decode error response: \(error)")
}
}
let ezError = EZError(nsError: error, errorResponseData: response.data)
completion(result, ezError)
}
}
Expand Down
24 changes: 12 additions & 12 deletions Easydict/Feature/Service/Ali/AliTranslateType.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,17 @@ import Foundation
struct AliTranslateType: Equatable {
var sourceLanguage: String
var targetLanguage: String

static let unsupported = AliTranslateType(sourceLanguage: "unsupported", targetLanguage: "unsupported")

/// https://help.aliyun.com/zh/machine-translation/support/supported-languages-and-codes#h2-url-1
static let supportLanguagesDictionary: [Language: String] = [
.auto: "auto",
.simplifiedChinese: "zh",

/**
traditionalChinese code is "zh-tw", but Ali only support traditionalChinese <--> simplifiedChinese, so we convert traditionalChinese manually.
*/
traditionalChinese code is "zh-tw", but Ali only support traditionalChinese <--> simplifiedChinese, so we convert traditionalChinese manually.
*/
.traditionalChinese: "zh", // "zh-tw"
.english: "en",
.japanese: "ja",
Expand Down Expand Up @@ -67,28 +67,28 @@ struct AliTranslateType: Equatable {
.mongolian: "mn",
.hebrew: "he",
]

static func transType(from: Language, to: Language) -> AliTranslateType {
/**
文本翻译除繁体中文、蒙语、粤语外,其他212种语言,可支持任意两种语言之间互译。繁体中文、蒙语、粤语仅支持与中文之间的互译。文本翻译支持源语言的自动语言检测,语言代码为auto(粤语为源语言时,不支持使用auto作为语言代码)。

https://help.aliyun.com/zh/machine-translation/support/supported-languages-and-codes
*/

if from == .mongolian, !to.isKindOfChinese() || to == .mongolian, !from.isKindOfChinese() {
return .unsupported
}

guard var fromLanguage = supportLanguagesDictionary[from],
var toLanguage = supportLanguagesDictionary[to]
else {
return .unsupported
}

// If translate traditionalChinese <--> simplifiedChinese, use Ali API directly.
if EZLanguageManager.shared().onlyContainsChineseLanguages([from, to]) {
let traditionalLangaugeCode = "zh-tw"

// Maybe traditionalChinese --> traditionalChinese
if from == .traditionalChinese {
fromLanguage = traditionalLangaugeCode
Expand All @@ -97,7 +97,7 @@ struct AliTranslateType: Equatable {
toLanguage = traditionalLangaugeCode
}
}

return AliTranslateType(sourceLanguage: fromLanguage, targetLanguage: toLanguage)
}
}

0 comments on commit bd953c4

Please sign in to comment.