diff --git a/internal/translate/apertiumtranslate/translator.go b/internal/translate/apertiumtranslate/translator.go index af7d891..cf4e314 100644 --- a/internal/translate/apertiumtranslate/translator.go +++ b/internal/translate/apertiumtranslate/translator.go @@ -71,22 +71,23 @@ func (t *ApertiumTranslate) Translate(message string) (translation, definition, return "", "", "", err } - if len(data) > 0 { - switch res.StatusCode { - case 200: - translation += fmt.Sprintf("%v", - data["responseData"].(map[string]interface{})["translatedText"]) - default: - return "", "", "", errors.New( - fmt.Sprintf("%s does not support translate from %s to %s.\nSee available pair on %s", - t.EngineName, - t.srcLang, - t.dstLang, - "https://www.apertium.org/", - )) - } - - return translation, definition, partOfSpeech, nil + if len(data) <= 0 { + return "", "", "", errors.New("Translation not found") } - return "", "", "", errors.New("Translation not found") + + switch res.StatusCode { + case 200: + translation += fmt.Sprintf("%v", + data["responseData"].(map[string]interface{})["translatedText"]) + default: + return "", "", "", errors.New( + fmt.Sprintf("%s does not support translate from %s to %s.\nSee available pair on %s", + t.EngineName, + t.srcLang, + t.dstLang, + "https://www.apertium.org/", + )) + } + + return translation, definition, partOfSpeech, nil } diff --git a/internal/translate/argostranslate/translator.go b/internal/translate/argostranslate/translator.go index 4703e0b..a7dc6de 100644 --- a/internal/translate/argostranslate/translator.go +++ b/internal/translate/argostranslate/translator.go @@ -70,10 +70,11 @@ func (t *ArgosTranslate) Translate(message string) (translation, definition, par return "", "", "", err } - if len(data) > 0 { - translation += fmt.Sprintf("%v", data["translatedText"]) - - return translation, definition, partOfSpeech, nil + if len(data) <= 0 { + return "", "", "", errors.New("Translation not found") } - return "", "", "", errors.New("Translation not found") + + translation += fmt.Sprintf("%v", data["translatedText"]) + + return translation, definition, partOfSpeech, nil } diff --git a/internal/translate/googletranslate/translator.go b/internal/translate/googletranslate/translator.go index 0822efc..66f75ab 100644 --- a/internal/translate/googletranslate/translator.go +++ b/internal/translate/googletranslate/translator.go @@ -71,58 +71,57 @@ func (t *GoogleTranslate) Translate(message string) (translation, definition, pa return "", "", "", err } - if len(data) > 0 { - // translation = data[0] - for _, lines := range data[0].([]interface{}) { - translatedLine := lines.([]interface{})[0] - translation += fmt.Sprintf("%v", translatedLine) - } - - // part of speech = data[1] - if data[1] != nil { - for _, parts := range data[1].([]interface{}) { - // part of speech - part := parts.([]interface{})[0] - partOfSpeech += fmt.Sprintf("[%v]\n", part) - for _, words := range parts.([]interface{})[2].([]interface{}) { - // dst lang - dstWord := words.([]interface{})[0] - partOfSpeech += fmt.Sprintf("\t%v:", dstWord) - // src lang - firstWord := true - for _, word := range words.([]interface{})[1].([]interface{}) { - if firstWord { - partOfSpeech += fmt.Sprintf(" %v", word) - firstWord = false - } else { - partOfSpeech += fmt.Sprintf(", %v", word) - } - } - partOfSpeech += "\n" - } - } - } - - // definition = data[12] - if len(data) >= 13 && data[12] != nil { - for _, parts := range data[12].([]interface{}) { - // part of speech - part := parts.([]interface{})[0] - definition += fmt.Sprintf("[%v]\n", part) - for _, sentences := range parts.([]interface{})[1].([]interface{}) { - // definition - def := sentences.([]interface{})[0] - definition += fmt.Sprintf("\t- %v\n", def) - // example sentence - if len(sentences.([]interface{})) >= 3 && sentences.([]interface{})[2] != nil { - example := sentences.([]interface{})[2] - definition += fmt.Sprintf("\t\t\"%v\"\n", example) - } - } - } - } - return translation, definition, partOfSpeech, nil + if len(data) <= 0 { + return "", "", "", errors.New("Translation not found") } - return "", "", "", errors.New("Translation not found") + // translation = data[0] + for _, lines := range data[0].([]interface{}) { + translatedLine := lines.([]interface{})[0] + translation += fmt.Sprintf("%v", translatedLine) + } + // part of speech = data[1] + if data[1] != nil { + for _, parts := range data[1].([]interface{}) { + // part of speech + part := parts.([]interface{})[0] + partOfSpeech += fmt.Sprintf("[%v]\n", part) + for _, words := range parts.([]interface{})[2].([]interface{}) { + // dst lang + dstWord := words.([]interface{})[0] + partOfSpeech += fmt.Sprintf("\t%v:", dstWord) + // src lang + firstWord := true + for _, word := range words.([]interface{})[1].([]interface{}) { + if firstWord { + partOfSpeech += fmt.Sprintf(" %v", word) + firstWord = false + } else { + partOfSpeech += fmt.Sprintf(", %v", word) + } + } + partOfSpeech += "\n" + } + } + } + // definition = data[12] + if len(data) >= 13 && data[12] != nil { + for _, parts := range data[12].([]interface{}) { + // part of speech + part := parts.([]interface{})[0] + definition += fmt.Sprintf("[%v]\n", part) + for _, sentences := range parts.([]interface{})[1].([]interface{}) { + // definition + def := sentences.([]interface{})[0] + definition += fmt.Sprintf("\t- %v\n", def) + // example sentence + if len(sentences.([]interface{})) >= 3 && sentences.([]interface{})[2] != nil { + example := sentences.([]interface{})[2] + definition += fmt.Sprintf("\t\t\"%v\"\n", example) + } + } + } + } + + return translation, definition, partOfSpeech, nil } diff --git a/internal/translate/googletranslate/tts.go b/internal/translate/googletranslate/tts.go index e6c0e3f..e0ff87d 100644 --- a/internal/translate/googletranslate/tts.go +++ b/internal/translate/googletranslate/tts.go @@ -54,9 +54,8 @@ func (t *GoogleTranslate) PlayTTS(lang, message string) error { if t.SoundLock.Stop { t.SoundLock.Release() return nil - } else { - time.Sleep(time.Millisecond) } + time.Sleep(time.Millisecond) } if err = player.Close(); err != nil { t.SoundLock.Release()