# 前言\n\n有些时候我们在父类中使用了 `self.tr(\'XXX\')`,使用 Qt Linguist 完成翻译并导出 qm 文件后,发现子类中仍然是英文原文。比如下面这段代码:\n\n```python\nclass AlbumCardBase(QWidget):\n \"\"\" 专辑卡基类 \"\"\"\n\n def __init__(self, parent=None):\n super().__init__(parent=parent)\n self.playButton = BlurButton(\n self,\n (30, 65),\n \":/images/album_tab_interface/Play.png\",\n self.coverPath,\n self.tr(\'Play\')\n )\n self.addToButton = BlurButton(\n self,\n (100, 65),\n \":/images/album_tab_interface/Add.png\",\n self.coverPath,\n self.tr(\'Add to\')\n )\n```\n\n父类 `AlbumCardBase` 中有两处使用了 `tr` 函数,分别翻译为 `播放` 和 `添加到`,但是在子类中这些文本仍然会显示为 `Play` 和 `Add to`,下面来看看如何解决这个问题。\n\n# 解决过程\n\n生成的 ts 文件中,有这样一段代码:\n\n```xml\n\n AlbumCardBase\n \n \n Add to\n 添加到\n \n \n \n Play\n 播放\n \n\n```\n\n可以看到上述代码描述了源文的位置和内容以及译文,但是只对父类 `AlbumCardBase` 起作用。要想对子类应用上述规则,只需复制粘贴再修改 `` 标签中的类名即可,比如 `AlbumCard` 为子类,那么只需添加下述代码:\n\n```xml\n\n AlbumCard\n \n \n Add to\n 添加到\n \n \n \n Play\n 播放\n \n\n```\n\n完成上述步骤后导出 qm 文件即可。\n