我在使用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)
此代码几乎适用于除包含修饰符(E.G. sr_RS@latin.UTF-8
)的每个语言环境。在这种情况下,它不会加载翻译文件,无论它的名称是什么。
我似乎无法弄清楚要为翻译文件命名的内容,或者我需要实现哪些新代码才能使代码正常运行。
先谢谢,乔希
答案 0 :(得分:1)
区域设置名称通常采用以下格式:
language[_territory][.codeset][@modifier]
但最后两个元素的顺序可能会有所不同。
从Qt翻译文件的角度来看,很难看出最后两个组件如何以任何方式相关。因此,显而易见的事情就是将它们修剪掉,只使用语言和领域。
最简单的方法是使用QLocale:
qm = 'qt_%s.qm' % QLocale().name()