> [: John Tapsell :]
> Except that in my case, I'm forcing this on the users of my API. Just to
> get around this!
>
> Can't you see how crazy this is?

An integer is mandatory to decide the plural form, a float cannot be used,
due to the following. Suppose there are m plural forms for a given language.
The plural call pushes the integer through a formula, defined by that
language (by each PO file to be precise), which maps it to 0 through m - 1.
If the plural call would get a float instead, how should it decide which of
the m forms to map to? For example, in my language forms are 0 through 3,
and the correct one for a floating value is 2 -- not 0, 1, or 3.

On the implementation level, what happens now when you do not supply an
integer, is that non-plural call is simply passed down to non-plural
gettext() from libc. It is a fluke that for English it silently returns the
plural, and not the singular string. For all I know, if the libc were built
in develop/debug mode (I use distribution package), it could do something
else.

Therefore two independent KLocalizedString parameters are indeed necessary
for the API, if you want to keep the integer/real alternation. Since it is
about graph plotting, I suggest that you make the API such that the real-
value string is mandatory, and the integer-value string optional. I.e. let
the client choose if he wants alternation or not.

Furthermore, I would suggest that the axis tick labels be pure numbers, and
the axis name and unit shown separate in one place, e.g:

  ------------------------------------------>
  0     1     2     3     4     5     6
              time [seconds]

This is how graph axes are normaly presented, at least in engineering
fields, and it would sidestep the complete issue. (I realize that this
suggestion is off-topic as such for this thread, but I couldn't resist since
I have strong feelings about proper graph plotting.)

-- 
Chusslove Illich (Часлав Илић)

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to