python - QTranslator 如何处理语言环境修饰符 PyQT?

标签 python python-2.7 pyqt4 locale qtranslator

我在使用 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/

相关文章:

python - 我可以在守护进程中运行pika的connection.ioloop.start()吗?

python - 所需输出

Python - 将 float 四舍五入为整数的最佳方法是什么

python - Opencv - 灰度模式与灰度转换

python - QComboBox调整下拉宽度

python - 迭代 CGI 文件中的列表并打印 html 中的值

python - 如何使与主机的Docker容器共享文件出现在容器中?

python - pyqt自动连接信号

python - 如何为布局添加边框?

python - 如何从 Discord API (URL) 获取用户状态