http://doc.qt.io/qt-5/qstring.html#arg中的 QString文档说
使用arg()而不是sprintf()的一个优点是,如果应用程序的字符串被翻译成其他语言,则编号的地点标记的顺序可以改变,但是每个arg()仍将替换编号最小的未替换的地方标记,无论如何它出现的地方.
这是什么意思?任何人都可以用例子来解释吗?
int day = 1;
int month = 12;
int year = 2010;
QString dateString = QString(tr("date is %1/%2/%3")).arg(month).arg(day).arg(year);
// dateString == "date is 12/1/2010";
Run Code Online (Sandbox Code Playgroud)
德语翻译"Das Datum ist:%2.%1.%3":dateString ="Das Datum ist:1.12.2010"
假设我们从:
QString format("%1: %2 %3);
Run Code Online (Sandbox Code Playgroud)
然后打电话:
format.arg("something");
Run Code Online (Sandbox Code Playgroud)
格式现在将是:
"某事:%1%2"
...意思是你可以随时建立字符串.
通过Qt的翻译机制可以改变地点标记的顺序,它允许你说:
format = tr("Hi, %1, I hope you are %2");
Run Code Online (Sandbox Code Playgroud)
并将其添加到您的翻译表中,并为不同的语言提供不同顺序的参数.
| 归档时间: |
|
| 查看次数: |
9195 次 |
| 最近记录: |