субота, 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 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). 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