Re: [Audacity-translation] Correcting the Plural-forms directive for Portuguese, Turkish, Ukrainian

2018-01-23 Thread Paul Licameli
Ah, our messages crossed.

I see that you changed n > 1 to n != 1 in the header.  That makes a
difference only when n == 0.  Should zero take singular or plural?  poedit
most think that plural is the covention of most western European languages,
including European Portuguese.  But I see the .po files for French and
Brazilian Portuguese still have n > 1 and poedit does not warn.  Are those
in fact the exceptions?

I also see many other corrections of spelling and wording not related to
that.

This file is still 100% complete.  msgcmp pt_PT.po audacity.pot makes no
errors.

I notice you remove some & characters, which as you must know, are not
displayed but determine where underscores (on Windows) are placed under
letters, to mark accelerators.  It's not wrong, but are you sure you want
to remove those accelerators?

I can merge these corrections while I wait for the answer to that.

PRL




On Tue, Jan 23, 2018 at 9:37 PM, Bruno Ramalhete  wrote:

> I made some improvements in the Portuguese po file.
> Now the warning has gone, can you see if it is all right now?
>
> I made some changes and I use better words from previous translations.
>
> I send you the updated po file here.
>
> Best regards.
> Bruno
>
> 2018-01-23 18:12 GMT+00:00 Paul Licameli :
>
>> Attention, Bruno, Kaya, and Yuri,
>>
>> As I previously mentioned, poedit warns me that your .po files had the
>> Plural-Forms directive in the header set unusually for your languages.
>>
>> There is a discussion of plural forms here:
>> https://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms
>>
>> For Portuguese, I think poedit just gives a false warning.  The file has
>> this directive:
>> "Plural-Forms: nplurals=2; plural=(n > 1);\n"
>>
>> That is appropriate with a language like English with a distinction of
>> one and more-than-one, and according to the gettext documentation,
>> Portuguese is like that.  (And pt_BR.po has the same directive too.)
>>
>> Turkish is also like that, but the file has:
>> "Plural-Forms: nplurals=1; plural=0;\n"
>>
>> That line works for a language with no number distinctions like Chinese.
>> The gettext documentation explains that Turkish does not change noun forms
>> when they occur after a numeral, but there are some examples in
>> audacity.pot that are not like that.  For instance:
>>
>> #: src/PluginManager.cpp
>> msgid "Enable this plug-in?"
>> msgid_plural "Enable these plug-ins?"
>> msgstr[0] "Bu uygulama ekleri etkinleştirilsin mi?"
>>
>> Should there be a msgstr[1] with a Turkish plural form?  The tr.po header
>> must be edited so that msgmerge with audacity.pot will then make the
>> msgstr[1] for you to fill in.
>>
>> Finally Ukrainian.  gettext documentation says this:
>>
>> "Three forms, special cases for numbers ending in 1 and 2, 3, 4, except
>> those ending in 1[1-4]
>> The header entry would look like this:
>>
>> Plural-Forms: nplurals=3; \
>> plural=n%10==1 && n%100!=11 ? 0 : \
>>n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
>> Languages with this property include:
>>
>> Slavic family
>> Russian, Ukrainian, Belarusian, Serbian, Croatian"
>>
>> That expression means you map a number to a place in the msgstr[] table
>> thus:
>> return 0 for 1, 21, 31, ...
>> return 1 for 2, 3, 4, 22, 23, 24, 32, 33, 34, ...
>> return 2 for 5 through 20, 25 through 30, 35 through 40, ...
>> (and similarly for each century)
>>
>> From what I know of Russian, the first case is where you use nominative
>> singular, the second genitive singular, the last, genitive plural.  (Unless
>> the noun phrase as a whole is in an oblique case, not nominative.)
>>
>> Is it correct that Ukrainian has identical rules?  But uk.po has this
>> instead:
>>
>> "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
>>
>> In other words:
>> return 0 for 21, 31, ...
>> return 1 in no case
>> return 2 for 2
>> return 3 for 1 and 3
>> For all other numbers, return out-of-bounds!  This can't be right.
>>
>> For all these languages, tell me you think your Plural-Forms is really
>> correct, despite the references above, and I will ignore the warning from
>> poedit.  Or else, you still have opportunity to fix it.  There are not very
>> many uses yet of msgid_plural -- only 6.  But I hope to make more
>> consistent use of it in future.  There may be places where it should be
>> used but isn't.
>>
>> Or if it's only the one header line that needs correction, I can fix that
>> by hand.
>>
>> PRL
>>
>>
>> 
>> --
>> 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
>>
>>
>
> 

Re: [Audacity-translation] I am merging your translation updates

