Changeset 15 in code for trunk/engines/libretranslate.go


Ignore:
Timestamp:
Aug 30, 2023, 11:57:46 AM (22 months ago)
Author:
manerakai
Message:

Added gofiber

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/engines/libretranslate.go

    r12 r15  
    2828func (_ *LibreTranslate) DisplayName() string { return "LibreTranslate" }
    2929
    30 type libreLanguagesResponse []struct {
    31         Name string `json:"name"`
    32         Code string `json:"code"`
    33 }
    34 
    35 func (e *LibreTranslate) getLangs() ([]Language, error) {
     30func (e *LibreTranslate) getLangs() (Language, error) {
    3631        response, err := http.Get(e.InstanceURL + "/languages")
    3732
     
    4641        }
    4742
    48         var langsResponse libreLanguagesResponse
     43        var langsResponse []struct {
     44                Name string `json:"name"`
     45                Code string `json:"code"`
     46        }
    4947
    5048        if err := json.NewDecoder(response.Body).Decode(&langsResponse); err != nil {
     
    5250        }
    5351
    54         langs := make([]Language, len(langsResponse))
     52        langs := Language{}
    5553
    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
    5856        }
    5957
     
    6260}
    6361
    64 func (e *LibreTranslate) SourceLanguages() ([]Language, error) { return e.getLangs() }
     62func (e *LibreTranslate) SourceLanguages() (Language, error) { return e.getLangs() }
    6563
    66 func (e *LibreTranslate) TargetLanguages() ([]Language, error) { return e.getLangs() }
    67 
    68 func (_ *LibreTranslate) SupportsAutodetect() bool { return true }
     64func (e *LibreTranslate) TargetLanguages() (Language, error) { return e.getLangs() }
    6965
    7066type libreDetectResponse []struct {
     
    7369}
    7470
    75 func (e *LibreTranslate) DetectLanguage(text string) (Language, error) {
     71func (e *LibreTranslate) DetectLanguage(text string) (string, error) {
    7672        formData := map[string]string{"q": text}
    7773
     
    8379
    8480        if err != nil {
    85                 return Language{}, err
     81                return "", err
    8682        }
    8783
     
    8985
    9086        if err != nil {
    91                 return Language{}, err
     87                return "", err
    9288        }
    9389
     
    9591
    9692        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)
    9894        }
    9995
     
    10197
    10298        if err := json.NewDecoder(response.Body).Decode(&langs); err != nil {
    103                 return Language{}, err
     99                return "", err
    104100        }
    105101
     
    115111
    116112        if err != nil {
    117                 return Language{}, err
     113                return "", err
    118114        }
    119115
    120         for _, lang := range engineLangs {
    121                 if lang.Code == maxConfidenceLang.LanguageCode {
    122                         return lang, nil
     116        for code := range engineLangs {
     117                if code == maxConfidenceLang.LanguageCode {
     118                        return code, nil
    123119                }
    124120        }
    125121
    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)
    127123}
    128124
     
    131127}
    132128
    133 func (e *LibreTranslate) Translate(text string, from, to Language) (TranslationResult, error) {
     129func (e *LibreTranslate) Translate(text string, from, to string) (TranslationResult, error) {
    134130        formData := map[string]string{
    135131                "q":      text,
    136                 "source": from.Code,
    137                 "target": to.Code,
     132                "source": from,
     133                "target": to,
    138134        }
    139135
     
    166162        }
    167163
    168         return TranslationResult{SourceLanguage: from, TranslatedText: responseJSON.TranslatedText}, nil
     164        return TranslationResult{TranslatedText: responseJSON.TranslatedText}, nil
    169165}
Note: See TracChangeset for help on using the changeset viewer.