百度翻译API翻译Qt LinguistTools的ts文件

embedded/2024/9/23 22:36:13/
python"># coding=utf-8import http.client
import hashlib
import urllib
import random
import json
import xml.etree.ElementTree as ET
import timeappid = ''  # 填写你的appid
secretKey = ''  # 填写你的密钥def translate_text(text):httpClient = Nonemyurl = 'https://fanyi-api.baidu.com/api/trans/vip/translate'result = ''fromLang = 'zh'  # 原文语种toLang = 'en'  # 译文语种salt = random.randint(32768, 65536)#text = '苹果'sign = appid + text + str(salt) + secretKeysign = hashlib.md5(sign.encode()).hexdigest()myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(text) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(salt) + '&sign=' + signtry:httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')httpClient.request('GET', myurl)# response是HTTPResponse对象response = httpClient.getresponse()result_all = response.read().decode("utf-8")result = json.loads(result_all)print(result)result = result['trans_result'][0]['dst']return result;except Exception as e:print(e)finally:if httpClient:httpClient.close()def translate_ts_file(input_file, output_file):# 解析 TS 文件tree = ET.parse(input_file)root = tree.getroot()# 遍历所有的消息for context in root.findall('context'):for message in context.findall('message'):source = message.find('source')if source is not None:text_to_translate = source.textif text_to_translate:print(f'Translating: {text_to_translate}')translated_text = translate_text(text_to_translate)translation = message.find('translation')if translation is None:translation = ET.SubElement(message, 'translation', type="unfinished")else:translation.set('type', 'finished')  # 更新 type 属性translation.text = translated_texttime.sleep(1);# 写入翻译后的 TS 文件tree.write(output_file, encoding='utf-8', xml_declaration=True)print(f'Translated TS file saved as: {output_file}')if __name__ == "__main__":filename = input("请输入ts文件名(en):")translate_ts_file(filename, filename)

由于API限制访问频率,所以加了sleep


推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/3Zqhgt


http://www.ppmy.cn/embedded/107444.html

相关文章

【Spring Boot-IDEA创建spring boot项目方法】

1. 使用Spring Initializr 的 Web页面创建项目 2. 使用 IDEA 直接创建项目,其中有两种不同的搭建路径 3. 使用 IDEA 创建Maven项目并改造为springBoot 最常使用的两种方法其实就是一种,这里介绍在ieda中如何搭建 SpringBoot项目。 1.new Project--> 2…

25考研人数预计下降?这一届考研有哪些新趋势?

2025年考研时间线: 2024年9月:公共课及各院校考试大纲公布; 2024年9月下旬:预报名; 2024年10月:正式报名; 2024年11月:线上/线下确认; 2024年12月中下旬&#xff1a…

Node.js之文件复制

1.方式一:readFile // 导入fs模块 const fs require("fs") // 导入process模块 const process require("process")// 读取文件内容 let data fs.writeFileSync(./test.txt) // 写入文件内容 fs.writeFileSync(./test1.txt, data) 2.方式二&…

每天一个数据分析题(五百二十四)- 向量空间模型

向量空间模型是信息检索技术,下面有关向量空间模型(VSM)的描述中,错误的是: A. 以向量来表示文档后,两者的夹角越小说明相似度越高 B. 文本特征词的向量权重可通过TF-IDF实现,从而保留文本词序…

【最新华为OD机试E卷】空栈压数(200分)-多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,…

Java中等题-递增的三元子序列(力扣)

你一个整数数组 nums &#xff0c;判断这个数组中是否存在长度为 3 的递增子序列。 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k &#xff0c;使得 nums[i] < nums[j] < nums[k] &#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例…

COD论文笔记 Adaptive Guidance Learning for Camouflaged Object Detection

论文的主要动机、现有方法的不足、拟解决的问题、主要贡献和创新点如下&#xff1a; 动机&#xff1a; 论文的核心动机是解决伪装目标检测&#xff08;COD&#xff09;中的挑战性任务。伪装目标检测旨在识别和分割那些在视觉上与周围环境高度相似的目标&#xff0c;这对于计算…

创建锁对象/函数

描述&#xff1a;某些单据进行修改时&#xff0c;需要锁定数据 方法步骤&#xff1a; 1、se11&#xff1a;可copy创建新锁 EZSDDH 2、输入需要锁定的主表&#xff0c;锁参数会根据主键自动补填 3、激活后&#xff0c;会生成对应的锁函数 ENQUEUE_EZSDDH &#xff1a;锁定表 …