2018-01-23 Thread Paul Licameli
Bruno, I think nothing is really wrong with pt_PT.po.  I examined it and
all msgid_plural entries appear to be filled in properly.

poedit was simply making a warning when I opened the file, about the header
information and not about any particular entry, and I explained why the
warning is probably wrong.

Portuguese is like English and most Western European languages -- there are
only two number forms, singular and plural.  Correct?

PRL


On Tue, Jan 23, 2018 at 6:00 PM, Bruno Ramalhete  wrote:

> Hi Paul,
>
> I am trying to fix the plural issues. Can you tell me in which lines do
> you see the warnings? I am trying to search.
>
> I must make some improvements and send you the file again.
>
> Regards.
> Bruno
>
>
>
> Em 23/01/2018 01:08, "Paul Licameli"  escreveu:
>
>> I am now looking at updated .po files for Audacity version 2.2.2.
>>
>> I am aware of updates for these -- please alert me if I missed any.
>>
>> Some of these are still missing a few entries from the latest version of
>> Audacity.pot.  Some give me a warning when I open them in poedit that the
>> Plural-Forms header line is unusual for that language.
>>
>> Basque
>> Chinese (Simplified) (missing 34)
>> Danish (missing 10)
>> French
>> German
>> Greek
>> Korean
>> Portuguese (European) (plurals)
>> Spanish
>> Swedish
>> Turkish (10 missing; plurals)
>> Ukrainian (plurals)
>>
>> I will soon put all these updates into GitHub, as complete or nearly so.
>> If you still want to make small corrections, it is not too late.
>>
>> See this reference for how to correct the Plural-Forms, and what might be
>> correct for your language: https://www.gnu.org/software/g
>> ettext/manual/gettext.html#Plural-forms
>>
>> Once you do that, try msgmerge xx.po audacity.pot and see that you get
>> lines like
>>
>> msgstr[0]
>> msgstr[1]
>>
>> etc.  to be filled in.
>>
>> Finally, there were some other languages that were brought up to date for
>> version 2.2.1.  I hope those translators are reading this and can keep
>> these others up-to-date for 2.2.2 too:
>>
>> Arabic
>> Basque (Spain)
>> Chinese (Traditional)
>> Czech
>> Dutch
>> Hindi
>> Italian
>> Polish
>> Portuguese (Brazilian)
>> Slovenian
>>
>> And languages not on this list are surely welcome too.
>>
>> PRL
>>
>>
>> 
>> --
>> 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
>
>
--
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


Re: [Audacity-translation] I am merging your translation updates

2018-01-23 Thread Bruno Ramalhete
It is correct, Paul, there are just two number forms, and I read the
gettext manual you sent by that link.

By the way, I needed to make some improvements in the Portuguese
translation, and need to make sure you test the file again and nothing is
wrong by now.

Regards.
Bruno

2018-01-24 2:37 GMT+00:00 Paul Licameli :

> Bruno, I think nothing is really wrong with pt_PT.po.  I examined it and
> all msgid_plural entries appear to be filled in properly.
>
> poedit was simply making a warning when I opened the file, about the
> header information and not about any particular entry, and I explained why
> the warning is probably wrong.
>
> Portuguese is like English and most Western European languages -- there
> are only two number forms, singular and plural.  Correct?
>
> PRL
>
>
> On Tue, Jan 23, 2018 at 6:00 PM, Bruno Ramalhete 
> wrote:
>
>> Hi Paul,
>>
>> I am trying to fix the plural issues. Can you tell me in which lines do
>> you see the warnings? I am trying to search.
>>
>> I must make some improvements and send you the file again.
>>
>> Regards.
>> Bruno
>>
>>
>>
>> Em 23/01/2018 01:08, "Paul Licameli"  escreveu:
>>
>>> I am now looking at updated .po files for Audacity version 2.2.2.
>>>
>>> I am aware of updates for these -- please alert me if I missed any.
>>>
>>> Some of these are still missing a few entries from the latest version of
>>> Audacity.pot.  Some give me a warning when I open them in poedit that the
>>> Plural-Forms header line is unusual for that language.
>>>
>>> Basque
>>> Chinese (Simplified) (missing 34)
>>> Danish (missing 10)
>>> French
>>> German
>>> Greek
>>> Korean
>>> Portuguese (European) (plurals)
>>> Spanish
>>> Swedish
>>> Turkish (10 missing; plurals)
>>> Ukrainian (plurals)
>>>
>>> I will soon put all these updates into GitHub, as complete or nearly
>>> so.  If you still want to make small corrections, it is not too late.
>>>
>>> See this reference for how to correct the Plural-Forms, and what might
>>> be correct for your language: https://www.gnu.org/software/g
>>> ettext/manual/gettext.html#Plural-forms
>>>
>>> Once you do that, try msgmerge xx.po audacity.pot and see that you get
>>> lines like
>>>
>>> msgstr[0]
>>> msgstr[1]
>>>
>>> etc.  to be filled in.
>>>
>>> Finally, there were some other languages that were brought up to date
>>> for version 2.2.1.  I hope those translators are reading this and can keep
>>> these others up-to-date for 2.2.2 too:
>>>
>>> Arabic
>>> Basque (Spain)
>>> Chinese (Traditional)
>>> Czech
>>> Dutch
>>> Hindi
>>> Italian
>>> Polish
>>> Portuguese (Brazilian)
>>> Slovenian
>>>
>>> And languages not on this list are surely welcome too.
>>>
>>> PRL
>>>
>>>
>>> 
>>> --
>>> 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
>>
>>
>
> 
> --
> 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


Re: [Audacity-translation] Correcting the Plural-forms directive for Portuguese, Turkish, Ukrainian

2018-01-23 Thread Paul Licameli
I just opened all the .po files in poedit, not just those recently updated.

Some of the .po files (Macedonian for one) don't even define Plural-Forms.
Among those that do, the only other ones for which poedit warns about
unusual plural forms are:
Bosnian, Croation, Slovenian, Polish, Russian.

No warnings for these other Slavic languages that do define it:
Belarussian, Czech, Slovak, Serbian (Latin), Serbian (Cyrillic).

A close look shows that those that warn do what Yuri did for Ukrainian,
using four forms, which he convinced me is really better, but those that do
not warn use only three forms, and perhaps they should be changed if we get
more updates.  Pavel Fric gave a Czech update only last November.

There is also Bulgarian, with no warnings, but I understand that one
doesn't decline nouns and has simpler number rules.

PRL



On Tue, Jan 23, 2018 at 1:48 PM, Yuri Chornoivan  wrote:

> вівторок, 23 січня 2018 р. 20:12:55 EET Paul Licameli написано:
> > Finally Ukrainian.  gettext documentation says this:
> >
> > "Three forms, special cases for numbers ending in 1 and 2, 3, 4, except
> > those ending in 1[1-4] The header entry would look like this:
> >
> > Plural-Forms: nplurals=3; \
> > plural=n%10==1 && n%100!=11 ? 0 : \
> >n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
> > Languages with this property include:
> >
> > Slavic family
> > Russian, Ukrainian, Belarusian, Serbian, Croatian"
> >
> > That expression means you map a number to a place in the msgstr[] table
> > thus: return 0 for 1, 21, 31, ...
> > return 1 for 2, 3, 4, 22, 23, 24, 32, 33, 34, ...
> > return 2 for 5 through 20, 25 through 30, 35 through 40, ...
> > (and similarly for each century)
> >
> > From what I know of Russian, the first case is where you use nominative
> > singular, the second genitive singular, the last, genitive plural.
> (Unless
> > the noun phrase as a whole is in an oblique case, not nominative.)
> >
> > Is it correct that Ukrainian has identical rules?  But uk.po has this
> > instead:
> >
> > "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 :
> n"
> >
> > In other words:
> > return 0 for 21, 31, ...
> > return 1 in no case
> > return 2 for 2
> > return 3 for 1 and 3
> > For all other numbers, return out-of-bounds!  This can't be right.
>
> Actually, it was read in a wrong way.
>
> Let's see. The whole header of the file from PR says:
>
> "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
> "%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
>
> which means
>
> Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 :
> n%10>=2
> && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
>
> or in human readable form:
>
> 3rd form for n=1
> 0th form for (n div 10=1) and (n div 100 not equal 11) or simpler "21,
> 31..."
> 1st form for 2, 3, 4, 22, 23 , 24...
> 2nd form for 5, 6, 7, 8...
>
> As you can see, it is the same as CLDR form for all cases, but the case
> n=1.
>
> You might be asking _why on Earth!!!?_  Can it be simpler?
>
> Heh... The standard form works only for the messages with a replacer.
>
> Consider the examples from gettext man (the same thing holds true for
> wxWidgets too):
>
> https://www.gnu.org/savannah-checkouts/gnu/gettext/manual/
> html_node/Plural-forms.html
>
> 1.
>
> ngettext ("%d file removed", "%d files removed", n)
>
> Perfect. The standard form works just fine. %d is replaced by the number
> and
> all 3 standard forms fit.
>
> 2.
>
> ngettext ("One file removed", "%d files removed", n)
>
> Trouble. The form 0 for Slavic languages is for 1, 21, 31... But in words
> they
> are not "One", they are "One, Twenty-one..." Such plurals cannot be
> translated
> in Transifex at all. The validity check refuses any Slavic langauge
> translation (see the translation of Transifex itself).
>
> If you translate
>
> "One file removed"
> "%d files removed"
> "%d files removed"
>
> the validation will be failed because the first form (0th case) does not
> contain enough cases to be split into "1, 21, 31..."
>
> If you translate
>
> "%d file removed"
> "%d files removed"
> "%d files removed"
>
> the validation will be failed because there is "%d" in the first case, but
> the
> checker thinks there should not be any replacer...
>
> 3.
>
> ngettext ("Delete the selected file?",
> "Delete the selected files?", n)
>
> Fail. Without number (replacer), there are only two plural forms in the
> Slavic
> languages: "one" and "many". But the 0th rule in the standard (CLDR)
> combines
> "one" and "many". They should be split to give the correct translation.
>
> That's why Russian, Serbian and Ukrainian KDE and GNOME teams use the
> plural
> rules with 4 forms (n=1 is separated in its own case).
>
> Hope this helps to understand the current header of Audacity file.
>
> Thanks for your work.
>
> Best regards,
> Yuri
>
> 
> --
> 

Re: [Audacity-translation] Correcting the Plural-forms directive for Portuguese, Turkish, Ukrainian

2018-01-23 Thread Bruno Ramalhete
I saw that in English there weren't some & characters and I removed that
for Portuguese, and some others have.

Now I have to see where the & is needed, now I can't remember.

I'll see.

Bruno

2018-01-24 2:51 GMT+00:00 Paul Licameli :

> Ah, our messages crossed.
>
> I see that you changed n > 1 to n != 1 in the header.  That makes a
> difference only when n == 0.  Should zero take singular or plural?  poedit
> most think that plural is the covention of most western European languages,
> including European Portuguese.  But I see the .po files for French and
> Brazilian Portuguese still have n > 1 and poedit does not warn.  Are those
> in fact the exceptions?
>
> I also see many other corrections of spelling and wording not related to
> that.
>
> This file is still 100% complete.  msgcmp pt_PT.po audacity.pot makes no
> errors.
>
> I notice you remove some & characters, which as you must know, are not
> displayed but determine where underscores (on Windows) are placed under
> letters, to mark accelerators.  It's not wrong, but are you sure you want
> to remove those accelerators?
>
> I can merge these corrections while I wait for the answer to that.
>
> PRL
>
>
>
>
> On Tue, Jan 23, 2018 at 9:37 PM, Bruno Ramalhete 
> wrote:
>
>> I made some improvements in the Portuguese po file.
>> Now the warning has gone, can you see if it is all right now?
>>
>> I made some changes and I use better words from previous translations.
>>
>> I send you the updated po file here.
>>
>> Best regards.
>> Bruno
>>
>> 2018-01-23 18:12 GMT+00:00 Paul Licameli :
>>
>>> Attention, Bruno, Kaya, and Yuri,
>>>
>>> As I previously mentioned, poedit warns me that your .po files had the
>>> Plural-Forms directive in the header set unusually for your languages.
>>>
>>> There is a discussion of plural forms here:
>>> https://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms
>>>
>>> For Portuguese, I think poedit just gives a false warning.  The file has
>>> this directive:
>>> "Plural-Forms: nplurals=2; plural=(n > 1);\n"
>>>
>>> That is appropriate with a language like English with a distinction of
>>> one and more-than-one, and according to the gettext documentation,
>>> Portuguese is like that.  (And pt_BR.po has the same directive too.)
>>>
>>> Turkish is also like that, but the file has:
>>> "Plural-Forms: nplurals=1; plural=0;\n"
>>>
>>> That line works for a language with no number distinctions like
>>> Chinese.  The gettext documentation explains that Turkish does not change
>>> noun forms when they occur after a numeral, but there are some examples in
>>> audacity.pot that are not like that.  For instance:
>>>
>>> #: src/PluginManager.cpp
>>> msgid "Enable this plug-in?"
>>> msgid_plural "Enable these plug-ins?"
>>> msgstr[0] "Bu uygulama ekleri etkinleştirilsin mi?"
>>>
>>> Should there be a msgstr[1] with a Turkish plural form?  The tr.po
>>> header must be edited so that msgmerge with audacity.pot will then make the
>>> msgstr[1] for you to fill in.
>>>
>>> Finally Ukrainian.  gettext documentation says this:
>>>
>>> "Three forms, special cases for numbers ending in 1 and 2, 3, 4, except
>>> those ending in 1[1-4]
>>> The header entry would look like this:
>>>
>>> Plural-Forms: nplurals=3; \
>>> plural=n%10==1 && n%100!=11 ? 0 : \
>>>n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
>>> Languages with this property include:
>>>
>>> Slavic family
>>> Russian, Ukrainian, Belarusian, Serbian, Croatian"
>>>
>>> That expression means you map a number to a place in the msgstr[] table
>>> thus:
>>> return 0 for 1, 21, 31, ...
>>> return 1 for 2, 3, 4, 22, 23, 24, 32, 33, 34, ...
>>> return 2 for 5 through 20, 25 through 30, 35 through 40, ...
>>> (and similarly for each century)
>>>
>>> From what I know of Russian, the first case is where you use nominative
>>> singular, the second genitive singular, the last, genitive plural.  (Unless
>>> the noun phrase as a whole is in an oblique case, not nominative.)
>>>
>>> Is it correct that Ukrainian has identical rules?  But uk.po has this
>>> instead:
>>>
>>> "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 :
>>> n"
>>>
>>> In other words:
>>> return 0 for 21, 31, ...
>>> return 1 in no case
>>> return 2 for 2
>>> return 3 for 1 and 3
>>> For all other numbers, return out-of-bounds!  This can't be right.
>>>
>>> For all these languages, tell me you think your Plural-Forms is really
>>> correct, despite the references above, and I will ignore the warning from
>>> poedit.  Or else, you still have opportunity to fix it.  There are not very
>>> many uses yet of msgid_plural -- only 6.  But I hope to make more
>>> consistent use of it in future.  There may be places where it should be
>>> used but isn't.
>>>
>>> Or if it's only the one header line that needs correction, I can fix
>>> that by hand.
>>>
>>> PRL
>>>
>>>
>>> 

[Audacity-translation] Correcting the Plural-forms directive for Portuguese, Turkish, Ukrainian

2018-01-23 Thread Paul Licameli
Attention, Bruno, Kaya, and Yuri,

As I previously mentioned, poedit warns me that your .po files had the
Plural-Forms directive in the header set unusually for your languages.

There is a discussion of plural forms here:
https://www.gnu.org/software/gettext/manual/gettext.html#Plural-forms

For Portuguese, I think poedit just gives a false warning.  The file has
this directive:
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

That is appropriate with a language like English with a distinction of one
and more-than-one, and according to the gettext documentation, Portuguese
is like that.  (And pt_BR.po has the same directive too.)

Turkish is also like that, but the file has:
"Plural-Forms: nplurals=1; plural=0;\n"

That line works for a language with no number distinctions like Chinese.
The gettext documentation explains that Turkish does not change noun forms
when they occur after a numeral, but there are some examples in
audacity.pot that are not like that.  For instance:

#: src/PluginManager.cpp
msgid "Enable this plug-in?"
msgid_plural "Enable these plug-ins?"
msgstr[0] "Bu uygulama ekleri etkinleştirilsin mi?"

Should there be a msgstr[1] with a Turkish plural form?  The tr.po header
must be edited so that msgmerge with audacity.pot will then make the
msgstr[1] for you to fill in.

Finally Ukrainian.  gettext documentation says this:

"Three forms, special cases for numbers ending in 1 and 2, 3, 4, except
those ending in 1[1-4]
The header entry would look like this:

Plural-Forms: nplurals=3; \
plural=n%10==1 && n%100!=11 ? 0 : \
   n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
Languages with this property include:

Slavic family
Russian, Ukrainian, Belarusian, Serbian, Croatian"

That expression means you map a number to a place in the msgstr[] table
thus:
return 0 for 1, 21, 31, ...
return 1 for 2, 3, 4, 22, 23, 24, 32, 33, 34, ...
return 2 for 5 through 20, 25 through 30, 35 through 40, ...
(and similarly for each century)

>From what I know of Russian, the first case is where you use nominative
singular, the second genitive singular, the last, genitive plural.  (Unless
the noun phrase as a whole is in an oblique case, not nominative.)

Is it correct that Ukrainian has identical rules?  But uk.po has this
instead:

"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"

In other words:
return 0 for 21, 31, ...
return 1 in no case
return 2 for 2
return 3 for 1 and 3
For all other numbers, return out-of-bounds!  This can't be right.

For all these languages, tell me you think your Plural-Forms is really
correct, despite the references above, and I will ignore the warning from
poedit.  Or else, you still have opportunity to fix it.  There are not very
many uses yet of msgid_plural -- only 6.  But I hope to make more
consistent use of it in future.  There may be places where it should be
used but isn't.

Or if it's only the one header line that needs correction, I can fix that
by hand.

PRL
--
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


Re: [Audacity-translation] Audacity-translation Digest, Vol 128, Issue 30

2018-01-23 Thread Kaya Zeren
Paul you're right. There are plural suffixes and there is some nuance, but
we can neglect it.

As your example, if dialog asks to us:
"Enable these plug-ins" (plural)
 and if there is only one plug-in in the list below (singular)
it's still acceptable and not ear splitting.

I use same approach on my other translations (around 200 project) and test
on apps that I use daily. Seems ok for me.

On the other hand, if it's necessary I can easily modify the translation as
you pointed out.

But in that case -if I understand right- we should forget to use Transifex
anymore. I'm not so willing to do that.

Thanks for your effort
Kaya


>

-- 
Saygılarımla,
Kaya Zeren
--
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


Re: [Audacity-translation] I am merging your translation updates

2018-01-23 Thread Paul Licameli
Update:  I have seen the small updates for Simplified Chinese, Danish, and
Turkish since I wrote this.  That brings all twelve languages in the first
list below 100% up to date.  Thanks for the updates.

I took the Turkish from Transifex.  I see it is done by the same party who
also posts to this mailing list.

The Turkish, however, still causes a warning when I open it with poedit,
that plural forms are not specified in the usual way for that language.

PRL



On Mon, Jan 22, 2018 at 8:08 PM, Paul Licameli 
wrote:

> I am now looking at updated .po files for Audacity version 2.2.2.
>
> I am aware of updates for these -- please alert me if I missed any.
>
> Some of these are still missing a few entries from the latest version of
> Audacity.pot.  Some give me a warning when I open them in poedit that the
> Plural-Forms header line is unusual for that language.
>
> Basque
> Chinese (Simplified) (missing 34)
> Danish (missing 10)
> French
> German
> Greek
> Korean
> Portuguese (European) (plurals)
> Spanish
> Swedish
> Turkish (10 missing; plurals)
> Ukrainian (plurals)
>
> I will soon put all these updates into GitHub, as complete or nearly so.
> If you still want to make small corrections, it is not too late.
>
> See this reference for how to correct the Plural-Forms, and what might be
> correct for your language: https://www.gnu.org/software/
> gettext/manual/gettext.html#Plural-forms
>
> Once you do that, try msgmerge xx.po audacity.pot and see that you get
> lines like
>
> msgstr[0]
> msgstr[1]
>
> etc.  to be filled in.
>
> Finally, there were some other languages that were brought up to date for
> version 2.2.1.  I hope those translators are reading this and can keep
> these others up-to-date for 2.2.2 too:
>
> Arabic
> Basque (Spain)
> Chinese (Traditional)
> Czech
> Dutch
> Hindi
> Italian
> Polish
> Portuguese (Brazilian)
> Slovenian
>
> And languages not on this list are surely welcome too.
>
> PRL
>
>
--
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


Re: [Audacity-translation] I am merging your translation updates

2018-01-23 Thread Paul Licameli
On Tue, Jan 23, 2018 at 12:48 PM, Yuri Chornoivan  wrote:

> вівторок, 23 січня 2018 р. 19:10:57 EET Paul Licameli написано:
> > Some of these are still missing a few entries from the latest version of
> > Audacity.pot.  Some give me a warning when I open them in poedit that the
> > Plural-Forms header line is unusual for that language.
> > Ukrainian (plurals)
>
> Hi,
>
> If it is not hard to do, please use the file from PR. Please do not use the
> application like poEdit to test Ukrainian translation.
>
> poEdit, Qt Linguist, Transifex, Pootle and some other tools have hard-coded
> plural forms for each language. These forms are in accordance with CLDR
> (official Unicode) but are not always suitable for software translations
> (if
> you need it, I can explain everything thoroughly with examples from gettext
> man).
>
> The plural forms from the file attached (the same as in PR) are correct
> (just
> one additional case for n==1). This can be verified by "msgfmt -vc" from
> gettext utils.
>
> If you still do not want to use this file, please use the Transifex
> flavour...
>
> Thanks in advance for your work.
>
> Best regards,
> Yuri
>

Yuri,

Our messages crossed.  See my other recent email about plurals.

I did download your pull request and will soon push that change to Github,
rebased onto more recent HEAD.

The existing Plural-Forms in the header for uk.po (both the PR and your
last attachment, and also in the 2.2.1 version of it) are all the same, and
as I explained in the other email, all incorrect because they map some
numbers outside the range of 0, ... 3.

What was the source of that directive?  Something must be done to fix it.

PRL



> -

-
> 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


Re: [Audacity-translation] Correcting the Plural-forms directive for Portuguese, Turkish, Ukrainian

