Skip to content

Repository files navigation

go-translation

Go Reference CI License: MIT

Go 语言多翻译 API 统一封装库,支持 18+ 种翻译服务。

安装

go get github.com/beesoft/go-translation

快速开始

package main

import (
    "context"
    "fmt"
    "os"

    "github.com/beesoft/go-translation"
    "github.com/beesoft/go-translation/translators/openai"
)

func main() {
    translator := openai.NewTranslator(
        translation.ApiKey(os.Getenv("OPENAI_API_KEY")),
        translation.From("zh"),
        translation.To("en"),
    )

    result, err := translator.Translate(context.Background(), "你好,世界!")
    if err != nil {
        fmt.Println("error:", err)
        return
    }
    fmt.Printf("译文: %s\n", result.To.Content)
}

接口

type Translator interface {
    Translate(ctx context.Context, src string) (*Translate, error)
    TranslateJson(ctx context.Context, src string) (*Translate, error)
}

通用 Option

Option 说明 默认值
translation.ApiKey(key) API 密钥 -
translation.AppId(id) 应用 ID -
translation.AppSecret(secret) 应用密钥 -
translation.BaseUrl(url) 自定义 API 地址 各翻译器默认值
translation.From(lang) 源语言 zh
translation.To(lang) 目标语言 en
translation.Timeout(d) 请求超时 30s
translation.MaxRetries(n) 最大重试次数 3
translation.Model(model) LLM 模型名 -
translation.WithContext(ctx) 基础 context -

支持的翻译器

AI 大模型

翻译器 包名 认证方式 申请链接
OpenAI translators/openai ApiKey https://platform.openai.com/api-keys
Claude translators/anthropic ApiKey https://console.anthropic.com/settings/keys
Ark (豆包) translators/ark ApiKey https://console.volcengine.com/ark
translator := openai.NewTranslator(
    translation.ApiKey("sk-xxx"),
    translation.From("zh"), translation.To("en"),
    openai.WithModel("gpt-4o"),
)

国内厂商

翻译器 包名 认证方式 申请链接
阿里云 translators/aliyun AppId + AppSecret https://ram.console.aliyun.com/manage/ak
百度 translators/baidu ApiKey + AppSecret https://fanyi-api.baidu.com/
腾讯 translators/tencent AppId + AppSecret https://console.cloud.tencent.com/cam/capi
讯飞 translators/iflytek AppId + ApiKey + AppSecret https://console.xfyun.cn/
有道 translators/youdao AppId + AppSecret https://ai.youdao.com/
火山翻译 translators/volcengine AppId + AppSecret https://console.volcengine.com/iam/keymanage/
小牛翻译 translators/niutrans ApiKey https://niutrans.com/Account/service
彩云小译 translators/caiyun ApiKey https://dashboard.caiyunapp.com/
深智科技 translators/shenzhi ApiKey https://www.shenzhiapi.com/

国际厂商

翻译器 包名 认证方式 申请链接
Google translators/google ApiKey https://console.cloud.google.com/apis/credentials
Microsoft translators/microsoft ApiKey https://portal.azure.com/ → Cognitive Services
DeepL translators/deepl ApiKey https://www.deepl.com/your-account/keys
Amazon translators/amazon AppId + AppSecret https://console.aws.amazon.com/iam/
IBM Watson translators/watson ApiKey https://cloud.ibm.com/catalog/services/language-translator
Systran translators/systran ApiKey https://www.systran.net/en/account/api/
Smartling translators/smartling ApiKey https://dashboard.smartling.com/

语言代码参考

服务 简体中文 英语
OpenAI / Claude / Ark zh en
Google zh en
百度 zh en
腾讯 zh en
阿里云 zh en
Microsoft zh-Hans en
DeepL ZH EN
Amazon zh en
Watson zh en
讯飞 cn en
有道 zh-CHS en
火山翻译 zh en
小牛翻译 zh en
彩云小译 zh en
深智科技 zh en

环境变量

复制 .env.example.env,填入你的 API 密钥:

cp .env.example .env

运行示例

go run ./examples/openai
go run ./examples/anthropic
go run ./examples/aliyun
go run ./examples/baidu
go run ./examples/youdao
# ... 更多示例见 examples/ 目录

生产特性

  • Context 支持: 支持请求超时和取消
  • 自动重试: 指数退避重试,可配置最大重试次数
  • 超时控制: 可配置 HTTP 请求超时
  • 错误传播: 所有错误通过 error 返回

License

MIT

About

GoLang 翻译 API 集成-阿里&百度&腾讯&有道&讯飞&OpenAI&Anthropic&Ark

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages