【发布时间】:2013-09-10 00:45:10
【问题描述】:
谈到国际化 - 使用 python2 和 PyQt4 - 格式化翻译字符串的“建议方法”是使用 QString.arg() 方法:
from PyQt4.QtGui import QDialog
#somewhere in a QDialog:
self.tr("string %1 %2").arg(arg1).arg(arg2)
但是QString() 在 python3-PyQt4 中不存在。
所以我的问题是,在 python3 中格式化任何已翻译字符串的最佳方式是什么?我应该使用标准的python方法str.format()还是有更合适的方法?
【问题讨论】:
-
首先,在 PyQt4 中,明确地使用
QString绝对不是推荐的做事方式;他们只是还没有完成原生字符串和 QStrings 的集成。请注意,在 2.x 和 3.x 中,PyQt5 几乎完全隐藏了 QString。 (当我们这样做的时候,你几乎肯定会想要一个 Unicode 文字,因为否则你会交叉手指并希望你的文字被解释为 Latin-1,更不用说做一个隐含的 Latin-1-to-每次都通过这个函数进行 Unicode 转换,没有任何理由。) -
@abarnert 是的,我在这里使用“建议的方式”一词可能是错误的。我刚刚在他的 pyqt 书中看到 Mark Summerfield 以这种方式使用它,并认为这将是正确的技术。感谢您提及。
-
书籍很快就会过时。 2 或 3 年前,这可能是一个好主意,当时保持与 pre-2.6 Python 和 pre-4.6 Qt 的兼容性非常重要,但我的记忆并没有那么远。 :)
标签: python python-3.x internationalization pyqt4 qstring