2018-01-23 Thread Yuri Chornoivan
вівторок, 23 січня 2018 р. 20:12:55 EET Paul Licameli написано:
> Finally Ukrainian.  gettext documentation says this:
> 
> "Three forms, special cases for numbers ending in 1 and 2, 3, 4, except
> those ending in 1[1-4] The header entry would look like this:
> 
> Plural-Forms: nplurals=3; \
> plural=n%10==1 && n%100!=11 ? 0 : \
>n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
> Languages with this property include:
> 
> Slavic family
> Russian, Ukrainian, Belarusian, Serbian, Croatian"
> 
> That expression means you map a number to a place in the msgstr[] table
> thus: return 0 for 1, 21, 31, ...
> return 1 for 2, 3, 4, 22, 23, 24, 32, 33, 34, ...
> return 2 for 5 through 20, 25 through 30, 35 through 40, ...
> (and similarly for each century)
> 
> From what I know of Russian, the first case is where you use nominative
> singular, the second genitive singular, the last, genitive plural.  (Unless
> the noun phrase as a whole is in an oblique case, not nominative.)
> 
> Is it correct that Ukrainian has identical rules?  But uk.po has this
> instead:
> 
> "Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
> 
> In other words:
> return 0 for 21, 31, ...
> return 1 in no case
> return 2 for 2
> return 3 for 1 and 3
> For all other numbers, return out-of-bounds!  This can't be right.

Actually, it was read in a wrong way.

Let's see. The whole header of the file from PR says:

"Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n"
"%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"

which means

Plural-Forms: nplurals=4; plural=n==1 ? 3 : n%10==1 && n%100!=11 ? 0 : n%10>=2 
&& n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"

or in human readable form:

3rd form for n=1
0th form for (n div 10=1) and (n div 100 not equal 11) or simpler "21, 31..."
1st form for 2, 3, 4, 22, 23 , 24...
2nd form for 5, 6, 7, 8...

As you can see, it is the same as CLDR form for all cases, but the case n=1.

You might be asking _why on Earth!!!?_  Can it be simpler?

Heh... The standard form works only for the messages with a replacer.

Consider the examples from gettext man (the same thing holds true for 
wxWidgets too):

https://www.gnu.org/savannah-checkouts/gnu/gettext/manual/html_node/Plural-forms.html

1.

ngettext ("%d file removed", "%d files removed", n)

Perfect. The standard form works just fine. %d is replaced by the number and 
all 3 standard forms fit.

2.

ngettext ("One file removed", "%d files removed", n)

Trouble. The form 0 for Slavic languages is for 1, 21, 31... But in words they 
are not "One", they are "One, Twenty-one..." Such plurals cannot be translated 
in Transifex at all. The validity check refuses any Slavic langauge 
translation (see the translation of Transifex itself).

If you translate

"One file removed"
"%d files removed"
"%d files removed"

the validation will be failed because the first form (0th case) does not 
contain enough cases to be split into "1, 21, 31..."

If you translate

"%d file removed"
"%d files removed"
"%d files removed"

the validation will be failed because there is "%d" in the first case, but the 
checker thinks there should not be any replacer...

3.

ngettext ("Delete the selected file?",
"Delete the selected files?", n)

Fail. Without number (replacer), there are only two plural forms in the Slavic 
languages: "one" and "many". But the 0th rule in the standard (CLDR) combines 
"one" and "many". They should be split to give the correct translation.

That's why Russian, Serbian and Ukrainian KDE and GNOME teams use the plural 
rules with 4 forms (n=1 is separated in its own case).

Hope this helps to understand the current header of Audacity file.

Thanks for your work.

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


Re: [Audacity-translation] Audacity-translation Digest, Vol 128, Issue 27

2018-01-23 Thread Kaya Zeren
Sorry I just saw the messages and couldn't get if I change something.

Plural form for Turkish is:
‪nplurals=1; plural=0;

We use singular phrases for plural in Turkish.

Thanks
Kaya

23 Oca 2018 Sal, 20:48 tarihinde <
audacity-translation-requ...@lists.sourceforge.net> şunu yazdı:

> Send Audacity-translation mailing list submissions to
> audacity-translation@lists.sourceforge.net
>
> To subscribe or unsubscribe via the World Wide Web, visit
> https://lists.sourceforge.net/lists/listinfo/audacity-translation
> or, via email, send a message with subject or body 'help' to
> audacity-translation-requ...@lists.sourceforge.net
>
> You can reach the person managing the list at
> audacity-translation-ow...@lists.sourceforge.net
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Audacity-translation digest..."
>
>
> Today's Topics:
>
>1. Re: I am merging your translation updates (Paul Licameli)
>2. Re: I am merging your translation updates (Yuri Chornoivan)
>
>
> --
>
> Message: 1
> Date: Tue, 23 Jan 2018 12:10:57 -0500
> From: Paul Licameli 
> To: audacity-translation 
> Subject: Re: [Audacity-translation] I am merging your translation
> updates
> Message-ID:
> <
> cakug33p6xmdjg9ox_6dqraeu8do0npz_hnc-vy+j1nxh6yx...@mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Update:  I have seen the small updates for Simplified Chinese, Danish, and
> Turkish since I wrote this.  That brings all twelve languages in the first
> list below 100% up to date.  Thanks for the updates.
>
> I took the Turkish from Transifex.  I see it is done by the same party who
> also posts to this mailing list.
>
> The Turkish, however, still causes a warning when I open it with poedit,
> that plural forms are not specified in the usual way for that language.
>
> PRL
>
>
>
> On Mon, Jan 22, 2018 at 8:08 PM, Paul Licameli 
> wrote:
>
> > I am now looking at updated .po files for Audacity version 2.2.2.
> >
> > I am aware of updates for these -- please alert me if I missed any.
> >
> > Some of these are still missing a few entries from the latest version of
> > Audacity.pot.  Some give me a warning when I open them in poedit that the
> > Plural-Forms header line is unusual for that language.
> >
> > Basque
> > Chinese (Simplified) (missing 34)
> > Danish (missing 10)
> > French
> > German
> > Greek
> > Korean
> > Portuguese (European) (plurals)
> > Spanish
> > Swedish
> > Turkish (10 missing; plurals)
> > Ukrainian (plurals)
> >
> > I will soon put all these updates into GitHub, as complete or nearly so.
> > If you still want to make small corrections, it is not too late.
> >
> > See this reference for how to correct the Plural-Forms, and what might be
> > correct for your language: https://www.gnu.org/software/
> > gettext/manual/gettext.html#Plural-forms
> >
> > Once you do that, try msgmerge xx.po audacity.pot and see that you get
> > lines like
> >
> > msgstr[0]
> > msgstr[1]
> >
> > etc.  to be filled in.
> >
> > Finally, there were some other languages that were brought up to date for
> > version 2.2.1.  I hope those translators are reading this and can keep
> > these others up-to-date for 2.2.2 too:
> >
> > Arabic
> > Basque (Spain)
> > Chinese (Traditional)
> > Czech
> > Dutch
> > Hindi
> > Italian
> > Polish
> > Portuguese (Brazilian)
> > Slovenian
> >
> > And languages not on this list are surely welcome too.
> >
> > PRL
> >
> >
> -- next part --
> An HTML attachment was scrubbed...
>
> --
>
> Message: 2
> Date: Tue, 23 Jan 2018 19:48:41 +0200
> From: Yuri Chornoivan 
> To: audacity-translation@lists.sourceforge.net
> Subject: Re: [Audacity-translation] I am merging your translation
> updates
> Message-ID: <2433412.zTPHVFxuPq@localhost.localdomain>
> Content-Type: text/plain; charset="utf-8"
>
> , 23 ? 2018 ?. 19:10:57 EET Paul Licameli :
> > Some of these are still missing a few entries from the latest version of
> > Audacity.pot.  Some give me a warning when I open them in poedit that the
> > Plural-Forms header line is unusual for that language.
> > Ukrainian (plurals)
>
> Hi,
>
> If it is not hard to do, please use the file from PR. Please do not use the
> application like poEdit to test Ukrainian translation.
>
> poEdit, Qt Linguist, Transifex, Pootle and some other tools have hard-coded
> plural forms for each language. These forms are in accordance with CLDR
> (official Unicode) but are not always suitable for software translations
> (if
> you need it, I can explain everything thoroughly with examples from gettext
> man).
>
> The plural forms from the file attached (the same as in PR) are correct
> (just
> one additional case for n==1). This can be verified by 

[Audacity-translation] Put updated translations on github

2018-01-23 Thread scootergrisen
Could someone put the newest translations on github so i can double 
check my translation is correct?


--
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


Re: [Audacity-translation] Put updated translations on github

2018-01-23 Thread scootergrisen

Den 23-01-2018 kl. 22:47 skrev Paul Licameli:

Now!  See commit 02caea1b8ae24dbccada1a04c12240feec53cf00

PRL



Thanks. Looks fine for danish translation at least.
Someone forgot to update the "Project-Id-Version: audacity 2.2.0\n" in 
the pot file.

Perhaps remove the " 2.2.0" part from the pot file?
Not that its super important its just a little confusing when i have 
"2.2.2" in the translated po file and i want to update it with a pot 
file that have "2.2.0".


--
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