我在使用 QTranslator
加载翻译文件时遇到问题,因为它有一个语言环境修饰符。我使用的代码是,
from PyQt4 import QtCore, QtGui
from locale import getdefaultlocale
locale = getdefaultlocale()
app = QtGui.QApplication(sys.argv)
translator = QtCore.QTranslator(app)
translator.load('/usr/share/my_application/tr/qt_%s.qm' % locale[0])
app.installTranslator(translator)
除了包含修饰符(例如 sr_RS@latin.UTF-8
)的区域外,此代码几乎适用于所有语言环境。在这种情况下,无论文件名是什么,它都不会加载翻译文件。
我似乎无法弄清楚要为翻译文件命名,或者我需要实现哪些新代码才能使此代码正常运行。
提前致谢,乔希
最佳答案
区域名称通常采用以下形式:
language[_territory][.codeset][@modifier]
但最后两个元素的顺序可以不同。
从 Qt 翻译器文件的角度来看,很难看出最后两个组件有何关联。因此,显而易见的做法是将它们剪掉,只使用语言和地域。
最简单的方法是使用 QLocale :
qm = 'qt_%s.qm' % QLocale().name()
关于python - QTranslator 如何处理语言环境修饰符 PyQT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21748677/