6

为了允许QGIS的 Python 插件国际化,我使用QCoreApplication.translate()的是这样的:

message = QCoreApplication.translate('Multipart split',"No multipart features selected.")

如何准备动态字符串,如下所示,

message = "Splited " + str(n_of_splitted_features) + " multipart feature(s)" 

翻译,而不需要打破每个子字符串,像这样

message = QCoreApplication.translate('Multipart split','Splited ') + str(n_of_splitted_features) + QCoreApplication.translate('Multipart split', 'multipart feature(s)')

这似乎不是最好的选择。

我发现在 C++ 中使用tr()with .arg(),可以做到这一点:

statusBar()->showMessage(tr("Host %1 found").arg(hostName))

但我无法使用 Python 进行复制。

4

2 回答 2

3

在方法的结果上尝试format命令tr

statusBar().showMessage(tr("Host {0} found").format(hostName))

文件中的翻译ts也应该包含{0}字符串。

编辑:使用 Python 2.7,您可以{}在没有0.

于 2013-08-21T20:49:36.237 回答
1

我自己找到了解决方案,也许它对其他人有用。

message = QCoreApplication.translate('Multipart split', "Splited %d multipart feature(s)") %(n_of_splitted_features)
于 2013-08-24T19:31:57.430 回答