詳解pyqt中解決國(guó)際化tr()函數(shù)不起作用的問(wèn)題
前言
有些時(shí)候我們?cè)诟割?lèi)中使用了 self.tr('XXX'),使用 Qt Linguist 完成翻譯并導(dǎo)出 qm 文件后,發(fā)現(xiàn)子類(lèi)中仍然是英文原文。比如下面這段代碼:
class AlbumCardBase(QWidget): ? ? """ 專(zhuān)輯卡基類(lèi) """ ? ? 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') ? ? ? ? )
父類(lèi) AlbumCardBase 中有兩處使用了 tr 函數(shù),分別翻譯為 播放 和 添加到,但是在子類(lèi)中這些文本仍然會(huì)顯示為 Play 和 Add to,下面來(lái)看看如何解決這個(gè)問(wèn)題。
解決過(guò)程
生成的 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)容以及譯文,但是只對(duì)父類(lèi) AlbumCardBase 起作用。要想對(duì)子類(lèi)應(yīng)用上述規(guī)則,只需粘貼再修改 <name> 標(biāo)簽中的類(lèi)名即可,比如 AlbumCard 為子類(lèi),那么只需添加下述代碼:
<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中解決國(guó)際化tr()函數(shù)不起作用的問(wèn)題的文章就介紹到這了,更多相關(guān)pyqt tr()不起作用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python?web.py啟動(dòng)https端口的方式
這篇文章主要介紹了python?web.py啟動(dòng)https端口,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-05-05python通過(guò)設(shè)置WordCloud參數(shù)實(shí)現(xiàn)定制詞云
這篇文章主要為大家詳細(xì)介紹了python如何通過(guò)設(shè)置WordCloud參數(shù)實(shí)現(xiàn)定制詞云,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-11-11基于python實(shí)現(xiàn)簡(jiǎn)單網(wǎng)頁(yè)服務(wù)器代碼實(shí)例
這篇文章主要介紹了基于python實(shí)現(xiàn)簡(jiǎn)單網(wǎng)頁(yè)服務(wù)器代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09淺談pytorch torch.backends.cudnn設(shè)置作用
今天小編就為大家分享一篇淺談pytorch torch.backends.cudnn設(shè)置作用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02python中pygame針對(duì)游戲窗口的顯示方法實(shí)例分析(附源碼)
這篇文章主要介紹了python中pygame針對(duì)游戲窗口的顯示方法,以完整實(shí)例形式較為詳細(xì)的分析了pygame響應(yīng)鍵盤(pán)按鍵改變窗口顯示效果的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2015-11-11