Appearance
通用百度翻译接口
要对接百度翻译接口,你需要进行以下步骤:
注册百度开发者账号并创建一个翻译服务应用。
- 访问 百度开发者中心 ↗ 并注册一个账号。
- 在控制台中创建一个新的翻译服务应用。
- 获取应用的 App ID 和密钥,这些将用于进行 API 调用身份验证。
构建 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}
: 根据签名规则生成的签名字符串。
- 百度翻译接口的请求 URL 格式为:
生成签名字符串。
百度翻译接口的身份验证需要一个签名字符串。
将 App ID、要翻译的文本、随机数和密钥按照一定的规则拼接起来,然后计算 MD5 值,最终生成签名字符串。
这是一个示例的 TypeScript 代码来生成签名字符串:
typescriptimport * 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'
替换为你的实际值。
发起 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 数据。最终,翻译结果将打印出来。
请注意,此代码示例仅供参考,你可能需要根据实际需求进行适当的修改和错误处理。