Changeset 15 in code for trunk/engines/libretranslate.go
- Timestamp:
- Aug 30, 2023, 11:57:46 AM (22 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/engines/libretranslate.go
r12 r15 28 28 func (_ *LibreTranslate) DisplayName() string { return "LibreTranslate" } 29 29 30 type libreLanguagesResponse []struct { 31 Name string `json:"name"` 32 Code string `json:"code"` 33 } 34 35 func (e *LibreTranslate) getLangs() ([]Language, error) { 30 func (e *LibreTranslate) getLangs() (Language, error) { 36 31 response, err := http.Get(e.InstanceURL + "/languages") 37 32 … … 46 41 } 47 42 48 var langsResponse libreLanguagesResponse 43 var langsResponse []struct { 44 Name string `json:"name"` 45 Code string `json:"code"` 46 } 49 47 50 48 if err := json.NewDecoder(response.Body).Decode(&langsResponse); err != nil { … … 52 50 } 53 51 54 langs := make([]Language, len(langsResponse))52 langs := Language{} 55 53 56 for i, lang := range langsResponse {57 langs[ i] = Language{Name: lang.Name, Code: lang.Code}54 for _, lang := range langsResponse { 55 langs[lang.Code] = lang.Name 58 56 } 59 57 … … 62 60 } 63 61 64 func (e *LibreTranslate) SourceLanguages() ( []Language, error) { return e.getLangs() }62 func (e *LibreTranslate) SourceLanguages() (Language, error) { return e.getLangs() } 65 63 66 func (e *LibreTranslate) TargetLanguages() ([]Language, error) { return e.getLangs() } 67 68 func (_ *LibreTranslate) SupportsAutodetect() bool { return true } 64 func (e *LibreTranslate) TargetLanguages() (Language, error) { return e.getLangs() } 69 65 70 66 type libreDetectResponse []struct { … … 73 69 } 74 70 75 func (e *LibreTranslate) DetectLanguage(text string) ( Language, error) {71 func (e *LibreTranslate) DetectLanguage(text string) (string, error) { 76 72 formData := map[string]string{"q": text} 77 73 … … 83 79 84 80 if err != nil { 85 return Language{}, err81 return "", err 86 82 } 87 83 … … 89 85 90 86 if err != nil { 91 return Language{}, err87 return "", err 92 88 } 93 89 … … 95 91 96 92 if response.StatusCode != 200 { 97 return Language{}, fmt.Errorf("got status code %d from LibreTranslate API", response.StatusCode)93 return "", fmt.Errorf("got status code %d from LibreTranslate API", response.StatusCode) 98 94 } 99 95 … … 101 97 102 98 if err := json.NewDecoder(response.Body).Decode(&langs); err != nil { 103 return Language{}, err99 return "", err 104 100 } 105 101 … … 115 111 116 112 if err != nil { 117 return Language{}, err113 return "", err 118 114 } 119 115 120 for _, lang:= range engineLangs {121 if lang.Code == maxConfidenceLang.LanguageCode {122 return lang, nil116 for code := range engineLangs { 117 if code == maxConfidenceLang.LanguageCode { 118 return code, nil 123 119 } 124 120 } 125 121 126 return Language{}, fmt.Errorf("language code \"%s\" is not in the instance's language list", maxConfidenceLang.LanguageCode)122 return "", fmt.Errorf("language code \"%s\" is not in the instance's language list", maxConfidenceLang.LanguageCode) 127 123 } 128 124 … … 131 127 } 132 128 133 func (e *LibreTranslate) Translate(text string, from, to Language) (TranslationResult, error) {129 func (e *LibreTranslate) Translate(text string, from, to string) (TranslationResult, error) { 134 130 formData := map[string]string{ 135 131 "q": text, 136 "source": from .Code,137 "target": to .Code,132 "source": from, 133 "target": to, 138 134 } 139 135 … … 166 162 } 167 163 168 return TranslationResult{ SourceLanguage: from,TranslatedText: responseJSON.TranslatedText}, nil164 return TranslationResult{TranslatedText: responseJSON.TranslatedText}, nil 169 165 }
Note:
See TracChangeset
for help on using the changeset viewer.