詳解pyqt中解決國際化tr()函數(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> 標簽中的類名即可,比如 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通過設(shè)置WordCloud參數(shù)實現(xiàn)定制詞云
這篇文章主要為大家詳細介紹了python如何通過設(shè)置WordCloud參數(shù)實現(xiàn)定制詞云,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習一下2023-11-11基于python實現(xiàn)簡單網(wǎng)頁服務(wù)器代碼實例
這篇文章主要介紹了基于python實現(xiàn)簡單網(wǎng)頁服務(wù)器代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下2020-09-09淺談pytorch torch.backends.cudnn設(shè)置作用
今天小編就為大家分享一篇淺談pytorch torch.backends.cudnn設(shè)置作用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02python中pygame針對游戲窗口的顯示方法實例分析(附源碼)
這篇文章主要介紹了python中pygame針對游戲窗口的顯示方法,以完整實例形式較為詳細的分析了pygame響應(yīng)鍵盤按鍵改變窗口顯示效果的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2015-11-11