我遇到了使用Qt动态翻译应用程序的问题。 UI中显示的所有字符串都包含在tr()调用中,因此我可以在QtLinguist中看到它们。
我现在的问题是:假设我有一个占位符%1的字符串:
tr("Foo %1");
我知道我可以像这样填充占位符
tr("Foo %1").arg(myPlaceholder);
或tr("Foo %1").arg(tr(myPlaceholder));
但是没有单独调用myPlaceholder的可能值,因此它们不会显示在QtLinguist中。
将可能的占位符值添加到翻译文件的最佳方法是什么?我在另一个帖子中读到手动编辑* .ts文件是错误的。
答案 0 :(得分:2)
tr()
的参数必须是字符串文字。 tr表达式的值是QString
- 这就是为什么你可以使用它的arg
方法等。