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:
@@ -5,7 +5,7 @@ type TranslationResult struct {
|
||||
TranslatedText string
|
||||
}
|
||||
|
||||
type TranslationEngine interface {
|
||||
type Engine interface {
|
||||
InternalName() string
|
||||
DisplayName() string
|
||||
SourceLanguages() ([]Language, error)
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user