【问题标题】:How does QTranslator handle locale modifiers PyQT?QTranslator 如何处理语言环境修饰符 PyQT?
【发布时间】:2014-02-13 08:23:18
【问题描述】:

我在使用 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)。在这种情况下,无论其名称如何,它都不会加载翻译文件。

我似乎不知道给翻译文件起什么名字,或者我需要实现什么新代码才能让这段代码正常工作。

提前致谢,乔希

【问题讨论】:

    标签: python python-2.7 pyqt4 locale qtranslator


    【解决方案1】:

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

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

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

    从 Qt 翻译文件的角度来看,很难看出最后两个组件有什么相关性。因此,显而易见的做法是将它们剪掉,只使用语言和领土。

    最简单的方法是使用QLocale

        qm = 'qt_%s.qm' % QLocale().name()
    

    【讨论】:

      猜你喜欢
      • 2017-03-10
      • 1970-01-01
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多