On Sat, Sep 9, 2017 at 2:20 PM, Yuri Chornoivan <yurc...@ukr.net> wrote:
> субота, 9 вересня 2017 р. 21:06:47 EEST Paul Licameli написано:
> > On Sat, Sep 9, 2017 at 1:55 PM, Yuri Chornoivan <yurc...@ukr.net> wrote:
> > > субота, 9 вересня 2017 р. 20:25:22 EEST Paul Licameli написано:
> > > > From what little I know of languages, this question goes especially
> to
> > > > Chinese and Russian translators, but maybe it is also relevant to
> other
> > > > languages I know less about.
> > > >
> > > > I found a small gap in our translations. See the code below.
> "hour",
> > > > "hours", "minute", "minutes" did not get extracted to the .pot file.
> > > > The
> > > > intention is to compose strings like "1 hour and 2 minutes" from
> > > > translations of pieces of the phrase.
> > > >
> > > > But I think it is better not to fix it by giving you four more little
> > >
> > > words
> > >
> > > > to translate. Rather, give a little more context. That is, make the
> > > > pieces to translate a little bigger:
> > > >
> > > > 1 hour
> > > > %d hours
> > > > 1 minute
> > > > %d minutes
> > > >
> > > > I am thinking, for instance, that good Chinese requires a
> "classifier"
> > >
> > > word
> > >
> > > > before "hours" or "minutes" -- but if I ask the Chinese translator
> just
> > >
> > > for
> > >
> > > > the word "hour" or "hours" out of context, I would be given a
> > > > translation
> > > > without a classifier, and then assembling the pieces would not be
> good
> > > > Chinese.
> > > >
> > > > // Use wxPLURAL to get strings
> > > >
> > > > sHours = wxPLURAL("hour", "hours", iHours);
> > > >
> > > > sMins = wxPLURAL("minute", "minutes", iMins);
> > > >
> > > >
> > > > /* i18n-hint: A time in hours and minutes. Only translate the
> "and".
> > >
> > > */
> > >
> > > > sFormatted.Printf(_("%d %s and %d %s."), iHours, sHours, iMins,
> > >
> > > sMins);
> > >
> > > > return sFormatted;
> > > >
> > > > Below is another example of a translated phrase assembled from
> pieces,
> > >
> > > but
> > >
> > > > without regard to other grammars. The word "of" with no context is a
> > >
> > > very
> > >
> > > > poor thing to present to translators. Better in this case, I think,
> > > > that
> > > > the strings be
> > > >
> > > > 1 of 1 clip
> > > > %d of %d clips
> > > >
> > > > (and really the first isn't good English, perhaps it should be "sole
> > >
> > > clip")
> > >
> > > > I am thinking of a language like Russian where "clips" above would
> > >
> > > properly
> > >
> > > > be translated into genitive plural case, but "clips" without context
> is
> > > > again a bad thing to present to the translator. The translator would
> > > > probably give me nominative plural when there is no context.
> > > >
> > > > wxString temp;
> > > >
> > > > temp.Printf(wxT("%d %s %d %s "), result.index + 1, _("of"),
> > >
> > > result.
> > >
> > > > waveTrack->GetNumClips(),
> > > >
> > > > result.waveTrack->GetNumClips() == 1 ? _("clip") :
> > > _("clips"));
> > >
> > > > message += temp;
> > > >
> > > > Translators, can you name other examples like this? Are there other
> > > > examples of English strings in the .pot file that are single words
> out
> > > > of
> > > > context, which gave you doubts and difficulties about the right
> answers?
> > > >
> > > > Paul Licameli
> > >
> > > Hi,
> > >
> > > I see no problems with Slavic languages for such strings. And now it is
> > > easy
> > > to browse Audacity code to find the hints and answers when in doubt.
> > >
> > > For me, the bigger problem is the actual lack of true plural forms in
> > > strings
> > > like
> > >
> > > https://github.com/audacity/audacity/blob/master/src/
> > > import/ImportRaw.cpp#L402
> > >
> > > chans.Add(wxString::Format(_("%d Channels"), i + 1));
> > >
> > > Actually, there are many languages in the world with more than 2 plural
> > > forms
> > > and several Audacity strings ignore this (they can easily be found by
> > > searching "%d" in the POT-catalog).
> >
> > "More than 2 plural forms" -- Do you mean, as in textbook Russian (I know
> > some, I suppose Ukrainian is similar) -- when the phrase as a whole is
> > nominative, then a noun may take nominative singular, genitive singular,
> or
> > genitive plural, depending on the numeral?
> >
> > I don't know a good way to program that difficult variation of forms into
> > language-neutral code! All we can easily do is make a one versus many
> > distinction.
> >
> > Or do you mean the entire phrase may be in some other case, where at
> least
> > there is just the two way distinction. Which is a reason for giving a
> > little bit of context for the noun to be translated, to get correct case.
> >
> > Or when you think of "more than 2 plural forms" is that something
> entirely
> > different?
> >
> > PRL
>
> I just mean the usual plural forms (I'm not a linguist):
>
> http://www.unicode.org/cldr/charts/latest/supplemental/
> language_plural_rules.html
>
Wow, a big crazy "can of worms," to use an English idiom. (Look at Irish,
Welsh, Breton. There is various "lenition" of initial consonants after
some of the numerals...)
Let's not get too nerdy with all of the interesting linguistics. I am just
hoping to be aware of English bias and maybe correct it in a few places,
before the reopened translation update period to come soon.
>
> In my example, "%d Channels" has different translations in Ukrainian (and
> Russian, if you like) depending on what %d actually is (this can be handled
> with something like wxPLURAL in your example).
>
>
Do you mean the one versus many distinction or more than that?
Actually this example is bad English even, if you substitute 1 for %d.
Some of our strings are like:
#: src/effects/Contrast.cpp:526 src/effects/Contrast.cpp:539
#, c-format
msgid "Time started = %2d hour(s), %2d minute(s), %.2f seconds."
This is an accepted English convention to abbreviate "hour or hours" and so
on. It's not like spoken English but it appears less stupid than "1 hours
1 minutes 0 seconds" would.
So let's just aim for less-stupid in other languages. Does this convention
have similar foreign equivalents? The Danish has:
"Tid begyndte = %2d time(r), %2d minut(ter), %.2f sekunder."
But I see you, Yuri, didn't bother with the distinction:
Час початку = %2d годин, %2d хвилин, %.2f секунд.
But then again here is another example where you did:
Successfully exported the following %lld file(s).
Успішно експортовано %lld файл(ів) з наведеного нижче списку.
So perhaps in your judgment one rule applies for time, which is continuous,
but another for a count of files. Is the last a sufficiently acceptable
un-stupid-looking convention? (Even though файл and файлів are not the
only possible forms?)
Perhaps trying to vary "hour" with "hours" in code is too much and too
English-biased and should just be avoided everywhere.
Perhaps what really should be done is consistent use of the "(s)"
convention wherever we have "%d". Leave it to translator's discretion
what to do with it.
And such problems can hardly be unique to Audacity. If you have experience
contributing to translations of other programs, tell me something about
their approaches to this.
I will probably decide to leave these imperfections with numerals alone in
2.2.0 because they are too many, but do something early in the next
development cycle, leaving longer time for translation updates.
I don't want to overwhelm translators with many *changed* strings now --
which, if not updated in time, will all show in English, losing the good of
your previous efforts.
We have identified many places where translations are missing (thanks to
Scooter and mkpoli for finding many of them). I think it is more imporant
to have the translators concentrate on *adding* strings if you can, in the
short period between here and final release -- improving on the state of
translations in at least some places, without risking a worsening of it in
many other places.
PRL
> On the other hand, there is no context problems in Ukrainian (Russian and
> Chinese, if I understand it right) with your examples. Even wrong (without
> context) translations will be "right". ;)
>
> Best regards,
> Yuri
>
> ------------------------------------------------------------
> ------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Audacity-translation mailing list
> Audacity-translation@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/audacity-translation
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Audacity-translation mailing list
Audacity-translation@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/audacity-translation