【Python + DeepL翻译】Powerbuilder 调用 第三方翻譯 解決方案

本文介绍了一种通过Python调用DeepL API进行文本翻译的方法,并将其应用于PowerBuilder系统,实现实时翻译大量数据。首先注册DeepL API,然后用Python创建翻译脚本,最后在PowerBuilder中调用生成的exe文件完成翻译并贴回控件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

想法: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

### 如何在WPS中使用DeepL翻译功能 尽管目前官方并未提供直接针对WPS的DeepL插件支持,但仍可以通过一些间接方式实现类似的功能。以下是具体的方法: #### 方法一:通过在线版DeepL API 实现批量翻译 可以利用DeepL提供的API服务来创建一个脚本,在本地运行并处理Excel或WPS表格文件的内容。这种方法适合技术背景较强的用户。 ```python import deepl from openpyxl import load_workbook def translate_with_deepl(file_path, output_file): translator = deepl.Translator("your-auth-key") # 替换为您的DeepL API密钥[^1] workbook = load_workbook(filename=file_path) sheet = workbook.active for row in sheet.iter_rows(values_only=True): translated_text = translator.translate_text(row[0], target_lang="ZH") # 将目标列替换为您实际使用的列号 print(translated_text.text) translate_with_deepl('input.xlsx', 'output.xlsx') ``` 上述代码片段展示了如何借助Python库`deepl`以及`openpyxl`操作Excel文件,并将其内容发送到DeepL进行翻译后再保存回新的工作簿中。 #### 方法二:手动复制粘贴至DeepL网站 对于不熟悉编程或者不想投入过多时间配置环境的人来说,最简单的方式就是打开DeepL官网 (https://www.deepl.com/translator),然后将需要翻译的文字从WPS文档中剪切出来放到网页上的源语言区域,之后再把译文拷贝回去填入相应位置即可[^2]。 另外需要注意的是,当尝试直接上传整个Word档(.docx/.xlsx)给DeepL做整体转换时可能会遇到权限问题——即下载后的副本变为只读状态而无法修改原稿内容。对此可参照特定技巧解决此状况:比如先另存为PDF格式再转成DOCX;又或者是按照说明去掉某些保护机制下的特殊标签从而解锁编辑权能[^4]。 综上所述,虽然现阶段不存在专门面向WPS设计好的内置型DeepL扩展组件可供选用,但我们仍然能够采取多种策略达成预期目的。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值