Commit 93e3e713cd39bf805ddecfef0cd424dde575aaa0

Authored by Katarzyna Krasnowska
1 parent d739ea70

multiple changes:

* added local filtering
* added missing control heuristics and reporting for compar etc.
* udpated phrase descriptions
* switched to new Morfeusz homonym identifiers
entries/form_fields/specialised_fields.py
... ... @@ -41,7 +41,7 @@ class PhraseTypeFilter(ModelChoiceFilter):
41 41 queryset = PhraseTypeModel.objects.filter(main_phrase_types__positions__isnull=False).distinct()
42 42  
43 43 super().__init__(
44   - label=(_('Typ frazeologizmu') if lex else _('Typ frazy')),
  44 + label=(_('Typ frazy zleksykalizowanej') if lex else _('Typ frazy')),
45 45 queryset=queryset,
46 46 key='name',
47 47 # this field is not used for filtering, only for choosing subform type
... ...
entries/forms.py
... ... @@ -141,8 +141,9 @@ class EntryForm(QueryForm):
141 141 and_or_form_creator(_('Schemat'), 'add-schema-0', data_add='schema', add_other=True) + \
142 142 [
143 143 self.make_field('filter_schemata'),
144   - ] + \
145   - and_or_form_creator(_('Fraza'), 'add-phrase-0', field=self.make_field('phrase_type'), data_prefix='phrase_')
  144 + ]
  145 +
  146 + #and_or_form_creator(_('Fraza'), 'add-phrase-0', field=self.make_field('phrase_type'), data_prefix='phrase_') + \
146 147  
147 148 frame_components = [
148 149 self.make_field('num_frames'),
... ... @@ -156,8 +157,8 @@ class EntryForm(QueryForm):
156 157 layout.Fieldset(_('Własności hasła'), *entry_components),
157 158 layout.Fieldset(_('Własności składniowe'), *schema_components),
158 159 layout.Fieldset(_('Własności semantyczne'), *frame_components),
159   - layout.Submit('main-submit', _('Filtruj')),
160   - layout.Reset('main-reset', _('Wyczyść')),
  160 + layout.Submit('main-submit', _('Filtruj'), css_class='btn-sm'),
  161 + layout.Reset('main-reset', _('Wyczyść'), css_class='btn-sm'),
161 162 ]
162 163  
163 164 self.helper.layout = layout.Layout(*components)
... ... @@ -231,11 +232,16 @@ class FormFactory(object):
231 232 return { 'data_formtype' : form_type , 'data_formnumber' : unique_number }
232 233  
233 234 @staticmethod
234   - def make_layout(title, components, subform_header=True):
  235 + def make_layout(title, components, as_subform=True):
235 236 elements = []
236   - if subform_header:
  237 + if as_subform:
237 238 elements.append('{} <span class="collapsed-info text-info"></span> <button class="btn collapse-button btn-xs btn-secondary" data-collapsed="false" type="button">{}</button><button class="btn remove-button btn-xs btn-danger" type="button">{}</button>'.format(title, _('Zwiń'), _('Usuń')))
238 239 elements += components
  240 + if not as_subform:
  241 + elements += [
  242 + layout.Submit('main-submit', _('Filtruj'), css_class='btn-sm'),
  243 + layout.Reset('main-reset', _('Wyczyść'), css_class='btn-sm'),
  244 + ]
239 245 return layout.Layout(layout.Fieldset(
240 246 *elements
241 247 ))
... ... @@ -245,7 +251,7 @@ class FormFactory(object):
245 251 return []
246 252  
247 253 @classmethod
248   - def get_form(cls, unique_number=None, subform_header=True, *args, **kwargs):
  254 + def get_form(cls, unique_number=None, as_subform=True, *args, **kwargs):
249 255 unique_number = cls.unique_number() if unique_number is None else unique_number
250 256  
251 257 assert(cls.form_class_name is not None)
... ... @@ -273,7 +279,7 @@ class FormFactory(object):
273 279 components += component
274 280 else:
275 281 components.append(component)
276   - self.helper.layout = cls.make_layout(cls.form_header, components, subform_header=subform_header)
  282 + self.helper.layout = cls.make_layout(cls.form_header, components, as_subform=as_subform)
277 283  
278 284 form_class.__init__ = form_init
279 285  
... ... @@ -482,7 +488,7 @@ class LexFormFactory(FormFactory):
482 488 form_class_name = 'LexForm'
483 489 form_model = PhraseType
484 490 form_formtype = 'phrase_lex'
485   - form_header = _('Frazeologizm')
  491 + form_header = _('Fraza zleksykalizowana')
486 492  
487 493 field_makers = (
488 494 (
... ... @@ -511,8 +517,8 @@ class LexFormFactory(FormFactory):
511 517 ),
512 518 (
513 519 'lex_type',
514   - lambda: PhraseTypeFilter(lex=True, help_text=_('Typ składniowy frazeologizmu.')),
515   - lambda n, cls: and_or_form_creator(_('Typ frazeologizmu'), 'add-lex-{}'.format(n), field=cls.make_field(FormFactory.unique_name('lex_type', n)), data_prefix='phrase_lex')
  520 + lambda: PhraseTypeFilter(lex=True, help_text=_('Typ składniowy frazy zleksykalizowanej.')),
  521 + lambda n, cls: and_or_form_creator(_('Typ frazy'), 'add-lex-{}'.format(n), field=cls.make_field(FormFactory.unique_name('lex_type', n)), data_prefix='phrase_lex')
516 522 ),
517 523 )
518 524  
... ... @@ -743,7 +749,7 @@ class PhraseAttributesFormFactory(FormFactory):
743 749 pt = polish_strings.PHRASE_TYPE()[phrase_type]
744 750 header = pt.capitalize() if phrase_type in polish_strings.NO_PHRASE_NAME else format_lazy(_('Fraza {}'), pt)
745 751 if lex_model:
746   - header += ' ({})'.format(_('frazeologizm'))
  752 + header += ' ({})'.format(_('zleksykalizowana'))
747 753 self.helper.layout = cls.make_layout(
748 754 header.capitalize(),
749 755 components
... ... @@ -783,13 +789,13 @@ class PhraseAttributesFormFactory(FormFactory):
783 789 elif field.name == 'lexes':
784 790 form_field = PhraseTypeFilter(
785 791 queryset=PhraseTypeModel.objects.filter(main_phrase_types__lex_phrases__lexcomparattributes__isnull=False).distinct(),
786   - help_text=_('Fraza składowa frazeologizmu porównawczego.'), lex=True)
  792 + help_text=_('Fraza składowa zleksykalizowanej konstrukcji porównawczej.'), lex=True)
787 793 elif field.name == 'lex':
788   - form_field = PhraseTypeFilter(help_text=_('Fraza realizująca frazeologizm.'))
  794 + form_field = PhraseTypeFilter(help_text=_('Fraza zleksykalizowana.'))
789 795 elif field.name == 'phrase':
790 796 form_field = PhraseTypeFilter(
791 797 queryset=PhraseTypeModel.objects.filter(main_phrase_types__fixedattributes__isnull=False).distinct(),
792   - help_text=_('Typ składniowy frazeologizmu.'))
  798 + help_text=_('Typ składniowy frazy zleksykalizowanej.'))
793 799 elif type(field) == CharField:
794 800 # TODO other autocompletes?
795 801 autocomplete = 'fixed' if field.name == 'text' else None
... ...
entries/phrase_descriptions/descriptions.py
  1 +import logging
  2 +
1 3 from itertools import chain, combinations, product
2 4  
3 5 from django.utils import translation
4 6 from django.utils.translation import gettext as _
5 7  
6 8 from importer.Phrase import *
  9 +from importer.Global import get_current_entry
7 10  
8 11 from .polish_strings import *
9 12 from .utils import *
... ... @@ -116,9 +119,9 @@ def postprocess_phraseologism(p):
116 119  
117 120 def lex_phrase_description(phrase, function, negativity, desc_case='nom', controller=None, controller_grammar=None):
118 121 phrase2 = get_phrase_type(phrase)
119   - desc = make_phrase_description(phrase2, function, negativity, 'inst', inside_lex=True)
  122 + desc = make_phrase_description(phrase2, function, negativity, 'nom', inside_lex=True)
120 123 phraseo = uniq_list(map(postprocess_phraseologism, make_phraseologisms(phrase, function, negativity, controller=controller, controller_grammar=controller_grammar)))
121   - return _('frazeologizm będący ') + desc + _(' postaci') + make_ul(map('<i>{}</i>'.format, phraseo))
  124 + return _('zleksykalizowana') + ' ' + desc + ' ' + _('postaci') + make_ul(map('<i>{}</i>'.format, phraseo))
