translator_engine

package module
v1.0.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 19, 2023 License: MIT Imports: 23 Imported by: 0

README

API集成翻译引擎

已接入 有道翻译、腾讯翻译、阿里翻译、百度翻译

有道,阿里支持领域型翻译(专业化),需要开通对应服务

如果指定的翻译模型不支持则会使用普通翻译模型

有道支持专业化列表

        // Medicine 医疗
	Medicine Scene = iota + 1

	// Computers 计算机
	Computers

	// Finance 金融
	Finance
阿里支持专业化列表

        // Medicine 医疗
	Medicine Scene = iota + 1

	// Finance 金融
	Finance

	// Social 社交
	Social

	// Title 商品标题
	Title

	// Desc 商品描述
	Desc

	// Communicate 商品沟通
	Communicate

使用
引入依赖
go get github.com/NoahAmethyst/translator-engine
使用示例代码
有道

import (
"github.com/NoahAmethyst/translator-engine"
"os"
"testing"
)

//一般文本翻译
func TestYoudaoTrans(t *testing.T) {
        
    from := translator_engine.AUTO
    to := translator_engine.EN
    src := "这是一段用来测试的文本,它的语言是中文,将要翻译为英文"
    
    apiKey := os.Getenv("API_KEY")
    secretKey := os.Getenv("SECRET_KEY")
    
    cli := translator.EngFactory.BuildYoudaoEng(apiKey, secretKey)
    
    result, err := cli.TransText("This is a test,for testing translation.", translator.AUTO, translator.ZH)
    
    if err != nil {
    panic(err)
    }
    
    t.Logf("%+v", result)

}

//专业化文本翻译
func TestYoudaoTransWithScene(t *testing.T) {
    	
    from := translator_engine.AUTO
    to := translator_engine.EN
    src := "这是一段用来测试的文本,它的语言是中文,将要翻译为英文"
    
    apiKey := os.Getenv("API_KEY")
    secretKey := os.Getenv("SECRET_KEY")
    
    cli := translator_engine.EngFactory.BuildYoudaoEng(appKey, secretKey)
    
    //指定以金融专业模型翻译,如果失败则会使用一般翻译
    result, err := cli.TransText(src, from, to, translator_engine.Finance)
    
    if err != nil {
    panic(err)
    }
    
    t.Logf("youdao translate result:%+v", result)

}

腾讯
/**
腾讯不支持专业化翻译
 */
import (
"github.com/NoahAmethyst/translator-engine"
"os"
"testing"
)

func TestTencentTrans(t *testing.T) {
    	
    from := translator_engine.AUTO
    to := translator_engine.EN
    src := "这是一段用来测试的文本,它的语言是中文,将要翻译为英文"
    
    secretId := os.Getenv("TC_SECRET_ID") 
    secretKey := os.Getenv("TC_SECRET_KEY")
    
    cli, _ := translator_engine.EngFactory.BuildTencentEng(secretId, secretKey)
    
    result, err := cli.TransText(src, from, to)
    
    if err != nil {
    panic(err)
    }
    
    t.Logf("%+v", result)

}

阿里

import (
"github.com/NoahAmethyst/translator-engine"
"os"
"testing"
)

//一般文本翻译
func TestAliTrans(t *testing.T) {
    
    from := translator_engine.AUTO
    to := translator_engine.EN
    src := "这是一段用来测试的文本,它的语言是中文,将要翻译为英文"
    
    accessId := os.Getenv("ALI_ACCESS_ID")
    accessKey := os.Getenv("ALI_ACCESS_SECRET")
    
    cli, err := translator_engine.EngFactory.BuildAliEngine(accessId, accessKey)
    
    if err != nil {
    panic(err)
    }
    
    result, err := cli.TransText(src, from, to)
    
    if err != nil {
    panic(err)
    }
    
    t.Logf("ali translate result:%+v", result)

}

//专业化文本翻译
func TestAliTransWithScene(t *testing.T) {
    
    from := translator_engine.AUTO
    to := translator_engine.EN
    src := "这是一段用来测试的文本,它的语言是中文,将要翻译为英文"
    
    accessId := os.Getenv("ALI_ACCESS_ID")
    accessKey := os.Getenv("ALI_ACCESS_SECRET")
    
    cli, err := translator_engine.EngFactory.BuildAliEngine(id, secret)
    
    if err != nil {
    panic(err)
    }
    
    result, err := cli.TransText(src, from, to, translator_engine.Medicine)
    
    if err != nil {
    panic(err)
    }
    
    t.Logf("ali translate result:%+v", result)

}

百度

