Re: Translation of numeric values (application gnome-schedule)



sön 2004-06-20 klockan 01.31 skrev Philip Van Hoof:
> > To be specific, in this example you could perhaps instead of this
> > sentence splitting:
> 
> > _("Run the application every %s minute of every hour."), _("3rd")
> 
> > do something like:
> 
> > _("Run the application at this minute every hour: %s"), 3
> 
> > The latter is perhaps not as pretty, but it will probably work with
> > translation for almost any language.
> 
> Yes, but thats a very simple example (and for that example I would agree
> with the method).
> 
> The application, however, must also parse crontab records like 
> 
> 1 2 3 * * ls # Untitled
> 
> to something readable.
> 
> Would would become:
> 
> At every first minute of the second hour of the third day of every
> month, run ls
> 
> gnome-schedule will, at this moment, translate it to this sentence.

Ok, then I agree it's a bit more complex. I just used the example you
provided.


[...]
> Untitled | At this hour: 2             | ls |
>          | At this minute: 1           |    |
>          | At this day of the month: 3 |    |
> 
> This is as hard as ... to understand
> 
> Untitled | 1 2 3 * * | ls |
> 
> What I mean with that is that the user still has to compute the actual
> frequency using that thing we call 'his or her brains'. It's still not
> something a human brain can understand in a glitch. Which is IMHO the
> responsibility of a userinterface. Computers can be programmed to make
> it supersupersuper simple for people. Lets use that capacity. Even if
> that means putting some more efforts in our translations and
> translation-related code.
> 
> The usage of such multiple lines would destroy the purpose of gnome-
> schedule: To simplify the system-schedule and to make it accessible for
> non-highlander but moral and sane people who will not live forever so
> that they can learn every little detail in life (like the format of a
> crontab-record). The average user will NOT accept such a format. Nether
> do I. Whats more, I don't WANT my users to accept it. Because -it-is-
> unacceptable.

I agree; and there's no need to explain the basic principles of
usability to me¹. :-)

I just wanted to point out that sentence surgery in code is almost
always bound to be a disaster for translation. Every language has its
own grammar, and hence sentence surgery in code is conceptually bound to
be incompatible with many of the world's languages, except for perhaps
the original language. Also, sentence surgery confuses translators since
it becomes difficult for them to see how the sentences will finally look
like when presented to the user, and hence the danger of mistranslation
is very high, even with appropriate comments.

You can look at this from this POV aswell: Sometimes a really bad and
confusing translation is worse to the user than no translation at all
would have been. Really bad and confusing translations are very often
caused by bad and confusing original strings and sentences. Hence, not
causing trouble for the translation process is directly benefitting the
end user usability for many users.

And sentence surgery *is* one of the worst offenders in this area.


> If I want my whatever-scanner to run every first hour of the day, I want
> the GUI to tell me that it will run this command "the first hour of the
> day". And not that it will run it at minute 1 of hour 1 of every day of
> every month.
> 
> If that means that the application will be 99% translation-specific and
> 1% other things, then thats what the application is all about :-).
> Gnome-schedule is about translating a complex thing like the crontab to
> normal person, a normal user. NOT a Unix freak or somebody who can
> understand why the formatting of the frequency sucks. I don't want the
> user to understand why it sucks, I want the formatting to be descriptive
> and correct.
> 
> And for the Unix-geek, we still have the "View"->"Advanced" switch in
> the menus. This switch will make the treeview look just like how a
> crontab record looks (or an at record, once at is fully supported).
> 
> So for now I cannot accept the proposal as a real solution to the
> problem :-(. For most applications you are absolutely right. But for
> gnome-schedule it's not the desired result.
> 
> I can find more peace in maintaining lots of translation-specific code
> than I am when I have to cripple the format of the frequency.

Then I suggest you expand the sentence fragments a bit so that you don't
just mark "3rd" and so on for translation. I.e.:

        /* Translators: This gets put into the "Run this application..."
           sentence. */
        N_("every first minute")
        /* Translators: This gets put into the "Run this application..."
           sentence. */
        N_("every second minute")
        /* Translators: This gets put into the "Run this application..."
           sentence. */
        N_("every third minute")
        
        ...
        
        /* Translators: This gets put into the "Run this application..."
           sentence. */
        N_("every first hour")
        /* Translators: This gets put into the "Run this application..."
           sentence. */
        N_("every second hour")
        
        ...
        
        /* Translators: This gets put into the "Run this application..."
           sentence. */
        N_("every first day of the month")
        /* Translators: This gets put into the "Run this application..."
           sentence. */
        N_("every second day of the month")
        
        ...
        
        /* Translators: In this sentence, the strings inserted are the time
           strings translated elsewhere. It's one of the minute strings, one
           of the hour strings, and one of the month day strings, in this order.
           Example: "Run this application every second minute every third hour
                     every 20th day of the month."
           If you need to reorder the arguments to suit your language, you can
           do it with the printf parameter reordering syntax.
           Example: "Run this application %2$s %1$s %3$s."
           In this example, the hour string will be placed before the minute
           string.
        */
        _("Run this application %s %s %s.",
           _(minutestring), _(hourstring), _(monthdaystring))

Note the translator comments²: They're absolutely essential here so that
the translator will know how the sentence fragments are used.

Also note that in almost all cases it's better to expand to full
sentences marked for translation instead of doing something like this,
even if it means many more strings marked for translation -- this is
just an exception because otherwise the total number of strings would
grow absurdly in this case, since the number of possible combinations is
so huge.


Christian



¹ I'm not an usability expert, far from it, but I'm still a nearly
finished M.Sc. student who has taken some introductory courses in
Cognitive Science and HCI with the best grade possible. So I'm not
totally lost in this field.
² http://developer.gnome.org/doc/tutorials/gnome-i18n/developer.html#use-comments



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]