mirror of
https://github.com/eeeXun/GTT.git
synced 2025-05-27 21:11:11 -07:00
refactor: NewTranslator in for-loop
NewTranslator by name, so no need to create functions for each Translate
This commit is contained in:
parent
f43dba6263
commit
513ad36470
10
config.go
10
config.go
@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"fmt"
|
||||
"gtt/internal/color"
|
||||
"gtt/internal/translate"
|
||||
"os"
|
||||
|
||||
config "github.com/spf13/viper"
|
||||
@ -66,9 +67,12 @@ func configInit() {
|
||||
}
|
||||
|
||||
// setup
|
||||
for t_str, t := range translators {
|
||||
t.SetSrcLang(config.GetString(fmt.Sprintf("source.language.%s", t_str)))
|
||||
t.SetDstLang(config.GetString(fmt.Sprintf("destination.language.%s", t_str)))
|
||||
for _, name := range translate.AllTranslator {
|
||||
translators[name] = translate.NewTranslator(name)
|
||||
translators[name].SetSrcLang(
|
||||
config.GetString(fmt.Sprintf("source.language.%s", name)))
|
||||
translators[name].SetDstLang(
|
||||
config.GetString(fmt.Sprintf("destination.language.%s", name)))
|
||||
}
|
||||
translator = translators[config.GetString("translator")]
|
||||
hideBelow = config.GetBool("hide_below")
|
||||
|
@ -32,16 +32,21 @@ type Translator interface {
|
||||
PlayTTS(lang string, message string) error
|
||||
}
|
||||
|
||||
func NewArgosTranslate() *argostranslate.ArgosTranslate {
|
||||
return &argostranslate.ArgosTranslate{
|
||||
EngineName: "ArgosTranslate",
|
||||
SoundLock: lock.NewLock(),
|
||||
}
|
||||
}
|
||||
func NewTranslator(name string) Translator {
|
||||
var translator Translator
|
||||
|
||||
func NewGoogleTranslate() *googletranslate.GoogleTranslate {
|
||||
return &googletranslate.GoogleTranslate{
|
||||
EngineName: "GoogleTranslate",
|
||||
SoundLock: lock.NewLock(),
|
||||
switch name {
|
||||
case "ArgosTranslate":
|
||||
translator = &argostranslate.ArgosTranslate{
|
||||
EngineName: "ArgosTranslate",
|
||||
SoundLock: lock.NewLock(),
|
||||
}
|
||||
case "GoogleTranslate":
|
||||
translator = &googletranslate.GoogleTranslate{
|
||||
EngineName: "GoogleTranslate",
|
||||
SoundLock: lock.NewLock(),
|
||||
}
|
||||
}
|
||||
|
||||
return translator
|
||||
}
|
||||
|
5
main.go
5
main.go
@ -16,10 +16,7 @@ var (
|
||||
dstLangArg *string = flag.String("dst", "", "Set destination language")
|
||||
// Translate
|
||||
translator translate.Translator
|
||||
translators = map[string]translate.Translator{
|
||||
"ArgosTranslate": translate.NewArgosTranslate(),
|
||||
"GoogleTranslate": translate.NewGoogleTranslate(),
|
||||
}
|
||||
translators = make(map[string]translate.Translator, len(translate.AllTranslator))
|
||||
// UI
|
||||
app = tview.NewApplication()
|
||||
srcInput = tview.NewTextArea()
|
||||
|
Loading…
x
Reference in New Issue
Block a user