Fix plural handling for translations (#1424)
* .arg() doesn't handle plurals, replace %1 with %n and pass number to tr(), but only if there is an accompanying word for that we want singular/plural translations and only for whole numbers.
* Qt's translation methods only accept integers and we don't know what grammatical number form would be correct for floating-point numbers in different languages anyway.
* Add optional 2nd argument to SliderBase::SetFormat() to activate deferred plural handling:
SetFormat(QT_TRANSLATE_N_NOOP("olive::SliderBase", "%n unit(s)"), true)
* Generate en_US.ts with lupdate's -pluralonly option. Only source strings that require plural handling need to be translated (as long as the source language is American English).
This commit is contained in:
@@ -71,7 +71,7 @@ void MainStatusBar::UpdateStatus()
|
||||
if (manager_->GetTaskCount() == 1) {
|
||||
showMessage(t->GetTitle());
|
||||
} else {
|
||||
showMessage(tr("Running %1 background task(s)").arg(manager_->GetTaskCount()));
|
||||
showMessage(tr("Running %n background task(s)", nullptr, manager_->GetTaskCount()));
|
||||
}
|
||||
|
||||
bar_->setVisible(true);
|
||||
|
||||
Reference in New Issue
Block a user