tłumaczenie modułu userpoints - problem z liczbą mnogą

Tłumacząc moduł userpoints na polski mam problem z tłumaczeniem liczby mnogiej, np: Point → punkt Points → punkty  punktów

używam takiego tłumaczenie:

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

#: userpoints.mo­dule:283 msgid „point” msgid_plural „points” msgstr[0] „punkt” msgstr[1] „punkty” msgstr[2] „punktĂłw”

forma punktów (punktĂłw) wydaje się nie działać w drupalu, zamiast „punktĂłw” wyświetla się „points”

może ktoś wie w czym tkwi problem??

Sposób wyświetlania odpowiedzi

Wybierz preferowany sposób wyświetlania odpowiedzi i kliknij "Zachowaj ustawienia", by wprowadzić zmiany.
Portret użytkownika archetwist

Kodowanie?

moderator

Plural-Forms są w porządku. Treść tłumaczenia również. Czy w oryginale też wszystko jest w jednej linii? No i kodowanie masz zdaje się niepoprawne. Na tej stronie jest UTF-8, w plikach tłumaczenia również stosowane jest UTF-8, więc nie powinno być tych krzaków. Vim wspiera UTF-8. Notatnik zresztą też, ale trzeba je ustawić przy zapisie. Nie wiem czy w tym tkwi problem – to tylko strzał.

Portret użytkownika GlobalPlayer

Używam POEDITa do

Używam POEDITa do tłumaczenia modułów, przetłumaczoną treść modułu kopiowałem z gotowego pliku *.po dlatego są krzaczki, to nie jest problem…

Portret użytkownika GlobalPlayer

może bardziej obrazowo

może bardziej obrazowo będzie jak pokażę działanie modułu userpoints i co mi chodzi jeśli pokaże stronę gdzie go stosuje, www.elinker.pl (możliwe ze tłumaczenie modułu userpoints koliduje ze zmiennymi z innego modułu, który kooperuje z tym modułem?)

Portret użytkownika archetwist

Kolidowałoby, gdybyś

moderator

Kolidowałoby, gdybyś nadpisał istniejące tłumaczenia tłumaczeniami z innego pliku, w którym „points” nie ma polskiego odpowiednika.

Czy plik POT jest na pewno aktualny?

Zdarzało mi się, że jakieś teoretycznie przetłumaczone wyrażenia nie były tłumaczone na stronie, ale tylko w przypadku współdzielenia tabel między różnymi witrynami (multisite).

Portret użytkownika GlobalPlayer

tłumaczenia robię przy

tłumaczenia robię przy pomocy pliku extractor.php, który sciągnałem ze strony drupal.org więc zakładam, że tłumaczenie jest aktualne…przetłu­maczyłem też plik pot dołączony do modułu zamieniając przy okazji string:

„Plural-Forms: nplurals=INTEGER; plural=EXPRES­SION;\n”

na

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

to też nic nie pomogło, nie stosuje multisite…

zdaje się, że forma

zdaje się, że forma z liczba mnogą w drugiej opcji msgstr[2] „punktĂłw” wogóle nie jest wybierana przy użyciu

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

sam zapis wygląda dobrze w sensie składniowym, archetwist masz może jakiś inny pomysł, żeby zapisać to inaczej ale, żeby zachowało to samo znaczenie? zdaje się to Twój kawałek kodu?

Portret użytkownika archetwist

inny pomysł

moderator

archetwist masz może jakiś inny pomysł

Tak, chyba nie zauważyłeś tej odpowiedzi.

zdaje się to Twój kawałek kodu?

Nie mój. Wziąłem go skądś, nie pamiętam skąd.

Portret użytkownika archetwist

Już chyba wiem dlaczego

moderator

Już chyba wiem dlaczego masz problem z tą liczbą mnogą. W źródle modułu jest coś takiego:

$form[$group][USERPOINTS_TRANS_UCPOINTS] = array(
'#type' => 'textfield',
'#title' => t('Word to use in the interface for the upper case plural word %Points', userpoints_translation()),
'#default_value' => variable_get(USERPOINTS_TRANS_UCPOINTS, 'Points'),
'#size' => 20,
'#maxlength' => 20,
);

Wygląda na to, że tłumaczenia wprowadza się z poziomu menu. Pewnie to w jakiś spobób koliduje z tłumaczeniami z plików .po. Zdaje się, że autor modułu, chcąc być sprytniejszy niż powinien ;) , pozbawił użytkowników możliwości wprowadzenia więcej niż jednej formy liczby mnogiej. Pewnie da się to jakoś naprawić – może edytując moduł.