2

我在加载翻译文件时遇到问题,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)

这段代码几乎适用于所有语言环境,除了包含修饰符 (EG sr_RS@latin.UTF-8) 的语言环境。在这种情况下,无论其名称如何,它都不会加载翻译文件。

我似乎无法弄清楚该翻译文件的名称,或者我需要实现哪些新代码才能使此代码正常运行。

在此先感谢,乔希

4

1 回答 1

1

语言环境名称通常采用以下形式:

    language[_territory][.codeset][@modifier]

但最后两个元素的顺序可能会有所不同。

从 Qt 翻译文件的角度来看,很难看出最后两个组件如何以任何方式相关。因此,显而易见的事情就是将它们剪掉,只使用语言和领土。

最简单的方法是使用QLocale

    qm = 'qt_%s.qm' % QLocale().name()
于 2014-02-13T21:30:52.493 回答