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