KIntNumInput::setTemplate(const QString &template)

David Faure faure at kde.org
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 kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).




More information about the kde-core-devel mailing list