Python使用百度通用API进行翻译
想汉化StarUML这个软件,感觉工作量太大,想要用Python自动翻译。
结果网上找的一个个用不了,或者用一会儿就断。
于是自己手写了一个简单的,只有两个类:APIConfig和Translater
使用 demo
my_api_config = APIConfig("12121123456789", "SFNFENRFNEFLWE")
translater = Translater(my_api_config, from_lang="en", to_lang="zh")
print(translater.translate("hello world, I want to love you, Where is my dog?")
)
结果如下,保持灵活这里就没提取dst。
[{'src': 'hello world, I want to love you, Where is my dog?', 'dst': '你好,世界,我想爱你,我的狗在哪里?'}]
调用过快(阈值大概为0.8秒)会导致返回54003,会拒绝访问。
 所以一次尽量多发送点文本。
 

更多问题去FAQ看吧。
APIConfig类
url短期不会变,salt随便填个数字就行。所以这里只需要填写appid和key这两个参数。
到百度进行申请(申请链接:https://fanyi-api.baidu.com/,免费版的一申请就能通过)。
 开发者信息页面有这两个参数。
 
# 百度翻译API配置,链接对的话,填下ID和密匙就OK。
class APIConfig:def __init__(self,appid: str = "",key: str = "",url: str = "https://fanyi-api.baidu.com/api/trans/vip/translate",salt: str = "123"):self.__appid = appid  # 你的百度IDself.__key = key  # 你的密匙self.__url = url  # 百度翻译API链接self.__salt = salt  # 随机数字@propertydef appid(self):return self.__appid@appid.setterdef appid(self, value: str):self.__appid = value@propertydef key(self):return self.__key@key.setterdef key(self, value: str):self.__key = value@propertydef url(self):return self.__url@url.setterdef url(self, value: str):self.__url = value@propertydef salt(self):return self.__salt@salt.setterdef salt(self, value: str):self.__salt = value
Translater 类
class Translater:def __init__(self, config: APIConfig, from_lang: str, to_lang: str):self.__config = config  # API配置self.__from_lang = from_lang  # 原语言,可为autoself.__to_lang = to_lang  # 目标语言# 按百度API要求连接要加密的文本def __make_md5_text(self, query: str) -> str:return "{}{}{}{}".format(self.__config.appid,query,self.__config.salt,self.__config.key)# 按百度API要求进行MD5加密def __make_signture(self, query: str) -> str:md5 = hashlib.md5()md5.update(self.__make_md5_text(query).encode('utf-8'))return md5.hexdigest()# 发送post请求调用百度APIdef __post(self, query: str):headers = {"Content-Type": "application/x-www-form-urlencoded"}data = {"q": query,"from": self.__from_lang,"to": self.__to_lang,"appid": self.__config.appid,"salt": self.__config.salt,"sign": self.__make_signture(query)}try:response = requests.post(url=self.__config.url, headers=headers, data=data)return responseexcept Exception as e:print(str(e))exit()# 用户接口def translate(self, query: str) -> list:result = self.__post(query).json()if "trans_result" in result:return result["trans_result"]else:print("错误信息:" + str(result))raise RuntimeError("百度翻译失败,请检验配置有效性")
相关文章:
 
Python使用百度通用API进行翻译
想汉化StarUML这个软件,感觉工作量太大,想要用Python自动翻译。 结果网上找的一个个用不了,或者用一会儿就断。 于是自己手写了一个简单的,只有两个类:APIConfig和Translater 使用 demo my_api_config APIConfig(…...
 
JavaScript 弹窗
文章目录JavaScript 弹窗警告框确认框提示框换行JavaScript 弹窗 可以在 JavaScript 中创建三种消息框:警告框、确认框、提示框。 警告框 警告框经常用于确保用户可以得到某些信息。 当警告框出现后,用户需要点击确定按钮才能继续进行操作。 语法 wi…...
408复试day1
文章目录数据结构计算机组成原理操作系统计算机网络数据结构 深度优先遍历DFS: 首先访问图中起始顶点v,然后由v出发,访问与v邻接且未被访问的顶点v1,再访问与v1相邻的且未被访问的顶点v2……重复上述过程。当不能再继续向下访问时…...
 
gdb openocd jlink arm-a9调试
连接关系是这样的:gdb —> openocd —>(这里需要两个xx.cfg配置文件) jlink —> arm-a9板子 具体流程是这样的: 给jlink(硬件调试器)安装驱动,用USB Driver Tool这个软件,…...
 
Leetcode Solutions - Part 2
1. Two Sum 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按…...
外盘国际期货:围观那些奇葩的国际节日?
围观那些奇葩的国际节日? 2月24日:世界讨厌香菜日,号召全世界所以讨厌香菜的人一起抵制香菜,2016年世界反香菜联盟 3月21日:世界睡眠日,唤起全民对睡眠重要性的认识,2001年国际精神卫生组织 …...
 
Kubernetes之服务的基本管理
svc是kubernetes最核心的概念,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并将请求进行负载分发到后端的各个容器应用上。pod生命周期短不稳定,pod异常后新生成的pod的IP会发生变化,通过…...
 
TimeWheel时间轮算法原理及实现(附源码)
时间轮算法原理及实现前言1.时间轮核心2.简单定时器3.任务队列4.优化任务队列5.简单时间轮6.多层时间轮前言 在各种业务场景中,我们总是会需要一些定时进行一些操作,这些操作可能是需要在指定的某个时间点操作,也可能是每过一个固定的时间间隔后进行操作,这就要求我们需要有一个…...
 
【蓝牙mesh】Upper协议层介绍
【蓝牙mesh】Upper协议层介绍 Upper层简介 Upper协议层用于处理网络层以上的功能,包括设备的应用层数据、安全、群组等信息,是实现蓝牙mesh应用功能的关键协议之一。Upper层接收来自Access层的数据或者是Upper层自己生成的Control数据,并且将…...
 
NEXUS 6P刷机安装Edxposed
刷机 abd等工具下载: https://developer.android.com/studio/releases/platform-tools?hlzh-cn 下载后配置环境变量 镜像下载: https://developers.google.com/android/images?hlzh-cn#angler Magisk下载 GitHub - topjohnwu/Magisk: The Magic M…...
web、ES、vue等知识总结
1:Vue2和vue3的区别: 一个、两个2:Vue3.x为什么要用Proxy来代替Object.defineProperty?3:Proxy4:一些知识点的原理全面5:vue3中加入eslint和prettier6:详解vue中的diff算法7:响应式布局的常用解决方案对比…...
数据库第一章(王珊课后习题)
文章目录1.试述数据、数据库、数据库管理系统、数据库系统的概念2.使用数据库系统有什么好处?3.试述文件系统与数据库系统的区别和联系。4.试述数据库系统的特点5.数据库管理系统的主要功能有哪些?6.什么是概念模型?试叙述概念模型的作用7.解释实体、实…...
 
设计模式(十一)----结构型模式之装饰者模式
1、概述 我们先来看一个快餐店的例子。 快餐店有炒面、炒饭这些快餐,可以额外附加鸡蛋、火腿、培根这些配菜,当然加配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就会显得比较麻烦。 使用继承的方式存在的问题&…...
 
lighthouse的介绍和基本使用方法
Lighthouse简介 Lighthouse是一个开源的自动化性能测试工具,我们可以使用该功能检测我们的页面存在那些性能方面的问题,并会生成一个详细的性能报告来帮助我们来优化页面 使用方式 LH一共有四种使用方式 Chrome开发者工具Chrome扩展Node 命令行Node …...
 
分布式算法 - Raft算法
Paxos是出了名的难懂,而Raft正是为了探索一种更易于理解的一致性算法而产生的。它的首要设计目的就是易于理解,所以在选主的冲突处理等方式上它都选择了非常简单明了的解决方案。推荐阅读提示强烈推荐通过如下资料学习raft。 raft.github.io这里面有一个…...
 
Python|每日一练|链表|双指针|数组|递归|图算法|单选记录:删除链表的倒数第 N 个结点|下一个排列|迷宫问题
1、删除链表的倒数第 N 个结点(链表,双指针) 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 进阶:你能尝试使用一趟扫描实现吗? 示例 1: 输入:head …...
天线理论知识2——宽带天线介绍
系列文章目录 文章目录 系列文章目录前言一、行波天线1. 长导线天线2. V形天线二、螺旋天线三、八木-宇田天线前言 宽带天线指的是具有哦宽频带特性的天线,常见的宽带天线有行波天线,螺旋天线以及八木天线。 一、行波天线 长度为 l l l的中心馈电的线天线上的电流呈驻波分…...
【计组笔记05】计算机组成与原理之虚拟存储器、指令系统、中央处理器CPU
这篇文章,主要介绍计算机组成与原理之虚拟存储器、指令系统、中央处理器CPU。 目录 一、虚拟存储器 1.1、页式虚拟存储器 1.2、段式虚拟存储器 1...
多功能土壤速测仪功能介绍
大家好,今天给大家介绍一款多功能土壤速测仪,它由多功能速测仪主机、土壤墒情传感器、USB数据线、电源适配器、便携式手提箱等部分组成。速测主机配备有工业级液晶屏,大屏幕中文显示,使得测量参数,时间,设备…...
《设计模式》命令模式
《设计模式》命令模式 命令模式(Command Pattern)是一种行为型设计模式,它将请求和处理分开,使得请求发送者和接收者解耦,从而降低系统的耦合度。在命令模式中,请求被封装为一个独立的对象,并且…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
 
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
 
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
 
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
 
【Linux系统】Linux环境变量:系统配置的隐形指挥官
。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量:setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
 
stm32wle5 lpuart DMA数据不接收
配置波特率9600时,需要使用外部低速晶振...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...
 
一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...
Python第七周作业
Python第七周作业 文章目录 Python第七周作业 1.使用open以只读模式打开文件data.txt,并逐行打印内容 2.使用pathlib模块获取当前脚本的绝对路径,并创建logs目录(若不存在) 3.递归遍历目录data,输出所有.csv文件的路径…...
