KIntNumInput::setTemplate(const QString &template)
Nicolas Goutte
nicolasg at snafu.de
Fri Sep 1 18:56:29 BST 2006
On Friday 01 September 2006 10:26, David Faure wrote:
> On Sunday 27 August 2006 17:41, Sébastien Laoût wrote:
> > Currently, the class KIntNumInput has two methods:
> > - setPrefix(const QString &prefix)
> > - setSuffix(const QString &suffix)
> >
> > This generate two problems:
> > 1/ No plural for is allowed.
> > Or to be more precise, all numbers are always presented in the plural
> > form. 2/ Currency translation is bad.
> > In USA, the program should call setPreffix("$ ").
> > In Europe, the program should call setSuffix(" €")
> > (not sure if € should be postfixed or prefixed, but it's for the
> > example: other currencies are placed after the number).
> >
> > For KDE 4, I propose you remove those methods in profit of that one:
> > - KIntNumInput::setTemplate(const QString &template)
> >
> > The two examples will be transformed to:
> > - setTemplate(i18n("%n minute", "%n minutes));
>
> Doesn't work that way. The syntax is i18n("1 minute", "%n minutes",
> number_of_minutes).
Thank you for notifing the error but for KDE4 it becomes:
i18np("1 minute", "%n minutes", number_of_minutes)
otheriwse it would always be "1 minute", as this string has no placeholder
( %1...)
> But in kde4 one can also use ki18np("1 minute", "%n
> minutes").subs(number_of_minutes).toString() so I think this could become
>
> setTemplate( ki18np("1 minute", "%n minutes") )
I am not 100% sure but I suppose that this will not work either.
(And we do not have a I18N_NOOP for plurals.) :-(
>
> and KIntNumInput would take care of calling subs(number_of_minutes) when
> the number of minutes changes. And the api would be
> setTemplate( const KLocalizedString& )
>
> But I'm not sure how the editing would work, when the number is somewhere
> in the middle of a string...
>
> > Note: I'm not voluntering to do that change ;-)
>
> Even now that you know how to do it? ;)
Have a nice day!
More information about the kde-core-devel
mailing list