Commit fa1630806ff10c3e3ac7d803f396dff16402eea1

Authored by janek37
1 parent f46fd64f

tłumaczenie na angielski

--HG--
rename : templates/registration/activate.html => accounts/templates/registration/activation_complete.html
rename : templates/registration/activation_email.txt => accounts/templates/registration/activation_email.txt
rename : templates/registration/activation_email_subject.txt => accounts/templates/registration/activation_email_subject.txt
rename : templates/registration/login.html => accounts/templates/registration/login.html
rename : templates/registration/logout.html => accounts/templates/registration/logout.html
rename : templates/registration/password_change_done.html => accounts/templates/registration/password_change_done.html
rename : templates/registration/password_change_form.html => accounts/templates/registration/password_change_form.html
rename : templates/registration/password_reset_complete.html => accounts/templates/registration/password_reset_complete.html
rename : templates/registration/password_reset_confirm.html => accounts/templates/registration/password_reset_confirm.html
rename : templates/registration/password_reset_done.html => accounts/templates/registration/password_reset_done.html
rename : templates/registration/password_reset_email.html => accounts/templates/registration/password_reset_email.html
rename : templates/registration/password_reset_form.html => accounts/templates/registration/password_reset_form.html
rename : templates/registration/registration_complete.html => accounts/templates/registration/registration_complete.html
rename : templates/registration/registration_form.html => accounts/templates/registration/registration_form.html
rename : templates/404.html => common/templates/404.html
rename : templates/base.html => common/templates/base.html
rename : templates/main_menu.html => common/templates/main_menu.html
Showing 100 changed files with 4450 additions and 754 deletions

Too many changes to show.

To preserve performance only 57 of 100 files are displayed.

README-DEV
@@ -17,8 +17,4 @@ dodawanie pól leksemu w historii @@ -17,8 +17,4 @@ dodawanie pól leksemu w historii
17 1. attribute_translation_list 17 1. attribute_translation_list
18 2. lexeme_attribute_order 18 2. lexeme_attribute_order
19 3. get_lexeme_attr 19 3. get_lexeme_attr
20 -4. prepare_value  
21 -  
22 -wyszukiwanie wywołań gettext w javascripcie  
23 -  
24 -grep -no 'gettext([^)]*)' -r . | sed -e 's/:gettext(/\nmsgid /' -e 's/")/"\nmsgstr ""\n/' -e 's%./%# %'  
25 \ No newline at end of file 20 \ No newline at end of file
  21 +4. prepare_value
26 \ No newline at end of file 22 \ No newline at end of file
accounts/locale/en/LC_MESSAGES/django.po 0 → 100644
  1 +# English translation of the accounts module.
  2 +# Copyright (C) 2015
  3 +# This file is distributed under the same license as the Lexeme Forge package.
  4 +# Jan Szejko <jan.szejko@ipipan.waw.pl>, 2015.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: 1.0\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: Jan Szejko <jan.szejko@ipipan.waw.pl>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: en\n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +
  20 +#: models.py:19
  21 +msgid "wyszukiwanie przyrostowe"
  22 +msgstr "incremental search"
  23 +
  24 +#: models.py:20
  25 +msgid ""
  26 +"Wyszukiwanie odbywa się automatycznie w miarę wpisywania szukanego hasła. "
  27 +"Sugerujemy wyłączenie w wypadku wolnego połączenia internetowego."
  28 +msgstr ""
  29 +"Search is automatically performed while the search entry is being entered. "
  30 +"Not recommended for slow Internet connections."
  31 +
  32 +#: models.py:25
  33 +msgid "domyślny słownik właściciel dodawanych leksemów"
  34 +msgstr "default owner dictionary of created lexemes"
  35 +
  36 +#: models.py:28
  37 +msgid "domyślna część mowy dodawanych leksemów"
  38 +msgstr "default part of speech of created lexemes"
  39 +
  40 +#: models.py:47
  41 +msgid "Może nadawać dowolne role"
  42 +msgstr "Can give any role"
  43 +
  44 +#: templates/manage_groups.html:9 templates/manage_groups.html.py:12
  45 +msgid "Role użytkowników"
  46 +msgstr "User roles"
  47 +
  48 +#: templates/manage_groups.html:15
  49 +msgid "nazwa"
  50 +msgstr "name"
  51 +
  52 +#: templates/settings.html:4
  53 +msgid "Ustawienia"
  54 +msgstr "Settings"
  55 +
  56 +#: templates/settings.html:7
  57 +msgid "Ustawienia użytkownika"
  58 +msgstr "User settings"
  59 +
  60 +#: templates/settings.html:17
  61 +msgid "Zmiana hasła"
  62 +msgstr "Change password"
  63 +
  64 +#: templates/registration/activation_complete.html:5
  65 +msgid "Your account is active."
  66 +msgstr ""
  67 +
  68 +#: templates/registration/activation_complete.html:6
  69 +msgid "Now you can log in."
  70 +msgstr ""
  71 +
  72 +#: templates/registration/login.html:8
  73 +#: templates/registration/password_change_form.html:16
  74 +#: templates/registration/registration_form.html:24
  75 +msgid "Please correct the error below."
  76 +msgid_plural "Please correct the errors below."
  77 +msgstr[0] ""
  78 +msgstr[1] ""
  79 +
  80 +#: templates/registration/login.html:28
  81 +#: templates/registration/password_reset_complete.html:12
  82 +msgid "Log in"
  83 +msgstr ""
  84 +
  85 +#: templates/registration/login.html:32
  86 +msgid "I forgot my password"
  87 +msgstr ""
  88 +
  89 +#: templates/registration/logout.html:7
  90 +msgid "Thanks for using our Web site."
  91 +msgstr ""
  92 +
  93 +#: templates/registration/logout.html:9
  94 +msgid "Log in again"
  95 +msgstr ""
  96 +
  97 +#: templates/registration/password_change_done.html:5
  98 +#: templates/registration/password_change_form.html:4
  99 +msgid "Change password"
  100 +msgstr ""
  101 +
  102 +#: templates/registration/password_change_done.html:6
  103 +#: templates/registration/password_change_form.html:5
  104 +msgid "Log out"
  105 +msgstr ""
  106 +
  107 +#: templates/registration/password_change_done.html:8
  108 +#: templates/registration/password_change_done.html:12
  109 +msgid "Password change successful"
  110 +msgstr ""
  111 +
  112 +#: templates/registration/password_change_done.html:14
  113 +msgid "Your password was changed."
  114 +msgstr ""
  115 +
  116 +#: templates/registration/password_change_form.html:7
  117 +#: templates/registration/password_change_form.html:20
  118 +msgid "Password change"
  119 +msgstr ""
  120 +
  121 +#: templates/registration/password_change_form.html:22
  122 +msgid ""
  123 +"Please enter your old password, for security's sake, and then enter your new "
  124 +"password twice so we can verify you typed it in correctly."
  125 +msgstr ""
  126 +
  127 +#: templates/registration/password_change_form.html:29
  128 +msgid "Old password"
  129 +msgstr ""
  130 +
  131 +#: templates/registration/password_change_form.html:35
  132 +msgid "New password"
  133 +msgstr ""
  134 +
  135 +#: templates/registration/password_change_form.html:41
  136 +msgid "Password (again)"
  137 +msgstr ""
  138 +
  139 +#: templates/registration/password_change_form.html:48
  140 +#: templates/registration/password_reset_confirm.html:24
  141 +msgid "Change my password"
  142 +msgstr ""
  143 +
  144 +#: templates/registration/password_reset_complete.html:4
  145 +#: templates/registration/password_reset_complete.html:8
  146 +msgid "Password reset complete"
  147 +msgstr ""
  148 +
  149 +#: templates/registration/password_reset_complete.html:10
  150 +msgid "Your password has been set. You may go ahead and log in now."
  151 +msgstr ""
  152 +
  153 +#: templates/registration/password_reset_confirm.html:4
  154 +#: templates/registration/password_reset_form.html:4
  155 +#: templates/registration/password_reset_form.html:8
  156 +msgid "Password reset"
  157 +msgstr ""
  158 +
  159 +#: templates/registration/password_reset_confirm.html:10
  160 +msgid "Enter new password"
  161 +msgstr ""
  162 +
  163 +#: templates/registration/password_reset_confirm.html:12
  164 +msgid ""
  165 +"Please enter your new password twice so we can verify you typed it in "
  166 +"correctly."
  167 +msgstr ""
  168 +
  169 +#: templates/registration/password_reset_confirm.html:17
  170 +msgid "New password:"
  171 +msgstr ""
  172 +
  173 +#: templates/registration/password_reset_confirm.html:21
  174 +msgid "Confirm password:"
  175 +msgstr ""
  176 +
  177 +#: templates/registration/password_reset_confirm.html:30
  178 +msgid "Password reset unsuccessful"
  179 +msgstr ""
  180 +
  181 +#: templates/registration/password_reset_confirm.html:32
  182 +msgid ""
  183 +"The password reset link was invalid, possibly because it has already been "
  184 +"used. Please request a new password reset."
  185 +msgstr ""
  186 +
  187 +#: templates/registration/password_reset_done.html:4
  188 +#: templates/registration/password_reset_done.html:8
  189 +msgid "Password reset successful"
  190 +msgstr ""
  191 +
  192 +#: templates/registration/password_reset_done.html:10
  193 +msgid ""
  194 +"We've e-mailed you instructions for setting your password to the e-mail "
  195 +"address you submitted. You should be receiving it shortly."
  196 +msgstr ""
  197 +
  198 +#: templates/registration/password_reset_form.html:10
  199 +msgid ""
  200 +"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
  201 +"instructions for setting a new one."
  202 +msgstr ""
  203 +
  204 +#: templates/registration/password_reset_form.html:15
  205 +msgid "E-mail address:"
  206 +msgstr ""
  207 +
  208 +#: templates/registration/password_reset_form.html:16
  209 +msgid "Reset my password"
  210 +msgstr ""
  211 +
  212 +#: templates/registration/registration_form.html:15
  213 +#: templates/registration/registration_form.html:28
  214 +msgid "Registration"
  215 +msgstr ""
  216 +
  217 +#: templates/registration/registration_form.html:33
  218 +msgid "Add user"
  219 +msgstr ""
accounts/locale/pl/LC_MESSAGES/django.po 0 → 100644
  1 +# SOME DESCRIPTIVE TITLE.
  2 +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
  3 +# This file is distributed under the same license as the PACKAGE package.
  4 +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: PACKAGE VERSION\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: \n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
  20 +"|| n%100>=20) ? 1 : 2);\n"
  21 +
  22 +#: models.py:19
  23 +msgid "wyszukiwanie przyrostowe"
  24 +msgstr ""
  25 +
  26 +#: models.py:20
  27 +msgid ""
  28 +"Wyszukiwanie odbywa się automatycznie w miarę wpisywania szukanego hasła. "
  29 +"Sugerujemy wyłączenie w wypadku wolnego połączenia internetowego."
  30 +msgstr ""
  31 +
  32 +#: models.py:25
  33 +msgid "domyślny słownik właściciel dodawanych leksemów"
  34 +msgstr ""
  35 +
  36 +#: models.py:28
  37 +msgid "domyślna część mowy dodawanych leksemów"
  38 +msgstr ""
  39 +
  40 +#: models.py:47
  41 +msgid "Może nadawać dowolne role"
  42 +msgstr ""
  43 +
  44 +#: templates/manage_groups.html:9 templates/manage_groups.html.py:12
  45 +msgid "Role użytkowników"
  46 +msgstr ""
  47 +
  48 +#: templates/manage_groups.html:15
  49 +msgid "nazwa"
  50 +msgstr ""
  51 +
  52 +#: templates/settings.html:4
  53 +msgid "Ustawienia"
  54 +msgstr ""
  55 +
  56 +#: templates/settings.html:7
  57 +msgid "Ustawienia użytkownika"
  58 +msgstr ""
  59 +
  60 +#: templates/settings.html:17
  61 +msgid "Zmiana hasła"
  62 +msgstr ""
  63 +
  64 +#: templates/registration/activation_complete.html:5
  65 +msgid "Your account is active."
  66 +msgstr "Twoje konto jest aktywne"
  67 +
  68 +#: templates/registration/activation_complete.html:6
  69 +msgid "Now you can log in."
  70 +msgstr "Możesz się teraz zalogować."
  71 +
  72 +#: templates/registration/login.html:8
  73 +#: templates/registration/password_change_form.html:16
  74 +#: templates/registration/registration_form.html:24
  75 +msgid "Please correct the error below."
  76 +msgid_plural "Please correct the errors below."
  77 +msgstr[0] "Proszę poprawić poniższy błąd."
  78 +msgstr[1] "Proszę poprawić poniższe błędy."
  79 +msgstr[2] "Proszę poprawić poniższe błędy."
  80 +
  81 +#: templates/registration/login.html:28
  82 +#: templates/registration/password_reset_complete.html:12
  83 +msgid "Log in"
  84 +msgstr ""
  85 +
  86 +#: templates/registration/login.html:32
  87 +msgid "I forgot my password"
  88 +msgstr "Nie pamiętam hasła"
  89 +
  90 +#: templates/registration/logout.html:7
  91 +msgid "Thanks for using our Web site."
  92 +msgstr "Dziękujemy za skorzystanie z serwisu."
  93 +
  94 +#: templates/registration/logout.html:9
  95 +msgid "Log in again"
  96 +msgstr ""
  97 +
  98 +#: templates/registration/password_change_done.html:5
  99 +#: templates/registration/password_change_form.html:4
  100 +msgid "Change password"
  101 +msgstr ""
  102 +
  103 +#: templates/registration/password_change_done.html:6
  104 +#: templates/registration/password_change_form.html:5
  105 +msgid "Log out"
  106 +msgstr ""
  107 +
  108 +#: templates/registration/password_change_done.html:8
  109 +#: templates/registration/password_change_done.html:12
  110 +msgid "Password change successful"
  111 +msgstr ""
  112 +
  113 +#: templates/registration/password_change_done.html:14
  114 +msgid "Your password was changed."
  115 +msgstr ""
  116 +
  117 +#: templates/registration/password_change_form.html:7
  118 +#: templates/registration/password_change_form.html:20
  119 +msgid "Password change"
  120 +msgstr ""
  121 +
  122 +#: templates/registration/password_change_form.html:22
  123 +msgid ""
  124 +"Please enter your old password, for security's sake, and then enter your new "
  125 +"password twice so we can verify you typed it in correctly."
  126 +msgstr ""
  127 +
  128 +#: templates/registration/password_change_form.html:29
  129 +msgid "Old password"
  130 +msgstr ""
  131 +
  132 +#: templates/registration/password_change_form.html:35
  133 +msgid "New password"
  134 +msgstr ""
  135 +
  136 +#: templates/registration/password_change_form.html:41
  137 +msgid "Password (again)"
  138 +msgstr ""
  139 +
  140 +#: templates/registration/password_change_form.html:48
  141 +#: templates/registration/password_reset_confirm.html:24
  142 +msgid "Change my password"
  143 +msgstr ""
  144 +
  145 +#: templates/registration/password_reset_complete.html:4
  146 +#: templates/registration/password_reset_complete.html:8
  147 +msgid "Password reset complete"
  148 +msgstr ""
  149 +
  150 +#: templates/registration/password_reset_complete.html:10
  151 +msgid "Your password has been set. You may go ahead and log in now."
  152 +msgstr ""
  153 +
  154 +#: templates/registration/password_reset_confirm.html:4
  155 +#: templates/registration/password_reset_form.html:4
  156 +#: templates/registration/password_reset_form.html:8
  157 +msgid "Password reset"
  158 +msgstr ""
  159 +
  160 +#: templates/registration/password_reset_confirm.html:10
  161 +msgid "Enter new password"
  162 +msgstr ""
  163 +
  164 +#: templates/registration/password_reset_confirm.html:12
  165 +msgid ""
  166 +"Please enter your new password twice so we can verify you typed it in "
  167 +"correctly."
  168 +msgstr ""
  169 +
  170 +#: templates/registration/password_reset_confirm.html:17
  171 +msgid "New password:"
  172 +msgstr ""
  173 +
  174 +#: templates/registration/password_reset_confirm.html:21
  175 +msgid "Confirm password:"
  176 +msgstr ""
  177 +
  178 +#: templates/registration/password_reset_confirm.html:30
  179 +msgid "Password reset unsuccessful"
  180 +msgstr ""
  181 +
  182 +#: templates/registration/password_reset_confirm.html:32
  183 +msgid ""
  184 +"The password reset link was invalid, possibly because it has already been "
  185 +"used. Please request a new password reset."
  186 +msgstr ""
  187 +
  188 +#: templates/registration/password_reset_done.html:4
  189 +#: templates/registration/password_reset_done.html:8
  190 +msgid "Password reset successful"
  191 +msgstr ""
  192 +
  193 +#: templates/registration/password_reset_done.html:10
  194 +msgid ""
  195 +"We've e-mailed you instructions for setting your password to the e-mail "
  196 +"address you submitted. You should be receiving it shortly."
  197 +msgstr ""
  198 +
  199 +#: templates/registration/password_reset_form.html:10
  200 +msgid ""
  201 +"Forgotten your password? Enter your e-mail address below, and we'll e-mail "
  202 +"instructions for setting a new one."
  203 +msgstr ""
  204 +
  205 +#: templates/registration/password_reset_form.html:15
  206 +msgid "E-mail address:"
  207 +msgstr "Adres email:"
  208 +
  209 +#: templates/registration/password_reset_form.html:16
  210 +msgid "Reset my password"
  211 +msgstr ""
  212 +
  213 +#: templates/registration/registration_form.html:15
  214 +#: templates/registration/registration_form.html:28
  215 +msgid "Registration"
  216 +msgstr "Rejestracja"
  217 +
  218 +#: templates/registration/registration_form.html:33
  219 +msgid "Add user"
  220 +msgstr "Dodaj użytkownika"
accounts/models.py
@@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
2 2
3 from django.db.models import * 3 from django.db.models import *
4 from django.contrib.auth.models import User, Group 4 from django.contrib.auth.models import User, Group
  5 +from django.utils.translation import gettext as _
5 from dictionary.models import Vocabulary, PartOfSpeech 6 from dictionary.models import Vocabulary, PartOfSpeech
6 7
7 MANAGER_GROUPS = ('Obserwator', 'Leksykograf', 'Superleksykograf') 8 MANAGER_GROUPS = ('Obserwator', 'Leksykograf', 'Superleksykograf')
@@ -15,16 +16,16 @@ class UserSettings(Model): @@ -15,16 +16,16 @@ class UserSettings(Model):
15 user = OneToOneField(User) 16 user = OneToOneField(User)
16 incremental_search = BooleanField( 17 incremental_search = BooleanField(
17 default=True, 18 default=True,
18 - verbose_name=u'wyszukiwanie przyrostowe',  
19 - help_text=u'Wyszukiwanie odbywa się automatycznie w miarę wpisywania '  
20 - u'szukanego hasła. Sugerujemy wyłączenie w wypadku wolnego '  
21 - u'połączenia internetowego.') 19 + verbose_name=_(u'wyszukiwanie przyrostowe'),
  20 + help_text=_(u'Wyszukiwanie odbywa się automatycznie w miarę wpisywania '
  21 + u'szukanego hasła. Sugerujemy wyłączenie w wypadku wolnego '
  22 + u'połączenia internetowego.'))
22 default_owner = ForeignKey( 23 default_owner = ForeignKey(
23 Vocabulary, blank=True, null=True, 24 Vocabulary, blank=True, null=True,
24 - verbose_name=u'domyślny słownik właściciel dodawanych leksemów') 25 + verbose_name=_(u'domyślny słownik właściciel dodawanych leksemów'))
25 default_pos = ForeignKey( 26 default_pos = ForeignKey(
26 PartOfSpeech, blank=True, null=True, 27 PartOfSpeech, blank=True, null=True,
27 - verbose_name=u'domyślna część mowy dodawanych leksemów') 28 + verbose_name=_(u'domyślna część mowy dodawanych leksemów'))
28 29
29 def views_lexeme(self): 30 def views_lexeme(self):
30 return self.user.has_perm('dictionary.view_lexeme') 31 return self.user.has_perm('dictionary.view_lexeme')
@@ -43,5 +44,5 @@ class UserSettings(Model): @@ -43,5 +44,5 @@ class UserSettings(Model):
43 44
44 class Meta: 45 class Meta:
45 permissions = ( 46 permissions = (
46 - ('create_admin', u'Może nadawać dowolne role'), 47 + ('create_admin', _(u'Może nadawać dowolne role')),
47 ) 48 )
accounts/templates/manage_groups.html
1 {% extends "base.html" %} 1 {% extends "base.html" %}
2 -{% load ingroup staticfiles %} 2 +{% load ingroup staticfiles i18n %}
3 3
4 {% block extrahead %} 4 {% block extrahead %}
5 <script type="text/javascript" 5 <script type="text/javascript"
6 src="{% static 'js/manage-groups.js' %}"></script> 6 src="{% static 'js/manage-groups.js' %}"></script>
7 {% endblock %} 7 {% endblock %}
8 8
9 -{% block title %}Role użytkowników{% endblock %} 9 +{% block title %}{% trans 'Role użytkowników' %}{% endblock %}
10 10
11 {% block content %} 11 {% block content %}
12 - <h3>Role użytkowników</h3> 12 + <h3>{% trans 'Role użytkowników' %}</h3>
13 <table id="user-groups"> 13 <table id="user-groups">
14 <tr> 14 <tr>
15 - <th>nazwa</th> 15 + <th>{% trans 'nazwa' %}</th>
16 {% for group in groups %} 16 {% for group in groups %}
17 <th>{{ group.name }}</th> 17 <th>{{ group.name }}</th>
18 {% endfor %} 18 {% endfor %}
templates/registration/activate.html renamed to accounts/templates/registration/activation_complete.html
1 {% extends "base.html" %} 1 {% extends "base.html" %}
2 {% load i18n %} 2 {% load i18n %}
3 -{% load url from future %}  
4 3
5 {% block content %} 4 {% block content %}
6 -  
7 - {% blocktrans %}  
8 - <h1>Activation</h1>  
9 - <p>Your account is now activated. Go <a href="{% url 'main' %}">here</a>  
10 - to continue.</p>  
11 -  
12 - {% endblocktrans %}  
13 - 5 + <h1>{% trans 'Your account is active.' %}</h1>
  6 + <p>{% trans 'Now you can log in.' %}</p>
14 {% endblock %} 7 {% endblock %}
templates/registration/activation_email.txt renamed to accounts/templates/registration/activation_email.txt
templates/registration/activation_email_subject.txt renamed to accounts/templates/registration/activation_email_subject.txt
templates/registration/login.html renamed to accounts/templates/registration/login.html
@@ -5,9 +5,7 @@ @@ -5,9 +5,7 @@
5 {% block content %} 5 {% block content %}
6 {% if form.errors and not form.non_field_errors and not form.this_is_the_login_form.errors %} 6 {% if form.errors and not form.non_field_errors and not form.this_is_the_login_form.errors %}
7 <p class="errornote"> 7 <p class="errornote">
8 - {% blocktrans count form.errors.items|length as counter %}Please  
9 - correct the error below.{% plural %}Please correct the errors  
10 - below.{% endblocktrans %} 8 + {% blocktrans count form.errors.items|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}
11 </p> 9 </p>
12 {% endif %} 10 {% endif %}
13 11
@@ -31,7 +29,7 @@ @@ -31,7 +29,7 @@
31 </div> 29 </div>
32 </form> 30 </form>
33 31
34 - <a href="{% url 'auth_password_reset' %}">Nie pamiętam hasła</a> 32 + <a href="{% url 'auth_password_reset' %}">{% trans 'I forgot my password' %}</a>
35 </div> 33 </div>
36 34
37 <script type="text/javascript"> 35 <script type="text/javascript">
templates/registration/logout.html renamed to accounts/templates/registration/logout.html
@@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
4 4
5 {% block content %} 5 {% block content %}
6 6
7 - <p>{% trans "Thanks for spending some quality time with the Web site today." %}</p> 7 + <p>{% trans "Thanks for using our Web site." %}</p>
8 8
9 <p><a href="{% url 'auth_login' %}">{% trans 'Log in again' %}</a></p> 9 <p><a href="{% url 'auth_login' %}">{% trans 'Log in again' %}</a></p>
10 10
templates/registration/password_change_done.html renamed to accounts/templates/registration/password_change_done.html
templates/registration/password_change_form.html renamed to accounts/templates/registration/password_change_form.html
@@ -13,9 +13,7 @@ @@ -13,9 +13,7 @@
13 <div> 13 <div>
14 {% if form.errors %} 14 {% if form.errors %}
15 <p class="errornote"> 15 <p class="errornote">
16 - {% blocktrans count form.errors.items|length as counter %}  
17 - Please correct the error below.{% plural %}Please  
18 - correct the errors below.{% endblocktrans %} 16 + {% blocktrans count form.errors.items|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}
19 </p> 17 </p>
20 {% endif %} 18 {% endif %}
21 19
templates/registration/password_reset_complete.html renamed to accounts/templates/registration/password_reset_complete.html
templates/registration/password_reset_confirm.html renamed to accounts/templates/registration/password_reset_confirm.html
templates/registration/password_reset_done.html renamed to accounts/templates/registration/password_reset_done.html
templates/registration/password_reset_email.html renamed to accounts/templates/registration/password_reset_email.html
templates/registration/password_reset_form.html renamed to accounts/templates/registration/password_reset_form.html
templates/registration/registration_complete.html renamed to accounts/templates/registration/registration_complete.html
templates/registration/registration_form.html renamed to accounts/templates/registration/registration_form.html
@@ -21,9 +21,7 @@ @@ -21,9 +21,7 @@
21 <div> 21 <div>
22 {% if form.errors %} 22 {% if form.errors %}
23 <p class="errornote"> 23 <p class="errornote">
24 - {% blocktrans count form.errors.items|length as counter %}  
25 - Please correct the error below.{% plural %}Please  
26 - correct the errors below.{% endblocktrans %} 24 + {% blocktrans count form.errors.items|length as counter %}Please correct the error below.{% plural %}Please correct the errors below.{% endblocktrans %}
27 </p> 25 </p>
28 {% endif %} 26 {% endif %}
29 27
accounts/templates/settings.html
1 {% extends "base.html" %} 1 {% extends "base.html" %}
2 -{% load url from future %} 2 +{% load i18n %}
3 3
4 -{% block title %}Ustawienia{% endblock %} 4 +{% block title %}{% trans 'Ustawienia' %}{% endblock %}
5 5
6 {% block content %} 6 {% block content %}
7 - <h1>Ustawienia użytkownika</h1> 7 + <h1>{% trans 'Ustawienia użytkownika' %}</h1>
8 <form method="post" action=""> 8 <form method="post" action="">
9 {{ form.as_p }} 9 {{ form.as_p }}
10 {% csrf_token %} 10 {% csrf_token %}
@@ -14,6 +14,6 @@ @@ -14,6 +14,6 @@
14 </button> 14 </button>
15 </form> 15 </form>
16 <p> 16 <p>
17 - <a href="{% url 'auth_password_change' %}">Zmiana hasła</a> 17 + <a href="{% url 'auth_password_change' %}">{% trans 'Zmiana hasła' %}</a>
18 </p> 18 </p>
19 {% endblock %} 19 {% endblock %}
common/django_patch.py 0 → 100644
  1 +# -*- coding: utf-8 -*-
  2 +
  3 +import os
  4 +import gettext as gettext_module
  5 +
  6 +from django.conf import settings
  7 +from django.utils import importlib
  8 +from django.utils.translation import check_for_language, to_locale, get_language
  9 +from django.utils._os import upath
  10 +from django.utils import six
  11 +from django.views.i18n import render_javascript_catalog
  12 +
  13 +
  14 +# copypasta z django.views.i18n
  15 +# jedyne zmiany to wykomentowany fragment i dodana jedna pętla zamiast
  16 +def get_javascript_catalog(locale, domain, packages):
  17 + default_locale = to_locale(settings.LANGUAGE_CODE)
  18 + packages = [p for p in packages if p == 'django.conf' or p in settings.INSTALLED_APPS]
  19 + t = {}
  20 + paths = []
  21 + en_selected = locale.startswith('en')
  22 + en_catalog_missing = True
  23 + # paths of requested packages
  24 + for package in packages:
  25 + p = importlib.import_module(package)
  26 + path = os.path.join(os.path.dirname(upath(p.__file__)), 'locale')
  27 + paths.append(path)
  28 + # add the filesystem paths listed in the LOCALE_PATHS setting
  29 + paths.extend(list(reversed(settings.LOCALE_PATHS)))
  30 + # # first load all english languages files for defaults
  31 + # for path in paths:
  32 + # try:
  33 + # catalog = gettext_module.translation(domain, path, ['en'])
  34 + # t.update(catalog._catalog)
  35 + # except IOError:
  36 + # pass
  37 + # else:
  38 + # # 'en' is the selected language and at least one of the packages
  39 + # # listed in `packages` has an 'en' catalog
  40 + # if en_selected:
  41 + # en_catalog_missing = False
  42 + # next load the settings.LANGUAGE_CODE translations if it isn't english
  43 + # if default_locale != 'en':
  44 + # for path in paths:
  45 + # try:
  46 + # catalog = gettext_module.translation(domain, path, [default_locale])
  47 + # except IOError:
  48 + # catalog = None
  49 + # if catalog is not None:
  50 + # t.update(catalog._catalog)
  51 + # # last load the currently selected language, if it isn't identical to the default.
  52 + # if locale != default_locale:
  53 + # # If the currently selected language is English but it doesn't have a
  54 + # # translation catalog (presumably due to being the language translated
  55 + # # from) then a wrong language catalog might have been loaded in the
  56 + # # previous step. It needs to be discarded.
  57 + # if en_selected and en_catalog_missing:
  58 + # t = {}
  59 + # else:
  60 + # locale_t = {}
  61 + # for path in paths:
  62 + # try:
  63 + # catalog = gettext_module.translation(domain, path, [locale])
  64 + # except IOError:
  65 + # catalog = None
  66 + # if catalog is not None:
  67 + # locale_t.update(catalog._catalog)
  68 + # if locale_t:
  69 + # t = locale_t
  70 + for path in paths:
  71 + try:
  72 + catalog = gettext_module.translation(domain, path, [locale])
  73 + except IOError:
  74 + catalog = None
  75 + if catalog is not None:
  76 + t.update(catalog._catalog)
  77 +
  78 + plural = None
  79 + if '' in t:
  80 + for l in t[''].split('\n'):
  81 + if l.startswith('Plural-Forms:'):
  82 + plural = l.split(':', 1)[1].strip()
  83 + if plural is not None:
  84 + # this should actually be a compiled function of a typical plural-form:
  85 + # Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;
  86 + plural = [el.strip() for el in plural.split(';') if el.strip().startswith('plural=')][0].split('=', 1)[1]
  87 +
  88 + pdict = {}
  89 + maxcnts = {}
  90 + catalog = {}
  91 + for k, v in t.items():
  92 + if k == '':
  93 + continue
  94 + if isinstance(k, six.string_types):
  95 + catalog[k] = v
  96 + elif isinstance(k, tuple):
  97 + msgid = k[0]
  98 + cnt = k[1]
  99 + maxcnts[msgid] = max(cnt, maxcnts.get(msgid, 0))
  100 + pdict.setdefault(msgid, {})[cnt] = v
  101 + else:
  102 + raise TypeError(k)
  103 + for k, v in pdict.items():
  104 + catalog[k] = [v.get(i, '') for i in range(maxcnts[msgid] + 1)]
  105 +
  106 + return catalog, plural
  107 +
  108 +
  109 +def javascript_catalog(request, domain='djangojs', packages=None):
  110 + """
  111 + Returns the selected language catalog as a javascript library.
  112 +
  113 + Receives the list of packages to check for translations in the
  114 + packages parameter either from an infodict or as a +-delimited
  115 + string from the request. Default is 'django.conf'.
  116 +
  117 + Additionally you can override the gettext domain for this view,
  118 + but usually you don't want to do that, as JavaScript messages
  119 + go to the djangojs domain. But this might be needed if you
  120 + deliver your JavaScript source from Django templates.
  121 + """
  122 + locale = to_locale(get_language())
  123 +
  124 + if request.GET and 'language' in request.GET:
  125 + if check_for_language(request.GET['language']):
  126 + locale = to_locale(request.GET['language'])
  127 +
  128 + if packages is None:
  129 + packages = ['django.conf']
  130 + if isinstance(packages, six.string_types):
  131 + packages = packages.split('+')
  132 +
  133 + catalog, plural = get_javascript_catalog(locale, domain, packages)
  134 + return render_javascript_catalog(catalog, plural)
