Changeset 23 in code for trunk/engines/reverso.go
- Timestamp:
- Sep 2, 2023, 12:15:30 PM (21 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/engines/reverso.go
r20 r23 10 10 // Reverso is an engine that fetches data from https://reverso.net. 11 11 type Reverso struct{} 12 13 func (_ *Reverso) InternalName() string { return "reverso" }14 12 15 13 func (_ *Reverso) DisplayName() string { return "Reverso" } … … 84 82 85 83 request.Header.Set("Content-Type", "application/json") 86 // Returns 403 with empty or no user agent.87 84 request.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; rv:110.0) Gecko/20100101 Firefox/110.0") 88 85 … … 110 107 } 111 108 112 func (e *Reverso) DetectLanguage(text string) (string, error) { 113 // Any language pair works here, does not affect result 114 r, err := e.callAPI(text, "ara", "chi") 115 116 if err != nil { 117 return "", err 109 func (e *Reverso) Translate(text string, from, to string) (TranslationResult, error) { 110 if from == "auto" || from == "" { 111 from = "eng" 118 112 } 119 113 114 var translation string 115 116 r, err := e.callAPI(text, from, to) 117 if err != nil { 118 return TranslationResult{}, err 119 } 120 121 translation = r.Translation[0] 120 122 langCode := r.LanguageDetection.DetectedLanguage 121 123 122 124 for code := range reversoLangs { 123 125 if code == langCode { 124 return code, nil126 from = code 125 127 } 126 }127 128 return "", fmt.Errorf("language code \"%s\" is not in Reverso's language list", langCode)129 }130 131 func (e *Reverso) Translate(text string, from, to string) (TranslationResult, error) {132 if from == "auto" {133 from_, err := e.DetectLanguage(text)134 135 if err != nil {136 return TranslationResult{}, err137 }138 139 from = from_140 }141 142 var translation string143 144 if from == to {145 translation = text146 } else {147 r, err := e.callAPI(text, from, to)148 149 if err != nil {150 return TranslationResult{}, err151 }152 153 translation = r.Translation[0]154 128 } 155 129 156 130 return TranslationResult{ 157 131 TranslatedText: translation, 132 SourceLanguage: from, 158 133 }, nil 159 134 }
Note:
See TracChangeset
for help on using the changeset viewer.