mirror of
https://github.com/eeeXun/GTT.git
synced 2025-05-16 15:50:52 -07:00
refactor: rename Translator name without Translate
This commit is contained in:
parent
a76807d254
commit
4f30ce9df6
20
README.md
20
README.md
@ -3,11 +3,11 @@
|
||||
Google Translate TUI (Originally)
|
||||
|
||||
Supported Translator:
|
||||
[`ApertiumTranslate`](https://www.apertium.org/),
|
||||
[`ArgosTranslate`](https://translate.argosopentech.com/)(default),
|
||||
[`BingTranslate`](https://www.bing.com/translator),
|
||||
[`GoogleTranslate`](https://translate.google.com/),
|
||||
[`ReversoTranslate`](https://www.reverso.net/text-translation)
|
||||
[`Apertium`](https://www.apertium.org/),
|
||||
[`Argos`](https://translate.argosopentech.com/)(default),
|
||||
[`Bing`](https://www.bing.com/translator),
|
||||
[`Google`](https://translate.google.com/),
|
||||
[`Reverso`](https://www.reverso.net/text-translation)
|
||||
|
||||
## ScreenShot
|
||||
|
||||
@ -47,11 +47,11 @@ gtt -src "English" -dst "Chinese (Traditional)"
|
||||
|
||||
See available languages on:
|
||||
|
||||
- [Apertium Translate](https://www.apertium.org/) for `ApertiumTranslate`
|
||||
- [argosopentech/argos-translate](https://github.com/argosopentech/argos-translate#supported-languages) for `ArgosTranslate`
|
||||
- [Bing language-support](https://learn.microsoft.com/en-us/azure/cognitive-services/translator/language-support#translation) for `BingTranslate`
|
||||
- [Google Language support](https://cloud.google.com/translate/docs/languages) for `GoogleTranslate`
|
||||
- [Reverso Translation](https://www.reverso.net/text-translation) for `ReversoTranslate`
|
||||
- [Apertium Translate](https://www.apertium.org/) for `Apertium`
|
||||
- [argosopentech/argos-translate](https://github.com/argosopentech/argos-translate#supported-languages) for `Argos`
|
||||
- [Bing language-support](https://learn.microsoft.com/en-us/azure/cognitive-services/translator/language-support#translation) for `Bing`
|
||||
- [Google Language support](https://cloud.google.com/translate/docs/languages) for `Google`
|
||||
- [Reverso Translation](https://www.reverso.net/text-translation) for `Reverso`
|
||||
|
||||
## Key Map
|
||||
|
||||
|
37
config.go
37
config.go
@ -14,22 +14,22 @@ func configInit() {
|
||||
var (
|
||||
defaultConfigPath string
|
||||
defaultConfig = map[string]interface{}{
|
||||
"hide_below": false,
|
||||
"transparent": false,
|
||||
"theme": "gruvbox",
|
||||
"source.border_color": "red",
|
||||
"destination.border_color": "blue",
|
||||
"source.language.apertiumtranslate": "English",
|
||||
"destination.language.apertiumtranslate": "English",
|
||||
"source.language.argostranslate": "English",
|
||||
"destination.language.argostranslate": "English",
|
||||
"source.language.bingtranslate": "English",
|
||||
"destination.language.bingtranslate": "English",
|
||||
"source.language.googletranslate": "English",
|
||||
"destination.language.googletranslate": "English",
|
||||
"source.language.reversotranslate": "English",
|
||||
"destination.language.reversotranslate": "English",
|
||||
"translator": "ArgosTranslate",
|
||||
"hide_below": false,
|
||||
"transparent": false,
|
||||
"theme": "gruvbox",
|
||||
"source.border_color": "red",
|
||||
"destination.border_color": "blue",
|
||||
"source.language.apertium": "English",
|
||||
"destination.language.apertium": "English",
|
||||
"source.language.argos": "English",
|
||||
"destination.language.argos": "English",
|
||||
"source.language.bing": "English",
|
||||
"destination.language.bing": "English",
|
||||
"source.language.google": "English",
|
||||
"destination.language.google": "English",
|
||||
"source.language.reverso": "English",
|
||||
"destination.language.reverso": "English",
|
||||
"translator": "Argos",
|
||||
}
|
||||
)
|
||||
|
||||
@ -66,6 +66,11 @@ func configInit() {
|
||||
config.Set("theme", defaultConfig["theme"])
|
||||
missing = true
|
||||
}
|
||||
// Set to default translator if translator in config does not exist
|
||||
if IndexOf(config.GetString("translator"), translate.AllTranslator) < 0 {
|
||||
config.Set("translator", defaultConfig["translator"])
|
||||
missing = true
|
||||
}
|
||||
if missing {
|
||||
config.WriteConfig()
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
package apertiumtranslate
|
||||
package apertium
|
||||
|
||||
var (
|
||||
lang = []string{
|
@ -1,4 +1,4 @@
|
||||
package apertiumtranslate
|
||||
package apertium
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
@ -15,25 +15,25 @@ const (
|
||||
textURL = "https://www.apertium.org/apy/translate?langpair=%s|%s&q=%s"
|
||||
)
|
||||
|
||||
type ApertiumTranslate struct {
|
||||
type Translator struct {
|
||||
*core.Language
|
||||
*core.TTSLock
|
||||
core.EngineName
|
||||
}
|
||||
|
||||
func NewApertiumTranslate() *ApertiumTranslate {
|
||||
return &ApertiumTranslate{
|
||||
func NewTranslator() *Translator {
|
||||
return &Translator{
|
||||
Language: core.NewLanguage(),
|
||||
TTSLock: core.NewTTSLock(),
|
||||
EngineName: core.NewEngineName("ApertiumTranslate"),
|
||||
EngineName: core.NewEngineName("Apertium"),
|
||||
}
|
||||
}
|
||||
|
||||
func (t *ApertiumTranslate) GetAllLang() []string {
|
||||
func (t *Translator) GetAllLang() []string {
|
||||
return lang
|
||||
}
|
||||
|
||||
func (t *ApertiumTranslate) Translate(message string) (translation *core.Translation, err error) {
|
||||
func (t *Translator) Translate(message string) (translation *core.Translation, err error) {
|
||||
translation = new(core.Translation)
|
||||
var data map[string]interface{}
|
||||
|
||||
@ -76,7 +76,7 @@ func (t *ApertiumTranslate) Translate(message string) (translation *core.Transla
|
||||
return translation, nil
|
||||
}
|
||||
|
||||
func (t *ApertiumTranslate) PlayTTS(lang, message string) error {
|
||||
func (t *Translator) PlayTTS(lang, message string) error {
|
||||
defer t.ReleaseLock()
|
||||
|
||||
return errors.New(t.GetEngineName() + " does not support text to speech")
|
@ -1,4 +1,4 @@
|
||||
package argostranslate
|
||||
package argos
|
||||
|
||||
var (
|
||||
lang = []string{
|
@ -1,4 +1,4 @@
|
||||
package argostranslate
|
||||
package argos
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
@ -15,25 +15,25 @@ const (
|
||||
textURL = "https://translate.argosopentech.com/translate"
|
||||
)
|
||||
|
||||
type ArgosTranslate struct {
|
||||
type Translator struct {
|
||||
*core.Language
|
||||
*core.TTSLock
|
||||
core.EngineName
|
||||
}
|
||||
|
||||
func NewArgosTranslate() *ArgosTranslate {
|
||||
return &ArgosTranslate{
|
||||
func NewTranslator() *Translator {
|
||||
return &Translator{
|
||||
Language: core.NewLanguage(),
|
||||
TTSLock: core.NewTTSLock(),
|
||||
EngineName: core.NewEngineName("ArgosTranslate"),
|
||||
EngineName: core.NewEngineName("Argos"),
|
||||
}
|
||||
}
|
||||
|
||||
func (t *ArgosTranslate) GetAllLang() []string {
|
||||
func (t *Translator) GetAllLang() []string {
|
||||
return lang
|
||||
}
|
||||
|
||||
func (t *ArgosTranslate) Translate(message string) (translation *core.Translation, err error) {
|
||||
func (t *Translator) Translate(message string) (translation *core.Translation, err error) {
|
||||
translation = new(core.Translation)
|
||||
var data map[string]interface{}
|
||||
|
||||
@ -63,7 +63,7 @@ func (t *ArgosTranslate) Translate(message string) (translation *core.Translatio
|
||||
return translation, nil
|
||||
}
|
||||
|
||||
func (t *ArgosTranslate) PlayTTS(lang, message string) error {
|
||||
func (t *Translator) PlayTTS(lang, message string) error {
|
||||
defer t.ReleaseLock()
|
||||
|
||||
return errors.New(t.GetEngineName() + " does not support text to speech")
|
@ -1,4 +1,4 @@
|
||||
package bingtranslate
|
||||
package bing
|
||||
|
||||
var (
|
||||
lang = []string{
|
@ -1,4 +1,4 @@
|
||||
package bingtranslate
|
||||
package bing
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
@ -24,7 +24,7 @@ const (
|
||||
ttsSSML = "<speak version='1.0' xml:lang='%[1]s'><voice xml:lang='%[1]s' xml:gender='Female' name='%s'><prosody rate='-20.00%%'>%s</prosody></voice></speak>"
|
||||
)
|
||||
|
||||
type BingTranslate struct {
|
||||
type Translator struct {
|
||||
*core.Language
|
||||
*core.TTSLock
|
||||
core.EngineName
|
||||
@ -37,19 +37,19 @@ type setUpData struct {
|
||||
token string
|
||||
}
|
||||
|
||||
func NewBingTranslate() *BingTranslate {
|
||||
return &BingTranslate{
|
||||
func NewTranslator() *Translator {
|
||||
return &Translator{
|
||||
Language: core.NewLanguage(),
|
||||
TTSLock: core.NewTTSLock(),
|
||||
EngineName: core.NewEngineName("BingTranslate"),
|
||||
EngineName: core.NewEngineName("Bing"),
|
||||
}
|
||||
}
|
||||
|
||||
func (t *BingTranslate) GetAllLang() []string {
|
||||
func (t *Translator) GetAllLang() []string {
|
||||
return lang
|
||||
}
|
||||
|
||||
func (t *BingTranslate) setUp() (*setUpData, error) {
|
||||
func (t *Translator) setUp() (*setUpData, error) {
|
||||
data := new(setUpData)
|
||||
|
||||
res, err := http.Get(setUpURL)
|
||||
@ -82,7 +82,7 @@ func (t *BingTranslate) setUp() (*setUpData, error) {
|
||||
return data, nil
|
||||
}
|
||||
|
||||
func (t *BingTranslate) Translate(message string) (translation *core.Translation, err error) {
|
||||
func (t *Translator) Translate(message string) (translation *core.Translation, err error) {
|
||||
translation = new(core.Translation)
|
||||
var data []interface{}
|
||||
|
||||
@ -161,7 +161,7 @@ func (t *BingTranslate) Translate(message string) (translation *core.Translation
|
||||
return translation, nil
|
||||
}
|
||||
|
||||
func (t *BingTranslate) PlayTTS(lang, message string) error {
|
||||
func (t *Translator) PlayTTS(lang, message string) error {
|
||||
defer t.ReleaseLock()
|
||||
|
||||
name, ok := voiceName[lang]
|
@ -1,4 +1,4 @@
|
||||
package bingtranslate
|
||||
package bing
|
||||
|
||||
import (
|
||||
"fmt"
|
@ -1,4 +1,4 @@
|
||||
package googletranslate
|
||||
package google
|
||||
|
||||
// https://cloud.google.com/translate/docs/languages
|
||||
var (
|
@ -1,4 +1,4 @@
|
||||
package googletranslate
|
||||
package google
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
@ -19,25 +19,25 @@ const (
|
||||
ttsURL = "https://translate.google.com.vn/translate_tts?ie=UTF-8&q=%s&tl=%s&client=tw-ob"
|
||||
)
|
||||
|
||||
type GoogleTranslate struct {
|
||||
type Translator struct {
|
||||
*core.Language
|
||||
*core.TTSLock
|
||||
core.EngineName
|
||||
}
|
||||
|
||||
func NewGoogleTranslate() *GoogleTranslate {
|
||||
return &GoogleTranslate{
|
||||
func NewTranslator() *Translator {
|
||||
return &Translator{
|
||||
Language: core.NewLanguage(),
|
||||
TTSLock: core.NewTTSLock(),
|
||||
EngineName: core.NewEngineName("GoogleTranslate"),
|
||||
EngineName: core.NewEngineName("Google"),
|
||||
}
|
||||
}
|
||||
|
||||
func (t *GoogleTranslate) GetAllLang() []string {
|
||||
func (t *Translator) GetAllLang() []string {
|
||||
return lang
|
||||
}
|
||||
|
||||
func (t *GoogleTranslate) Translate(message string) (translation *core.Translation, err error) {
|
||||
func (t *Translator) Translate(message string) (translation *core.Translation, err error) {
|
||||
translation = new(core.Translation)
|
||||
var data []interface{}
|
||||
|
||||
@ -118,7 +118,7 @@ func (t *GoogleTranslate) Translate(message string) (translation *core.Translati
|
||||
return translation, nil
|
||||
}
|
||||
|
||||
func (t *GoogleTranslate) PlayTTS(lang, message string) error {
|
||||
func (t *Translator) PlayTTS(lang, message string) error {
|
||||
defer t.ReleaseLock()
|
||||
|
||||
urlStr := fmt.Sprintf(
|
@ -1,4 +1,4 @@
|
||||
package reversotranslate
|
||||
package reverso
|
||||
|
||||
var (
|
||||
lang = []string{
|
@ -1,4 +1,4 @@
|
||||
package reversotranslate
|
||||
package reverso
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
@ -21,25 +21,25 @@ const (
|
||||
ttsURL = "https://voice.reverso.net/RestPronunciation.svc/v1/output=json/GetVoiceStream/voiceName=%s?voiceSpeed=80&inputText=%s"
|
||||
)
|
||||
|
||||
type ReversoTranslate struct {
|
||||
type Translator struct {
|
||||
*core.Language
|
||||
*core.TTSLock
|
||||
core.EngineName
|
||||
}
|
||||
|
||||
func NewReversoTranslate() *ReversoTranslate {
|
||||
return &ReversoTranslate{
|
||||
func NewTranslator() *Translator {
|
||||
return &Translator{
|
||||
Language: core.NewLanguage(),
|
||||
TTSLock: core.NewTTSLock(),
|
||||
EngineName: core.NewEngineName("ReversoTranslate"),
|
||||
EngineName: core.NewEngineName("Reverso"),
|
||||
}
|
||||
}
|
||||
|
||||
func (t *ReversoTranslate) GetAllLang() []string {
|
||||
func (t *Translator) GetAllLang() []string {
|
||||
return lang
|
||||
}
|
||||
|
||||
func (t *ReversoTranslate) Translate(message string) (translation *core.Translation, err error) {
|
||||
func (t *Translator) Translate(message string) (translation *core.Translation, err error) {
|
||||
translation = new(core.Translation)
|
||||
var data map[string]interface{}
|
||||
|
||||
@ -111,7 +111,7 @@ func (t *ReversoTranslate) Translate(message string) (translation *core.Translat
|
||||
return translation, nil
|
||||
}
|
||||
|
||||
func (t *ReversoTranslate) PlayTTS(lang, message string) error {
|
||||
func (t *Translator) PlayTTS(lang, message string) error {
|
||||
defer t.ReleaseLock()
|
||||
|
||||
name, ok := voiceName[lang]
|
@ -1,21 +1,21 @@
|
||||
package translate
|
||||
|
||||
import (
|
||||
"github.com/eeeXun/gtt/internal/translate/apertiumtranslate"
|
||||
"github.com/eeeXun/gtt/internal/translate/argostranslate"
|
||||
"github.com/eeeXun/gtt/internal/translate/bingtranslate"
|
||||
"github.com/eeeXun/gtt/internal/translate/apertium"
|
||||
"github.com/eeeXun/gtt/internal/translate/argos"
|
||||
"github.com/eeeXun/gtt/internal/translate/bing"
|
||||
"github.com/eeeXun/gtt/internal/translate/core"
|
||||
"github.com/eeeXun/gtt/internal/translate/googletranslate"
|
||||
"github.com/eeeXun/gtt/internal/translate/reversotranslate"
|
||||
"github.com/eeeXun/gtt/internal/translate/google"
|
||||
"github.com/eeeXun/gtt/internal/translate/reverso"
|
||||
)
|
||||
|
||||
var (
|
||||
AllTranslator = []string{
|
||||
"ApertiumTranslate",
|
||||
"ArgosTranslate",
|
||||
"BingTranslate",
|
||||
"GoogleTranslate",
|
||||
"ReversoTranslate",
|
||||
"Apertium",
|
||||
"Argos",
|
||||
"Bing",
|
||||
"Google",
|
||||
"Reverso",
|
||||
}
|
||||
)
|
||||
|
||||
@ -61,16 +61,16 @@ func NewTranslator(name string) Translator {
|
||||
var translator Translator
|
||||
|
||||
switch name {
|
||||
case "ApertiumTranslate":
|
||||
translator = apertiumtranslate.NewApertiumTranslate()
|
||||
case "ArgosTranslate":
|
||||
translator = argostranslate.NewArgosTranslate()
|
||||
case "BingTranslate":
|
||||
translator = bingtranslate.NewBingTranslate()
|
||||
case "GoogleTranslate":
|
||||
translator = googletranslate.NewGoogleTranslate()
|
||||
case "ReversoTranslate":
|
||||
translator = reversotranslate.NewReversoTranslate()
|
||||
case "Apertium":
|
||||
translator = apertium.NewTranslator()
|
||||
case "Argos":
|
||||
translator = argos.NewTranslator()
|
||||
case "Bing":
|
||||
translator = bing.NewTranslator()
|
||||
case "Google":
|
||||
translator = google.NewTranslator()
|
||||
case "Reverso":
|
||||
translator = reverso.NewTranslator()
|
||||
}
|
||||
|
||||
return translator
|
||||
|
Loading…
x
Reference in New Issue
Block a user