前言:
Qt国际化使用的ts文件是xml格式的,如果主机上没有安装qt 的 linguist 语言家应用,则阅读起来很不舒服。
注:本案例可用于xml转excel
手段:
python pandas xml.dom
python有多个excel操作库,比如:xlwings,win32com,... ,openpyxl 等等。网上有很多对比这些库的文章 。这里就不一一列举
各个库的优缺点了。
xml库在python的默认安装包里就有,不需要额外安装,使用也很简单粗暴,使用教程:
xml.dom — The Document Object Model API — Python 3.11.4 documentation
库选型:
github上pandas的社区参与热度明显高于xlwings,win32com资料不多,用起来也麻烦,还要求使用者具备一定的windows使用经验。故选用的是 pandas 处理 excel , pandas 依赖 openpyxl,因此需要同时安装这两个库。
注:win32com 可以理解为对windows com的封装,理论上在windows环境下其功能是最强大的,但是用起来其实就等于在windows的api,与其这样不如直接丢到c++工程里做了。
可执行文件:
为了操作方便,直接提供可用的 exe ,下载链接:
https://download.csdn.net/download/ykun089/12412655
使用说明:
目前已经将输入文件名称写死,故需要把要被转换的文件放到exe同级目录下,同时修改文件名为 en2zh.ts ,最终输出为 en2zh.xlsx 。
效果图:
en2zh.ts:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN" sourcelanguage="en">
<context>
<name>AddrPanel</name>
<message>
<location filename="../qml/panels/xxx.qml" line="236"/>
<location filename="../qml/panels/xxx.qml" line="906"/>
<location filename="../qml/panels/xxx.qml" line="912"/>
<location filename="../qml/panels/xxx.qml" line="921"/>
<source>Enter Search</source>
<translation>输入搜索</translation>
</message>
<message>
<location filename="../qml/panels/xxx.qml" line="241"/>
<source>No Record!</source>
<translation>无记录!</translation>
</message>
<message>
<location filename="../qml/panels/xxx.qml" line="359"/>
<source>"failed!</source>
<translation>失败!</translation>
</message>
<message>
<location filename="../qml/panels/xxx.qml" line="1029"/>
<source>Type</source>
<translation>类型</translation>
</message>
<message>
<location filename="../qml/panels/xxx.qml" line="1054"/>
<source>All Types</source>
<translation>所有类型</translation>
</message>
eh2zh.xlsx:
1 | Enter Search | 输入搜索 |
2 | No Record! | 无记录! |
3 | "failed! | 失败! |
5 | Type | 类型 |
6 | All Types | 所有类型 |
ps:
本案例可扩展为xml转excel