Make some identifiers more concise

See https://go.dev/doc/effective_go#package-names, specifically:

> The importer of a package will use the name to refer to its contents,
> so exported names in the package can use that fact to avoid
> repetition.

For example, `engines.GoogleTranslateEngine` needlessly repeats
"engine," so just get rid of that duplication by renaming it to
`engines.GoogleTranslate`.

Renaming `engines.TranslationEngine` to `engines.Engine` may be
debatable, so if somebody disagrees, feel free to leave a comment
stating your disagreement and with an explanation of why you disagree.

git-svn-id: file:///srv/svn/repo/mai/trunk@10 e410bdd4-646f-c54f-a7ce-fffcc4f439ae
This commit is contained in:
fattalion
2022-09-30 20:16:23 +00:00
parent c4d051d74f
commit 41fff3c53b
5 changed files with 30 additions and 30 deletions

View File

@@ -5,7 +5,7 @@ type TranslationResult struct {
TranslatedText string
}
type TranslationEngine interface {
type Engine interface {
InternalName() string
DisplayName() string
SourceLanguages() ([]Language, error)

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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,