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


Ignore:
Timestamp:
Sep 2, 2023, 12:15:30 PM (21 months ago)
Author:
manerakai
Message:

Improved code

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/engines/libretranslate.go

    r20 r23  
    2323        APIKey string
    2424}
    25 
    26 func (_ *LibreTranslate) InternalName() string { return "libre" }
    2725
    2826func (_ *LibreTranslate) DisplayName() string { return "LibreTranslate" }
     
    7169}
    7270
    73 func (e *LibreTranslate) DetectLanguage(text string) (string, error) {
     71func (e *LibreTranslate) detectLanguage(text string) (string, error) {
    7472        formData := map[string]string{"q": text}
    7573
     
    125123}
    126124
    127 type libreTranslateResponse struct {
    128         TranslatedText string `json:"translatedText"`
    129 }
    130 
    131125func (e *LibreTranslate) Translate(text string, from, to string) (TranslationResult, error) {
    132126        formData := map[string]string{
     
    158152        }
    159153
    160         var responseJSON libreTranslateResponse
     154        var responseJSON struct {
     155                TranslatedText string `json:"translatedText"`
     156        }
    161157
    162158        if err := json.NewDecoder(response.Body).Decode(&responseJSON); err != nil {
     
    164160        }
    165161
    166         return TranslationResult{TranslatedText: responseJSON.TranslatedText}, nil
     162        if r, err := e.detectLanguage(text); err == nil {
     163                from = r
     164        }
     165
     166        return TranslationResult{
     167                TranslatedText: responseJSON.TranslatedText,
     168                SourceLanguage: from,
     169        }, nil
    167170}
Note: See TracChangeset for help on using the changeset viewer.