Qt переводы с аргументами

Я столкнулся с проблемой использования Qt для динамического перевода приложения.
Все строки, отображаемые в пользовательском интерфейсе, заключены в вызовы tr (), поэтому я могу увидеть их в QtLinguist.

Моя проблема сейчас заключается в следующем: допустим, у меня есть строка с заполнителем% 1:
tr("Foo %1");

Я понимаю, что могу заполнить заполнитель, как это

tr("Foo %1").arg(myPlaceholder); или же tr("Foo %1").arg(tr(myPlaceholder));

но нет отдельных вызовов возможных значений myPlaceholder, поэтому они не отображаются в QtLinguist.

Как лучше всего добавить возможные значения заполнителей в мои файлы переводов? Я читал в другой ветке, что было бы неправильно редактировать файлы * .ts вручную.

1

Решение

Аргумент к tr() должен быть строковым литералом. Значение tr-выражения является QString — вот почему вы можете использовать его arg метод и т. д.

2

Другие решения


По вопросам рекламы [email protected]