lark

next

Code Create Life
telegram
tg_channel
x
github
zhihu
email
follow

Obsidianは、百度翻訳を実現しています。

obsidianコミュニティのプラグインマーケットでプラグインSearch on Internetをインストールします。

百度翻訳 APIを申請した後、以下のリンクにappidappkeyを入力し、プラグインの設定の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

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。