/**
百度不支持专业化翻译
*/
import (
"github.com/NoahAmethyst/translator-engine"
"os"
"testing"
)
func TestBaiduTrans(t *testing.T) {

    from := translator_engine.AUTO
    to := translator_engine.EN
    src := "这是一段用来测试的文本,它的语言是中文,将要翻译为英文"
    
    apiKey := os.Getenv("BAIDU_API_KEY")
    secretKey := os.Getenv("BAIDU_SECRET_KEY")
    
    cli := translator_engine.EngFactory.BuildBaiduEng(apiKey, secretKey)
    result, err := cli.TransText(src, from, to)
    
    if err != nil {
    panic(err)
    }
    
    t.Logf("baidu translate result:%+v", result)

}

通用型

import (
	"github.com/NoahAmethyst/translator-engine"
	"testing"
)

func TestIBaiduTrans(t *testing.T) {
	from := translator_engine.AUTO
	to := translator_engine.EN
	src := "这是一段用来测试的文本,它的语言是中文,将要翻译为英文"
        apiKey := os.Getenv("BAIDU_API_KEY")
        secretKey := os.Getenv("BAIDU_SECRET_KEY")
	baiduEng := translator_engine.EngFactory.BuildBaiduEng(apiKey, secretKey)
	baiduResult, err := translator_engine.TransText(src, from, to, baiduEng)
	if err != nil {
		panic(err)
	}
	t.Logf("baidu trans result:%+v", baiduResult)
}

func TestIYoudaoTrans(t *testing.T) {
	from := translator_engine.AUTO
	to := translator_engine.EN
	src := "这是一段用来测试的文本,它的语言是中文,将要翻译为英文"
	
        apiKey := os.Getenv("API_KEY")
        secretKey := os.Getenv("SECRET_KEY")

	youdaoEng := translator_engine.EngFactory.BuildYoudaoEng(appKey, secretKey)
	youdaoResult, err := translator_engine.TransText(src, from, to, youdaoEng, translator_engine.Finance)
	if err != nil {
		panic(err)
	}
	t.Logf("youdao trans result:%+v", youdaoResult)
}

func TestITencentTrans(t *testing.T) {
	from := translator_engine.AUTO
	to := translator_engine.EN
	src := "这是一段用来测试的文本,它的语言是中文,将要翻译为英文"
        secretId := os.Getenv("TC_SECRET_ID")
        secretKey := os.Getenv("TC_SECRET_KEY")
	tencentEng, err := translator_engine.EngFactory.BuildTencentEng(secretId, secretKey)
	if err != nil {
		panic(err)
	}
	tencentResult, err := translator_engine.TransText(src, from, to, tencentEng)
	if err != nil {
		panic(err)
	}
	t.Logf("tencent trans result:%+v", tencentResult)
}

func TestIAliTrans(t *testing.T) {
	from := translator_engine.AUTO
	to := translator_engine.EN
	src := "这是一段用来测试的文本,它的语言是中文,将要翻译为英文"
	
        accessId := os.Getenv("ALI_ACCESS_ID")
        accessKey := os.Getenv("ALI_ACCESS_SECRET")
	
	aliEng, err := translator_engine.EngFactory.BuildAliEngine(accessId, accessKey)
	if err != nil {
		panic(err)
	}

	aliResult, err := translator_engine.TransText(src, from, to, aliEng, translator_engine.Finance)
	if err != nil {
		panic(err)
	}
	t.Logf("ali trans result:%+v", aliResult)
}

Documentation

Index

Constants

View Source
const (
	// ZH 中文
	ZH = "zh"
	// ZH_TW 中文繁体
	ZH_TW = "zh-TW"
	// EN 英文
	EN = "en"
	// JA 日文
	JA = "ja"
	// KO 韩文
	KO = "ko"
	// FR 法文
	FR = "fr"
	// ES 西班牙文
	ES = "es"
	// PT 葡萄牙文
	PT = "pt"
	// IT 意大利文
	IT = "it"
	// RU 俄文
	RU = "ru"
	// DE 德语
	DE = "de"
	// TR 土耳其语
	TR = "tr"
	// VI 越南语
	VI = "vi"
	// ID 印尼
	ID = "id"
	// TH 泰语
	TH = "th"
	// MS 马来语
	MS = "ms"
	// AUTO 自动识别,仅对from有效
	AUTO = "auto"
)

Variables

View Source
var EngFactory = factory{}

Functions

This section is empty.

Types

type AliTransEngine

type AliTransEngine struct {
	// contains filtered or unexported fields
}

func (*AliTransEngine) LanCodeIn

func (eng *AliTransEngine) LanCodeIn(code string) string

func (*AliTransEngine) LanCodeOut

func (eng *AliTransEngine) LanCodeOut(code string) string

func (*AliTransEngine) TransText

func (eng *AliTransEngine) TransText(src, from, to string, scene ...Scene) (data *TransResult, err error)

func (*AliTransEngine) TransTextDirect

func (eng *AliTransEngine) TransTextDirect(src, from, to string, scene ...Scene) (data *TransResult, err error)

type BaiduTransEngine

