Skip to content
On this page

通用百度翻译接口

要对接百度翻译接口,你需要进行以下步骤:

  1. 注册百度开发者账号并创建一个翻译服务应用。

    • 访问 百度开发者中心 ↗ 并注册一个账号。
    • 在控制台中创建一个新的翻译服务应用。
    • 获取应用的 App ID 和密钥,这些将用于进行 API 调用身份验证。
  2. 构建 API 请求 URL。

    • 百度翻译接口的请求 URL 格式为:http://api.fanyi.baidu.com/api/trans/vip/translate?q={text}&from={source}&to={target}&appid={appId}&salt={salt}&sign={sign}
    • 在 URL 中替换以下参数:
      • {text}: 要翻译的文本内容。
      • {source}: 源语言代码。
      • {target}: 目标语言代码。
      • {appId}: 你的应用的 App ID。
      • {salt}: 一个随机数,用于生成签名。
      • {sign}: 根据签名规则生成的签名字符串。
  3. 生成签名字符串。

    • 百度翻译接口的身份验证需要一个签名字符串。

    • 将 App ID、要翻译的文本、随机数和密钥按照一定的规则拼接起来,然后计算 MD5 值,最终生成签名字符串。

    • 这是一个示例的 TypeScript 代码来生成签名字符串:

      typescript
      import * as crypto from 'crypto';
      
      function generateSign(appId: string, text: string, salt: string, key: string): string {
        const str = `${appId}${text}${salt}${key}`;
        const md5 = crypto.createHash('md5');
        const sign = md5.update(str).digest('hex');
        return sign;
      }
      
      const appId = 'YOUR_APP_ID';
      const text = 'Hello';
      const salt = 'RANDOM_SALT';
      const key = 'YOUR_APP_KEY';
      
      const sign = generateSign(appId, text, salt, key);

      请将 'YOUR_APP_ID''RANDOM_SALT''YOUR_APP_KEY' 替换为你的实际值。

  4. 发起 HTTP 请求并处理响应。

    • 使用你喜欢的 HTTP 请求库(例如 Axios、node-fetch 等)发起 HTTP GET 请求到构建好的请求 URL。
    • 解析响应并提取翻译结果。

这样,你就可以通过对接百度翻译接口来实现文本翻译功能。请注意,这只是一个基本的概述,实际的实现可能需要考虑更多的细节和错误处理。

以下是一个使用 Python 进行百度翻译接口对接的示例代码:

python
import hashlib
import random
import requests

def generate_sign(app_id, text, salt, app_key):
    sign_str = app_id + text + salt + app_key
    sign = hashlib.md5(sign_str.encode()).hexdigest()
    return sign

def translate_text(app_id, app_key, text, source_lang, target_lang):
    url = 'http://api.fanyi.baidu.com/api/trans/vip/translate'

    salt = str(random.randint(1, 65536))
    sign = generate_sign(app_id, text, salt, app_key)

    params = {
        'q': text,
        'from': source_lang,
        'to': target_lang,
        'appid': app_id,
        'salt': salt,
        'sign': sign
    }

    response = requests.get(url, params=params)
    json_data = response.json()

    if 'trans_result' in json_data:
        translation = json_data['trans_result'][0]['dst']
        return translation
    else:
        error_code = json_data.get('error_code')
        error_msg = json_data.get('error_msg')
        raise Exception(f'Translation failed. Error code: {error_code}, Error message: {error_msg}')

# 使用示例
app_id = 'YOUR_APP_ID'
app_key = 'YOUR_APP_KEY'
text = 'Hello'
source_lang = 'en'
target_lang = 'zh'

translation = translate_text(app_id, app_key, text, source_lang, target_lang)
print(f'Translation: {translation}')

请将 'YOUR_APP_ID''YOUR_APP_KEY' 替换为你在百度开发者中心创建的应用的实际值。此示例使用 requests 库发送 HTTP 请求,并使用 json() 方法解析响应的 JSON 数据。最终,翻译结果将打印出来。

请注意,此代码示例仅供参考,你可能需要根据实际需求进行适当的修改和错误处理。