Mam googleed to przez bardzo długi czas, ale bez rezultatów. Jestem początkujący w Django, więc nie znam wszystkich jego funkcji. Ale ten problem jest bardzo ważne dla klienta :-(mógłbyś mi pomóc, proszęDjango - wielokrotne plurowanie w modelu administratora
Tak, mam ten model zdefiniowany:
from django.utils.translation import ugettext_lazy as _
class Product(Model):
#translation for model and set db table name
class Meta:
verbose_name = _('product')
verbose_name_plural = _('products')
...
Teraz, ze względu na język czeski, muszę te napisane admin Lista:
- 0 výrobků
- 1 VÝROBEK
- 2-4 výrobky
- 5- výrobků
Wszędzie jeszcze używam ungettext
z powodzeniem. Jednak nie wiem, jak się liczyć w Meta. Znalazłem to jako abstrakcyjne (ale wydaje się być bezużyteczny):
class Model(DjangoModel):
class Meta:
abstract = True
def get_description(self):
return ungettext(self.verbose_name, self.verbose_name_plural, self.count) % \
{'count':self.count, 'name':self.name}
źródłowy jest z django internationalization: counter is not available when marking strings for pluralization
Może w końcu będzie dobrze pokazać Definition Language (próbował dodać/usunąć% sz msgid
):
msgid "%s product"
msgid_plural "%s products"
msgstr[0] "%s 1 výrobek"
msgstr[1] "%s 2 výrobky"
msgstr[2] "%s 5 výrobků"
Jeśli potrzebujesz więcej informacji na pytanie, na pewno będę go zapewnić.
Dziękuję bardzo z góry.
UPDATE
Proszę mieć pewność, że używam następujących w pliku .po:
"Plural-Forms: nplurals=3; plural=((n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2);\n"
Raz więcej, nigdzie indziej ale administratora modele, to działa. To quetion nie jak uruchomić wielu pluralization w ogóle, ale jak nic zmieniać admin (np nowy abstrakcyjny model etc.), aby go uruchomić tam ...
Hej, napisałem, że wszędzie używam go z powodzeniem, tylko w modelach administratora nie działa. Zaktualizowałem post, aby mieć pewność, że wszyscy zobaczą, że mam ten tekst w pliku .po. – tomis