Improved code

git-svn-id: file:///srv/svn/repo/mai/trunk@23 e410bdd4-646f-c54f-a7ce-fffcc4f439ae
This commit is contained in:
manerakai
2023-09-02 12:15:30 +00:00
parent 79983d9e7e
commit 62ef51aa54
6 changed files with 50 additions and 72 deletions

View File

@@ -23,8 +23,6 @@ type LibreTranslate struct {
APIKey string
}
func (_ *LibreTranslate) InternalName() string { return "libre" }
func (_ *LibreTranslate) DisplayName() string { return "LibreTranslate" }
func (e *LibreTranslate) getLangs() (Language, error) {
@@ -70,7 +68,7 @@ type libreDetectResponse []struct {
LanguageCode string `json:"language"`
}
func (e *LibreTranslate) DetectLanguage(text string) (string, error) {
func (e *LibreTranslate) detectLanguage(text string) (string, error) {
formData := map[string]string{"q": text}
if e.APIKey != "" {
@@ -124,10 +122,6 @@ func (e *LibreTranslate) DetectLanguage(text string) (string, error) {
return "", fmt.Errorf("language code \"%s\" is not in the instance's language list", maxConfidenceLang.LanguageCode)
}
type libreTranslateResponse struct {
TranslatedText string `json:"translatedText"`
}
func (e *LibreTranslate) Translate(text string, from, to string) (TranslationResult, error) {
formData := map[string]string{
"q": text,
@@ -157,11 +151,20 @@ func (e *LibreTranslate) Translate(text string, from, to string) (TranslationRes
return TranslationResult{}, fmt.Errorf("got status code %d from LibreTranslate API", response.StatusCode)
}
var responseJSON libreTranslateResponse
var responseJSON struct {
TranslatedText string `json:"translatedText"`
}
if err := json.NewDecoder(response.Body).Decode(&responseJSON); err != nil {
return TranslationResult{}, err
}
return TranslationResult{TranslatedText: responseJSON.TranslatedText}, nil
if r, err := e.detectLanguage(text); err == nil {
from = r
}
return TranslationResult{
TranslatedText: responseJSON.TranslatedText,
SourceLanguage: from,
}, nil
}