type BaiduTransEngine struct {
	// contains filtered or unexported fields
}

func (*BaiduTransEngine) LanCodeIn

func (eng *BaiduTransEngine) LanCodeIn(code string) string

func (*BaiduTransEngine) LanCodeOut

func (eng *BaiduTransEngine) LanCodeOut(code string) string

func (*BaiduTransEngine) SetJar

func (eng *BaiduTransEngine) SetJar(jar http.CookieJar) *BaiduTransEngine

func (*BaiduTransEngine) SetTimeOut

func (eng *BaiduTransEngine) SetTimeOut(timeout time.Duration) *BaiduTransEngine

func (*BaiduTransEngine) SetTransport

func (eng *BaiduTransEngine) SetTransport(transport http.RoundTripper) *BaiduTransEngine

func (*BaiduTransEngine) TransText

func (eng *BaiduTransEngine) TransText(src, from, to string, _ ...Scene) (data *TransResult, err error)

func (*BaiduTransEngine) TransTextDirect

func (eng *BaiduTransEngine) TransTextDirect(src, from, to string, _ ...Scene) (data *TransResult, err error)

type IRequest

type IRequest interface {
	SetHeaders(map[string]string)
	// contains filtered or unexported methods
}

type ITransEngine

type ITransEngine interface {
	LanCodeIn(lanCode string) string
	LanCodeOut(lanCode string) string
	TransTextDirect(src, from, to string, scene ...Scene) (*TransResult, error)
	TransText(src, from, to string, scene ...Scene) (*TransResult, error)
}

type Scene

type Scene int
const (
	// Medicine 医疗
	Medicine Scene = iota + 1

	// Computers 计算机
	Computers

	// Finance 金融
	Finance

	// Social 社交
	Social

	// Title 商品标题
	Title

	// Desc 商品描述
	Desc

	// Communicate 商品沟通
	Communicate
)

type TencentTransEngine

type TencentTransEngine struct {
	// contains filtered or unexported fields
}

func (*TencentTransEngine) LanCodeIn

func (eng *TencentTransEngine) LanCodeIn(code string) string

func (*TencentTransEngine) LanCodeOut

func (eng *TencentTransEngine) LanCodeOut(code string) string

func (*TencentTransEngine) SetRegion

func (eng *TencentTransEngine) SetRegion(region string) error

func (*TencentTransEngine) TransText

func (eng *TencentTransEngine) TransText(src, from, to string, _ ...Scene) (data *TransResult, err error)

func (*TencentTransEngine) TransTextDirect

func (eng *TencentTransEngine) TransTextDirect(src, from, to string, _ ...Scene) (data *TransResult, err error)

type TransResp

type TransResp struct {
	Dst string `json:"dst"`
	Src string `json:"src"`
}

type TransResult

type TransResult struct {
	From string
	To   string
	Src  string
	Dst  string
}

func TransText

func TransText(src, from, to string, eng ITransEngine, scene ...Scene) (*TransResult, error)

type VolcTransEngine

type VolcTransEngine struct {
	// contains filtered or unexported fields
}

func (*VolcTransEngine) LanCodeIn

func (eng *VolcTransEngine) LanCodeIn(code string) string

func (*VolcTransEngine) LanCodeOut

func (eng *VolcTransEngine) LanCodeOut(code string) string

func (*VolcTransEngine) SetTimeout

func (eng *VolcTransEngine) SetTimeout(timeout time.Duration)

func (*VolcTransEngine) TransText

func (eng *VolcTransEngine) TransText(src, from, to string, _ ...Scene) (data *TransResult, err error)

func (*VolcTransEngine) TransTextDirect

func (eng *VolcTransEngine) TransTextDirect(src, from, to string, _ ...Scene) (data *TransResult, err error)

type YoudaoTransEngine

type YoudaoTransEngine struct {
	// contains filtered or unexported fields
}

func (*YoudaoTransEngine) LanCodeIn

func (eng *YoudaoTransEngine) LanCodeIn(code string) string

func (*YoudaoTransEngine) LanCodeOut

func (eng *YoudaoTransEngine) LanCodeOut(code string) string

func (*YoudaoTransEngine) SetJar

func (*YoudaoTransEngine) SetTimeOut

func (eng *YoudaoTransEngine) SetTimeOut(timeout time.Duration) *YoudaoTransEngine

func (*YoudaoTransEngine) SetTransport

func (eng *YoudaoTransEngine) SetTransport(transport http.RoundTripper) *YoudaoTransEngine

func (*YoudaoTransEngine) TransText

func (eng *YoudaoTransEngine) TransText(src, from, to string, scene ...Scene) (data *TransResult, err error)

func (*YoudaoTransEngine) TransTextDirect

func (eng *YoudaoTransEngine) TransTextDirect(src, from, to string, scene ...Scene) (data *TransResult, err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL