thank you for explaining. but i must still insist that what you cannot
beleive is indeed happening.

compare the translations for beagle, for example. both gotten via msgunfmt
http://ljudmila.org/~luka/po/debian/beagle.mo.po is the correctly working one 
in debian sid
http://ljudmila.org/~luka/po/ubuntu/beagle.mo.po is the broken one from ubuntu 
feisty language pack

notice that they use different plurals formulas. in fact, all of the packages 
in ubuntu use the same formula, 
where in debian at least these two functionally different formulas are used by 
different programs. 

"Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n"
"%100==4 ? 3 : 0);\n"
is the one used in correct beagle po

"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n"
"%100==4 ? 2 : 3);\n"
is the one used in ubuntu beagle po and in all the rest of translation files 
found in ubuntu language packs

note how indexes are shifted one place between them

if we look at this translation unit:
msgid "Contains {0} Item"
msgid_plural "Contains {0} Items"
msgstr[0] "Vsebuje {0} predmetov"
msgstr[1] "Vsebuje {0} predmet"
msgstr[2] "Vsebuje {0} predmeta"
msgstr[3] "Vsebuje {0} predmete"
it is exactly the same in both the working and broken translation. i guess it 
was not changed via launchpad.

so, what i am more and more convinced is happening is that rosetta
assumes all slovenian translations will be using the same plurals
formula, importing the strings by index directly and always uses the
canonical formula it has set (one where n=1 has index 0) when exporting.
this is clearly a wrong assumption and something that needs to be fixed
before a reimport is tried in coordination with the language team,
hopefully well before the next long-term-support release.

there are two possible fixes. either 
a) store the original plurals formula that came with the translation on import, 
then use it for export and display it to the translator in the web interface 
(in original format if human readable is still some time off) or 
b) do the necessary mapping (shift) between them on import, so that translators 
in launchpad can depend on the canonical formula being used in ubuntu.

they both have different good and bad sides re compatibility with
upstream and consistency. i lean towards the b option being better in
the long run. but have no idea which would be easier to achieve. i
discount the option to convince all upstreams to conform to the same
formula as unfeasible at this time.

even if this might not affect any other languages should not matter,
this looks like a rosetta bug. please dont keep it marked invalid.
slovenian translations in upstream might be incomplete, strange or
missing sometimes but evidence shows their plurals get broken on import
into ubuntu not by launchpad users.

-- 
slovenian translations getting broken by the translation system
https://bugs.launchpad.net/bugs/121555
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to