有些时候我们在父类中使用了 lf.tr(‘xxx’),使用 qt linguist 完成翻译并导出 qm 文件后,发现子类中仍然是英文原文。比如下面这段代码:
class albumcard教育技术培训教程ba(qwidget): """ 专辑卡基类 """ def __init__(lf, parent=none): super().__init__(parent=parent) lf禁闭岛影评.playbutton = blurbutto科举诞生哪个朝代n( lf, (30, 65), ":/images/album_tab_interface/play.png", lf.coverpath, lf.tr('play') ) lf.addtobutton = blurbutton( lf, (100, 65), ":/images/album_tab_interface/add.png", lf.coverpath, lf.tr('add to') )
父类 albumcardba 中有两处使用了 tr 函数,分别翻译为 播放 和 添加到,但是在子类中这些文本仍然会显示为 play 和 add to,下面来看看如何解决这个问题。
生成的 ts 文件中,有这样一段代码:
<context> <name>albumcardba</name> <message> <location filename="../../components/album_card/album_card_ba.py" line="50"/> <source>add to</source> <translation>添加到</translation> </message> <message> <location filename="../../components/album_card/album_card_ba.py" line="43"/> <source>play</source> <translation>播放</translation> </message></context>
可以看到上述代码描述了源文的位置和内容以及译文,但是只对父类 albumcardba 起作用。要想对子类应用上述规则,只需粘贴再修改 <name> 标签中的类名即可,比如 albumcard 为子类,那么只需添加下述代码:
大富翁游戏<context> <name>albumcard</name> <message> <location filename="../../components/album_card/album_card_ba.py" line="50"/> <source>add to</source> <translation>添加到</translation> </message> <message> <location filena回忆性作文me="../../components/album_card/album_card_ba.py" line="43"/> <source>play</source> <translation>播放</translation> </message></context>
完成上述步骤后导出 qm 文件即可。
到此这篇关于详解pyqt中解决国际化tr()函数不起作用的问题的文章就介绍到这了,更多相关pyqt tr()不起作用内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-04 22:36:17,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/89173b9ddd16358fac38d1fbb9c9a01f.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:详解pyqt中解决国际化tr()函数不起作用的问题.doc
本文 PDF 下载地址:详解pyqt中解决国际化tr()函数不起作用的问题.pdf
留言与评论(共有 0 条评论) |