翻译API怎么调用?

wen python案例 2

本文目录导读:

翻译API怎么调用?

  1. 通用原理(无论哪个API,步骤基本如下)
  2. 示例1:使用 DeepL API(推荐,翻译质量高,英文友好)
  3. 示例2:使用百度翻译API(国内常用,支持中文友好)
  4. 常见问题与解决方法
  5. 如果不想写代码:直接用工具或库

“翻译API的调用”通常指的是通过HTTP请求向翻译服务(如Google翻译、DeepL、阿里云翻译、百度翻译等)发送文本,并获取翻译结果。

由于不同的翻译服务商(Google、DeepL、百度、阿里等)的接口地址、认证方式、请求参数都不同,具体调用方式有差异。

下面以目前比较流行的 DeepL API百度翻译API 为例,分别展示如何从零开始调用。


通用原理(无论哪个API,步骤基本如下)

  1. 注册账号:去目标翻译平台(如阿里云、百度、DeepL)注册。
  2. 创建应用/获取密钥:获得 App ID / Access Key / API Key 等认证信息(通常需要付费或实名认证)。
  3. 阅读文档:找到该平台的“API调用说明”,确认请求URL、请求头(Headers)、请求体(Body)格式。
  4. 发送请求:通过代码(Python、JavaScript、Java等)或工具(Postman、curl)发送HTTP POST/GET请求。
  5. 解析响应:接收JSON格式的返回结果,提取翻译后的文本。

示例1:使用 DeepL API(推荐,翻译质量高,英文友好)

DeepL 提供免费额度(每月50万字),用 curl 命令举例:

步骤

  1. 注册 DeepL API 获取 API Key(密钥)。
  2. 打开终端(Mac/Linux)或Git Bash(Windows)。

请求命令(向DeepL发送翻译)

curl -X POST 'https://api-free.deepl.com/v2/translate' \
-H 'Authorization: DeepL-Auth-Key 你的DeepL密钥' \
-H 'Content-Type: application/json' \
-d '{
    "text": ["Hello, how are you?"],
    "target_lang": "ZH"
}'

返回结果(JSON)

{
  "translations": [
    {
      "detected_source_language": "EN",
      "text": "你好,你怎么样?"
    }
  ]
}

说明

  • text:要翻译的文本(支持数组,一次可传多句)。
  • target_lang:目标语言,“ZH”是中文,“JA”是日语等。
  • Authorization:Header中传入密钥。

示例2:使用百度翻译API(国内常用,支持中文友好)

百度翻译需要先申请“通用翻译API”接入。

步骤

  1. 注册百度翻译开放平台,创建应用。
  2. 获得 AppIDSecret Key(密钥)。
  3. 参数需要 sign 签名(加密验证)。

用Python调用示例(推荐新手)

import requests
import hashlib
import random
import json
def baidu_translate(text, from_lang='auto', to_lang='zh'):
    appid = '你的百度翻译AppID'
    secret_key = '你的密钥'
    url = 'https://fanyi-api.baidu.com/api/trans/vip/translate'
    # 生成随机字符串(需要与appid+text+salt+key拼接做md5)
    salt = str(random.randint(32768, 65536))
    sign_str = appid + text + salt + secret_key
    sign = hashlib.md5(sign_str.encode()).hexdigest()
    params = {
        'q': text,
        'from': from_lang,
        'to': to_lang,
        'appid': appid,
        'salt': salt,
        'sign': sign
    }
    response = requests.get(url, params=params)
    result = response.json()
    # 提取翻译结果
    if 'trans_result' in result:
        return result['trans_result'][0]['dst']
    else:
        return '翻译失败:' + str(result)
# 测试
print(baidu_translate('I love programming.'))
# 输出示例:我热爱编程。

注意

  • 百度翻译的签名算法:appid + text + salt + secret_key 做MD5。
  • 免费版有调用频率限制(QPS限制)。

常见问题与解决方法

问题1:返回 “401 unauthorized” / “认证失败”

  • 原因:API Key 错误或未正确放到请求头中。
  • 解决:检查密钥,并确认是否按文档要求放在 AuthorizationHeaderBody

问题2:返回 “请求过于频繁” / “403”

  • 原因:超过免费额度或QPS(每秒请求数)限制。
  • 解决:降低请求频率,或升级付费套餐。

问题3:返回乱码或不翻译

  • 原因target_lang 参数填错(如“中文”应填 zh 而非 cn)。
  • 解决:查看文档确认语言代码(如DeepL用 ZH,百度用 zh)。

问题4:没有找到免费的API

  • 建议
    • DeepL免费版(每月50万字)足以满足个人或小项目。
    • 百度翻译标准版免费额度较低,但入门方便。
    • 如果只是临时使用,也可以直接用浏览器控制台抓包(不推荐生产环境)。

如果不想写代码:直接用工具或库

  1. Postman:可视化工具,填入URL、Headers、Body,直接发送测试。
  2. curl命令(如上所示)适合Unix/Linux/Mac。
  3. Python包 translatorsgoogletrans(非官方,可能不稳定)。
    from translators import translate_text
    result = translate_text('Hello', to_language='zh')
    print(result)  # 输出“你好”

步骤 具体操作
选择平台 推荐:DeepL(质量好)、百度/阿里(国内方便)
获取密钥 注册应用,获得API Key / AppID
阅读文档 查看请求地址、参数、签名方式
发送请求 用curl、Python、Postman发送POST/GET
处理响应 解析JSON,提取翻译文本

如果你能告诉我你想用哪种语言(Python、JavaScript、Java) 以及目标翻译平台(百度、DeepL、阿里),我可以给你一个可以直接复制运行的完整代码。

抱歉,评论功能暂时关闭!