带参数的Qt翻译

时间:2015-07-23 15:31:54

标签: c++ qt translation qt-linguist

我遇到了使用Qt动态翻译应用程序的问题。 UI中显示的所有字符串都包含在tr()调用中,因此我可以在QtLinguist中看到它们。

我现在的问题是:假设我有一个占位符%1的字符串: tr("Foo %1");

我知道我可以像这样填充占位符

tr("Foo %1").arg(myPlaceholder);tr("Foo %1").arg(tr(myPlaceholder));

但是没有单独调用myPlaceholder的可能值,因此它们不会显示在QtLinguist中。

将可能的占位符值添加到翻译文件的最佳方法是什么?我在另一个帖子中读到手动编辑* .ts文件是错误的。

1 个答案:

答案 0 :(得分:2)

tr()的参数必须是字符串文字。 tr表达式的值是QString - 这就是为什么你可以使用它的arg方法等。