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