common/forms.py
@@ -14,7 +14,8 @@ def remove_holddown(form, fields): @@ -14,7 +14,8 @@ def remove_holddown(form, fields):
14 """This removes the unhelpful "Hold down the...." help texts for the 14 """This removes the unhelpful "Hold down the...." help texts for the
15 specified fields for a form.""" 15 specified fields for a form."""
16 remove_message = unicode( 16 remove_message = unicode(
17 - _('Hold down "Control", or "Command" on a Mac, to select more than one.')) 17 + _('Hold down "Control", or "Command" on a Mac, '
  18 + 'to select more than one.'))
18 for field in fields: 19 for field in fields:
19 if field in form.base_fields: 20 if field in form.base_fields:
20 if form.base_fields[field].help_text: 21 if form.base_fields[field].help_text:
@@ -28,4 +29,4 @@ def disable_field(field): @@ -28,4 +29,4 @@ def disable_field(field):
28 if type(field.widget) in (Textarea, TextInput): 29 if type(field.widget) in (Textarea, TextInput):
29 field.widget.attrs['readonly'] = 'readonly' 30 field.widget.attrs['readonly'] = 'readonly'
30 else: 31 else:
31 - field.widget.attrs['disabled'] = 'disabled'  
32 \ No newline at end of file 32 \ No newline at end of file
  33 + field.widget.attrs['disabled'] = 'disabled'
common/locale/en/LC_MESSAGES/django.po 0 → 100644
  1 +# English translation of the common module.
  2 +# Copyright (C) 2015
  3 +# This file is distributed under the same license as the Lexeme Forge package.
  4 +# Jan Szejko <jan.szejko@ipipan.waw.pl>, 2015.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: 1.0\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: Jan Szejko <jan.szejko@ipipan.waw.pl>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: en\n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +
  20 +#: forms.py:17
  21 +msgid ""
  22 +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
  23 +msgstr ""
  24 +
  25 +#: util.py:140
  26 +msgid "%d.%m.%Y %H:%M"
  27 +msgstr "%Y/%m/%d %I:%M %p"
  28 +
  29 +#: util.py:144
  30 +msgid "%d.%m.%Y %H:%M:%S.%f"
  31 +msgstr "%Y/%m/%d %I:%M:%S.%f %p"
  32 +
  33 +#: templates/404.html:4
  34 +msgid "Błąd 404: nie znaleziono pliku"
  35 +msgstr "Error 404: File Not Found"
  36 +
  37 +#: templates/404.html:7
  38 +msgid "Błąd: wybrano błędny adres."
  39 +msgstr "Error: wrong address entered"
  40 +
  41 +#: templates/base.html:68
  42 +msgid "Ustawienia"
  43 +msgstr "Settings"
  44 +
  45 +#: templates/base.html:70
  46 +msgid "Wyloguj się"
  47 +msgstr "Log out"
  48 +
  49 +#: templates/main_menu.html:4 templates/main_menu.html.py:7
  50 +msgid "Leksemy"
  51 +msgstr "Lexemes"
  52 +
  53 +#: templates/main_menu.html:10
  54 +msgid "Wzory"
  55 +msgstr "Patterns"
  56 +
  57 +#: templates/main_menu.html:18
  58 +msgid "Historia"
  59 +msgstr "History"
  60 +
  61 +#: templates/main_menu.html:27
  62 +msgid "Administracja"
  63 +msgstr "Administration"
common/locale/en/LC_MESSAGES/djangojs.po
1 -# common.js:188 1 +# English translation of the common module.
  2 +# Copyright (C) 2015
  3 +# This file is distributed under the same license as the Lexeme Forge package.
  4 +# Jan Szejko <jan.szejko@ipipan.waw.pl>, 2015.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: 1.0\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: Jan Szejko <jan.szejko@ipipan.waw.pl>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: en\n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +
  20 +#: static/js/common.js:188
2 msgid "Sesja wygasła — zaloguj się i spróbuj ponownie." 21 msgid "Sesja wygasła — zaloguj się i spróbuj ponownie."
3 msgstr "Session expired – log in and try again." 22 msgstr "Session expired – log in and try again."
4 23
5 -# common.js:192 24 +#: static/js/common.js:192
6 msgid "Odmowa dostępu — brak uprawnień." 25 msgid "Odmowa dostępu — brak uprawnień."
7 msgstr "Access denied — insufficient permissions" 26 msgstr "Access denied — insufficient permissions"
8 27
9 -# common.js:195 28 +#: static/js/common.js:195
10 msgid "Żądanie" 29 msgid "Żądanie"
11 msgstr "Request" 30 msgstr "Request"
12 31
13 -# common.js:196 32 +#: static/js/common.js:196
14 msgid "nie powiodło się" 33 msgid "nie powiodło się"
15 -msgstr "failed"  
16 \ No newline at end of file 34 \ No newline at end of file
  35 +msgstr "failed"
common/locale/pl/LC_MESSAGES/django.po 0 → 100644
  1 +# SOME DESCRIPTIVE TITLE.
  2 +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
  3 +# This file is distributed under the same license as the PACKAGE package.
  4 +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: PACKAGE VERSION\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: \n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
  20 +"|| n%100>=20) ? 1 : 2);\n"
  21 +
  22 +#: forms.py:17
  23 +msgid ""
  24 +"Hold down \"Control\", or \"Command\" on a Mac, to select more than one."
  25 +msgstr ""
  26 +
  27 +#: util.py:140
  28 +msgid "%d.%m.%Y %H:%M"
  29 +msgstr ""
  30 +
  31 +#: util.py:144
  32 +msgid "%d.%m.%Y %H:%M:%S.%f"
  33 +msgstr ""
  34 +
  35 +#: templates/404.html:4
  36 +msgid "Błąd 404: nie znaleziono pliku"
  37 +msgstr ""
  38 +
  39 +#: templates/404.html:7
  40 +msgid "Błąd: wybrano błędny adres."
  41 +msgstr ""
  42 +
  43 +#: templates/base.html:68
  44 +msgid "Ustawienia"
  45 +msgstr ""
  46 +
  47 +#: templates/base.html:70
  48 +msgid "Wyloguj się"
  49 +msgstr ""
  50 +
  51 +#: templates/main_menu.html:4 templates/main_menu.html.py:7
  52 +msgid "Leksemy"
  53 +msgstr ""
  54 +
  55 +#: templates/main_menu.html:10
  56 +msgid "Wzory"
  57 +msgstr ""
  58 +
  59 +#: templates/main_menu.html:18
  60 +msgid "Historia"
  61 +msgstr ""
  62 +
  63 +#: templates/main_menu.html:27
  64 +msgid "Administracja"
  65 +msgstr ""
common/locale/pl/LC_MESSAGES/djangojs.po 0 → 100644
  1 +# SOME DESCRIPTIVE TITLE.
  2 +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
  3 +# This file is distributed under the same license as the PACKAGE package.
  4 +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: PACKAGE VERSION\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: \n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
  20 +"|| n%100>=20) ? 1 : 2);\n"
  21 +
  22 +#: static/js/common.js:188
  23 +msgid "Sesja wygasła — zaloguj się i spróbuj ponownie."
  24 +msgstr ""
  25 +
  26 +#: static/js/common.js:192
  27 +msgid "Odmowa dostępu — brak uprawnień."
  28 +msgstr ""
  29 +
  30 +#: static/js/common.js:195
  31 +msgid "Żądanie"
  32 +msgstr ""
  33 +
  34 +#: static/js/common.js:196
  35 +msgid "nie powiodło się"
  36 +msgstr ""
templates/404.html renamed to common/templates/404.html
1 {% extends "base.html" %} 1 {% extends "base.html" %}
2 -{% load staticfiles %} 2 +{% load staticfiles i18n %}
3 3
4 -{% block title %}Błąd 404: nie znaleziono pliku{% endblock %} 4 +{% block title %}{% trans 'Błąd 404: nie znaleziono pliku' %}{% endblock %}
5 5
6 {% block content %} 6 {% block content %}
7 - <p style="font-size: large;">Błąd: wybrano błędny adres.</p> 7 + <p style="font-size: large;">{% trans 'Błąd: wybrano błędny adres.' %}</p>
8 {% endblock %} 8 {% endblock %}
templates/base.html renamed to common/templates/base.html
1 -{% load url from future %}{% load staticfiles %}<!DOCTYPE HTML> 1 +{% load staticfiles %}<!DOCTYPE HTML>
2 <html> 2 <html>
3 <head> 3 <head>
4 <title>{% block title %}{% endblock %}</title> 4 <title>{% block title %}{% endblock %}</title>
@@ -65,9 +65,9 @@ @@ -65,9 +65,9 @@
65 {{ user.username }}{% endfilter %}</strong> 65 {{ user.username }}{% endfilter %}</strong>
66 {% block userlinks %} 66 {% block userlinks %}
67 <a href="{% url 'settings' %}"> 67 <a href="{% url 'settings' %}">
68 - Ustawienia</a> / 68 + {% trans 'Ustawienia' %}</a> /
69 <a href="{% url 'auth_logout' %}"> 69 <a href="{% url 'auth_logout' %}">
70 - {% trans 'Log out' %}</a> 70 + {% trans 'Wyloguj się' %}</a>
71 {% endblock %} 71 {% endblock %}
72 </div> 72 </div>
73 {% endif %} 73 {% endif %}
templates/main_menu.html renamed to common/templates/main_menu.html
1 -{% load url from future %} 1 +{% load i18n %}
2 <ul id="main_menu"> 2 <ul id="main_menu">
3 {% if not user.is_authenticated %} 3 {% if not user.is_authenticated %}
4 - <li><a href="{% url 'reader_view' %}">Leksemy</a></li> 4 + <li><a href="{% url 'reader_view' %}">{% trans 'Leksemy' %}</a></li>
5 {% endif %} 5 {% endif %}
6 {% if perms.dictionary.view_lexeme %} 6 {% if perms.dictionary.view_lexeme %}
7 - <li><a href="{% url 'lexeme_view' %}">Leksemy</a></li> 7 + <li><a href="{% url 'lexeme_view' %}">{% trans 'Leksemy' %}</a></li>
8 {% endif %} 8 {% endif %}
9 {% if perms.dictionary.view_pattern %} 9 {% if perms.dictionary.view_pattern %}
10 - <li><a href="{% url 'pattern_view' %}">Wzory</a></li> 10 + <li><a href="{% url 'pattern_view' %}">{% trans 'Wzory' %}</a></li>
11 {% endif %} 11 {% endif %}
12 {% if user.is_authenticated %} 12 {% if user.is_authenticated %}
13 - <li><a href="{% url 'tasks' %}">Zadania</a></li>  
14 - <li><a href="{% url 'reports' %}">Raporty</a></li>  
15 - <li><a href="{% url 'history_view' %}">Historia</a></li> 13 + {% comment %}
  14 + <li><a href="{% url 'tasks' %}">{% trans 'Zadania' %}</a></li>
  15 + <li><a href="{% url 'reports' %}">{% trans 'Raporty' %}</a></li>
  16 + {% endcomment %}
  17 + <li><a href="{% url 'history_view' %}">{% trans 'Historia' %}</a></li>
