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)')

これは最良の選択肢ではないようです。

tr()C++ で 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 に答える