diff --git a/engines/engine.go b/engines/engine.go index fcc1e06..08213dc 100644 --- a/engines/engine.go +++ b/engines/engine.go @@ -5,7 +5,7 @@ type TranslationResult struct { TranslatedText string } -type TranslationEngine interface { +type Engine interface { InternalName() string DisplayName() string SourceLanguages() ([]Language, error) diff --git a/engines/google.go b/engines/google.go index 682671e..29b91b7 100644 --- a/engines/google.go +++ b/engines/google.go @@ -8,13 +8,13 @@ import ( "github.com/PuerkitoBio/goquery" ) -type GoogleTranslateEngine struct{} +type GoogleTranslate struct{} -func (_ *GoogleTranslateEngine) InternalName() string { return "google" } +func (_ *GoogleTranslate) InternalName() string { return "google" } -func (_ *GoogleTranslateEngine) DisplayName() string { return "Google" } +func (_ *GoogleTranslate) DisplayName() string { return "Google" } -func (_ *GoogleTranslateEngine) getLangs(type_ string) ([]Language, error) { +func (_ *GoogleTranslate) getLangs(type_ string) ([]Language, error) { var langsType string switch type_ { case "source": @@ -83,19 +83,19 @@ func (_ *GoogleTranslateEngine) getLangs(type_ string) ([]Language, error) { return langs, nil } -func (e *GoogleTranslateEngine) SourceLanguages() ([]Language, error) { +func (e *GoogleTranslate) SourceLanguages() ([]Language, error) { return e.getLangs("source") } -func (e *GoogleTranslateEngine) TargetLanguages() ([]Language, error) { +func (e *GoogleTranslate) TargetLanguages() ([]Language, error) { return e.getLangs("target") } -func (_ *GoogleTranslateEngine) SupportsAutodetect() bool { return true } +func (_ *GoogleTranslate) SupportsAutodetect() bool { return true } -func (_ *GoogleTranslateEngine) DetectLanguage(text string) (Language, error) { return Language{}, nil } +func (_ *GoogleTranslate) DetectLanguage(text string) (Language, error) { return Language{}, nil } -func (_ *GoogleTranslateEngine) Translate(text string, from Language, to Language) (TranslationResult, error) { +func (_ *GoogleTranslate) Translate(text string, from Language, to Language) (TranslationResult, error) { requestURL, err := url.Parse("https://translate.google.com/m") if err != nil { diff --git a/engines/iciba.go b/engines/iciba.go index 24d0478..9b255bb 100644 --- a/engines/iciba.go +++ b/engines/iciba.go @@ -9,12 +9,12 @@ import ( "net/url" ) -// ICIBAEngine is an engine that fetches data from https://www.iciba.com. -type ICIBAEngine struct{} +// ICIBA is an engine that fetches data from https://www.iciba.com. +type ICIBA struct{} -func (_ *ICIBAEngine) InternalName() string { return "iciba" } +func (_ *ICIBA) InternalName() string { return "iciba" } -func (_ *ICIBAEngine) DisplayName() string { return "iCIBA" } +func (_ *ICIBA) DisplayName() string { return "iCIBA" } var icibaLanguages = []Language{ // ICIBA does have an API, but they return Chinese names. @@ -211,13 +211,13 @@ var icibaLanguages = []Language{ {Name: "Zulu", Code: "zu"}, } -func (_ *ICIBAEngine) SourceLanguages() ([]Language, error) { return icibaLanguages, nil } +func (_ *ICIBA) SourceLanguages() ([]Language, error) { return icibaLanguages, nil } -func (_ *ICIBAEngine) TargetLanguages() ([]Language, error) { return icibaLanguages, nil } +func (_ *ICIBA) TargetLanguages() ([]Language, error) { return icibaLanguages, nil } -func (_ *ICIBAEngine) SupportsAutodetect() bool { return true } +func (_ *ICIBA) SupportsAutodetect() bool { return true } -func (_ *ICIBAEngine) DetectLanguage(text string) (Language, error) { return Language{}, nil } +func (_ *ICIBA) DetectLanguage(text string) (Language, error) { return Language{}, nil } type icibaTranslateResponse struct { Content struct { @@ -226,7 +226,7 @@ type icibaTranslateResponse struct { } `json:"content"` } -func (_ *ICIBAEngine) Translate(text string, from Language, to Language) (TranslationResult, error) { +func (_ *ICIBA) Translate(text string, from Language, to Language) (TranslationResult, error) { requestURL, err := url.Parse("https://ifanyi.iciba.com/index.php") if err != nil { diff --git a/engines/libretranslate.go b/engines/libretranslate.go index 25656f2..a5f339f 100644 --- a/engines/libretranslate.go +++ b/engines/libretranslate.go @@ -7,9 +7,9 @@ import ( "net/http" ) -// LibreTranslateEngine is an engine that interfaces with any +// LibreTranslate is an engine that interfaces with any // [LibreTranslate](https://github.com/LibreTranslate/LibreTranslate) instance. -type LibreTranslateEngine struct { +type LibreTranslate struct { // InstanceURL is the URL to a LibreTranslate instance, for instance // "https://libretranslate.com". InstanceURL string @@ -23,16 +23,16 @@ type LibreTranslateEngine struct { APIKey string } -func (_ *LibreTranslateEngine) InternalName() string { return "libre" } +func (_ *LibreTranslate) InternalName() string { return "libre" } -func (_ *LibreTranslateEngine) DisplayName() string { return "LibreTranslate" } +func (_ *LibreTranslate) DisplayName() string { return "LibreTranslate" } type libreLanguagesResponse []struct { Name string `json:"name"` Code string `json:"code"` } -func (e *LibreTranslateEngine) getLangs() ([]Language, error) { +func (e *LibreTranslate) getLangs() ([]Language, error) { response, err := http.Get(e.InstanceURL + "/languages") if err != nil { @@ -61,18 +61,18 @@ func (e *LibreTranslateEngine) getLangs() ([]Language, error) { } -func (e *LibreTranslateEngine) SourceLanguages() ([]Language, error) { return e.getLangs() } +func (e *LibreTranslate) SourceLanguages() ([]Language, error) { return e.getLangs() } -func (e *LibreTranslateEngine) TargetLanguages() ([]Language, error) { return e.getLangs() } +func (e *LibreTranslate) TargetLanguages() ([]Language, error) { return e.getLangs() } -func (_ *LibreTranslateEngine) SupportsAutodetect() bool { return true } +func (_ *LibreTranslate) SupportsAutodetect() bool { return true } type libreDetectResponse []struct { Confidence float64 `json:"confidence"` LanguageCode string `json:"language"` } -func (e *LibreTranslateEngine) DetectLanguage(text string) (Language, error) { +func (e *LibreTranslate) DetectLanguage(text string) (Language, error) { formData := map[string]string{"q": text} if e.APIKey != "" { @@ -130,7 +130,7 @@ type libreTranslateResponse struct { TranslatedText string `json:"translatedText"` } -func (e *LibreTranslateEngine) Translate(text string, from Language, to Language) (TranslationResult, error) { +func (e *LibreTranslate) Translate(text string, from Language, to Language) (TranslationResult, error) { formData := map[string]string{ "q": text, "source": from.Code, diff --git a/web/main.go b/web/main.go index e50c9c6..a069156 100644 --- a/web/main.go +++ b/web/main.go @@ -7,6 +7,6 @@ import ( // TODO: port web frontend to Go. func main() { - engine := &engines.GoogleTranslateEngine{} + engine := &engines.GoogleTranslate{} print(engine.DisplayName()) }