From 7d62d0bee29844b9116808c1e4e05770743f9fdb Mon Sep 17 00:00:00 2001 From: eeeXun Date: Thu, 30 Mar 2023 20:08:46 +0800 Subject: [PATCH] feat: add part of speech --- .../translate/lingvatranslate/translator.go | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/internal/translate/lingvatranslate/translator.go b/internal/translate/lingvatranslate/translator.go index f5dcc1a..c4b08bf 100644 --- a/internal/translate/lingvatranslate/translator.go +++ b/internal/translate/lingvatranslate/translator.go @@ -82,6 +82,29 @@ func (t *LingvaTranslate) Translate(message string) (translation, definition, pa } } } + // part of speech + for _, partOfSpeeches := range data["info"].(map[string]interface{})["extraTranslations"].([]interface{}) { + partOfSpeeches := partOfSpeeches.(map[string]interface{}) + // part of speech + pos := partOfSpeeches["type"] + partOfSpeech += fmt.Sprintf("[%v]\n", pos) + for _, words := range partOfSpeeches["list"].([]interface{}) { + words := words.(map[string]interface{}) + dstWord := words["word"] + partOfSpeech += fmt.Sprintf("\t%v:", dstWord) + // src lang + firstWord := true + for _, word := range words["meanings"].([]interface{}) { + if firstWord { + partOfSpeech += fmt.Sprintf(" %v", word) + firstWord = false + } else { + partOfSpeech += fmt.Sprintf(", %v", word) + } + } + partOfSpeech += "\n" + } + } return translation, definition, partOfSpeech, nil }