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 метод и т. д.

Другие вопросы по тегам