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 17 1. attribute_translation_list
18 18 2. lexeme_attribute_order
19 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 20 \ No newline at end of file
  21 +4. prepare_value
26 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 2  
3 3 from django.db.models import *
4 4 from django.contrib.auth.models import User, Group
  5 +from django.utils.translation import gettext as _
5 6 from dictionary.models import Vocabulary, PartOfSpeech
6 7  
7 8 MANAGER_GROUPS = ('Obserwator', 'Leksykograf', 'Superleksykograf')
... ... @@ -15,16 +16,16 @@ class UserSettings(Model):
15 16 user = OneToOneField(User)
16 17 incremental_search = BooleanField(
17 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 23 default_owner = ForeignKey(
23 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 26 default_pos = ForeignKey(
26 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 30 def views_lexeme(self):
30 31 return self.user.has_perm('dictionary.view_lexeme')
... ... @@ -43,5 +44,5 @@ class UserSettings(Model):
43 44  
44 45 class Meta:
45 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 1 {% extends "base.html" %}
2   -{% load ingroup staticfiles %}
  2 +{% load ingroup staticfiles i18n %}
3 3  
4 4 {% block extrahead %}
5 5 <script type="text/javascript"
6 6 src="{% static 'js/manage-groups.js' %}"></script>
7 7 {% endblock %}
8 8  
9   -{% block title %}Role użytkowników{% endblock %}
  9 +{% block title %}{% trans 'Role użytkowników' %}{% endblock %}
10 10  
11 11 {% block content %}
12   - <h3>Role użytkowników</h3>
  12 + <h3>{% trans 'Role użytkowników' %}</h3>
13 13 <table id="user-groups">
14 14 <tr>
15   - <th>nazwa</th>
  15 + <th>{% trans 'nazwa' %}</th>
16 16 {% for group in groups %}
17 17 <th>{{ group.name }}</th>
18 18 {% endfor %}
... ...
templates/registration/activate.html renamed to accounts/templates/registration/activation_complete.html
1 1 {% extends "base.html" %}
2 2 {% load i18n %}
3   -{% load url from future %}
4 3  
5 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 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 5 {% block content %}
6 6 {% if form.errors and not form.non_field_errors and not form.this_is_the_login_form.errors %}
7 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 9 </p>
12 10 {% endif %}
13 11  
... ... @@ -31,7 +29,7 @@
31 29 </div>
32 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 33 </div>
36 34  
37 35 <script type="text/javascript">
... ...
templates/registration/logout.html renamed to accounts/templates/registration/logout.html
... ... @@ -4,7 +4,7 @@
4 4  
5 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 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 13 <div>
14 14 {% if form.errors %}
15 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 17 </p>
20 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 21 <div>
22 22 {% if form.errors %}
23 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 25 </p>
28 26 {% endif %}
29 27  
... ...
accounts/templates/settings.html
1 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 6 {% block content %}
7   - <h1>Ustawienia użytkownika</h1>
  7 + <h1>{% trans 'Ustawienia użytkownika' %}</h1>
8 8 <form method="post" action="">
9 9 {{ form.as_p }}
10 10 {% csrf_token %}
... ... @@ -14,6 +14,6 @@
14 14 </button>
15 15 </form>
16 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 18 </p>
19 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 14 """This removes the unhelpful "Hold down the...." help texts for the
15 15 specified fields for a form."""
16 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 19 for field in fields:
19 20 if field in form.base_fields:
20 21 if form.base_fields[field].help_text:
... ... @@ -28,4 +29,4 @@ def disable_field(field):
28 29 if type(field.widget) in (Textarea, TextInput):
29 30 field.widget.attrs['readonly'] = 'readonly'
30 31 else:
31   - field.widget.attrs['disabled'] = 'disabled'
32 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 21 msgid "Sesja wygasła — zaloguj się i spróbuj ponownie."
3 22 msgstr "Session expired – log in and try again."
4 23  
5   -# common.js:192
  24 +#: static/js/common.js:192
6 25 msgid "Odmowa dostępu — brak uprawnień."
7 26 msgstr "Access denied — insufficient permissions"
8 27  
9   -# common.js:195
  28 +#: static/js/common.js:195
10 29 msgid "Żądanie"
11 30 msgstr "Request"
12 31  
13   -# common.js:196
  32 +#: static/js/common.js:196
14 33 msgid "nie powiodło się"
15   -msgstr "failed"
16 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 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 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 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 2 <html>
3 3 <head>
4 4 <title>{% block title %}{% endblock %}</title>
... ... @@ -65,9 +65,9 @@
65 65 {{ user.username }}{% endfilter %}</strong>
66 66 {% block userlinks %}
67 67 <a href="{% url 'settings' %}">
68   - Ustawienia</a> /
  68 + {% trans 'Ustawienia' %}</a> /
69 69 <a href="{% url 'auth_logout' %}">
70   - {% trans 'Log out' %}</a>
  70 + {% trans 'Wyloguj się' %}</a>
71 71 {% endblock %}
72 72 </div>
73 73 {% endif %}
... ...
templates/main_menu.html renamed to common/templates/main_menu.html
1   -{% load url from future %}
  1 +{% load i18n %}
2 2 <ul id="main_menu">
3 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 5 {% endif %}
6 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 8 {% endif %}
9 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 11 {% endif %}
12 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 18 {% endif %}
17 19 {% comment %}
18 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 22 {% endif %}
21 23 {% endcomment %}
22 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 26 {% endif %}
25 27 </ul>
... ...
common/urls.py
... ... @@ -8,6 +8,6 @@ js_info_dict = {
8 8  
9 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 12 'jsi18n'),
13 13 )
... ...
common/util.py
... ... @@ -4,6 +4,7 @@ import json
4 4 import sys
5 5 from django.conf import urls
6 6 from django.http import HttpResponseRedirect
  7 +from django.utils.translation import ugettext_lazy as _
7 8  
8 9  
9 10 def uniopen(filename):
... ... @@ -18,14 +19,14 @@ def debug(entry, text):
18 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 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 28 request.session['message'] = message
28   - return HttpResponseRedirect(url)
  29 + return HttpResponseRedirect(redirect_url)
29 30  
30 31  
31 32 def make_form(request, form_class, **kwargs):
... ... @@ -136,8 +137,8 @@ class FakeQueryset(list):
136 137  
137 138  
138 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 143 def format_date_exact(date):
143   - return date.strftime('%d.%m.%Y %H:%M:%S.%f')
144 144 \ No newline at end of file
  145 + return date.strftime(_('%d.%m.%Y %H:%M:%S.%f'))
... ...
dictionary/ajax_lexeme_view.py
1 1 # -*- coding: utf-8 -*-
2 2 import datetime
3 3  
4   -from django.contrib.auth.models import User
5 4 from django.core.cache import cache
  5 +from django.utils.translation import ugettext as _
6 6 from django.db.models import Max
  7 +
7 8 from dictionary.ajax_lexeme_slickgrid import LexemeQuery
8 9 from dictionary.auto_derivatives import lexeme_derivatives, create_derivative
9 10 from dictionary.models import Lexeme, LexemeInflectionPattern, PartOfSpeech, \
... ... @@ -222,7 +223,7 @@ def new_lip_edit_row(request, lexeme_id, pos_id, num):
222 223 if not l.perm(request.user, 'change'):
223 224 raise AjaxError('access denied')
224 225 if not pos_id:
225   - raise AjaxError(u'Nieokreślona część mowy.')
  226 + raise AjaxError(_(u'Nieokreślona część mowy.'))
226 227 pos = PartOfSpeech.objects.get(pk=pos_id)
227 228 lip_form = LIPEditForm(
228 229 part_of_speech=pos, prefix='lip_add_%s' % num, user=request.user)
... ... @@ -341,7 +342,7 @@ def update_lexeme(request, form_data):
341 342 lip.root = l.get_root(lip.pattern, lip.gender)
342 343 if lip.root is None:
343 344 raise AjaxError(
344   - u'Niepasujące zakończenie formy podstawowej.')
  345 + _(u'Niepasujące zakończenie formy podstawowej.'))
345 346 for qualifier in lip_form.fields['qualifiers'].queryset:
346 347 qualifier.set_for(
347 348 lip, qualifier in lip_form.cleaned_data['qualifiers'])
... ... @@ -356,7 +357,7 @@ def update_lexeme(request, form_data):
356 357 else:
357 358 raise AjaxError(error_messages(cr_form))
358 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 362 extra_attrs = l.attributes()
362 363 for attr in extra_attrs:
... ... @@ -424,7 +425,7 @@ def create_derivatives(request, lexeme_id, chosen_derivatives):
424 425 pos = der_data['pos']
425 426 entry = der_data['entry']
426 427 if entry == '':
427   - raise AjaxError(u'Nie wpisano hasła')
  428 + raise AjaxError(_(u'Nie wpisano hasła'))
428 429 new_lexemes = create_derivative(
429 430 lexeme, pos, entry, pl=der_data.get('pl'),
430 431 index=der_data['index'])
... ... @@ -519,7 +520,7 @@ def create_lexeme(request):
519 520 owner = editable[0]
520 521 pos_id = request.user.usersettings.default_pos_id or 'subst'
521 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 524 if request.user not in owner.all_editors():
524 525 raise AjaxError('access denied')
525 526 next_id = Lexeme.all_objects.filter(
... ... @@ -585,19 +586,18 @@ def cr_homonyms(request, entry, cr_type):
585 586 entry=entry, part_of_speech=pos, vocabularies__in=visible_vocabs)
586 587 aspect = LexemeAttribute.objects.get(name=u'aspekt')
587 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 590 make_row = lambda lexeme, lip_data: (
591 591 lexeme.homonym_number,
592 592 lexeme.attribute_value(aspect).value
593 593 if lexeme.attribute_value(aspect) else '',
594 594 lip_data['patterns'])
595 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 597 make_row = lambda lexeme, lip_data: (
598 598 lexeme.homonym_number, lip_data['genders'], lip_data['patterns'])
599 599 else:
600   - labels = (u'Nr hom.', u'Wzór')
  600 + labels = (_(u'Nr hom.'), _(u'Wzór'))
601 601 make_row = lambda lexeme, lip_data: (
602 602 lexeme.homonym_number, lip_data['patterns'])
603 603 lexemes_data = [
... ... @@ -659,48 +659,3 @@ def execute_group_actions(request, actions, filter):
659 659 def save_columns(request, columns):
660 660 request.session['columns'] = columns
661 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 662 \ No newline at end of file
... ...
dictionary/forms.py
... ... @@ -4,6 +4,7 @@ from django.core.exceptions import ValidationError
4 4 from django.forms import Textarea, TextInput, ModelMultipleChoiceField, \
5 5 ModelChoiceField, ModelForm, Form, CharField, SelectMultiple, Select, \
6 6 TypedMultipleChoiceField, HiddenInput, IntegerField, ChoiceField
  7 +from django.utils.translation import ugettext_lazy as _
7 8  
8 9 from common.forms import disable_field
9 10 from common.util import GroupDict
... ... @@ -70,10 +71,10 @@ class LexemeEditForm(ModelForm):
70 71 vocabularies = ModelMultipleChoiceField(
71 72 queryset=Vocabulary.objects.none(), required=False)
72 73 style_qualifiers = QualifiersField(
73   - required=False, label='kwal styl.',
  74 + required=False, label=_(u'kwal. styl.'),
74 75 widget=SelectMultiple(attrs={'class': 'qualifiers'}))
75 76 scope_qualifiers = QualifiersField(
76   - required=False, label='kwal. zakr.',
  77 + required=False, label=_(u'kwal. zakr.'),
77 78 widget=SelectMultiple(attrs={'class': 'qualifiers'}))
78 79 new_owner = ModelChoiceField(
79 80 queryset=Vocabulary.objects.none(), required=False)
... ... @@ -107,7 +108,7 @@ class LexemeEditForm(ModelForm):
107 108 def clean_entry(self):
108 109 entry = self.cleaned_data['entry']
109 110 if ' ' in entry:
110   - raise ValidationError(u'niedozwolona spacja')
  111 + raise ValidationError(_(u'niedozwolona spacja'))
111 112 return entry
112 113  
113 114 def clean_comment(self):
... ... @@ -201,9 +202,9 @@ class LexemeMultipleAttributeForm(LexemeAttributeForm):
201 202  
202 203 class LIPEditForm(ModelForm):
203 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 206 qualifiers = QualifiersField(
206   - required=False, label=u'Kwal.',
  207 + required=False, label=_(u'Kwal.'),
207 208 widget=SelectMultiple(attrs={'class': 'lip-qualifiers'}))
208 209 lexical_class = CharField(widget=HiddenInput(), label=u'')
209 210  
... ... @@ -231,10 +232,10 @@ class LIPEditForm(ModelForm):
231 232 try:
232 233 pattern = Pattern.objects.get(name=cleaned_data['pattern_name'])
233 234 except Pattern.DoesNotExist:
234   - raise ValidationError(u'Niepoprawna nazwa wzoru.')
  235 + raise ValidationError(_(u'Niepoprawna nazwa wzoru.'))
235 236 lc = cleaned_data['lexical_class']
236 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 239 cleaned_data['pattern'] = pattern
239 240 return cleaned_data
240 241  
... ... @@ -252,7 +253,8 @@ class LIPEditForm(ModelForm):
252 253 fields = ['gender', 'pronunciation']
253 254 widgets = {
254 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 277  
276 278  
277 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 281 'class': 'entry',
280 282 'size': 12,
281 283 }))
282 284 homonym_number = IntegerField(
283   - label=u'hom.',
  285 + label=_(u'hom.'),
284 286 widget=TextInput(attrs={
285 287 'class': 'homonym-number',
286 288 'readonly': 'readonly',
... ... @@ -307,13 +309,14 @@ class CrossReferenceForm(ModelForm):
307 309 to_lexeme = Lexeme.objects.get(
308 310 entry=entry, homonym_number=hom, part_of_speech=cr_type.to_pos)
309 311 except Lexeme.DoesNotExist:
310   - raise ValidationError(u'Wybrany leksem nie istnieje.')
  312 + raise ValidationError(_(u'Wybrany leksem nie istnieje.'))
311 313 except Lexeme.MultipleObjectsReturned:
312 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 316 if from_lexeme and to_lexeme and cr_type:
315 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 320 cleaned_data['to_lexeme'] = to_lexeme
318 321 return cleaned_data
319 322  
... ... @@ -336,14 +339,14 @@ class CrossReferenceForm(ModelForm):
336 339 # dynamic actions
337 340  
338 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 347 class StatusActionForm(Form):
345 348 action = ChoiceField(
346   - choices=[('set', u'ustaw')], label=u'',
  349 + choices=[('set', _(u'ustaw'))], label=u'',
347 350 widget=Select(attrs={'class': 'action-choice'}))
348 351  
349 352  
... ... @@ -390,16 +393,17 @@ class LexemeQualifierValueForm(Form):
390 393 ACTION_FIELDS = (
391 394 (
392 395 'status',
393   - (u'Status', StatusActionForm, StatusValueForm)
  396 + (_(u'Status'), StatusActionForm, StatusValueForm)
394 397 ),
395 398 (
396 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 404 'lexeme_qualifier',
401 405 (
402   - u'Kwalifikator leksemu',
  406 + _(u'Kwalifikator leksemu'),
403 407 LexemeQualifierActionForm, LexemeQualifierValueForm
404 408 )
405 409 ),
... ... @@ -409,4 +413,4 @@ ACTION_FIELDS = (
409 413 class ActionFieldForm(Form):
410 414 field = ChoiceField(
411 415 choices=[(id, data[0]) for id, data in ACTION_FIELDS], label=u'',
412   - widget=Select(attrs={'class': 'field-choice'}))
413 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 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 49 msgid "Kontynuować?"
11 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 54 msgid "Anuluj"
15 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 58 msgid "Wybierz"
19 59 msgstr "Choose"
20 60  
21   -# lexeme-edit.js:193
  61 +#: static/js/lexeme-edit.js:193
22 62 msgid "Utwórz"
23 63 msgstr "Create"
24 64  
25   -# lexeme-edit.js:213
  65 +#: static/js/lexeme-edit.js:213
26 66 msgid "Wykonaj"
27 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 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 77 msgid "Wybierz słowniki"
39 78 msgstr "Choose dictionaries"
40 79  
41   -# lexeme-edit.js:321
  80 +#: static/js/lexeme-edit.js:321
42 81 msgid "# słowników"
43 82 msgstr "# dictionaries"
44 83  
45   -# lexeme-edit.js:413
  84 +#: static/js/lexeme-edit.js:413
46 85 msgid "Zapisanie zmian"
47 86 msgstr "Save"
48 87  
49   -# lexeme-edit.js:493
  88 +#: static/js/lexeme-edit.js:493
50 89 msgid "Utworzenie derywatów"
51 90 msgstr "Creation of derivatives"
52 91  
53   -# lexeme-edit.js:593
  92 +#: static/js/lexeme-edit.js:593
54 93 msgid "Przeładowanie klasyfikacji"
55 94 msgstr "Classification reload"
56 95  
57   -# lexeme-edit.js:610
  96 +#: static/js/lexeme-edit.js:610
58 97 msgid "Przeładowanie atrybutów"
59 98 msgstr "Attributes reload"
60 99  
61   -# lexeme-edit.js:644
  100 +#: static/js/lexeme-edit.js:644
62 101 msgid "Wzór nie pasuje do rodzaju — na pewno zapisać?"
63 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 105 msgid "Na pewno usunąć leksem?"
67 106 msgstr "Do you want to delete this lexeme?"
68 107  
69   -# lexeme-edit.js:693
  108 +#: static/js/lexeme-edit.js:693
70 109 msgid "Usunięcie leksemu"
71 110 msgstr "Lexeme deletion"
72 111  
73   -# lexeme-edit.js:889
  112 +#: static/js/lexeme-edit.js:889
74 113 msgid "wszystkie sposoby odmiany"
75 114 msgstr "all inflections"
76 115  
77   -# lexeme-edit.js:892
  116 +#: static/js/lexeme-edit.js:892
78 117 msgid "wszystkie odsyłacze"
79 118 msgstr "all cross-references"
80 119  
81   -# lexeme-edit.js:896
  120 +#: static/js/lexeme-edit.js:896
82 121 msgid "atrybuty"
83 122 msgstr "attributes"
84 123  
85   -# lexeme-edit.js:901
  124 +#: static/js/lexeme-edit.js:901
86 125 msgid "klasyfikacje"
87 126 msgstr "classifications"
88 127  
89   -# lexeme-edit.js:905
  128 +#: static/js/lexeme-edit.js:905
90 129 msgid "Zostaną usunięte:"
91 130 msgstr "Those will be removed:"
92 131  
93   -# lexeme-edit.js:959
  132 +#: static/js/lexeme-edit.js:959
94 133 msgid "Zapisanie domyślnego słownika"
95 134 msgstr "Default dictionary record"
96 135  
97   -# lexeme-edit.js:969
  136 +#: static/js/lexeme-edit.js:969
98 137 msgid "Utworzenie leksemu"
99 138 msgstr "Creation of a new lexeme"
100 139  
101   -# lexeme-edit.js:983
  140 +#: static/js/lexeme-edit.js:983
102 141 msgid "Sklonowanie leksemu"
103 142 msgstr "Lexeme cloning"
104 143  
105   -# lexeme-edit.js:998
  144 +#: static/js/lexeme-edit.js:998
106 145 msgid "Pobranie liczby homonimów"
107 146 msgstr "Homonym query"
108 147  
109   -# lexeme-edit.js:1054
  148 +#: static/js/lexeme-edit.js:1054
110 149 msgid "Sprawdzenie homonimów"
111 150 msgstr "Homonym check"
112 151  
113   -# lexeme-edit.js:1063
  152 +#: static/js/lexeme-edit.js:1063
114 153 msgid "Brak pasujących leksemów."
115 154 msgstr "No matching lexemes."
116 155  
117   -# lexeme-view.js:12
  156 +#: static/js/lexeme-view.js:12
118 157 msgid "Atrybut"
119 158 msgstr "Attribute"
120 159  
121   -# lexeme-view.js:67
  160 +#: static/js/lexeme-view.js:67
122 161 msgid "Leksemy"
123 162 msgstr "Lexemes"
124 163  
125   -# lexeme-view.js:73
  164 +#: static/js/lexeme-view.js:73
126 165 msgid "Nr"
127 166 msgstr "№"
128 167  
129   -# lexeme-view.js:74
  168 +#: static/js/lexeme-view.js:74 static/js/lexeme-view.js.c:92
130 169 msgid "Hasło"
131 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 173 msgid "Część mowy"
135 174 msgstr "Part of speech"
136 175  
137   -# lexeme-view.js:76
  176 +#: static/js/lexeme-view.js:76
138 177 msgid "Wzory"
139 178 msgstr "Patterns"
140 179  
141   -# lexeme-view.js:79
  180 +#: static/js/lexeme-view.js:79
142 181 msgid "Rodzaj/aspekt"
143 182 msgstr "Gender/aspect"
144 183  
145   -# lexeme-view.js:82
  184 +#: static/js/lexeme-view.js:82
146 185 msgid "Słowniki"
147 186 msgstr "Dictionaries"
148 187  
149   -# lexeme-view.js:83
  188 +#: static/js/lexeme-view.js:83
150 189 msgid "Sł. właściciel"
151 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 193 msgid "Status"
155 194 msgstr "Status"
156 195  
157   -# lexeme-view.js:87
  196 +#: static/js/lexeme-view.js:87
158 197 msgid "Kwal."
159 198 msgstr "Qual."
160 199  
161   -# lexeme-view.js:99
  200 +#: static/js/lexeme-view.js:99
162 201 msgid "Wzór"
163 202 msgstr "Pattern"
164 203  
165   -# lexeme-view.js:101
  204 +#: static/js/lexeme-view.js:101
166 205 msgid "Liczba wzorów"
167 206 msgstr "Pattern count"
168 207  
169   -# lexeme-view.js:106
  208 +#: static/js/lexeme-view.js:106
170 209 msgid "Typ wzoru"
171 210 msgstr "Pattern type"
172 211  
173   -# lexeme-view.js:112
  212 +#: static/js/lexeme-view.js:112
174 213 msgid "Rodzaj"
175 214 msgstr "Gender"
176 215  
177   -# lexeme-view.js:117
  216 +#: static/js/lexeme-view.js:117
178 217 msgid "Liczba rodzajów"
179 218 msgstr "Gender count"
180 219  
181   -# lexeme-view.js:118
  220 +#: static/js/lexeme-view.js:118
182 221 msgid "Forma"
183 222 msgstr "Form"
184 223  
185   -# lexeme-view.js:120
  224 +#: static/js/lexeme-view.js:120
186 225 msgid "Słownik"
187 226 msgstr "Dictionary"
188 227  
189   -# lexeme-view.js:126
  228 +#: static/js/lexeme-view.js:126
190 229 msgid "Słownik właściciel"
191 230 msgstr "Owner dictionary"
192 231  
193   -# lexeme-view.js:137
  232 +#: static/js/lexeme-view.js:137
194 233 msgid "Komentarz"
195 234 msgstr "Comment"
196 235  
197   -# lexeme-view.js:139
  236 +#: static/js/lexeme-view.js:139
198 237 msgid "Kwal. leksemu"
199 238 msgstr "Lexeme qual."
200 239  
201   -# lexeme-view.js:145
  240 +#: static/js/lexeme-view.js:145
202 241 msgid "Kwal. odmieniasia"
203 242 msgstr "Inflection qual."
204 243  
205   -# lexeme-view.js:151
  244 +#: static/js/lexeme-view.js:151
206 245 msgid "Kwal. przy dow. formie"
207 246 msgstr "Any qualifier"
208 247  
209   -# lexeme-view.js:157
  248 +#: static/js/lexeme-view.js:157
210 249 msgid "Kwal. z Dor."
211 250 msgstr "Dor. qual."
212 251  
213   -# lexeme-view.js:159
  252 +#: static/js/lexeme-view.js:159
214 253 msgid "Kwal. styl."
215 254 msgstr "Styl. qual."
216 255  
217   -# lexeme-view.js:161
  256 +#: static/js/lexeme-view.js:161
218 257 msgid "Kwal. zakr."
219 258 msgstr "Scope qual."
220 259  
221   -# lexeme-view.js:163
  260 +#: static/js/lexeme-view.js:163
222 261 msgid "Wartość klasyfikacji"
223 262 msgstr "Classification value"
224 263  
225   -# lexeme-view.js:169
  264 +#: static/js/lexeme-view.js:169
226 265 msgid "Źródło zapożyczenia"
227 266 msgstr "Borrowing source"
228 267  
229   -# lexeme-view.js:174
  268 +#: static/js/lexeme-view.js:174
230 269 msgid "Glosa"
231 270 msgstr "Gloss"
232 271  
233   -# lexeme-view.js:175
  272 +#: static/js/lexeme-view.js:175
234 273 msgid "Nota"
235 274 msgstr "Note"
236 275  
237   -# lexeme-view.js:177
  276 +#: static/js/lexeme-view.js:177
238 277 msgid "Nota rozszerzona"
239 278 msgstr "Extended note"
240 279  
241   -# lexeme-view.js:181
  280 +#: static/js/lexeme-view.js:181
242 281 msgid "Wymowa"
243 282 msgstr "Pronunciation"
244 283  
245   -# lexeme-view.js:182
  284 +#: static/js/lexeme-view.js:182
246 285 msgid "Łączliwość"
247 286 msgstr "Valence"
248 287  
249   -# lexeme-view.js:184
  288 +#: static/js/lexeme-view.js:184
250 289 msgid "Typ odsyłacza"
251 290 msgstr "Cross-reference type"
252 291  
253   -# lexeme-view.js:190
  292 +#: static/js/lexeme-view.js:190
254 293 msgid "Autor ostatniej zmiany"
255 294 msgstr "Last change's author"
256 295  
257   -# slickgrid.js:12
  296 +#: static/js/slickgrid.js:12
258 297 msgid "równy|równa|równe"
259 298 msgstr "equal to"
260 299  
261   -# slickgrid.js:13
  300 +#: static/js/slickgrid.js:13
262 301 msgid "różny od|różna od|różne od"
263 302 msgstr "not equal to"
264 303  
265   -# slickgrid.js:14
  304 +#: static/js/slickgrid.js:14
266 305 msgid "mniejszy lub równy|mniejsza lub równa|mniejsze lub równe"
267 306 msgstr "less than"
268 307  
269   -# slickgrid.js:15
  308 +#: static/js/slickgrid.js:15
270 309 msgid "większy lub równy|większa lub równa|większe lub równe"
271 310 msgstr "greater than"
272 311  
273   -# slickgrid.js:16
  312 +#: static/js/slickgrid.js:16
274 313 msgid "zaczyna się od"
275 314 msgstr "starts with"
276 315  
277   -# slickgrid.js:17
  316 +#: static/js/slickgrid.js:17
278 317 msgid "nie zaczyna się od"
279 318 msgstr "doesn't start with"
280 319  
281   -# slickgrid.js:18
  320 +#: static/js/slickgrid.js:18
282 321 msgid "kończy się na"
283 322 msgstr "ends with"
284 323  
285   -# slickgrid.js:19
  324 +#: static/js/slickgrid.js:19
286 325 msgid "nie kończy się na"
287 326 msgstr "doesn't end with"
288 327  
289   -# slickgrid.js:20
  328 +#: static/js/slickgrid.js:20
290 329 msgid "zawiera"
291 330 msgstr "contains"
292 331  
293   -# slickgrid.js:21
  332 +#: static/js/slickgrid.js:21
294 333 msgid "nie zawiera"
295 334 msgstr "doesn't contain"
296 335  
297   -# slickgrid.js:22
  336 +#: static/js/slickgrid.js:22
298 337 msgid "pasuje do wzorca"
299 338 msgstr "matched by pattern"
300 339  
301   -# slickgrid.js:23
  340 +#: static/js/slickgrid.js:23
302 341 msgid "nie pasuje do wzorca"
303 342 msgstr "not matched by pattern"
304 343  
305   -# slickgrid.js:367
  344 +#: static/js/slickgrid.js:367
306 345 msgid "Załadowanie strony nie powiodło się."
307 346 msgstr "Page load failed."
308 347  
309   -# slickgrid.js:401
  348 +#: static/js/slickgrid.js:401
310 349 msgid "Czyść"
311 350 msgstr "Clear"
312 351  
313   -# slickgrid.js:409
  352 +#: static/js/slickgrid.js:409
314 353 msgid "Zapisz filtr"
315 354 msgstr "Save filter"
316 355  
317   -# slickgrid.js:413
  356 +#: static/js/slickgrid.js:413
318 357 msgid "Załaduj filtr"
319 358 msgstr "Load filter"
320 359  
321   -# slickgrid.js:426
  360 +#: static/js/slickgrid.js:426
322 361 msgid "Filtruj"
323 362 msgstr "Apply"
324 363  
325   -# slickgrid.js:472
  364 +#: static/js/slickgrid.js:472
326 365 msgid "Zatwierdź"
327 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 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 from django.contrib.auth.models import User, Permission
7 7 from django.db.models import Manager, Model, CharField, ForeignKey, \
8 8 IntegerField, BooleanField, ManyToManyField, TextField, DateTimeField
  9 +from django.utils.translation import ugettext_lazy as _
  10 +
9 11 from common.util import no_history, GroupDict
10 12 from accounts.util import users_with_perm
11 13  
... ... @@ -63,9 +65,9 @@ class PartOfSpeech(Model):
63 65  
64 66 class QualifierExclusionClass(Model):
65 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 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 72 def __unicode__(self):
71 73 return self.name
... ... @@ -91,20 +93,20 @@ class Qualifier(Model):
91 93 TYPE_SCOPE = 'zakr'
92 94 TYPE_FORM = 'form'
93 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 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 104 vocabulary = ForeignKey(
103   - 'Vocabulary', db_column='slownik', verbose_name=u'słownik',
  105 + 'Vocabulary', db_column='slownik', verbose_name=_(u'słownik'),
104 106 related_name='qualifiers')
105 107 exclusion_class = ForeignKey(
106 108 QualifierExclusionClass, db_column='klasa', null=True, blank=True,
107   - verbose_name=u'klasa wykluczania')
  109 + verbose_name=_(u'klasa wykluczania'))
108 110 deleted = BooleanField(db_column='usuniety', default=False)
109 111  
110 112 objects = NotDeletedManager()
... ... @@ -148,7 +150,7 @@ def editable_qualifiers(user):
148 150 class Classification(Model):
149 151 name = CharField(
150 152 unique=True, max_length=64, db_column='nazwa',
151   - verbose_name=u'nazwa klasyfikacji')
  153 + verbose_name=_(u'nazwa klasyfikacji'))
152 154 parts_of_speech = ManyToManyField(PartOfSpeech)
153 155  
154 156 def value_tree(self):
... ... @@ -183,12 +185,12 @@ def make_choices(tree):
183 185 class ClassificationValue(Model):
184 186 label = CharField(
185 187 unique=True, max_length=64, db_column='nazwa',
186   - verbose_name=u'nazwa wartości')
  188 + verbose_name=_(u'nazwa wartości'))
187 189 classification = ForeignKey(
188 190 Classification, db_column='klas_id', related_name='values')
189 191 parent_node = ForeignKey(
190 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 194 lexemes = ManyToManyField('Lexeme', blank=True, through='LexemeCV')
193 195 deleted = BooleanField(db_column='usunieta', default=False)
194 196  
... ... @@ -282,10 +284,11 @@ class DummyEnding(object):
282 284  
283 285 class PatternType(Model):
284 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 288 # typ wzoru (np. dla rzeczowników: odmiana męska, żeńska lub nijaka)
287 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 292 base_form_labels = ManyToManyField(BaseFormLabel)
290 293  
291 294 def dummy_base_endings(self):
... ... @@ -315,24 +318,26 @@ class Pattern(Model):
315 318 STATUS_NEW = 'nowy'
316 319 STATUS_TEMP = 'temp'
317 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 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 330 # rdzeń przykładowej formy hasłowej
326 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 333 blank=True)
329 334 basic_form_ending = CharField(
330 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 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 339 comment = TextField(
335   - blank=True, db_column='komentarz', verbose_name=u'komentarz')
  340 + blank=True, db_column='komentarz', verbose_name=_(u'komentarz'))
336 341 deleted = BooleanField()
337 342  
338 343 objects = NotDeletedManager()
... ... @@ -366,7 +371,7 @@ class Pattern(Model):
366 371 db_table = 'wzory'
367 372 ordering = ['name']
368 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 441 STATUS_DESCRIBED = 'desc'
437 442 STATUS_CONFIRMED = 'conf'
438 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 449 entry = CharField(
445 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 452 # id w źródłowej bazie
448 453 source_id = IntegerField(blank=True, null=True)
449 454 # pozostałość historyczna:
450 455 entry_suffix = CharField(
451 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 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 464 homonym_number = IntegerField(db_column='hom', default=1)
460 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 467 owner_vocabulary = ForeignKey(
463 468 'Vocabulary', db_column='slownik', related_name='owned_lexemes')
464 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 472 borrowing_source = ForeignKey(
467 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 475 status = CharField(max_length=8, db_column='status', choices=STATUS_CHOICES)
470 476 qualifiers = ManyToManyField(
471 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 481 # czy termin specjalistyczny
476   - specialist = BooleanField(default=False, verbose_name=u'specjalistyczny')
  482 + specialist = BooleanField(default=False, verbose_name=_(u'specjalistyczny'))
477 483 comment = TextField(
478   - blank=True, db_column='komentarz', verbose_name=u'komentarz')
  484 + blank=True, db_column='komentarz', verbose_name=_(u'komentarz'))
479 485 last_modified = DateTimeField(auto_now=True, db_column='data_modyfikacji')
480 486 # osoba, ktora ostatnia zmieniala opis leksemu
481 487 responsible = ForeignKey(
... ... @@ -751,10 +757,11 @@ class Lexeme(Model):
751 757 class Meta:
752 758 db_table = 'leksemy'
753 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 857 class LexemeInflectionPattern(Model):
851 858 lexeme = ForeignKey(Lexeme, db_column='l_id')
852 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 863 root = CharField(max_length=64, db_column='rdzen')
856 864 qualifiers = ManyToManyField(
857 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 869 objects = LexemeNotDeletedManager()
861 870 all_objects = Manager()
... ... @@ -1028,8 +1037,8 @@ class Vocabulary(Model):
1028 1037 db_table = 'slowniki'
1029 1038 ordering = ['id']
1030 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 1112 Lexeme, db_column='l_id_od', related_name='refs_to')
1104 1113 to_lexeme = ForeignKey(
1105 1114 Lexeme, db_column='l_id_do', related_name='refs_from',
1106   - verbose_name=u'nr docelowy')
  1115 + verbose_name=_(u'nr docelowy'))
1107 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 1119 objects = CRManager()
1111 1120 all_objects = Manager()
... ...
dictionary/reports.py
1 1 # -*- coding: utf-8 -*-
  2 +from django.utils.translation import ugettext as _
  3 +
2 4 from dictionary.models import Lexeme, LexemeAttributeValue, Pattern, \
3 5 CrossReferenceType
4 6  
... ... @@ -15,7 +17,7 @@ def derivatives_without_verb():
15 17 derivatives = Lexeme.objects.filter(
16 18 part_of_speech__symbol__in=('ger', 'pact', 'ppas', 'appas'))
17 19 return {
18   - u'Brak odsyłacza do czasownika':
  20 + _(u'Brak odsyłacza do czasownika'):
19 21 derivatives.exclude(refs_to__type__symbol__endswith='ver'),
20 22 }
21 23  
... ... @@ -58,8 +60,8 @@ def verbs_without_derivatives():
58 60 proper_11 = proper_verbs.filter(patterns__in=patterns11)
59 61 no_ger = proper_11.exclude(refs_to__type__symbol='verger')
60 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 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 83 var stale_attrs = check_attrs(genders);
84 84 if (stale_attrs.length > 0) {
85 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 88 if (!window.confirm(interpolate(fmt, [stale_attrs]) +
89 89 ' ' + gettext("Kontynuować?"))) {
90 90 return;
... ... @@ -253,8 +253,8 @@ $.extend(edit, {
253 253 var stale_classifications = check_classifications(), confirmed;
254 254 if (stale_classifications.length > 0) {
255 255 var msg = ngettext(
256   - "Zostaną usunięte klasyfikacje:",
257 256 "Zostanie usunięta klasyfikacja:",
  257 + "Zostaną usunięte klasyfikacje:",
258 258 stale_classifications.length);
259 259 confirmed = window.confirm(
260 260 msg + ' ' + join_classifications(stale_classifications) +
... ... @@ -274,8 +274,8 @@ $.extend(edit, {
274 274 var confirmed;
275 275 if (stale_attrs.length > 0) {
276 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 279 confirmed = window.confirm(
280 280 interpolate(fmt, [join_attrs(stale_attrs)]) +
281 281 ' ' + gettext("Kontynuować?"));
... ...
dictionary/templates/classification_forms.html
  1 +{% load i18n %}
  2 +
1 3 {% if classification_forms %}
2   - <h4>Klasyfikacje</h4>
  4 + <h4>{% trans 'Klasyfikacje' %}</h4>
3 5 {% for form in classification_forms %}
4 6 {{ form.as_p }}
5 7 {% endfor %}
... ...
dictionary/templates/classification_value_tree.html
1   -{% load dictionary_extras %}
  1 +{% load dictionary_extras i18n %}
2 2 <ul class="value-tree">
3 3 {% for value, subtree in value_tree %}
4 4 <li>
... ... @@ -12,7 +12,7 @@
12 12 <input type="hidden" name="det" value="value_remove"/>
13 13 <input type="hidden" name="id" value="{{ value.pk }}"/>
14 14 <button type="submit">
15   - usuń
  15 + {% trans 'usuń' %}
16 16 </button>
17 17 </form>
18 18 {% endif %}
... ... @@ -22,7 +22,7 @@
22 22 <input type="hidden" name="id" value="{{ value.pk }}"/>
23 23 <input type="text" name="new_name"/>
24 24 <button type="submit">
25   - zmień nazwę
  25 + {% trans 'zmień nazwę' %}
26 26 </button>
27 27 </form>
28 28 </span>
... ...
dictionary/templates/inflection_tables.html
1   -{% load dictionary_extras %}
  1 +{% load dictionary_extras i18n %}
2 2 <div class="entry-article scheme{{ lexeme.part_of_speech.color_scheme }}">
3 3 <h1>
4 4 {{ lexeme.entry }}
... ... @@ -23,7 +23,7 @@
23 23 <span class="qualifiers">
24 24 {{ info.qualifiers|join:" " }}
25 25 {% if info.commonness %}
26   - n. wł. {{ info.commonness|join:", " }}
  26 + {% trans 'n. wł.' %} {{ info.commonness|join:", " }}
27 27 {% endif %}
28 28 </span>
29 29 {% if lexeme.note %}
... ... @@ -36,7 +36,7 @@
36 36 </p>
37 37 {% if lexeme|attribute:"rozwinięcie" %}
38 38 <p>
39   - rozwinięcie: {{ lexeme|attribute:"rozwinięcie" }}
  39 + {% trans 'rozwinięcie' %}: {{ lexeme|attribute:"rozwinięcie" }}
40 40 </p>
41 41 {% endif %}
42 42 <p>
... ... @@ -68,7 +68,7 @@
68 68 {% if cross_references %}
69 69 <table class="cross-references">
70 70 <tr>
71   - <th class="head" colspan="2">Odsyłacze</th>
  71 + <th class="head" colspan="2">{% trans 'Odsyłacze' %}</th>
72 72 </tr>
73 73 {% for cr in cross_references %}
74 74 <tr>
... ...
dictionary/templates/lexeme_edit_form.html
1   -{% load dictionary_extras %}
  1 +{% load dictionary_extras i18n %}
2 2 <form action="" method="post" id="lexeme-edit-form">
3 3 <p class="lexeme-save">
4 4 <button type="submit" disabled="disabled" class="lexeme-edit-submit">
5   - Zapisz
  5 + {% trans 'Zapisz' %}
6 6 </button>
7 7 <button type="reset" disabled="disabled" class="lexeme-edit-cancel">
8   - Anuluj
  8 + {% trans 'Anuluj' %}
9 9 </button>
10 10 <button type="button" class="lexeme-edit-delete"
11 11 {% if not editable %}disabled="disabled"{% endif %}>
12   - Usuń leksem
  12 + {% trans 'Usuń leksem' %}
13 13 </button>
14 14 </p>
15 15 <table id="vocab-list">
16 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 19 </tr>
20 20 <tr>
21 21 <td>
... ... @@ -75,7 +75,7 @@
75 75 {% endfor %}
76 76 </div>
77 77 <p>
78   - Sposoby odmiany:
  78 + {% trans 'Sposoby odmiany' %}:
79 79 <input type="hidden" name="id" value="{{ id }}"/>
80 80 {% if editable %}
81 81 <button type="button" id="add-row">
... ... @@ -88,20 +88,20 @@
88 88 {% include 'lexeme_edit_form_row.html' %}
89 89 {% endfor %}
90 90 </ul>
91   - <p>Kwalifikatory:</p>
  91 + <p>{% trans 'Kwalifikatory' %}:</p>
92 92 <p>
93 93 {% if ro_qualifiers %}
94 94 {{ owner.id }}: {{ ro_qualifiers|join:", " }};
95 95 {% endif %}
96 96 </p>
97 97 <p>
98   - stylistyczne: {{ form.style_qualifiers.as_widget }}
  98 + {% trans 'stylistyczne' %}: {{ form.style_qualifiers.as_widget }}
99 99 </p>
100 100 <p>
101   - zakresowe: {{ form.scope_qualifiers.as_widget }}
  101 + {% trans 'zakresowe' %}: {{ form.scope_qualifiers.as_widget }}
102 102 </p>
103 103 <p id="specialist" style="display: none;">
104   - {{ form.specialist.as_widget }} specjalistyczny
  104 + {{ form.specialist.as_widget }} {% trans 'specjalistyczny' %}
105 105 </p>
106 106 <p class="main-field">
107 107 {{ form.qualifiers_dor.label_tag }} {{ form.qualifiers_dor.as_widget }}
... ... @@ -133,7 +133,7 @@
133 133 </p>
134 134 {% if editable or cross_references %}
135 135 <p>
136   - Odsyłacze:
  136 + {% trans 'Odsyłacze' %}:
137 137 {% if editable %}
138 138 <button type="button" id="add-cr-row">
139 139 <span class="ui-icon ui-icon-plus"></span>
... ... @@ -166,14 +166,14 @@
166 166 {% endif %}
167 167 <p class="lexeme-save">
168 168 <button type="submit" disabled="disabled" class="lexeme-edit-submit">
169   - Zapisz
  169 + {% trans 'Zapisz' %}
170 170 </button>
171 171 <button type="reset" disabled="disabled" class="lexeme-edit-cancel">
172   - Anuluj
  172 + {% trans 'Anuluj' %}
173 173 </button>
174 174 <button type="button" class="lexeme-edit-delete"
175 175 {% if not editable %}disabled="disabled"{% endif %}>
176   - Usuń leksem
  176 + {% trans 'Usuń leksem' %}
177 177 </button>
178 178 </p>
179 179 </form>
... ...
dictionary/templates/lexeme_view.html
... ... @@ -44,33 +44,33 @@
44 44 src="{% static 'js/lexeme-edit.js' %}"></script>
45 45 {% endblock %}
46 46  
47   -{% block title %}Widok leksemów{% endblock %}
  47 +{% block title %}{% trans 'Widok leksemów' %}{% endblock %}
48 48  
49 49 {% block content %}
50 50 <div id="left">
51 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 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 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 60 </button>
61 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 64 </button>
65 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 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 71 </button>
72 72 {% endif %}
73   - <button id="more-button" title="więcej">
  73 + <button id="more-button" title="{% trans 'więcej' %}">
74 74 <span class="ellipsis-icon">...</span>
75 75 </button>
76 76 </div>
... ... @@ -79,11 +79,11 @@
79 79 <div id="right">
80 80 <div class="tabs" id="lexeme-tabs">
81 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 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 87 </ul>
88 88 <div id="edit"></div>
89 89 <div id="variant0"></div>
... ... @@ -95,74 +95,74 @@
95 95 {% endblock %}
96 96  
97 97 {% block modal_elements %}
98   - <div id="choose-columns-dialog" title="Wybierz kolumny">
  98 + <div id="choose-columns-dialog" title="{% trans 'Wybierz kolumny' %}">
99 99 <select id="column-list" multiple=multiple></select>
100 100 </div>
101   - <div id="choose-filter-dialog" title="Filtrowanie">
  101 + <div id="choose-filter-dialog" title="{% trans 'Filtrowanie' %}">
102 102 <p>
103 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 106 </select>
107   - <input type="button" value="+" title="Dodaj filtr"
  107 + <input type="button" value="+" title="{% trans 'Dodaj filtr' %}"
108 108 id="add-filter-button">
109 109 </p>
110 110 <table id="filter-table"></table>
111 111 </div>
112   - <div id="load-filter-dialog" title="Wybierz filtr">
  112 + <div id="load-filter-dialog" title="{% trans 'Wybierz filtr' %}">
113 113 <ul id="filter-list" class="load-dialog-list"></ul>
114 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 118 </button>
119 119 <table id="action-list" class="group-action-list">
120 120 </table>
121 121 </div>
122   - <div id="choose-homonym-dialog" title="Wybierz homonim">
  122 + <div id="choose-homonym-dialog" title="{% trans 'Wybierz homonim' %}">
123 123 <table id="homonym-list" class="choose-homonym-list">
124 124 <thead>
125 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 129 </tr>
130 130 </thead>
131 131 <tbody>
132 132 </tbody>
133 133 </table>
134 134 </div>
135   - <div id="prompter-dialog" title="Podpowiadacz wzorów">
  135 + <div id="prompter-dialog" title="{% trans 'Podpowiadacz wzorów' %}">
136 136 <div id="prompter-dialog-left">
137 137 <table id="prompter-list">
138 138 </table>
139 139 <ul id="prompter-checkboxes">
140 140 <li>
141 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 143 </li>
144 144 <li>
145 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 147 </li>
149 148 <li>
150 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 151 </li>
154 152 </ul>
155 153 </div>
156 154 <div id="prompter-table-preview">
157 155 </div>
158 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 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 163 </p>
164 164 <p>
165   - Wybór można będzie zmienić w Ustawieniach.
  165 + {% trans 'Wybór można będzie zmienić w Ustawieniach.' %}
166 166 </p>
167 167 <ul id="default-owner">
168 168 {% for vocab in editable_vocabularies %}
... ... @@ -173,23 +173,23 @@
173 173 {% endfor %}
174 174 </ul>
175 175 </div>
176   - <div id="more-actions-dialog" title="Inne działania">
  176 + <div id="more-actions-dialog" title="{% trans 'Inne działania' %}">
177 177 <p><button type="button" id="export-list-button">
178   - Eksport aktualnie filtrowanej listy
  178 + {% trans 'Eksport aktualnie filtrowanej listy' %}
179 179 </button></p>
180 180 <p><button type="button" id="reload-list-button">
181   - Przeładowanie listy
  181 + {% trans 'Przeładowanie listy' %}
182 182 </button></p>
183 183 <p><button type="button" id="clone-lexeme-button">
184   - Sklonowanie aktywnego leksemu
  184 + {% trans 'Sklonowanie aktywnego leksemu' %}
185 185 </button></p>
186 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 189 <ul id="auto-derivatives-list">
190 190 </ul>
191 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 193 <table id="search-by-form-table">
194 194 </table>
195 195 </div>
... ...
dictionary/templates/reader_view.html
... ... @@ -36,23 +36,23 @@
36 36 src="{% static 'js/reader-view.js' %}"></script>
37 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 41 {% block content %}
42 42 <div id="left">
43 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 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 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 52 </button>
53 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 56 </button>
57 57 </div>
58 58 <div id="lexeme-grid"></div>
... ... @@ -60,8 +60,8 @@
60 60 <div id="right">
61 61 <div class="tabs" id="lexeme-tabs">
62 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 65 </ul>
66 66 <div id="variant1"></div>
67 67 <div id="variant0"></div>
... ... @@ -70,21 +70,21 @@
70 70 {% endblock %}
71 71  
72 72 {% block modal_elements %}
73   - <div id="choose-columns-dialog" title="Wybierz kolumny">
  73 + <div id="choose-columns-dialog" title="{% trans 'Wybierz kolumny' %}">
74 74 <select id="column-list" multiple=multiple></select>
75 75 </div>
76   - <div id="choose-filter-dialog" title="Filtrowanie">
  76 + <div id="choose-filter-dialog" title="{% trans 'Filtrowanie' %}">
77 77 <p>
78 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 81 </select>
82   - <input type="button" value="+" title="Dodaj filtr"
  82 + <input type="button" value="+" title="{% trans 'Dodaj filtr' %}"
83 83 id="add-filter-button">
84 84 </p>
85 85 <table id="filter-table"></table>
86 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 88 <table id="search-by-form-table">
89 89 </table>
90 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 3 <ul id='sort-rule-list'>
3 4 {% for rule in sort_rules %}
4 5 <li id="{{ rule.code_name }}" class="ui-state-default">
5 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 13 {% if rule.code_name == "entry" %}
13 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 17 {% endif %}
17 18 </li>
18 19 {% endfor %}
19 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 24 </div>
... ...
dictionary/urls.py
... ... @@ -29,9 +29,6 @@ urlpatterns += patterns(
29 29 url(r'^ajax/table-preview/$', 'table_preview'),
30 30 url(r'^ajax/new-lip-row/$', 'new_lip_edit_row'),
31 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 32 url(r'^ajax/new-cr-row/$', 'new_cross_reference_row'),
36 33 url(r'^ajax/delete-lexeme/$', 'delete_lexeme'),
37 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 from django.contrib.auth.models import User, AnonymousUser
7 7 from django.core.urlresolvers import reverse
8 8 from django.http import HttpResponseRedirect, HttpResponse
  9 +from django.utils.translation import ugettext as _
9 10  
10 11 from common.decorators import render
11 12 from common.util import json_decode
... ... @@ -44,9 +45,9 @@ def lexeme_view(request):
44 45 vocabs = {}
45 46 for v in editable_vocabs:
46 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 51 for vocab in visible:
51 52 qualifiers = vocab.qualifiers.all()
52 53 if qualifiers:
... ... @@ -126,7 +127,8 @@ def lexeme_view(request):
126 127 'form_qualifier_options': form_qualifier_options,
127 128 'qualifier_options': qualifier_options,
128 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 132 'cr_type_options': cr_type_options,
131 133 'gender_options': [(g.id, g.symbol) for g in Gender.objects.all()],
132 134 'pattern_type_options': PatternType.options(),
... ... @@ -151,9 +153,9 @@ def lexeme_view(request):
151 153 def reader_view(request):
152 154 visible = visible_vocabularies(AnonymousUser())
153 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 159 for vocab in visible:
158 160 qualifiers = vocab.qualifiers.all()
159 161 if qualifiers:
... ... @@ -182,7 +184,7 @@ def reader_view(request):
182 184 for la in LexemeAttribute.objects.all():
183 185 attr = {'id': la.id, 'name': la.name, 'closed': la.closed}
184 186 if attr['closed']:
185   - attr['options'] = [(0, u'(puste)')] + [
  187 + attr['options'] = [(0, _(u'(puste)'))] + [
186 188 (v.id, v.value) for v in la.values.all()]
187 189 extra_attrs.append(attr)
188 190 js_vars = {
... ... @@ -204,7 +206,8 @@ def reader_view(request):
204 206 'form_qualifier_options': form_qualifier_options,
205 207 'qualifier_options': qualifier_options,
206 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 211 'cr_type_options': cr_type_options,
209 212 'gender_options': [(g.id, g.symbol) for g in Gender.objects.all()],
210 213 'pattern_type_options': PatternType.options(),
... ... @@ -317,4 +320,4 @@ def wsjp_table(request, entry):
317 320 data = make_data(entry)
318 321 result = '\n'.join(
319 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 323 \ No newline at end of file
  324 + return HttpResponse(result, content_type="text/plain; charset=utf-8")
... ...
export/forms.py
1 1 # -*- coding: utf-8 -*-
2 2 from django.forms import Form, ModelMultipleChoiceField, ModelChoiceField, \
3 3 BooleanField, CharField, Textarea
  4 +from django.utils.translation import ugettext_lazy as _
  5 +
4 6 from dictionary.forms import QualifierField
5 7 from dictionary.models import Vocabulary, Variant
6 8  
7 9  
8 10 class ExportForm(Form):
9 11 vocabs = ModelMultipleChoiceField(
10   - queryset=Vocabulary.objects.all(), label=u'słowniki')
  12 + queryset=Vocabulary.objects.all(), label=_(u'słowniki'))
11 13 antivocabs = ModelMultipleChoiceField(
12   - queryset=Vocabulary.objects.all(), label=u'antysłowniki',
  14 + queryset=Vocabulary.objects.all(), label=_(u'antysłowniki'),
13 15 required=False)
14 16 variant = ModelChoiceField(
15 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 21 copyright = CharField(widget=Textarea(attrs={'cols': 80, 'rows': 40}))
20 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 26 class MagicQualifierForm(Form):
25   - qualifier = QualifierField(label=u'kwal. leksemu')
26   - regex = CharField(label=u'wzorzec tagu', required=False)
27 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 21 msgid "kwalifikatorów"
3 22 msgstr "qualifiers"
4 23  
5   -# export.js:55
  24 +#: static/js/export.js:55
6 25 msgid "Wybierz nazwę"
7 26 msgstr "Enter name"
8 27  
9   -# export.js:65
  28 +#: static/js/export.js:65
10 29 msgid "Zapisanie ustawień"
11 30 msgstr "Settings save"
12 31  
13   -# export.js:70
  32 +#: static/js/export.js:70
14 33 msgid "Ta nazwa jest zajęta. Nadpisać?"
15 34 msgstr "This name is already used. Overwrite?"
16 35  
17   -# export.js:130
  36 +#: static/js/export.js:130
18 37 msgid "Usunąć eksport"
19 38 msgstr "Delete export settings"
20 39  
21   -# export.js:135
  40 +#: static/js/export.js:135
22 41 msgid "Usunięcie ustawień eksportu"
23 42 msgstr "Export settings deletion"
24 43  
25   -# export.js:160
  44 +#: static/js/export.js:160
26 45 msgid "Pobranie zapisanych eksportów"
27 46 msgstr "Export settings load"
28 47  
29   -# export.js:169
  48 +#: static/js/export.js:169
30 49 msgid "Wybierz słowniki"
31 50 msgstr "Choose dictionaries"
32 51  
33   -# export.js:170
  52 +#: static/js/export.js:170
34 53 msgid "# słowników"
35   -msgstr "# dictionaries"
36 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 1 {% extends "base.html" %}
2   -{% load url from future %}
3   -{% load staticfiles %}
  2 +{% load staticfiles i18n %}
4 3  
5 4 {% block extrahead %}
6 5 <script type="text/javascript" src="{% static 'js/export.js' %}"></script>
7 6 {% endblock %}
8 7  
9   -{% block title %}Definiowanie parametrów eksportu{% endblock %}
  8 +{% block title %}{% trans 'Definiowanie parametrów eksportu' %}{% endblock %}
10 9  
11 10 {% block content %}
12   - <h3>Definiowanie parametrów eksportu leksemów</h3>
  11 + <h3>{% trans 'Definiowanie parametrów eksportu leksemów' %}</h3>
13 12 <form method="get" action="" id="export-form">
14 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 15 <button type="button" id="add-magic-qualifier-row">
17 16 <span class="ui-icon ui-icon-plus"></span>
18 17 </button>
19 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 21 {#<button type="submit">Generuj eksport</button>#}
23 22 </form>
24 23 {% endblock %}
25 24  
26 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 27 <ul id="data-list" class="load-dialog-list">
29 28 </ul>
30 29 </div>
... ...
history/lexeme_history.py
1 1 # -*- coding: utf-8 -*-
2 2  
3 3 from django.core.exceptions import ObjectDoesNotExist
  4 +from django.utils.translation import ugettext_lazy as _
  5 +
4 6 from common.util import GroupDict
5 7 from dictionary.models import Lexeme, LexemeInflectionPattern, \
6 8 Pattern, InflectionCharacteristic, ClassificationValue, Qualifier, History, \
... ... @@ -8,24 +10,24 @@ from dictionary.models import Lexeme, LexemeInflectionPattern, \
8 10  
9 11 attribute_translation_list = [
10 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 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 33 attribute_translation = dict(
... ... @@ -33,31 +35,31 @@ attribute_translation = dict(
33 35 for table, column, label in attribute_translation_list)
34 36  
35 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 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 218 rows.append(
217 219 (attr, (', '.join(before) or None, ', '.join(after) or None)))
218 220 for before_after in qualifiers:
219   - rows.append((u'kwalifikator', before_after))
  221 + rows.append((_(u'kwalifikator'), before_after))
220 222 for name, (before, after) in classifications.iteritems():
221   - attr = u'klasyfikacja: %s' % name
  223 + attr = _(u'klasyfikacja: %s') % name
222 224 rows.append(
223 225 (attr, (', '.join(before) or None, ', '.join(after) or None)))
224 226 for before_after in vocabs:
225   - rows.append((u'słownik', before_after))
  227 + rows.append((_(u'słownik'), before_after))
226 228 for cr_data in crs.itervalues():
227   - attr = u'odsyłacz'
  229 + attr = _(u'odsyłacz')
228 230 before_after = []
229 231 for i in (0, 1):
230 232 try:
... ... @@ -247,7 +249,7 @@ def transaction_table(transaction_data):
247 249 lip_dict.add(lip_id, (attr, lip_data[attr]))
248 250 for q_data in lip_qualifiers.itervalues():
249 251 if q_data: # stare DELETE...
250   - attr = u'kwalifikator'
  252 + attr = _(u'kwalifikator')
251 253 lip_data = q_data['lexemeinflectionpattern_id']
252 254 lip_id = int(lip_data[0] or lip_data[1])
253 255 lip_dict.add(lip_id, (attr, q_data['qualifier_id']))
... ... @@ -268,7 +270,7 @@ def transaction_table(transaction_data):
268 270 header = lip_header(gender, pattern)
269 271 except ObjectDoesNotExist: # stare DELETE...
270 272 header = ''
271   - header += u'(usunięta)'
  273 + header += _(u'(usunięta)')
272 274 lip_tables.append((header, lip_data))
273 275 return rows, lip_tables
274 276  
... ... @@ -283,16 +285,16 @@ def deleted_lexeme_table(lexeme):
283 285 column, get_lexeme_attr(column, lexeme)), None)
284 286 ))
285 287 for q in lexeme.qualifiers.all():
286   - rows.append((u'kwalifikator', (q.label, None)))
  288 + rows.append((_(u'kwalifikator'), (q.label, None)))
287 289 for classification in lexeme.owner_vocabulary.classifications.all():
288   - attr = u'klasyfikacja: %s' % classification.name
  290 + attr = _(u'klasyfikacja: %s') % classification.name
289 291 cvs = lexeme.classification_values(classification)
290 292 for cv in cvs:
291 293 rows.append((attr, (cv.label, None)))
292 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 296 for cr in lexeme.refs_to.all():
295   - attr = u'odsyłacz'
  297 + attr = _(u'odsyłacz')
296 298 rows.append((attr, (
297 299 ' '.join([
298 300 cr.type.symbol, cr.to_lexeme.entry,
... ... @@ -308,7 +310,7 @@ def deleted_lexeme_table(lexeme):
308 310 if table == 'odmieniasie' and column != 'charfl':
309 311 lip_data.append((attr, (get_lip_attr(column, lip), None)))
310 312 for q in lip.qualifiers.all():
311   - attr = u'kwalifikator'
  313 + attr = _(u'kwalifikator')
312 314 lip_data.append((attr, (q.label, None)))
313 315 header = lip_header(lip.gender, lip.pattern)
314 316 lip_tables.append((header, lip_data))
... ... @@ -320,7 +322,7 @@ def lexeme_table(transaction_data, last_tb):
320 322 try:
321 323 lexeme = transaction_data[0].lexeme
322 324 except Lexeme.DoesNotExist:
323   - lexeme = u'(usunięty)' # aktualnie niemożliwe
  325 + lexeme = _(u'(usunięty)') # aktualnie niemożliwe
324 326 return {
325 327 'rows': rows,
326 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"
... ...