提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
想法:Powerbuilder 调用 Python + DeepL, 即时翻译并贴上指定控件里:
因为海外设厂, 公司系统里许多资料需要即时翻译, 如果只是单纯的操作页面, 报表, 那也只能一个个修改, 调整版面, 但如果资料库里, 有些工序流程等需要大范围的去处理, 要一个个复制翻译完再贴回, 几十万笔的资料实在也是不切实际。所以只能想想怎麽利用老系统调用第三方程式来简化流程.
提示:以下是本篇文章正文内容,下面案例可供参考
一、DeepL是什么?
号称全世界最准确的翻译, 试译了一下, 专业名词翻译的效果不错, 不能说完美, 但准确率同事们都还蛮接受的。
二、Python + DeepL
1.註冊DEEPL API FREE
目前注册API 只有欧洲国家, 北美的美加两国, 而亚洲只支援日本,
信用卡也必需为该国家发行才可以注册, 需要注意.
注册完後, 会有一个授权KEY, 待会程序里会用到.
2.Python
先安装
pip install deepl
建立 trans.py
代码如下(示例):
# coding=utf8
import deepl
import argparse
import clipboard
#剪贴版
flow = clipboard.paste()
print(flow)
#启动传入值 设定转换语言
parser = argparse.ArgumentParser(description='Select translation language')
parser.add_argument('--lang', type=str, default = 'EN-US')
args = parser.parse_args()
lang = args.lang
print("To --> ", lang)
# 设置字典ini档,特别词保留原设定翻译 例如:检查||Inspection 不用Check
for line in open('dictionary.ini', "r", encoding='utf-8'):
re = line.split("||")
flow = flow.replace(re[0], re[1].strip()) # 组词字典取代
#调用deepl
translator = deepl.Translator("******Authentication Key******") #放入授权码
#Single String
result = translator.translate_text(flow, target_lang=lang)
print(result)
//放入剪贴版里
clipboard.copy(str(result))
再用pyinstaller --onefile trans.py
编释成 trans.exe
将exe 与 dictionary.ini 字典档一同放进PB系统的资料夹里, 供调用.
3.PowerBuilder 調用trans.exe
代码如下(示例):
string ls_flow
//控件清空内容
dw_1.object.t_eflow.text = ''
ls_flow = dw_1.getitemstring(dw_1.getrow(), 'Column Name')
//剪贴版
Clipboard(ls_flow)
//执行第三方
run("trans.exe --lang=EN-US",normal!)
//8秒後贴上
sleep(8)
dw_1.object.t_eflow.text = Clipboard()
如果想翻成日本, 就将EN-US 改成 JA, 如果改成法语就FR,
贴上时间可以依实际情况做调整
总结
PB贴上後, 想存档或单纯显示, 就自行处理了,
以上就是分享的内容, 希望能帮上有相同需求的人。
这是我的GItHub
Python DeepLSample