Я столкнулся с проблемой использования Qt для динамического перевода приложения.
Все строки, отображаемые в пользовательском интерфейсе, заключены в вызовы tr (), поэтому я могу увидеть их в QtLinguist.
Моя проблема сейчас заключается в следующем: допустим, у меня есть строка с заполнителем% 1:
tr("Foo %1");
Я понимаю, что могу заполнить заполнитель, как это
tr("Foo %1").arg(myPlaceholder);
или же tr("Foo %1").arg(tr(myPlaceholder));
но нет отдельных вызовов возможных значений myPlaceholder, поэтому они не отображаются в QtLinguist.
Как лучше всего добавить возможные значения заполнителей в мои файлы переводов? Я читал в другой ветке, что было бы неправильно редактировать файлы * .ts вручную.
Аргумент к tr()
должен быть строковым литералом. Значение tr-выражения является QString
— вот почему вы можете использовать его arg
метод и т. д.