v/GTT
1
0
mirror of https://github.com/eeeXun/GTT.git synced 2025-05-18 08:40:35 -07:00
GTT/internal/translate/translator.go
2023-01-26 23:45:59 +08:00

44 lines
869 B
Go

package translate
import (
"gtt/internal/lock"
"gtt/internal/translate/googletranslate"
"gtt/internal/translate/libretranslate"
)
var (
AllTranslator = []string{"LibreTranslate", "GoogleTranslate"}
)
type Translator interface {
// text
GetAllLang() []string
GetSrcLang() string
GetDstLang() string
SetSrcLang(srcLang string)
SetDstLang(dstLang string)
SwapLang()
Translate(message string) (
translation string,
definition string,
partOfSpeech string,
err error)
// text to speech
LockAvailable() bool
LockAcquire()
StopTTS()
PlayTTS(lang string, message string) error
}
func NewGoogleTranslate() *googletranslate.GoogleTranslate {
return &googletranslate.GoogleTranslate{
SoundLock: lock.NewLock(),
}
}
func NewLibreTranslate() *libretranslate.LibreTranslate {
return &libretranslate.LibreTranslate{
SoundLock: lock.NewLock(),
}
}