50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package ipc
|
|
|
|
import (
|
|
document "textualize/core/Document"
|
|
"textualize/translate"
|
|
)
|
|
|
|
type Channel struct{}
|
|
|
|
var channelInstance *Channel
|
|
|
|
func GetInstance() *Channel {
|
|
if channelInstance == nil {
|
|
channelInstance = &Channel{}
|
|
}
|
|
|
|
return channelInstance
|
|
}
|
|
|
|
func (c *Channel) RequestTranslateArea(areaId string) bool {
|
|
documentOfArea := document.GetDocumentCollection().GetDocumentByAreaId(areaId)
|
|
area := documentOfArea.GetAreaById(areaId)
|
|
processedArea := document.GetProcessedAreaCollection().GetAreaById(area.Id)
|
|
|
|
var textToTranslate string
|
|
for _, line := range processedArea.Lines {
|
|
for _, word := range line.Words {
|
|
textToTranslate = textToTranslate + " " + word.FullText
|
|
}
|
|
}
|
|
|
|
var sourceLanguage string
|
|
if area.Language.TranslateCode != "" {
|
|
sourceLanguage = area.Language.TranslateCode
|
|
} else if documentOfArea.DefaultLanguage.TranslateCode != "" {
|
|
sourceLanguage = documentOfArea.DefaultLanguage.TranslateCode
|
|
} else {
|
|
return false
|
|
}
|
|
|
|
sourceLanguage = "he"
|
|
targetLanguage := "en"
|
|
translatedText := translate.Text(textToTranslate, sourceLanguage, targetLanguage)
|
|
if translatedText == "" {
|
|
return true
|
|
} else {
|
|
return false
|
|
}
|
|
}
|