Commit a19333da0012ee5d5027e01d36da86ccda598c5e

Authored by Katarzyna Krasnowska
1 parent 9627ec39

added ‘show related entries’ option

common/templates/base.html
... ... @@ -36,7 +36,7 @@
36 36 <div class="container-fluid h-100 d-flex flex-column p-0">
37 37  
38 38 <!--z-index 2 above sticky-top-->
39   - <nav class="navbar navbar-expand-lg sticky-top navbar-dark bg-dark font-weight-bold p-2" style="z-index: 1022;">
  39 + <nav id="page-nav" class="navbar navbar-expand-lg sticky-top navbar-dark bg-dark font-weight-bold p-2" style="z-index: 1022;">
40 40 <a class="navbar-brand" href="{% url 'dash' %}">Walenty [beta]</a>
41 41  
42 42 <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
... ...
entries/static/entries/js/entries.js
... ... @@ -784,12 +784,12 @@ function show_unmatched_examples() {
784 784 }
785 785 }
786 786  
787   -function get_entry(entry_id) {
  787 +function get_entry(entry_id, related) {
788 788 check_import_status();
789 789 clear_entry();
790 790 show_entry_spinners();
791 791 //var data = { 'forms' : serialize_forms($('#main-form')), 'entry' : entry_id };
792   - var data = { 'entry' : entry_id };
  792 + var data = { 'entry' : entry_id, 'no_filters' : related };
793 793 $.ajax({
794 794 type : 'post',
795 795 url : '/' + lang + '/entries/get_entry/',
... ... @@ -860,6 +860,7 @@ function update_last_visited(last_visited) {
860 860 }
861 861  
862 862 function bind_settings() {
  863 + activate_tooltips($('#page-nav'));
863 864 $('#show-realisation-descriptions').change(function() {
864 865 var val = $(this).prop('checked') === true;
865 866 $.ajax({
... ... @@ -879,6 +880,21 @@ function bind_settings() {
879 880 }
880 881 });
881 882 });
  883 + $('#show-linked-entries').change(function() {
  884 + var val = $(this).prop('checked') === true;
  885 + $.ajax({
  886 + type : 'post',
  887 + url : '/' + lang + '/entries/change_show_linked_entries/',
  888 + dataType : 'json',
  889 + data : {'val' : val},
  890 + success : function(response) {
  891 + update_entries();
  892 + },
  893 + error: function(request, errorType, errorMessage) {
  894 + show_error(errorType + ' (' + errorMessage + ')');
  895 + }
  896 + });
  897 + });
882 898 }
883 899  
884 900 function show_reals_desc() {
... ... @@ -895,7 +911,7 @@ function get_show_reals_desc() {
895 911 return $('#show-realisation-descriptions').prop('checked') === true;
896 912 }
897 913  
898   -function update_entries(entries) {
  914 +function update_entries() {
899 915  
900 916 $('#entries-table').DataTable({
901 917 // https://datatables.net/manual/tech-notes/3
... ... @@ -913,8 +929,9 @@ function update_entries(entries) {
913 929 // https://datatables.net/reference/option/dom
914 930 dom: 'ftri',
915 931 columns: [
916   - { data: 'name' },
917   - { data: 'status__key' },
  932 + { data: 'lemma' },
  933 + { data: 'status' },
  934 + { data: 'POS' },
918 935 ],
919 936 orderMulti: false,
920 937 // show processing indicator when sorting etc.
... ... @@ -931,21 +948,25 @@ function update_entries(entries) {
931 948 },
932 949 {
933 950 className: 'p-1',
934   - targets: [0, 1],
  951 + targets: [0, 1, 2],
935 952 },
936 953 // make only the lemma searchable
937 954 {
938 955 searchable: false,
939   - targets: 1,
  956 + targets: [1, 2]
940 957 }
941 958 ],
942 959 createdRow: function(row, data, dataIndex, cells) {
943 960 $(row).addClass('entry');
944 961 $(row).attr('data-entry', data.id);
  962 + var related = data.related === true;
  963 + if (related) {
  964 + $(row).addClass('text-muted');
  965 + }
945 966 $(row).click(function() {
946 967 var selected_entry = $(this).data('entry');
947 968 if (selected_entry !== curr_entry) {
948   - get_entry(selected_entry);
  969 + get_entry(selected_entry, related);
949 970 $('.entry[data-entry="' + curr_entry + '"]').removeClass('table-primary');
950 971 $(this).addClass('table-primary');
951 972 }
... ...
entries/templates/entries.html
... ... @@ -63,7 +63,13 @@
63 63 <div class="form-check custom-control custom-checkbox">
64 64 <input type="checkbox" class="custom-control-input" id="show-realisation-descriptions"{% if request.session.show_reals_desc %} checked{% endif %}>
65 65 <label class="custom-control-label" for="show-realisation-descriptions">
66   - {% trans "Wyświetlaj opisy realizacji" %}
  66 + {% trans "Wyświetlaj opisy realizacji" %} <span data-toggle="tooltip" data-placement="bottom" title="{% trans "Po wybraniu ramy wyświetlaj opisy jej realizacji składniowych. Opisy (dla całej realizacji i dla poszczególnych fraz) są wyświetlane wewnątrz schematów." %}"><img src="/static/common/img/info.svg" alt="info" width="10" height="10"/></span>
  67 + </label>
  68 + </div>
  69 + <div class="form-check custom-control custom-checkbox">
  70 + <input type="checkbox" class="custom-control-input" id="show-linked-entries"{% if request.session.show_linked_entries %} checked{% endif %}>
  71 + <label class="custom-control-label" for="show-linked-entries">
  72 + {% trans "Wyświetlaj powiązane hasła" %} <span data-toggle="tooltip" data-placement="bottom" data-html="true" title="{% trans "Przy filtrowaniu haseł wyświetlaj, oprócz haseł spełniających kryteria filtrowania, hasła powiązane z nimi znaczeniowo (np. <i>podarować</i> – <i>podarunek</i> – <i>podarek</i>). Hasła powiązane niespełniające kryteriów filtrowania są wyróżnione jaśniejszym kolorem na liście oraz nie podlegają filtrowaniu schematów i ram (są zawsze wyświetlane w całości niezależnie od użytych filtrów dla schematów/ram)." %}"><img src="/static/common/img/info.svg" alt="info" width="10" height="10"/></span>
67 73 </label>
68 74 </div>
69 75 </div>
... ...
entries/templates/entries_list.html
... ... @@ -5,6 +5,7 @@
5 5 <tr>
6 6 <th class="p-1">{% trans "Lemat" %}</th>
7 7 <th class="p-1">Status</th>
  8 + <th class="p-1">{% trans "Cz. mowy" %}</th>
8 9 </tr>
9 10 </thead>
10 11 <tbody id="entries">
... ...
entries/templates/entry_display.html
... ... @@ -63,7 +63,7 @@
63 63 </div>
64 64 </div>
65 65 <div class="col h-100 w-100 p-0 tab-pane" id="examples" role="tabpanel" aria-labelledby="examples-tab">
66   - <table id="unmatched-examples" class="table table-sm table-hover table-responsive">
  66 + <table id="unmatched-examples" class="table table-sm table-hover">
67 67 <thead>
68 68 <tr>
69 69 <th scope="col">{% trans "Przykład" %}</th>
... ...
entries/urls.py
... ... @@ -13,6 +13,7 @@ urlpatterns = [
13 13 path('get_entry/', views.get_entry, name='get_entry'),
14 14 path('get_subform/', views.get_subform, name='get_subform'),
15 15 path('change_show_reals_desc/', views.change_show_reals_desc, name='change_show_reals_desc'),
  16 + path('change_show_linked_entries/', views.change_show_linked_entries, name='change_show_linked_entries'),
16 17  
17 18 path('autocomplete/', autocompletes.autocomplete, name='autocomplete'),
18 19  
... ...
entries/views.py
... ... @@ -35,7 +35,7 @@ from .forms import (
35 35 SynsetPreferenceFormFactory,
36 36 )
37 37  
38   -from .polish_strings import STATUS, SCHEMA_OPINION, FRAME_OPINION, EXAMPLE_SOURCE, EXAMPLE_OPINION, RELATION
  38 +from .polish_strings import STATUS, POS, SCHEMA_OPINION, FRAME_OPINION, EXAMPLE_SOURCE, EXAMPLE_OPINION, RELATION
39 39  
40 40 from .phrase_descriptions.descriptions import position_prop_description
41 41  
... ... @@ -49,6 +49,10 @@ 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 + if 'show_reals_desc' not in request.session:
  53 + request.session['show_reals_desc'] = True
  54 + if 'show_linked_entries' not in request.session:
  55 + request.session['show_linked_entries'] = True
52 56 # TODO retrieve the form from the request session – keep forms between page refreshes,
53 57 # keep search history, allow saving searches?
54 58 # if so, don’t delete local forms on main form submit in send_form
... ... @@ -337,26 +341,46 @@ def get_entries(request):
337 341 # TODO restrictions for testing – remove!!!
338 342 #entries = entries.annotate(nsub=Count('subentries')).filter(nsub__gt=1)
339 343 #entries = entries.filter(subentries__schemata__opinion__key__in=('vul', 'col')).filter(status__key__in=('(S) gotowe', '(S) sprawdzone'))
  344 + #entries = entries.filter(subentries__schema_hooks__alternation=2)
340 345  
341 346 total = entries.count()
342 347 if scroller_params['filter']:
343 348 entries = entries.filter(name__startswith=scroller_params['filter'])
344 349 filtered = entries.count()
  350 +
  351 + linked_ids = set()
  352 + if request.session['show_linked_entries']:
  353 + entries_linked = Entry.objects.filter(subentries__schema_hooks__argument_connections__schema_connections__subentry__entry__in=entries).distinct().exclude(id__in=entries)
  354 + entries = entries.union(entries_linked)
  355 + linked_ids = set(e.id for e in entries_linked)
  356 +
345 357 i, j = scroller_params['start'], scroller_params['start'] + scroller_params['length']
346 358 order_field, order_dir = scroller_params['order']
347   - if order_field != 0 or order_dir != 'asc':
348   - # ordering other than lemma ascending (database default)
349   - order_field = 'name' if order_field == 0 else 'status__key'
350   - if order_dir == 'desc':
351   - order_field = '-' + order_field
352   - entries = entries.order_by(order_field)
  359 + if order_field == 0:
  360 + order_field = 'name'
  361 + elif order_field == 1:
  362 + order_field = 'status__key'
  363 + elif order_field == 2:
  364 + order_field = 'pos__tag'
  365 + if order_dir == 'desc':
  366 + order_field = '-' + order_field
  367 + entries = entries.order_by(order_field)
353 368 status_names = STATUS()
354   - entries_list = list(entries.values('id', 'name', 'status__key'))
  369 + POS_names = POS()
  370 + entries_list = list(entries.values('id', 'name', 'status__key', 'pos__tag'))
355 371 result = {
356 372 'draw' : scroller_params['draw'],
357 373 'recordsTotal': total,
358 374 'recordsFiltered': filtered,
359   - 'data': [{'id' : e['id'], 'name' : e['name'], 'status__key' : status_names[e['status__key']]} for e in entries_list[i:j]],
  375 + 'data': [
  376 + {
  377 + 'id' : e['id'],
  378 + 'lemma' : e['name'],
  379 + 'status' : status_names[e['status__key']],
  380 + 'POS' : POS_names[e['pos__tag']],
  381 + 'related' : e['id'] in linked_ids,
  382 + } for e in entries_list[i:j]
  383 + ],
360 384 }
361 385 return JsonResponse(result)
362 386 return JsonResponse({})
... ... @@ -659,7 +683,10 @@ def get_entry(request):
659 683 # form should already be validated if it passed through send_form
660 684 assert(not errors_dict)
661 685  
662   - filter_schemata, filter_frames = entry_form.cleaned_data['filter_schemata'], entry_form.cleaned_data['filter_frames']
  686 + # dont’ do schema/frame filtering for related entries
  687 + FILTERING_OK = not simplejson.loads(request.POST['no_filters'])
  688 + filter_schemata = FILTERING_OK and entry_form.cleaned_data['filter_schemata']
  689 + filter_frames = FILTERING_OK and entry_form.cleaned_data['filter_frames']
663 690 if filter_schemata:
664 691 schema_forms = []
665 692 # e.g. entry has schema that satisfies X & entry has schema that satisfies Y
... ... @@ -700,14 +727,14 @@ def get_entry(request):
700 727  
701 728  
702 729 local_schema_form = None
703   - if 'schema_form' in request.session:
  730 + if FILTERING_OK and 'schema_form' in request.session:
704 731 errors_dict = dict()
705 732 local_schema_form = collect_forms(request.session['schema_form'], errors_dict)
706 733 print(local_schema_form)
707 734 assert(not errors_dict)
708 735  
709 736 local_frame_form = None
710   - if 'frame_form' in request.session:
  737 + if FILTERING_OK and 'frame_form' in request.session:
711 738 errors_dict = dict()
712 739 local_frame_form = collect_forms(request.session['frame_form'], errors_dict)
713 740 assert(not errors_dict)
... ... @@ -736,10 +763,6 @@ def get_entry(request):
736 763 frames = [frame2dict(frame, entry.lexical_units.all()) for frame in frame_objects]
737 764 alternations, realisation_phrases, realisation_descriptions = get_alternations(all_schema_objects, frame_objects)
738 765 examples = get_examples(entry)
739   - if 'last_visited' not in request.session:
740   - request.session['last_visited'] = []
741   - if 'show_reals_desc' not in request.session:
742   - request.session['show_reals_desc'] = True
743 766 # https://docs.djangoproject.com/en/2.2/topics/http/sessions/#when-sessions-are-saved
744 767 if [entry.name, entry.id] in request.session['last_visited']:
745 768 request.session['last_visited'].remove([entry.name, entry.id])
... ... @@ -779,3 +802,12 @@ def change_show_reals_desc(request):
779 802 request.session['show_reals_desc'] = val
780 803 return JsonResponse({ 'success' : 1 })
781 804 return JsonResponse({})
  805 +
  806 +@ajax_required
  807 +def change_show_linked_entries(request):
  808 + if request.method == 'POST':
  809 + val = simplejson.loads(request.POST['val'])
  810 + request.session['show_linked_entries'] = val
  811 + return JsonResponse({ 'success' : 1 })
  812 + return JsonResponse({})
  813 +
... ...
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-07-07 12:20+0200\n"
  11 +"POT-Creation-Date: 2021-07-14 16:24+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"
... ... @@ -105,12 +105,12 @@ msgid &quot;Status / część mowy&quot;
105 105 msgstr "Status / part of speech"
106 106  
107 107 #: dictionary_statistics/templates/dictionary_statistics.html:43
108   -#: entries/forms.py:201
  108 +#: entries/forms.py:202
109 109 msgid "Liczba schematów"
110 110 msgstr "Number of schemata"
111 111  
112 112 #: dictionary_statistics/templates/dictionary_statistics.html:67
113   -#: entries/forms.py:205
  113 +#: entries/forms.py:206
114 114 msgid "Liczba ram"
115 115 msgstr "Number of frames"
116 116  
... ... @@ -122,7 +122,7 @@ msgstr &quot;all&quot;
122 122 msgid "Pobieranie"
123 123 msgstr "Download"
124 124  
125   -#: entries/autocompletes.py:27 entries/views.py:439
  125 +#: entries/autocompletes.py:27 entries/views.py:464
126 126 msgid "definicja:"
127 127 msgstr "definition:"
128 128  
... ... @@ -186,11 +186,11 @@ msgstr &quot;Invalid expression: %(msg)s.&quot;
186 186 msgid "Typ frazy zleksykalizowanej"
187 187 msgstr "Lexicalised phrase type"
188 188  
189   -#: entries/form_fields/specialised_fields.py:44 entries/forms.py:546
  189 +#: entries/form_fields/specialised_fields.py:44 entries/forms.py:549
190 190 msgid "Typ frazy"
191 191 msgstr "Phrase type"
192 192  
193   -#: entries/form_fields/specialised_fields.py:51 entries/forms.py:634
  193 +#: entries/form_fields/specialised_fields.py:51 entries/forms.py:637
194 194 msgid "wybierz"
195 195 msgstr "choose"
196 196  
... ... @@ -250,7 +250,7 @@ msgstr &quot;Schema&quot;
250 250 msgid "Schemat(y) występujące w haśle"
251 251 msgstr "Phrase type(s) occurring in the entry."
252 252  
253   -#: entries/forms.py:147 entries/forms.py:419 entries/forms.py:640
  253 +#: entries/forms.py:147 entries/forms.py:422 entries/forms.py:643
254 254 msgid "Pozycja"
255 255 msgstr "Position"
256 256  
... ... @@ -263,11 +263,14 @@ msgid &quot;&quot;
263 263 "Pozycje mogą występować w różnych schematach. Aby ograniczyć filtrowanie do "
264 264 "występowania wymaganych pozycji w obrębie jednego schematu, proszę użyć "
265 265 "filtru POZYCJA wewnątrz filtra SCHEMAT powyżej."
266   -msgstr "Positions may occur in different schemata. In order to restrict filtering to positions co-occuring in one schema, use the POSITION filter inside SCHEMA filter above."
  266 +msgstr ""
  267 +"Positions may occur in different schemata. In order to restrict filtering to "
  268 +"positions co-occuring in one schema, use the POSITION filter inside SCHEMA "
  269 +"filter above."
267 270  
268   -#: entries/forms.py:151 entries/forms.py:480 entries/forms.py:645
269   -#: entries/forms.py:764 entries/forms.py:766 entries/forms.py:768
270   -#: entries/forms.py:770
  271 +#: entries/forms.py:151 entries/forms.py:483 entries/forms.py:648
  272 +#: entries/forms.py:769 entries/forms.py:771 entries/forms.py:773
  273 +#: entries/forms.py:775
271 274 msgid "Fraza"
272 275 msgstr "Phrase"
273 276  
... ... @@ -280,7 +283,10 @@ msgid &quot;&quot;
280 283 "Frazy mogą występować w różnych schematach i na różnych pozycjach. Aby "
281 284 "ograniczyć filtrowanie do występowania wymaganych fraz w obrębie jednej "
282 285 "pozycji, proszę użyć filtru POZYCJA powyżej lub wewnątrz filtra SCHEMAT."
283   -msgstr "Phrases may occur in different schemata and on different positions. In order to restrict filtering to phrases co-occuring on one position, use the POSITION filter above or inside the SCHEMA filter."
  286 +msgstr ""
  287 +"Phrases may occur in different schemata and on different positions. In order "
  288 +"to restrict filtering to phrases co-occuring on one position, use the "
  289 +"POSITION filter above or inside the SCHEMA filter."
284 290  
285 291 #: entries/forms.py:164
286 292 msgid "Rama"
... ... @@ -290,242 +296,246 @@ msgstr &quot;Frame&quot;
290 296 msgid "Rama/y występujące w haśle"
291 297 msgstr "Frame(s) occurring in the entry."
292 298  
293   -#: entries/forms.py:170
  299 +#: entries/forms.py:165 entries/forms.py:600
  300 +msgid "Argument"
  301 +msgstr "Argument"
  302 +
  303 +#: entries/forms.py:165
  304 +msgid "Argument(y) występujące w haśle"
  305 +msgstr "Argument(s) occurring in the entry."
  306 +
  307 +#: entries/forms.py:171
294 308 msgid "Własności hasła"
295 309 msgstr "Entry properties"
296 310  
297   -#: entries/forms.py:171
  311 +#: entries/forms.py:172
298 312 msgid "Własności składniowe"
299 313 msgstr "Syntactic properties"
300 314  
301   -#: entries/forms.py:172
  315 +#: entries/forms.py:173
302 316 msgid "Własności semantyczne"
303 317 msgstr "Semantic properties"
304 318  
305   -#: entries/forms.py:173 entries/forms.py:259
  319 +#: entries/forms.py:174 entries/forms.py:262
306 320 msgid "Filtruj"
307 321 msgstr "Filter"
308 322  
309   -#: entries/forms.py:174 entries/forms.py:260
  323 +#: entries/forms.py:175 entries/forms.py:263
310 324 msgid "Wyczyść"
311 325 msgstr "Reset"
312 326  
313   -#: entries/forms.py:180 entries/forms.py:496 entries/forms.py:502
314   -#: entries/forms.py:541 entries/templates/entries_list.html:6
  327 +#: entries/forms.py:181 entries/forms.py:499 entries/forms.py:505
  328 +#: entries/forms.py:544 entries/templates/entries_list.html:6
315 329 msgid "Lemat"
316 330 msgstr "Lemma"
317 331  
318   -#: entries/forms.py:186
  332 +#: entries/forms.py:187
319 333 msgid "Część mowy"
320 334 msgstr "Part of speech"
321 335  
322   -#: entries/forms.py:212
  336 +#: entries/forms.py:213
323 337 msgid "Ukryj niepasujące schematy"
324 338 msgstr "Hide non-matching schemata"
325 339  
326   -#: entries/forms.py:213
  340 +#: entries/forms.py:214
327 341 msgid "Ukryj niepasujące ramy"
328 342 msgstr "Hide non-matching frames"
329 343  
330   -#: entries/forms.py:255
  344 +#: entries/forms.py:258
331 345 msgid "Zwiń"
332 346 msgstr "Collapse"
333 347  
334   -#: entries/forms.py:255
  348 +#: entries/forms.py:258
335 349 msgid "Usuń"
336 350 msgstr "Remove"
337 351  
338   -#: entries/forms.py:308 entries/forms.py:802
  352 +#: entries/forms.py:311 entries/forms.py:807
339 353 msgid "Zaneguj"
340 354 msgstr "Negate"
341 355  
342   -#: entries/forms.py:323
  356 +#: entries/forms.py:326
343 357 msgid "Schemat składniowy"
344 358 msgstr "Syntactic schema"
345 359  
346   -#: entries/forms.py:329
  360 +#: entries/forms.py:332
347 361 msgid "Opinia o schemacie"
348 362 msgstr "Schema opinion"
349 363  
350   -#: entries/forms.py:340
  364 +#: entries/forms.py:343
351 365 msgid "Typ"
352 366 msgstr "Type"
353 367  
354   -#: entries/forms.py:342
  368 +#: entries/forms.py:345
355 369 msgid "zwykły"
356 370 msgstr "ordinary"
357 371  
358   -#: entries/forms.py:343
  372 +#: entries/forms.py:346
359 373 msgid "frazeologiczny"
360 374 msgstr "phraseological"
361 375  
362   -#: entries/forms.py:352
  376 +#: entries/forms.py:355
363 377 msgid "Zwrotność"
364 378 msgstr "Reflexiveness"
365 379  
366   -#: entries/forms.py:363
  380 +#: entries/forms.py:366
367 381 msgid "Negatywność"
368 382 msgstr "Negativity"
369 383  
370   -#: entries/forms.py:374
  384 +#: entries/forms.py:377
371 385 msgid "Predykatywność"
372 386 msgstr "Predicativity"
373 387  
374   -#: entries/forms.py:385 entries/polish_strings.py:96
  388 +#: entries/forms.py:388 entries/polish_strings.py:96
375 389 msgid "Aspekt"
376 390 msgstr "Aspect"
377 391  
378   -#: entries/forms.py:404
  392 +#: entries/forms.py:407
379 393 msgid "Liczba pozycyj"
380 394 msgstr "Number of positions"
381 395  
382   -#: entries/forms.py:419
  396 +#: entries/forms.py:422
383 397 msgid "Pozycja/e występujące w schemacie"
384 398 msgstr "Position(s) occurring in the entry."
385 399  
386   -#: entries/forms.py:435
  400 +#: entries/forms.py:438
387 401 msgid "Pozycja składniowa"
388 402 msgstr "Syntactic position"
389 403  
390   -#: entries/forms.py:441
  404 +#: entries/forms.py:444
391 405 msgid "Funkcja gramatyczna"
392 406 msgstr "Grammatical function"
393 407  
394   -#: entries/forms.py:451
  408 +#: entries/forms.py:454
395 409 msgid "Kontrola"
396 410 msgstr "Control"
397 411  
398   -#: entries/forms.py:461
  412 +#: entries/forms.py:464
399 413 msgid "Kontrola predykatywna"
400 414 msgstr "Predicative control"
401 415  
402   -#: entries/forms.py:471
  416 +#: entries/forms.py:474
403 417 msgid "Liczba fraz"
404 418 msgstr "Number of phrases"
405 419  
406   -#: entries/forms.py:480
  420 +#: entries/forms.py:483
407 421 msgid "Fraza/y występujące na pozycji"
408 422 msgstr "Phrase type(s) occurring on the position."
409 423  
410   -#: entries/forms.py:516
  424 +#: entries/forms.py:519
411 425 msgid "Fraza zleksykalizowana"
412 426 msgstr "Lexicalised phrase"
413 427  
414   -#: entries/forms.py:522
  428 +#: entries/forms.py:525
415 429 msgid "Wybór lematów"
416 430 msgstr "Lemma choice"
417 431  
418   -#: entries/forms.py:532
  432 +#: entries/forms.py:535
419 433 msgid "Łączenie lematów"
420 434 msgstr "Lemma joining"
421 435  
422   -#: entries/forms.py:545 entries/forms.py:823
  436 +#: entries/forms.py:548 entries/forms.py:828
423 437 msgid "Typ składniowy frazy zleksykalizowanej."
424 438 msgstr "Syntactic type of lexicalised phrase."
425 439  
426   -#: entries/forms.py:568
  440 +#: entries/forms.py:571
427 441 msgid "Rama semantyczna"
428 442 msgstr "Semantic frame"
429 443  
430   -#: entries/forms.py:574 entries/templates/entry_display.html:37
  444 +#: entries/forms.py:577 entries/templates/entry_display.html:37
431 445 #: entries/templates/entry_display.html:56
432 446 #: entries/templates/entry_display.html:71
433 447 msgid "Opinia"
434 448 msgstr "Opinion"
435 449  
436   -#: entries/forms.py:584
  450 +#: entries/forms.py:587
437 451 msgid "Liczba argumentów"
438 452 msgstr "Number of arguments"
439 453  
440   -#: entries/forms.py:591
  454 +#: entries/forms.py:594
441 455 msgid "Liczba preferencyj selekcyjnych argumentu"
442 456 msgstr "Number of argument’s selectional preferences"
443 457  
444   -#: entries/forms.py:597
445   -msgid "Argument"
446   -msgstr "Argument"
447   -
448   -#: entries/forms.py:613
  458 +#: entries/forms.py:616
449 459 msgid "Argument semantyczny"
450 460 msgstr "Semantic argument"
451 461  
452   -#: entries/forms.py:619
  462 +#: entries/forms.py:622
453 463 msgid "Rola"
454 464 msgstr "Role"
455 465  
456   -#: entries/forms.py:626
  466 +#: entries/forms.py:629
457 467 msgid "Atrybut roli"
458 468 msgstr "Role attribute"
459 469  
460   -#: entries/forms.py:633 entries/forms.py:636
  470 +#: entries/forms.py:636 entries/forms.py:639
461 471 msgid "Preferencja selekcyjna"
462 472 msgstr "Selectional preference"
463 473  
464   -#: entries/forms.py:634
  474 +#: entries/forms.py:637
465 475 msgid "Predefiniowana grupa znaczeń"
466 476 msgstr "Predefined meanings class"
467 477  
468   -#: entries/forms.py:634
  478 +#: entries/forms.py:637
469 479 msgid "Wyrażona przez relację"
470 480 msgstr "Expressed by relation"
471 481  
472   -#: entries/forms.py:634
  482 +#: entries/forms.py:637
473 483 msgid "Wyrażona przez jednostkę leksykalną Słowosieci"
474 484 msgstr "Expressed by plWordnet lexical unit"
475 485  
476   -#: entries/forms.py:644
  486 +#: entries/forms.py:647
477 487 msgid "Typ frazy, przez którą może być realizowany argument."
478 488 msgstr ""
479 489  
480   -#: entries/forms.py:665
  490 +#: entries/forms.py:670
481 491 msgid "Preferencja predefiniowana"
482 492 msgstr "Predefined preference"
483 493  
484   -#: entries/forms.py:671
  494 +#: entries/forms.py:676
485 495 msgid "Predefiniowane"
486 496 msgstr "Predefined"
487 497  
488   -#: entries/forms.py:685
  498 +#: entries/forms.py:690
489 499 msgid "Preferencja – relacja"
490 500 msgstr "Relational preference"
491 501  
492   -#: entries/forms.py:691
  502 +#: entries/forms.py:696
493 503 msgid "Relacja"
494 504 msgstr "Relation"
495 505  
496   -#: entries/forms.py:702
  506 +#: entries/forms.py:707
497 507 msgid "Do: rola"
498 508 msgstr "To: role"
499 509  
500   -#: entries/forms.py:709
  510 +#: entries/forms.py:714
501 511 msgid "Do: atrybut"
502 512 msgstr "To: attribute"
503 513  
504   -#: entries/forms.py:721
  514 +#: entries/forms.py:726
505 515 msgid "Preferencja – Słowosieć"
506 516 msgstr "plWordnet preference"
507 517  
508   -#: entries/forms.py:727
  518 +#: entries/forms.py:732
509 519 msgid "Jednostka leksykalna"
510 520 msgstr "Lexical unit"
511 521  
512   -#: entries/forms.py:775
  522 +#: entries/forms.py:780
513 523 msgid "Fraza {}"
514 524 msgstr "{} phrase"
515 525  
516   -#: entries/forms.py:777 entries/phrase_descriptions/descriptions.py:124
  526 +#: entries/forms.py:782 entries/phrase_descriptions/descriptions.py:124
517 527 msgid "zleksykalizowana"
518 528 msgstr "lexicalised"
519 529  
520   -#: entries/forms.py:813
  530 +#: entries/forms.py:818
521 531 msgid "Realizacja składniowa frazy."
522 532 msgstr "Syntactic realisation of the phrase."
523 533  
524   -#: entries/forms.py:817
  534 +#: entries/forms.py:822
525 535 msgid "Fraza składowa zleksykalizowanej konstrukcji porównawczej."
526 536 msgstr "Component phrase of lexicalised comparative construction."
527 537  
528   -#: entries/forms.py:819
  538 +#: entries/forms.py:824
529 539 msgid "Fraza zleksykalizowana."
530 540 msgstr "Lexicalised phrase."
531 541  
... ... @@ -2125,18 +2135,46 @@ msgstr &quot;Options&quot;
2125 2135 msgid "Wyświetlaj opisy realizacji"
2126 2136 msgstr "Show realisation descriptions"
2127 2137  
2128   -#: entries/templates/entries.html:97
  2138 +#: entries/templates/entries.html:66
  2139 +msgid ""
  2140 +"Po wybraniu ramy wyświetlaj opisy jej realizacji składniowych. Opisy (dla "
  2141 +"całej realizacji i dla poszczególnych fraz) są wyświetlane wewnątrz "
  2142 +"schematów."
  2143 +msgstr ""
  2144 +"When a frame is selected, show descriptions of its syntactic realisations. "
  2145 +"The descriptions (for whole realisation and for single phrases) are "
  2146 +"displayed inside schemata."
  2147 +
  2148 +#: entries/templates/entries.html:72
  2149 +msgid "Wyświetlaj powiązane hasła"
  2150 +msgstr "Show related entries"
  2151 +
  2152 +#: entries/templates/entries.html:72
  2153 +msgid ""
  2154 +"Przy filtrowaniu haseł wyświetlaj, oprócz haseł spełniających kryteria "
  2155 +"filtrowania, hasła powiązane z nimi znaczeniowo (np. <i>podarować</i> – "
  2156 +"<i>podarunek</i> – <i>podarek</i>). Hasła powiązane niespełniające kryteriów "
  2157 +"filtrowania są wyróżnione jaśniejszym kolorem na liście oraz nie podlegają "
  2158 +"filtrowaniu schematów i ram (są zawsze wyświetlane w całości niezależnie od "
  2159 +"użytych filtrów dla schematów/ram)."
  2160 +msgstr "When filtering entries, show (aside from entries satisfying filtering criteria) entries with related meanings, (eg. <i>podarować</i> – <i>podarunek</i> – <i>podarek</i>). Related entries that don’t satisfy filtering criteria are displayed in a lighter color on the entries list and are not subject to schema/frame filtering (ie. are always shown in their entirety regardless of schema/frame filters applied)."
  2161 +
  2162 +#: entries/templates/entries.html:103
2129 2163 msgid "Filtrowanie haseł"
2130 2164 msgstr "Entry filtering"
2131 2165  
2132   -#: entries/templates/entries.html:113
  2166 +#: entries/templates/entries.html:119
2133 2167 msgid "Filtrowanie ram"
2134 2168 msgstr "Frame filtering"
2135 2169  
2136   -#: entries/templates/entries.html:129
  2170 +#: entries/templates/entries.html:135
2137 2171 msgid "Filtrowanie schematów"
2138 2172 msgstr "Schema filtering"
2139 2173  
  2174 +#: entries/templates/entries_list.html:8
  2175 +msgid "Cz. mowy"
  2176 +msgstr "PoS"
  2177 +
2140 2178 #: entries/templates/entry_display.html:6
2141 2179 msgid "Semantyka (ramy + schematy)"
2142 2180 msgstr "Semantics (frames + schemata)"
... ... @@ -2167,22 +2205,22 @@ msgstr &quot;Source&quot;
2167 2205 msgid "Brak przykładów"
2168 2206 msgstr "No examples"
2169 2207  
2170   -#: entries/views.py:427
  2208 +#: entries/views.py:452
2171 2209 msgid ""
2172 2210 "Realizacja tego argumentu w zdaniu powinna być powiązana jakąkolwiek relacją"
2173 2211 msgstr "Realisation of this argument in the sentence should be in any relation"
2174 2212  
2175   -#: entries/views.py:429
  2213 +#: entries/views.py:454
2176 2214 msgid ""
2177 2215 "Realizacja tego argumentu w zdaniu powinna być powiązana relacją <i>{}</i>"
2178 2216 msgstr ""
2179 2217 "Realisation of this argument in the sentence should be in <i>{}</i> relation"
2180 2218  
2181   -#: entries/views.py:430
  2219 +#: entries/views.py:455
2182 2220 msgid "z realizacją argumentu <i>{}</i>."
2183 2221 msgstr "with realisation of the <i>{}</i> argument."
2184 2222  
2185   -#: entries/views.py:443
  2223 +#: entries/views.py:468
2186 2224 msgid "hiperonimy:"
2187 2225 msgstr "hypernyms"
2188 2226  
... ...
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-07-07 12:20+0200\n"
  11 +"POT-Creation-Date: 2021-07-14 16:24+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:960
  142 +#: entries/static/entries/js/entries.js:981
143 143 msgid "Przetwarzanie..."
144 144 msgstr "Processing"
145 145  
146   -#: entries/static/entries/js/entries.js:961
147   -#: entries/static/entries/js/entries.js:1018
  146 +#: entries/static/entries/js/entries.js:982
  147 +#: entries/static/entries/js/entries.js:1039
148 148 msgid "Szukaj:"
149 149 msgstr "Search:"
150 150  
151   -#: entries/static/entries/js/entries.js:962
  151 +#: entries/static/entries/js/entries.js:983
152 152 msgid "Liczba haseł: _TOTAL_"
153 153 msgstr "_TOTAL_ entries"
154 154  
155   -#: entries/static/entries/js/entries.js:963
156   -#: entries/static/entries/js/entries.js:1019
  155 +#: entries/static/entries/js/entries.js:984
  156 +#: entries/static/entries/js/entries.js:1040
157 157 msgid "Liczba haseł: 0"
158 158 msgstr "0 entries"
159 159  
160   -#: entries/static/entries/js/entries.js:964
  160 +#: entries/static/entries/js/entries.js:985
161 161 msgid "(spośród _MAX_)"
162 162 msgstr "(out of _MAX_)"
163 163  
164   -#: entries/static/entries/js/entries.js:965
165   -#: entries/static/entries/js/entries.js:1020
  164 +#: entries/static/entries/js/entries.js:986
  165 +#: entries/static/entries/js/entries.js:1041
166 166 msgid "Brak haseł do wyświetlenia."
167 167 msgstr "No entries to display."
168 168  
169   -#: entries/static/entries/js/entries.js:967
170   -#: entries/static/entries/js/entries.js:1022
  169 +#: entries/static/entries/js/entries.js:988
  170 +#: entries/static/entries/js/entries.js:1043
171 171 msgid ": sortuj kolumnę rosnąco"
172 172 msgstr ": sort column in ascending order"
173 173  
174   -#: entries/static/entries/js/entries.js:968
175   -#: entries/static/entries/js/entries.js:1023
  174 +#: entries/static/entries/js/entries.js:989
  175 +#: entries/static/entries/js/entries.js:1044
176 176 msgid ": sortuj kolumnę malejąco"
177 177 msgstr ": sort column in descending order"
178 178  
... ...