122 125  
123 126 def make_phrase_description(phrase, function, negativity, desc_case, inside_lex=False):
124 127 ptype = type(phrase)
... ... @@ -223,10 +226,10 @@ def make_phrase_description(phrase, function, negativity, desc_case, inside_lex=
223 226 return make_inflected_string(DISTRP(), desc_case)
224 227 if ptype == Fixed:
225 228 assert (desc_case == 'nom')
226   - phrase, phraseo = phrase._phrase, phrase._text
227   - return _('frazeologizm w postaci {phrase} zamrożony w postaci <i>{phraseo}</i>').format(
228   - phrase=make_phrase_description(phrase, function, negativity, 'gen', inside_lex=True),
229   - phraseo=phraseo.strip('\''))
  229 + phrase, phraseo = phrase._phrase, phrase._text.strip('\'')
  230 + return _('zleksykalizowana {phrase} zamrożona w postaci <i>{phraseo}</i>').format(
  231 + phrase=make_phrase_description(phrase, function, negativity, 'nom', inside_lex=True),
  232 + phraseo=phraseo)
230 233 # TODO nie było w dokumentacji
231 234 if ptype == Qub:
232 235 return make_inflected_string(QUB(), desc_case)
... ... @@ -267,7 +270,11 @@ def make_phraseologisms(phrase, function, negativity, attrs={}, controller=None,
267 270 case = attrs['case'] if 'case' in attrs else 'nom'
268 271 POS = lambda lemma: correct_pos(lemma, 'subst')
269 272 NUM = lambda lemma: correct_num(lemma, phrase._number)
  273 + if not function and controller and controller._function and controller._function._value:
  274 + function = controller._function._value
270 275 CASE = correct_case(case, function, negativity)
  276 + if case == 'str' and not function:
  277 + logging.warning('{}: couldn’t resolve str case in {}; assuming {}'.format(get_current_entry()._base, phrase, CASE))
271 278 feats = [POS, NUM, CASE]
272 279 nps = []
273 280 for lemma in phrase._words._lemmas:
... ... @@ -582,7 +589,7 @@ def make_phraseologisms(phrase, function, negativity, attrs={}, controller=None,
582 589 if ptype == OR:
583 590 return '„…”'
584 591 if ptype == Fixed:
585   - return [phrase._text]
  592 + return [phrase._text.strip('\'')]
586 593 if ptype == LexQub:
587 594 qubs = []
588 595 for orth in phrase._words._lemmas:
... ...
entries/phrase_descriptions/morph_generation.py
... ... @@ -6,109 +6,110 @@ class MorphologyError(Exception):
6 6 morfeusz = morfeusz2.Morfeusz(generate=True, analyse=False, expand_tags=True)
7 7  
8 8 LEMMA_KILL_LIST = {
9   - 'oko:s1', 'ucho:s1', # ~a
10   - 'łeb:s2', 'powód:s2', # ~owie
11   - 'lew:s1', # ~owi
12   - 'paragraf:s1', 'sen:s2', 'lot:s2', 'lód:s2', # ~a
13   - 'bat:s2', 'żywot:s2', # ~u
  9 + 'oko:Sn_ncol', 'ucho:Sn_ncol', # ~a
  10 + 'łeb:Sm2', 'powód:Sm1', # ~owie
  11 + 'lew:Sm2~ewa', # ~owi
  12 + 'paragraf:Sm1', 'sen:Sm2.m3', 'lot:Sm3~a~u', 'lód:Sm2', # ~a; para-graf
  13 + 'bat:Sm3~u', 'żywot:Sm3~u', # ~u
14 14 # fikać kozły, spuszczać basałyki
15   - 'kozioł:s3', 'basałyk:s1', # ~ów
  15 + 'kozioł:Sm1', 'basałyk:Sm1.m2', # ~ów
16 16 # ciągnąć druta, fiknąć kozła/koziołka, puścić kura, spiąć muła, popuścić pasa, zapuścić żurawia
17   - 'drut:s1', 'drut:s2', 'kozioł:s1', 'koziołek:s1', 'kur:s1', 'muł:s1', 'pas:s2', 'pas:s3', 'żuraw:s2', # ~-
  17 + 'drut:Sm3~a~u', 'drut:Sm3~u', 'kozioł:Sm3', 'koziołek:Sm3', 'kur:Sm3', 'muł:Sm3', 'pas:Sm3~s~u', 'pas:Sn_ncol', 'żuraw:Sm3', # ~-
18 18 # m1:
19   - 'as:s2', 'baba:s2', 'biegun:s2', 'bzik:s2', 'fioł:s1', 'jeleń:s2', 'kułak:s1', 'lamus:s2', 'lis:s2', 'nurek:s1', 'osioł:s2', 'orzeł:s2',
20   - 'szach:s2', 'admirał:s2', 'bęben:s2', 'głup:s2', 'kasztan:s2', 'król:s1', 'kurek:s2', 'młot:s2', 'pajac:s1', 'pion:s2',
  19 + 'as:Sm1', 'baba:Sm1', 'biegun:Sm1', 'bzik:Sm1', 'fioł:Sm1', 'jeleń:Sm1', 'kułak:Sm1', 'lamus:Sm1', 'lis:Sm1.m2', 'nurek:Sm1', 'osioł:Sm1.m2', 'orzeł:Sm1',
  20 + 'szach:Sm1', 'admirał:Sm2', 'bęben:Sm2', 'głup:Sm2', 'kasztan:Sm2', 'król:Sm2', 'kurek:Sm2', 'młot:Sm2', 'pajac:Sm2', 'pion:Sm2.m3',
21 21 # m2:
22   - 'płaz:s2', 'szatan:s1',
23   - 'Abraham:s2', 'Abraham:s3', 'Grek:s2', 'Grek:s3', 'Kajfasz:s2', 'Kajfasz:s3', 'Marek:s2', 'Polak:s3', 'Polska:s2',
24   - 'Wisła:s2', 'Wisła:s3', 'Zawisza:s2', # nazwiska (w tym żeńskie)
25   - 'Marcin:s2', # człon nazwy geogr.
26   - 'galop:s2', # chor.
27   - 'profit:s2', # karc.
28   - 'jeż:s2', 'kaduk:s1', 'lek:s2', 'smok:s2', 'ślimak:s2', # m3
29   - 'kapitan:s3', # f
30   - 'pewny:a2', # :a1: only ‘pewny’
31   - 'dziób:s2', # żegl.
32   - 'mat:s3', 'mat:s1', # mors., matowy
33   - 'as:s3', 'as:s4', # hist., muz.
34   - 'przenosić:v2',
35   - 'kasztan:s4',
36   - 'stać:v4', # perf
37   - 'wpaść:v2', # wpasie
38   - 'należeć:v2', # perf (należał się w łóżku)
39   - 'głąb:s1', 'głąb:s3', # zostawiamy żeńską „w głąb”
  22 + 'grabarz:Sm2',
  23 + 'płaz:Sm2', 'szatan:Sm2',
  24 + 'tchórz:Sm2',
  25 + 'Abraham:Sf', 'Grek:Sm1~kowie', 'Grek:Sf', 'Kajfasz:Sf', 'Marek:Sf', 'Polak:Sf', 'Polska:Sf~ej',
  26 + 'Wisła:Sm1', 'Zawisza:Sf', # nazwiska (w tym żeńskie)
  27 + 'Marcin:Sm3', # człon nazwy geogr.
  28 + 'galop:Sm2', # chor.
  29 + 'profit:Sm2', 'profit:Sm3', # pro-fit
  30 + 'jeż:Sm3', 'kaduk:Sm3', 'lek:Sm2', 'smok:Sm3', 'ślimak:Sm3', # m3
  31 + 'kapitan:Sf', # f
  32 + 'dziób:Sm3~oba~obu', # żegl.
  33 + 'mat:Sm1', 'mat:Sm3', # mors., matowy
  34 + 'as:Sm2.m3', 'as:Sn_ncol', # hist., muz.
  35 + 'przenosić:Vp',
  36 + 'kasztan:Sm3',
  37 + 'stać:Vp', # perf
  38 + 'wpaść:Vp~sę', # wpasie
  39 + 'należeć:Vp', # perf (należał się w łóżku)
  40 + 'głąb:Sm2.m3', 'głąb:Sm1.m2', # zostawiamy żeńską „w głąb”
40 41 # z semantyki ==============================================================
41 42 # członek w znaczeniu części ciała:
42   - 'członek:s2', 'członek:s3',
  43 + 'członek:Sm1', 'członek:Sm2',
43 44 # antytalent:s2 jest m1, anty-talent:s2 – m2 (monet.), chcemy antytalent m3
44   - #'antytalent:s2',
  45 + #'antytalent:Sm1',
45 46 # nie chcemy m1
46   - 'asfalt:s2',
  47 + 'asfalt:Sm1',
47 48 # nie chcemy m2 leśń.
48   - 'aspirant:s2',
  49 + 'aspirant:Sm3',
49 50 # nie chcemy m1
50   - 'bas:s2',
51   - 'samolot:s2', #~a
52   - 'dopaść:v2', # dopasł
53   - 'napaść:v2', # napasł
54   - 'dostawać:v2', # dostawa
55   - 'reżyser:s1', 'sędzia:s1', # chcemy f, precz z patriarchatem
56   - 'operator:s1', # chcemy m3
57   - 'Rzym:s2', 'Rzym:s3', # nazwiska, chcemy m3
58   - 'śpiewak:s2', #chcemy m1
59   - 'model:s2', # chcemy m3
60   - 'mikser:s2', # chcemy m3
61   - 'sport:s2', # chcemy m3
62   - 'pilot:s1', 'pilot:s3', # chcemy m1
63   - 'oblec:v1', # oblókł
64   - 'wał:s2', 'wał:s3', # chcemy m3
65   - 'odlew:s1', 'odlew:s2', # od-lew...
66   - 'odpaść:v2', # odpadł
67   - 'opaść:v2', # opadły
68   - 'pasać:v2', # pasa
69   - 'pluskać:v2', # ???
70   - 'Księżyc:s2', 'Księżyc:s3', # nazwiska, chcemy m3
71   - 'podpaść:v2', # podpadł
72   - 'popaść:v2', # popadł
73   - 'pasza:s2', # chcemy f
74   - 'ssak:s2', # chcemy m2
75   - 'przypaść:v2', # przypadło
76   - 'fotograf:s2', # chcemy m1
77   - 'sygnalizator:s1', # chcemy m3
78   - 'pająk:s2', # chcemy m2
79   - 'wąż:s2', # chcemy m2
80   - 'tłumacz:s2', # chcemy m1
81   - 'samiec:s2', # chcemy m2
82   - 'automat:s2', 'automat:s3', # auto-mat
83   - 'gad:s2', # chcemy m2
84   - 'ruda:s2', # chcemy rudę (metalu), nie rudą
85   - 'marsz:s1', # chcemy ~a
86   - 'drapieżnik:s2', # chcemy m2
87   - 'zbieg:s2', # chcemy m3 (zbieg okoliczności)
88   - 'polityk:s', # poli-tyk...
  51 + 'bas:Sm1',
  52 + 'samolot:Sm3~a~u', #~a samo-lot
  53 + 'dopaść:Vp~sę', # dopasł
  54 + 'napaść:Vp~sę', # napasł
  55 + 'dostawać:Vi~wam', # dostawa
  56 + 'reżyser:Sm1', 'sędzia:Sm1', # chcemy f, precz z patriarchatem
  57 + 'operator:Sm1', # chcemy m3
  58 + 'Rzym:Sm1', 'Rzym:Sf', # nazwiska, chcemy m3
  59 + 'śpiewak:Sm2', #chcemy m1
  60 + 'model:Sm1', # chcemy m3
  61 + 'mikser:Sm1', # chcemy m3
  62 + 'sport:Sm2.m3', # chcemy m3
  63 + 'pilot:Sm2', 'pilot:Sm3', # chcemy m1
  64 + 'oblec:Vp~egnę~egę', # oblókł
  65 + 'wał:Sm1', 'wał:Sm2', # chcemy m3
  66 + 'odlew:Sm2~ewa', 'odlew:Sm2~lwa', # od-lew...
  67 + 'odpaść:Vp~sę', # odpadł
  68 + 'opaść:Vp~sę', # opadły
  69 + 'pasać:Vi~am~zę', # pasa
  70 + #'pluskać', # ???
  71 + 'Księżyc:Sm1', 'Księżyc:Sf', # nazwiska, chcemy m3
  72 + 'podpaść:Vp~sę', # podpadł
  73 + 'popaść:Vp~sę', # popadł
  74 + 'pasza:Sm1', # chcemy f
  75 + 'ssak:Sm3', # chcemy m2
  76 + 'przypaść:Vp~sę', # przypadło
  77 + 'fotograf:Sm3', # chcemy m1; foto-graf
  78 + 'sygnalizator:Sm1', # chcemy m3
  79 + 'pająk:Sm3', # chcemy m2
  80 + 'wąż:Sm2.m3', # chcemy m2
  81 + 'tłumacz:Sm2', # chcemy m1
  82 + 'samiec:Sm1', # chcemy m2
  83 + 'automat:Sm2', 'automat:Sm1', # auto-mat
  84 + 'gad:Sm1', # chcemy m2
  85 + 'ruda:Sf~ej', # chcemy rudę (metalu), nie rudą
  86 + 'marsz:Sm3', # chcemy ~a
  87 + 'drapieżnik:Sm1', # chcemy m2
  88 + 'zbieg:Sm1', # chcemy m3 (zbieg okoliczności)
  89 + 'polityk:S', # poli-tyk...
89 90 }
90 91 FORM_KILL_LIST = (
91   - ('amen', 'amen:s', 'subst:sg:nom:n:ncol', ['nazwa_pospolita'], []), # m3
92   - ('amen', 'amen:s', 'subst:sg:acc:n:ncol', ['nazwa_pospolita'], []),
  92 + ('amen', 'amen:S', 'subst:sg:nom:n:ncol', ['nazwa_pospolita'], []), # m3
  93 + ('amen', 'amen:S', 'subst:sg:acc:n:ncol', ['nazwa_pospolita'], []),
93 94 ('Amora', 'Amor', 'subst:sg:gen:m2', ['imię'], ['mit.']), # m1
94 95 ('aniołków', 'aniołek', 'subst:pl:gen:m1', ['nazwa_pospolita'], []), # m2
95 96 ('aniołów', 'anioł', 'subst:pl:gen:m2', ['nazwa_pospolita'], []), # m1
96 97 ('awansy', 'awans', 'subst:pl:acc:m3', ['nazwa_pospolita'], []), # awanse
97 98 ('baja', 'bajać', 'fin:sg:ter:imperf', [], []), # baje
98   - ('bambusa', 'bambus:s1', 'subst:sg:acc:m2', ['nazwa_pospolita'], []), # w bambus
  99 + ('bambusa', 'bambus:Sm2.m3', 'subst:sg:acc:m2', ['nazwa_pospolita'], []), # w bambus
99 100 ('blues', 'blues', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # bluesa
100 101 ('bogowi', 'bóg', 'subst:sg:dat:m1', ['nazwa_pospolita'], []), # bogu
101   - ('burak', 'burak:s1', 'subst:sg:nom:m2', ['nazwa_pospolita'], ['bot.']), # m3
  102 + ('burak', 'burak:Sm2.m3', 'subst:sg:nom:m2', ['nazwa_pospolita'], ['bot.']), # m3
102 103 ('całuski', 'całusek', 'subst:pl:acc:m2', ['nazwa_pospolita'], []), # m3
103 104 ('całusków', 'całusek', 'subst:pl:gen:m2', ['nazwa_pospolita'], []), # m3
104   - ('cepu', 'cep:s1', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # cepa
  105 + ('cepu', 'cep:Sm3', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # cepa
105 106 ('chlaszcze', 'chlastać', 'fin:sg:ter:imperf', [], []), # chlasta
106   - ('chleje', 'chlać', 'fin:sg:ter:imperf', [], ['pot.', 'rzad.']), # chla
  107 + ('chleje', 'chlać', 'fin:sg:ter:imperf', [], ['pot.,rzad.']), # chla
107 108 ('chluszcze', 'chlustać', 'fin:sg:ter:imperf', [], []), # chlusta
108   - ('chujów', 'chuj:s1', 'subst:pl:acc:m1', ['nazwa_pospolita'], ['wulg.']), # obciągać chuja
  109 + ('chujów', 'chuj:Sm1', 'subst:pl:acc:m1', ['nazwa_pospolita'], ['wulg.']), # obciągać chuja
109 110 ('cudy', 'cud', 'subst:pl:acc:m3', ['nazwa_pospolita'], []), # wyczyniać cuda
110 111 ('czartem', 'czart', 'subst:sg:inst:m2', ['nazwa_pospolita'], []), # m1
111   - ('czole', 'czoło:s2', 'subst:sg:loc:n:ncol', ['nazwa_pospolita'], []), # postawić na czele
  112 + ('czole', 'czoło:Sn_ncol~ole', 'subst:sg:loc:n:ncol', ['nazwa_pospolita'], []), # postawić na czele
112 113 ('czort', 'czort', 'subst:sg:nom:m2', ['nazwa_pospolita'], ['pot.']), # m1
113 114 ('diabeł', 'diabeł', 'subst:sg:nom:m2', ['nazwa_pospolita'], []), # m1
114 115 ('diabła', 'diabeł', 'subst:sg:acc:m2', ['nazwa_pospolita'], []), # m1
... ... @@ -121,7 +122,7 @@ FORM_KILL_LIST = (
121 122 ('diabły', 'diabeł', 'subst:pl:nom:m2', ['nazwa_pospolita'], []), # diabli wiedzą
122 123 ('DNA', 'DNA', 'subst:sg:nom:m3', ['nazwa_pospolita'], []), # n
123 124 ('DNA', 'DNA', 'subst:sg:gen:m3', ['nazwa_pospolita'], []),
124   - ('drapak', 'drapak:s1', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # dać drapaka
  125 + ('drapak', 'drapak:Sm3', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # dać drapaka
125 126 ('dwu', 'dwa', 'num:pl:loc:f:congr:ncol', [], []), # dwóch
126 127 ('dwu', 'dwa', 'num:pl:acc:m1:rec:ncol', [], []),
127 128 ('dwu', 'dwa', 'num:pl:loc:m1:rec:ncol', [], []),
... ... @@ -129,44 +130,45 @@ FORM_KILL_LIST = (
129 130 ('dwu', 'dwa', 'num:pl:loc:m3:congr:ncol', [], []),
130 131 ('dwu', 'dwa', 'num:pl:loc:n:congr:ncol', [], []),
131 132 ('dygocą', 'dygotać', 'fin:pl:ter:imperf', [], []), # dygoczą
132   - ('dzióba', 'dziób:s1', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # dzioba
133   - ('dzióbach', 'dziób:s1', 'subst:pl:loc:m3', ['nazwa_pospolita'], []),
134   - ('dzióbem', 'dziób:s1', 'subst:sg:inst:m3', ['nazwa_pospolita'], []),
135   - ('dzióby', 'dziób:s1', 'subst:pl:acc:m3', ['nazwa_pospolita'], []),
  133 + ('dzióba', 'dziób:Sm3~oba~óba', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # dzioba
  134 + ('dzióbach', 'dziób:Sm3~oba~óba', 'subst:pl:loc:m3', ['nazwa_pospolita'], []),
  135 + ('dzióbem', 'dziób:Sm3~oba~óba', 'subst:sg:inst:m3', ['nazwa_pospolita'], []),
  136 + ('dzióby', 'dziób:Sm3~oba~óba', 'subst:pl:acc:m3', ['nazwa_pospolita'], []),
136 137 ('figiel', 'figiel', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # figla
137 138 ('garba', 'garb', 'subst:sg:acc:m2', ['nazwa_pospolita'], []), # wziąć sobie garb na plecy
138   - ('gąsiora', 'gąsior:s2', 'subst:sg:acc:m2', ['nazwa_pospolita'], []), # osuszać gąsior
139   - #('głąba', 'głąb:s1', 'subst:sg:acc:m2', ['nazwa_pospolita'], []), # uciec w głąb
140   - ('gore', 'gorzeć', 'fin:sg:ter:imperf', [], ['podniosłe', 'przest.']), # gorzeje
141   - ('gorze', 'gorzeć', 'fin:sg:ter:imperf', [], ['podniosłe', 'przest.']),
142   - ('gorą', 'gorzeć', 'fin:pl:ter:imperf', [], ['podniosłe', 'przest.']), # gorzeją
143   - ('gorzą', 'gorzeć', 'fin:pl:ter:imperf', [], ['podniosłe', 'przest.']),
  139 + ('gąsiora', 'gąsior:Sm2', 'subst:sg:acc:m2', ['nazwa_pospolita'], []), # osuszać gąsior
  140 + #('głąba', 'głąb:Sm2.m3', 'subst:sg:acc:m2', ['nazwa_pospolita'], []), # uciec w głąb
  141 + ('gore', 'gorzeć', 'fin:sg:ter:imperf', [], ['przest.,podniosłe']), # gorzeje
  142 + ('gorze', 'gorzeć', 'fin:sg:ter:imperf', [], ['przest.,podniosłe']),
  143 + ('gorą', 'gorzeć', 'fin:pl:ter:imperf', [], ['przest.,podniosłe']), # gorzeją
  144 + ('gorzą', 'gorzeć', 'fin:pl:ter:imperf', [], ['przest.,podniosłe']),
  145 + ('grzęzie', 'grzęznąć', 'fin:sg:ter:imperf', [], []), # grzęźnie
144 146 ('grzybki', 'grzybek', 'subst:pl:acc:m2', ['nazwa_pospolita'], []), # m3
145   - ('grzyb', 'grzyb:s1', 'subst:sg:nom:m2', ['nazwa_pospolita'], ['mikol.']), # m3
146   - ('grzyb', 'grzyb:s1', 'subst:sg:acc:m3', ['nazwa_pospolita'], ['mikol.']), # grzyba
147   - ('grzyby', 'grzyb:s1', 'subst:pl:nom:m2', ['nazwa_pospolita'], ['mikol.']), # m3
  147 + ('grzyb', 'grzyb:Sm2.m3', 'subst:sg:nom:m2', ['nazwa_pospolita'], ['mikol.']), # m3
  148 + ('grzyb', 'grzyb:Sm2.m3', 'subst:sg:acc:m3', ['nazwa_pospolita'], ['mikol.']), # grzyba
  149 + ('grzyby', 'grzyb:Sm2.m3', 'subst:pl:nom:m2', ['nazwa_pospolita'], ['mikol.']), # m3
148 150 ('guz', 'guz', 'subst:sg:nom:m2', ['nazwa_pospolita'], []), # m3
149 151 ('guz', 'guz', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # ale: guza
150 152 ('guza', 'guz', 'subst:sg:gen:m2', ['nazwa_pospolita'], []), # m3
151   - ('kaduk', 'kaduk:s2', 'subst:sg:nom:m2', ['nazwa_pospolita'], ['przest.']), # m1
  153 + ('kaduk', 'kaduk:Sm1.m2', 'subst:sg:nom:m2', ['nazwa_pospolita'], ['przest.']), # m1
152 154 ('kołata', 'kołatać', 'fin:sg:ter:imperf', [], []), # kołacze (kołace usunie filter_ending)
153 155 ('kopniak', 'kopniak', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # kopniaka
154   - ('kloc', 'kloc:s1', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # walnąć kloca
155   - ('klientowi', 'klient:s2', 'subst:sg:dat:m2', ['nazwa_pospolita'], []), # m1
156   - ('klin', 'klin:s1', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # klina
157   - ('klina', 'klin:s2', 'subst:sg:gen:m2', ['nazwa_pospolita'], []), # m3
158   - ('klinem', 'klin:s2', 'subst:sg:inst:m2', ['nazwa_pospolita'], []), # m3
159   - ('kilku', 'kilka:n', 'num:pl:inst:m3:congr:ncol', [], []), # kilkoma
  156 + ('kloc', 'kloc:Sm3', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # walnąć kloca
  157 + ('klientowi', 'klient:Sm2', 'subst:sg:dat:m2', ['nazwa_pospolita'], []), # m1
  158 + ('klin', 'klin:Sm3', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # klina
  159 + ('klina', 'klin:Sm2', 'subst:sg:gen:m2', ['nazwa_pospolita'], []), # m3
  160 + ('klinem', 'klin:Sm2', 'subst:sg:inst:m2', ['nazwa_pospolita'], []), # m3
  161 + ('kilku', 'kilka:N', 'num:pl:inst:m3:congr:ncol', [], []), # kilkoma
160 162 ('kopniakiem', 'kopniak', 'subst:sg:inst:m2', ['nazwa_pospolita'], []), # m3
161   - ('kosz', 'kosz:s1', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # kosza
162   - ('kosza', 'kosz:s1', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # TODO do usunięcia po poprawce?
163   - ('koszu', 'kosz:s2', 'subst:sg:loc:m2', ['nazwa_pospolita'], []), # m3
  163 + ('kosz', 'kosz:Sm3', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # kosza
  164 + ('kosza', 'kosz:Sm3', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # TODO do usunięcia po poprawce?
  165 + ('koszu', 'kosz:Sm2', 'subst:sg:loc:m2', ['nazwa_pospolita'], []), # m3
164 166 ('koszty', 'koszt', 'subst:pl:acc:m3', ['nazwa_pospolita'], []), # koszta
165 167 ('krzaku', 'krzak', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # krzaka
166 168 ('krzyw', 'krzywy', 'adj:sg:nom:m1:pos', [], []), # krzywy
167 169 ('kserze', 'ksero', 'subst:sg:loc:n:ncol', ['nazwa_pospolita'], []), # na ksero
168   - ('łga', 'łgać', 'fin:sg:ter:imperf', [], ['przest.', 'rzad.']), # łże
169   - ('marsz', 'marsz:s2', 'subst:sg:acc:m3', ['nazwa_pospolita'], ['muz.']), # grać marsza
  170 + ('łga', 'łgać', 'fin:sg:ter:imperf', [], ['przest.,rzad.']), # łże
  171 + ('marsz', 'marsz:Sm2.m3', 'subst:sg:acc:m3', ['nazwa_pospolita'], ['muz.']), # grać marsza
170 172 ('marźnie', 'marznąć', 'fin:sg:ter:imperf', [], []), # marznie
171 173 ('napoi', 'napój', 'subst:pl:gen:m3', ['nazwa_pospolita'], []), # napojów
172 174 ('nasiąknął', 'nasiąknąć', 'praet:sg:m1:perf', [], []), # nasiąkł
... ... @@ -179,10 +181,10 @@ FORM_KILL_LIST = (
179 181 ('obydwóch', 'obydwa', 'num:pl:loc:m3:congr:ncol', [], []),
180 182 ('obydwóch', 'obydwa', 'num:pl:loc:n:congr:ncol', [], []),
181 183 ('odtchu', 'oddech', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # od-tchu ;)
182   - ('oczyma', 'oko:s2', 'subst:pl:inst:n:col', ['nazwa_pospolita'], ['anat.']), # oczami
183   - ('oczów', 'oko:s2', 'subst:pl:gen:n:col', ['nazwa_pospolita'], ['anat.']), # oczu
  184 + ('oczyma', 'oko:Sn_col', 'subst:pl:inst:n:col', ['nazwa_pospolita'], ['anat.']), # oczami
  185 + ('oczów', 'oko:Sn_col', 'subst:pl:gen:n:col', ['nazwa_pospolita'], ['anat.']), # oczu
184 186 ('ofiarowywa', 'ofiarowywać', 'fin:sg:ter:imperf', [], ['rzad.']), # ofiarowuje
185   - #('oklapnęła', 'oklapnąć', 'praet:sg:f:perf', [], []), # oklapła
  187 + #('oklapnęła', 'oklapnąć', 'praet:sg:f:perf', [], []), # oklapła
186 188 ('oklapnął', 'oklapnąć', 'praet:sg:m3:perf', [], []),
187 189 ('oklapnęło', 'oklapnąć', 'praet:sg:n:perf', [], []),
188 190 ('otworzoną', 'otworzyć', 'ppas:sg:inst:f:perf:aff', [], []), # otwartą
... ... @@ -194,11 +196,12 @@ FORM_KILL_LIST = (
194 196 ('pasjansy', 'pasjans', 'subst:pl:acc:m3', ['nazwa_pospolita'], []),
195 197 ('pełen', 'pełny', 'adj:sg:nom:m1:pos', [], []), # pełny
196 198 ('pełźnie', 'pełznąć', 'fin:sg:ter:imperf', [], []), # pełznie
197   - #('pierzchnęła', 'pierzchnąć:v1', 'praet:sg:f:perf', [], []), # pierzchła
  199 + ('pewien', 'pewny', 'adj:sg:nom:m1:pos', [], []), # pewny
  200 + ('pewien', 'pewny', 'adj:sg:acc:m3:pos', [], []),
  201 + #('pierzchnęła', 'pierzchnąć:Vp', 'praet:sg:f:perf', [], []), # pierzchła
198 202 ('podobien', 'podobny', 'adj:sg:nom:m1:pos', [], []), # podobny
199 203 ('policzeki', 'policzek', 'subst:pl:nom:m3', ['nazwa_pospolita'], []), # poli-czeki ;)
200 204 ('procha', 'proch', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # prochu
201   - ('profity', 'profit:s1', 'subst:pl:acc:m2', ['nazwa_pospolita'], []), # m3
202 205 ('proga', 'próg', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # progu
203 206 ('programa', 'program', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # pro-gram ;)
204 207 ('prysznicu', 'prysznic', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # prysznica
... ... @@ -212,26 +215,26 @@ FORM_KILL_LIST = (
212 215 ('rękoma', 'ręka', 'subst:pl:inst:f', ['nazwa_pospolita'], ['anat.']), # rękami
213 216 ('rówien', 'równy', 'adj:sg:nom:m1:pos', [], []), # równy
214 217 ('rynsztoku', 'rynsztok', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # rynsztoka
215   - ('rzeknąć', 'rzec:v2', 'inf:perf', [], []), # rzec
216   - ('rządu', 'rząd:s1', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # rosnąć do rzędu czegoś
217   - ('rzędów', 'rząd:s2', 'subst:pl:gen:m3', ['nazwa_pospolita'], []), # objąć ster rządów
218   - ('rzędy', 'rząd:s2', 'subst:pl:acc:m3', ['nazwa_pospolita'], []), # objąć rządy
  218 + ('rzeknąć', 'rzec:Vp', 'inf:perf', [], []), # rzec
  219 + ('rządu', 'rząd:Sm3~ądu', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # rosnąć do rzędu czegoś
  220 + ('rzędów', 'rząd:Sm3~ędu', 'subst:pl:gen:m3', ['nazwa_pospolita'], []), # objąć ster rządów
  221 + ('rzędy', 'rząd:Sm3~ędu', 'subst:pl:acc:m3', ['nazwa_pospolita'], []), # objąć rządy
219 222 ('sierpa', 'sierp', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # sierpu
220 223 ('skomli', 'skomleć', 'fin:sg:ter:imperf', [], []), # skomle
221 224 ('sondażów', 'sondaż', 'subst:pl:gen:m3', ['nazwa_pospolita'], []), # sondaży
222   - ('steka', 'stek:s1', 'subst:sg:acc:m2', ['nazwa_pospolita'], []), # wysmażyć stek
223   - ('strach', 'strach:s2', 'subst:sg:nom:m2', ['nazwa_pospolita'], []), # m3 (strach obleciał)
224   - ('stracha', 'strach:s2', 'subst:sg:gen:m2', ['nazwa_pospolita'], []), # napędzić stracha/strachu, ale umrzeć ze strachu
225   - ('strachu', 'strach:s2', 'subst:sg:loc:m2', ['nazwa_pospolita'], []), # m3
226   - ('syfon', 'syfon:s1', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # dać syfona
  225 + ('steka', 'stek:Sm2.m3', 'subst:sg:acc:m2', ['nazwa_pospolita'], []), # wysmażyć stek
  226 + ('strach', 'strach:Sm2', 'subst:sg:nom:m2', ['nazwa_pospolita'], []), # m3 (strach obleciał)
  227 + ('stracha', 'strach:Sm2', 'subst:sg:gen:m2', ['nazwa_pospolita'], []), # napędzić stracha/strachu, ale umrzeć ze strachu
  228 + ('strachu', 'strach:Sm2', 'subst:sg:loc:m2', ['nazwa_pospolita'], []), # m3
  229 + ('syfon', 'syfon:Sm3', 'subst:sg:acc:m3', ['nazwa_pospolita'], []), # dać syfona
227 230 ('szampan', 'szampan', 'subst:sg:nom:m2', ['nazwa_pospolita'], []), # m3
228 231 ('szampana', 'szampan', 'subst:sg:gen:m2', ['nazwa_pospolita'], []),
229   - ('szatan', 'szatan:s2', 'subst:sg:nom:m2', ['nazwa_pospolita'], []), # m1
230   - ('szatanem', 'szatan:s2', 'subst:sg:inst:m2', ['nazwa_pospolita'], []), # m1
  232 + ('szatan', 'szatan:Sm1.m2', 'subst:sg:nom:m2', ['nazwa_pospolita'], []), # m1
  233 + ('szatanem', 'szatan:Sm1.m2', 'subst:sg:inst:m2', ['nazwa_pospolita'], []), # m1
231 234 ('szczy', 'szczać', 'fin:sg:ter:imperf', [], ['pot.']), # szcza
232   - ('szeląga', 'szeląg', 'subst:sg:gen:m2', ['nazwa_pospolita'], []), # m3
  235 + ('szeląga', 'szeląg', 'subst:sg:gen:m2', ['nazwa_pospolita'], []), # m3
233 236 ('szmerglu', 'szmergiel', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # szmergla
234   - ('śmiecie', 'śmieć:s1', 'subst:pl:acc:m3', ['nazwa_pospolita'], []), # śmieci
  237 + ('śmiecie', 'śmieć:Sm2.m3', 'subst:pl:acc:m3', ['nazwa_pospolita'], []), # śmieci
235 238 ('ukląkł', 'uklęknąć', 'praet:sg:m1:perf', [], []), # uklęknął
236 239 ('usty', 'usta', 'subst:pl:inst:n:pt', ['nazwa_pospolita'], ['przest.']), # ustami
237 240 ('walkowera', 'walkower', 'subst:sg:acc:m2', ['nazwa_pospolita'], []), # m3
... ... @@ -239,9 +242,9 @@ FORM_KILL_LIST = (
239 242 ('woru', 'wór', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # wora
240 243 ('wykonywa', 'wykonywać', 'fin:sg:ter:imperf', [], []), # wykonuje
241 244 ('ziaja', 'ziajać', 'fin:sg:ter:imperf', [], []), # ziaje
242   - ('zeprzała', 'zeprzeć:v2', 'praet:sg:f:perf', [], ['rzad.']), # sparła
243   - ('zeprzał', 'zeprzeć:v2', 'praet:sg:m1:perf', [], ['rzad.']),
244   - ('zeprzało', 'zeprzeć:v2', 'praet:sg:n:perf', [], ['rzad.']),
  245 + ('zeprzała', 'zeprzeć:Vp~zeję', 'praet:sg:f:perf', [], ['rzad.']), # sparła
  246 + ('zeprzał', 'zeprzeć:Vp~zeję', 'praet:sg:m1:perf', [], ['rzad.']),
  247 + ('zeprzało', 'zeprzeć:Vp~zeję', 'praet:sg:n:perf', [], ['rzad.']),
245 248 ('zjednywa', 'zjednywać', 'fin:sg:ter:imperf', [], []), # zjednuje
246 249 ('zwierzę', 'zwierzę', 'subst:sg:nom:n:ncol', ['nazwa_pospolita'], []), # col
247 250 ('zwierzę', 'zwierzę', 'subst:sg:acc:n:ncol', ['nazwa_pospolita'], []),
... ... @@ -253,9 +256,9 @@ FORM_KILL_LIST = (
253 256 ('zżarła', 'zeżreć', 'praet:sg:f:perf', [], []), # zeżarła
254 257 ('zżarł', 'zeżreć', 'praet:sg:m1:perf', [], []),
255 258 ('zżarł', 'zeżreć', 'praet:sg:m3:perf', [], []),
256   - ('żłobu', 'żłób:s2', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # dopchać się do żłoba
  259 + ('żłobu', 'żłób:Sm3', 'subst:sg:gen:m3', ['nazwa_pospolita'], []), # dopchać się do żłoba
257 260 ('żurnalów', 'żurnal', 'subst:pl:gen:m3', ['nazwa_pospolita'], []), # żurnali
258   - ('żywcem', 'żywiec:s2', 'subst:sg:inst:m2', ['nazwa_pospolita'], []), # m3
  261 + ('żywcem', 'żywiec:Sm2', 'subst:sg:inst:m2', ['nazwa_pospolita'], []), # m3
259 262 ('swe', 'swój', 'adj:sg:acc:n:pos', [], []), # dostać za swoje
260 263 ('swym', 'swój', 'adj:sg:loc:n:pos', [], []), # obstawać przy swoim
261 264 ('swojego', 'swój', 'adj:sg:gen:n:pos', [], []), # dopiąć swego
... ... @@ -273,7 +276,7 @@ FORM_KILL_LIST = (
273 276 ('swych', 'swój', 'adj:pl:loc:m3:pos', [], []),
274 277 ('swych', 'swój', 'adj:pl:loc:n:pos', [], []),
275 278 ('swym', 'swój', 'adj:pl:dat:m3:pos', [], []),
276   - ('swym', 'swój', 'adj:sg:loc:m3:pos', [], []), # swoim
  279 + ('swym', 'swój', 'adj:sg:loc:m3:pos', [], []), # swoim
277 280 ('swym', 'swój', 'adj:sg:inst:m3:pos', [], []),
278 281 ('swym', 'swój', 'adj:pl:dat:n:pos', [], []),
279 282 ('swym', 'swój', 'adj:sg:inst:n:pos', [], []),
... ... @@ -282,50 +285,50 @@ FORM_KILL_LIST = (
282 285 ('swymi', 'swój', 'adj:pl:inst:n:pos', [], []),
283 286 ('swą', 'swój', 'adj:sg:acc:f:pos', [], []), # swoją
284 287 ('swą', 'swój', 'adj:sg:inst:f:pos', [], []),
285   - ('mej', 'mój:a', 'adj:sg:gen:f:pos', [], []), # mojej
286   - ('mej', 'mój:a', 'adj:sg:dat:f:pos', [], []),
287   - ('mej', 'mój:a', 'adj:sg:loc:f:pos', [], []),
288   - ('memu', 'mój:a', 'adj:sg:dat:m3:pos', [], []), # mojemu
289   - ('mego', 'mój:a', 'adj:sg:acc:m2:pos', [], []), # mojego
290   - ('mego', 'mój:a', 'adj:sg:gen:m3:pos', [], []),
291   - ('mego', 'mój:a', 'adj:sg:gen:n:pos', [], []),
292   - ('mych', 'mój:a', 'adj:pl:loc:n:pos', [], []), # moich
293   - ('me', 'mój:a', 'adj:pl:nom:f:pos', [], []),
294   - ('me', 'mój:a', 'adj:pl:acc:f:pos', [], []), # moje
295   - ('me', 'mój:a', 'adj:pl:acc:m2:pos', [], []),
296   - ('me', 'mój:a', 'adj:pl:nom:m3:pos', [], []),
297   - ('me', 'mój:a', 'adj:pl:acc:m3:pos', [], []),
298   - ('me', 'mój:a', 'adj:sg:nom:n:pos', [], []),
299   - ('me', 'mój:a', 'adj:pl:nom:n:pos', [], []),
300   - ('me', 'mój:a', 'adj:sg:acc:n:pos', [], []),
301   - ('me', 'mój:a', 'adj:pl:acc:n:pos', [], []),
302   - ('ma', 'mój:a', 'adj:sg:nom:f:pos', [], []), # moja
303   - ('mą', 'mój:a', 'adj:sg:acc:f:pos', [], []), # moją
304   - ('mą', 'mój:a', 'adj:sg:inst:f:pos', [], []),
305   - ('mym', 'mój:a', 'adj:sg:loc:m3:pos', [], []), # moim
306   - ('mym', 'mój:a', 'adj:sg:inst:m3:pos', [], []),
307   - ('mym', 'mój:a', 'adj:pl:dat:n:pos', [], []),
308   - ('mym', 'mój:a', 'adj:sg:loc:n:pos', [], []),
309   - ('mym', 'mój:a', 'adj:sg:inst:n:pos', [], []),
310   - ('mymi', 'mój:a', 'adj:pl:inst:f:pos', [], []), # moimi
311   - ('mymi', 'mój:a', 'adj:pl:inst:m3:pos', [], []),
312   - ('mymi', 'mój:a', 'adj:pl:inst:n:pos', [], []),
313   - ('mych', 'mój:a', 'adj:pl:gen:f:pos', [], []), # moich
314   - ('mych', 'mój:a', 'adj:pl:loc:f:pos', [], []),
315   - ('mych', 'mój:a', 'adj:pl:gen:m3:pos', [], []),
316   - ('mych', 'mój:a', 'adj:pl:loc:m3:pos', [], []),
317   - ('mych', 'mój:a', 'adj:pl:gen:n:pos', [], []),
318   - ('twej', 'twój:a', 'adj:sg:gen:f:pos', [], []), # twojej
319   - ('twej', 'twój:a', 'adj:sg:loc:f:pos', [], []),
320   - ('twych', 'twój:a', 'adj:pl:gen:f:pos', [], []), # twoich
321   - ('twych', 'twój:a', 'adj:pl:loc:m3:pos', [], []),
322   - ('twych', 'twój:a', 'adj:pl:loc:n:pos', [], []),
323   - ('twą', 'twój:a', 'adj:sg:acc:f:pos', [], []), # twoją
324   - ('twą', 'twój:a', 'adj:sg:inst:f:pos', [], []),
325   - ('twe', 'twój:a', 'adj:pl:acc:m3:pos', [], []), # twoje
326   - ('twym', 'twój:a', 'adj:sg:loc:m3:pos', [], []), # twoim
327   - ('twym', 'twój:a', 'adj:sg:inst:m3:pos', [], []),
328   - ('twych', 'twój:a', 'adj:pl:loc:f:pos', [], []), # twoich
  288 + ('mej', 'mój:A', 'adj:sg:gen:f:pos', [], []), # mojej
  289 + ('mej', 'mój:A', 'adj:sg:dat:f:pos', [], []),
  290 + ('mej', 'mój:A', 'adj:sg:loc:f:pos', [], []),
  291 + ('memu', 'mój:A', 'adj:sg:dat:m3:pos', [], []), # mojemu
  292 + ('mego', 'mój:A', 'adj:sg:acc:m2:pos', [], []), # mojego
  293 + ('mego', 'mój:A', 'adj:sg:gen:m3:pos', [], []),
  294 + ('mego', 'mój:A', 'adj:sg:gen:n:pos', [], []),
  295 + ('mych', 'mój:A', 'adj:pl:loc:n:pos', [], []), # moich
  296 + ('me', 'mój:A', 'adj:pl:nom:f:pos', [], []),
  297 + ('me', 'mój:A', 'adj:pl:acc:f:pos', [], []), # moje
  298 + ('me', 'mój:A', 'adj:pl:acc:m2:pos', [], []),
  299 + ('me', 'mój:A', 'adj:pl:nom:m3:pos', [], []),
  300 + ('me', 'mój:A', 'adj:pl:acc:m3:pos', [], []),
  301 + ('me', 'mój:A', 'adj:sg:nom:n:pos', [], []),
  302 + ('me', 'mój:A', 'adj:pl:nom:n:pos', [], []),
  303 + ('me', 'mój:A', 'adj:sg:acc:n:pos', [], []),
  304 + ('me', 'mój:A', 'adj:pl:acc:n:pos', [], []),
  305 + ('ma', 'mój:A', 'adj:sg:nom:f:pos', [], []), # moja
  306 + ('mą', 'mój:A', 'adj:sg:acc:f:pos', [], []), # moją
  307 + ('mą', 'mój:A', 'adj:sg:inst:f:pos', [], []),
  308 + ('mym', 'mój:A', 'adj:sg:loc:m3:pos', [], []), # moim
  309 + ('mym', 'mój:A', 'adj:sg:inst:m3:pos', [], []),
  310 + ('mym', 'mój:A', 'adj:pl:dat:n:pos', [], []),
  311 + ('mym', 'mój:A', 'adj:sg:loc:n:pos', [], []),
  312 + ('mym', 'mój:A', 'adj:sg:inst:n:pos', [], []),
  313 + ('mymi', 'mój:A', 'adj:pl:inst:f:pos', [], []), # moimi
  314 + ('mymi', 'mój:A', 'adj:pl:inst:m3:pos', [], []),
  315 + ('mymi', 'mój:A', 'adj:pl:inst:n:pos', [], []),
  316 + ('mych', 'mój:A', 'adj:pl:gen:f:pos', [], []), # moich
  317 + ('mych', 'mój:A', 'adj:pl:loc:f:pos', [], []),
  318 + ('mych', 'mój:A', 'adj:pl:gen:m3:pos', [], []),
  319 + ('mych', 'mój:A', 'adj:pl:loc:m3:pos', [], []),
  320 + ('mych', 'mój:A', 'adj:pl:gen:n:pos', [], []),
  321 + ('twej', 'twój:A', 'adj:sg:gen:f:pos', [], []), # twojej
  322 + ('twej', 'twój:A', 'adj:sg:loc:f:pos', [], []),
  323 + ('twych', 'twój:A', 'adj:pl:gen:f:pos', [], []), # twoich
  324 + ('twych', 'twój:A', 'adj:pl:loc:m3:pos', [], []),
  325 + ('twych', 'twój:A', 'adj:pl:loc:n:pos', [], []),
  326 + ('twą', 'twój:A', 'adj:sg:acc:f:pos', [], []), # twoją
  327 + ('twą', 'twój:A', 'adj:sg:inst:f:pos', [], []),
  328 + ('twe', 'twój:A', 'adj:pl:acc:m3:pos', [], []), # twoje
  329 + ('twym', 'twój:A', 'adj:sg:loc:m3:pos', [], []), # twoim
  330 + ('twym', 'twój:A', 'adj:sg:inst:m3:pos', [], []),
  331 + ('twych', 'twój:A', 'adj:pl:loc:f:pos', [], []), # twoich
329 332 ('wkląsł', 'wklęsnąć', 'praet:sg:m3:perf', [], []), # wklęsł
330 333 ('wsze', 'wszystek', 'adj:pl:nom:f:pos', [], []), # wszystkie
331 334 ('wsze', 'wszystek', 'adj:pl:acc:f:pos', [], []),
... ... @@ -357,7 +360,7 @@ OVERRIDE = {
357 360 }
358 361  
359 362 def filter_kwal(forms):
360   - return list(filter(lambda f: not KWAL_KILL_LIST.intersection(f[4]), forms))
  363 + return list(filter(lambda f: not any(KWAL_KILL_LIST.intersection(k.split(',')) for k in f[4]), forms))
361 364  
362 365 def filter_ending(forms):
363 366 if len(forms) != 2:
... ... @@ -423,7 +426,7 @@ def select_form(lemma, feats):
423 426 # single feature: just filter
424 427 if type(feat) == str:
425 428 forms = filter_by_feature(feat, forms)
426   - # priority list of features: filter by first that yields non-empty result
  429 + # priority list of features: filter by first that yields non-empty result
427 430 else:
428 431 forms2 = []
429 432 for ft in feat:
... ...
entries/phrase_descriptions/polish_strings.py
... ... @@ -47,13 +47,13 @@ def CASE_FOR_NP():
47 47 'str_subj' : _('przypadku strukturalnym (mianownik)'),
48 48 'str' : _('przypadku strukturalnym (biernik albo dopełniacz w zależności od negacji)'),
49 49 'pred' : _('przypadku predykatywnym (narzędnik bądź przypadek narzucany przez element kontrolujący na pozycji predykatywnej)'),
50   - 'agr' : _('przypadku uzgadniającym (z nadrzędnikiem rzeczownikowym w wypadku apozycji lub podrzędnikiem przymiotnikowym)'),
  50 + 'agr' : _('przypadku uzgodnionym (z nadrzędnikiem rzeczownikowym w wypadku apozycji lub podrzędnikiem przymiotnikowym)'),
51 51 'part' : _('przypadku służącym do opisu rozchwiania pomiędzy biernikiem a dopełniaczem charakterystycznego dla rzeczowników partytywnych (podzielnych, np. <i>chleb</i>) oraz niepoliczalnych (np. <i>woda</i>). Np. <i>zjeść chleb/chleba</i>, <i>nalać wodę/wody</i>'),
52 52 }
53 53  
54 54 def CASE_FOR_ADJP():
55 55 ret = CASE_FOR_NP()
56   - ret['agr'] = _('przypadku uzgadniającym z nadrzędnikiem rzeczownikowym')
  56 + ret['agr'] = _('przypadku uzgodnionym z nadrzędnikiem rzeczownikowym')
57 57 return ret
58 58  
59 59 def PREPNP():
... ... @@ -98,13 +98,13 @@ def CASE_FOR_PREPNP():
98 98  
99 99 def INFP():
100 100 # Translators: fraza, bezokolicznikowa
101   - return (_('{aspect} %(a1)s %(a2)s'), 'fraza', 'bezokolicznikowa')
  101 + return (_('%(a1)s %(a2)s {aspect}'), 'fraza', 'bezokolicznikowa')
102 102  
103 103 def ASPECT():
104 104 return {
105 105 'imperf' : (_('%(a1)s'), 'niedokonana'),
106 106 'perf' : (_('%(a1)s'), 'dokonana'),
107   - '_' : (_('%(a1)s'), 'dowolna'),
  107 + '_' : (_('o dowolnym aspekcie'),)
108 108 }
109 109  
110 110 # there’s a CP class in the importer
... ... @@ -120,11 +120,10 @@ def CP_TYPE():
120 120 # Translators: wprowadzana
121 121 'żeby2' : (_('%(a1)s przez spójnik podrzędny <i>że</i> oraz dodatkowo <i>żeby</i> w konstrukcjach zanegowanych'), 'wprowadzana'),
122 122 # Translators: zależna, wprowadzana
123   - 'int' : (_('pytajno-%(a1)s %(a2)s przez odpowiedni zaimek pytajny'), 'zależna', 'wprowadzana'),
124   - # Translators: względna, wprowadzana
125   - 'rel' : (_('%(a1)s %(a2)s przez odpowiedni zaimek względny'), 'względna', 'wprowadzana'),
  123 + 'int' : (_('pytajno%(a1)s %(a2)s przez odpowiedni element pytajny'), 'zależna', 'wprowadzana'),
  124 + 'rel' : (_('%(a1)s'), 'względna'),
126 125 # Translators: zależna, wprowadzana
127   - 'int_r' : (_('pytajno-%(a1)s %(a2)s przez <i>{conj}</i>'), 'zależna', 'wprowadzana'),
  126 + 'int_r' : (_('pytajno%(a1)s %(a2)s przez <i>{conj}</i>'), 'zależna', 'wprowadzana'),
128 127 # Translators: względna, wprowadzana
129 128 'rel_r' : (_('%(a1)s %(a2)s przez <i>{conj}</i>'), 'względna', 'wprowadzana'),
130 129 }
... ... @@ -159,11 +158,11 @@ def NCP_TYPE():
159 158 # Translators: wprowadzana
160 159 'żeby2' : (_('%(a1)s przez <i>{to}, że</i> bądź dodatkowo <i>{to}, żeby</i> w konstrukcjach zanegowanych'), 'wprowadzana'),
161 160 # Translators: zależna, wprowadzana
162   - 'int' : (_('pytajno-%(a1)s %(a2)s przez <i>{to}, co (czy, ile, kto)</i> lub dowolny inny zaimek pytajny'), 'zależna', 'wprowadzana'),
  161 + 'int' : (_('pytajno%(a1)s %(a2)s przez <i>{to}, co/czy/ile/kto/…</i> lub dowolny inny element pytajny'), 'zależna', 'wprowadzana'),
163 162 # Translators: względna, wprowadzana
164   - 'rel' : (_('%(a1)s %(a2)s przez <i>{to}, co (gdzie, kto)</i> lub dowolny inny zaimek względny'), 'względna', 'wprowadzana'),
  163 + 'rel' : (_('%(a1)s %(a2)s przez <i>{to}, co/gdzie/kto/…</i>'), 'względna', 'wprowadzana'),
165 164 # Translators: zależna, wprowadzana
166   - 'int_r' : (_('pytajno-%(a1)s %(a2)s przez <i>{to}, {conj}</i>'), 'zależna', 'wprowadzana'),
  165 + 'int_r' : (_('pytajno%(a1)s %(a2)s przez <i>{to}, {conj}</i>'), 'zależna', 'wprowadzana'),
167 166 # Translators: względna, wprowadzana
168 167 'rel_r' : (_('%(a1)s %(a2)s przez <i>{to}, {conj}</i>'), 'względna', 'wprowadzana'),
169 168 }
... ... @@ -179,11 +178,11 @@ def PREPNCP_TYPE():
179 178 # Translators: wprowadzana
180 179 'żeby2' : (_('%(a1)s przez <i>{prep} {to}, że</i> bądź dodatkowo <i>{prep} {to}, żeby</i> w konstrukcjach zanegowanych'), 'wprowadzana'),
181 180 # Translators: zależna, wprowadzana
182   - 'int' : (_('pytajno-%(a1)s %(a2)s przez <i>{prep} {to}, co (czy, ile, kto)</i> lub dowolny inny zaimek pytajny'), 'zależna', 'wprowadzana'),
  181 + 'int' : (_('pytajno%(a1)s %(a2)s przez <i>{prep} {to}, co/czy/ile/kto/…</i> lub dowolny inny element pytajny'), 'zależna', 'wprowadzana'),
183 182 # Translators: względna, wprowadzana
184   - 'rel' : (_('%(a1)s %(a2)s przez <i>{prep} {to}, co (gdzie, kto)</i> lub dowolny inny zaimek względny'), 'względna', 'wprowadzana'),
  183 + 'rel' : (_('%(a1)s %(a2)s przez <i>{prep} {to}, co/gdzie/kto/…</i>'), 'względna', 'wprowadzana'),
185 184 # Translators: zależna, wprowadzana
186   - 'int_r' : (_('pytajno-%(a1)s %(a2)s przez <i>{prep} {to}, {conj}</i>'), 'zależna', 'wprowadzana'),
  185 + 'int_r' : (_('pytajno%(a1)s %(a2)s przez <i>{prep} {to}, {conj}</i>'), 'zależna', 'wprowadzana'),
187 186 # Translators: względna, wprowadzana
188 187 'rel_r' : (_('%(a1)s %(a2)s przez <i>{prep} {to}, {conj}</i>'), 'względna', 'wprowadzana'),
189 188 }
... ... @@ -250,8 +249,8 @@ def XP_(reals):
250 249 }
251 250  
252 251 def ADVP_PRON():
253   - # Translators: zaimki, przysłówkowe
254   - return (_('wyłącznie %(a1)s %(a2)s <i>jak</i>, <i>tak</i>'), 'zaimki', 'przysłówkowe')
  252 + # Translators: przysłówki
  253 + return (_('wyłącznie %(a1)s <i>jak</i>, <i>tak</i>'), 'przysłówki')
255 254  
256 255 def ADVP_MISC():
257 256 # Translators: fraza, przysłówkowa, fraza, konstrukcje, przysłówkowe
... ... @@ -338,6 +337,7 @@ def INFLECTED():
338 337 'posesywna' : { 'nom' : _('posesywna'), 'gen' : _('posesywnej'), 'inst' : _('posesywną') },
339 338 'porównawcza' : { 'nom' : _('porównawcza'), 'gen' : _('porównawczej'), 'inst' : _('porównawczą') },
340 339 'przymiotnikowa' : { 'nom' : _('przymiotnikowa'), 'gen' : _('przymiotnikowej'), 'inst' : _('przymiotnikową') },
  340 + 'przysłówki' : { 'nom' : _('przysłówki'), 'gen' : _('przysłówków'), 'inst' : _('przysłówkami') },
341 341 'przysłówkowa' : { 'nom' : _('przysłówkowa'), 'gen' : _('przysłówkowej'), 'inst' : _('przysłówkową') },
342 342 'przysłówkowe' : { 'nom' : _('przysłówkowe'), 'gen' : _('przysłówkowych'), 'inst' : _('przysłówkowymi') },
343 343 'realizowana' : { 'nom' : _('realizowana'), 'gen' : _('realizowanej'), 'inst' : _('realizowaną') },
... ... @@ -348,7 +348,7 @@ def INFLECTED():
348 348 'temporalna' : { 'nom' : _('temporalna'), 'gen' : _('temporalnej'), 'inst' : _('temporalną') },
349 349 'wprowadzana' : { 'nom' : _('wprowadzana'), 'gen' : _('wprowadzanej'), 'inst' : _('wprowadzaną') },
350 350 'względna' : { 'nom' : _('względna'), 'gen' : _('względnej'), 'inst' : _('względną') },
351   - 'zaimki' : { 'nom' : _('zaimki'), 'gen' : _('zaimków'), 'inst' : _('zaimkami') },
  351 + #'zaimki' : { 'nom' : _('zaimki'), 'gen' : _('zaimków'), 'inst' : _('zaimkami') },
352 352 'zależna' : { 'nom' : _('zależna'), 'gen' : _('zależnej'), 'inst' : _('zależną') },
353 353 'zdaniowa' : { 'nom' : _('zdaniowa'), 'gen' : _('zdaniowej'), 'inst' : _('zdaniową') },
354 354 #'' : { 'nom' : _(''), 'gen' : _(''), 'inst' : _('') },
... ...
entries/polish_strings.py
... ... @@ -80,7 +80,7 @@ def PHRASE_ATTRIBUTE():
80 80 'aspect' : _('Aspekt'),
81 81 'advcat' : _('Typ okolicznika'),
82 82 'comparcat' : _('Typ frazy porównawczej'),
83   - 'text' : _('Postać frazeologizmu'),
  83 + 'text' : _('Postać frazy zleksykalizowanej'),
84 84 }
85 85  
86 86 def PHRASE_ATTRIBUTE_VALUE():
... ... @@ -129,9 +129,9 @@ def PHRASE_TYPE():
129 129 'distrp' : _('dystrybutywna'),
130 130 # TODO
131 131 'E' : _('podmiot czasownika wymagającego bezokolicznika'),
132   - 'fixed' : _('frazeologizm zamrożony'),
  132 + 'fixed' : _('zamrożona fraza zleksykalizowana'),
133 133 'infp' : _('bezokolicznikowa'),
134   - 'lex' : _('frazeologizm'),
  134 + 'lex' : _('fraza zleksykalizowana'),
135 135 'ncp' : _('zdaniowa z korelatem'),
136 136 'nonch' : _('niechromatyczna'),
137 137 'np' : _('rzeczownikowa'),
... ...
entries/static/entries/js/entries.js
... ... @@ -788,7 +788,8 @@ function get_entry(entry_id) {
788 788 check_import_status();
789 789 clear_entry();
790 790 show_entry_spinners();
791   - var data = { 'forms' : serialize_forms($('#main-form')), 'entry' : entry_id };
  791 + //var data = { 'forms' : serialize_forms($('#main-form')), 'entry' : entry_id };
  792 + var data = { 'entry' : entry_id };
792 793 $.ajax({
793 794 type : 'post',
794 795 url : '/' + lang + '/entries/get_entry/',
... ... @@ -1084,6 +1085,10 @@ $(document).ready(function() {
1084 1085  
1085 1086 initialize_main_form();
1086 1087  
  1088 + initialize_frames_form();
  1089 +
  1090 + initialize_schemata_form();
  1091 +
1087 1092 //$('.local-filter').hide();
1088 1093  
1089 1094 $('#main-form').submit();
... ...
entries/static/entries/js/forms.js
1   -function clear_form_errors() {
2   - $('.form-error').remove();
3   - $('#main-form').find('.alert-danger').remove();
  1 +function clear_form_errors(form) {
  2 + form.find('.form-error').remove();
  3 + form.find('.alert-danger').remove();
4 4 }
5 5  
6   -function show_form_errors(errors) {
7   - show_error_alert(gettext('Formularz filtrowania zawiera błędy.'), $('#submit-id-main-submit').prev());
  6 +function show_form_errors(form, errors) {
  7 + show_error_alert(gettext('Formularz filtrowania zawiera błędy.'), form.find('input[type="submit"]').prev());
8 8 for (var field in errors) {
9 9 var field_element = $('#id_' + field);
10 10 field_element.after('<p class="bg-warning form-error">' + errors[field] + '</p>');
... ... @@ -377,21 +377,43 @@ function serialize_forms(element) {
377 377 }
378 378 }
379 379  
  380 +function initialize_form(form) {
  381 + bind_form_events(form);
  382 + form.data('depth', '0');
  383 + form.find('input[type="reset"]').click(function(event) {
  384 + // making sure the form is reset *before* resubmitting
  385 + event.preventDefault();
  386 + // in addition to resetting the form, remove all subforms and ors
  387 + form.find('.subform').remove();
  388 + form.find('.form-or').remove();
  389 + form.find('.form-other').remove();
  390 + // un-negate all attributes
  391 + form.find('label').removeClass('negated2');
  392 + form.trigger('reset');
  393 + // and submit
  394 + form.submit();
  395 + });
  396 +}
  397 +
380 398 function initialize_main_form() {
381 399  
382   - bind_form_events($('#main-form'));
  400 + var main_form = $('#main-form');
383 401  
384   - $('#main-form').data('depth', '0');
  402 + initialize_form(main_form);
385 403  
386   - $('#main-form').submit(function(event) {
387   - var submit = $(this).find('#submit-id-main-submit');
  404 + //bind_form_events(main_form);
  405 +
  406 + //main_form.data('depth', '0');
  407 +
  408 + main_form.submit(function(event) {
  409 + var submit = main_form.find('input[type="submit"]');
388 410 submit.prop('disabled', true);
389 411 event.preventDefault();
390 412 clear_results();
391 413 clear_info();
392 414 show_entry_list_spinner();
393   - clear_form_errors();
394   - var data = { 'forms' : serialize_forms($(this)) };
  415 + clear_form_errors(main_form);
  416 + var data = { 'forms' : serialize_forms(main_form) };
395 417 $.ajax({
396 418 type : 'post',
397 419 url : '/' + lang + '/entries/send_form/',
... ... @@ -400,7 +422,7 @@ function initialize_main_form() {
400 422 success : function(response) {
401 423 clear_info();
402 424 if (response.errors) {
403   - show_form_errors(response.errors);
  425 + show_form_errors(main_form, response.errors);
404 426 } else if (response.success) {
405 427 update_entries();
406 428 $('#entry-filters').modal('hide');
... ... @@ -414,17 +436,95 @@ function initialize_main_form() {
414 436 });
415 437 });
416 438  
417   - $('#reset-id-main-reset').click(function(event) {
  439 + /*main_form.find('input[type="reset"]').click(function(event) {
418 440 // making sure the form is reset *before* resubmitting
419 441 event.preventDefault();
420 442 // in addition to resetting the form, remove all subforms and ors
421   - $('#main-form').find('.subform').remove();
422   - $('#main-form').find('.form-or').remove();
423   - $('#main-form').find('.form-other').remove();
  443 + main_form.find('.subform').remove();
  444 + main_form.find('.form-or').remove();
  445 + main_form.find('.form-other').remove();
424 446 // un-negate all attributes
425   - $('#main-form').find('label').removeClass('negated2');
426   - $('#main-form').trigger('reset');
  447 + main_form.find('label').removeClass('negated2');
  448 + main_form.trigger('reset');
427 449 // and submit
428   - $('#main-form').submit();
  450 + main_form.submit();
  451 + });*/
  452 +}
  453 +
  454 +function initialize_local_form(selector, url) {
  455 +
  456 + var form = selector.find('form');
  457 +
  458 + initialize_form(form);
  459 +
  460 + form.submit(function(event) {
  461 + var submit = form.find('input[type="submit"]');
  462 + submit.prop('disabled', true);
  463 + event.preventDefault();
  464 + clear_form_errors(form);
  465 + var data = { 'forms' : serialize_forms(form), 'entry' : curr_entry };
  466 + $.ajax({
  467 + type : 'post',
  468 + url : url,
  469 + dataType : 'json',
  470 + data : data,
  471 + success : function(response) {
  472 + clear_info();
  473 + if (response.errors) {
  474 + show_form_errors(form, response.errors);
  475 + } else if (response.success) {
  476 + get_entry(curr_entry);
  477 + selector.modal('hide');
  478 + }
  479 + submit.prop('disabled', false);
  480 + },
  481 + error: function(request, errorType, errorMessage) {
  482 + show_error(errorType + ' (' + errorMessage + ')');
  483 + submit.prop('disabled', false);
  484 + }
  485 + });
429 486 });
  487 +
  488 +}
  489 +
  490 +function initialize_frames_form() {
  491 + initialize_local_form($('#frame-filters'), '/' + lang + '/entries/send_frames_form/');
  492 +}
  493 +
  494 +function initialize_schemata_form() {
  495 +
  496 + initialize_local_form($('#schema-filters'), '/' + lang + '/entries/send_schemata_form/');
  497 +
  498 + /*var schemata_form = $('#schema-filters').find('form');
  499 +
  500 + initialize_form(schemata_form);
  501 +
  502 + schemata_form.submit(function(event) {
  503 + var submit = schemata_form.find('input[type="submit"]');
  504 + submit.prop('disabled', true);
  505 + event.preventDefault();
  506 + clear_form_errors(schemata_form);
  507 + var data = { 'forms' : serialize_forms(schemata_form), 'entry' : curr_entry };
  508 + $.ajax({
  509 + type : 'post',
  510 + url : '/' + lang + '/entries/send_schemata_form/',
  511 + dataType : 'json',
  512 + data : data,
  513 + success : function(response) {
  514 + clear_info();
  515 + if (response.errors) {
  516 + show_form_errors(schemata_form, response.errors);
  517 + } else if (response.success) {
  518 + get_entry(curr_entry);
  519 + $('#schema-filters').modal('hide');
  520 + }
  521 + submit.prop('disabled', false);
  522 + },
  523 + error: function(request, errorType, errorMessage) {
  524 + show_error(errorType + ' (' + errorMessage + ')');
  525 + submit.prop('disabled', false);
  526 + }
  527 + });
  528 + });*/
  529 +
430 530 }
... ...
entries/templates/entry_display.html
... ... @@ -23,19 +23,19 @@
23 23 <div class="row m-0 p-0" id="semantics-top-pane">
24 24 <div class="col h-100 px-1 pt-0 pb-0 overflow-auto" id="semantics-frames-pane">
25 25 <div id="semantics-frames"></div>
26   - <!--div class="sticky-bottom px-0 py-1 bg-white local-filter">
  26 + <div class="sticky-bottom px-0 py-1 bg-white local-filter">
27 27 <button type="button" id='semantics-filter-frames-button' class="btn btn-block btn-sm btn-outline-dark" data-toggle="modal" data-target="#frame-filters">
28 28 {% trans "Filtrowanie ram" %}
29 29 </button>
30   - </div-->
  30 + </div>
31 31 </div>
32 32 <div class="col h-100 px-1 pt-0 pb-0 overflow-auto" id="semantics-schemata-pane">
33 33 <div id="semantics-schemata"></div>
34   - <!--div class="sticky-bottom px-0 py-1 bg-white local-filter">
  34 + <div class="sticky-bottom px-0 py-1 bg-white local-filter">
35 35 <button type="button" id='semantics-filter-schemata-button' class="btn btn-block btn-sm btn-outline-dark" data-toggle="modal" data-target="#schema-filters">
36 36 {% trans "Filtrowanie schematów" %}
37 37 </button>
38   - </div-->
  38 + </div>
39 39 </div>
40 40 </div>
41 41 <div class="row m-0 p-0 overflow-auto" id="semantics-examples-pane">
... ... @@ -56,11 +56,11 @@
56 56 <div class="col h-100 w-100 p-0 tab-pane" id="syntax" role="tabpanel" aria-labelledby="syntax-tab">
57 57 <div class="col w-100 px-1 pt-0 pb-0 overflow-auto" id="syntax-schemata-pane">
58 58 <div id="syntax-schemata"></div>
59   - <!--div class="sticky-bottom px-0 py-1 bg-white local-filter">
  59 + <div class="sticky-bottom px-0 py-1 bg-white local-filter">
60 60 <button type="button" id='syntax-filter-schemata-button' class="btn btn-block btn-sm btn-outline-dark" data-toggle="modal" data-target="#schema-filters">
61 61 {% trans "Filtrowanie schematów" %}
62 62 </button>
63   - </div-->
  63 + </div>
64 64 </div>
65 65 <div class="col w-100 p-0 overflow-auto" id="syntax-examples-pane">
66 66 <table id="syntax-examples" class="table table-sm table-hover">
... ...
entries/urls.py
... ... @@ -6,6 +6,9 @@ app_name = &#39;entries&#39;
6 6  
7 7 urlpatterns = [
8 8 path('send_form/', views.send_form, name='send_form'),
  9 + path('send_schemata_form/', views.send_schemata_form, name='send_schemata_form'),
  10 + path('send_frames_form/', views.send_frames_form, name='send_frames_form'),
  11 + #path('filter_schemata/', views.filter_schemata, name='filter_schemata'),
9 12 path('get_entries/', views.get_entries, name='get_entries'),
10 13 path('get_entry/', views.get_entry, name='get_entry'),
11 14 path('get_subform/', views.get_subform, name='get_subform'),
... ...
entries/views.py
... ... @@ -49,10 +49,19 @@ def entries(request):
49 49 # TODO make this automatic by subclassing/configuring session object
50 50 if 'last_visited' not in request.session:
51 51 request.session['last_visited'] = []
52   - return render(request, 'entries.html', { 'entries_form' : EntryForm(), 'frames_form' : FrameFormFactory.get_form(subform_header=False), 'schemata_form' : SchemaFormFactory.get_form(subform_header=False) })
  52 + # TODO retrieve the form from the request session – keep forms between page refreshes,
  53 + # keep search history, allow saving searches?
  54 + # if so, don’t delete local forms on main form submit in send_form
  55 + return render(
  56 + request,
  57 + 'entries.html',
  58 + {
  59 + 'entries_form' : EntryForm(),
  60 + 'frames_form' : FrameFormFactory.get_form(as_subform=False),
  61 + 'schemata_form' : SchemaFormFactory.get_form(as_subform=False)
  62 + })
53 63  
54 64 FORM_TYPES = {
55   - #'entry-main' : MainEntryForm,
56 65 'entry' : EntryForm,
57 66  
58 67 }
... ... @@ -247,8 +256,8 @@ def get_filtered_objects(forms, initial_objects=None, tab=&#39; &#39;):
247 256 # The function is used for filtering out schemata/frames. E.g. if the user chooses entries with a schema
248 257 # safisfying X AND a schema satisfying Y, schemata satisfying X OR Y should be displayed (and all other
249 258 # schemata should be hidden).
250   -def get_filtered_objects2(objects, forms):
251   - print(forms)
  259 +def get_filtered_objects2(forms, objects):
  260 + #print(forms)
252 261 filtered_ids = [{ schema.id for schema in get_filtered_objects(form, initial_objects=objects) } for form in chain.from_iterable(forms)]
253 262 filtered_ids = reduce(operator.or_, filtered_ids)
254 263 return objects.filter(id__in=filtered_ids)
... ... @@ -260,13 +269,48 @@ def send_form(request):
260 269 errors_dict = dict()
261 270 forms = collect_forms(request.POST['forms[]'], errors_dict)
262 271 if errors_dict:
263   - return JsonResponse({ 'success' : 0, 'errors' : errors_dict })
264 272 del request.session['forms']
  273 + return JsonResponse({ 'success' : 0, 'errors' : errors_dict })
265 274 else:
266 275 request.session['forms'] = request.POST['forms[]']
  276 + if 'schema_form' in request.session:
  277 + del request.session['schema_form']
  278 + if 'frame_form' in request.session:
  279 + del request.session['frame_form']
  280 + return JsonResponse({ 'success' : 1 })
  281 + return JsonResponse({})
  282 +
  283 +
  284 +@ajax_required
  285 +def send_schemata_form(request):
  286 + if request.method == 'POST':
  287 + errors_dict = dict()
  288 + forms = collect_forms(request.POST['forms[]'], errors_dict)
  289 + eid = request.POST['entry']
  290 + if errors_dict:
  291 + del request.session['schema_form']
  292 + return JsonResponse({ 'success' : 0, 'errors' : errors_dict })
  293 + else:
  294 + request.session['schema_form'] = request.POST['forms[]']
  295 + return JsonResponse({ 'success' : 1 })
  296 + return JsonResponse({})
  297 +
  298 +
  299 +@ajax_required
  300 +def send_frames_form(request):
  301 + if request.method == 'POST':
  302 + errors_dict = dict()
  303 + forms = collect_forms(request.POST['forms[]'], errors_dict)
  304 + eid = request.POST['entry']
  305 + if errors_dict:
  306 + del request.session['frame_form']
  307 + return JsonResponse({ 'success' : 0, 'errors' : errors_dict })
  308 + else:
  309 + request.session['frame_form'] = request.POST['forms[]']
267 310 return JsonResponse({ 'success' : 1 })
268 311 return JsonResponse({})
269 312  
  313 +
270 314 def get_scroller_params(POST_data):
271 315 order = (int(POST_data['order[0][column]']), POST_data['order[0][dir]'])
272 316 return {
... ... @@ -290,8 +334,9 @@ def get_entries(request):
290 334 scroller_params = get_scroller_params(request.POST)
291 335 entries = get_filtered_objects(forms).filter(import_error=False)
292 336  
293   - # TODO restriction to >1 subentries for testing css – remove!!!
294   - #entries = entries.annotate(nsub=Count('subentries')).filter(nsub__gt=1, frames_count__gt=2, schemata_count__gt=4)
  337 + # TODO restrictions for testing – remove!!!
  338 + #entries = entries.annotate(nsub=Count('subentries')).filter(nsub__gt=1)
  339 + #entries = entries.filter(subentries__schemata__opinion__key__in=('vul', 'col')).filter(status__key__in=('(S) gotowe', '(S) sprawdzone'))
295 340  
296 341 total = entries.count()
297 342 if scroller_params['filter']:
... ... @@ -497,6 +542,7 @@ def get_alternations(schemata, frames):
497 542 realisation_descriptions[frame_id][schema_id][alt_no - 1] = RealisationDescription.objects.get(frame__id=frame_id, schema__id=schema_id, alternation=alt_no).description
498 543 return alt_dict, phrases, realisation_descriptions
499 544  
  545 +
500 546 def get_examples(entry):
501 547 examples = []
502 548 for example in entry.examples.all():
... ... @@ -528,18 +574,23 @@ def get_examples(entry):
528 574 })
529 575 return sorted(examples, key=lambda x: x['sentence'])
530 576  
  577 +#TODO test (*) changes
  578 +
531 579 @ajax_required
532 580 def get_entry(request):
533 581 if request.method == 'POST':
534   - form = EntryForm(request.POST)
  582 + #TODO (*)
  583 + #form = EntryForm(request.POST)
535 584 eid = request.POST['entry']
536   - if eid.isdigit() and form.is_valid():
  585 + #TODO (*)
  586 + if eid.isdigit():# and form.is_valid():
537 587 eid = int(eid)
538 588 # TODO check that Entry has no import errors
539 589 entry = Entry.objects.get(id=eid)
540   -
541 590 errors_dict = dict()
542   - entry_form, _, children_forms = collect_forms(request.POST['forms[]'], errors_dict)
  591 + #TODO (*)
  592 + #entry_form, _, children_forms = collect_forms(request.POST['forms[]'], errors_dict)
  593 + entry_form, _, children_forms = collect_forms(request.session['forms'], errors_dict)
543 594 # form should already be validated if it passed through send_form
544 595 assert(not errors_dict)
545 596  
... ... @@ -549,8 +600,12 @@ def get_entry(request):
549 600 assert (len(schema_forms) <= 1)
550 601 if schema_forms:
551 602 schema_forms = schema_forms[0]
552   - else:
553   - filter_schemata = False
  603 + phrase_forms = [frms[2] for frms in children_forms if frms[0] == 'switch']
  604 + assert (len(phrase_forms) <= 1)
  605 + if phrase_forms:
  606 + phrase_forms = phrase_forms[0]
  607 + print('=====================', phrase_forms)
  608 + filter_schemata = schema_forms or phrase_forms
554 609 if filter_frames:
555 610 frame_forms = [frms[2] for frms in children_forms if frms[0] == 'frame']
556 611 assert (len(frame_forms) <= 1)
... ... @@ -559,21 +614,40 @@ def get_entry(request):
559 614 else:
560 615 filter_frames = False
561 616  
  617 + local_schema_form = None
  618 + if 'schema_form' in request.session:
  619 + errors_dict = dict()
  620 + local_schema_form = collect_forms(request.session['schema_form'], errors_dict)
  621 + print(local_schema_form)
  622 + assert(not errors_dict)
  623 +
  624 + local_frame_form = None
  625 + if 'frame_form' in request.session:
  626 + errors_dict = dict()
  627 + local_frame_form = collect_forms(request.session['frame_form'], errors_dict)
  628 + assert(not errors_dict)
  629 +
562 630 subentries = []
563 631 all_schema_objects = []
564 632 for subentry in entry.subentries.all():
565 633 schemata = []
566 634 schema_objects = subentry.schemata.all()
567   - if filter_schemata:
568   - schema_objects = get_filtered_objects2(schema_objects, schema_forms)
  635 + # filter out schemata by schema properties
  636 + if filter_schemata and schema_forms:
  637 + schema_objects = get_filtered_objects2(schema_forms, schema_objects)
  638 + if local_schema_form:
  639 + schema_objects = get_filtered_objects(local_schema_form, schema_objects)
569 640 for schema in schema_objects:
570 641 schemata.append(schema2dict(schema, subentry.negativity, request.LANGUAGE_CODE))
571 642 if schemata:
572 643 all_schema_objects += list(schema_objects)
573 644 subentries.append({ 'str' : subentry2str(subentry), 'schemata' : schemata })
574 645 frame_objects = Frame.objects.filter(arguments__argument_connections__schema_connections__subentry__entry=entry).distinct()
  646 + # filter out frames by frame properties
575 647 if filter_frames:
576   - frame_objects = get_filtered_objects2(frame_objects, frame_forms)
  648 + frame_objects = get_filtered_objects2(frame_forms, frame_objects)
  649 + if local_frame_form:
  650 + frame_objects = get_filtered_objects(local_frame_form, frame_objects)
577 651 frames = [frame2dict(frame, entry.lexical_units.all()) for frame in frame_objects]
578 652 alternations, realisation_phrases, realisation_descriptions = get_alternations(all_schema_objects, frame_objects)
579 653 examples = get_examples(entry)
... ... @@ -590,6 +664,29 @@ def get_entry(request):
590 664 return JsonResponse({ 'subentries' : subentries, 'frames' : frames, 'alternations' : alternations, 'realisation_phrases' : realisation_phrases, 'realisation_descriptions' : realisation_descriptions, 'examples' : examples })
591 665 return JsonResponse({})
592 666  
  667 +'''
  668 +@ajax_required
  669 +def filter_schemata(request):
  670 + if request.method == 'POST':
  671 + print(request.POST['forms[]'])
  672 + errors_dict = dict()
  673 + forms = collect_forms(request.POST['forms[]'], errors_dict)
  674 + eid = request.POST['entry']
  675 + print(eid)
  676 + print(forms)
  677 + if errors_dict:
  678 + return JsonResponse({ 'success' : 0, 'errors' : errors_dict })
  679 +
  680 + # TODO check that Entry has no import errors
  681 + entry = Entry.objects.get(id=eid)
  682 + schema_ids = []
  683 + for subentry in entry.subentries.all():
  684 + for schema in get_filtered_objects(forms, subentry.schemata.all()):
  685 + schema_ids.append(schema.id)
  686 + return JsonResponse({ 'success' : 1, 'schema_ids' : schema_ids })
  687 + return JsonResponse({})
  688 +'''
  689 +
593 690 @ajax_required
594 691 def change_show_reals_desc(request):
595 692 if request.method == 'POST':
... ...
importer/Entry.py
... ... @@ -5,6 +5,7 @@ from importer.Syntax import Syntax
5 5 from importer.Meanings import Meanings
6 6 from importer.Semantics import Semantics
7 7 from importer.Examples import Examples
  8 +from importer.Global import set_current_entry
8 9 from connections.models import POS, Status
9 10 import connections.models
10 11  
... ... @@ -24,6 +25,7 @@ class Entry:
24 25 self._examples = Examples.fromTree(entry_tree._children[3], self._syntax, self._semantics, self._base, self._meanings, examples_in_data, examples_out_file, misconnected_out_file)
25 26  
26 27 def store(self, all_meanings, stored_positions):
  28 + set_current_entry(self)
27 29 pos = POS.objects.get(tag=self._pos)
28 30 status = Status.objects.get(key=self._status)
29 31 # @TODO: nie ma frequency w xml-u
... ...
importer/Global.py 0 → 100644
  1 +current_entry = None
  2 +
  3 +def get_current_entry():
  4 + return current_entry
  5 +
  6 +def set_current_entry(entry):
  7 + global current_entry
  8 + current_entry = entry
... ...
importer/RealizationDescriptionUtils.py
  1 +import logging
  2 +
1 3 import morfeusz2
2 4  
3 5 from entries.phrase_descriptions.descriptions import make_phraseologisms
4 6  
5 7 from importer.Phrase import Case, Preposition, Modification, Words, NP, LexNP, PrepNP, LexPrepNP, AdjP, LexAdjP, PActP, LexPActP, Compar, LexCompar, Fixed
6 8 from importer.Position import Position
  9 +from importer.Global import get_current_entry
7 10  
8 11 class RealisationDescriptionError(Exception):
9 12 pass
... ... @@ -411,9 +414,19 @@ def make_comprepnp(comprep, words, num, mod):
411 414  
412 415 def make_compar(compar, words, num, mod, controller):
413 416 dummy_id = None
414   - if not controller:
415   - raise RealisationDescriptionError('no controller for {}'.format(compar))
416   - controller_case = controller.getCase()
  417 + #if not controller:
  418 + # raise RealisationDescriptionError('no controller for {}'.format(compar))
  419 + if controller:
  420 + controller_case = controller.getCase()
  421 + else:
  422 + pos, lemma = get_current_entry()._pos, get_current_entry()._base
  423 + if pos == 'verb':
  424 + controller_case = 'nom' # najczęściej chyba nom lub acc, ale trzeba coś wybrać
  425 + if pos == 'noun':
  426 + controller_case = 'gen' # degradacja kogoś jako kogoś itp.
  427 + if pos in ('adj', 'adv'):
  428 + controller_case = 'nom' # analogiczny jak coś itp.
  429 + logging.warning('{}: no controller for {}; assuming {}.'.format(lemma, compar, controller_case))
417 430 np = NP(Case(controller_case), dummy_id)
418 431 lexnp = LexNP(np, num, words, mod, dummy_id)
419 432 return LexCompar(compar, [lexnp], dummy_id)
... ...
importer/RealizationDescriptions.py
1 1 import datetime
  2 +import logging
2 3 import os
3 4  
4 5 from collections import Counter, defaultdict
... ... @@ -332,7 +333,11 @@ def process_lemma(lemma, phrase_type):
332 333 tags = []
333 334 for i, word in enumerate(words):
334 335 tags.append(sorted(get_simplified_tags(word)))
335   - if len(words) == 2 and 'subst:nom' in tags[0] and 'adj' in tags[1]:
  336 + if len(words) == 2 and 'subst:nom' in tags[0] and 'subst:gen' in tags[1]:
  337 + # np. ‹dziedzina wiedzy›
  338 + lemma = words[0]
  339 + mod = make_npgen_mod(words[1])
  340 + elif len(words) == 2 and 'subst:nom' in tags[0] and 'adj' in tags[1]:
336 341 # np. ‹środki pieniężne›
337 342 # ‹napój wyskokowy› -> ‹napój› również impt,
338 343 # ‹stan psychiczny› -> ‹psychiczny› również subst,
... ... @@ -348,10 +353,6 @@ def process_lemma(lemma, phrase_type):
348 353 lemma = words[0]
349 354 mod = make_pactp_mod(words[1])
350 355 mod._order = 'post'
351   - elif len(words) == 2 and 'subst:nom' in tags[0] and 'subst:gen' in tags[1]:
352   - # np. ‹dziedzina wiedzy›
353   - lemma = words[0]
354   - mod = make_npgen_mod(words[1])
355 356 elif len(words) == 2 and 'subst:nom' in tags[0] and 'ger:gen' in tags[1]:
356 357 # np. ‹język programowania›
357 358 lemma = words[0]
... ... @@ -509,7 +510,7 @@ def generate_phrases(function, negativity, phrase, lemma, is_predef, head_gender
509 510 if phrase._type._realisations:
510 511 phr = '/'.join(phrase._type._realisations) + ' …'
511 512 else:
512   - raise RealisationDescriptionError('rel phrase without realisations: {}'.format(phrase))
  513 + phr = 'kto co robi/co się dzieje/…'
513 514 elif cptype == 'żeby2':
514 515 comp = 'że' if negativity != 'neg' else 'żeby'
515 516 phr = 'że coś się stało'
... ... @@ -726,7 +727,8 @@ def get_phrase_description2(subentry, argument, position, phrase, controller_gra
726 727 try:
727 728 controller_features = controller_grammar[controller]
728 729 except KeyError:
729   - raise RealisationDescriptionError('couldn’t determine grammar features for {}: {} {}'.format(' '.join(map(str, argument.frame.lexical_units.all())), control, phrase))
  730 + controller_features = ('m1', 'sg')
  731 + logging.warning('{} couldn’t determine grammar features for {}: {} {}; assuming m1 sg'.format(subentry.entry.name, ' '.join(map(str, argument.frame.lexical_units.all())), control, phrase))
730 732 controller_function = controller._function._value if controller._function else None
731 733  
732 734 if subentry.entry.pos.tag == 'noun':
... ... @@ -1004,6 +1006,8 @@ FALLBACK = {
1004 1006 'do nieba' : 2,
1005 1007 'ze zbiornika' : 1,
1006 1008 'do zbiornika' : 2,
  1009 + 'samo' : 1,
  1010 + 'do (‹jakiejś›) ręki / do (‹jakichś›) rąk' : 2,
1007 1011 }
1008 1012  
1009 1013 def fallback(description):
... ...
locale/en/LC_MESSAGES/django.mo
No preview for this file type
locale/en/LC_MESSAGES/django.po
... ... @@ -8,7 +8,7 @@ msgid &quot;&quot;
8 8 msgstr ""
9 9 "Project-Id-Version: PACKAGE VERSION\n"
10 10 "Report-Msgid-Bugs-To: \n"
11   -"POT-Creation-Date: 2021-06-23 14:30+0200\n"
  11 +"POT-Creation-Date: 2021-06-30 10:15+0200\n"
12 12 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14 14 "Language-Team: LANGUAGE <LL@li.org>\n"
... ... @@ -26,20 +26,39 @@ msgstr &quot;Entries&quot;
26 26 msgid "Typy fraz"
27 27 msgstr "Phrase types"
28 28  
29   -#: common/templates/base.html:60
30   -#: dictionary_statistics/templates/dictionary_statistics.html:7
31   -msgid "Statystyki"
32   -msgstr "Statistics"
  29 +#: common/templates/base.html:66
  30 +msgid "EN"
  31 +msgstr "PL"
33 32  
34   -#: common/templates/base.html:65
35   -msgid "Pobierz słownik"
36   -msgstr "Download dictionary"
  33 +#: common/templates/base.html:76
  34 +msgid "Instytut Podstaw Informatyki PAN"
  35 +msgstr "Institute of Computer Science PAS"
  36 +
  37 +#: common/templates/base.html:77
  38 +msgid "Praca współfinansowana przez"
  39 +msgstr "Work co-founded by"
  40 +
  41 +#: common/templates/base.html:78
  42 +msgid "Strona wykorzystuje"
  43 +msgstr "Webpage powered by"
  44 +
  45 +#: common/templates/base.html:79
  46 +msgid "oraz"
  47 +msgstr "and "
  48 +
  49 +#: common/templates/base.html:80
  50 +msgid "z motywem opartym na"
  51 +msgstr "with"
37 52  
38 53 #: common/templates/base.html:81
39   -msgid "EN"
40   -msgstr "PL"
  54 +msgid " i krojem pisma"
  55 +msgstr "-based motive and"
  56 +
  57 +#: common/templates/base.html:82
  58 +msgid "."
  59 +msgstr " font."
41 60  
42   -#: common/templates/dash.html:9
  61 +#: common/templates/dash.html:8
43 62 msgid "Słownik walencyjny <i>Walenty</i>"
44 63 msgstr "<i>Walenty</i> valence dictionary"
45 64  
... ... @@ -47,31 +66,39 @@ msgstr &quot;&lt;i&gt;Walenty&lt;/i&gt; valence dictionary&quot;
47 66 msgid "Przeglądaj słownik"
48 67 msgstr "Browse the dictionary"
49 68  
50   -#: common/templates/dash.html:11
51   -msgid "Tu będą podstawowe informacje o słowniku."
52   -msgstr "..."
53   -
54   -#: common/templates/dash.html:17
  69 +#: common/templates/dash.html:15
55 70 msgid "Autorzy i licencja"
56 71 msgstr "Authors and licence"
57 72  
58 73 #: common/templates/dash.html:18
59   -msgid "Tu będzie informacja o autorach i licencji."
60   -msgstr "..."
  74 +msgid "Autorzy formatu słownika"
  75 +msgstr "The format of the dictionary was devised by"
  76 +
  77 +#: common/templates/dash.html:30
  78 +msgid "Dane są dostępne na"
  79 +msgstr "The data are available under a"
  80 +
  81 +#: common/templates/dash.html:30
  82 +msgid "licencji CC BY-SA"
  83 +msgstr "CC BY-SA license"
61 84  
62   -#: common/templates/dash.html:24
63   -msgid "Bibliografia"
64   -msgstr "Bibliography"
  85 +#: common/templates/dash.html:37
  86 +msgid "Cytowanie <i>Walentego</i>"
  87 +msgstr "Citing <i>Walenty</i>"
65 88  
66   -#: common/templates/dash.html:25
67   -msgid "Tu będzie lista publikacji i informacja, jak cytować Walentego."
68   -msgstr "..."
  89 +#: common/templates/dash.html:53
  90 +msgid "Pozostałe publikacje"
  91 +msgstr "Other publications"
  92 +
  93 +#: dictionary_statistics/templates/dictionary_statistics.html:7
  94 +msgid "Statystyki"
  95 +msgstr "Statistics"
69 96  
70 97 #: download/templates/download.html:6
71 98 msgid "Pobieranie"
72 99 msgstr "Download"
73 100  
74   -#: entries/autocompletes.py:27 entries/views.py:393
  101 +#: entries/autocompletes.py:27 entries/views.py:438
75 102 msgid "definicja:"
76 103 msgstr "definition:"
77 104  
... ... @@ -131,15 +158,15 @@ msgstr &quot;!&amp; operator doesn’t allow nested expressions: %(expr)s.&quot;
131 158 msgid "Niepoprawne wyrażenie: %(msg)s."
132 159 msgstr "Invalid expression: %(msg)s."
133 160  
134   -#: entries/form_fields/specialised_fields.py:44 entries/forms.py:515
135   -msgid "Typ frazeologizmu"
136   -msgstr "Phraseologism type"
137   -
138 161 #: entries/form_fields/specialised_fields.py:44
  162 +msgid "Typ frazy zleksykalizowanej"
  163 +msgstr "Lexicalised phrase type"
  164 +
  165 +#: entries/form_fields/specialised_fields.py:44 entries/forms.py:521
139 166 msgid "Typ frazy"
140 167 msgstr "Phrase type"
141 168  
142   -#: entries/form_fields/specialised_fields.py:51 entries/forms.py:603
  169 +#: entries/form_fields/specialised_fields.py:51 entries/forms.py:609
143 170 msgid "wybierz"
144 171 msgstr "choose"
145 172  
... ... @@ -195,286 +222,281 @@ msgstr &quot;Add&quot;
195 222 msgid "Schemat"
196 223 msgstr "Schema"
197 224  
198   -#: entries/forms.py:145 entries/forms.py:449 entries/forms.py:614
199   -#: entries/forms.py:733 entries/forms.py:735 entries/forms.py:737
200   -#: entries/forms.py:739
201   -msgid "Fraza"
202   -msgstr "Phrase"
203   -
204   -#: entries/forms.py:150
  225 +#: entries/forms.py:151
205 226 msgid "Rama"
206 227 msgstr "Frame"
207 228  
208   -#: entries/forms.py:156
  229 +#: entries/forms.py:157
209 230 msgid "Własności hasła"
210 231 msgstr "Entry properties"
211 232  
212   -#: entries/forms.py:157
  233 +#: entries/forms.py:158
213 234 msgid "Własności składniowe"
214 235 msgstr "Syntactic properties"
215 236  
216   -#: entries/forms.py:158
  237 +#: entries/forms.py:159
217 238 msgid "Własności semantyczne"
218 239 msgstr "Semantic properties"
219 240  
220   -#: entries/forms.py:159
  241 +#: entries/forms.py:160 entries/forms.py:242
221 242 msgid "Filtruj"
222 243 msgstr "Filter"
223 244  
224   -#: entries/forms.py:160
  245 +#: entries/forms.py:161 entries/forms.py:243
225 246 msgid "Wyczyść"
226 247 msgstr "Reset"
227 248  
228   -#: entries/forms.py:166 entries/forms.py:465 entries/forms.py:471
229   -#: entries/forms.py:510 entries/templates/entries_list.html:6
  249 +#: entries/forms.py:167 entries/forms.py:471 entries/forms.py:477
  250 +#: entries/forms.py:516 entries/templates/entries_list.html:6
230 251 msgid "Lemat"
231 252 msgstr "Lemma"
232 253  
233   -#: entries/forms.py:172
  254 +#: entries/forms.py:173
234 255 msgid "Część mowy"
235 256 msgstr "Part of speech"
236 257  
237   -#: entries/forms.py:186
  258 +#: entries/forms.py:187
238 259 msgid "Liczba schematów"
239 260 msgstr "Number of schemata"
240 261  
241   -#: entries/forms.py:190
  262 +#: entries/forms.py:191
242 263 msgid "Liczba ram"
243 264 msgstr "Number of frames"
244 265  
245   -#: entries/forms.py:195
  266 +#: entries/forms.py:196
246 267 msgid "Typ frazy występujący w haśle."
247 268 msgstr "Phrase type occurring in the entry."
248 269  
249   -#: entries/forms.py:196
  270 +#: entries/forms.py:197
250 271 msgid "Ukryj niepasujące schematy"
251 272 msgstr "Hide non-matching schemata"
252 273  
253   -#: entries/forms.py:197
  274 +#: entries/forms.py:198
254 275 msgid "Ukryj niepasujące ramy"
255 276 msgstr "Hide non-matching frames"
256 277  
257   -#: entries/forms.py:237
  278 +#: entries/forms.py:238
258 279 msgid "Zwiń"
259 280 msgstr "Collapse"
260 281  
261   -#: entries/forms.py:237
  282 +#: entries/forms.py:238
262 283 msgid "Usuń"
263 284 msgstr "Remove"
264 285  
265   -#: entries/forms.py:285 entries/forms.py:771
  286 +#: entries/forms.py:291 entries/forms.py:777
266 287 msgid "Zaneguj"
267 288 msgstr "Negate"
268 289  
269   -#: entries/forms.py:300
  290 +#: entries/forms.py:306
270 291 msgid "Schemat składniowy"
271 292 msgstr "Syntactic schema"
272 293  
273   -#: entries/forms.py:306
  294 +#: entries/forms.py:312
274 295 msgid "Opinia o schemacie"
275 296 msgstr "Schema opinion"
276 297  
277   -#: entries/forms.py:318
  298 +#: entries/forms.py:324
278 299 msgid "Typ"
279 300 msgstr "Type"
280 301  
281   -#: entries/forms.py:320
  302 +#: entries/forms.py:326
282 303 msgid "zwykły"
283 304 msgstr "ordinary"
284 305  
285   -#: entries/forms.py:321
  306 +#: entries/forms.py:327
286 307 msgid "frazeologiczny"
287 308 msgstr "phraseological"
288 309  
289   -#: entries/forms.py:330
  310 +#: entries/forms.py:336
290 311 msgid "Zwrotność"
291 312 msgstr "Reflexiveness"
292 313  
293   -#: entries/forms.py:341
  314 +#: entries/forms.py:347
294 315 msgid "Negatywność"
295 316 msgstr "Negativity"
296 317  
297   -#: entries/forms.py:352
  318 +#: entries/forms.py:358
298 319 msgid "Predykatywność"
299 320 msgstr "Predicativity"
300 321  
301   -#: entries/forms.py:363 entries/polish_strings.py:80
  322 +#: entries/forms.py:369 entries/polish_strings.py:80
302 323 msgid "Aspekt"
303 324 msgstr "Aspect"
304 325  
305   -#: entries/forms.py:382
  326 +#: entries/forms.py:388
306 327 msgid "Liczba pozycyj"
307 328 msgstr "Number of positions"
308 329  
309   -#: entries/forms.py:397 entries/forms.py:609
  330 +#: entries/forms.py:403 entries/forms.py:615
310 331 msgid "Pozycja"
311 332 msgstr "Position"
312 333  
313   -#: entries/forms.py:413
  334 +#: entries/forms.py:419
314 335 msgid "Pozycja składniowa"
315 336 msgstr "Syntactic position"
316 337  
317   -#: entries/forms.py:419
  338 +#: entries/forms.py:425
318 339 msgid "Funkcja gramatyczna"
319 340 msgstr "Grammatical function"
320 341  
321   -#: entries/forms.py:429
  342 +#: entries/forms.py:435
322 343 msgid "Kontrola"
323 344 msgstr "Control"
324 345  
325   -#: entries/forms.py:439
  346 +#: entries/forms.py:445
326 347 msgid "Kontrola predykatywna"
327 348 msgstr "Predicative control"
328 349  
329   -#: entries/forms.py:448
  350 +#: entries/forms.py:454
330 351 msgid "Typ frazy występujący na pozycji."
331 352 msgstr "Phrase type occurring on the position."
332 353  
333   -#: entries/forms.py:485
334   -msgid "Frazeologizm"
335   -msgstr "Phraseologism"
  354 +#: entries/forms.py:455 entries/forms.py:620 entries/forms.py:739
  355 +#: entries/forms.py:741 entries/forms.py:743 entries/forms.py:745
  356 +msgid "Fraza"
  357 +msgstr "Phrase"
336 358  
337 359 #: entries/forms.py:491
  360 +msgid "Fraza zleksykalizowana"
  361 +msgstr "Lexicalised phrase"
  362 +
  363 +#: entries/forms.py:497
338 364 msgid "Wybór lematów"
339 365 msgstr "Lemma choice"
340 366  
341   -#: entries/forms.py:501
  367 +#: entries/forms.py:507
342 368 msgid "Łączenie lematów"
343 369 msgstr "Lemma joining"
344 370  
345   -#: entries/forms.py:514 entries/forms.py:792
346   -msgid "Typ składniowy frazeologizmu."
347   -msgstr ""
  371 +#: entries/forms.py:520 entries/forms.py:798
  372 +msgid "Typ składniowy frazy zleksykalizowanej."
  373 +msgstr "Syntactic type of lexicalised phrase."
348 374  
349   -#: entries/forms.py:537
  375 +#: entries/forms.py:543
350 376 msgid "Rama semantyczna"
351 377 msgstr "Semantic frame"
352 378  
353   -#: entries/forms.py:543 entries/templates/entry_display.html:47
  379 +#: entries/forms.py:549 entries/templates/entry_display.html:47
354 380 #: entries/templates/entry_display.html:71
355 381 #: entries/templates/entry_display.html:86
356 382 msgid "Opinia"
357 383 msgstr "Opinion"
358 384  
359   -#: entries/forms.py:553
  385 +#: entries/forms.py:559
360 386 msgid "Liczba argumentów"
361 387 msgstr "Number of arguments"
362 388  
363   -#: entries/forms.py:560
  389 +#: entries/forms.py:566
364 390 msgid "Liczba preferencyj selekcyjnych argumentu"
365 391 msgstr "Number of argument’s selectional preferences"
366 392  
367   -#: entries/forms.py:566
  393 +#: entries/forms.py:572
368 394 msgid "Argument"
369 395 msgstr "Argument"
370 396  
371   -#: entries/forms.py:582
  397 +#: entries/forms.py:588
372 398 msgid "Argument semantyczny"
373 399 msgstr "Semantic argument"
374 400  
375   -#: entries/forms.py:588
  401 +#: entries/forms.py:594
376 402 msgid "Rola"
377 403 msgstr "Role"
378 404  
379   -#: entries/forms.py:595
  405 +#: entries/forms.py:601
380 406 msgid "Atrybut roli"
381 407 msgstr "Role attribute"
382 408  
383   -#: entries/forms.py:602 entries/forms.py:605
  409 +#: entries/forms.py:608 entries/forms.py:611
384 410 msgid "Preferencja selekcyjna"
385 411 msgstr "Selectional preference"
386 412  
387   -#: entries/forms.py:603
  413 +#: entries/forms.py:609
388 414 msgid "Predefiniowana grupa znaczeń"
389 415 msgstr "Predefined meanings class"
390 416  
391   -#: entries/forms.py:603
  417 +#: entries/forms.py:609
392 418 msgid "Wyrażona przez relację"
393 419 msgstr "Expressed by relation"
394 420  
395   -#: entries/forms.py:603
  421 +#: entries/forms.py:609
396 422 msgid "Wyrażona przez jednostkę leksykalną Słowosieci"
397 423 msgstr "Expressed by plWordnet lexical unit"
398 424  
399   -#: entries/forms.py:613
  425 +#: entries/forms.py:619
400 426 msgid "Typ frazy, przez którą może być realizowany argument."
401 427 msgstr ""
402 428  
403   -#: entries/forms.py:634
  429 +#: entries/forms.py:640
404 430 msgid "Preferencja predefiniowana"
405 431 msgstr "Predefined preference"
406 432  
407   -#: entries/forms.py:640
  433 +#: entries/forms.py:646
408 434 msgid "Predefiniowane"
409 435 msgstr "Predefined"
410 436  
411   -#: entries/forms.py:654
  437 +#: entries/forms.py:660
412 438 msgid "Preferencja – relacja"
413 439 msgstr "Relational preference"
414 440  
415   -#: entries/forms.py:660
  441 +#: entries/forms.py:666
416 442 msgid "Relacja"
417 443 msgstr "Relation"
418 444  
419   -#: entries/forms.py:671
  445 +#: entries/forms.py:677
420 446 msgid "Do: rola"
421 447 msgstr "To: role"
422 448  
423   -#: entries/forms.py:678
  449 +#: entries/forms.py:684
424 450 msgid "Do: atrybut"
425 451 msgstr "To: attribute"
426 452  
427   -#: entries/forms.py:690
  453 +#: entries/forms.py:696
428 454 msgid "Preferencja – Słowosieć"
429 455 msgstr "plWordnet preference"
430 456  
431   -#: entries/forms.py:696
  457 +#: entries/forms.py:702
432 458 msgid "Jednostka leksykalna"
433 459 msgstr "Lexical unit"
434 460  
435   -#: entries/forms.py:744
  461 +#: entries/forms.py:750
436 462 msgid "Fraza {}"
437 463 msgstr "{} phrase"
438 464  
439   -#: entries/forms.py:746 entries/polish_strings.py:134
440   -msgid "frazeologizm"
441   -msgstr "phraseologism"
  465 +#: entries/forms.py:752 entries/phrase_descriptions/descriptions.py:124
  466 +msgid "zleksykalizowana"
  467 +msgstr "lexicalised"
442 468  
443   -#: entries/forms.py:782
  469 +#: entries/forms.py:788
444 470 msgid "Realizacja składniowa frazy."
445 471 msgstr "Syntactic realisation of the phrase."
446 472  
447   -#: entries/forms.py:786
448   -msgid "Fraza składowa frazeologizmu porównawczego."
449   -msgstr ""
450   -
451   -#: entries/forms.py:788
452   -msgid "Fraza realizująca frazeologizm."
453   -msgstr ""
  473 +#: entries/forms.py:792
  474 +msgid "Fraza składowa zleksykalizowanej konstrukcji porównawczej."
  475 +msgstr "Component phrase of lexicalised comparative construction."
454 476  
455   -#: entries/phrase_descriptions/descriptions.py:121
456   -msgid "frazeologizm będący "
457   -msgstr "a phraseologism "
  477 +#: entries/forms.py:794
  478 +msgid "Fraza zleksykalizowana."
  479 +msgstr "Lexicalised phrase."
458 480  
459   -#: entries/phrase_descriptions/descriptions.py:121
460   -msgid " postaci"
461   -msgstr " of the form"
  481 +#: entries/phrase_descriptions/descriptions.py:124
  482 +msgid "postaci"
  483 +msgstr "of the form"
462 484  
463   -#: entries/phrase_descriptions/descriptions.py:202
  485 +#: entries/phrase_descriptions/descriptions.py:205
464 486 msgid " z dopuszczalną realizacją: "
465 487 msgstr " with possible realisation: "
466 488  
467   -#: entries/phrase_descriptions/descriptions.py:204
  489 +#: entries/phrase_descriptions/descriptions.py:207
468 490 msgid " z dopuszczalnymi realizacjami: "
469 491 msgstr " with possible realisations: "
470 492  
471   -#: entries/phrase_descriptions/descriptions.py:227
  493 +#: entries/phrase_descriptions/descriptions.py:230
472 494 #, python-brace-format
473   -msgid "frazeologizm w postaci {phrase} zamrożony w postaci <i>{phraseo}</i>"
474   -msgstr "{phrase} phraseologism frozen in the form <i>{phraseo}</i>"
  495 +msgid "zleksykalizowana {phrase} zamrożona w postaci <i>{phraseo}</i>"
  496 +msgstr "lexicalised {phrase} frozen in the form <i>{phraseo}</i>"
475 497  
476 498 #: entries/phrase_descriptions/polish_strings.py:9
477   -#: entries/phrase_descriptions/polish_strings.py:337
  499 +#: entries/phrase_descriptions/polish_strings.py:336
478 500 #: entries/polish_strings.py:53
479 501 msgid "podmiot"
480 502 msgstr "subject"
... ... @@ -559,8 +581,8 @@ msgstr &quot;&quot;
559 581  
560 582 #: entries/phrase_descriptions/polish_strings.py:50
561 583 msgid ""
562   -"przypadku uzgadniającym (z nadrzędnikiem rzeczownikowym w wypadku apozycji "
563   -"lub podrzędnikiem przymiotnikowym)"
  584 +"przypadku uzgodnionym (z nadrzędnikiem rzeczownikowym w wypadku apozycji lub "
  585 +"podrzędnikiem przymiotnikowym)"
564 586 msgstr ""
565 587 "agreeing (with nominal head in apposition constructions or adjectival "
566 588 "dependent)"
... ... @@ -574,7 +596,7 @@ msgid &quot;&quot;
574 596 msgstr ""
575 597  
576 598 #: entries/phrase_descriptions/polish_strings.py:56
577   -msgid "przypadku uzgadniającym z nadrzędnikiem rzeczownikowym"
  599 +msgid "przypadku uzgodnionym z nadrzędnikiem rzeczownikowym"
578 600 msgstr "agreeing (with nominal head)"
579 601  
580 602 #. Translators: fraza, rzeczownikowa
... ... @@ -642,20 +664,24 @@ msgstr &quot;postprepositional dative&quot;
642 664 #. Translators: fraza, bezokolicznikowa
643 665 #: entries/phrase_descriptions/polish_strings.py:101
644 666 #, python-format, python-brace-format
645   -msgid "{aspect} %(a1)s %(a2)s"
646   -msgstr "{aspect} %(a2)s %(a1)s"
  667 +msgid "%(a1)s %(a2)s {aspect}"
  668 +msgstr "%(a2)s %(a1)s with {aspect} aspect"
647 669  
648 670 #: entries/phrase_descriptions/polish_strings.py:105
649 671 #: entries/phrase_descriptions/polish_strings.py:106
650   -#: entries/phrase_descriptions/polish_strings.py:107
651   -#: entries/phrase_descriptions/polish_strings.py:296
  672 +#: entries/phrase_descriptions/polish_strings.py:124
  673 +#: entries/phrase_descriptions/polish_strings.py:295
652 674 #, python-format
653 675 msgid "%(a1)s"
654 676 msgstr "%(a1)s"
655 677  
  678 +#: entries/phrase_descriptions/polish_strings.py:107
  679 +msgid "o dowolnym aspekcie"
  680 +msgstr "any"
  681 +
656 682 #. Translators: fraza, zdaniowa
657 683 #: entries/phrase_descriptions/polish_strings.py:114
658   -#: entries/phrase_descriptions/polish_strings.py:140
  684 +#: entries/phrase_descriptions/polish_strings.py:139
659 685 #, python-format, python-brace-format
660 686 msgid "%(a1)s %(a2)s {typ}"
661 687 msgstr "%(a2)s %(a1)s {typ}"
... ... @@ -683,36 +709,30 @@ msgstr &quot;&quot;
683 709 #. Translators: zależna, wprowadzana
684 710 #: entries/phrase_descriptions/polish_strings.py:123
685 711 #, python-format
686   -msgid "pytajno-%(a1)s %(a2)s przez odpowiedni zaimek pytajny"
  712 +msgid "pytajno%(a1)s %(a2)s przez odpowiedni element pytajny"
687 713 msgstr ""
688   -"interrogative-%(a1)s %(a2)s introducted by appropriate interrogative pronoun"
689   -
690   -#. Translators: względna, wprowadzana
691   -#: entries/phrase_descriptions/polish_strings.py:125
692   -#, python-format
693   -msgid "%(a1)s %(a2)s przez odpowiedni zaimek względny"
694   -msgstr "%(a1)s, %(a2)s by appropriate relative pronoun"
  714 +"interrogative-%(a1)s %(a2)s introducted by appropriate interrogative element"
695 715  
696 716 #. Translators: zależna, wprowadzana
697   -#: entries/phrase_descriptions/polish_strings.py:127
  717 +#: entries/phrase_descriptions/polish_strings.py:126
698 718 #, python-format, python-brace-format
699   -msgid "pytajno-%(a1)s %(a2)s przez <i>{conj}</i>"
  719 +msgid "pytajno%(a1)s %(a2)s przez <i>{conj}</i>"
700 720 msgstr "interrogative-%(a1)s, %(a2)s introducted by <i>{conj}</i>"
701 721  
702 722 #. Translators: względna, wprowadzana
703   -#: entries/phrase_descriptions/polish_strings.py:129
  723 +#: entries/phrase_descriptions/polish_strings.py:128
704 724 #, python-format, python-brace-format
705 725 msgid "%(a1)s %(a2)s przez <i>{conj}</i>"
706 726 msgstr "%(a1)s, %(a2)s by <i>{conj}</i>"
707 727  
708 728 #. Translators: wprowadzana
709   -#: entries/phrase_descriptions/polish_strings.py:135
  729 +#: entries/phrase_descriptions/polish_strings.py:134
710 730 #, python-format, python-brace-format
711 731 msgid "%(a1)s przez spójnik podrzędny <i>{conj}</i>"
712 732 msgstr "%(a1)s by <i>{conj}</i> subordinating conjunction"
713 733  
714 734 #. Translators: wprowadzana
715   -#: entries/phrase_descriptions/polish_strings.py:158
  735 +#: entries/phrase_descriptions/polish_strings.py:157
716 736 #, python-format, python-brace-format
717 737 msgid ""
718 738 "%(a1)s przez <i>{to}, gdy</i> bądź <i>{to}, gdyby</i> w trybie "
... ... @@ -720,7 +740,7 @@ msgid &quot;&quot;
720 740 msgstr "%(a1)s by <i>{to}, gdy</i> or <i>{to}, gdyby</i> in conditional mood"
721 741  
722 742 #. Translators: wprowadzana
723   -#: entries/phrase_descriptions/polish_strings.py:160
  743 +#: entries/phrase_descriptions/polish_strings.py:159
724 744 #, python-format, python-brace-format
725 745 msgid ""
726 746 "%(a1)s przez <i>{to}, że</i> bądź dodatkowo <i>{to}, żeby</i> w "
... ... @@ -730,44 +750,41 @@ msgstr &quot;&quot;
730 750 "constructions"
731 751  
732 752 #. Translators: zależna, wprowadzana
733   -#: entries/phrase_descriptions/polish_strings.py:162
  753 +#: entries/phrase_descriptions/polish_strings.py:161
734 754 #, python-format, python-brace-format
735 755 msgid ""
736   -"pytajno-%(a1)s %(a2)s przez <i>{to}, co (czy, ile, kto)</i> lub dowolny inny "
737   -"zaimek pytajny"
  756 +"pytajno%(a1)s %(a2)s przez <i>{to}, co/czy/ile/kto/…</i> lub dowolny inny "
  757 +"element pytajny"
738 758 msgstr ""
739   -"interrogative-%(a1)s, %(a2)s by <i>{to}, co (czy, ile, kto)</i> or any other "
740   -"interrogative pronoun"
  759 +"interrogative-%(a1)s, %(a2)s by <i>{to}, co/czy/ile/kto/…</i> or any other "
  760 +"interrogative element"
741 761  
742 762 #. Translators: względna, wprowadzana
743   -#: entries/phrase_descriptions/polish_strings.py:164
  763 +#: entries/phrase_descriptions/polish_strings.py:163
744 764 #, python-format, python-brace-format
745   -msgid ""
746   -"%(a1)s %(a2)s przez <i>{to}, co (gdzie, kto)</i> lub dowolny inny zaimek "
747   -"względny"
748   -msgstr ""
749   -"%(a1)s, %(a2)s by <i>{to}, co (gdzie, kto)</i> or any other relative pronoun"
  765 +msgid "%(a1)s %(a2)s przez <i>{to}, co/gdzie/kto/…</i>"
  766 +msgstr "%(a1)s, %(a2)s by <i>{to}, co/gdzie/kto/…</i>"
750 767  
751 768 #. Translators: zależna, wprowadzana
752   -#: entries/phrase_descriptions/polish_strings.py:166
  769 +#: entries/phrase_descriptions/polish_strings.py:165
753 770 #, python-format, python-brace-format
754   -msgid "pytajno-%(a1)s %(a2)s przez <i>{to}, {conj}</i>"
  771 +msgid "pytajno%(a1)s %(a2)s przez <i>{to}, {conj}</i>"
755 772 msgstr "interrogative-%(a1)s, %(a2)s by <i>{to}, {conj}</i>"
756 773  
757 774 #. Translators: względna, wprowadzana
758   -#: entries/phrase_descriptions/polish_strings.py:168
  775 +#: entries/phrase_descriptions/polish_strings.py:167
759 776 #, python-format, python-brace-format
760 777 msgid "%(a1)s %(a2)s przez <i>{to}, {conj}</i>"
761 778 msgstr "%(a1)s, %(a2)s by <i>{to}, {conj}</i>"
762 779  
763 780 #. Translators: wprowadzana
764   -#: entries/phrase_descriptions/polish_strings.py:173
  781 +#: entries/phrase_descriptions/polish_strings.py:172
765 782 #, python-format, python-brace-format
766 783 msgid "%(a1)s przez <i>{to}, {conj}</i>"
767 784 msgstr "%(a1)s by <i>{to}, {conj}</i>"
768 785  
769 786 #. Translators: wprowadzana
770   -#: entries/phrase_descriptions/polish_strings.py:178
  787 +#: entries/phrase_descriptions/polish_strings.py:177
771 788 #, python-format, python-brace-format
772 789 msgid ""
773 790 "%(a1)s przez <i>{prep} {to}, gdy</i> bądź <i>{prep} {to}, gdyby</i> w trybie "
... ... @@ -777,7 +794,7 @@ msgstr &quot;&quot;
777 794 "conditional mood"
778 795  
779 796 #. Translators: wprowadzana
780   -#: entries/phrase_descriptions/polish_strings.py:180
  797 +#: entries/phrase_descriptions/polish_strings.py:179
781 798 #, python-format, python-brace-format
782 799 msgid ""
783 800 "%(a1)s przez <i>{prep} {to}, że</i> bądź dodatkowo <i>{prep} {to}, żeby</i> "
... ... @@ -787,152 +804,148 @@ msgstr &quot;&quot;
787 804 "negated constructions"
788 805  
789 806 #. Translators: zależna, wprowadzana
790   -#: entries/phrase_descriptions/polish_strings.py:182
  807 +#: entries/phrase_descriptions/polish_strings.py:181
791 808 #, python-format, python-brace-format
792 809 msgid ""
793   -"pytajno-%(a1)s %(a2)s przez <i>{prep} {to}, co (czy, ile, kto)</i> lub "
794   -"dowolny inny zaimek pytajny"
  810 +"pytajno%(a1)s %(a2)s przez <i>{prep} {to}, co/czy/ile/kto/…</i> lub dowolny "
  811 +"inny element pytajny"
795 812 msgstr ""
796   -"interrogative-%(a1)s, %(a2)s by <i>{prep} {to}, co (czy, ile, kto)</i> or "
797   -"any other interrogative pronoun"
  813 +"interrogative-%(a1)s, %(a2)s by <i>{prep} {to}, co/czy/ile/kto/…</i> or any "
  814 +"other interrogative element"
798 815  
799 816 #. Translators: względna, wprowadzana
800   -#: entries/phrase_descriptions/polish_strings.py:184
  817 +#: entries/phrase_descriptions/polish_strings.py:183
801 818 #, python-format, python-brace-format
802   -msgid ""
803   -"%(a1)s %(a2)s przez <i>{prep} {to}, co (gdzie, kto)</i> lub dowolny inny "
804   -"zaimek względny"
805   -msgstr ""
806   -"%(a1)s, %(a2)s by <i>{prep} {to}, co (gdzie, kto)</i> or any other relative "
807   -"pronoun"
  819 +msgid "%(a1)s %(a2)s przez <i>{prep} {to}, co/gdzie/kto/…</i>"
  820 +msgstr "%(a1)s, %(a2)s by <i>{prep} {to}, co/gdzie/kto/…</i>"
808 821  
809 822 #. Translators: zależna, wprowadzana
810   -#: entries/phrase_descriptions/polish_strings.py:186
  823 +#: entries/phrase_descriptions/polish_strings.py:185
811 824 #, python-format, python-brace-format
812   -msgid "pytajno-%(a1)s %(a2)s przez <i>{prep} {to}, {conj}</i>"
  825 +msgid "pytajno%(a1)s %(a2)s przez <i>{prep} {to}, {conj}</i>"
813 826 msgstr "interrogative-%(a1)s, %(a2)s by <i>{prep} {to}, {conj}</i>"
814 827  
815 828 #. Translators: względna, wprowadzana
816   -#: entries/phrase_descriptions/polish_strings.py:188
  829 +#: entries/phrase_descriptions/polish_strings.py:187
817 830 #, python-format, python-brace-format
818 831 msgid "%(a1)s %(a2)s przez <i>{prep} {to}, {conj}</i>"
819 832 msgstr "%(a1)s, %(a2)s by <i>{prep} {to}, {conj}</i>"
820 833  
821 834 #. Translators: wprowadzana
822   -#: entries/phrase_descriptions/polish_strings.py:193
  835 +#: entries/phrase_descriptions/polish_strings.py:192
823 836 #, python-format, python-brace-format
824 837 msgid "%(a1)s przez <i>{prep} {to}, {conj}</i>"
825 838 msgstr "%(a1)s by <i>{prep} {to}, {conj}</i>"
826 839  
827   -#: entries/phrase_descriptions/polish_strings.py:199
  840 +#: entries/phrase_descriptions/polish_strings.py:198
828 841 #, python-format
829 842 msgctxt "fraza przysłówkowa lokatywna/ablatywna/..."
830 843 msgid "%(a1)s %(a2)s %(a3)s"
831 844 msgstr "%(a3)s %(a2)s %(a1)s"
832 845  
833   -#: entries/phrase_descriptions/polish_strings.py:201
834   -#: entries/phrase_descriptions/polish_strings.py:225
835   -#: entries/phrase_descriptions/polish_strings.py:240
  846 +#: entries/phrase_descriptions/polish_strings.py:200
  847 +#: entries/phrase_descriptions/polish_strings.py:224
  848 +#: entries/phrase_descriptions/polish_strings.py:239
836 849 #: entries/polish_strings.py:110
837 850 msgid "(miejsce)"
838 851 msgstr "(place)"
839 852  
840   -#: entries/phrase_descriptions/polish_strings.py:202
841   -#: entries/phrase_descriptions/polish_strings.py:226
842   -#: entries/phrase_descriptions/polish_strings.py:241
  853 +#: entries/phrase_descriptions/polish_strings.py:201
  854 +#: entries/phrase_descriptions/polish_strings.py:225
  855 +#: entries/phrase_descriptions/polish_strings.py:240
843 856 #: entries/polish_strings.py:111
844 857 msgid "(miejsce początkowe)"
845 858 msgstr "(start point)"
846 859  
847   -#: entries/phrase_descriptions/polish_strings.py:203
848   -#: entries/phrase_descriptions/polish_strings.py:227
849   -#: entries/phrase_descriptions/polish_strings.py:242
  860 +#: entries/phrase_descriptions/polish_strings.py:202
  861 +#: entries/phrase_descriptions/polish_strings.py:226
  862 +#: entries/phrase_descriptions/polish_strings.py:241
850 863 #: entries/polish_strings.py:112
851 864 msgid "(miejsce końcowe)"
852 865 msgstr "(end point)"
853 866  
854   -#: entries/phrase_descriptions/polish_strings.py:204
855   -#: entries/phrase_descriptions/polish_strings.py:228
856   -#: entries/phrase_descriptions/polish_strings.py:243
  867 +#: entries/phrase_descriptions/polish_strings.py:203
  868 +#: entries/phrase_descriptions/polish_strings.py:227
  869 +#: entries/phrase_descriptions/polish_strings.py:242
857 870 #: entries/polish_strings.py:113
858 871 msgid "(trasa)"
859 872 msgstr "(path)"
860 873  
861   -#: entries/phrase_descriptions/polish_strings.py:205
862   -#: entries/phrase_descriptions/polish_strings.py:229
863   -#: entries/phrase_descriptions/polish_strings.py:244
  874 +#: entries/phrase_descriptions/polish_strings.py:204
  875 +#: entries/phrase_descriptions/polish_strings.py:228
  876 +#: entries/phrase_descriptions/polish_strings.py:243
864 877 #: entries/polish_strings.py:114
865 878 msgid "(czasu)"
866 879 msgstr "(time)"
867 880  
868   -#: entries/phrase_descriptions/polish_strings.py:206
869   -#: entries/phrase_descriptions/polish_strings.py:230
870   -#: entries/phrase_descriptions/polish_strings.py:245
  881 +#: entries/phrase_descriptions/polish_strings.py:205
  882 +#: entries/phrase_descriptions/polish_strings.py:229
  883 +#: entries/phrase_descriptions/polish_strings.py:244
871 884 #: entries/polish_strings.py:115
872 885 msgid "(trwania)"
873 886 msgstr "(duration)"
874 887  
875   -#: entries/phrase_descriptions/polish_strings.py:207
  888 +#: entries/phrase_descriptions/polish_strings.py:206
876 889 #, python-format
877 890 msgctxt "fraza przysłówkowa"
878 891 msgid "%(a1)s %(a2)s sposobu"
879 892 msgstr "%(a2)s %(a1)s describing manner"
880 893  
881   -#: entries/phrase_descriptions/polish_strings.py:208
882   -#: entries/phrase_descriptions/polish_strings.py:233
883   -#: entries/phrase_descriptions/polish_strings.py:247
  894 +#: entries/phrase_descriptions/polish_strings.py:207
  895 +#: entries/phrase_descriptions/polish_strings.py:232
  896 +#: entries/phrase_descriptions/polish_strings.py:246
884 897 #: entries/polish_strings.py:117
885 898 msgid "(przyczyny)"
886 899 msgstr "(reason)"
887 900  
888   -#: entries/phrase_descriptions/polish_strings.py:209
889   -#: entries/phrase_descriptions/polish_strings.py:234
890   -#: entries/phrase_descriptions/polish_strings.py:248
  901 +#: entries/phrase_descriptions/polish_strings.py:208
  902 +#: entries/phrase_descriptions/polish_strings.py:233
  903 +#: entries/phrase_descriptions/polish_strings.py:247
891 904 #: entries/polish_strings.py:118
892 905 msgid "(celu)"
893 906 msgstr "(goal)"
894 907  
895   -#: entries/phrase_descriptions/polish_strings.py:210
896   -#: entries/phrase_descriptions/polish_strings.py:235
897   -#: entries/phrase_descriptions/polish_strings.py:249
  908 +#: entries/phrase_descriptions/polish_strings.py:209
  909 +#: entries/phrase_descriptions/polish_strings.py:234
  910 +#: entries/phrase_descriptions/polish_strings.py:248
898 911 #: entries/polish_strings.py:119
899 912 msgid "(narzędzie)"
900 913 msgstr "(tool)"
901 914  
902 915 #. Translators: fraza, lokatywna/ablatywna/...
903 916 #. Translators: mowa, niezależna
904   -#: entries/phrase_descriptions/polish_strings.py:223
905   -#: entries/phrase_descriptions/polish_strings.py:271
  917 +#: entries/phrase_descriptions/polish_strings.py:222
  918 +#: entries/phrase_descriptions/polish_strings.py:270
906 919 #, python-format
907 920 msgid "%(a1)s %(a2)s"
908 921 msgstr "%(a2)s %(a1)s"
909 922  
910 923 #. Translators: fraza
911   -#: entries/phrase_descriptions/polish_strings.py:232
  924 +#: entries/phrase_descriptions/polish_strings.py:231
912 925 #, python-format
913 926 msgid "%(a1)s sposobu"
914 927 msgstr "%(a1)s describing manner"
915 928  
916   -#: entries/phrase_descriptions/polish_strings.py:238
  929 +#: entries/phrase_descriptions/polish_strings.py:237
917 930 #, python-format
918 931 msgctxt "dowolna fraza lokatywna/ablatywna/..."
919 932 msgid "%(a1)s %(a2)s %(a3)s"
920 933 msgstr "%(a1)s %(a3)s %(a2)s"
921 934  
922   -#: entries/phrase_descriptions/polish_strings.py:246
  935 +#: entries/phrase_descriptions/polish_strings.py:245
923 936 #, python-format
924 937 msgctxt "dowolna fraza"
925 938 msgid "%(a1)s %(a2)s sposobu"
926 939 msgstr "%(a1)s %(a2)s describing manner"
927 940  
928   -#. Translators: zaimki, przysłówkowe
929   -#: entries/phrase_descriptions/polish_strings.py:254
  941 +#. Translators: przysłówki
  942 +#: entries/phrase_descriptions/polish_strings.py:253
930 943 #, python-format
931   -msgid "wyłącznie %(a1)s %(a2)s <i>jak</i>, <i>tak</i>"
932   -msgstr "only <i>jak</i>, <i>tak</i> %(a2)s %(a1)s"
  944 +msgid "wyłącznie %(a1)s <i>jak</i>, <i>tak</i>"
  945 +msgstr "only <i>jak</i>, <i>tak</i> %(a1)s"
933 946  
934 947 #. Translators: fraza, przysłówkowa, fraza, konstrukcje, przysłówkowe
935   -#: entries/phrase_descriptions/polish_strings.py:258
  948 +#: entries/phrase_descriptions/polish_strings.py:257
936 949 #, python-format
937 950 msgid ""
938 951 "%(a1)s %(a2)s (%(a3)s z centrum przysłówkowym oraz %(a4)s przyimkowo-%(a5)s "
... ... @@ -942,13 +955,13 @@ msgstr &quot;&quot;
942 955 "like <i>na pewno</i>, <i>bez mała</i>)"
943 956  
944 957 #. Translators: fraza, porównawcza, wprowadzana
945   -#: entries/phrase_descriptions/polish_strings.py:262
  958 +#: entries/phrase_descriptions/polish_strings.py:261
946 959 #, python-format, python-brace-format
947 960 msgid "%(a1)s %(a2)s %(a3)s przez <i>{prep}</i>"
948 961 msgstr "%(a2)s %(a1)s %(a3)s by <i>{prep}</i>"
949 962  
950 963 #. Translators: fraza, niechromatyczna, specyficzna, fraza, realizowana
951   -#: entries/phrase_descriptions/polish_strings.py:266
  964 +#: entries/phrase_descriptions/polish_strings.py:265
952 965 #, python-format
953 966 msgid ""
954 967 "%(a1)s %(a2)s, czyli %(a3)s %(a4)s rzeczownikowa w przypadku strukturalnym, "
... ... @@ -960,7 +973,7 @@ msgstr &quot;&quot;
960 973 "uniquely "
961 974  
962 975 #. Translators: partykuła, realizująca
963   -#: entries/phrase_descriptions/polish_strings.py:275
  976 +#: entries/phrase_descriptions/polish_strings.py:274
964 977 #, python-format
965 978 msgid "%(a1)s <i>się</i> %(a2)s użycie zwrotne czasownika (<i>sam siebie</i>)"
966 979 msgstr ""
... ... @@ -968,7 +981,7 @@ msgstr &quot;&quot;
968 981 "i>)"
969 982  
970 983 #. Translators: partykuła, realizująca
971   -#: entries/phrase_descriptions/polish_strings.py:279
  984 +#: entries/phrase_descriptions/polish_strings.py:278
972 985 #, python-format
973 986 msgid ""
974 987 "%(a1)s <i>się</i> %(a2)s użycie wzajemnościowe czasownika (<i>siebie "
... ... @@ -978,7 +991,7 @@ msgstr &quot;&quot;
978 991 "each other</i>)"
979 992  
980 993 #. Translators: subject
981   -#: entries/phrase_descriptions/polish_strings.py:284
  994 +#: entries/phrase_descriptions/polish_strings.py:283
982 995 #, python-format
983 996 msgid ""
984 997 "%(a1)s czasownika wymagającego bezokolicznika, którego własności są tożsame "
... ... @@ -988,7 +1001,7 @@ msgstr &quot;&quot;
988 1001 "imposed by the infinitive, including no subject"
989 1002  
990 1003 #. Translators: fraza, posesywna, odpowiadająca
991   -#: entries/phrase_descriptions/polish_strings.py:288
  1004 +#: entries/phrase_descriptions/polish_strings.py:287
992 1005 #, python-format
993 1006 msgid ""
994 1007 "%(a1)s %(a2)s %(a3)s na pytanie <i>czyj?</i>, np. <i>mój</i>, <i>pański</i>, "
... ... @@ -998,7 +1011,7 @@ msgstr &quot;&quot;
998 1011 "i>, <i>Anny</i>"
999 1012  
1000 1013 #. Translators: fraza, rzeczownikowa, stosowana
1001   -#: entries/phrase_descriptions/polish_strings.py:293
  1014 +#: entries/phrase_descriptions/polish_strings.py:292
1002 1015 #, python-format
1003 1016 msgid ""
1004 1017 "%(a1)s przyimkowo-%(a2)s z przyimkiem <i>po</i> %(a3)s w konstrukcjach "
... ... @@ -1011,330 +1024,342 @@ msgstr &quot;&quot;
1011 1024 "locative case (<i>dać każdemu po jabłku</i>), but in the case of numeral "
1012 1025 "phrases, accusative case is used (<i>dać każdemu po dwa jabłka</i>)"
1013 1026  
1014   -#: entries/phrase_descriptions/polish_strings.py:315
  1027 +#: entries/phrase_descriptions/polish_strings.py:314
1015 1028 #: entries/polish_strings.py:111
1016 1029 msgid "ablatywna"
1017 1030 msgstr "ablative"
1018 1031  
1019   -#: entries/phrase_descriptions/polish_strings.py:315
  1032 +#: entries/phrase_descriptions/polish_strings.py:314
1020 1033 msgid "ablatywnej"
1021 1034 msgstr "ablative"
1022 1035  
1023   -#: entries/phrase_descriptions/polish_strings.py:315
  1036 +#: entries/phrase_descriptions/polish_strings.py:314
1024 1037 msgid "ablatywną"
1025 1038 msgstr "ablative"
1026 1039  
1027   -#: entries/phrase_descriptions/polish_strings.py:316
  1040 +#: entries/phrase_descriptions/polish_strings.py:315
1028 1041 #: entries/polish_strings.py:112
1029 1042 msgid "adlatywna"
1030 1043 msgstr "adlative"
1031 1044  
1032   -#: entries/phrase_descriptions/polish_strings.py:316
  1045 +#: entries/phrase_descriptions/polish_strings.py:315
1033 1046 msgid "adlatywnej"
1034 1047 msgstr "adlative"
1035 1048  
1036   -#: entries/phrase_descriptions/polish_strings.py:316
  1049 +#: entries/phrase_descriptions/polish_strings.py:315
1037 1050 msgid "adlatywną"
1038 1051 msgstr "adlative"
1039 1052  
1040   -#: entries/phrase_descriptions/polish_strings.py:317
  1053 +#: entries/phrase_descriptions/polish_strings.py:316
1041 1054 #: entries/polish_strings.py:133
1042 1055 msgid "bezokolicznikowa"
1043 1056 msgstr "infinitival"
1044 1057  
1045   -#: entries/phrase_descriptions/polish_strings.py:317
  1058 +#: entries/phrase_descriptions/polish_strings.py:316
1046 1059 msgid "bezokolicznikowej"
1047 1060 msgstr "infinitival"
1048 1061  
1049   -#: entries/phrase_descriptions/polish_strings.py:317
  1062 +#: entries/phrase_descriptions/polish_strings.py:316
1050 1063 msgid "bezokolicznikową"
1051 1064 msgstr "infinitival"
1052 1065  
1053   -#: entries/phrase_descriptions/polish_strings.py:318
  1066 +#: entries/phrase_descriptions/polish_strings.py:317
1054 1067 #: entries/polish_strings.py:118
1055 1068 msgid "destynacyjna"
1056 1069 msgstr "destinative"
1057 1070  
1058   -#: entries/phrase_descriptions/polish_strings.py:318
  1071 +#: entries/phrase_descriptions/polish_strings.py:317
1059 1072 msgid "destynacyjnej"
1060 1073 msgstr "destinative"
1061 1074  
1062   -#: entries/phrase_descriptions/polish_strings.py:318
  1075 +#: entries/phrase_descriptions/polish_strings.py:317
1063 1076 msgid "destynacyjną"
1064 1077 msgstr "destinative"
1065 1078  
1066   -#: entries/phrase_descriptions/polish_strings.py:319
  1079 +#: entries/phrase_descriptions/polish_strings.py:318
1067 1080 msgid "dokonana"
1068   -msgstr "perfect"
  1081 +msgstr "perfective"
1069 1082  
1070   -#: entries/phrase_descriptions/polish_strings.py:319
  1083 +#: entries/phrase_descriptions/polish_strings.py:318
1071 1084 msgid "dokonanej"
1072   -msgstr "perfect"
  1085 +msgstr "perfective"
1073 1086  
1074   -#: entries/phrase_descriptions/polish_strings.py:319
  1087 +#: entries/phrase_descriptions/polish_strings.py:318
1075 1088 msgid "dokonaną"
1076   -msgstr "perfect"
  1089 +msgstr "perfective"
1077 1090  
1078   -#: entries/phrase_descriptions/polish_strings.py:320
  1091 +#: entries/phrase_descriptions/polish_strings.py:319
1079 1092 msgid "dowolna"
1080 1093 msgstr "any"
1081 1094  
1082   -#: entries/phrase_descriptions/polish_strings.py:320
  1095 +#: entries/phrase_descriptions/polish_strings.py:319
1083 1096 msgid "dowolnej"
1084 1097 msgstr "any"
1085 1098  
1086   -#: entries/phrase_descriptions/polish_strings.py:320
  1099 +#: entries/phrase_descriptions/polish_strings.py:319
1087 1100 msgid "dowolną"
1088 1101 msgstr "any"
1089 1102  
1090   -#: entries/phrase_descriptions/polish_strings.py:321
  1103 +#: entries/phrase_descriptions/polish_strings.py:320
1091 1104 #: entries/polish_strings.py:115
1092 1105 msgid "duratywna"
1093 1106 msgstr "durative"
1094 1107  
1095   -#: entries/phrase_descriptions/polish_strings.py:321
  1108 +#: entries/phrase_descriptions/polish_strings.py:320
1096 1109 msgid "duratywnej"
1097 1110 msgstr "durative"
1098 1111  
1099   -#: entries/phrase_descriptions/polish_strings.py:321
  1112 +#: entries/phrase_descriptions/polish_strings.py:320
1100 1113 msgid "duratywną"
1101 1114 msgstr "durative"
1102 1115  
1103   -#: entries/phrase_descriptions/polish_strings.py:322
  1116 +#: entries/phrase_descriptions/polish_strings.py:321
1104 1117 msgid "fraza"
1105 1118 msgstr "phrase"
1106 1119  
1107   -#: entries/phrase_descriptions/polish_strings.py:322
  1120 +#: entries/phrase_descriptions/polish_strings.py:321
1108 1121 msgid "frazy"
1109 1122 msgstr "phrase"
1110 1123  
1111   -#: entries/phrase_descriptions/polish_strings.py:322
  1124 +#: entries/phrase_descriptions/polish_strings.py:321
1112 1125 msgid "frazą"
1113 1126 msgstr "phrase"
1114 1127  
1115   -#: entries/phrase_descriptions/polish_strings.py:323
  1128 +#: entries/phrase_descriptions/polish_strings.py:322
1116 1129 #: entries/polish_strings.py:119
1117 1130 msgid "instrumentalna"
1118 1131 msgstr "instrumental"
1119 1132  
1120   -#: entries/phrase_descriptions/polish_strings.py:323
  1133 +#: entries/phrase_descriptions/polish_strings.py:322
1121 1134 msgid "instrumentalnej"
1122 1135 msgstr "instrumental"
1123 1136  
1124   -#: entries/phrase_descriptions/polish_strings.py:323
  1137 +#: entries/phrase_descriptions/polish_strings.py:322
1125 1138 msgid "instrumentalną"
1126 1139 msgstr "instrumental"
1127 1140  
1128   -#: entries/phrase_descriptions/polish_strings.py:324
  1141 +#: entries/phrase_descriptions/polish_strings.py:323
1129 1142 #: entries/polish_strings.py:141
1130 1143 msgid "imiesłowowa"
1131 1144 msgstr "participal"
1132 1145  
1133   -#: entries/phrase_descriptions/polish_strings.py:324
  1146 +#: entries/phrase_descriptions/polish_strings.py:323
1134 1147 msgid "imiesłowowej"
1135 1148 msgstr "participal"
1136 1149  
1137   -#: entries/phrase_descriptions/polish_strings.py:324
  1150 +#: entries/phrase_descriptions/polish_strings.py:323
1138 1151 msgid "imiesłowową"
1139 1152 msgstr "participal"
1140 1153  
1141   -#: entries/phrase_descriptions/polish_strings.py:325
  1154 +#: entries/phrase_descriptions/polish_strings.py:324
1142 1155 #: entries/polish_strings.py:117
1143 1156 msgid "kauzatywna"
1144 1157 msgstr "causative"
1145 1158  
1146   -#: entries/phrase_descriptions/polish_strings.py:325
  1159 +#: entries/phrase_descriptions/polish_strings.py:324
1147 1160 msgid "kauzatywnej"
1148 1161 msgstr "causative"
1149 1162  
1150   -#: entries/phrase_descriptions/polish_strings.py:325
  1163 +#: entries/phrase_descriptions/polish_strings.py:324
1151 1164 msgid "kauzatywną"
1152 1165 msgstr "causative"
1153 1166  
1154   -#: entries/phrase_descriptions/polish_strings.py:326
  1167 +#: entries/phrase_descriptions/polish_strings.py:325
1155 1168 msgid "konstrukcje"
1156 1169 msgstr "constructions"
1157 1170  
1158   -#: entries/phrase_descriptions/polish_strings.py:326
  1171 +#: entries/phrase_descriptions/polish_strings.py:325
1159 1172 msgid "konstrukcyj"
1160 1173 msgstr "constructions"
1161 1174  
1162   -#: entries/phrase_descriptions/polish_strings.py:326
  1175 +#: entries/phrase_descriptions/polish_strings.py:325
1163 1176 msgid "konstrukcjami"
1164 1177 msgstr "constructions"
1165 1178  
1166   -#: entries/phrase_descriptions/polish_strings.py:327
  1179 +#: entries/phrase_descriptions/polish_strings.py:326
1167 1180 #: entries/polish_strings.py:138
1168 1181 msgid "liczebnikowa"
1169 1182 msgstr "numeral"
1170 1183  
1171   -#: entries/phrase_descriptions/polish_strings.py:327
  1184 +#: entries/phrase_descriptions/polish_strings.py:326
1172 1185 msgid "liczebnikowej"
1173 1186 msgstr "numeral"
1174 1187  
1175   -#: entries/phrase_descriptions/polish_strings.py:327
  1188 +#: entries/phrase_descriptions/polish_strings.py:326
1176 1189 msgid "liczebnikową"
1177 1190 msgstr "numeral"
1178 1191  
1179   -#: entries/phrase_descriptions/polish_strings.py:328
  1192 +#: entries/phrase_descriptions/polish_strings.py:327
1180 1193 #: entries/polish_strings.py:110
1181 1194 msgid "lokatywna"
1182 1195 msgstr "locative"
1183 1196  
1184   -#: entries/phrase_descriptions/polish_strings.py:328
  1197 +#: entries/phrase_descriptions/polish_strings.py:327
1185 1198 msgid "lokatywnej"
1186 1199 msgstr "locative"
1187 1200  
1188   -#: entries/phrase_descriptions/polish_strings.py:328
  1201 +#: entries/phrase_descriptions/polish_strings.py:327
1189 1202 msgid "lokatywną"
1190 1203 msgstr "locative"
1191 1204  
1192   -#: entries/phrase_descriptions/polish_strings.py:329
  1205 +#: entries/phrase_descriptions/polish_strings.py:328
1193 1206 msgid "mowa"
1194 1207 msgstr "speech"
1195 1208  
1196   -#: entries/phrase_descriptions/polish_strings.py:329
  1209 +#: entries/phrase_descriptions/polish_strings.py:328
1197 1210 msgid "mowy"
1198 1211 msgstr "speech"
1199 1212  
1200   -#: entries/phrase_descriptions/polish_strings.py:329
  1213 +#: entries/phrase_descriptions/polish_strings.py:328
1201 1214 msgid "mową"
1202 1215 msgstr "speech"
1203 1216  
1204   -#: entries/phrase_descriptions/polish_strings.py:330
  1217 +#: entries/phrase_descriptions/polish_strings.py:329
1205 1218 #: entries/polish_strings.py:136
1206 1219 msgid "niechromatyczna"
1207 1220 msgstr "nonchromatic"
1208 1221  
1209   -#: entries/phrase_descriptions/polish_strings.py:330
  1222 +#: entries/phrase_descriptions/polish_strings.py:329
1210 1223 msgid "niechromatycznej"
1211 1224 msgstr "nonchromatic"
1212 1225  
1213   -#: entries/phrase_descriptions/polish_strings.py:330
  1226 +#: entries/phrase_descriptions/polish_strings.py:329
1214 1227 msgid "niechromatyczną"
1215 1228 msgstr "nonchromatic"
1216 1229  
1217   -#: entries/phrase_descriptions/polish_strings.py:331
  1230 +#: entries/phrase_descriptions/polish_strings.py:330
1218 1231 msgid "niedokonana"
1219   -msgstr "imperfect"
  1232 +msgstr "imperfective"
1220 1233  
1221   -#: entries/phrase_descriptions/polish_strings.py:331
  1234 +#: entries/phrase_descriptions/polish_strings.py:330
1222 1235 msgid "niedokonanej"
1223   -msgstr "imperfect"
  1236 +msgstr "imperfective"
1224 1237  
1225   -#: entries/phrase_descriptions/polish_strings.py:331
  1238 +#: entries/phrase_descriptions/polish_strings.py:330
1226 1239 msgid "niedokonaną"
1227   -msgstr "imperfect"
  1240 +msgstr "imperfective"
1228 1241  
1229   -#: entries/phrase_descriptions/polish_strings.py:332
  1242 +#: entries/phrase_descriptions/polish_strings.py:331
1230 1243 msgid "niezależna"
1231 1244 msgstr "direct"
1232 1245  
1233   -#: entries/phrase_descriptions/polish_strings.py:332
  1246 +#: entries/phrase_descriptions/polish_strings.py:331
1234 1247 msgid "niezależnej"
1235 1248 msgstr "direct"
1236 1249  
1237   -#: entries/phrase_descriptions/polish_strings.py:332
  1250 +#: entries/phrase_descriptions/polish_strings.py:331
1238 1251 msgid "niezależną"
1239 1252 msgstr "direct"
1240 1253  
1241   -#: entries/phrase_descriptions/polish_strings.py:333
  1254 +#: entries/phrase_descriptions/polish_strings.py:332
1242 1255 msgid "odpowiadająca"
1243 1256 msgstr "answering"
1244 1257  
1245   -#: entries/phrase_descriptions/polish_strings.py:333
  1258 +#: entries/phrase_descriptions/polish_strings.py:332
1246 1259 msgid "odpowiadającej"
1247 1260 msgstr "answering"
1248 1261  
1249   -#: entries/phrase_descriptions/polish_strings.py:333
  1262 +#: entries/phrase_descriptions/polish_strings.py:332
1250 1263 msgid "odpowiadającą"
1251 1264 msgstr "answering"
1252 1265  
1253   -#: entries/phrase_descriptions/polish_strings.py:334
  1266 +#: entries/phrase_descriptions/polish_strings.py:333
1254 1267 msgid "odsłownikowa"
1255 1268 msgstr "gerundial"
1256 1269  
1257   -#: entries/phrase_descriptions/polish_strings.py:334
  1270 +#: entries/phrase_descriptions/polish_strings.py:333
1258 1271 msgid "odsłownikowej"
1259 1272 msgstr "gerundial"
1260 1273  
1261   -#: entries/phrase_descriptions/polish_strings.py:334
  1274 +#: entries/phrase_descriptions/polish_strings.py:333
1262 1275 msgid "odsłownikową"
1263 1276 msgstr "gerundial"
1264 1277  
1265   -#: entries/phrase_descriptions/polish_strings.py:335
  1278 +#: entries/phrase_descriptions/polish_strings.py:334
1266 1279 #: entries/polish_strings.py:148
1267 1280 msgid "partykuła"
1268 1281 msgstr "particle"
1269 1282  
1270   -#: entries/phrase_descriptions/polish_strings.py:335
  1283 +#: entries/phrase_descriptions/polish_strings.py:334
1271 1284 msgid "partykuły"
1272 1285 msgstr "particle"
1273 1286  
1274   -#: entries/phrase_descriptions/polish_strings.py:335
  1287 +#: entries/phrase_descriptions/polish_strings.py:334
1275 1288 msgid "partykułą"
1276 1289 msgstr "particle"
1277 1290  
1278   -#: entries/phrase_descriptions/polish_strings.py:336
  1291 +#: entries/phrase_descriptions/polish_strings.py:335
1279 1292 #: entries/polish_strings.py:113
1280 1293 msgid "perlatywna"
1281 1294 msgstr "perlative"
1282 1295  
1283   -#: entries/phrase_descriptions/polish_strings.py:336
  1296 +#: entries/phrase_descriptions/polish_strings.py:335
1284 1297 msgid "perlatywnej"
1285 1298 msgstr "perlative"
1286 1299  
1287   -#: entries/phrase_descriptions/polish_strings.py:336
  1300 +#: entries/phrase_descriptions/polish_strings.py:335
1288 1301 msgid "perlatywną"
1289 1302 msgstr "perlative"
1290 1303  
1291   -#: entries/phrase_descriptions/polish_strings.py:337
  1304 +#: entries/phrase_descriptions/polish_strings.py:336
1292 1305 msgid "podmiotu"
1293 1306 msgstr "subject"
1294 1307  
1295   -#: entries/phrase_descriptions/polish_strings.py:337
  1308 +#: entries/phrase_descriptions/polish_strings.py:336
1296 1309 msgid "podmiotem"
1297 1310 msgstr "subject"
1298 1311  
1299   -#: entries/phrase_descriptions/polish_strings.py:338
  1312 +#: entries/phrase_descriptions/polish_strings.py:337
1300 1313 #: entries/polish_strings.py:140
1301 1314 msgid "posesywna"
1302 1315 msgstr "possesive"
1303 1316  
1304   -#: entries/phrase_descriptions/polish_strings.py:338
  1317 +#: entries/phrase_descriptions/polish_strings.py:337
1305 1318 msgid "posesywnej"
1306 1319 msgstr "possesive"
1307 1320  
1308   -#: entries/phrase_descriptions/polish_strings.py:338
  1321 +#: entries/phrase_descriptions/polish_strings.py:337
1309 1322 msgid "posesywną"
1310 1323 msgstr "possesive"
1311 1324  
1312   -#: entries/phrase_descriptions/polish_strings.py:339
  1325 +#: entries/phrase_descriptions/polish_strings.py:338
1313 1326 #: entries/polish_strings.py:126
1314 1327 msgid "porównawcza"
1315 1328 msgstr "comparative"
1316 1329  
1317   -#: entries/phrase_descriptions/polish_strings.py:339
  1330 +#: entries/phrase_descriptions/polish_strings.py:338
1318 1331 msgid "porównawczej"
1319 1332 msgstr "comparative"
1320 1333  
1321   -#: entries/phrase_descriptions/polish_strings.py:339
  1334 +#: entries/phrase_descriptions/polish_strings.py:338
1322 1335 msgid "porównawczą"
1323 1336 msgstr "comparative"
1324 1337  
1325   -#: entries/phrase_descriptions/polish_strings.py:340
  1338 +#: entries/phrase_descriptions/polish_strings.py:339
1326 1339 #: entries/polish_strings.py:124
1327 1340 msgid "przymiotnikowa"
1328 1341 msgstr "adjectival"
1329 1342  
1330   -#: entries/phrase_descriptions/polish_strings.py:340
  1343 +#: entries/phrase_descriptions/polish_strings.py:339
1331 1344 msgid "przymiotnikowej"
1332 1345 msgstr "adjectival"
1333 1346  
1334   -#: entries/phrase_descriptions/polish_strings.py:340
  1347 +#: entries/phrase_descriptions/polish_strings.py:339
1335 1348 msgid "przymiotnikową"
1336 1349 msgstr "adjectival"
1337 1350  
  1351 +#: entries/phrase_descriptions/polish_strings.py:340
  1352 +msgid "przysłówki"
  1353 +msgstr "adverbs"
  1354 +
  1355 +#: entries/phrase_descriptions/polish_strings.py:340
  1356 +msgid "przysłówków"
  1357 +msgstr "adverbs"
  1358 +
  1359 +#: entries/phrase_descriptions/polish_strings.py:340
  1360 +msgid "przysłówkami"
  1361 +msgstr "adverbs"
  1362 +
1338 1363 #: entries/phrase_descriptions/polish_strings.py:341
1339 1364 #: entries/polish_strings.py:125
1340 1365 msgid "przysłówkowa"
... ... @@ -1458,18 +1483,6 @@ msgstr &quot;relative&quot;
1458 1483 msgid "względną"
1459 1484 msgstr "relative"
1460 1485  
1461   -#: entries/phrase_descriptions/polish_strings.py:351
1462   -msgid "zaimki"
1463   -msgstr "pronouns"
1464   -
1465   -#: entries/phrase_descriptions/polish_strings.py:351
1466   -msgid "zaimków"
1467   -msgstr "pronouns"
1468   -
1469   -#: entries/phrase_descriptions/polish_strings.py:351
1470   -msgid "zaimkami"
1471   -msgstr "pronouns"
1472   -
1473 1486 #: entries/phrase_descriptions/polish_strings.py:352
1474 1487 msgid "zależna"
1475 1488 msgstr "dependent"
... ... @@ -1513,11 +1526,11 @@ msgstr &quot;verb&quot;
1513 1526  
1514 1527 #: entries/polish_strings.py:14
1515 1528 msgid "dokonany"
1516   -msgstr "perfect"
  1529 +msgstr "perfective"
1517 1530  
1518 1531 #: entries/polish_strings.py:15
1519 1532 msgid "niedokonany"
1520   -msgstr "imperfect"
  1533 +msgstr "imperfective"
1521 1534  
1522 1535 #: entries/polish_strings.py:20
1523 1536 msgid "zanegowany"
... ... @@ -1676,8 +1689,8 @@ msgid &quot;Typ frazy porównawczej&quot;
1676 1689 msgstr "Comparative phrase type"
1677 1690  
1678 1691 #: entries/polish_strings.py:83
1679   -msgid "Postać frazeologizmu"
1680   -msgstr "Phraseologism text"
  1692 +msgid "Postać frazy zleksykalizowanej"
  1693 +msgstr "Form of lexicalised phrase"
1681 1694  
1682 1695 #: entries/polish_strings.py:88
1683 1696 msgid "strukturalny"
... ... @@ -1802,8 +1815,12 @@ msgid &quot;podmiot czasownika wymagającego bezokolicznika&quot;
1802 1815 msgstr "subject of a verb requiring an infinitive"
1803 1816  
1804 1817 #: entries/polish_strings.py:132
1805   -msgid "frazeologizm zamrożony"
1806   -msgstr "fixed phraseologism"
  1818 +msgid "zamrożona fraza zleksykalizowana"
  1819 +msgstr "fixed lexicalised phrase"
  1820 +
  1821 +#: entries/polish_strings.py:134
  1822 +msgid "fraza zleksykalizowana"
  1823 +msgstr "lexicalised phrase"
1807 1824  
1808 1825 #: entries/polish_strings.py:135
1809 1826 msgid "zdaniowa z korelatem"
... ... @@ -2040,22 +2057,22 @@ msgstr &quot;Source&quot;
2040 2057 msgid "Brak przykładów"
2041 2058 msgstr "No examples"
2042 2059  
2043   -#: entries/views.py:381
  2060 +#: entries/views.py:426
2044 2061 msgid ""
2045 2062 "Realizacja tego argumentu w zdaniu powinna być powiązana jakąkolwiek relacją"
2046 2063 msgstr "Realisation of this argument in the sentence should be in any relation"
2047 2064  
2048   -#: entries/views.py:383
  2065 +#: entries/views.py:428
2049 2066 msgid ""
2050 2067 "Realizacja tego argumentu w zdaniu powinna być powiązana relacją <i>{}</i>"
2051 2068 msgstr ""
2052 2069 "Realisation of this argument in the sentence should be in <i>{}</i> relation"
2053 2070  
2054   -#: entries/views.py:384
  2071 +#: entries/views.py:429
2055 2072 msgid "z realizacją argumentu <i>{}</i>."
2056 2073 msgstr "with realisation of the <i>{}</i> argument."
2057 2074  
2058   -#: entries/views.py:397
  2075 +#: entries/views.py:442
2059 2076 msgid "hiperonimy:"
2060 2077 msgstr "hypernyms"
2061 2078  
... ... @@ -2098,3 +2115,56 @@ msgstr &quot;distributive phrase&quot;
2098 2115 #: phrase_expansions/views.py:53
2099 2116 msgid "fraza posesywna"
2100 2117 msgstr "possesive phrase"
  2118 +
  2119 +#~ msgid "Pobierz słownik"
  2120 +#~ msgstr "Download dictionary"
  2121 +
  2122 +#~ msgid "Typ frazeologizmu"
  2123 +#~ msgstr "Phraseologism type"
  2124 +
  2125 +#~ msgid "Frazeologizm"
  2126 +#~ msgstr "Phraseologism"
  2127 +
  2128 +#~ msgid "frazeologizm"
  2129 +#~ msgstr "phraseologism"
  2130 +
  2131 +#~ msgid "Postać frazeologizmu"
  2132 +#~ msgstr "Phraseologism text"
  2133 +
  2134 +#~ msgid "frazeologizm zamrożony"
  2135 +#~ msgstr "fixed phraseologism"
  2136 +
  2137 +#~ msgid "frazeologizm będący "
  2138 +#~ msgstr "a phraseologism "
  2139 +
  2140 +#~ msgid "zaimki"
  2141 +#~ msgstr "pronouns"
  2142 +
  2143 +#~ msgid "zaimków"
  2144 +#~ msgstr "pronouns"
  2145 +
  2146 +#~ msgid "zaimkami"
  2147 +#~ msgstr "pronouns"
  2148 +
  2149 +#~ msgid ""
  2150 +#~ "%(a1)s %(a2)s przez <i>{to}, co (gdzie, kto)</i> lub dowolny inny zaimek "
  2151 +#~ "względny"
  2152 +#~ msgstr ""
  2153 +#~ "%(a1)s, %(a2)s by <i>{to}, co (gdzie, kto)</i> or any other relative "
  2154 +#~ "pronoun"
  2155 +
  2156 +#~ msgid ""
  2157 +#~ "%(a1)s %(a2)s przez <i>{prep} {to}, co (gdzie, kto)</i> lub dowolny inny "
  2158 +#~ "zaimek względny"
  2159 +#~ msgstr ""
  2160 +#~ "%(a1)s, %(a2)s by <i>{prep} {to}, co (gdzie, kto)</i> or any other "
  2161 +#~ "relative pronoun"
  2162 +
  2163 +#~ msgid "{aspect} %(a1)s %(a2)s"
  2164 +#~ msgstr "{aspect} %(a2)s %(a1)s"
  2165 +
  2166 +#~ msgid "%(a1)s %(a2)s przez odpowiedni zaimek względny"
  2167 +#~ msgstr "%(a1)s, %(a2)s by appropriate relative pronoun"
  2168 +
  2169 +#~ msgid "Tu będą podstawowe informacje o słowniku."
  2170 +#~ msgstr "..."
... ...
locale/en/LC_MESSAGES/djangojs.po
... ... @@ -8,7 +8,7 @@ msgid &quot;&quot;
8 8 msgstr ""
9 9 "Project-Id-Version: PACKAGE VERSION\n"
10 10 "Report-Msgid-Bugs-To: \n"
11   -"POT-Creation-Date: 2021-06-23 14:30+0200\n"
  11 +"POT-Creation-Date: 2021-06-30 10:15+0200\n"
12 12 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13 13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14 14 "Language-Team: LANGUAGE <LL@li.org>\n"
... ... @@ -139,40 +139,40 @@ msgid &quot;&quot;
139 139 "Kliknij, aby wyświetlić argumenty i typy fraz powiązane z tym przykładem."
140 140 msgstr "Click to show arguments and phrase types linked to this example."
141 141  
142   -#: entries/static/entries/js/entries.js:959
  142 +#: entries/static/entries/js/entries.js:960
143 143 msgid "Przetwarzanie..."
144 144 msgstr "Processing"
145 145  
146   -#: entries/static/entries/js/entries.js:960
147   -#: entries/static/entries/js/entries.js:1017
  146 +#: entries/static/entries/js/entries.js:961
  147 +#: entries/static/entries/js/entries.js:1018
148 148 msgid "Szukaj:"
149 149 msgstr "Search:"
150 150  
151   -#: entries/static/entries/js/entries.js:961
  151 +#: entries/static/entries/js/entries.js:962
152 152 msgid "Liczba haseł: _TOTAL_"
153 153 msgstr "_TOTAL_ entries"
154 154  
155   -#: entries/static/entries/js/entries.js:962
156   -#: entries/static/entries/js/entries.js:1018
  155 +#: entries/static/entries/js/entries.js:963
  156 +#: entries/static/entries/js/entries.js:1019
157 157 msgid "Liczba haseł: 0"
158 158 msgstr "0 entries"
159 159  
160   -#: entries/static/entries/js/entries.js:963
  160 +#: entries/static/entries/js/entries.js:964
161 161 msgid "(spośród _MAX_)"
162 162 msgstr "(out of _MAX_)"
163 163  
164   -#: entries/static/entries/js/entries.js:964
165   -#: entries/static/entries/js/entries.js:1019
  164 +#: entries/static/entries/js/entries.js:965
  165 +#: entries/static/entries/js/entries.js:1020
166 166 msgid "Brak haseł do wyświetlenia."
167 167 msgstr "No entries to display."
168 168  
169   -#: entries/static/entries/js/entries.js:966
170   -#: entries/static/entries/js/entries.js:1021
  169 +#: entries/static/entries/js/entries.js:967
  170 +#: entries/static/entries/js/entries.js:1022
171 171 msgid ": sortuj kolumnę rosnąco"
172 172 msgstr ": sort column in ascending order"
173 173  
174   -#: entries/static/entries/js/entries.js:967
175   -#: entries/static/entries/js/entries.js:1022
  174 +#: entries/static/entries/js/entries.js:968
  175 +#: entries/static/entries/js/entries.js:1023
176 176 msgid ": sortuj kolumnę malejąco"
177 177 msgstr ": sort column in descending order"
178 178  
... ...
syntax/management/commands/import_tei.py
... ... @@ -3,7 +3,7 @@
3 3  
4 4 from django.core.management.base import BaseCommand
5 5  
6   -import sys, os, shutil, codecs, copy, errno
  6 +import sys, os, shutil, codecs, copy, errno, logging
7 7 from xml.sax import saxutils, handler, make_parser
8 8 from importer.WalentyXML import WalentyTeiHandler
9 9 from importer.WalentyPreprocessXML import WalentyPreprocessTeiHandler
... ... @@ -28,6 +28,9 @@ class Command(BaseCommand):
28 28 import_tei()
29 29  
30 30 def import_tei():
  31 +
  32 + logging.basicConfig(filename='import.log', level=logging.DEBUG)
  33 +
31 34 #xml_file = os.path.join(BASE_DIR, 'data', 'walenty', 'walenty_20200926_smaller.xml')
32 35 xml_file = os.path.join(BASE_DIR, 'data', 'walenty', 'walenty_20200926.xml')
33 36  
... ...