在obsidian
社區插件市場中安裝插件Search on Internet
申請百度翻譯 API後,在以下連結中填入appid
以及appkey
後填入插件配置中的URL
欄,設定to_lang
可以改變翻譯的語言,具體查看百度翻譯API
文檔
https://xxx/query?query={{query}}&appid={appid}&appkey={appkey}&to_lang=zh
選中文本後右鍵 Search on ***
完整代碼
from flask import Flask, request, jsonify
import hashlib
import requests
import random
app = Flask(__name__)
# 設置appid/appkey.
# appid = 'appid'
# appkey = 'appkey'
from_lang = 'auto'
# to_lang = 'zh'
endpoint = 'http://api.fanyi.baidu.com'
path = '/api/trans/vip/translate'
url = endpoint + path
def make_md5(s, encoding='utf-8'):
return hashlib.md5(s.encode(encoding)).hexdigest()
@app.route('/query', methods=['GET'])
def translate_query():
try:
# 獲取查詢參數
query = request.args.get('query', '')
appid = request.args.get('appid', '')
appkey = request.args.get('appkey', '')
to_lang = request.args.get('to_lang', '')
# 隨機生成salt
salt = random.randint(32768, 65536)
# 計算md5
sign = make_md5(appid + query + str(salt) + appkey)
# 構建請求參數
headers = {'Content-Type': 'application/x-www-form-urlencoded'}
payload = {'appid': appid, 'q': query, 'from': from_lang, 'to': to_lang, 'salt': salt, 'sign': sign}
# 發送請求到翻譯API
response = requests.post(url, params=payload, headers=headers)
result = response.json()
# 提取翻譯結果
translations = result.get("trans_result", [])
output = []
for item in translations:
dst = item.get("dst", "")
src = item.get("src", "")
# 不再需要手動處理Unicode轉義字符
separate = "——————————————————————————————"
output.append(f"{separate} <br> 譯文: <br> {dst} <br><br> 原文: <br> {src} <br><br>")
return "\n\n".join(output)
except Exception as e:
return jsonify({'error': str(e)}), 500
if __name__ == '__main__':
app.run(debug=True, port=8081)
重啟服務命令:
systemctl restart myflaskapp.service