KIntNumInput::setTemplate(const QString &template)

David Faure faure at
Fri Sep 1 09:26:03 BST 2006

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).
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") )

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? ;)

David Faure, faure at, sponsored by Trolltech to work on KDE,
Konqueror (, and KOffice (

More information about the kde-core-devel mailing list