为了允许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)')
似乎不是最佳选择。
我发现在使用tr()
和.arg()
的C ++中,可以这样做:
statusBar()->showMessage(tr("Host %1 found").arg(hostName))
但我无法使用Python进行复制。
答案 0 :(得分:2)
对format
方法的结果尝试tr
命令:
statusBar().showMessage(tr("Host {0} found").format(hostName))
ts
文件中的翻译还应包含{0}
字符串。
编辑:使用Python 2.7,您只需键入{}
而无需0
。
答案 1 :(得分:1)
我自己找到了解决方案,也许对其他人有用。
message = QCoreApplication.translate('Multipart split', "Splited %d multipart feature(s)") %(n_of_splitted_features)