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