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