cloud_translate.go 822 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package services
  2. import (
  3. "cloud.google.com/go/translate"
  4. "context"
  5. "fmt"
  6. "golang.org/x/text/language"
  7. )
  8. func GoogleCouldTranslateText(targetLanguage string, text []string) (list map[int]string, err error) {
  9. list = make(map[int]string, 0)
  10. // text := "The Go Gopher is cute"
  11. ctx := context.Background()
  12. lang, err := language.Parse(targetLanguage)
  13. if err != nil {
  14. err = fmt.Errorf("language.Parse: %v", err)
  15. return
  16. }
  17. client, err := translate.NewClient(ctx)
  18. if err != nil {
  19. return
  20. }
  21. defer client.Close()
  22. resp, err := client.Translate(ctx, text, lang, nil)
  23. if err != nil {
  24. err = fmt.Errorf("Translate: %v", err)
  25. return
  26. }
  27. if len(resp) == 0 {
  28. err = fmt.Errorf("Translate returned empty response to text one: %s.", text[0])
  29. return
  30. }
  31. for k, v := range resp {
  32. list[k] = v.Text
  33. }
  34. return
  35. }