16 {% endif %} 18 {% endif %}
17 {% comment %} 19 {% comment %}
18 {% if perms.dictionary.export_lexemes %} 20 {% if perms.dictionary.export_lexemes %}
19 - <li><a href="{% url 'export' %}">Eksport</a></li> 21 + <li><a href="{% url 'export' %}">{% trans 'Eksport' %}</a></li>
20 {% endif %} 22 {% endif %}
21 {% endcomment %} 23 {% endcomment %}
22 {% if perms.dictionary.manage_vocabulary or perms.auth.add_user %} 24 {% if perms.dictionary.manage_vocabulary or perms.auth.add_user %}
23 - <li><a href="{% url 'management_menu' %}">Administracja</a></li> 25 + <li><a href="{% url 'management_menu' %}">{% trans 'Administracja' %}</a></li>
24 {% endif %} 26 {% endif %}
25 </ul> 27 </ul>
common/urls.py
@@ -8,6 +8,6 @@ js_info_dict = { @@ -8,6 +8,6 @@ js_info_dict = {
8 8
9 urlpatterns = patterns( 9 urlpatterns = patterns(
10 '', 10 '',
11 - (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', js_info_dict, 11 + (r'^jsi18n/$', 'common.django_patch.javascript_catalog', js_info_dict,
12 'jsi18n'), 12 'jsi18n'),
13 ) 13 )
common/util.py
@@ -4,6 +4,7 @@ import json @@ -4,6 +4,7 @@ import json
4 import sys 4 import sys
5 from django.conf import urls 5 from django.conf import urls
6 from django.http import HttpResponseRedirect 6 from django.http import HttpResponseRedirect
  7 +from django.utils.translation import ugettext_lazy as _
7 8
8 9
9 def uniopen(filename): 10 def uniopen(filename):
@@ -18,14 +19,14 @@ def debug(entry, text): @@ -18,14 +19,14 @@ def debug(entry, text):
18 print>> sys.stderr, (u'%s: %s' % (entry, text)).encode() 19 print>> sys.stderr, (u'%s: %s' % (entry, text)).encode()
19 20
20 21
21 -def error_redirect(request, error, url='/'): 22 +def error_redirect(request, error, redirect_url='/'):
22 request.session['error'] = error 23 request.session['error'] = error
23 - return HttpResponseRedirect(url) 24 + return HttpResponseRedirect(redirect_url)
24 25
25 26
26 -def message_redirect(request, message, url='/'): 27 +def message_redirect(request, message, redirect_url='/'):
27 request.session['message'] = message 28 request.session['message'] = message
28 - return HttpResponseRedirect(url) 29 + return HttpResponseRedirect(redirect_url)
29 30
30 31
31 def make_form(request, form_class, **kwargs): 32 def make_form(request, form_class, **kwargs):
@@ -136,8 +137,8 @@ class FakeQueryset(list): @@ -136,8 +137,8 @@ class FakeQueryset(list):
136 137
137 138
138 def format_date(date): 139 def format_date(date):
139 - return date.strftime('%d.%m.%Y %H:%M') 140 + return date.strftime(_('%d.%m.%Y %H:%M'))
140 141
141 142
142 def format_date_exact(date): 143 def format_date_exact(date):
143 - return date.strftime('%d.%m.%Y %H:%M:%S.%f')  
144 \ No newline at end of file 144 \ No newline at end of file
  145 + return date.strftime(_('%d.%m.%Y %H:%M:%S.%f'))
dictionary/ajax_lexeme_view.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 import datetime 2 import datetime
3 3
4 -from django.contrib.auth.models import User  
5 from django.core.cache import cache 4 from django.core.cache import cache
  5 +from django.utils.translation import ugettext as _
6 from django.db.models import Max 6 from django.db.models import Max
  7 +
7 from dictionary.ajax_lexeme_slickgrid import LexemeQuery 8 from dictionary.ajax_lexeme_slickgrid import LexemeQuery
8 from dictionary.auto_derivatives import lexeme_derivatives, create_derivative 9 from dictionary.auto_derivatives import lexeme_derivatives, create_derivative
9 from dictionary.models import Lexeme, LexemeInflectionPattern, PartOfSpeech, \ 10 from dictionary.models import Lexeme, LexemeInflectionPattern, PartOfSpeech, \
@@ -222,7 +223,7 @@ def new_lip_edit_row(request, lexeme_id, pos_id, num): @@ -222,7 +223,7 @@ def new_lip_edit_row(request, lexeme_id, pos_id, num):
222 if not l.perm(request.user, 'change'): 223 if not l.perm(request.user, 'change'):
223 raise AjaxError('access denied') 224 raise AjaxError('access denied')
224 if not pos_id: 225 if not pos_id:
225 - raise AjaxError(u'Nieokreślona część mowy.') 226 + raise AjaxError(_(u'Nieokreślona część mowy.'))
226 pos = PartOfSpeech.objects.get(pk=pos_id) 227 pos = PartOfSpeech.objects.get(pk=pos_id)
227 lip_form = LIPEditForm( 228 lip_form = LIPEditForm(
228 part_of_speech=pos, prefix='lip_add_%s' % num, user=request.user) 229 part_of_speech=pos, prefix='lip_add_%s' % num, user=request.user)
@@ -341,7 +342,7 @@ def update_lexeme(request, form_data): @@ -341,7 +342,7 @@ def update_lexeme(request, form_data):
341 lip.root = l.get_root(lip.pattern, lip.gender) 342 lip.root = l.get_root(lip.pattern, lip.gender)
342 if lip.root is None: 343 if lip.root is None:
343 raise AjaxError( 344 raise AjaxError(
344 - u'Niepasujące zakończenie formy podstawowej.') 345 + _(u'Niepasujące zakończenie formy podstawowej.'))
345 for qualifier in lip_form.fields['qualifiers'].queryset: 346 for qualifier in lip_form.fields['qualifiers'].queryset:
346 qualifier.set_for( 347 qualifier.set_for(
347 lip, qualifier in lip_form.cleaned_data['qualifiers']) 348 lip, qualifier in lip_form.cleaned_data['qualifiers'])
@@ -356,7 +357,7 @@ def update_lexeme(request, form_data): @@ -356,7 +357,7 @@ def update_lexeme(request, form_data):
356 else: 357 else:
357 raise AjaxError(error_messages(cr_form)) 358 raise AjaxError(error_messages(cr_form))
358 if len(submitted_lips) == 0 and l.status != Lexeme.STATUS_CANDIDATE: 359 if len(submitted_lips) == 0 and l.status != Lexeme.STATUS_CANDIDATE:
359 - raise AjaxError(u'Wybierz odmianę lub ustaw status "kandydat".') 360 + raise AjaxError(_(u'Wybierz odmianę lub ustaw status „kandydat”.'))
360 361
361 extra_attrs = l.attributes() 362 extra_attrs = l.attributes()
362 for attr in extra_attrs: 363 for attr in extra_attrs:
@@ -424,7 +425,7 @@ def create_derivatives(request, lexeme_id, chosen_derivatives): @@ -424,7 +425,7 @@ def create_derivatives(request, lexeme_id, chosen_derivatives):
424 pos = der_data['pos'] 425 pos = der_data['pos']
425 entry = der_data['entry'] 426 entry = der_data['entry']
426 if entry == '': 427 if entry == '':
427 - raise AjaxError(u'Nie wpisano hasła') 428 + raise AjaxError(_(u'Nie wpisano hasła'))
428 new_lexemes = create_derivative( 429 new_lexemes = create_derivative(
429 lexeme, pos, entry, pl=der_data.get('pl'), 430 lexeme, pos, entry, pl=der_data.get('pl'),
430 index=der_data['index']) 431 index=der_data['index'])
@@ -519,7 +520,7 @@ def create_lexeme(request): @@ -519,7 +520,7 @@ def create_lexeme(request):
519 owner = editable[0] 520 owner = editable[0]
520 pos_id = request.user.usersettings.default_pos_id or 'subst' 521 pos_id = request.user.usersettings.default_pos_id or 'subst'
521 if not owner: 522 if not owner:
522 - raise AjaxError(u'Nie wybrano słownika właściciela') 523 + raise AjaxError(_(u'Nie wybrano słownika właściciela'))
523 if request.user not in owner.all_editors(): 524 if request.user not in owner.all_editors():
524 raise AjaxError('access denied') 525 raise AjaxError('access denied')
525 next_id = Lexeme.all_objects.filter( 526 next_id = Lexeme.all_objects.filter(
@@ -585,19 +586,18 @@ def cr_homonyms(request, entry, cr_type): @@ -585,19 +586,18 @@ def cr_homonyms(request, entry, cr_type):
585 entry=entry, part_of_speech=pos, vocabularies__in=visible_vocabs) 586 entry=entry, part_of_speech=pos, vocabularies__in=visible_vocabs)
586 aspect = LexemeAttribute.objects.get(name=u'aspekt') 587 aspect = LexemeAttribute.objects.get(name=u'aspekt')
587 if pos in aspect.parts_of_speech.all(): 588 if pos in aspect.parts_of_speech.all():
588 - labels = (u'Nr hom.', u'Aspekt', u'Wzór')  
589 - aspect = LexemeAttribute.objects.get(name=u'aspekt') 589 + labels = (_(u'Nr hom.'), _(u'Aspekt'), _(u'Wzór'))
590 make_row = lambda lexeme, lip_data: ( 590 make_row = lambda lexeme, lip_data: (
591 lexeme.homonym_number, 591 lexeme.homonym_number,
592 lexeme.attribute_value(aspect).value 592 lexeme.attribute_value(aspect).value
593 if lexeme.attribute_value(aspect) else '', 593 if lexeme.attribute_value(aspect) else '',
594 lip_data['patterns']) 594 lip_data['patterns'])
595 elif pos.lexical_class_id == 'subst': 595 elif pos.lexical_class_id == 'subst':
596 - labels = (u'Nr hom.', u'Rodzaj', u'Wzór') 596 + labels = (_(u'Nr hom.'), _(u'Rodzaj'), _(u'Wzór'))
597 make_row = lambda lexeme, lip_data: ( 597 make_row = lambda lexeme, lip_data: (
598 lexeme.homonym_number, lip_data['genders'], lip_data['patterns']) 598 lexeme.homonym_number, lip_data['genders'], lip_data['patterns'])
599 else: 599 else:
600 - labels = (u'Nr hom.', u'Wzór') 600 + labels = (_(u'Nr hom.'), _(u'Wzór'))
601 make_row = lambda lexeme, lip_data: ( 601 make_row = lambda lexeme, lip_data: (
602 lexeme.homonym_number, lip_data['patterns']) 602 lexeme.homonym_number, lip_data['patterns'])
603 lexemes_data = [ 603 lexemes_data = [
@@ -659,48 +659,3 @@ def execute_group_actions(request, actions, filter): @@ -659,48 +659,3 @@ def execute_group_actions(request, actions, filter):
659 def save_columns(request, columns): 659 def save_columns(request, columns):
660 request.session['columns'] = columns 660 request.session['columns'] = columns
661 return {} 661 return {}
662 -  
663 -  
664 -@ajax(method='post')  
665 -def add_vocabulary(request, name):  
666 - if not request.user.has_perm('dictionary.manage_vocabulary'):  
667 - raise AjaxError('access denied')  
668 - if not name:  
669 - raise AjaxError(u'nazwa słownika nie może być pusta!')  
670 - if Vocabulary.objects.filter(id=name):  
671 - raise AjaxError(u'słownik o tej nazwie już istnieje!')  
672 - vocab = Vocabulary.objects.create(id=name)  
673 - vocab.managers.add(request.user) # add  
674 - return {}  
675 -  
676 -  
677 -# nieużywane  
678 -@ajax(method='get')  
679 -def vocabulary_permissions(request, vocab_id):  
680 - if not request.user.has_perm('dictionary.manage_vocabulary'):  
681 - raise AjaxError('access denied')  
682 - vocab = Vocabulary.objects.get(id=vocab_id)  
683 - return {  
684 - 'managers': list(vocab.all_managers().values_list('pk', flat=True)),  
685 - 'viewers': list(vocab.all_viewers().values_list('pk', flat=True)),  
686 - 'editors': list(vocab.editors.values_list('pk', flat=True)),  
687 - }  
688 -  
689 -  
690 -@ajax(method='post')  
691 -def set_vocabulary_permission(request, name, user_id, perm, on):  
692 - if not request.user.has_perm('dictionary.manage_vocabulary'):  
693 - raise AjaxError('access denied')  
694 - vocab = Vocabulary.objects.get(id=name)  
695 - user = User.objects.get(pk=user_id)  
696 - if perm == 'view':  
697 - related_manager = vocab.viewers  
698 - elif perm == 'change':  
699 - related_manager = vocab.editors  
700 - else: # type == 'manage'  
701 - related_manager = vocab.managers  
702 - if on:  
703 - related_manager.add(user) # add  
704 - else:  
705 - related_manager.remove(user) # add  
706 - return {}  
707 \ No newline at end of file 662 \ No newline at end of file
dictionary/forms.py
@@ -4,6 +4,7 @@ from django.core.exceptions import ValidationError @@ -4,6 +4,7 @@ from django.core.exceptions import ValidationError
4 from django.forms import Textarea, TextInput, ModelMultipleChoiceField, \ 4 from django.forms import Textarea, TextInput, ModelMultipleChoiceField, \
5 ModelChoiceField, ModelForm, Form, CharField, SelectMultiple, Select, \ 5 ModelChoiceField, ModelForm, Form, CharField, SelectMultiple, Select, \
6 TypedMultipleChoiceField, HiddenInput, IntegerField, ChoiceField 6 TypedMultipleChoiceField, HiddenInput, IntegerField, ChoiceField
  7 +from django.utils.translation import ugettext_lazy as _
7 8
8 from common.forms import disable_field 9 from common.forms import disable_field
9 from common.util import GroupDict 10 from common.util import GroupDict
@@ -70,10 +71,10 @@ class LexemeEditForm(ModelForm): @@ -70,10 +71,10 @@ class LexemeEditForm(ModelForm):
70 vocabularies = ModelMultipleChoiceField( 71 vocabularies = ModelMultipleChoiceField(
71 queryset=Vocabulary.objects.none(), required=False) 72 queryset=Vocabulary.objects.none(), required=False)
72 style_qualifiers = QualifiersField( 73 style_qualifiers = QualifiersField(
73 - required=False, label='kwal styl.', 74 + required=False, label=_(u'kwal. styl.'),
74 widget=SelectMultiple(attrs={'class': 'qualifiers'})) 75 widget=SelectMultiple(attrs={'class': 'qualifiers'}))
75 scope_qualifiers = QualifiersField( 76 scope_qualifiers = QualifiersField(
76 - required=False, label='kwal. zakr.', 77 + required=False, label=_(u'kwal. zakr.'),
77 widget=SelectMultiple(attrs={'class': 'qualifiers'})) 78 widget=SelectMultiple(attrs={'class': 'qualifiers'}))
78 new_owner = ModelChoiceField( 79 new_owner = ModelChoiceField(
79 queryset=Vocabulary.objects.none(), required=False) 80 queryset=Vocabulary.objects.none(), required=False)
@@ -107,7 +108,7 @@ class LexemeEditForm(ModelForm): @@ -107,7 +108,7 @@ class LexemeEditForm(ModelForm):
107 def clean_entry(self): 108 def clean_entry(self):
108 entry = self.cleaned_data['entry'] 109 entry = self.cleaned_data['entry']
109 if ' ' in entry: 110 if ' ' in entry:
110 - raise ValidationError(u'niedozwolona spacja') 111 + raise ValidationError(_(u'niedozwolona spacja'))
111 return entry 112 return entry
112 113
113 def clean_comment(self): 114 def clean_comment(self):
@@ -201,9 +202,9 @@ class LexemeMultipleAttributeForm(LexemeAttributeForm): @@ -201,9 +202,9 @@ class LexemeMultipleAttributeForm(LexemeAttributeForm):
201 202
202 class LIPEditForm(ModelForm): 203 class LIPEditForm(ModelForm):
203 pattern_name = CharField(widget=TextInput( 204 pattern_name = CharField(widget=TextInput(
204 - attrs={'class': 'pattern', 'size': '10'}), label=u'Wzór') 205 + attrs={'class': 'pattern', 'size': '10'}), label=_(u'Wzór'))
205 qualifiers = QualifiersField( 206 qualifiers = QualifiersField(
206 - required=False, label=u'Kwal.', 207 + required=False, label=_(u'Kwal.'),
207 widget=SelectMultiple(attrs={'class': 'lip-qualifiers'})) 208 widget=SelectMultiple(attrs={'class': 'lip-qualifiers'}))
208 lexical_class = CharField(widget=HiddenInput(), label=u'') 209 lexical_class = CharField(widget=HiddenInput(), label=u'')
209 210
@@ -231,10 +232,10 @@ class LIPEditForm(ModelForm): @@ -231,10 +232,10 @@ class LIPEditForm(ModelForm):
231 try: 232 try:
232 pattern = Pattern.objects.get(name=cleaned_data['pattern_name']) 233 pattern = Pattern.objects.get(name=cleaned_data['pattern_name'])
233 except Pattern.DoesNotExist: 234 except Pattern.DoesNotExist:
234 - raise ValidationError(u'Niepoprawna nazwa wzoru.') 235 + raise ValidationError(_(u'Niepoprawna nazwa wzoru.'))
235 lc = cleaned_data['lexical_class'] 236 lc = cleaned_data['lexical_class']
236 if pattern.type.lexical_class_id != lc: 237 if pattern.type.lexical_class_id != lc:
237 - raise ValidationError(u'Wzór nie pasuje do części mowy.') 238 + raise ValidationError(_(u'Wzór nie pasuje do części mowy.'))
238 cleaned_data['pattern'] = pattern 239 cleaned_data['pattern'] = pattern
239 return cleaned_data 240 return cleaned_data
240 241
@@ -252,7 +253,8 @@ class LIPEditForm(ModelForm): @@ -252,7 +253,8 @@ class LIPEditForm(ModelForm):
252 fields = ['gender', 'pronunciation'] 253 fields = ['gender', 'pronunciation']
253 widgets = { 254 widgets = {
254 'gender': Select(attrs={'class': 'gender'}), 255 'gender': Select(attrs={'class': 'gender'}),
255 - 'pronunciation': TextInput(attrs={'class': 'lip-pronunciation-field'}), 256 + 'pronunciation': TextInput(
  257 + attrs={'class': 'lip-pronunciation-field'}),
256 } 258 }
257 259
258 260
@@ -275,12 +277,12 @@ class ClassificationForm(Form): @@ -275,12 +277,12 @@ class ClassificationForm(Form):
275 277
276 278
277 class CrossReferenceForm(ModelForm): 279 class CrossReferenceForm(ModelForm):
278 - entry = CharField(label=u'hasło', widget=TextInput(attrs={ 280 + entry = CharField(label=_(u'hasło'), widget=TextInput(attrs={
279 'class': 'entry', 281 'class': 'entry',
280 'size': 12, 282 'size': 12,
281 })) 283 }))
282 homonym_number = IntegerField( 284 homonym_number = IntegerField(
283 - label=u'hom.', 285 + label=_(u'hom.'),
284 widget=TextInput(attrs={ 286 widget=TextInput(attrs={
285 'class': 'homonym-number', 287 'class': 'homonym-number',
286 'readonly': 'readonly', 288 'readonly': 'readonly',
@@ -307,13 +309,14 @@ class CrossReferenceForm(ModelForm): @@ -307,13 +309,14 @@ class CrossReferenceForm(ModelForm):
307 to_lexeme = Lexeme.objects.get( 309 to_lexeme = Lexeme.objects.get(
308 entry=entry, homonym_number=hom, part_of_speech=cr_type.to_pos) 310 entry=entry, homonym_number=hom, part_of_speech=cr_type.to_pos)
309 except Lexeme.DoesNotExist: 311 except Lexeme.DoesNotExist:
310 - raise ValidationError(u'Wybrany leksem nie istnieje.') 312 + raise ValidationError(_(u'Wybrany leksem nie istnieje.'))
311 except Lexeme.MultipleObjectsReturned: 313 except Lexeme.MultipleObjectsReturned:
312 # jeśli się zdarzy, to jest niespójność w danych 314 # jeśli się zdarzy, to jest niespójność w danych
313 - raise ValidationError(u'Niejednoznaczny numer homonimu!') 315 + raise ValidationError(_(u'Niejednoznaczny numer homonimu!'))
314 if from_lexeme and to_lexeme and cr_type: 316 if from_lexeme and to_lexeme and cr_type:
315 if cr_type.from_pos != from_lexeme.part_of_speech: 317 if cr_type.from_pos != from_lexeme.part_of_speech:
316 - raise ValidationError(u'Nieprawidłowa część mowy w odsyłaczu.') 318 + raise ValidationError(
  319 + _(u'Nieprawidłowa część mowy w odsyłaczu.'))
317 cleaned_data['to_lexeme'] = to_lexeme 320 cleaned_data['to_lexeme'] = to_lexeme
318 return cleaned_data 321 return cleaned_data
319 322
@@ -336,14 +339,14 @@ class CrossReferenceForm(ModelForm): @@ -336,14 +339,14 @@ class CrossReferenceForm(ModelForm):
336 # dynamic actions 339 # dynamic actions
337 340
338 ADD_REMOVE_CHOICES = ( 341 ADD_REMOVE_CHOICES = (
339 - ('add', u'Dodaj'),  
340 - ('remove', u'Usuń'), 342 + ('add', _(u'Dodaj')),
  343 + ('remove', _(u'Usuń')),
341 ) 344 )
342 345
343 346
344 class StatusActionForm(Form): 347 class StatusActionForm(Form):
345 action = ChoiceField( 348 action = ChoiceField(
346 - choices=[('set', u'ustaw')], label=u'', 349 + choices=[('set', _(u'ustaw'))], label=u'',
347 widget=Select(attrs={'class': 'action-choice'})) 350 widget=Select(attrs={'class': 'action-choice'}))
348 351
349 352
@@ -390,16 +393,17 @@ class LexemeQualifierValueForm(Form): @@ -390,16 +393,17 @@ class LexemeQualifierValueForm(Form):
390 ACTION_FIELDS = ( 393 ACTION_FIELDS = (
391 ( 394 (
392 'status', 395 'status',
393 - (u'Status', StatusActionForm, StatusValueForm) 396 + (_(u'Status'), StatusActionForm, StatusValueForm)
394 ), 397 ),
395 ( 398 (
396 'using_vocabulary', 399 'using_vocabulary',
397 - (u'Słownik używający', UsingVocabularyActionForm, VocabularyValueForm) 400 + (_(u'Słownik używający'), UsingVocabularyActionForm,
  401 + VocabularyValueForm)
398 ), 402 ),
399 ( 403 (
400 'lexeme_qualifier', 404 'lexeme_qualifier',
401 ( 405 (
402 - u'Kwalifikator leksemu', 406 + _(u'Kwalifikator leksemu'),
403 LexemeQualifierActionForm, LexemeQualifierValueForm 407 LexemeQualifierActionForm, LexemeQualifierValueForm
404 ) 408 )
405 ), 409 ),
@@ -409,4 +413,4 @@ ACTION_FIELDS = ( @@ -409,4 +413,4 @@ ACTION_FIELDS = (
409 class ActionFieldForm(Form): 413 class ActionFieldForm(Form):
410 field = ChoiceField( 414 field = ChoiceField(
411 choices=[(id, data[0]) for id, data in ACTION_FIELDS], label=u'', 415 choices=[(id, data[0]) for id, data in ACTION_FIELDS], label=u'',
412 - widget=Select(attrs={'class': 'field-choice'}))  
413 \ No newline at end of file 416 \ No newline at end of file
  417 + widget=Select(attrs={'class': 'field-choice'}))
dictionary/locale/en/LC_MESSAGES/django.po 0 → 100644
  1 +# English translation of the dictionary module.
  2 +# Copyright (C) 2015
  3 +# This file is distributed under the same license as the Lexeme Forge package.
  4 +# Jan Szejko <jan.szejko@ipipan.waw.pl>, 2015.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: 1.0\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: Jan Szejko <jan.szejko@ipipan.waw.pl>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: en\n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +
  20 +#: ajax_lexeme_view.py:226
  21 +msgid "Nieokreślona część mowy."
  22 +msgstr "Unspecified part of speech."
  23 +
  24 +#: ajax_lexeme_view.py:345
  25 +msgid "Niepasujące zakończenie formy podstawowej."
  26 +msgstr "Basic form ending doesn't match the pattern"
  27 +
  28 +#: ajax_lexeme_view.py:360
  29 +msgid "Wybierz odmianę lub ustaw status „kandydat”."
  30 +msgstr "Enter inflection or set “candidate” status"
  31 +
  32 +#: ajax_lexeme_view.py:428
  33 +msgid "Nie wpisano hasła"
  34 +msgstr "Empty entry"
  35 +
  36 +#: ajax_lexeme_view.py:523
  37 +msgid "Nie wybrano słownika właściciela"
  38 +msgstr "Empty owner dictionary"
  39 +
  40 +#: ajax_lexeme_view.py:589 ajax_lexeme_view.py:596 ajax_lexeme_view.py:600
  41 +#: templates/lexeme_view.html:126
  42 +msgid "Nr hom."
  43 +msgstr "Hom. №"
  44 +
  45 +#: ajax_lexeme_view.py:589
  46 +msgid "Aspekt"
  47 +msgstr "Aspect"
  48 +
  49 +#: ajax_lexeme_view.py:589 ajax_lexeme_view.py:596 ajax_lexeme_view.py:600
  50 +#: forms.py:205 templates/lexeme_view.html:128
  51 +msgid "Wzór"
  52 +msgstr "Pattern"
  53 +
  54 +#: ajax_lexeme_view.py:596 templates/lexeme_view.html:127
  55 +msgid "Rodzaj"
  56 +msgstr "Gender"
  57 +
  58 +#: forms.py:74 models.py:479
  59 +msgid "kwal. styl."
  60 +msgstr "styl. qual."
  61 +
  62 +#: forms.py:77 models.py:480
  63 +msgid "kwal. zakr."
  64 +msgstr "scope qual."
  65 +
  66 +#: forms.py:111
  67 +msgid "niedozwolona spacja"
  68 +msgstr "space is not allowed in entry"
  69 +
  70 +#: forms.py:207
  71 +msgid "Kwal."
  72 +msgstr "Qual."
  73 +
  74 +#: forms.py:235
  75 +msgid "Niepoprawna nazwa wzoru."
  76 +msgstr "Incorrect pattern name."
  77 +
  78 +#: forms.py:238
  79 +msgid "Wzór nie pasuje do części mowy."
  80 +msgstr "The pattern doesn't match the part of speech"
  81 +
  82 +#: forms.py:280 models.py:451
  83 +msgid "hasło"
  84 +msgstr "entry"
  85 +
  86 +#: forms.py:285
  87 +msgid "hom."
  88 +msgstr "hom."
  89 +
  90 +#: forms.py:312
  91 +msgid "Wybrany leksem nie istnieje."
  92 +msgstr "Chosen lexeme doesn't exist."
  93 +
  94 +#: forms.py:315
  95 +msgid "Niejednoznaczny numer homonimu!"
  96 +msgstr "Ambiguous homonym number!"
  97 +
  98 +#: forms.py:319
  99 +msgid "Nieprawidłowa część mowy w odsyłaczu."
  100 +msgstr "Incorrect part of speech in cross-reference."
  101 +
  102 +#: forms.py:342
  103 +msgid "Dodaj"
  104 +msgstr "Add"
  105 +
  106 +#: forms.py:343
  107 +msgid "Usuń"
  108 +msgstr "Remove"
  109 +
  110 +#: forms.py:349
  111 +msgid "ustaw"
  112 +msgstr "set"
  113 +
  114 +#: forms.py:396
  115 +msgid "Status"
  116 +msgstr "Status"
  117 +
  118 +#: forms.py:400
  119 +msgid "Słownik używający"
  120 +msgstr "Using dictionary"
  121 +
  122 +#: forms.py:406
  123 +msgid "Kwalifikator leksemu"
  124 +msgstr "Lexeme qualifier"
  125 +
  126 +#: models.py:68 models.py:101 models.py:325
  127 +msgid "nazwa"
  128 +msgstr "name"
  129 +
  130 +#: models.py:70 models.py:105
  131 +msgid "słownik"
  132 +msgstr "dictionary"
  133 +
  134 +#: models.py:96
  135 +msgid "stylistyczny"
  136 +msgstr "stylistic"
  137 +
  138 +#: models.py:97
  139 +msgid "zakresowy"
  140 +msgstr "scope"
  141 +
  142 +#: models.py:98
  143 +msgid "przy formach"
  144 +msgstr "at forms"
  145 +
  146 +#: models.py:103 models.py:329 models.py:1117
  147 +msgid "typ"
  148 +msgstr "type"
  149 +
  150 +#: models.py:109
  151 +msgid "klasa wykluczania"
  152 +msgstr "exclusion class"
  153 +
  154 +#: models.py:153
  155 +msgid "nazwa klasyfikacji"
  156 +msgstr "classification name"
  157 +
  158 +#: models.py:188
  159 +msgid "nazwa wartości"
  160 +msgstr "value name"
  161 +
  162 +#: models.py:193
  163 +msgid "rodzic wartości"
  164 +msgstr "parent value"
  165 +
  166 +#: models.py:287
  167 +msgid "typ odmiany"
  168 +msgstr "inflection type"
  169 +
  170 +#: models.py:291
  171 +msgid "typ wzoru"
  172 +msgstr "pattern type"
  173 +
  174 +#: models.py:321
  175 +msgid "nowy"
  176 +msgstr "new"
  177 +
  178 +#: models.py:322
  179 +msgid "tymczasowy"
  180 +msgstr "temporary"
  181 +
  182 +#: models.py:327
  183 +msgid "stara nazwa"
  184 +msgstr "old name"
  185 +
  186 +#: models.py:332
  187 +msgid "przykład"
  188 +msgstr "example"
  189 +
  190 +#: models.py:336
  191 +msgid "zakończenie formy podstawowej"
  192 +msgstr "basic form ending"
  193 +
  194 +#: models.py:338
  195 +msgid "status"
  196 +msgstr "status"
  197 +
  198 +#: models.py:340 models.py:484
  199 +msgid "komentarz"
  200 +msgstr "comment"
  201 +
  202 +#: models.py:374
  203 +msgid "Może oglądać wzory"
  204 +msgstr "Can view patterns"
  205 +
  206 +#: models.py:444
  207 +msgid "kandydat"
  208 +msgstr "candidate"
  209 +
  210 +#: models.py:445
  211 +msgid "wprowadzony"
  212 +msgstr "entered"
  213 +
  214 +#: models.py:446
  215 +msgid "zatwierdzony"
  216 +msgstr "confirmed"
  217 +
  218 +#: models.py:457
  219 +msgid "sufiks hasła"
  220 +msgstr "entry suffix"
  221 +
  222 +#: models.py:458
  223 +msgid "glosa"
  224 +msgstr "gloss"
  225 +
  226 +#: models.py:459
  227 +msgid "nota"
  228 +msgstr "note"
  229 +
  230 +#: models.py:460
  231 +msgid "nota rozszerzona"
  232 +msgstr "extended note"
  233 +
  234 +#: models.py:462 models.py:867
  235 +msgid "wymowa"
  236 +msgstr "pronunciation"
  237 +
  238 +#: models.py:463
  239 +msgid "łączliwość"
  240 +msgstr "valence"
  241 +
  242 +#: models.py:466
  243 +msgid "cz. mowy"
  244 +msgstr "part of speech"
  245 +
  246 +#: models.py:471
  247 +msgid "źródło"
  248 +msgstr "source"
  249 +
  250 +#: models.py:474
  251 +msgid "źródło zapożyczenia"
  252 +msgstr "borrowing source"
  253 +
  254 +#: models.py:478
  255 +msgid "kwal. z Dor."
  256 +msgstr "Dor. qual."
  257 +
  258 +#: models.py:482 templates/lexeme_edit_form.html:104
  259 +msgid "specjalistyczny"
  260 +msgstr "specialist"
  261 +
  262 +#: models.py:760
  263 +msgid "Może oglądać leksemy"
  264 +msgstr "Can view lexemes"
  265 +
  266 +#: models.py:761
  267 +msgid "Może oglądać wszystkie leksemy"
  268 +msgstr "Can view all lexemes"
  269 +
  270 +#: models.py:763
  271 +msgid "Ważniejszy głos przy modyfikowaniu leksemów"
  272 +msgstr "Decisive lexeme modifications"
  273 +
  274 +#: models.py:764
  275 +msgid "Może eksportować leksemy"
  276 +msgstr "Can export lexemes"
  277 +
  278 +#: models.py:860
  279 +msgid "wzór"
  280 +msgstr "pattern"
  281 +
  282 +#: models.py:862
  283 +msgid "rodzaj"
  284 +msgstr "gender"
  285 +
  286 +#: models.py:1040
  287 +msgid "Może zarządzać słownikami"
  288 +msgstr "Can manage dictionaries"
  289 +
  290 +#: models.py:1041
  291 +msgid "Zarządza wszystkimi słownikami"
  292 +msgstr "Manages all dictionaries"
  293 +
  294 +#: models.py:1115
  295 +msgid "nr docelowy"
  296 +msgstr "targer number"
  297 +
  298 +#: reports.py:20
  299 +msgid "Brak odsyłacza do czasownika"
  300 +msgstr "No cross-reference to the verb"
  301 +
  302 +#: reports.py:63
  303 +msgid "Brak imiesłowu biernego"
  304 +msgstr "No passive participle"
  305 +
  306 +#: reports.py:64
  307 +msgid "Brak quasi-imiesłowu biernego"
  308 +msgstr "No passive quasi-participle"
  309 +
  310 +#: reports.py:65
  311 +msgid "Brak imiesłowu czynnego"
  312 +msgstr "No active participle"
  313 +
  314 +#: reports.py:66
  315 +msgid "Brak odsłownika"
  316 +msgstr "No gerund"
  317 +
  318 +#: views.py:48 views.py:49 views.py:50 views.py:156 views.py:157 views.py:158
  319 +#: views.py:187
  320 +msgid "(puste)"
  321 +msgstr "(empty)"
  322 +
  323 +#: templates/classification_forms.html:4
  324 +msgid "Klasyfikacje"
  325 +msgstr "Classifications"
  326 +
  327 +#: templates/classification_value_tree.html:15
  328 +msgid "usuń"
  329 +msgstr "delete"
  330 +
  331 +#: templates/classification_value_tree.html:25
  332 +msgid "zmień nazwę"
  333 +msgstr "rename"
  334 +
  335 +#: templates/inflection_tables.html:26
  336 +msgid "n. wł."
  337 +msgstr "proper name"
  338 +
  339 +#: templates/inflection_tables.html:39
  340 +msgid "rozwinięcie"
  341 +msgstr "expansion"
  342 +
  343 +#: templates/inflection_tables.html:71 templates/lexeme_edit_form.html:137
  344 +msgid "Odsyłacze"
  345 +msgstr "Cross-references"
  346 +
  347 +#: templates/lexeme_edit_form.html:5 templates/lexeme_edit_form.html.py:170
  348 +msgid "Zapisz"
  349 +msgstr "Save"
  350 +
  351 +#: templates/lexeme_edit_form.html:8 templates/lexeme_edit_form.html.py:173
  352 +#: templates/sort_dialog.html:23
  353 +msgid "Anuluj"
  354 +msgstr "Cancel"
  355 +
  356 +#: templates/lexeme_edit_form.html:12 templates/lexeme_edit_form.html:177
  357 +msgid "Usuń leksem"
  358 +msgstr "Delete lexeme"
  359 +
  360 +#: templates/lexeme_edit_form.html:17
  361 +msgid "Słownik właściciel"
  362 +msgstr "Owner dictionary"
  363 +
  364 +#: templates/lexeme_edit_form.html:18
  365 +msgid "Słowniki używające"
  366 +msgstr "Using dictionaries"
  367 +
  368 +#: templates/lexeme_edit_form.html:78
  369 +msgid "Sposoby odmiany"
  370 +msgstr "Inflections"
  371 +
  372 +#: templates/lexeme_edit_form.html:91
  373 +msgid "Kwalifikatory"
  374 +msgstr "Qualifiers"
  375 +
  376 +#: templates/lexeme_edit_form.html:98
  377 +msgid "stylistyczne"
  378 +msgstr "stylistic"
  379 +
  380 +#: templates/lexeme_edit_form.html:101
  381 +msgid "zakresowe"
  382 +msgstr "scope"
  383 +
  384 +#: templates/lexeme_view.html:47
  385 +msgid "Widok leksemów"
  386 +msgstr "Lexeme view"
  387 +
  388 +#: templates/lexeme_view.html:52 templates/lexeme_view.html.py:53
  389 +#: templates/reader_view.html:44 templates/reader_view.html.py:45
  390 +msgid "sortuj"
  391 +msgstr "sort"
  392 +
  393 +#: templates/lexeme_view.html:55 templates/lexeme_view.html.py:56
  394 +#: templates/reader_view.html:47 templates/reader_view.html.py:48
  395 +msgid "filtruj"
  396 +msgstr "filter"
  397 +
  398 +#: templates/lexeme_view.html:58 templates/lexeme_view.html.py:59
  399 +#: templates/reader_view.html:50 templates/reader_view.html.py:51
  400 +msgid "pokaż/ukryj"
  401 +msgstr "show/hide"
  402 +
  403 +#: templates/lexeme_view.html:62 templates/lexeme_view.html.py:63
  404 +#: templates/reader_view.html:54 templates/reader_view.html.py:55
  405 +msgid "szukaj"
  406 +msgstr "search"
  407 +
  408 +#: templates/lexeme_view.html:66 templates/lexeme_view.html.py:67
  409 +msgid "akcje grupowe"
  410 +msgstr "group actions"
  411 +
  412 +#: templates/lexeme_view.html:69 templates/lexeme_view.html.py:70
  413 +msgid "dodaj leksem"
  414 +msgstr "create lexeme"
  415 +
  416 +#: templates/lexeme_view.html:73
  417 +msgid "więcej"
  418 +msgstr "more"
  419 +
  420 +#: templates/lexeme_view.html:82
  421 +msgid "Edycja"
  422 +msgstr "Edit"
  423 +
  424 +#: templates/lexeme_view.html:83 templates/reader_view.html:64
  425 +msgid "Formy bazowe"
  426 +msgstr "Base forms"
  427 +
  428 +#: templates/lexeme_view.html:84 templates/reader_view.html:63
  429 +msgid "Wszystkie formy"
  430 +msgstr "All forms"
  431 +
  432 +#: templates/lexeme_view.html:86
  433 +msgid "Historia"
  434 +msgstr "History"
  435 +
  436 +#: templates/lexeme_view.html:98 templates/reader_view.html:73
  437 +msgid "Wybierz kolumny"
  438 +msgstr "Choose columns"
  439 +
  440 +#: templates/lexeme_view.html:101 templates/reader_view.html:76
  441 +msgid "Filtrowanie"
  442 +msgstr "Filters"
  443 +
  444 +#: templates/lexeme_view.html:104 templates/reader_view.html:79
  445 +msgid "oraz"
  446 +msgstr "and"
  447 +
  448 +#: templates/lexeme_view.html:105 templates/reader_view.html:80
  449 +msgid "lub"
  450 +msgstr "or"
  451 +
  452 +#: templates/lexeme_view.html:107 templates/reader_view.html:82
  453 +msgid "Dodaj filtr"
  454 +msgstr "Add filter"
  455 +
  456 +#: templates/lexeme_view.html:112
  457 +msgid "Wybierz filtr"
  458 +msgstr "Choose filter"
  459 +
  460 +#: templates/lexeme_view.html:115
  461 +msgid "Wybierz akcję grupową"
  462 +msgstr "Choose group action"
  463 +
  464 +#: templates/lexeme_view.html:116 templates/lexeme_view.html.py:117
  465 +msgid "dodaj akcję"
  466 +msgstr "add action"
  467 +
  468 +#: templates/lexeme_view.html:122
  469 +msgid "Wybierz homonim"
  470 +msgstr "Choose homonym"
  471 +
  472 +#: templates/lexeme_view.html:135
  473 +msgid "Podpowiadacz wzorów"
  474 +msgstr "Pattern prompter"
  475 +
  476 +#: templates/lexeme_view.html:142
  477 +msgid "Uwzględniaj rodzaj"
  478 +msgstr "Match gender"
  479 +
  480 +#: templates/lexeme_view.html:146
  481 +msgid "Uwzględniaj pospolitość"
  482 +msgstr "Match commonness"
  483 +
  484 +#: templates/lexeme_view.html:150
  485 +msgid "Pomijaj wzory nietypowe"
  486 +msgstr "Exclude atypical patterns"
  487 +
  488 +#: templates/lexeme_view.html:157
  489 +msgid "Wybór domyślnego słownika"
  490 +msgstr "Choose default dictionary"
  491 +
  492 +#: templates/lexeme_view.html:159
  493 +msgid ""
  494 +"\n"
  495 +" Wybierz słownik domyślnie ustawiany jako właściciel przy\n"
  496 +" dodawaniu leksemów.\n"
  497 +" "
  498 +msgstr ""
  499 +"\n"
  500 +"Choose a dictionary to be set as the default owner when creating new lexemes."
  501 +
  502 +#: templates/lexeme_view.html:165
  503 +msgid "Wybór można będzie zmienić w Ustawieniach."
  504 +msgstr "This choice can be change in Settings."
  505 +
  506 +#: templates/lexeme_view.html:176
  507 +msgid "Inne działania"
  508 +msgstr "Other actions"
  509 +
  510 +#: templates/lexeme_view.html:178
  511 +msgid "Eksport aktualnie filtrowanej listy"
  512 +msgstr "Export the current list"
  513 +
  514 +#: templates/lexeme_view.html:181
  515 +msgid "Przeładowanie listy"
  516 +msgstr "Reload the list"
  517 +
  518 +#: templates/lexeme_view.html:184
  519 +msgid "Sklonowanie aktywnego leksemu"
  520 +msgstr "Clone the active lexeme"
  521 +
  522 +#: templates/lexeme_view.html:187
  523 +msgid "Tworzenie derywatów"
  524 +msgstr "Create derivatives"
  525 +
  526 +#: templates/lexeme_view.html:188
  527 +msgid "Wybierz hasła do utworzenia"
  528 +msgstr "Choose entries to create"
  529 +
  530 +#: templates/lexeme_view.html:192 templates/reader_view.html:87
  531 +msgid "Szukanie według formy"
  532 +msgstr "Search by form"
  533 +
  534 +#: templates/reader_view.html:39
  535 +msgid "Słownik gramatyczny języka polskiego"
  536 +msgstr "Grammatical Dictionary of Polish"
  537 +
  538 +#: templates/sort_dialog.html:2
  539 +msgid "Porządek sortowania"
  540 +msgstr "Sort order"
  541 +
  542 +#: templates/sort_dialog.html:9
  543 +msgid "Rosnąco"
  544 +msgstr "Incremental"
  545 +
  546 +#: templates/sort_dialog.html:10
  547 +msgid "Malejąco"
  548 +msgstr "Decremental"
  549 +
  550 +#: templates/sort_dialog.html:22
  551 +msgid "Zatwierdź"
  552 +msgstr "Confirm"
dictionary/locale/en/LC_MESSAGES/djangojs.po
1 -# lexeme-edit.js:86  
2 -msgid "Atrybuty: %s zostaną usunięte."  
3 -msgstr "Attributes: %s will be removed." 1 +# English translation of the dictionary module.
  2 +# Copyright (C) 2015
  3 +# This file is distributed under the same license as the Lexeme Forge package.
  4 +# Jan Szejko <jan.szejko@ipipan.waw.pl>, 2015.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: 1.0\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: Jan Szejko <jan.szejko@ipipan.waw.pl>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: en\n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +
  20 +#: static/js/edit.js:14 static/js/edit.js.c:26
  21 +msgid "Edycja"
  22 +msgstr "Edit"
  23 +
  24 +#: static/js/edit.js:14
  25 +msgid "niezapisane"
  26 +msgstr "not saved"
  27 +
  28 +#: static/js/edit.js:17
  29 +msgid "Są niezapisane zmiany."
  30 +msgstr "There are unsaved changes."
  31 +
  32 +#: static/js/edit.js:79
  33 +msgid "Czy chcesz porzucić niezapisane zmiany?"
  34 +msgstr "Do you want to discard changes?"
4 35
5 -# lexeme-edit.js:87 36 +#: static/js/edit.js:86
  37 +msgid "kwalifikatorów"
  38 +msgstr "qualifiers"
  39 +
  40 +#: static/js/lexeme-edit.js:86 static/js/lexeme-edit.js.c:277
  41 +#, fuzzy, c-format
6 msgid "Atrybut: %s zostanie usunięty." 42 msgid "Atrybut: %s zostanie usunięty."
7 -msgstr "Attribute: %s will be removed." 43 +msgid_plural "Atrybuty: %s zostaną usunięte."
  44 +msgstr[0] "Attribute: %s will be removed."
  45 +msgstr[1] "Attributes: %s will be removed."
8 46
9 -# lexeme-edit.js:89 47 +#: static/js/lexeme-edit.js:89 static/js/lexeme-edit.js.c:261
  48 +#: static/js/lexeme-edit.js:281 static/js/lexeme-edit.js.c:906
10 msgid "Kontynuować?" 49 msgid "Kontynuować?"
11 msgstr "Do you want to continue?" 50 msgstr "Do you want to continue?"
12 51
13 -# lexeme-edit.js:170 52 +#: static/js/lexeme-edit.js:170 static/js/lexeme-edit.js.c:187
  53 +#: static/js/lexeme-edit.js:229 static/js/slickgrid.js:466
14 msgid "Anuluj" 54 msgid "Anuluj"
15 msgstr "Cancel" 55 msgstr "Cancel"
16 56
17 -# lexeme-edit.js:176 57 +#: static/js/lexeme-edit.js:176 static/js/lexeme-edit.js.c:235
18 msgid "Wybierz" 58 msgid "Wybierz"
19 msgstr "Choose" 59 msgstr "Choose"
20 60
21 -# lexeme-edit.js:193 61 +#: static/js/lexeme-edit.js:193
22 msgid "Utwórz" 62 msgid "Utwórz"
23 msgstr "Create" 63 msgstr "Create"
24 64
25 -# lexeme-edit.js:213 65 +#: static/js/lexeme-edit.js:213
26 msgid "Wykonaj" 66 msgid "Wykonaj"
27 msgstr "Execute" 67 msgstr "Execute"
28 68
29 -# lexeme-edit.js:256  
30 -msgid "Zostaną usunięte klasyfikacje:"  
31 -msgstr "The following classifications will be removed:"  
32 -  
33 -# lexeme-edit.js:256 69 +#: static/js/lexeme-edit.js:256
  70 +#, fuzzy
34 msgid "Zostanie usunięta klasyfikacja:" 71 msgid "Zostanie usunięta klasyfikacja:"
35 -msgstr "The following classification will be removed:" 72 +msgid_plural "Zostaną usunięte klasyfikacje:"
  73 +msgstr[0] "The following classification will be removed:"
  74 +msgstr[1] "The following classifications will be removed:"
36 75
37 -# lexeme-edit.js:320 76 +#: static/js/lexeme-edit.js:320
38 msgid "Wybierz słowniki" 77 msgid "Wybierz słowniki"
39 msgstr "Choose dictionaries" 78 msgstr "Choose dictionaries"
40 79
41 -# lexeme-edit.js:321 80 +#: static/js/lexeme-edit.js:321
42 msgid "# słowników" 81 msgid "# słowników"
43 msgstr "# dictionaries" 82 msgstr "# dictionaries"
44 83
45 -# lexeme-edit.js:413 84 +#: static/js/lexeme-edit.js:413
46 msgid "Zapisanie zmian" 85 msgid "Zapisanie zmian"
47 msgstr "Save" 86 msgstr "Save"
48 87
49 -# lexeme-edit.js:493 88 +#: static/js/lexeme-edit.js:493
50 msgid "Utworzenie derywatów" 89 msgid "Utworzenie derywatów"
51 msgstr "Creation of derivatives" 90 msgstr "Creation of derivatives"
52 91
53 -# lexeme-edit.js:593 92 +#: static/js/lexeme-edit.js:593
54 msgid "Przeładowanie klasyfikacji" 93 msgid "Przeładowanie klasyfikacji"
55 msgstr "Classification reload" 94 msgstr "Classification reload"
56 95
57 -# lexeme-edit.js:610 96 +#: static/js/lexeme-edit.js:610
58 msgid "Przeładowanie atrybutów" 97 msgid "Przeładowanie atrybutów"
59 msgstr "Attributes reload" 98 msgstr "Attributes reload"
60 99
61 -# lexeme-edit.js:644 100 +#: static/js/lexeme-edit.js:644
62 msgid "Wzór nie pasuje do rodzaju — na pewno zapisać?" 101 msgid "Wzór nie pasuje do rodzaju — na pewno zapisać?"
63 msgstr "The pattern doesn't match the gender — save anyway?" 102 msgstr "The pattern doesn't match the gender — save anyway?"
64 103
65 -# lexeme-edit.js:688 104 +#: static/js/lexeme-edit.js:688
66 msgid "Na pewno usunąć leksem?" 105 msgid "Na pewno usunąć leksem?"
67 msgstr "Do you want to delete this lexeme?" 106 msgstr "Do you want to delete this lexeme?"
68 107
69 -# lexeme-edit.js:693 108 +#: static/js/lexeme-edit.js:693
70 msgid "Usunięcie leksemu" 109 msgid "Usunięcie leksemu"
71 msgstr "Lexeme deletion" 110 msgstr "Lexeme deletion"
72 111
73 -# lexeme-edit.js:889 112 +#: static/js/lexeme-edit.js:889
74 msgid "wszystkie sposoby odmiany" 113 msgid "wszystkie sposoby odmiany"
75 msgstr "all inflections" 114 msgstr "all inflections"
76 115
77 -# lexeme-edit.js:892 116 +#: static/js/lexeme-edit.js:892
78 msgid "wszystkie odsyłacze" 117 msgid "wszystkie odsyłacze"
79 msgstr "all cross-references" 118 msgstr "all cross-references"
80 119
81 -# lexeme-edit.js:896 120 +#: static/js/lexeme-edit.js:896
82 msgid "atrybuty" 121 msgid "atrybuty"
83 msgstr "attributes" 122 msgstr "attributes"
84 123
85 -# lexeme-edit.js:901 124 +#: static/js/lexeme-edit.js:901
86 msgid "klasyfikacje" 125 msgid "klasyfikacje"
87 msgstr "classifications" 126 msgstr "classifications"
88 127
89 -# lexeme-edit.js:905 128 +#: static/js/lexeme-edit.js:905
90 msgid "Zostaną usunięte:" 129 msgid "Zostaną usunięte:"
91 msgstr "Those will be removed:" 130 msgstr "Those will be removed:"
92 131
93 -# lexeme-edit.js:959 132 +#: static/js/lexeme-edit.js:959
94 msgid "Zapisanie domyślnego słownika" 133 msgid "Zapisanie domyślnego słownika"
95 msgstr "Default dictionary record" 134 msgstr "Default dictionary record"
96 135
97 -# lexeme-edit.js:969 136 +#: static/js/lexeme-edit.js:969
98 msgid "Utworzenie leksemu" 137 msgid "Utworzenie leksemu"
99 msgstr "Creation of a new lexeme" 138 msgstr "Creation of a new lexeme"
100 139
101 -# lexeme-edit.js:983 140 +#: static/js/lexeme-edit.js:983
102 msgid "Sklonowanie leksemu" 141 msgid "Sklonowanie leksemu"
103 msgstr "Lexeme cloning" 142 msgstr "Lexeme cloning"
104 143
105 -# lexeme-edit.js:998 144 +#: static/js/lexeme-edit.js:998
106 msgid "Pobranie liczby homonimów" 145 msgid "Pobranie liczby homonimów"
107 msgstr "Homonym query" 146 msgstr "Homonym query"
108 147
109 -# lexeme-edit.js:1054 148 +#: static/js/lexeme-edit.js:1054
110 msgid "Sprawdzenie homonimów" 149 msgid "Sprawdzenie homonimów"
111 msgstr "Homonym check" 150 msgstr "Homonym check"
112 151
113 -# lexeme-edit.js:1063 152 +#: static/js/lexeme-edit.js:1063
114 msgid "Brak pasujących leksemów." 153 msgid "Brak pasujących leksemów."
115 msgstr "No matching lexemes." 154 msgstr "No matching lexemes."
116 155
117 -# lexeme-view.js:12 156 +#: static/js/lexeme-view.js:12
118 msgid "Atrybut" 157 msgid "Atrybut"
119 msgstr "Attribute" 158 msgstr "Attribute"
120 159
121 -# lexeme-view.js:67 160 +#: static/js/lexeme-view.js:67
122 msgid "Leksemy" 161 msgid "Leksemy"
123 msgstr "Lexemes" 162 msgstr "Lexemes"
124 163
125 -# lexeme-view.js:73 164 +#: static/js/lexeme-view.js:73
126 msgid "Nr" 165 msgid "Nr"
127 msgstr "№" 166 msgstr "№"
128 167
129 -# lexeme-view.js:74 168 +#: static/js/lexeme-view.js:74 static/js/lexeme-view.js.c:92
130 msgid "Hasło" 169 msgid "Hasło"
131 msgstr "Entry" 170 msgstr "Entry"
132 171
133 -# lexeme-view.js:75 172 +#: static/js/lexeme-view.js:75 static/js/lexeme-view.js.c:94
134 msgid "Część mowy" 173 msgid "Część mowy"
135 msgstr "Part of speech" 174 msgstr "Part of speech"
136 175
137 -# lexeme-view.js:76 176 +#: static/js/lexeme-view.js:76
138 msgid "Wzory" 177 msgid "Wzory"
139 msgstr "Patterns" 178 msgstr "Patterns"
140 179
141 -# lexeme-view.js:79 180 +#: static/js/lexeme-view.js:79
142 msgid "Rodzaj/aspekt" 181 msgid "Rodzaj/aspekt"
143 msgstr "Gender/aspect" 182 msgstr "Gender/aspect"
144 183
145 -# lexeme-view.js:82 184 +#: static/js/lexeme-view.js:82
146 msgid "Słowniki" 185 msgid "Słowniki"
147 msgstr "Dictionaries" 186 msgstr "Dictionaries"
148 187
149 -# lexeme-view.js:83 188 +#: static/js/lexeme-view.js:83
150 msgid "Sł. właściciel" 189 msgid "Sł. właściciel"
151 msgstr "Owner dict." 190 msgstr "Owner dict."
152 191
153 -# lexeme-view.js:84 192 +#: static/js/lexeme-view.js:84 static/js/lexeme-view.js.c:132
154 msgid "Status" 193 msgid "Status"
155 msgstr "Status" 194 msgstr "Status"
156 195
157 -# lexeme-view.js:87 196 +#: static/js/lexeme-view.js:87
158 msgid "Kwal." 197 msgid "Kwal."
159 msgstr "Qual." 198 msgstr "Qual."
160 199
161 -# lexeme-view.js:99 200 +#: static/js/lexeme-view.js:99
162 msgid "Wzór" 201 msgid "Wzór"
163 msgstr "Pattern" 202 msgstr "Pattern"
164 203
165 -# lexeme-view.js:101 204 +#: static/js/lexeme-view.js:101
166 msgid "Liczba wzorów" 205 msgid "Liczba wzorów"
167 msgstr "Pattern count" 206 msgstr "Pattern count"
168 207
169 -# lexeme-view.js:106 208 +#: static/js/lexeme-view.js:106
170 msgid "Typ wzoru" 209 msgid "Typ wzoru"
171 msgstr "Pattern type" 210 msgstr "Pattern type"
172 211
173 -# lexeme-view.js:112 212 +#: static/js/lexeme-view.js:112
174 msgid "Rodzaj" 213 msgid "Rodzaj"
175 msgstr "Gender" 214 msgstr "Gender"
176 215
177 -# lexeme-view.js:117 216 +#: static/js/lexeme-view.js:117
178 msgid "Liczba rodzajów" 217 msgid "Liczba rodzajów"
179 msgstr "Gender count" 218 msgstr "Gender count"
180 219
181 -# lexeme-view.js:118 220 +#: static/js/lexeme-view.js:118
182 msgid "Forma" 221 msgid "Forma"
183 msgstr "Form" 222 msgstr "Form"
184 223
185 -# lexeme-view.js:120 224 +#: static/js/lexeme-view.js:120
186 msgid "Słownik" 225 msgid "Słownik"
187 msgstr "Dictionary" 226 msgstr "Dictionary"
188 227
189 -# lexeme-view.js:126 228 +#: static/js/lexeme-view.js:126
190 msgid "Słownik właściciel" 229 msgid "Słownik właściciel"
191 msgstr "Owner dictionary" 230 msgstr "Owner dictionary"
192 231
193 -# lexeme-view.js:137 232 +#: static/js/lexeme-view.js:137
194 msgid "Komentarz" 233 msgid "Komentarz"
195 msgstr "Comment" 234 msgstr "Comment"
196 235
197 -# lexeme-view.js:139 236 +#: static/js/lexeme-view.js:139
198 msgid "Kwal. leksemu" 237 msgid "Kwal. leksemu"
199 msgstr "Lexeme qual." 238 msgstr "Lexeme qual."
200 239
201 -# lexeme-view.js:145 240 +#: static/js/lexeme-view.js:145
202 msgid "Kwal. odmieniasia" 241 msgid "Kwal. odmieniasia"
203 msgstr "Inflection qual." 242 msgstr "Inflection qual."
204 243
205 -# lexeme-view.js:151 244 +#: static/js/lexeme-view.js:151
206 msgid "Kwal. przy dow. formie" 245 msgid "Kwal. przy dow. formie"
207 msgstr "Any qualifier" 246 msgstr "Any qualifier"
208 247
209 -# lexeme-view.js:157 248 +#: static/js/lexeme-view.js:157
210 msgid "Kwal. z Dor." 249 msgid "Kwal. z Dor."
211 msgstr "Dor. qual." 250 msgstr "Dor. qual."
212 251
213 -# lexeme-view.js:159 252 +#: static/js/lexeme-view.js:159
214 msgid "Kwal. styl." 253 msgid "Kwal. styl."
215 msgstr "Styl. qual." 254 msgstr "Styl. qual."
216 255
217 -# lexeme-view.js:161 256 +#: static/js/lexeme-view.js:161
218 msgid "Kwal. zakr." 257 msgid "Kwal. zakr."
219 msgstr "Scope qual." 258 msgstr "Scope qual."
220 259
221 -# lexeme-view.js:163 260 +#: static/js/lexeme-view.js:163
222 msgid "Wartość klasyfikacji" 261 msgid "Wartość klasyfikacji"
223 msgstr "Classification value" 262 msgstr "Classification value"
224 263
225 -# lexeme-view.js:169 264 +#: static/js/lexeme-view.js:169
226 msgid "Źródło zapożyczenia" 265 msgid "Źródło zapożyczenia"
227 msgstr "Borrowing source" 266 msgstr "Borrowing source"
228 267
229 -# lexeme-view.js:174 268 +#: static/js/lexeme-view.js:174
230 msgid "Glosa" 269 msgid "Glosa"
231 msgstr "Gloss" 270 msgstr "Gloss"
232 271
233 -# lexeme-view.js:175 272 +#: static/js/lexeme-view.js:175
234 msgid "Nota" 273 msgid "Nota"
235 msgstr "Note" 274 msgstr "Note"
236 275
237 -# lexeme-view.js:177 276 +#: static/js/lexeme-view.js:177
238 msgid "Nota rozszerzona" 277 msgid "Nota rozszerzona"
239 msgstr "Extended note" 278 msgstr "Extended note"
240 279
241 -# lexeme-view.js:181 280 +#: static/js/lexeme-view.js:181
242 msgid "Wymowa" 281 msgid "Wymowa"
243 msgstr "Pronunciation" 282 msgstr "Pronunciation"
244 283
245 -# lexeme-view.js:182 284 +#: static/js/lexeme-view.js:182
246 msgid "Łączliwość" 285 msgid "Łączliwość"
247 msgstr "Valence" 286 msgstr "Valence"
248 287
249 -# lexeme-view.js:184 288 +#: static/js/lexeme-view.js:184
250 msgid "Typ odsyłacza" 289 msgid "Typ odsyłacza"
251 msgstr "Cross-reference type" 290 msgstr "Cross-reference type"
252 291
253 -# lexeme-view.js:190 292 +#: static/js/lexeme-view.js:190
254 msgid "Autor ostatniej zmiany" 293 msgid "Autor ostatniej zmiany"
255 msgstr "Last change's author" 294 msgstr "Last change's author"
256 295
257 -# slickgrid.js:12 296 +#: static/js/slickgrid.js:12
258 msgid "równy|równa|równe" 297 msgid "równy|równa|równe"
259 msgstr "equal to" 298 msgstr "equal to"
260 299
261 -# slickgrid.js:13 300 +#: static/js/slickgrid.js:13
262 msgid "różny od|różna od|różne od" 301 msgid "różny od|różna od|różne od"
263 msgstr "not equal to" 302 msgstr "not equal to"
264 303
265 -# slickgrid.js:14 304 +#: static/js/slickgrid.js:14
266 msgid "mniejszy lub równy|mniejsza lub równa|mniejsze lub równe" 305 msgid "mniejszy lub równy|mniejsza lub równa|mniejsze lub równe"
267 msgstr "less than" 306 msgstr "less than"
268 307
269 -# slickgrid.js:15 308 +#: static/js/slickgrid.js:15
270 msgid "większy lub równy|większa lub równa|większe lub równe" 309 msgid "większy lub równy|większa lub równa|większe lub równe"
271 msgstr "greater than" 310 msgstr "greater than"
272 311
273 -# slickgrid.js:16 312 +#: static/js/slickgrid.js:16
274 msgid "zaczyna się od" 313 msgid "zaczyna się od"
275 msgstr "starts with" 314 msgstr "starts with"
276 315
277 -# slickgrid.js:17 316 +#: static/js/slickgrid.js:17
278 msgid "nie zaczyna się od" 317 msgid "nie zaczyna się od"
279 msgstr "doesn't start with" 318 msgstr "doesn't start with"
280 319
281 -# slickgrid.js:18 320 +#: static/js/slickgrid.js:18
282 msgid "kończy się na" 321 msgid "kończy się na"
283 msgstr "ends with" 322 msgstr "ends with"
284 323
285 -# slickgrid.js:19 324 +#: static/js/slickgrid.js:19
286 msgid "nie kończy się na" 325 msgid "nie kończy się na"
287 msgstr "doesn't end with" 326 msgstr "doesn't end with"
288 327
289 -# slickgrid.js:20 328 +#: static/js/slickgrid.js:20
290 msgid "zawiera" 329 msgid "zawiera"
291 msgstr "contains" 330 msgstr "contains"
292 331
293 -# slickgrid.js:21 332 +#: static/js/slickgrid.js:21
294 msgid "nie zawiera" 333 msgid "nie zawiera"
295 msgstr "doesn't contain" 334 msgstr "doesn't contain"
296 335
297 -# slickgrid.js:22 336 +#: static/js/slickgrid.js:22
298 msgid "pasuje do wzorca" 337 msgid "pasuje do wzorca"
299 msgstr "matched by pattern" 338 msgstr "matched by pattern"
300 339
301 -# slickgrid.js:23 340 +#: static/js/slickgrid.js:23
302 msgid "nie pasuje do wzorca" 341 msgid "nie pasuje do wzorca"
303 msgstr "not matched by pattern" 342 msgstr "not matched by pattern"
304 343
305 -# slickgrid.js:367 344 +#: static/js/slickgrid.js:367
306 msgid "Załadowanie strony nie powiodło się." 345 msgid "Załadowanie strony nie powiodło się."
307 msgstr "Page load failed." 346 msgstr "Page load failed."
308 347
309 -# slickgrid.js:401 348 +#: static/js/slickgrid.js:401
310 msgid "Czyść" 349 msgid "Czyść"
311 msgstr "Clear" 350 msgstr "Clear"
312 351
313 -# slickgrid.js:409 352 +#: static/js/slickgrid.js:409
314 msgid "Zapisz filtr" 353 msgid "Zapisz filtr"
315 msgstr "Save filter" 354 msgstr "Save filter"
316 355
317 -# slickgrid.js:413 356 +#: static/js/slickgrid.js:413
318 msgid "Załaduj filtr" 357 msgid "Załaduj filtr"
319 msgstr "Load filter" 358 msgstr "Load filter"
320 359
321 -# slickgrid.js:426 360 +#: static/js/slickgrid.js:426
322 msgid "Filtruj" 361 msgid "Filtruj"
323 msgstr "Apply" 362 msgstr "Apply"
324 363
325 -# slickgrid.js:472 364 +#: static/js/slickgrid.js:472
326 msgid "Zatwierdź" 365 msgid "Zatwierdź"
327 msgstr "Confirm" 366 msgstr "Confirm"
328 -  
329 -# edit.js:14  
330 -msgid "Edycja"  
331 -msgstr "Edit"  
332 -  
333 -# edit.js:14  
334 -msgid "niezapisane"  
335 -msgstr "not saved"  
336 -  
337 -# edit.js:17  
338 -msgid "Są niezapisane zmiany."  
339 -msgstr "There are unsaved changes."  
340 -  
341 -# edit.js:79  
342 -msgid "Czy chcesz porzucić niezapisane zmiany?"  
343 -msgstr "Do you want to discard changes?"  
344 -  
345 -# edit.js:86  
346 -msgid "kwalifikatorów"  
347 -msgstr "qualifiers"  
348 \ No newline at end of file 367 \ No newline at end of file
dictionary/locale/pl/LC_MESSAGES/django.po 0 → 100644
  1 +# SOME DESCRIPTIVE TITLE.
  2 +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
  3 +# This file is distributed under the same license as the PACKAGE package.
  4 +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: PACKAGE VERSION\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: \n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
  20 +"|| n%100>=20) ? 1 : 2);\n"
  21 +
  22 +#: ajax_lexeme_view.py:226
  23 +msgid "Nieokreślona część mowy."
  24 +msgstr ""
  25 +
  26 +#: ajax_lexeme_view.py:345
  27 +msgid "Niepasujące zakończenie formy podstawowej."
  28 +msgstr ""
  29 +
  30 +#: ajax_lexeme_view.py:360
  31 +msgid "Wybierz odmianę lub ustaw status „kandydat”."
  32 +msgstr ""
  33 +
  34 +#: ajax_lexeme_view.py:428
  35 +msgid "Nie wpisano hasła"
  36 +msgstr ""
  37 +
  38 +#: ajax_lexeme_view.py:523
  39 +msgid "Nie wybrano słownika właściciela"
  40 +msgstr ""
  41 +
  42 +#: ajax_lexeme_view.py:589 ajax_lexeme_view.py:596 ajax_lexeme_view.py:600
  43 +#: templates/lexeme_view.html:126
  44 +msgid "Nr hom."
  45 +msgstr ""
  46 +
  47 +#: ajax_lexeme_view.py:589
  48 +msgid "Aspekt"
  49 +msgstr ""
  50 +
  51 +#: ajax_lexeme_view.py:589 ajax_lexeme_view.py:596 ajax_lexeme_view.py:600
  52 +#: forms.py:205 templates/lexeme_view.html:128
  53 +msgid "Wzór"
  54 +msgstr ""
  55 +
  56 +#: ajax_lexeme_view.py:596 templates/lexeme_view.html:127
  57 +msgid "Rodzaj"
  58 +msgstr ""
  59 +
  60 +#: forms.py:74 models.py:479
  61 +msgid "kwal. styl."
  62 +msgstr ""
  63 +
  64 +#: forms.py:77 models.py:480
  65 +msgid "kwal. zakr."
  66 +msgstr ""
  67 +
  68 +#: forms.py:111
  69 +msgid "niedozwolona spacja"
  70 +msgstr ""
  71 +
  72 +#: forms.py:207
  73 +msgid "Kwal."
  74 +msgstr ""
  75 +
  76 +#: forms.py:235
  77 +msgid "Niepoprawna nazwa wzoru."
  78 +msgstr ""
  79 +
  80 +#: forms.py:238
  81 +msgid "Wzór nie pasuje do części mowy."
  82 +msgstr ""
  83 +
  84 +#: forms.py:280 models.py:451
  85 +msgid "hasło"
  86 +msgstr ""
  87 +
  88 +#: forms.py:285
  89 +msgid "hom."
  90 +msgstr ""
  91 +
  92 +#: forms.py:312
  93 +msgid "Wybrany leksem nie istnieje."
  94 +msgstr ""
  95 +
  96 +#: forms.py:315
  97 +msgid "Niejednoznaczny numer homonimu!"
  98 +msgstr ""
  99 +
  100 +#: forms.py:319
  101 +msgid "Nieprawidłowa część mowy w odsyłaczu."
  102 +msgstr ""
  103 +
  104 +#: forms.py:342
  105 +msgid "Dodaj"
  106 +msgstr ""
  107 +
  108 +#: forms.py:343
  109 +msgid "Usuń"
  110 +msgstr ""
  111 +
  112 +#: forms.py:349
  113 +msgid "ustaw"
  114 +msgstr ""
  115 +
  116 +#: forms.py:396
  117 +msgid "Status"
  118 +msgstr ""
  119 +
  120 +#: forms.py:400
  121 +msgid "Słownik używający"
  122 +msgstr ""
  123 +
  124 +#: forms.py:406
  125 +msgid "Kwalifikator leksemu"
  126 +msgstr ""
  127 +
  128 +#: models.py:68 models.py:101 models.py:325
  129 +msgid "nazwa"
  130 +msgstr ""
  131 +
  132 +#: models.py:70 models.py:105
  133 +msgid "słownik"
  134 +msgstr ""
  135 +
  136 +#: models.py:96
  137 +msgid "stylistyczny"
  138 +msgstr ""
  139 +
  140 +#: models.py:97
  141 +msgid "zakresowy"
  142 +msgstr ""
  143 +
  144 +#: models.py:98
  145 +msgid "przy formach"
  146 +msgstr ""
  147 +
  148 +#: models.py:103 models.py:329 models.py:1117
  149 +msgid "typ"
  150 +msgstr ""
  151 +
  152 +#: models.py:109
  153 +msgid "klasa wykluczania"
  154 +msgstr ""
  155 +
  156 +#: models.py:153
  157 +msgid "nazwa klasyfikacji"
  158 +msgstr ""
  159 +
  160 +#: models.py:188
  161 +msgid "nazwa wartości"
  162 +msgstr ""
  163 +
  164 +#: models.py:193
  165 +msgid "rodzic wartości"
  166 +msgstr ""
  167 +
  168 +#: models.py:287
  169 +msgid "typ odmiany"
  170 +msgstr ""
  171 +
  172 +#: models.py:291
  173 +msgid "typ wzoru"
  174 +msgstr ""
  175 +
  176 +#: models.py:321
  177 +msgid "nowy"
  178 +msgstr ""
  179 +
  180 +#: models.py:322
  181 +msgid "tymczasowy"
  182 +msgstr ""
  183 +
  184 +#: models.py:327
  185 +msgid "stara nazwa"
  186 +msgstr ""
  187 +
  188 +#: models.py:332
  189 +msgid "przykład"
  190 +msgstr ""
  191 +
  192 +#: models.py:336
  193 +msgid "zakończenie formy podstawowej"
  194 +msgstr ""
  195 +
  196 +#: models.py:338
  197 +msgid "status"
  198 +msgstr ""
  199 +
  200 +#: models.py:340 models.py:484
  201 +msgid "komentarz"
  202 +msgstr ""
  203 +
  204 +#: models.py:374
  205 +msgid "Może oglądać wzory"
  206 +msgstr ""
  207 +
  208 +#: models.py:444
  209 +msgid "kandydat"
  210 +msgstr ""
  211 +
  212 +#: models.py:445
  213 +msgid "wprowadzony"
  214 +msgstr ""
  215 +
  216 +#: models.py:446
  217 +msgid "zatwierdzony"
  218 +msgstr ""
  219 +
  220 +#: models.py:457
  221 +msgid "sufiks hasła"
  222 +msgstr ""
  223 +
  224 +#: models.py:458
  225 +msgid "glosa"
  226 +msgstr ""
  227 +
  228 +#: models.py:459
  229 +msgid "nota"
  230 +msgstr ""
  231 +
  232 +#: models.py:460
  233 +msgid "nota rozszerzona"
  234 +msgstr ""
  235 +
  236 +#: models.py:462 models.py:867
  237 +msgid "wymowa"
  238 +msgstr ""
  239 +
  240 +#: models.py:463
  241 +msgid "łączliwość"
  242 +msgstr ""
  243 +
  244 +#: models.py:466
  245 +msgid "cz. mowy"
  246 +msgstr ""
  247 +
  248 +#: models.py:471
  249 +msgid "źródło"
  250 +msgstr ""
  251 +
  252 +#: models.py:474
  253 +msgid "źródło zapożyczenia"
  254 +msgstr ""
  255 +
  256 +#: models.py:478
  257 +msgid "kwal. z Dor."
  258 +msgstr ""
  259 +
  260 +#: models.py:482 templates/lexeme_edit_form.html:104
  261 +msgid "specjalistyczny"
  262 +msgstr ""
  263 +
  264 +#: models.py:760
  265 +msgid "Może oglądać leksemy"
  266 +msgstr ""
  267 +
  268 +#: models.py:761
  269 +msgid "Może oglądać wszystkie leksemy"
  270 +msgstr ""
  271 +
  272 +#: models.py:763
  273 +msgid "Ważniejszy głos przy modyfikowaniu leksemów"
  274 +msgstr ""
  275 +
  276 +#: models.py:764
  277 +msgid "Może eksportować leksemy"
  278 +msgstr ""
  279 +
  280 +#: models.py:860
  281 +msgid "wzór"
  282 +msgstr ""
  283 +
  284 +#: models.py:862
  285 +msgid "rodzaj"
  286 +msgstr ""
  287 +
  288 +#: models.py:1040
  289 +msgid "Może zarządzać słownikami"
  290 +msgstr ""
  291 +
  292 +#: models.py:1041
  293 +msgid "Zarządza wszystkimi słownikami"
  294 +msgstr ""
  295 +
  296 +#: models.py:1115
  297 +msgid "nr docelowy"
  298 +msgstr ""
  299 +
  300 +#: reports.py:20
  301 +msgid "Brak odsyłacza do czasownika"
  302 +msgstr ""
  303 +
  304 +#: reports.py:63
  305 +msgid "Brak imiesłowu biernego"
  306 +msgstr ""
  307 +
  308 +#: reports.py:64
  309 +msgid "Brak quasi-imiesłowu biernego"
  310 +msgstr ""
  311 +
  312 +#: reports.py:65
  313 +msgid "Brak imiesłowu czynnego"
  314 +msgstr ""
  315 +
  316 +#: reports.py:66
  317 +msgid "Brak odsłownika"
  318 +msgstr ""
  319 +
  320 +#: views.py:48 views.py:49 views.py:50 views.py:156 views.py:157 views.py:158
  321 +#: views.py:187
  322 +msgid "(puste)"
  323 +msgstr ""
  324 +
  325 +#: templates/classification_forms.html:4
  326 +msgid "Klasyfikacje"
  327 +msgstr ""
  328 +
  329 +#: templates/classification_value_tree.html:15
  330 +msgid "usuń"
  331 +msgstr ""
  332 +
  333 +#: templates/classification_value_tree.html:25
  334 +msgid "zmień nazwę"
  335 +msgstr ""
  336 +
  337 +#: templates/inflection_tables.html:26
  338 +msgid "n. wł."
  339 +msgstr ""
  340 +
  341 +#: templates/inflection_tables.html:39
  342 +msgid "rozwinięcie"
  343 +msgstr ""
  344 +
  345 +#: templates/inflection_tables.html:71 templates/lexeme_edit_form.html:137
  346 +msgid "Odsyłacze"
  347 +msgstr ""
  348 +
  349 +#: templates/lexeme_edit_form.html:5 templates/lexeme_edit_form.html.py:170
  350 +msgid "Zapisz"
  351 +msgstr ""
  352 +
  353 +#: templates/lexeme_edit_form.html:8 templates/lexeme_edit_form.html.py:173
  354 +#: templates/sort_dialog.html:23
  355 +msgid "Anuluj"
  356 +msgstr ""
  357 +
  358 +#: templates/lexeme_edit_form.html:12 templates/lexeme_edit_form.html:177
  359 +msgid "Usuń leksem"
  360 +msgstr ""
  361 +
  362 +#: templates/lexeme_edit_form.html:17
  363 +msgid "Słownik właściciel"
  364 +msgstr ""
  365 +
  366 +#: templates/lexeme_edit_form.html:18
  367 +msgid "Słowniki używające"
  368 +msgstr ""
  369 +
  370 +#: templates/lexeme_edit_form.html:78
  371 +msgid "Sposoby odmiany"
  372 +msgstr ""
  373 +
  374 +#: templates/lexeme_edit_form.html:91
  375 +msgid "Kwalifikatory"
  376 +msgstr ""
  377 +
  378 +#: templates/lexeme_edit_form.html:98
  379 +msgid "stylistyczne"
  380 +msgstr ""
  381 +
  382 +#: templates/lexeme_edit_form.html:101
  383 +msgid "zakresowe"
  384 +msgstr ""
  385 +
  386 +#: templates/lexeme_view.html:47
  387 +msgid "Widok leksemów"
  388 +msgstr ""
  389 +
  390 +#: templates/lexeme_view.html:52 templates/lexeme_view.html.py:53
  391 +#: templates/reader_view.html:44 templates/reader_view.html.py:45
  392 +msgid "sortuj"
  393 +msgstr ""
  394 +
  395 +#: templates/lexeme_view.html:55 templates/lexeme_view.html.py:56
  396 +#: templates/reader_view.html:47 templates/reader_view.html.py:48
  397 +msgid "filtruj"
  398 +msgstr ""
  399 +
  400 +#: templates/lexeme_view.html:58 templates/lexeme_view.html.py:59
  401 +#: templates/reader_view.html:50 templates/reader_view.html.py:51
  402 +msgid "pokaż/ukryj"
  403 +msgstr ""
  404 +
  405 +#: templates/lexeme_view.html:62 templates/lexeme_view.html.py:63
  406 +#: templates/reader_view.html:54 templates/reader_view.html.py:55
  407 +msgid "szukaj"
  408 +msgstr ""
  409 +
  410 +#: templates/lexeme_view.html:66 templates/lexeme_view.html.py:67
  411 +msgid "akcje grupowe"
  412 +msgstr ""
  413 +
  414 +#: templates/lexeme_view.html:69 templates/lexeme_view.html.py:70
  415 +msgid "dodaj leksem"
  416 +msgstr ""
  417 +
  418 +#: templates/lexeme_view.html:73
  419 +msgid "więcej"
  420 +msgstr ""
  421 +
  422 +#: templates/lexeme_view.html:82
  423 +msgid "Edycja"
  424 +msgstr ""
  425 +
  426 +#: templates/lexeme_view.html:83 templates/reader_view.html:64
  427 +msgid "Formy bazowe"
  428 +msgstr ""
  429 +
  430 +#: templates/lexeme_view.html:84 templates/reader_view.html:63
  431 +msgid "Wszystkie formy"
  432 +msgstr ""
  433 +
  434 +#: templates/lexeme_view.html:86
  435 +msgid "Historia"
  436 +msgstr ""
  437 +
  438 +#: templates/lexeme_view.html:98 templates/reader_view.html:73
  439 +msgid "Wybierz kolumny"
  440 +msgstr ""
  441 +
  442 +#: templates/lexeme_view.html:101 templates/reader_view.html:76
  443 +msgid "Filtrowanie"
  444 +msgstr ""
  445 +
  446 +#: templates/lexeme_view.html:104 templates/reader_view.html:79
  447 +msgid "oraz"
  448 +msgstr ""
  449 +
  450 +#: templates/lexeme_view.html:105 templates/reader_view.html:80
  451 +msgid "lub"
  452 +msgstr ""
  453 +
  454 +#: templates/lexeme_view.html:107 templates/reader_view.html:82
  455 +msgid "Dodaj filtr"
  456 +msgstr ""
  457 +
  458 +#: templates/lexeme_view.html:112
  459 +msgid "Wybierz filtr"
  460 +msgstr ""
  461 +
  462 +#: templates/lexeme_view.html:115
  463 +msgid "Wybierz akcję grupową"
  464 +msgstr ""
  465 +
  466 +#: templates/lexeme_view.html:116 templates/lexeme_view.html.py:117
  467 +msgid "dodaj akcję"
  468 +msgstr ""
  469 +
  470 +#: templates/lexeme_view.html:122
  471 +msgid "Wybierz homonim"
  472 +msgstr ""
  473 +
  474 +#: templates/lexeme_view.html:135
  475 +msgid "Podpowiadacz wzorów"
  476 +msgstr ""
  477 +
  478 +#: templates/lexeme_view.html:142
  479 +msgid "Uwzględniaj rodzaj"
  480 +msgstr ""
  481 +
  482 +#: templates/lexeme_view.html:146
  483 +msgid "Uwzględniaj pospolitość"
  484 +msgstr ""
  485 +
  486 +#: templates/lexeme_view.html:150
  487 +msgid "Pomijaj wzory nietypowe"
  488 +msgstr ""
  489 +
  490 +#: templates/lexeme_view.html:157
  491 +msgid "Wybór domyślnego słownika"
  492 +msgstr ""
  493 +
  494 +#: templates/lexeme_view.html:159
  495 +msgid ""
  496 +"\n"
  497 +" Wybierz słownik domyślnie ustawiany jako właściciel przy\n"
  498 +" dodawaniu leksemów.\n"
  499 +" "
  500 +msgstr ""
  501 +
  502 +#: templates/lexeme_view.html:165
  503 +msgid "Wybór można będzie zmienić w Ustawieniach."
  504 +msgstr ""
  505 +
  506 +#: templates/lexeme_view.html:176
  507 +msgid "Inne działania"
  508 +msgstr ""
  509 +
  510 +#: templates/lexeme_view.html:178
  511 +msgid "Eksport aktualnie filtrowanej listy"
  512 +msgstr ""
  513 +
  514 +#: templates/lexeme_view.html:181
  515 +msgid "Przeładowanie listy"
  516 +msgstr ""
  517 +
  518 +#: templates/lexeme_view.html:184
  519 +msgid "Sklonowanie aktywnego leksemu"
  520 +msgstr ""
  521 +
  522 +#: templates/lexeme_view.html:187
  523 +msgid "Tworzenie derywatów"
  524 +msgstr ""
  525 +
  526 +#: templates/lexeme_view.html:188
  527 +msgid "Wybierz hasła do utworzenia"
  528 +msgstr ""
  529 +
  530 +#: templates/lexeme_view.html:192 templates/reader_view.html:87
  531 +msgid "Szukanie według formy"
  532 +msgstr ""
  533 +
  534 +#: templates/reader_view.html:39
  535 +msgid "Słownik gramatyczny języka polskiego"
  536 +msgstr ""
  537 +
  538 +#: templates/sort_dialog.html:2
  539 +msgid "Porządek sortowania"
  540 +msgstr ""
  541 +
  542 +#: templates/sort_dialog.html:9
  543 +msgid "Rosnąco"
  544 +msgstr ""
  545 +
  546 +#: templates/sort_dialog.html:10
  547 +msgid "Malejąco"
  548 +msgstr ""
  549 +
  550 +#: templates/sort_dialog.html:22
  551 +msgid "Zatwierdź"
  552 +msgstr ""
dictionary/locale/pl/LC_MESSAGES/djangojs.po 0 → 100644
  1 +# SOME DESCRIPTIVE TITLE.
  2 +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
  3 +# This file is distributed under the same license as the PACKAGE package.
  4 +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: PACKAGE VERSION\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: \n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
  20 +"|| n%100>=20) ? 1 : 2);\n"
  21 +
  22 +#: static/js/edit.js:14 static/js/edit.js.c:26
  23 +msgid "Edycja"
  24 +msgstr ""
  25 +
  26 +#: static/js/edit.js:14
  27 +msgid "niezapisane"
  28 +msgstr ""
  29 +
  30 +#: static/js/edit.js:17
  31 +msgid "Są niezapisane zmiany."
  32 +msgstr ""
  33 +
  34 +#: static/js/edit.js:79
  35 +msgid "Czy chcesz porzucić niezapisane zmiany?"
  36 +msgstr ""
  37 +
  38 +#: static/js/edit.js:86
  39 +msgid "kwalifikatorów"
  40 +msgstr ""
  41 +
  42 +#: static/js/lexeme-edit.js:86 static/js/lexeme-edit.js.c:277
  43 +#, c-format
  44 +msgid "Atrybut: %s zostanie usunięty."
  45 +msgid_plural "Atrybuty: %s zostaną usunięte."
  46 +msgstr[0] ""
  47 +msgstr[1] ""
  48 +msgstr[2] ""
  49 +
  50 +#: static/js/lexeme-edit.js:89 static/js/lexeme-edit.js.c:261
  51 +#: static/js/lexeme-edit.js:281 static/js/lexeme-edit.js.c:906
  52 +msgid "Kontynuować?"
  53 +msgstr ""
  54 +
  55 +#: static/js/lexeme-edit.js:170 static/js/lexeme-edit.js.c:187
  56 +#: static/js/lexeme-edit.js:229 static/js/slickgrid.js:466
  57 +msgid "Anuluj"
  58 +msgstr ""
  59 +
  60 +#: static/js/lexeme-edit.js:176 static/js/lexeme-edit.js.c:235
  61 +msgid "Wybierz"
  62 +msgstr ""
  63 +
  64 +#: static/js/lexeme-edit.js:193
  65 +msgid "Utwórz"
  66 +msgstr ""
  67 +
  68 +#: static/js/lexeme-edit.js:213
  69 +msgid "Wykonaj"
  70 +msgstr ""
  71 +
  72 +#: static/js/lexeme-edit.js:256
  73 +msgid "Zostanie usunięta klasyfikacja:"
  74 +msgid_plural "Zostaną usunięte klasyfikacje:"
  75 +msgstr[0] ""
  76 +msgstr[1] ""
  77 +msgstr[2] ""
  78 +
  79 +#: static/js/lexeme-edit.js:320
  80 +msgid "Wybierz słowniki"
  81 +msgstr ""
  82 +
  83 +#: static/js/lexeme-edit.js:321
  84 +msgid "# słowników"
  85 +msgstr ""
  86 +
  87 +#: static/js/lexeme-edit.js:413
  88 +msgid "Zapisanie zmian"
  89 +msgstr ""
  90 +
  91 +#: static/js/lexeme-edit.js:493
  92 +msgid "Utworzenie derywatów"
  93 +msgstr ""
  94 +
  95 +#: static/js/lexeme-edit.js:593
  96 +msgid "Przeładowanie klasyfikacji"
  97 +msgstr ""
  98 +
  99 +#: static/js/lexeme-edit.js:610
  100 +msgid "Przeładowanie atrybutów"
  101 +msgstr ""
  102 +
  103 +#: static/js/lexeme-edit.js:644
  104 +msgid "Wzór nie pasuje do rodzaju — na pewno zapisać?"
  105 +msgstr ""
  106 +
  107 +#: static/js/lexeme-edit.js:688
  108 +msgid "Na pewno usunąć leksem?"
  109 +msgstr ""
  110 +
  111 +#: static/js/lexeme-edit.js:693
  112 +msgid "Usunięcie leksemu"
  113 +msgstr ""
  114 +
  115 +#: static/js/lexeme-edit.js:889
  116 +msgid "wszystkie sposoby odmiany"
  117 +msgstr ""
  118 +
  119 +#: static/js/lexeme-edit.js:892
  120 +msgid "wszystkie odsyłacze"
  121 +msgstr ""
  122 +
  123 +#: static/js/lexeme-edit.js:896
  124 +msgid "atrybuty"
  125 +msgstr ""
  126 +
  127 +#: static/js/lexeme-edit.js:901
  128 +msgid "klasyfikacje"
  129 +msgstr ""
  130 +
  131 +#: static/js/lexeme-edit.js:905
  132 +msgid "Zostaną usunięte:"
  133 +msgstr ""
  134 +
  135 +#: static/js/lexeme-edit.js:959
  136 +msgid "Zapisanie domyślnego słownika"
  137 +msgstr ""
  138 +
  139 +#: static/js/lexeme-edit.js:969
  140 +msgid "Utworzenie leksemu"
  141 +msgstr ""
  142 +
  143 +#: static/js/lexeme-edit.js:983
  144 +msgid "Sklonowanie leksemu"
  145 +msgstr ""
  146 +
  147 +#: static/js/lexeme-edit.js:998
  148 +msgid "Pobranie liczby homonimów"
  149 +msgstr ""
  150 +
  151 +#: static/js/lexeme-edit.js:1054
  152 +msgid "Sprawdzenie homonimów"
  153 +msgstr ""
  154 +
  155 +#: static/js/lexeme-edit.js:1063
  156 +msgid "Brak pasujących leksemów."
  157 +msgstr ""
  158 +
  159 +#: static/js/lexeme-view.js:12
  160 +msgid "Atrybut"
  161 +msgstr ""
  162 +
  163 +#: static/js/lexeme-view.js:67
  164 +msgid "Leksemy"
  165 +msgstr ""
  166 +
  167 +#: static/js/lexeme-view.js:73
  168 +msgid "Nr"
  169 +msgstr ""
  170 +
  171 +#: static/js/lexeme-view.js:74 static/js/lexeme-view.js.c:92
  172 +msgid "Hasło"
  173 +msgstr ""
  174 +
  175 +#: static/js/lexeme-view.js:75 static/js/lexeme-view.js.c:94
  176 +msgid "Część mowy"
  177 +msgstr ""
  178 +
  179 +#: static/js/lexeme-view.js:76
  180 +msgid "Wzory"
  181 +msgstr ""
  182 +
  183 +#: static/js/lexeme-view.js:79
  184 +msgid "Rodzaj/aspekt"
  185 +msgstr ""
  186 +
  187 +#: static/js/lexeme-view.js:82
  188 +msgid "Słowniki"
  189 +msgstr ""
  190 +
  191 +#: static/js/lexeme-view.js:83
  192 +msgid "Sł. właściciel"
  193 +msgstr ""
  194 +
  195 +#: static/js/lexeme-view.js:84 static/js/lexeme-view.js.c:132
  196 +msgid "Status"
  197 +msgstr ""
  198 +
  199 +#: static/js/lexeme-view.js:87
  200 +msgid "Kwal."
  201 +msgstr ""
  202 +
  203 +#: static/js/lexeme-view.js:99
  204 +msgid "Wzór"
  205 +msgstr ""
  206 +
  207 +#: static/js/lexeme-view.js:101
  208 +msgid "Liczba wzorów"
  209 +msgstr ""
  210 +
  211 +#: static/js/lexeme-view.js:106
  212 +msgid "Typ wzoru"
  213 +msgstr ""
  214 +
  215 +#: static/js/lexeme-view.js:112
  216 +msgid "Rodzaj"
  217 +msgstr ""
  218 +
  219 +#: static/js/lexeme-view.js:117
  220 +msgid "Liczba rodzajów"
  221 +msgstr ""
  222 +
  223 +#: static/js/lexeme-view.js:118
  224 +msgid "Forma"
  225 +msgstr ""
  226 +
  227 +#: static/js/lexeme-view.js:120
  228 +msgid "Słownik"
  229 +msgstr ""
  230 +
  231 +#: static/js/lexeme-view.js:126
  232 +msgid "Słownik właściciel"
  233 +msgstr ""
  234 +
  235 +#: static/js/lexeme-view.js:137
  236 +msgid "Komentarz"
  237 +msgstr ""
  238 +
  239 +#: static/js/lexeme-view.js:139
  240 +msgid "Kwal. leksemu"
  241 +msgstr ""
  242 +
  243 +#: static/js/lexeme-view.js:145
  244 +msgid "Kwal. odmieniasia"
  245 +msgstr ""
  246 +
  247 +#: static/js/lexeme-view.js:151
  248 +msgid "Kwal. przy dow. formie"
  249 +msgstr ""
  250 +
  251 +#: static/js/lexeme-view.js:157
  252 +msgid "Kwal. z Dor."
  253 +msgstr ""
  254 +
  255 +#: static/js/lexeme-view.js:159
  256 +msgid "Kwal. styl."
  257 +msgstr ""
  258 +
  259 +#: static/js/lexeme-view.js:161
  260 +msgid "Kwal. zakr."
  261 +msgstr ""
  262 +
  263 +#: static/js/lexeme-view.js:163
  264 +msgid "Wartość klasyfikacji"
  265 +msgstr ""
  266 +
  267 +#: static/js/lexeme-view.js:169
  268 +msgid "Źródło zapożyczenia"
  269 +msgstr ""
  270 +
  271 +#: static/js/lexeme-view.js:174
  272 +msgid "Glosa"
  273 +msgstr ""
  274 +
  275 +#: static/js/lexeme-view.js:175
  276 +msgid "Nota"
  277 +msgstr ""
  278 +
  279 +#: static/js/lexeme-view.js:177
  280 +msgid "Nota rozszerzona"
  281 +msgstr ""
  282 +
  283 +#: static/js/lexeme-view.js:181
  284 +msgid "Wymowa"
  285 +msgstr ""
  286 +
  287 +#: static/js/lexeme-view.js:182
  288 +msgid "Łączliwość"
  289 +msgstr ""
  290 +
  291 +#: static/js/lexeme-view.js:184
  292 +msgid "Typ odsyłacza"
  293 +msgstr ""
  294 +
  295 +#: static/js/lexeme-view.js:190
  296 +msgid "Autor ostatniej zmiany"
  297 +msgstr ""
  298 +
  299 +#: static/js/slickgrid.js:12
  300 +msgid "równy|równa|równe"
  301 +msgstr ""
  302 +
  303 +#: static/js/slickgrid.js:13
  304 +msgid "różny od|różna od|różne od"
  305 +msgstr ""
  306 +
  307 +#: static/js/slickgrid.js:14
  308 +msgid "mniejszy lub równy|mniejsza lub równa|mniejsze lub równe"
  309 +msgstr ""
  310 +
  311 +#: static/js/slickgrid.js:15
  312 +msgid "większy lub równy|większa lub równa|większe lub równe"
  313 +msgstr ""
  314 +
  315 +#: static/js/slickgrid.js:16
  316 +msgid "zaczyna się od"
  317 +msgstr ""
  318 +
  319 +#: static/js/slickgrid.js:17
  320 +msgid "nie zaczyna się od"
  321 +msgstr ""
  322 +
  323 +#: static/js/slickgrid.js:18
  324 +msgid "kończy się na"
  325 +msgstr ""
  326 +
  327 +#: static/js/slickgrid.js:19
  328 +msgid "nie kończy się na"
  329 +msgstr ""
  330 +
  331 +#: static/js/slickgrid.js:20
  332 +msgid "zawiera"
  333 +msgstr ""
  334 +
  335 +#: static/js/slickgrid.js:21
  336 +msgid "nie zawiera"
  337 +msgstr ""
  338 +
  339 +#: static/js/slickgrid.js:22
  340 +msgid "pasuje do wzorca"
  341 +msgstr ""
  342 +
  343 +#: static/js/slickgrid.js:23
  344 +msgid "nie pasuje do wzorca"
  345 +msgstr ""
  346 +
  347 +#: static/js/slickgrid.js:367
  348 +msgid "Załadowanie strony nie powiodło się."
  349 +msgstr ""
  350 +
  351 +#: static/js/slickgrid.js:401
  352 +msgid "Czyść"
  353 +msgstr ""
  354 +
  355 +#: static/js/slickgrid.js:409
  356 +msgid "Zapisz filtr"
  357 +msgstr ""
  358 +
  359 +#: static/js/slickgrid.js:413
  360 +msgid "Załaduj filtr"
  361 +msgstr ""
  362 +
  363 +#: static/js/slickgrid.js:426
  364 +msgid "Filtruj"
  365 +msgstr ""
  366 +
  367 +#: static/js/slickgrid.js:472
  368 +msgid "Zatwierdź"
  369 +msgstr ""
dictionary/models.py
@@ -6,6 +6,8 @@ import json @@ -6,6 +6,8 @@ import json
6 from django.contrib.auth.models import User, Permission 6 from django.contrib.auth.models import User, Permission
7 from django.db.models import Manager, Model, CharField, ForeignKey, \ 7 from django.db.models import Manager, Model, CharField, ForeignKey, \
8 IntegerField, BooleanField, ManyToManyField, TextField, DateTimeField 8 IntegerField, BooleanField, ManyToManyField, TextField, DateTimeField
  9 +from django.utils.translation import ugettext_lazy as _
  10 +
9 from common.util import no_history, GroupDict 11 from common.util import no_history, GroupDict
10 from accounts.util import users_with_perm 12 from accounts.util import users_with_perm
11 13
@@ -63,9 +65,9 @@ class PartOfSpeech(Model): @@ -63,9 +65,9 @@ class PartOfSpeech(Model):
63 65
64 class QualifierExclusionClass(Model): 66 class QualifierExclusionClass(Model):
65 name = CharField( 67 name = CharField(
66 - unique=True, max_length=64, db_column='nazwa', verbose_name=u'nazwa') 68 + unique=True, max_length=64, db_column='nazwa', verbose_name=_(u'nazwa'))
67 vocabulary = ForeignKey( 69 vocabulary = ForeignKey(
68 - 'Vocabulary', db_column='slownik', verbose_name=u'słownik') 70 + 'Vocabulary', db_column='slownik', verbose_name=_(u'słownik'))
69 71
70 def __unicode__(self): 72 def __unicode__(self):
71 return self.name 73 return self.name
@@ -91,20 +93,20 @@ class Qualifier(Model): @@ -91,20 +93,20 @@ class Qualifier(Model):
91 TYPE_SCOPE = 'zakr' 93 TYPE_SCOPE = 'zakr'
92 TYPE_FORM = 'form' 94 TYPE_FORM = 'form'
93 TYPE_CHOICES = ( 95 TYPE_CHOICES = (
94 - (TYPE_STYLE, 'stylistyczny'),  
95 - (TYPE_SCOPE, 'zakresowy'),  
96 - (TYPE_FORM, 'przy formach'), 96 + (TYPE_STYLE, _('stylistyczny')),
  97 + (TYPE_SCOPE, _('zakresowy')),
  98 + (TYPE_FORM, _('przy formach')),
97 ) 99 )
98 100
99 - label = CharField(max_length=64, db_column='kwal', verbose_name=u'nazwa') 101 + label = CharField(max_length=64, db_column='kwal', verbose_name=_(u'nazwa'))
100 type = CharField( 102 type = CharField(
101 - max_length=4, choices=TYPE_CHOICES, verbose_name=u'typ') 103 + max_length=4, choices=TYPE_CHOICES, verbose_name=_(u'typ'))
102 vocabulary = ForeignKey( 104 vocabulary = ForeignKey(
103 - 'Vocabulary', db_column='slownik', verbose_name=u'słownik', 105 + 'Vocabulary', db_column='slownik', verbose_name=_(u'słownik'),
104 related_name='qualifiers') 106 related_name='qualifiers')
105 exclusion_class = ForeignKey( 107 exclusion_class = ForeignKey(
106 QualifierExclusionClass, db_column='klasa', null=True, blank=True, 108 QualifierExclusionClass, db_column='klasa', null=True, blank=True,
107 - verbose_name=u'klasa wykluczania') 109 + verbose_name=_(u'klasa wykluczania'))
108 deleted = BooleanField(db_column='usuniety', default=False) 110 deleted = BooleanField(db_column='usuniety', default=False)
109 111
110 objects = NotDeletedManager() 112 objects = NotDeletedManager()
@@ -148,7 +150,7 @@ def editable_qualifiers(user): @@ -148,7 +150,7 @@ def editable_qualifiers(user):
148 class Classification(Model): 150 class Classification(Model):
149 name = CharField( 151 name = CharField(
150 unique=True, max_length=64, db_column='nazwa', 152 unique=True, max_length=64, db_column='nazwa',
151 - verbose_name=u'nazwa klasyfikacji') 153 + verbose_name=_(u'nazwa klasyfikacji'))
152 parts_of_speech = ManyToManyField(PartOfSpeech) 154 parts_of_speech = ManyToManyField(PartOfSpeech)
153 155
154 def value_tree(self): 156 def value_tree(self):
@@ -183,12 +185,12 @@ def make_choices(tree): @@ -183,12 +185,12 @@ def make_choices(tree):
183 class ClassificationValue(Model): 185 class ClassificationValue(Model):
184 label = CharField( 186 label = CharField(
185 unique=True, max_length=64, db_column='nazwa', 187 unique=True, max_length=64, db_column='nazwa',
186 - verbose_name=u'nazwa wartości') 188 + verbose_name=_(u'nazwa wartości'))
187 classification = ForeignKey( 189 classification = ForeignKey(
188 Classification, db_column='klas_id', related_name='values') 190 Classification, db_column='klas_id', related_name='values')
189 parent_node = ForeignKey( 191 parent_node = ForeignKey(
190 'self', db_column='rodzic', null=True, blank=True, 192 'self', db_column='rodzic', null=True, blank=True,
191 - verbose_name=u'rodzic wartości', related_name='child_nodes') 193 + verbose_name=_(u'rodzic wartości'), related_name='child_nodes')
192 lexemes = ManyToManyField('Lexeme', blank=True, through='LexemeCV') 194 lexemes = ManyToManyField('Lexeme', blank=True, through='LexemeCV')
193 deleted = BooleanField(db_column='usunieta', default=False) 195 deleted = BooleanField(db_column='usunieta', default=False)
194 196
@@ -282,10 +284,11 @@ class DummyEnding(object): @@ -282,10 +284,11 @@ class DummyEnding(object):
282 284
283 class PatternType(Model): 285 class PatternType(Model):
284 lexical_class = ForeignKey( 286 lexical_class = ForeignKey(
285 - LexicalClass, db_column='czm', verbose_name=u'cz. mowy') 287 + LexicalClass, db_column='czm', verbose_name=_(u'typ odmiany'))
286 # typ wzoru (np. dla rzeczowników: odmiana męska, żeńska lub nijaka) 288 # typ wzoru (np. dla rzeczowników: odmiana męska, żeńska lub nijaka)
287 symbol = CharField( 289 symbol = CharField(
288 - max_length=32, blank=True, db_column='wtyp', verbose_name=u'typ wzoru') 290 + max_length=32, blank=True, db_column='wtyp',
  291 + verbose_name=_(u'typ wzoru'))
289 base_form_labels = ManyToManyField(BaseFormLabel) 292 base_form_labels = ManyToManyField(BaseFormLabel)
290 293
291 def dummy_base_endings(self): 294 def dummy_base_endings(self):
@@ -315,24 +318,26 @@ class Pattern(Model): @@ -315,24 +318,26 @@ class Pattern(Model):
315 STATUS_NEW = 'nowy' 318 STATUS_NEW = 'nowy'
316 STATUS_TEMP = 'temp' 319 STATUS_TEMP = 'temp'
317 STATUS_CHOICES = ( 320 STATUS_CHOICES = (
318 - (STATUS_NEW, u'nowy'),  
319 - (STATUS_TEMP, u'tymczasowy'), 321 + (STATUS_NEW, _(u'nowy')),
  322 + (STATUS_TEMP, _(u'tymczasowy')),
320 ) 323 )
321 name = CharField( 324 name = CharField(
322 - max_length=32, unique=True, db_column='w_id', verbose_name=u'nazwa')  
323 - old_name = CharField(max_length=32, verbose_name=u'stara nazwa', null=True)  
324 - type = ForeignKey(PatternType, db_column='typ', verbose_name=u'typ') 325 + max_length=32, unique=True, db_column='w_id', verbose_name=_(u'nazwa'))
  326 + old_name = CharField(
  327 + max_length=32, verbose_name=_(u'stara nazwa'), null=True)
  328 + type = ForeignKey(
  329 + PatternType, db_column='typ', verbose_name=_(u'typ'))
325 # rdzeń przykładowej formy hasłowej 330 # rdzeń przykładowej formy hasłowej
326 example = CharField( 331 example = CharField(
327 - max_length=64, db_column='przyklad', verbose_name=u'przykład', 332 + max_length=64, db_column='przyklad', verbose_name=_(u'przykład'),
328 blank=True) 333 blank=True)
329 basic_form_ending = CharField( 334 basic_form_ending = CharField(
330 max_length=32, db_column='zakp', blank=True, 335 max_length=32, db_column='zakp', blank=True,
331 - verbose_name=u'zakończenie formy podstawowej') 336 + verbose_name=_(u'zakończenie formy podstawowej'))
332 status = CharField( 337 status = CharField(
333 - max_length=8, choices=STATUS_CHOICES, verbose_name=u'status') 338 + max_length=8, choices=STATUS_CHOICES, verbose_name=_(u'status'))
334 comment = TextField( 339 comment = TextField(
335 - blank=True, db_column='komentarz', verbose_name=u'komentarz') 340 + blank=True, db_column='komentarz', verbose_name=_(u'komentarz'))
336 deleted = BooleanField() 341 deleted = BooleanField()
337 342
338 objects = NotDeletedManager() 343 objects = NotDeletedManager()
@@ -366,7 +371,7 @@ class Pattern(Model): @@ -366,7 +371,7 @@ class Pattern(Model):
366 db_table = 'wzory' 371 db_table = 'wzory'
367 ordering = ['name'] 372 ordering = ['name']
368 permissions = ( 373 permissions = (
369 - ('view_pattern', u'Może oglądać wzory'), 374 + ('view_pattern', _(u'Może oglądać wzory')),
370 ) 375 )
371 376
372 377
@@ -436,46 +441,47 @@ class Lexeme(Model): @@ -436,46 +441,47 @@ class Lexeme(Model):
436 STATUS_DESCRIBED = 'desc' 441 STATUS_DESCRIBED = 'desc'
437 STATUS_CONFIRMED = 'conf' 442 STATUS_CONFIRMED = 'conf'
438 STATUS_CHOICES = ( 443 STATUS_CHOICES = (
439 - (STATUS_CANDIDATE, u'kandydat'),  
440 - (STATUS_DESCRIBED, u'wprowadzony'),  
441 - (STATUS_CONFIRMED, u'zatwierdzony'), 444 + (STATUS_CANDIDATE, _(u'kandydat')),
  445 + (STATUS_DESCRIBED, _(u'wprowadzony')),
  446 + (STATUS_CONFIRMED, _(u'zatwierdzony')),
442 ) 447 )
443 448
444 entry = CharField( 449 entry = CharField(
445 max_length=64, db_column='haslo', db_index=True, 450 max_length=64, db_column='haslo', db_index=True,
446 - verbose_name=u'hasło', blank=True) # dla nowo utworzonych 451 + verbose_name=_(u'hasło'), blank=True) # dla nowo utworzonych
447 # id w źródłowej bazie 452 # id w źródłowej bazie
448 source_id = IntegerField(blank=True, null=True) 453 source_id = IntegerField(blank=True, null=True)
449 # pozostałość historyczna: 454 # pozostałość historyczna:
450 entry_suffix = CharField( 455 entry_suffix = CharField(
451 blank=True, max_length=16, db_column='haslosuf', 456 blank=True, max_length=16, db_column='haslosuf',
452 - verbose_name=u'sufiks hasła')  
453 - gloss = TextField(blank=True, db_column='glosa', verbose_name=u'glosa')  
454 - note = TextField(blank=True, db_column='nota', verbose_name=u'nota')  
455 - extended_note = TextField(blank=True, verbose_name=u'nota rozszerzona') 457 + verbose_name=_(u'sufiks hasła'))
  458 + gloss = TextField(blank=True, db_column='glosa', verbose_name=_(u'glosa'))
  459 + note = TextField(blank=True, db_column='nota', verbose_name=_(u'nota'))
  460 + extended_note = TextField(blank=True, verbose_name=_(u'nota rozszerzona'))
456 pronunciation = TextField( 461 pronunciation = TextField(
457 - blank=True, db_column='wymowa', verbose_name=u'wymowa')  
458 - valence = TextField(blank=True, verbose_name=u'łączliwość') 462 + blank=True, db_column='wymowa', verbose_name=_(u'wymowa'))
  463 + valence = TextField(blank=True, verbose_name=_(u'łączliwość'))
459 homonym_number = IntegerField(db_column='hom', default=1) 464 homonym_number = IntegerField(db_column='hom', default=1)
460 part_of_speech = ForeignKey( 465 part_of_speech = ForeignKey(
461 - PartOfSpeech, db_column='pos', verbose_name=u'cz. mowy') 466 + PartOfSpeech, db_column='pos', verbose_name=_(u'cz. mowy'))
462 owner_vocabulary = ForeignKey( 467 owner_vocabulary = ForeignKey(
463 'Vocabulary', db_column='slownik', related_name='owned_lexemes') 468 'Vocabulary', db_column='slownik', related_name='owned_lexemes')
464 source = CharField( 469 source = CharField(
465 - max_length=64, blank=True, db_column='zrodlo', verbose_name=u'źródło') 470 + max_length=64, blank=True, db_column='zrodlo',
  471 + verbose_name=_(u'źródło'))
466 borrowing_source = ForeignKey( 472 borrowing_source = ForeignKey(
467 BorrowingSource, blank=True, null=True, 473 BorrowingSource, blank=True, null=True,
468 - verbose_name=u'źródło zapożyczenia') 474 + verbose_name=_(u'źródło zapożyczenia'))
469 status = CharField(max_length=8, db_column='status', choices=STATUS_CHOICES) 475 status = CharField(max_length=8, db_column='status', choices=STATUS_CHOICES)
470 qualifiers = ManyToManyField( 476 qualifiers = ManyToManyField(
471 Qualifier, blank=True, db_table='kwalifikatory_leksemow') 477 Qualifier, blank=True, db_table='kwalifikatory_leksemow')
472 - qualifiers_dor = TextField(blank=True, verbose_name=u'kwal. z Dor.')  
473 - qualifiers_style = TextField(blank=True, verbose_name=u'kwal. styl.')  
474 - qualifiers_scope = TextField(blank=True, verbose_name=u'kwal. zakr.') 478 + qualifiers_dor = TextField(blank=True, verbose_name=_(u'kwal. z Dor.'))
  479 + qualifiers_style = TextField(blank=True, verbose_name=_(u'kwal. styl.'))
  480 + qualifiers_scope = TextField(blank=True, verbose_name=_(u'kwal. zakr.'))
475 # czy termin specjalistyczny 481 # czy termin specjalistyczny
476 - specialist = BooleanField(default=False, verbose_name=u'specjalistyczny') 482 + specialist = BooleanField(default=False, verbose_name=_(u'specjalistyczny'))
477 comment = TextField( 483 comment = TextField(
478 - blank=True, db_column='komentarz', verbose_name=u'komentarz') 484 + blank=True, db_column='komentarz', verbose_name=_(u'komentarz'))
479 last_modified = DateTimeField(auto_now=True, db_column='data_modyfikacji') 485 last_modified = DateTimeField(auto_now=True, db_column='data_modyfikacji')
480 # osoba, ktora ostatnia zmieniala opis leksemu 486 # osoba, ktora ostatnia zmieniala opis leksemu
481 responsible = ForeignKey( 487 responsible = ForeignKey(
@@ -751,10 +757,11 @@ class Lexeme(Model): @@ -751,10 +757,11 @@ class Lexeme(Model):
751 class Meta: 757 class Meta:
752 db_table = 'leksemy' 758 db_table = 'leksemy'
753 permissions = ( 759 permissions = (
754 - ('view_lexeme', u'Może oglądać leksemy'),  
755 - ('view_all_lexemes', u'Może oglądać wszystkie leksemy'),  
756 - ('lexeme_priority', u'Ważniejszy głos przy modyfikowaniu leksemów'),  
757 - ('export_lexemes', u'Może eksportować leksemy'), 760 + ('view_lexeme', _(u'Może oglądać leksemy')),
  761 + ('view_all_lexemes', _(u'Może oglądać wszystkie leksemy')),
  762 + ('lexeme_priority',
  763 + _(u'Ważniejszy głos przy modyfikowaniu leksemów')),
  764 + ('export_lexemes', _(u'Może eksportować leksemy')),
758 ) 765 )
759 766
760 767
@@ -850,12 +857,14 @@ class LexemeAV(Model): @@ -850,12 +857,14 @@ class LexemeAV(Model):
850 class LexemeInflectionPattern(Model): 857 class LexemeInflectionPattern(Model):
851 lexeme = ForeignKey(Lexeme, db_column='l_id') 858 lexeme = ForeignKey(Lexeme, db_column='l_id')
852 index = IntegerField(db_column='oind') 859 index = IntegerField(db_column='oind')
853 - pattern = ForeignKey(Pattern, db_column='w_id', verbose_name=u'wzór')  
854 - gender = ForeignKey(Gender, verbose_name=u'rodzaj', blank=True, null=True) 860 + pattern = ForeignKey(Pattern, db_column='w_id', verbose_name=_(u'wzór'))
  861 + gender = ForeignKey(
  862 + Gender, verbose_name=_(u'rodzaj'), blank=True, null=True)
855 root = CharField(max_length=64, db_column='rdzen') 863 root = CharField(max_length=64, db_column='rdzen')
856 qualifiers = ManyToManyField( 864 qualifiers = ManyToManyField(
857 Qualifier, blank=True, db_table='kwalifikatory_odmieniasiow') 865 Qualifier, blank=True, db_table='kwalifikatory_odmieniasiow')
858 - pronunciation = CharField(max_length=64, verbose_name=u'wymowa', blank=True) 866 + pronunciation = CharField(
  867 + max_length=64, verbose_name=_(u'wymowa'), blank=True)
859 868
860 objects = LexemeNotDeletedManager() 869 objects = LexemeNotDeletedManager()
861 all_objects = Manager() 870 all_objects = Manager()
@@ -1028,8 +1037,8 @@ class Vocabulary(Model): @@ -1028,8 +1037,8 @@ class Vocabulary(Model):
1028 db_table = 'slowniki' 1037 db_table = 'slowniki'
1029 ordering = ['id'] 1038 ordering = ['id']
1030 permissions = ( 1039 permissions = (
1031 - ('manage_vocabulary', u'Może zarządzać słownikami'),  
1032 - ('manage_all_vocabularies', u'Zarządza wszystkimi słownikami'), 1040 + ('manage_vocabulary', _(u'Może zarządzać słownikami')),
  1041 + ('manage_all_vocabularies', _(u'Zarządza wszystkimi słownikami')),
1033 ) 1042 )
1034 1043
1035 1044
@@ -1103,9 +1112,9 @@ class CrossReference(Model): @@ -1103,9 +1112,9 @@ class CrossReference(Model):
1103 Lexeme, db_column='l_id_od', related_name='refs_to') 1112 Lexeme, db_column='l_id_od', related_name='refs_to')
1104 to_lexeme = ForeignKey( 1113 to_lexeme = ForeignKey(
1105 Lexeme, db_column='l_id_do', related_name='refs_from', 1114 Lexeme, db_column='l_id_do', related_name='refs_from',
1106 - verbose_name=u'nr docelowy') 1115 + verbose_name=_(u'nr docelowy'))
1107 type = ForeignKey( 1116 type = ForeignKey(
1108 - CrossReferenceType, db_column='typods_id', verbose_name=u'typ') 1117 + CrossReferenceType, db_column='typods_id', verbose_name=_(u'typ'))
1109 1118
1110 objects = CRManager() 1119 objects = CRManager()
1111 all_objects = Manager() 1120 all_objects = Manager()
dictionary/reports.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
  2 +from django.utils.translation import ugettext as _
  3 +
2 from dictionary.models import Lexeme, LexemeAttributeValue, Pattern, \ 4 from dictionary.models import Lexeme, LexemeAttributeValue, Pattern, \
3 CrossReferenceType 5 CrossReferenceType
4 6
@@ -15,7 +17,7 @@ def derivatives_without_verb(): @@ -15,7 +17,7 @@ def derivatives_without_verb():
15 derivatives = Lexeme.objects.filter( 17 derivatives = Lexeme.objects.filter(
16 part_of_speech__symbol__in=('ger', 'pact', 'ppas', 'appas')) 18 part_of_speech__symbol__in=('ger', 'pact', 'ppas', 'appas'))
17 return { 19 return {
18 - u'Brak odsyłacza do czasownika': 20 + _(u'Brak odsyłacza do czasownika'):
19 derivatives.exclude(refs_to__type__symbol__endswith='ver'), 21 derivatives.exclude(refs_to__type__symbol__endswith='ver'),
20 } 22 }
21 23
@@ -58,8 +60,8 @@ def verbs_without_derivatives(): @@ -58,8 +60,8 @@ def verbs_without_derivatives():
58 proper_11 = proper_verbs.filter(patterns__in=patterns11) 60 proper_11 = proper_verbs.filter(patterns__in=patterns11)
59 no_ger = proper_11.exclude(refs_to__type__symbol='verger') 61 no_ger = proper_11.exclude(refs_to__type__symbol='verger')
60 return { 62 return {
61 - u'Brak imiesłowu biernego': no_ppas,  
62 - u'Brak quasi-imiesłowu biernego': no_appas,  
63 - u'Brak imiesłowu czynnego': no_pact,  
64 - u'Brak odsłownika': no_ger,  
65 - }  
66 \ No newline at end of file 63 \ No newline at end of file
  64 + _(u'Brak imiesłowu biernego'): no_ppas,
  65 + _(u'Brak quasi-imiesłowu biernego'): no_appas,
  66 + _(u'Brak imiesłowu czynnego'): no_pact,
  67 + _(u'Brak odsłownika'): no_ger,
  68 + }
dictionary/static/js/lexeme-edit.js
@@ -83,8 +83,8 @@ $.extend(edit, { @@ -83,8 +83,8 @@ $.extend(edit, {
83 var stale_attrs = check_attrs(genders); 83 var stale_attrs = check_attrs(genders);
84 if (stale_attrs.length > 0) { 84 if (stale_attrs.length > 0) {
85 var fmt = ngettext( 85 var fmt = ngettext(
86 - "Atrybuty: %s zostaną usunięte.",  
87 - "Atrybut: %s zostanie usunięty.", stale_attrs.length); 86 + "Atrybut: %s zostanie usunięty.",
  87 + "Atrybuty: %s zostaną usunięte.", stale_attrs.length);
88 if (!window.confirm(interpolate(fmt, [stale_attrs]) + 88 if (!window.confirm(interpolate(fmt, [stale_attrs]) +
89 ' ' + gettext("Kontynuować?"))) { 89 ' ' + gettext("Kontynuować?"))) {
90 return; 90 return;
@@ -253,8 +253,8 @@ $.extend(edit, { @@ -253,8 +253,8 @@ $.extend(edit, {
253 var stale_classifications = check_classifications(), confirmed; 253 var stale_classifications = check_classifications(), confirmed;
254 if (stale_classifications.length > 0) { 254 if (stale_classifications.length > 0) {
255 var msg = ngettext( 255 var msg = ngettext(
256 - "Zostaną usunięte klasyfikacje:",  
257 "Zostanie usunięta klasyfikacja:", 256 "Zostanie usunięta klasyfikacja:",
  257 + "Zostaną usunięte klasyfikacje:",
258 stale_classifications.length); 258 stale_classifications.length);
259 confirmed = window.confirm( 259 confirmed = window.confirm(
260 msg + ' ' + join_classifications(stale_classifications) + 260 msg + ' ' + join_classifications(stale_classifications) +
@@ -274,8 +274,8 @@ $.extend(edit, { @@ -274,8 +274,8 @@ $.extend(edit, {
274 var confirmed; 274 var confirmed;
275 if (stale_attrs.length > 0) { 275 if (stale_attrs.length > 0) {
276 var fmt = ngettext( 276 var fmt = ngettext(
277 - "Atrybuty: %s zostaną usunięte.",  
278 - "Atrybut: %s zostanie usunięty.", stale_attrs.length); 277 + "Atrybut: %s zostanie usunięty.",
  278 + "Atrybuty: %s zostaną usunięte.", stale_attrs.length);
279 confirmed = window.confirm( 279 confirmed = window.confirm(
280 interpolate(fmt, [join_attrs(stale_attrs)]) + 280 interpolate(fmt, [join_attrs(stale_attrs)]) +
281 ' ' + gettext("Kontynuować?")); 281 ' ' + gettext("Kontynuować?"));
dictionary/templates/classification_forms.html
  1 +{% load i18n %}
  2 +
1 {% if classification_forms %} 3 {% if classification_forms %}
2 - <h4>Klasyfikacje</h4> 4 + <h4>{% trans 'Klasyfikacje' %}</h4>
3 {% for form in classification_forms %} 5 {% for form in classification_forms %}
4 {{ form.as_p }} 6 {{ form.as_p }}
5 {% endfor %} 7 {% endfor %}
dictionary/templates/classification_value_tree.html
1 -{% load dictionary_extras %} 1 +{% load dictionary_extras i18n %}
2 <ul class="value-tree"> 2 <ul class="value-tree">
3 {% for value, subtree in value_tree %} 3 {% for value, subtree in value_tree %}
4 <li> 4 <li>
@@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@
12 <input type="hidden" name="det" value="value_remove"/> 12 <input type="hidden" name="det" value="value_remove"/>
13 <input type="hidden" name="id" value="{{ value.pk }}"/> 13 <input type="hidden" name="id" value="{{ value.pk }}"/>
14 <button type="submit"> 14 <button type="submit">
15 - usuń 15 + {% trans 'usuń' %}
16 </button> 16 </button>
17 </form> 17 </form>
18 {% endif %} 18 {% endif %}
@@ -22,7 +22,7 @@ @@ -22,7 +22,7 @@
22 <input type="hidden" name="id" value="{{ value.pk }}"/> 22 <input type="hidden" name="id" value="{{ value.pk }}"/>
23 <input type="text" name="new_name"/> 23 <input type="text" name="new_name"/>
24 <button type="submit"> 24 <button type="submit">
25 - zmień nazwę 25 + {% trans 'zmień nazwę' %}
26 </button> 26 </button>
27 </form> 27 </form>
28 </span> 28 </span>
dictionary/templates/inflection_tables.html
1 -{% load dictionary_extras %} 1 +{% load dictionary_extras i18n %}
2 <div class="entry-article scheme{{ lexeme.part_of_speech.color_scheme }}"> 2 <div class="entry-article scheme{{ lexeme.part_of_speech.color_scheme }}">
3 <h1> 3 <h1>
4 {{ lexeme.entry }} 4 {{ lexeme.entry }}
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
23 <span class="qualifiers"> 23 <span class="qualifiers">
24 {{ info.qualifiers|join:" " }} 24 {{ info.qualifiers|join:" " }}
25 {% if info.commonness %} 25 {% if info.commonness %}
26 - n. wł. {{ info.commonness|join:", " }} 26 + {% trans 'n. wł.' %} {{ info.commonness|join:", " }}
27 {% endif %} 27 {% endif %}
28 </span> 28 </span>
29 {% if lexeme.note %} 29 {% if lexeme.note %}
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
36 </p> 36 </p>
37 {% if lexeme|attribute:"rozwinięcie" %} 37 {% if lexeme|attribute:"rozwinięcie" %}
38 <p> 38 <p>
39 - rozwinięcie: {{ lexeme|attribute:"rozwinięcie" }} 39 + {% trans 'rozwinięcie' %}: {{ lexeme|attribute:"rozwinięcie" }}
40 </p> 40 </p>
41 {% endif %} 41 {% endif %}
42 <p> 42 <p>
@@ -68,7 +68,7 @@ @@ -68,7 +68,7 @@
68 {% if cross_references %} 68 {% if cross_references %}
69 <table class="cross-references"> 69 <table class="cross-references">
70 <tr> 70 <tr>
71 - <th class="head" colspan="2">Odsyłacze</th> 71 + <th class="head" colspan="2">{% trans 'Odsyłacze' %}</th>
72 </tr> 72 </tr>
73 {% for cr in cross_references %} 73 {% for cr in cross_references %}
74 <tr> 74 <tr>
dictionary/templates/lexeme_edit_form.html
1 -{% load dictionary_extras %} 1 +{% load dictionary_extras i18n %}
2 <form action="" method="post" id="lexeme-edit-form"> 2 <form action="" method="post" id="lexeme-edit-form">
3 <p class="lexeme-save"> 3 <p class="lexeme-save">
4 <button type="submit" disabled="disabled" class="lexeme-edit-submit"> 4 <button type="submit" disabled="disabled" class="lexeme-edit-submit">
5 - Zapisz 5 + {% trans 'Zapisz' %}
6 </button> 6 </button>
7 <button type="reset" disabled="disabled" class="lexeme-edit-cancel"> 7 <button type="reset" disabled="disabled" class="lexeme-edit-cancel">
8 - Anuluj 8 + {% trans 'Anuluj' %}
9 </button> 9 </button>
10 <button type="button" class="lexeme-edit-delete" 10 <button type="button" class="lexeme-edit-delete"
11 {% if not editable %}disabled="disabled"{% endif %}> 11 {% if not editable %}disabled="disabled"{% endif %}>
12 - Usuń leksem 12 + {% trans 'Usuń leksem' %}
13 </button> 13 </button>
14 </p> 14 </p>
15 <table id="vocab-list"> 15 <table id="vocab-list">
16 <tr> 16 <tr>
17 - <th>Słownik właściciel</th>  
18 - <th>Słowniki używające</th> 17 + <th>{% trans 'Słownik właściciel' %}</th>
  18 + <th>{% trans 'Słowniki używające' %}</th>
19 </tr> 19 </tr>
20 <tr> 20 <tr>
21 <td> 21 <td>
@@ -75,7 +75,7 @@ @@ -75,7 +75,7 @@
75 {% endfor %} 75 {% endfor %}
76 </div> 76 </div>
77 <p> 77 <p>
78 - Sposoby odmiany: 78 + {% trans 'Sposoby odmiany' %}:
79 <input type="hidden" name="id" value="{{ id }}"/> 79 <input type="hidden" name="id" value="{{ id }}"/>
80 {% if editable %} 80 {% if editable %}
81 <button type="button" id="add-row"> 81 <button type="button" id="add-row">
@@ -88,20 +88,20 @@ @@ -88,20 +88,20 @@
88 {% include 'lexeme_edit_form_row.html' %} 88 {% include 'lexeme_edit_form_row.html' %}
89 {% endfor %} 89 {% endfor %}
90 </ul> 90 </ul>
91 - <p>Kwalifikatory:</p> 91 + <p>{% trans 'Kwalifikatory' %}:</p>
92 <p> 92 <p>
93 {% if ro_qualifiers %} 93 {% if ro_qualifiers %}
94 {{ owner.id }}: {{ ro_qualifiers|join:", " }}; 94 {{ owner.id }}: {{ ro_qualifiers|join:", " }};
95 {% endif %} 95 {% endif %}
96 </p> 96 </p>
97 <p> 97 <p>
98 - stylistyczne: {{ form.style_qualifiers.as_widget }} 98 + {% trans 'stylistyczne' %}: {{ form.style_qualifiers.as_widget }}
99 </p> 99 </p>
100 <p> 100 <p>
101 - zakresowe: {{ form.scope_qualifiers.as_widget }} 101 + {% trans 'zakresowe' %}: {{ form.scope_qualifiers.as_widget }}
102 </p> 102 </p>
103 <p id="specialist" style="display: none;"> 103 <p id="specialist" style="display: none;">
104 - {{ form.specialist.as_widget }} specjalistyczny 104 + {{ form.specialist.as_widget }} {% trans 'specjalistyczny' %}
105 </p> 105 </p>
106 <p class="main-field"> 106 <p class="main-field">
107 {{ form.qualifiers_dor.label_tag }} {{ form.qualifiers_dor.as_widget }} 107 {{ form.qualifiers_dor.label_tag }} {{ form.qualifiers_dor.as_widget }}
@@ -133,7 +133,7 @@ @@ -133,7 +133,7 @@
133 </p> 133 </p>
134 {% if editable or cross_references %} 134 {% if editable or cross_references %}
135 <p> 135 <p>
136 - Odsyłacze: 136 + {% trans 'Odsyłacze' %}:
137 {% if editable %} 137 {% if editable %}
138 <button type="button" id="add-cr-row"> 138 <button type="button" id="add-cr-row">
139 <span class="ui-icon ui-icon-plus"></span> 139 <span class="ui-icon ui-icon-plus"></span>
@@ -166,14 +166,14 @@ @@ -166,14 +166,14 @@
166 {% endif %} 166 {% endif %}
167 <p class="lexeme-save"> 167 <p class="lexeme-save">
168 <button type="submit" disabled="disabled" class="lexeme-edit-submit"> 168 <button type="submit" disabled="disabled" class="lexeme-edit-submit">
169 - Zapisz 169 + {% trans 'Zapisz' %}
170 </button> 170 </button>
171 <button type="reset" disabled="disabled" class="lexeme-edit-cancel"> 171 <button type="reset" disabled="disabled" class="lexeme-edit-cancel">
172 - Anuluj 172 + {% trans 'Anuluj' %}
173 </button> 173 </button>
174 <button type="button" class="lexeme-edit-delete" 174 <button type="button" class="lexeme-edit-delete"
175 {% if not editable %}disabled="disabled"{% endif %}> 175 {% if not editable %}disabled="disabled"{% endif %}>
176 - Usuń leksem 176 + {% trans 'Usuń leksem' %}
177 </button> 177 </button>
178 </p> 178 </p>
179 </form> 179 </form>
dictionary/templates/lexeme_view.html
@@ -44,33 +44,33 @@ @@ -44,33 +44,33 @@
44 src="{% static 'js/lexeme-edit.js' %}"></script> 44 src="{% static 'js/lexeme-edit.js' %}"></script>
45 {% endblock %} 45 {% endblock %}
46 46
47 -{% block title %}Widok leksemów{% endblock %} 47 +{% block title %}{% trans 'Widok leksemów' %}{% endblock %}
48 48
49 {% block content %} 49 {% block content %}
50 <div id="left"> 50 <div id="left">
51 <div id="search-panel"> 51 <div id="search-panel">
52 - <button id="sort-button" title="sortuj">  
53 - <span class="ui-icon ui-icon-sort">sortuj</span> 52 + <button id="sort-button" title="{% trans 'sortuj' %}">
  53 + <span class="ui-icon ui-icon-sort">{% trans 'sortuj' %}</span>
54 </button> 54 </button>
55 - <button id="filter-button" title="filtruj">  
56 - <span class="ui-icon ui-icon-filter">filtruj</span> 55 + <button id="filter-button" title="{% trans 'filtruj' %}">
  56 + <span class="ui-icon ui-icon-filter">{% trans 'filtruj' %}</span>
57 </button> 57 </button>
58 - <button id="show-columns-button" title="pokaż/ukryj">  
59 - <span class="ui-icon ui-icon-columns">pokaż/ukryj</span> 58 + <button id="show-columns-button" title="{% trans 'pokaż/ukryj' %}">
  59 + <span class="ui-icon ui-icon-columns">{% trans 'pokaż/ukryj' %}</span>
60 </button> 60 </button>
61 <input type="text" id="text-search"/> 61 <input type="text" id="text-search"/>
62 - <button id="search-button" title="szukaj">  
63 - <span class="ui-icon ui-icon-search">szukaj</span> 62 + <button id="search-button" title="{% trans 'szukaj' %}">
  63 + <span class="ui-icon ui-icon-search">{% trans 'szukaj' %}</span>
64 </button> 64 </button>
65 {% if perms.dictionary.change_lexeme %} 65 {% if perms.dictionary.change_lexeme %}
66 - <!--button id="action-button" title="akcje grupowe">  
67 - <span class="ui-icon ui-icon-star">akcje grupowe</span> 66 + <!--button id="action-button" title="{% trans 'akcje grupowe' %}">
  67 + <span class="ui-icon ui-icon-star">{% trans 'akcje grupowe' %}</span>
68 </button--> 68 </button-->
69 - <button id="add-button" title="dodaj leksem">  
70 - <span class="ui-icon ui-icon-plus">dodaj leksem</span> 69 + <button id="add-button" title="{% trans 'dodaj leksem' %}">
  70 + <span class="ui-icon ui-icon-plus">{% trans 'dodaj leksem' %}</span>
71 </button> 71 </button>
72 {% endif %} 72 {% endif %}
73 - <button id="more-button" title="więcej"> 73 + <button id="more-button" title="{% trans 'więcej' %}">
74 <span class="ellipsis-icon">...</span> 74 <span class="ellipsis-icon">...</span>
75 </button> 75 </button>
76 </div> 76 </div>
@@ -79,11 +79,11 @@ @@ -79,11 +79,11 @@
79 <div id="right"> 79 <div id="right">
80 <div class="tabs" id="lexeme-tabs"> 80 <div class="tabs" id="lexeme-tabs">
81 <ul> 81 <ul>
82 - <li><a href="#edit" id="edit-tab">Edycja</a></li>  
83 - <li><a href="#variant0">Formy bazowe</a></li>  
84 - <li><a href="#variant1">Wszystkie formy</a></li> 82 + <li><a href="#edit" id="edit-tab">{% trans 'Edycja' %}</a></li>
  83 + <li><a href="#variant0">{% trans 'Formy bazowe' %}</a></li>
  84 + <li><a href="#variant1">{% trans 'Wszystkie formy' %}</a></li>
85 <!--li><a href="#odm">Formy z sjp.pl</a></li--> 85 <!--li><a href="#odm">Formy z sjp.pl</a></li-->
86 - <li><a href="#history">Historia</a></li> 86 + <li><a href="#history">{% trans 'Historia' %}</a></li>
87 </ul> 87 </ul>
88 <div id="edit"></div> 88 <div id="edit"></div>
89 <div id="variant0"></div> 89 <div id="variant0"></div>
@@ -95,74 +95,74 @@ @@ -95,74 +95,74 @@
95 {% endblock %} 95 {% endblock %}
96 96
97 {% block modal_elements %} 97 {% block modal_elements %}
98 - <div id="choose-columns-dialog" title="Wybierz kolumny"> 98 + <div id="choose-columns-dialog" title="{% trans 'Wybierz kolumny' %}">
99 <select id="column-list" multiple=multiple></select> 99 <select id="column-list" multiple=multiple></select>
100 </div> 100 </div>
101 - <div id="choose-filter-dialog" title="Filtrowanie"> 101 + <div id="choose-filter-dialog" title="{% trans 'Filtrowanie' %}">
102 <p> 102 <p>
103 <select id="group-op"> 103 <select id="group-op">
104 - <option value="AND" selected="selected">oraz</option>  
105 - <option value="OR">lub</option> 104 + <option value="AND" selected="selected">{% trans 'oraz' %}</option>
  105 + <option value="OR">{% trans 'lub' %}</option>
106 </select> 106 </select>
107 - <input type="button" value="+" title="Dodaj filtr" 107 + <input type="button" value="+" title="{% trans 'Dodaj filtr' %}"
108 id="add-filter-button"> 108 id="add-filter-button">
109 </p> 109 </p>
110 <table id="filter-table"></table> 110 <table id="filter-table"></table>
111 </div> 111 </div>
112 - <div id="load-filter-dialog" title="Wybierz filtr"> 112 + <div id="load-filter-dialog" title="{% trans 'Wybierz filtr' %}">
113 <ul id="filter-list" class="load-dialog-list"></ul> 113 <ul id="filter-list" class="load-dialog-list"></ul>
114 </div> 114 </div>
115 - <div id="group-action-dialog" title="Wybierz akcję grupową">  
116 - <button id="add-action" title="dodaj akcję">  
117 - <span class="ui-icon ui-icon-plus">dodaj akcję</span> 115 + <div id="group-action-dialog" title="{% trans 'Wybierz akcję grupową' %}">
  116 + <button id="add-action" title="{% trans 'dodaj akcję' %}">
  117 + <span class="ui-icon ui-icon-plus">{% trans 'dodaj akcję' %}</span>
118 </button> 118 </button>
119 <table id="action-list" class="group-action-list"> 119 <table id="action-list" class="group-action-list">
120 </table> 120 </table>
121 </div> 121 </div>
122 - <div id="choose-homonym-dialog" title="Wybierz homonim"> 122 + <div id="choose-homonym-dialog" title="{% trans 'Wybierz homonim' %}">
123 <table id="homonym-list" class="choose-homonym-list"> 123 <table id="homonym-list" class="choose-homonym-list">
124 <thead> 124 <thead>
125 <tr> 125 <tr>
126 - <th>Nr hom.</th>  
127 - <th>Rodzaj</th>  
128 - <th>Wzór</th> 126 + <th>{% trans 'Nr hom.' %}</th>
  127 + <th>{% trans 'Rodzaj' %}</th>
  128 + <th>{% trans 'Wzór' %}</th>
129 </tr> 129 </tr>
130 </thead> 130 </thead>
131 <tbody> 131 <tbody>
132 </tbody> 132 </tbody>
133 </table> 133 </table>
134 </div> 134 </div>
135 - <div id="prompter-dialog" title="Podpowiadacz wzorów"> 135 + <div id="prompter-dialog" title="{% trans 'Podpowiadacz wzorów' %}">
136 <div id="prompter-dialog-left"> 136 <div id="prompter-dialog-left">
137 <table id="prompter-list"> 137 <table id="prompter-list">
138 </table> 138 </table>
139 <ul id="prompter-checkboxes"> 139 <ul id="prompter-checkboxes">
140 <li> 140 <li>
141 <input type="checkbox" id="prompter-gender"/> 141 <input type="checkbox" id="prompter-gender"/>
142 - <label for="prompter-gender">Uwzględniaj rodzaj</label> 142 + <label for="prompter-gender">{% trans 'Uwzględniaj rodzaj' %}</label>
143 </li> 143 </li>
144 <li> 144 <li>
145 <input type="checkbox" id="prompter-commonness"/> 145 <input type="checkbox" id="prompter-commonness"/>
146 - <label for="prompter-commonness">Uwzględniaj  
147 - pospolitość</label> 146 + <label for="prompter-commonness">{% trans 'Uwzględniaj pospolitość' %}</label>
148 </li> 147 </li>
149 <li> 148 <li>
150 <input type="checkbox" id="prompter-blacklist"/> 149 <input type="checkbox" id="prompter-blacklist"/>
151 - <label for="prompter-blacklist">Pomijaj wzory  
152 - nietypowe</label> 150 + <label for="prompter-blacklist">{% trans 'Pomijaj wzory nietypowe' %}</label>
153 </li> 151 </li>
154 </ul> 152 </ul>
155 </div> 153 </div>
156 <div id="prompter-table-preview"> 154 <div id="prompter-table-preview">
157 </div> 155 </div>
158 </div> 156 </div>
159 - <div id="default-owner-dialog" title="Wybór domyślnego słownika"> 157 + <div id="default-owner-dialog" title="{% trans 'Wybór domyślnego słownika' %}">
160 <p> 158 <p>
161 - Wybierz słownik domyślnie ustawiany jako właściciel przy dodawaniu  
162 - leksemów. 159 + {% blocktrans %}
  160 + Wybierz słownik domyślnie ustawiany jako właściciel przy
  161 + dodawaniu leksemów.
  162 + {% endblocktrans %}
163 </p> 163 </p>
164 <p> 164 <p>
165 - Wybór można będzie zmienić w Ustawieniach. 165 + {% trans 'Wybór można będzie zmienić w Ustawieniach.' %}
166 </p> 166 </p>
167 <ul id="default-owner"> 167 <ul id="default-owner">
168 {% for vocab in editable_vocabularies %} 168 {% for vocab in editable_vocabularies %}
@@ -173,23 +173,23 @@ @@ -173,23 +173,23 @@
173 {% endfor %} 173 {% endfor %}
174 </ul> 174 </ul>
175 </div> 175 </div>
176 - <div id="more-actions-dialog" title="Inne działania"> 176 + <div id="more-actions-dialog" title="{% trans 'Inne działania' %}">
177 <p><button type="button" id="export-list-button"> 177 <p><button type="button" id="export-list-button">
178 - Eksport aktualnie filtrowanej listy 178 + {% trans 'Eksport aktualnie filtrowanej listy' %}
179 </button></p> 179 </button></p>
180 <p><button type="button" id="reload-list-button"> 180 <p><button type="button" id="reload-list-button">
181 - Przeładowanie listy 181 + {% trans 'Przeładowanie listy' %}
182 </button></p> 182 </button></p>
183 <p><button type="button" id="clone-lexeme-button"> 183 <p><button type="button" id="clone-lexeme-button">
184 - Sklonowanie aktywnego leksemu 184 + {% trans 'Sklonowanie aktywnego leksemu' %}
185 </button></p> 185 </button></p>
186 </div> 186 </div>
187 - <div id="auto-derivatives-dialog" title="Tworzenie derywatów">  
188 - <p>Wybierz hasła do utworzenia:</p> 187 + <div id="auto-derivatives-dialog" title="{% trans 'Tworzenie derywatów' %}">
  188 + <p>{% trans 'Wybierz hasła do utworzenia' %}:</p>
189 <ul id="auto-derivatives-list"> 189 <ul id="auto-derivatives-list">
190 </ul> 190 </ul>
191 </div> 191 </div>
192 - <div id="search-by-form-dialog" title="Szukanie według formy"> 192 + <div id="search-by-form-dialog" title="{% trans 'Szukanie według formy' %}">
193 <table id="search-by-form-table"> 193 <table id="search-by-form-table">
194 </table> 194 </table>
195 </div> 195 </div>
dictionary/templates/reader_view.html
@@ -36,23 +36,23 @@ @@ -36,23 +36,23 @@
36 src="{% static 'js/reader-view.js' %}"></script> 36 src="{% static 'js/reader-view.js' %}"></script>
37 {% endblock %} 37 {% endblock %}
38 38
39 -{% block title %}Słownik gramatyczny języka polskiego{% endblock %} 39 +{% block title %}{% trans 'Słownik gramatyczny języka polskiego' %}{% endblock %}
40 40
41 {% block content %} 41 {% block content %}
42 <div id="left"> 42 <div id="left">
43 <div id="search-panel"> 43 <div id="search-panel">
44 - <button id="sort-button" title="sortuj">  
45 - <span class="ui-icon ui-icon-sort">sortuj</span> 44 + <button id="sort-button" title="{% trans 'sortuj' %}">
  45 + <span class="ui-icon ui-icon-sort">{% trans 'sortuj' %}</span>
46 </button> 46 </button>
47 - <button id="filter-button" title="filtruj">  
48 - <span class="ui-icon ui-icon-filter">filtruj</span> 47 + <button id="filter-button" title="{% trans 'filtruj' %}">
  48 + <span class="ui-icon ui-icon-filter">{% trans 'filtruj' %}</span>
49 </button> 49 </button>
50 - <button id="show-columns-button" title="pokaż/ukryj">  
51 - <span class="ui-icon ui-icon-columns">pokaż/ukryj</span> 50 + <button id="show-columns-button" title="{% trans 'pokaż/ukryj' %}">
  51 + <span class="ui-icon ui-icon-columns">{% trans 'pokaż/ukryj' %}</span>
52 </button> 52 </button>
53 <input type="text" id="text-search"/> 53 <input type="text" id="text-search"/>
54 - <button id="search-button" title="szukaj">  
55 - <span class="ui-icon ui-icon-search">szukaj</span> 54 + <button id="search-button" title="{% trans 'szukaj' %}">
  55 + <span class="ui-icon ui-icon-search">{% trans 'szukaj' %}</span>
56 </button> 56 </button>
57 </div> 57 </div>
58 <div id="lexeme-grid"></div> 58 <div id="lexeme-grid"></div>
@@ -60,8 +60,8 @@ @@ -60,8 +60,8 @@
60 <div id="right"> 60 <div id="right">
61 <div class="tabs" id="lexeme-tabs"> 61 <div class="tabs" id="lexeme-tabs">
62 <ul> 62 <ul>
63 - <li><a href="#variant1">Wszystkie formy</a></li>  
64 - <li><a href="#variant0">Formy bazowe</a></li> 63 + <li><a href="#variant1">{% trans 'Wszystkie formy' %}</a></li>
  64 + <li><a href="#variant0">{% trans 'Formy bazowe' %}</a></li>
65 </ul> 65 </ul>
66 <div id="variant1"></div> 66 <div id="variant1"></div>
67 <div id="variant0"></div> 67 <div id="variant0"></div>
@@ -70,21 +70,21 @@ @@ -70,21 +70,21 @@
70 {% endblock %} 70 {% endblock %}
71 71
72 {% block modal_elements %} 72 {% block modal_elements %}
73 - <div id="choose-columns-dialog" title="Wybierz kolumny"> 73 + <div id="choose-columns-dialog" title="{% trans 'Wybierz kolumny' %}">
74 <select id="column-list" multiple=multiple></select> 74 <select id="column-list" multiple=multiple></select>
75 </div> 75 </div>
76 - <div id="choose-filter-dialog" title="Filtrowanie"> 76 + <div id="choose-filter-dialog" title="{% trans 'Filtrowanie' %}">
77 <p> 77 <p>
78 <select id="group-op"> 78 <select id="group-op">
79 - <option value="AND" selected="selected">oraz</option>  
80 - <option value="OR">lub</option> 79 + <option value="AND" selected="selected">{% trans 'oraz' %}</option>
  80 + <option value="OR">{% trans 'lub' %}</option>
81 </select> 81 </select>
82 - <input type="button" value="+" title="Dodaj filtr" 82 + <input type="button" value="+" title="{% trans 'Dodaj filtr' %}"
83 id="add-filter-button"> 83 id="add-filter-button">
84 </p> 84 </p>
85 <table id="filter-table"></table> 85 <table id="filter-table"></table>
86 </div> 86 </div>
87 - <div id="search-by-form-dialog" title="Szukanie według formy"> 87 + <div id="search-by-form-dialog" title="{% trans 'Szukanie według formy' %}">
88 <table id="search-by-form-table"> 88 <table id="search-by-form-table">
89 </table> 89 </table>
90 </div> 90 </div>
dictionary/templates/sort_dialog.html
1 -<div id="sort-dialog-form" title="Porządek sortowania"> 1 +{% load i18n %}
  2 +<div id="sort-dialog-form" title="{% trans 'Porządek sortowania' %}">
2 <ul id='sort-rule-list'> 3 <ul id='sort-rule-list'>
3 {% for rule in sort_rules %} 4 {% for rule in sort_rules %}
4 <li id="{{ rule.code_name }}" class="ui-state-default"> 5 <li id="{{ rule.code_name }}" class="ui-state-default">
5 <span class="sort-column">{{ rule.ui_name }}</span> 6 <span class="sort-column">{{ rule.ui_name }}</span>
6 - <span class="sort-dir">  
7 - <select id="order-{{ rule.code_name }}">  
8 - <option value="asc">Rosnąco</option>  
9 - <option value="desc">Malejąco</option>  
10 - </select>  
11 - </span> 7 + <span class="sort-dir">
  8 + <select id="order-{{ rule.code_name }}">
  9 + <option value="asc">{% trans 'Rosnąco' %}</option>
  10 + <option value="desc">{% trans 'Malejąco' %}</option>
  11 + </select>
  12 + </span>
12 {% if rule.code_name == "entry" %} 13 {% if rule.code_name == "entry" %}
13 <span class="sort-a-tergo"> 14 <span class="sort-a-tergo">
14 - <input type="checkbox" id="entries_a_tergo"/> a tergo  
15 - </span> 15 + <input type="checkbox" id="entries_a_tergo"/> a tergo
  16 + </span>
16 {% endif %} 17 {% endif %}
17 </li> 18 </li>
18 {% endfor %} 19 {% endfor %}
19 </ul> 20 </ul>
20 21
21 - <input type="button" id="save-sort-order" value="Zatwierdź"/>  
22 - <input type="button" id="cancel-sort-order" value="Anuluj"/> 22 + <input type="button" id="save-sort-order" value="{% trans 'Zatwierdź' %}"/>
  23 + <input type="button" id="cancel-sort-order" value="{% trans 'Anuluj' %}"/>
23 </div> 24 </div>
dictionary/urls.py
@@ -29,9 +29,6 @@ urlpatterns += patterns( @@ -29,9 +29,6 @@ urlpatterns += patterns(
29 url(r'^ajax/table-preview/$', 'table_preview'), 29 url(r'^ajax/table-preview/$', 'table_preview'),
30 url(r'^ajax/new-lip-row/$', 'new_lip_edit_row'), 30 url(r'^ajax/new-lip-row/$', 'new_lip_edit_row'),
31 url(r'^ajax/save-columns/$', 'save_columns'), 31 url(r'^ajax/save-columns/$', 'save_columns'),
32 - url(r'^ajax/add-vocabulary/$', 'add_vocabulary'),  
33 - url(r'^ajax/get-privileges/$', 'vocabulary_permissions'),  
34 - url(r'^ajax/set-privilege$', 'set_vocabulary_permission'),  
35 url(r'^ajax/new-cr-row/$', 'new_cross_reference_row'), 32 url(r'^ajax/new-cr-row/$', 'new_cross_reference_row'),
36 url(r'^ajax/delete-lexeme/$', 'delete_lexeme'), 33 url(r'^ajax/delete-lexeme/$', 'delete_lexeme'),
37 url(r'^ajax/check-pos/$', 'check_pos'), 34 url(r'^ajax/check-pos/$', 'check_pos'),
dictionary/views.py
@@ -6,6 +6,7 @@ from django.contrib.auth.decorators import login_required, permission_required @@ -6,6 +6,7 @@ from django.contrib.auth.decorators import login_required, permission_required
6 from django.contrib.auth.models import User, AnonymousUser 6 from django.contrib.auth.models import User, AnonymousUser
7 from django.core.urlresolvers import reverse 7 from django.core.urlresolvers import reverse
8 from django.http import HttpResponseRedirect, HttpResponse 8 from django.http import HttpResponseRedirect, HttpResponse
  9 +from django.utils.translation import ugettext as _
9 10
10 from common.decorators import render 11 from common.decorators import render
11 from common.util import json_decode 12 from common.util import json_decode
@@ -44,9 +45,9 @@ def lexeme_view(request): @@ -44,9 +45,9 @@ def lexeme_view(request):
44 vocabs = {} 45 vocabs = {}
45 for v in editable_vocabs: 46 for v in editable_vocabs:
46 vocabs.update(dict((str(q.pk), v.id) for q in v.qualifiers.all())) 47 vocabs.update(dict((str(q.pk), v.id) for q in v.qualifiers.all()))
47 - qualifier_options = [(0, u'(puste)')]  
48 - lexeme_qualifier_options = [(0, u'(puste)')]  
49 - form_qualifier_options = [(0, u'(puste)')] 48 + qualifier_options = [(0, _(u'(puste)'))]
  49 + lexeme_qualifier_options = [(0, _(u'(puste)'))]
  50 + form_qualifier_options = [(0, _(u'(puste)'))]
50 for vocab in visible: 51 for vocab in visible:
51 qualifiers = vocab.qualifiers.all() 52 qualifiers = vocab.qualifiers.all()
52 if qualifiers: 53 if qualifiers:
@@ -126,7 +127,8 @@ def lexeme_view(request): @@ -126,7 +127,8 @@ def lexeme_view(request):
126 'form_qualifier_options': form_qualifier_options, 127 'form_qualifier_options': form_qualifier_options,
127 'qualifier_options': qualifier_options, 128 'qualifier_options': qualifier_options,
128 'cv_options': cv_options, 129 'cv_options': cv_options,
129 - 'status_options': Lexeme.STATUS_CHOICES, 130 + 'status_options': [
  131 + (key, unicode(value)) for key, value in Lexeme.STATUS_CHOICES],
130 'cr_type_options': cr_type_options, 132 'cr_type_options': cr_type_options,
131 'gender_options': [(g.id, g.symbol) for g in Gender.objects.all()], 133 'gender_options': [(g.id, g.symbol) for g in Gender.objects.all()],
132 'pattern_type_options': PatternType.options(), 134 'pattern_type_options': PatternType.options(),
@@ -151,9 +153,9 @@ def lexeme_view(request): @@ -151,9 +153,9 @@ def lexeme_view(request):
151 def reader_view(request): 153 def reader_view(request):
152 visible = visible_vocabularies(AnonymousUser()) 154 visible = visible_vocabularies(AnonymousUser())
153 vocabs = {} 155 vocabs = {}
154 - qualifier_options = [(0, u'(puste)')]  
155 - lexeme_qualifier_options = [(0, u'(puste)')]  
156 - form_qualifier_options = [(0, u'(puste)')] 156 + qualifier_options = [(0, _(u'(puste)'))]
  157 + lexeme_qualifier_options = [(0, _(u'(puste)'))]
  158 + form_qualifier_options = [(0, _(u'(puste)'))]
157 for vocab in visible: 159 for vocab in visible:
158 qualifiers = vocab.qualifiers.all() 160 qualifiers = vocab.qualifiers.all()
159 if qualifiers: 161 if qualifiers:
@@ -182,7 +184,7 @@ def reader_view(request): @@ -182,7 +184,7 @@ def reader_view(request):
182 for la in LexemeAttribute.objects.all(): 184 for la in LexemeAttribute.objects.all():
183 attr = {'id': la.id, 'name': la.name, 'closed': la.closed} 185 attr = {'id': la.id, 'name': la.name, 'closed': la.closed}
184 if attr['closed']: 186 if attr['closed']:
185 - attr['options'] = [(0, u'(puste)')] + [ 187 + attr['options'] = [(0, _(u'(puste)'))] + [
186 (v.id, v.value) for v in la.values.all()] 188 (v.id, v.value) for v in la.values.all()]
187 extra_attrs.append(attr) 189 extra_attrs.append(attr)
188 js_vars = { 190 js_vars = {
@@ -204,7 +206,8 @@ def reader_view(request): @@ -204,7 +206,8 @@ def reader_view(request):
204 'form_qualifier_options': form_qualifier_options, 206 'form_qualifier_options': form_qualifier_options,
205 'qualifier_options': qualifier_options, 207 'qualifier_options': qualifier_options,
206 'cv_options': cv_options, 208 'cv_options': cv_options,
207 - 'status_options': Lexeme.STATUS_CHOICES, 209 + 'status_options': [
  210 + (key, unicode(value)) for key, value in Lexeme.STATUS_CHOICES],
208 'cr_type_options': cr_type_options, 211 'cr_type_options': cr_type_options,
209 'gender_options': [(g.id, g.symbol) for g in Gender.objects.all()], 212 'gender_options': [(g.id, g.symbol) for g in Gender.objects.all()],
210 'pattern_type_options': PatternType.options(), 213 'pattern_type_options': PatternType.options(),
@@ -317,4 +320,4 @@ def wsjp_table(request, entry): @@ -317,4 +320,4 @@ def wsjp_table(request, entry):
317 data = make_data(entry) 320 data = make_data(entry)
318 result = '\n'.join( 321 result = '\n'.join(
319 '\t'.join(['%s'] * len(data_row)) % data_row for data_row in data) 322 '\t'.join(['%s'] * len(data_row)) % data_row for data_row in data)
320 - return HttpResponse(result, content_type="text/plain; charset=utf-8")  
321 \ No newline at end of file 323 \ No newline at end of file
  324 + return HttpResponse(result, content_type="text/plain; charset=utf-8")
export/forms.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 from django.forms import Form, ModelMultipleChoiceField, ModelChoiceField, \ 2 from django.forms import Form, ModelMultipleChoiceField, ModelChoiceField, \
3 BooleanField, CharField, Textarea 3 BooleanField, CharField, Textarea
  4 +from django.utils.translation import ugettext_lazy as _
  5 +
4 from dictionary.forms import QualifierField 6 from dictionary.forms import QualifierField
5 from dictionary.models import Vocabulary, Variant 7 from dictionary.models import Vocabulary, Variant
6 8
7 9
8 class ExportForm(Form): 10 class ExportForm(Form):
9 vocabs = ModelMultipleChoiceField( 11 vocabs = ModelMultipleChoiceField(
10 - queryset=Vocabulary.objects.all(), label=u'słowniki') 12 + queryset=Vocabulary.objects.all(), label=_(u'słowniki'))
11 antivocabs = ModelMultipleChoiceField( 13 antivocabs = ModelMultipleChoiceField(
12 - queryset=Vocabulary.objects.all(), label=u'antysłowniki', 14 + queryset=Vocabulary.objects.all(), label=_(u'antysłowniki'),
13 required=False) 15 required=False)
14 variant = ModelChoiceField( 16 variant = ModelChoiceField(
15 queryset=Variant.objects.filter(type=Variant.TYPE_EXPORT), 17 queryset=Variant.objects.filter(type=Variant.TYPE_EXPORT),
16 - label=u'wariant')  
17 - refl = BooleanField(label=u'tagi z "refl"', required=False)  
18 - commonness = BooleanField(label=u'etykiety pospolitości', required=False) 18 + label=_(u'wariant'))
  19 + refl = BooleanField(label=_(u'tagi z "refl"'), required=False)
  20 + commonness = BooleanField(label=_(u'etykiety pospolitości'), required=False)
19 copyright = CharField(widget=Textarea(attrs={'cols': 80, 'rows': 40})) 21 copyright = CharField(widget=Textarea(attrs={'cols': 80, 'rows': 40}))
20 # excluding_qualifiers = QualifiersField( 22 # excluding_qualifiers = QualifiersField(
21 - # required=False, label=u'kwal. wykluczające') 23 + # required=False, label=_(u'kwal. wykluczające'))
22 24
23 25
24 class MagicQualifierForm(Form): 26 class MagicQualifierForm(Form):
25 - qualifier = QualifierField(label=u'kwal. leksemu')  
26 - regex = CharField(label=u'wzorzec tagu', required=False)  
27 \ No newline at end of file 27 \ No newline at end of file
  28 + qualifier = QualifierField(label=_(u'kwal. leksemu'))
  29 + regex = CharField(label=_(u'wzorzec tagu'), required=False)
export/locale/en/LC_MESSAGES/django.po 0 → 100644
  1 +# SOME DESCRIPTIVE TITLE.
  2 +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
  3 +# This file is distributed under the same license as the PACKAGE package.
  4 +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: PACKAGE VERSION\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: \n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +
  20 +#: forms.py:12
  21 +msgid "słowniki"
  22 +msgstr "dictionaries"
  23 +
  24 +#: forms.py:14
  25 +msgid "antysłowniki"
  26 +msgstr "antidictionaries"
  27 +
  28 +#: forms.py:18
  29 +msgid "wariant"
  30 +msgstr "variant"
  31 +
  32 +#: forms.py:19
  33 +msgid "tagi z \"refl\""
  34 +msgstr "tags with \"refl\""
  35 +
  36 +#: forms.py:20
  37 +msgid "etykiety pospolitości"
  38 +msgstr "commonness labels"
  39 +
  40 +#: forms.py:27
  41 +msgid "kwal. leksemu"
  42 +msgstr "lexeme qual."
  43 +
  44 +#: forms.py:28
  45 +msgid "wzorzec tagu"
  46 +msgstr "tag pattern"
  47 +
  48 +#: templates/export.html:8
  49 +msgid "Definiowanie parametrów eksportu"
  50 +msgstr "Define export parameters"
  51 +
  52 +#: templates/export.html:11
  53 +msgid "Definiowanie parametrów eksportu leksemów"
  54 +msgstr "Define lexeme export parameters"
  55 +
  56 +#: templates/export.html:14
  57 +msgid "Kwalifikatory do wykluczenia (pusty wzorzec wyklucza cały kwalifikator)"
  58 +msgstr "Qualifiers to exclude (empty pattern excluded the whole qualifier)"
  59 +
  60 +#: templates/export.html:19
  61 +msgid "Zapisz ustawienia"
  62 +msgstr "Save parameters"
  63 +
  64 +#: templates/export.html:20
  65 +msgid "Wczytaj ustawienia"
  66 +msgstr "Load parameters"
  67 +
  68 +#: templates/export.html:26
  69 +msgid "Wybierz ustawienia eksportu"
  70 +msgstr "Choose export parameters"
export/locale/en/LC_MESSAGES/djangojs.po
1 -# export.js:7 1 +# English translation of the export module.
  2 +# Copyright (C) 2015
  3 +# This file is distributed under the same license as the Lexeme Forge package.
  4 +# Jan Szejko <jan.szejko@ipipan.waw.pl>, 2015.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: 1.0\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: Jan Szejko <jan.szejko@ipipan.waw.pl>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: en\n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +
  20 +#: static/js/export.js:7
2 msgid "kwalifikatorów" 21 msgid "kwalifikatorów"
3 msgstr "qualifiers" 22 msgstr "qualifiers"
4 23
5 -# export.js:55 24 +#: static/js/export.js:55
6 msgid "Wybierz nazwę" 25 msgid "Wybierz nazwę"
7 msgstr "Enter name" 26 msgstr "Enter name"
8 27
9 -# export.js:65 28 +#: static/js/export.js:65
10 msgid "Zapisanie ustawień" 29 msgid "Zapisanie ustawień"
11 msgstr "Settings save" 30 msgstr "Settings save"
12 31
13 -# export.js:70 32 +#: static/js/export.js:70
14 msgid "Ta nazwa jest zajęta. Nadpisać?" 33 msgid "Ta nazwa jest zajęta. Nadpisać?"
15 msgstr "This name is already used. Overwrite?" 34 msgstr "This name is already used. Overwrite?"
16 35
17 -# export.js:130 36 +#: static/js/export.js:130
18 msgid "Usunąć eksport" 37 msgid "Usunąć eksport"
19 msgstr "Delete export settings" 38 msgstr "Delete export settings"
20 39
21 -# export.js:135 40 +#: static/js/export.js:135
22 msgid "Usunięcie ustawień eksportu" 41 msgid "Usunięcie ustawień eksportu"
23 msgstr "Export settings deletion" 42 msgstr "Export settings deletion"
24 43
25 -# export.js:160 44 +#: static/js/export.js:160
26 msgid "Pobranie zapisanych eksportów" 45 msgid "Pobranie zapisanych eksportów"
27 msgstr "Export settings load" 46 msgstr "Export settings load"
28 47
29 -# export.js:169 48 +#: static/js/export.js:169
30 msgid "Wybierz słowniki" 49 msgid "Wybierz słowniki"
31 msgstr "Choose dictionaries" 50 msgstr "Choose dictionaries"
32 51
33 -# export.js:170 52 +#: static/js/export.js:170
34 msgid "# słowników" 53 msgid "# słowników"
35 -msgstr "# dictionaries"  
36 \ No newline at end of file 54 \ No newline at end of file
  55 +msgstr "# dictionaries"
export/locale/pl/LC_MESSAGES/django.po 0 → 100644
  1 +# SOME DESCRIPTIVE TITLE.
  2 +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
  3 +# This file is distributed under the same license as the PACKAGE package.
  4 +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: PACKAGE VERSION\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: \n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
  20 +"|| n%100>=20) ? 1 : 2);\n"
  21 +
  22 +#: forms.py:12
  23 +msgid "słowniki"
  24 +msgstr ""
  25 +
  26 +#: forms.py:14
  27 +msgid "antysłowniki"
  28 +msgstr ""
  29 +
  30 +#: forms.py:18
  31 +msgid "wariant"
  32 +msgstr ""
  33 +
  34 +#: forms.py:19
  35 +msgid "tagi z \"refl\""
  36 +msgstr ""
  37 +
  38 +#: forms.py:20
  39 +msgid "etykiety pospolitości"
  40 +msgstr ""
  41 +
  42 +#: forms.py:27
  43 +msgid "kwal. leksemu"
  44 +msgstr ""
  45 +
  46 +#: forms.py:28
  47 +msgid "wzorzec tagu"
  48 +msgstr ""
  49 +
  50 +#: templates/export.html:8
  51 +msgid "Definiowanie parametrów eksportu"
  52 +msgstr ""
  53 +
  54 +#: templates/export.html:11
  55 +msgid "Definiowanie parametrów eksportu leksemów"
  56 +msgstr ""
  57 +
  58 +#: templates/export.html:14
  59 +msgid "Kwalifikatory do wykluczenia (pusty wzorzec wyklucza cały kwalifikator)"
  60 +msgstr ""
  61 +
  62 +#: templates/export.html:19
  63 +msgid "Zapisz ustawienia"
  64 +msgstr ""
  65 +
  66 +#: templates/export.html:20
  67 +msgid "Wczytaj ustawienia"
  68 +msgstr ""
  69 +
  70 +#: templates/export.html:26
  71 +msgid "Wybierz ustawienia eksportu"
  72 +msgstr ""
export/locale/pl/LC_MESSAGES/djangojs.po 0 → 100644
  1 +# SOME DESCRIPTIVE TITLE.
  2 +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
  3 +# This file is distributed under the same license as the PACKAGE package.
  4 +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: PACKAGE VERSION\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: \n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
  20 +"|| n%100>=20) ? 1 : 2);\n"
  21 +
  22 +#: static/js/export.js:7
  23 +msgid "kwalifikatorów"
  24 +msgstr ""
  25 +
  26 +#: static/js/export.js:55
  27 +msgid "Wybierz nazwę"
  28 +msgstr ""
  29 +
  30 +#: static/js/export.js:65
  31 +msgid "Zapisanie ustawień"
  32 +msgstr ""
  33 +
  34 +#: static/js/export.js:70
  35 +msgid "Ta nazwa jest zajęta. Nadpisać?"
  36 +msgstr ""
  37 +
  38 +#: static/js/export.js:130
  39 +msgid "Usunąć eksport"
  40 +msgstr ""
  41 +
  42 +#: static/js/export.js:135
  43 +msgid "Usunięcie ustawień eksportu"
  44 +msgstr ""
  45 +
  46 +#: static/js/export.js:160
  47 +msgid "Pobranie zapisanych eksportów"
  48 +msgstr ""
  49 +
  50 +#: static/js/export.js:169
  51 +msgid "Wybierz słowniki"
  52 +msgstr ""
  53 +
  54 +#: static/js/export.js:170
  55 +msgid "# słowników"
  56 +msgstr ""
export/templates/export.html
1 {% extends "base.html" %} 1 {% extends "base.html" %}
2 -{% load url from future %}  
3 -{% load staticfiles %} 2 +{% load staticfiles i18n %}
4 3
5 {% block extrahead %} 4 {% block extrahead %}
6 <script type="text/javascript" src="{% static 'js/export.js' %}"></script> 5 <script type="text/javascript" src="{% static 'js/export.js' %}"></script>
7 {% endblock %} 6 {% endblock %}
8 7
9 -{% block title %}Definiowanie parametrów eksportu{% endblock %} 8 +{% block title %}{% trans 'Definiowanie parametrów eksportu' %}{% endblock %}
10 9
11 {% block content %} 10 {% block content %}
12 - <h3>Definiowanie parametrów eksportu leksemów</h3> 11 + <h3>{% trans 'Definiowanie parametrów eksportu leksemów' %}</h3>
13 <form method="get" action="" id="export-form"> 12 <form method="get" action="" id="export-form">
14 {{ form.as_p }} 13 {{ form.as_p }}
15 - Kwalifikatory do wykluczenia (pusty wzorzec wyklucza cały kwalifikator): 14 + {% trans 'Kwalifikatory do wykluczenia (pusty wzorzec wyklucza cały kwalifikator)' %}:
16 <button type="button" id="add-magic-qualifier-row"> 15 <button type="button" id="add-magic-qualifier-row">
17 <span class="ui-icon ui-icon-plus"></span> 16 <span class="ui-icon ui-icon-plus"></span>
18 </button> 17 </button>
19 <ul id="magic-qualifiers"></ul> 18 <ul id="magic-qualifiers"></ul>
20 - <button type="button" class="save">Zapisz ustawienia</button>  
21 - <button type="button" class="load">Wczytaj ustawienia</button> 19 + <button type="button" class="save">{% trans 'Zapisz ustawienia' %}</button>
  20 + <button type="button" class="load">{% trans 'Wczytaj ustawienia' %}</button>
22 {#<button type="submit">Generuj eksport</button>#} 21 {#<button type="submit">Generuj eksport</button>#}
23 </form> 22 </form>
24 {% endblock %} 23 {% endblock %}
25 24
26 {% block modal_elements %} 25 {% block modal_elements %}
27 - <div id="load-data-dialog" title="Wybierz ustawienia eksportu"> 26 + <div id="load-data-dialog" title="{% trans 'Wybierz ustawienia eksportu' %}">
28 <ul id="data-list" class="load-dialog-list"> 27 <ul id="data-list" class="load-dialog-list">
29 </ul> 28 </ul>
30 </div> 29 </div>
history/lexeme_history.py
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 2
3 from django.core.exceptions import ObjectDoesNotExist 3 from django.core.exceptions import ObjectDoesNotExist
  4 +from django.utils.translation import ugettext_lazy as _
  5 +
4 from common.util import GroupDict 6 from common.util import GroupDict
5 from dictionary.models import Lexeme, LexemeInflectionPattern, \ 7 from dictionary.models import Lexeme, LexemeInflectionPattern, \
6 Pattern, InflectionCharacteristic, ClassificationValue, Qualifier, History, \ 8 Pattern, InflectionCharacteristic, ClassificationValue, Qualifier, History, \
@@ -8,24 +10,24 @@ from dictionary.models import Lexeme, LexemeInflectionPattern, \ @@ -8,24 +10,24 @@ from dictionary.models import Lexeme, LexemeInflectionPattern, \
8 10
9 attribute_translation_list = [ 11 attribute_translation_list = [
10 # Leksem 12 # Leksem
11 - ('leksemy', 'haslo', u'hasło'),  
12 - ('leksemy', 'haslosuf', u'sufiks hasła'),  
13 - ('leksemy', 'glosa', u'glosa'),  
14 - ('leksemy', 'nota', u'nota'),  
15 - ('leksemy', 'extended_note', u'nota rozszerzona'),  
16 - ('leksemy', 'wymowa', u'wymowa'),  
17 - ('leksemy', 'valence', u'łączliwość'),  
18 - ('leksemy', 'pos', u'część mowy'),  
19 - ('leksemy', 'slownik', u'słownik właściciel'),  
20 - ('leksemy', 'status', u'status'),  
21 - ('leksemy', 'komentarz', u'komentarz'),  
22 - ('leksemy', 'specialist', u'specjalistyczny'),  
23 - ('leksemy', 'borrowing_source_id', u'źródło zapożyczenia'), 13 + ('leksemy', 'haslo', _(u'hasło')),
  14 + ('leksemy', 'haslosuf', _(u'sufiks hasła')),
  15 + ('leksemy', 'glosa', _(u'glosa')),
  16 + ('leksemy', 'nota', _(u'nota')),
  17 + ('leksemy', 'extended_note', _(u'nota rozszerzona')),
  18 + ('leksemy', 'wymowa', _(u'wymowa')),
  19 + ('leksemy', 'valence', _(u'łączliwość')),
  20 + ('leksemy', 'pos', _(u'część mowy')),
  21 + ('leksemy', 'slownik', _(u'słownik właściciel')),
  22 + ('leksemy', 'status', _(u'status')),
  23 + ('leksemy', 'komentarz', _(u'komentarz')),
  24 + ('leksemy', 'specialist', _(u'specjalistyczny')),
  25 + ('leksemy', 'borrowing_source_id', _(u'źródło zapożyczenia')),
24 # Odmiana 26 # Odmiana
25 - ('odmieniasie', 'oind', u'kolejność'),  
26 - ('odmieniasie', 'charfl', u'charakterystyka fleksyjna'),  
27 - ('odmieniasie', 'gender_id', u'rodzaj'),  
28 - ('odmieniasie', 'w_id', u'wzór'), 27 + ('odmieniasie', 'oind', _(u'kolejność')),
  28 + ('odmieniasie', 'charfl', _(u'charakterystyka fleksyjna')),
  29 + ('odmieniasie', 'gender_id', _(u'rodzaj')),
  30 + ('odmieniasie', 'w_id', _(u'wzór')),
29 ] 31 ]
30 32
31 attribute_translation = dict( 33 attribute_translation = dict(
@@ -33,31 +35,31 @@ attribute_translation = dict( @@ -33,31 +35,31 @@ attribute_translation = dict(
33 for table, column, label in attribute_translation_list) 35 for table, column, label in attribute_translation_list)
34 36
35 lexeme_attribute_order = [ 37 lexeme_attribute_order = [
36 - u'hasło',  
37 - u'sufiks hasła',  
38 - u'glosa',  
39 - u'nota',  
40 - u'nota rozszerzona',  
41 - u'wymowa',  
42 - u'łączliwość',  
43 - u'część mowy',  
44 - u'słownik właściciel',  
45 - u'status',  
46 - u'komentarz',  
47 - u'specjalistyczny',  
48 - u'źródło zapożyczenia',  
49 - # u'kwalifikator',  
50 - # u'klasyfikacja',  
51 - # u'slownik',  
52 - # u'odsyłacz', 38 + _(u'hasło'),
  39 + _(u'sufiks hasła'),
  40 + _(u'glosa'),
  41 + _(u'nota'),
  42 + _(u'nota rozszerzona'),
  43 + _(u'wymowa'),
  44 + _(u'łączliwość'),
  45 + _(u'część mowy'),
  46 + _(u'słownik właściciel'),
  47 + _(u'status'),
  48 + _(u'komentarz'),
  49 + _(u'specjalistyczny'),
  50 + _(u'źródło zapożyczenia'),
  51 + # _(u'kwalifikator'),
  52 + # _(u'klasyfikacja'),
  53 + # _(u'slownik'),
  54 + # _(u'odsyłacz'),
53 ] 55 ]
54 56
55 lip_attribute_order = [ 57 lip_attribute_order = [
56 - u'kolejność',  
57 - u'charakterystyka fleksyjna',  
58 - u'rodzaj',  
59 - u'wzór',  
60 - # u'kwalifikator', 58 + _(u'kolejność'),
  59 + _(u'charakterystyka fleksyjna'),
  60 + _(u'rodzaj'),
  61 + _(u'wzór'),
  62 + # _(u'kwalifikator'),
61 ] 63 ]
62 64
63 65
@@ -216,15 +218,15 @@ def transaction_table(transaction_data): @@ -216,15 +218,15 @@ def transaction_table(transaction_data):
216 rows.append( 218 rows.append(
217 (attr, (', '.join(before) or None, ', '.join(after) or None))) 219 (attr, (', '.join(before) or None, ', '.join(after) or None)))
218 for before_after in qualifiers: 220 for before_after in qualifiers:
219 - rows.append((u'kwalifikator', before_after)) 221 + rows.append((_(u'kwalifikator'), before_after))
220 for name, (before, after) in classifications.iteritems(): 222 for name, (before, after) in classifications.iteritems():
221 - attr = u'klasyfikacja: %s' % name 223 + attr = _(u'klasyfikacja: %s') % name
222 rows.append( 224 rows.append(
223 (attr, (', '.join(before) or None, ', '.join(after) or None))) 225 (attr, (', '.join(before) or None, ', '.join(after) or None)))
224 for before_after in vocabs: 226 for before_after in vocabs:
225 - rows.append((u'słownik', before_after)) 227 + rows.append((_(u'słownik'), before_after))
226 for cr_data in crs.itervalues(): 228 for cr_data in crs.itervalues():
227 - attr = u'odsyłacz' 229 + attr = _(u'odsyłacz')
228 before_after = [] 230 before_after = []
229 for i in (0, 1): 231 for i in (0, 1):
230 try: 232 try:
@@ -247,7 +249,7 @@ def transaction_table(transaction_data): @@ -247,7 +249,7 @@ def transaction_table(transaction_data):
247 lip_dict.add(lip_id, (attr, lip_data[attr])) 249 lip_dict.add(lip_id, (attr, lip_data[attr]))
248 for q_data in lip_qualifiers.itervalues(): 250 for q_data in lip_qualifiers.itervalues():
249 if q_data: # stare DELETE... 251 if q_data: # stare DELETE...
250 - attr = u'kwalifikator' 252 + attr = _(u'kwalifikator')
251 lip_data = q_data['lexemeinflectionpattern_id'] 253 lip_data = q_data['lexemeinflectionpattern_id']
252 lip_id = int(lip_data[0] or lip_data[1]) 254 lip_id = int(lip_data[0] or lip_data[1])
253 lip_dict.add(lip_id, (attr, q_data['qualifier_id'])) 255 lip_dict.add(lip_id, (attr, q_data['qualifier_id']))
@@ -268,7 +270,7 @@ def transaction_table(transaction_data): @@ -268,7 +270,7 @@ def transaction_table(transaction_data):
268 header = lip_header(gender, pattern) 270 header = lip_header(gender, pattern)
269 except ObjectDoesNotExist: # stare DELETE... 271 except ObjectDoesNotExist: # stare DELETE...
270 header = '' 272 header = ''
271 - header += u'(usunięta)' 273 + header += _(u'(usunięta)')
272 lip_tables.append((header, lip_data)) 274 lip_tables.append((header, lip_data))
273 return rows, lip_tables 275 return rows, lip_tables
274 276
@@ -283,16 +285,16 @@ def deleted_lexeme_table(lexeme): @@ -283,16 +285,16 @@ def deleted_lexeme_table(lexeme):
283 column, get_lexeme_attr(column, lexeme)), None) 285 column, get_lexeme_attr(column, lexeme)), None)
284 )) 286 ))
285 for q in lexeme.qualifiers.all(): 287 for q in lexeme.qualifiers.all():
286 - rows.append((u'kwalifikator', (q.label, None))) 288 + rows.append((_(u'kwalifikator'), (q.label, None)))
287 for classification in lexeme.owner_vocabulary.classifications.all(): 289 for classification in lexeme.owner_vocabulary.classifications.all():
288 - attr = u'klasyfikacja: %s' % classification.name 290 + attr = _(u'klasyfikacja: %s') % classification.name
289 cvs = lexeme.classification_values(classification) 291 cvs = lexeme.classification_values(classification)
290 for cv in cvs: 292 for cv in cvs:
291 rows.append((attr, (cv.label, None))) 293 rows.append((attr, (cv.label, None)))
292 for vocab in lexeme.vocabularies.all(): 294 for vocab in lexeme.vocabularies.all():
293 - rows.append((u'słownik', (vocab.id, None))) 295 + rows.append((_(u'słownik'), (vocab.id, None)))
294 for cr in lexeme.refs_to.all(): 296 for cr in lexeme.refs_to.all():
295 - attr = u'odsyłacz' 297 + attr = _(u'odsyłacz')
296 rows.append((attr, ( 298 rows.append((attr, (
297 ' '.join([ 299 ' '.join([
298 cr.type.symbol, cr.to_lexeme.entry, 300 cr.type.symbol, cr.to_lexeme.entry,
@@ -308,7 +310,7 @@ def deleted_lexeme_table(lexeme): @@ -308,7 +310,7 @@ def deleted_lexeme_table(lexeme):
308 if table == 'odmieniasie' and column != 'charfl': 310 if table == 'odmieniasie' and column != 'charfl':
309 lip_data.append((attr, (get_lip_attr(column, lip), None))) 311 lip_data.append((attr, (get_lip_attr(column, lip), None)))
310 for q in lip.qualifiers.all(): 312 for q in lip.qualifiers.all():
311 - attr = u'kwalifikator' 313 + attr = _(u'kwalifikator')
312 lip_data.append((attr, (q.label, None))) 314 lip_data.append((attr, (q.label, None)))
313 header = lip_header(lip.gender, lip.pattern) 315 header = lip_header(lip.gender, lip.pattern)
314 lip_tables.append((header, lip_data)) 316 lip_tables.append((header, lip_data))
@@ -320,7 +322,7 @@ def lexeme_table(transaction_data, last_tb): @@ -320,7 +322,7 @@ def lexeme_table(transaction_data, last_tb):
320 try: 322 try:
321 lexeme = transaction_data[0].lexeme 323 lexeme = transaction_data[0].lexeme
322 except Lexeme.DoesNotExist: 324 except Lexeme.DoesNotExist:
323 - lexeme = u'(usunięty)' # aktualnie niemożliwe 325 + lexeme = _(u'(usunięty)') # aktualnie niemożliwe
324 return { 326 return {
325 'rows': rows, 327 'rows': rows,
326 'lip_tables': lip_tables, 328 'lip_tables': lip_tables,
history/locale/en/LC_MESSAGES/django.po 0 → 100644
  1 +# SOME DESCRIPTIVE TITLE.
  2 +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
  3 +# This file is distributed under the same license as the PACKAGE package.
  4 +# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
  5 +#
  6 +#, fuzzy
  7 +msgid ""
  8 +msgstr ""
  9 +"Project-Id-Version: PACKAGE VERSION\n"
  10 +"Report-Msgid-Bugs-To: \n"
  11 +"POT-Creation-Date: 2015-06-15 16:59+0200\n"
  12 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13 +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  14 +"Language-Team: LANGUAGE <LL@li.org>\n"
  15 +"Language: \n"
  16 +"MIME-Version: 1.0\n"
  17 +"Content-Type: text/plain; charset=UTF-8\n"
  18 +"Content-Transfer-Encoding: 8bit\n"
  19 +
  20 +#: lexeme_history.py:13 lexeme_history.py:38
  21 +msgid "hasło"
  22 +msgstr "entry"
  23 +
  24 +#: lexeme_history.py:14 lexeme_history.py:39
  25 +msgid "sufiks hasła"
  26 +msgstr "entry suffix"
  27 +
  28 +#: lexeme_history.py:15 lexeme_history.py:40
  29 +msgid "glosa"
  30 +msgstr "gloss"
  31 +
  32 +#: lexeme_history.py:16 lexeme_history.py:41
  33 +msgid "nota"
  34 +msgstr "note"
  35 +
  36 +#: lexeme_history.py:17 lexeme_history.py:42
  37 +msgid "nota rozszerzona"
  38 +msgstr "extended note"
  39 +
  40 +#: lexeme_history.py:18 lexeme_history.py:43
  41 +msgid "wymowa"
  42 +msgstr "pronunciation"
  43 +
  44 +#: lexeme_history.py:19 lexeme_history.py:44
  45 +msgid "łączliwość"
  46 +msgstr "valence"
  47 +
  48 +#: lexeme_history.py:20 lexeme_history.py:45
  49 +msgid "część mowy"
  50 +msgstr "part of speech"
  51 +
  52 +#: lexeme_history.py:21 lexeme_history.py:46
  53 +msgid "słownik właściciel"
  54 +msgstr "owner dictionary"
  55 +
  56 +#: lexeme_history.py:22 lexeme_history.py:47 pattern_history.py:17
  57 +#: pattern_history.py:34
  58 +msgid "status"
  59 +msgstr "status"
  60 +
  61 +#: lexeme_history.py:23 lexeme_history.py:48 pattern_history.py:18
  62 +#: pattern_history.py:35
  63 +msgid "komentarz"
  64 +msgstr "comment"
  65 +
  66 +#: lexeme_history.py:24 lexeme_history.py:49
  67 +msgid "specjalistyczny"
  68 +msgstr "specialist"
  69 +
  70 +#: lexeme_history.py:25 lexeme_history.py:50
  71 +msgid "źródło zapożyczenia"
  72 +msgstr "borrowing source"
  73 +
  74 +#: lexeme_history.py:27 lexeme_history.py:58 pattern_history.py:20
  75 +#: pattern_history.py:39
  76 +msgid "kolejność"
  77 +msgstr "index"
  78 +
  79 +#: lexeme_history.py:28 lexeme_history.py:59
  80 +msgid "charakterystyka fleksyjna"
  81 +msgstr "inflection characteristic"
  82 +
  83 +#: lexeme_history.py:29 lexeme_history.py:60
  84 +msgid "rodzaj"
  85 +msgstr "gender"
  86 +
  87 +#: lexeme_history.py:30 lexeme_history.py:61
  88 +msgid "wzór"
  89 +msgstr "pattern"
  90 +
  91 +#: lexeme_history.py:221 lexeme_history.py:252 lexeme_history.py:288
  92 +#: lexeme_history.py:313 pattern_history.py:142 pattern_history.py:183
  93 +msgid "kwalifikator"
  94 +msgstr "qualifier"
  95 +
  96 +#: lexeme_history.py:223 lexeme_history.py:290
  97 +#, python-format
  98 +msgid "klasyfikacja: %s"
  99 +msgstr "classification: %s"
  100 +
  101 +#: lexeme_history.py:227 lexeme_history.py:295
  102 +msgid "słownik"
  103 +msgstr "dictionary"
  104 +
  105 +#: lexeme_history.py:229 lexeme_history.py:297
  106 +msgid "odsyłacz"
  107 +msgstr "cross-reference"
  108 +
  109 +#: lexeme_history.py:273
  110 +msgid "(usunięta)"
  111 +msgstr "(deleted)"
  112 +
  113 +#: lexeme_history.py:325
  114 +msgid "(usunięty)"
  115 +msgstr "(deleted)"
  116 +
  117 +#: pagination_types.py:26 pagination_types.py:51
  118 +msgid "%d.%m.%Y"
  119 +msgstr "%Y/%m/%d"
  120 +
  121 +#: pattern_history.py:13 pattern_history.py:30
  122 +msgid "nazwa"
  123 +msgstr "name"
  124 +
  125 +#: pattern_history.py:14 pattern_history.py:31
  126 +msgid "typ"
  127 +msgstr "type"
  128 +
  129 +#: pattern_history.py:15 pattern_history.py:32
  130 +msgid "przykład"
  131 +msgstr "example"
  132 +
  133 +#: pattern_history.py:16 pattern_history.py:33
  134 +msgid "zakończenie formy podstawowej"
  135 +msgstr "basic form ending"
  136 +
  137 +#: pattern_history.py:21 pattern_history.py:40
  138 +msgid "efobaz"
  139 +msgstr "base form label"
  140 +
  141 +#: pattern_history.py:22 pattern_history.py:41
  142 +#: templates/pattern_history_table.html:11
  143 +msgid "zakończenie"
  144 +msgstr "ending"
  145 +
  146 +#: pattern_history.py:159 pattern_history.py:161
  147 +msgid "(usunięte)"
  148 +msgstr "(deleted)"
  149 +
  150 +#: templates/history_row.html:7
  151 +msgid "dodano"
  152 +msgstr "added"
  153 +
  154 +#: templates/history_row.html:14
  155 +msgid "usunięto"
  156 +msgstr "deleted"
  157 +
  158 +#: templates/history_view.html:13
  159 +msgid "Historia"
  160 +msgstr "History"
  161 +
  162 +#: templates/history_view.html:16
  163 +msgid "Historia zmian"
  164 +msgstr "Change history"
  165 +
  166 +#: templates/history_view.html:19
  167 +msgid "Leksemy"
  168 +msgstr "Lexemes"
  169 +
  170 +#: templates/history_view.html:20
  171 +msgid "Wzory"
  172 +msgstr "Patterns"
  173 +
  174 +#: templates/lexeme_history_table.html:4
  175 +#: templates/pattern_history_table.html:4
  176 +msgid "atrybut"
  177 +msgstr "attribute"
  178 +
  179 +#: templates/lexeme_history_table.html:5
  180 +#: templates/pattern_history_table.html:5
  181 +msgid "przed"
  182 +msgstr "before"
  183 +
  184 +#: templates/lexeme_history_table.html:6
  185 +#: templates/pattern_history_table.html:6
  186 +msgid "po"
  187 +msgstr "after"
  188 +
  189 +#: templates/lexeme_history_table.html:11
  190 +msgid "odmiana"
  191 +msgstr "inflection"