Я разрабатываю и применяю и хочу перевести какой-то текст, проблема в том, что я хочу обрабатывать в QML множественные числа.
В С ++ способ обработки множественного числа очень прост:
int n = messages.count();
showMessage(tr("%n message(s) saved", 0, n));
и переведу без проблем
источник: https://doc.qt.io/qt-5/i18n-source-translation.html#handling-plurals
Когда я пытаюсь сделать то же самое с QML, не работает. После тщательного изучения некоторой литературы и некоторых комментариев я обнаружил «решение», что на самом деле люди сообщают об ошибке.
var second = qsTr("%b radios", "0", map.radio).arg(map.radio)
Когда я обновляюсь, в QtLinguistic появляются два поля для формы множественного и единственного числа, но в приложении это не работает.
Я пробовал несколько модификаций, таких как:
var a = map.totalSongs;
var first = qsTr("%a songs", "0", parseInt(a))
var second = qsTr("%b radios", "0", map.radio)
var first = qsTr("%a songs", "0", parseInt(a)).arg(map.totalSongs)
var second = qsTr("%b radios", "0", map.radio).arg(map.radio)
var first = qsTr("%a songs", "0", a)
var second = qsTr("%b radios", "0", b)
В QtLinguistic я пишу перевод:
%b radio - Singular
%b radios - Plural
Любая модификация не работает.
Может ли кто-нибудь сказать мне, как использовать qstr () для обработки множественного числа?
Другой вопрос, связанный с: допустим, я хочу иметь текст «% 1 песни -% 2 радио», где на испанском языке должно получиться
//As example
if(%1 = 10 && %2 = 10) => "10 canciones - radios"
else if(%1 = 1 && %2 = 10) => "1 cancion - 10 radios"
else if(%1 = 10 && %2 = 1) => "10 canciones - 1 radio"
Как это сделать? Я думаю, что ни qstr (), ни tr () не могут справиться с этой ситуацией., Но просто хочу проверить это с вами, ребята: D
заранее спасибо