詳解pyqt中解決國際化tr()函數(shù)不起作用的問題
前言
有些時(shí)候我們在父類中使用了 self.tr('XXX'),使用 Qt Linguist 完成翻譯并導(dǎo)出 qm 文件后,發(fā)現(xiàn)子類中仍然是英文原文。比如下面這段代碼:
class AlbumCardBase(QWidget):
? ? """ 專輯卡基類 """
? ? def __init__(self, parent=None):
? ? ? ? super().__init__(parent=parent)
? ? ? ? self.playButton = BlurButton(
? ? ? ? ? ? self,
? ? ? ? ? ? (30, 65),
? ? ? ? ? ? ":/images/album_tab_interface/Play.png",
? ? ? ? ? ? self.coverPath,
? ? ? ? ? ? self.tr('Play')
? ? ? ? )
? ? ? ? self.addToButton = BlurButton(
? ? ? ? ? ? self,
? ? ? ? ? ? (100, 65),
? ? ? ? ? ? ":/images/album_tab_interface/Add.png",
? ? ? ? ? ? self.coverPath,
? ? ? ? ? ? self.tr('Add to')
? ? ? ? )父類 AlbumCardBase 中有兩處使用了 tr 函數(shù),分別翻譯為 播放 和 添加到,但是在子類中這些文本仍然會顯示為 Play 和 Add to,下面來看看如何解決這個問題。
解決過程
生成的 ts 文件中,有這樣一段代碼:
<context> ? ? <name>AlbumCardBase</name> ? ? <message> ? ? ? ? <location filename="../../components/album_card/album_card_base.py" line="50"/> ? ? ? ? <source>Add to</source> ? ? ? ? <translation>添加到</translation> ? ? </message> ? ? <message> ? ? ? ? <location filename="../../components/album_card/album_card_base.py" line="43"/> ? ? ? ? <source>Play</source> ? ? ? ? <translation>播放</translation> ? ? </message> </context>
可以看到上述代碼描述了源文的位置和內(nèi)容以及譯文,但是只對父類 AlbumCardBase 起作用。要想對子類應(yīng)用上述規(guī)則,只需粘貼再修改 <name> 標(biāo)簽中的類名即可,比如 AlbumCard 為子類,那么只需添加下述代碼:
<context> ? ? <name>AlbumCard</name> ? ? <message> ? ? ? ? <location filename="../../components/album_card/album_card_base.py" line="50"/> ? ? ? ? <source>Add to</source> ? ? ? ? <translation>添加到</translation> ? ? </message> ? ? <message> ? ? ? ? <location filename="../../components/album_card/album_card_base.py" line="43"/> ? ? ? ? <source>Play</source> ? ? ? ? <translation>播放</translation> ? ? </message> </context>
完成上述步驟后導(dǎo)出 qm 文件即可。
到此這篇關(guān)于詳解pyqt中解決國際化tr()函數(shù)不起作用的問題的文章就介紹到這了,更多相關(guān)pyqt tr()不起作用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 用for循環(huán)實(shí)現(xiàn)1~n求和的實(shí)例
今天小編就為大家分享一篇python 用for循環(huán)實(shí)現(xiàn)1~n求和的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02
tensorflow的ckpt及pb模型持久化方式及轉(zhuǎn)化詳解
今天小編就為大家分享一篇tensorflow的ckpt及pb模型持久化方式及轉(zhuǎn)化詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Python實(shí)現(xiàn)自動為照片添加日期并分類的方法
這篇文章主要介紹了Python實(shí)現(xiàn)自動為照片添加日期并分類的方法,涉及Python針對文件與目錄的遍歷、判斷、修改、復(fù)制及文件屬性的相關(guān)操作技巧,需要的朋友可以參考下2017-09-09
python實(shí)現(xiàn)百度OCR圖片識別過程解析
這篇文章主要介紹了python實(shí)現(xiàn)百度OCR圖片識別過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01

