KLocalizedString regression
John Tapsell
johnflux at gmail.com
Fri Mar 25 12:59:16 GMT 2011
On 25 March 2011 12:45, Chusslove Illich <caslav.ilic at gmx.net> wrote:
>> [: John Tapsel :]
>> ki18ncp("Units", "%1 second", "%1 seconds").subs(1.1, 0, 'f', 1).toString()
>>
>> used to work (return "1.1 seconds") but now it returns ("1.1
>> seconds(I18N_PLURAL_ARGUMENT_MISSING)") which screws up my graphing
>> widget.
>
> This is the way it (should have) always worked. The plural call expects to
> get an integer, and if does not, it shows this warning (in debug build, not
> in release build).
That's not good :-(
If the number is small, I want to show "2 seconds" but if it's
large I want like "2.2e4" seconds.
You're saying that my API needs to require the user to now pass *two*
strings for that?
> On the language level, plural declination kicks in only on integer values,
> while real values always get plural form. This seems to hold for all
> languages currently known in KDE. In English, all of "1.0 seconds",
> "1.1 seconds", "1.3 seconds", and "2.3 seconds", are (?) both correct and
> expected forms, as opposed to "1 second" and "2 seconds".
And that's fine. So do that. But don't stick a big warning there!
If I specify a precision of 0, then it should be "1 second". If the
precision is "1" then "1.0 seconds" is fine.
John
More information about the kde-core-devel
mailing list