1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- package translate
- import (
- "encoding/json"
- "fmt"
- "github.com/volcengine/volc-sdk-golang/base"
- "net/http"
- "net/url"
- "strings"
- "time"
- )
- const (
- kAccessKey = "AKLTNGYwNTk3NGQzMDdmNDk5Njk0YjE5ZTBlMmZjYjgxNzM" // https://console.volcengine.com/iam/keymanage/
- kSecretKey = "Wm1Wa01UbGpOR0U0TW1FNU5ERXpaRGhqT1RRM1pEQm1PREZrTldNeU0yVQ=="
- kServiceVersion = "2020-06-01"
- )
- var (
- ServiceInfo = &base.ServiceInfo{
- Timeout: 5 * time.Second,
- Host: "translate.volcengineapi.com",
- Header: http.Header{
- "Accept": []string{"application/json"},
- },
- Credentials: base.Credentials{Region: base.RegionCnNorth1, Service: "translate"},
- }
- ApiInfoList = map[string]*base.ApiInfo{
- "TranslateText": {
- Method: http.MethodPost,
- Path: "/",
- Query: url.Values{
- "Action": []string{"TranslateText"},
- "Version": []string{kServiceVersion},
- },
- },
- }
- )
- type Req struct {
- SourceLanguage string `json:"SourceLanguage"`
- TargetLanguage string `json:"TargetLanguage"`
- TextList []string `json:"TextList"`
- }
- type Rsp struct {
- TranslationList []struct {
- Translation string `json:"Translation"`
- DetectedSourceLanguage string `json:"DetectedSourceLanguage"`
- } `json:"TranslationList"`
- ResponseMetadata struct {
- RequestId string `json:"RequestId"`
- Action string `json:"Action"`
- Version string `json:"Version"`
- Service string `json:"Service"`
- Region string `json:"Region"`
- Error struct {
- Code string `json:"Code"`
- Message string `json:"Message"`
- } `json:"Error"`
- } `json:"ResponseMetadata"`
- }
- func Translate(zhStr string) (enStr string, err error) {
- client := base.NewClient(ServiceInfo, ApiInfoList)
- client.SetAccessKey(kAccessKey)
- client.SetSecretKey(kSecretKey)
- req := Req{
- SourceLanguage: "zh",
- TargetLanguage: "en",
- TextList: []string{zhStr},
- }
- body, _ := json.Marshal(req)
- resp, code, err := client.Json("TranslateText", nil, string(body))
- if err != nil {
- return enStr, err
- }
- fmt.Printf("%d %s\n", code, string(resp))
- var rsp Rsp
- err = json.Unmarshal(resp, &rsp)
- if err != nil {
- return enStr, err
- }
- return strings.ToLower(rsp.TranslationList[0].Translation), nil
- }
|