我在 Python 3.5 中组建了一个客户端,可用于从站点检索已完成的翻译作业。出于可用性原因,我决定使用将翻译内容复制到剪贴板的按钮。根据翻译是纯文本还是保存在文件中,按钮显示“下载”或“复制到剪贴板”。
它大部分都在工作 - 我可以通过单击按钮然后将内容粘贴到文本编辑器,用英语复制和粘贴文本。
不幸的是,在处理德语(像ä,ö和ü这样的东西)时,我会得到一些时髦的角色,日语会变得糊里糊涂。
def retrieveJobs(self):
availableJobIDs = gengo.getTranslationJobs(status='reviewable')['response']
text_count = 0
text_dict = {}
file_count = 0
file_dict = {}
for i in range(len(availableJobIDs)):
job = gengo.getTranslationJob(id=availableJobIDs[i]['job_id'])['response']['job']
title = job['slug']
titleLabel = tk.Label(self, text=title)
titleLabel.grid(row=i+3, sticky=tk.E)
if 'file_url_tgt' in job.keys():
link = job['file_url_tgt']
file_dict[file_count] = link
linkButton = tk.Button(self, text='ダウンロード',
command=lambda file_count=file_count: urllib.request.urlopen(url=file_dict[file_count]))
linkButton.grid(row=i+3, column=1, sticky=tk.W+tk.E)
file_count += 1
else:
text = job['body_tgt']
text_dict[text_count] = text
copyButton = tk.Button(self, text='訳文をコピーする',
command=lambda text_count=text_count: tk.clipboard_append(text_dict[text_count]))
copyButton.grid(row=i+3, column=1, sticky=tk.W)
text_count += 1
脚本的标题用
标记# -*- coding: utf-8 -*-
然而,当我按其中一个按钮复制日文文本时,如
これはどのように動作し、すべての順序のどこに表示する短いテキストです。
(不介意意思,这是乱码)并将其复制到Word文件中,生成的文本如下所示:
これはどのように動作し、すべての順序のどこに表示する短いテキストです。
如何修改代码以正确显示日文字符?如代码所示,文本存储在字典中,此时仍然完好无损。只有当用pyperclip把它拉出来时才会变得很时髦。
我希望解释是充分的。
提前谢谢!
答案 0 :(得分:1)
原来我只需要在这里做一个小调整:
copyButton = tk.Button(self,
text='訳文をコピーする',
command=lambda text_count=text_count: tk.clipboard_append(text_dict[text_count]))
功能正常的版本如下:
copyButton = tk.Button(self,
text='訳文をコピーする',
command=lambda text_count=text_count: root.clipboard_append(text_dict[text_count]))
不再是德国人或日本人的时髦人物。其他语言如法语和中文现在也可以使用。
再次感谢您的输入!它为代码提供了新的视角。