Changeset 15 in code for trunk/engines/reverso.go
- Timestamp:
- Aug 30, 2023, 11:57:46 AM (22 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/engines/reverso.go
r13 r15 15 15 func (_ *Reverso) DisplayName() string { return "Reverso" } 16 16 17 var reversoLangs = []Language{18 {Name: "Arabic", Code: "ara"},19 {Name: "Chinese (Simplified)", Code: "chi"}, // marketed as just "Chinese"20 {Name: "Czech", Code: "cze"},21 {Name: "Danish", Code: "dan"},22 {Name: "Dutch", Code: "dut"},23 {Name: "English", Code: "eng"},24 {Name: "French", Code: "fra"},25 {Name: "German", Code: "ger"},26 {Name: "Hebrew", Code: "heb"},27 {Name: "Hindi", Code: "hin"},28 {Name: "Hungarian", Code: "hun"},29 {Name: "Italian", Code: "ita"},30 {Name: "Japanese", Code: "jpn"},31 {Name: "Korean", Code: "kor"},32 {Name: "Persian", Code: "per"},33 {Name: "Polish", Code: "pol"},34 {Name: "Portuguese", Code: "por"},35 {Name: "Romanian", Code: "rum"},36 {Name: "Russian", Code: "rus"},37 {Name: "Slovak", Code: "slo"},38 {Name: "Spanish", Code: "spa"},39 {Name: "Swedish", Code: "swe"},40 {Name: "Thai", Code: "tha"},41 {Name: "Turkish", Code: "tur"},42 {Name: "Ukrainian", Code: "ukr"},17 var reversoLangs = Language{ 18 "ara": "Arabic", 19 "chi": "Chinese (Simplified)", // marketed as just "Chinese" 20 "cze": "Czech", 21 "dan": "Danish", 22 "dut": "Dutch", 23 "eng": "English", 24 "fra": "French", 25 "ger": "German", 26 "heb": "Hebrew", 27 "hin": "Hindi", 28 "hun": "Hungarian", 29 "ita": "Italian", 30 "jpn": "Japanese", 31 "kor": "Korean", 32 "per": "Persian", 33 "pol": "Polish", 34 "por": "Portuguese", 35 "rum": "Romanian", 36 "rus": "Russian", 37 "slo": "Slovak", 38 "spa": "Spanish", 39 "swe": "Swedish", 40 "tha": "Thai", 41 "tur": "Turkish", 42 "ukr": "Ukrainian", 43 43 } 44 44 45 func (_ *Reverso) SourceLanguages() ( []Language, error) { return reversoLangs, nil }45 func (_ *Reverso) SourceLanguages() (Language, error) { return reversoLangs, nil } 46 46 47 func (_ *Reverso) TargetLanguages() ([]Language, error) { return reversoLangs, nil } 48 49 func (_ *Reverso) SupportsAutodetect() bool { return true } 47 func (_ *Reverso) TargetLanguages() (Language, error) { return reversoLangs, nil } 50 48 51 49 type reversoAPIResponse struct { … … 56 54 } 57 55 58 func (e *Reverso) callAPI(text string, from, to Language) (reversoAPIResponse, error) {56 func (e *Reverso) callAPI(text string, from, to string) (reversoAPIResponse, error) { 59 57 // `contextResults` must be false for language detection 60 58 formData := map[string]interface{}{ 61 59 "format": "text", 62 "from": from .Code,63 "to": to .Code,60 "from": from, 61 "to": to, 64 62 "input": text, 65 63 "options": map[string]interface{}{ … … 110 108 } 111 109 112 func (e *Reverso) DetectLanguage(text string) ( Language, error) {110 func (e *Reverso) DetectLanguage(text string) (string, error) { 113 111 // Any language pair works here, does not affect result 114 r, err := e.callAPI(text, reversoLangs[0], reversoLangs[1])112 r, err := e.callAPI(text, "ara", "chi") 115 113 116 114 if err != nil { 117 return Language{}, err115 return "", err 118 116 } 119 117 120 118 langCode := r.LanguageDetection.DetectedLanguage 121 119 122 for _, lang:= range reversoLangs {123 if lang.Code == langCode {124 return lang, nil120 for code := range reversoLangs { 121 if code == langCode { 122 return code, nil 125 123 } 126 124 } 127 125 128 return Language{}, fmt.Errorf("language code \"%s\" is not in Reverso's language list", langCode)126 return "", fmt.Errorf("language code \"%s\" is not in Reverso's language list", langCode) 129 127 } 130 128 131 func (e *Reverso) Translate(text string, from, to Language) (TranslationResult, error) {132 if from .Code== "auto" {129 func (e *Reverso) Translate(text string, from, to string) (TranslationResult, error) { 130 if from == "auto" { 133 131 from_, err := e.DetectLanguage(text) 134 132 … … 155 153 156 154 return TranslationResult{ 157 SourceLanguage: from,158 155 TranslatedText: translation, 159 156 }, nil
Note:
See TracChangeset
for help on using the changeset viewer.