Browse Source

Merge pull request #1 from rafalp/develop

Develop
l0ud 12 years ago
parent
commit
aea20829d7

+ 4 - 0
misago/apps/threadtype/posting/forms.py

@@ -16,6 +16,10 @@ class PostingForm(FloodProtectionMixin, Form, ValidatePostLengthMixin):
     def __init__(self, data=None, file=None, request=None, forum=None, thread=None, *args, **kwargs):
     def __init__(self, data=None, file=None, request=None, forum=None, thread=None, *args, **kwargs):
         self.forum = forum
         self.forum = forum
         self.thread = thread
         self.thread = thread
+        if data and thread:
+            data = data.copy()
+            if not 'thread_weight' in data:
+                data['thread_weight'] = thread.weight
         super(PostingForm, self).__init__(data, file, request=request, *args, **kwargs)
         super(PostingForm, self).__init__(data, file, request=request, *args, **kwargs)
 
 
     def finalize_form(self):
     def finalize_form(self):

+ 44 - 38
misago/crawlers.py

@@ -1,39 +1,45 @@
-CRAWLERS_NAMES = {
-    'bing': 'Bingbot',
-    'google': 'Googlebot',
-    'yahoo': 'Yahoo! Slurp',
-    'yahooch': 'Yahoo! Slurp China',
-}
-
-CRAWLERS_AGENTS = {
-    'bingbot/': 'bing',
-    'Googlebot/': 'google',
-    'Yahoo! Slurp China': 'yahooch',
-    'Yahoo! Slurp': 'yahoo',
-}
-
-CRAWLERS_HOSTS = {
-}
-
-
-class Crawler(object):
-    crawler = False
-    host = None
-    username = None
-    
-    def __init__(self, agent = None, ip = None):
-        if agent is not None:
-            for item in CRAWLERS_AGENTS.keys():
-            	if agent.find(item) != -1:
-                    self.crawler = True
-                    self.username = CRAWLERS_AGENTS[item]
-                    
-        if ip is not None:
-            for item in CRAWLERS_HOSTS.keys():
-            	if ip == item:
-                    self.crawler = True
-                    self.username = CRAWLERS_HOSTS[item]
-                    
-        if self.crawler:
-            self.username = CRAWLERS_NAMES[self.username]
+CRAWLERS_NAMES = {
+    'bing': 'Bingbot',
+    'google': 'Googlebot',
+    'yahoo': 'Yahoo! Slurp',
+    'yahooch': 'Yahoo! Slurp China',
+    'unidentified': 'Unidentified',
+}
+
+CRAWLERS_AGENTS = {
+    'bingbot/': 'bing',
+    'Googlebot/': 'google',
+    'Yahoo! Slurp China': 'yahooch',
+    'Yahoo! Slurp': 'yahoo',
+    'bot': 'unidentified',
+    'Bot': 'unidentified',
+    'BOT': 'unidentified',
+}
+
+CRAWLERS_HOSTS = {
+}
+
+
+class Crawler(object):
+    crawler = False
+    host = None
+    username = None
+
+    def __init__(self, agent = None, ip = None):
+        if agent is not None:
+            for item in CRAWLERS_AGENTS.keys():
+            	if agent.find(item) != -1:
+                    self.crawler = True
+                    self.username = CRAWLERS_AGENTS[item]
+                    break
+
+        if ip is not None:
+            for item in CRAWLERS_HOSTS.keys():
+            	if ip == item:
+                    self.crawler = True
+                    self.username = CRAWLERS_HOSTS[item]
+                    break
+
+        if self.crawler:
+            self.username = CRAWLERS_NAMES[self.username]
             self.host = ip
             self.host = ip

BIN
misago/locale/pl/LC_MESSAGES/django.mo


+ 1536 - 1438
misago/locale/pl/LC_MESSAGES/django.po

@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 msgstr ""
 "Project-Id-Version: Misago PL\n"
 "Project-Id-Version: Misago PL\n"
 "Report-Msgid-Bugs-To: \n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-07-04 10:23+0000\n"
-"PO-Revision-Date: 2013-07-04 12:33+0100\n"
+"POT-Creation-Date: 2013-08-04 16:49+0000\n"
+"PO-Revision-Date: 2013-08-04 18:50+0100\n"
 "Last-Translator: l0ud <loudpl@gmail.com>\n"
 "Last-Translator: l0ud <loudpl@gmail.com>\n"
 "Language-Team: FxDev <loudpl@gmail.com>\n"
 "Language-Team: FxDev <loudpl@gmail.com>\n"
 "Language: PL\n"
 "Language: PL\n"
@@ -76,7 +76,7 @@ msgstr "Twoje konto nie ma uprawnień administratora"
 msgid "One or more search phrases are shorter than four characters."
 msgid "One or more search phrases are shorter than four characters."
 msgstr "Przynajmniej jedna z wyszukiwanych fraz jest krótsza niż cztery znaki."
 msgstr "Przynajmniej jedna z wyszukiwanych fraz jest krótsza niż cztery znaki."
 
 
-#: search.py:54 apps/admin/settings/views.py:107
+#: search.py:54 apps/admin/settings/views.py:108
 msgid "Search query is invalid."
 msgid "Search query is invalid."
 msgstr "Wyszukiwane hasło jest nieprawidłowe."
 msgstr "Wyszukiwane hasło jest nieprawidłowe."
 
 
@@ -157,86 +157,51 @@ msgstr "Misago ACL"
 msgid "Misago User ACL"
 msgid "Misago User ACL"
 msgstr "ACL Użytkownika"
 msgstr "ACL Użytkownika"
 
 
-#: acl/permissions/forums.py:11 apps/admin/roles/views.py:39
-msgid "Forums Permissions"
-msgstr "Uprawnienia do forów"
-
-#: acl/permissions/forums.py:13
+#: acl/permissions/forums.py:8
 msgid "Can see forum"
 msgid "Can see forum"
 msgstr "Może zobaczyć forum"
 msgstr "Może zobaczyć forum"
 
 
-#: acl/permissions/forums.py:14
+#: acl/permissions/forums.py:10
 msgid "Can see forum contents"
 msgid "Can see forum contents"
 msgstr "Ma dostęp do zawartości forum"
 msgstr "Ma dostęp do zawartości forum"
 
 
-#: acl/permissions/forums.py:41
+#: acl/permissions/forums.py:13 apps/admin/roles/views.py:40
+msgid "Forums Permissions"
+msgstr "Uprawnienia do forów"
+
+#: acl/permissions/forums.py:40
 msgid "You don't have permission to browse this forum."
 msgid "You don't have permission to browse this forum."
 msgstr "Nie masz wystarczających uprawnień, aby przeglądać to forum."
 msgstr "Nie masz wystarczających uprawnień, aby przeglądać to forum."
 
 
-#: acl/permissions/privatethreads.py:18 acl/permissions/reports.py:14
-#: acl/permissions/threads.py:11 acl/permissions/threads.py:16
-#: acl/permissions/threads.py:23 acl/permissions/threads.py:32
-#: acl/permissions/threads.py:49 acl/permissions/threads.py:58
-#: acl/permissions/threads.py:63 acl/permissions/threads.py:68
-#: acl/permissions/threads.py:74
-msgid "No"
-msgstr "Nie"
-
-#: acl/permissions/privatethreads.py:19 acl/permissions/reports.py:15
-#: acl/permissions/threads.py:59 acl/permissions/threads.py:64
-#: acl/permissions/threads.py:69 acl/permissions/threads.py:75
-msgid "Yes, soft-delete"
-msgstr "Tak, z możliwością przywrócenia"
-
-#: acl/permissions/privatethreads.py:20 acl/permissions/reports.py:16
-#: acl/permissions/threads.py:60 acl/permissions/threads.py:65
-#: acl/permissions/threads.py:70 acl/permissions/threads.py:76
-msgid "Yes, hard-delete"
-msgstr "Tak, z możliwością kompletnego usunięcia"
-
-#: acl/permissions/privatethreads.py:24 fixtures/privatethreadssettings.py:14
-#: models/forummodel.py:214 templates/cranefly/layout.html:31
-#: templates/cranefly/layout.html.py:100
-#: templates/cranefly/private_threads/changelog.html:7
-#: templates/cranefly/private_threads/changelog_diff.html:7
-#: templates/cranefly/private_threads/details.html:7
-#: templates/cranefly/private_threads/list.html:8
-#: templates/cranefly/private_threads/list.html:18
-#: templates/cranefly/private_threads/posting.html:13
-#: templates/cranefly/private_threads/posting.html:25
-#: templates/cranefly/private_threads/thread.html:9
-msgid "Private Threads"
-msgstr "Twoje prywatne dyskusje"
-
-#: acl/permissions/privatethreads.py:26
+#: acl/permissions/privatethreads.py:10
 msgid "Can participate in private threads"
 msgid "Can participate in private threads"
 msgstr "Może uczestniczyć w prywatnych dyskusjach"
 msgstr "Może uczestniczyć w prywatnych dyskusjach"
 
 
-#: acl/permissions/privatethreads.py:27
+#: acl/permissions/privatethreads.py:12
 msgid "Can start private threads"
 msgid "Can start private threads"
 msgstr "Może rozpoczynać prywatne dyskusje"
 msgstr "Może rozpoczynać prywatne dyskusje"
 
 
-#: acl/permissions/privatethreads.py:28
+#: acl/permissions/privatethreads.py:14
 msgid "Can upload files in attachments"
 msgid "Can upload files in attachments"
 msgstr "Może umieszczać pliki w załącznikach"
 msgstr "Może umieszczać pliki w załącznikach"
 
 
-#: acl/permissions/privatethreads.py:29
+#: acl/permissions/privatethreads.py:16
 msgid "Max. size of single attachment (in KB)"
 msgid "Max. size of single attachment (in KB)"
 msgstr "Maksymalny rozmiar pojedynczego załacznika (w KB)"
 msgstr "Maksymalny rozmiar pojedynczego załacznika (w KB)"
 
 
-#: acl/permissions/privatethreads.py:30
+#: acl/permissions/privatethreads.py:18
 msgid "Max. number of attachments per post"
 msgid "Max. number of attachments per post"
 msgstr "Maksymalna liczba załączników w poście"
 msgstr "Maksymalna liczba załączników w poście"
 
 
-#: acl/permissions/privatethreads.py:31
+#: acl/permissions/privatethreads.py:20
 msgid "Can invite users that ignore him"
 msgid "Can invite users that ignore him"
 msgstr "Może zapraszać do prywatnych dyskusji użytkowników, którzy go ignorują"
 msgstr "Może zapraszać do prywatnych dyskusji użytkowników, którzy go ignorują"
 
 
-#: acl/permissions/privatethreads.py:32
+#: acl/permissions/privatethreads.py:22
 msgid "Can moderate threads"
 msgid "Can moderate threads"
 msgstr "Może moderować tematy"
 msgstr "Może moderować tematy"
 
 
-#: acl/permissions/privatethreads.py:32
+#: acl/permissions/privatethreads.py:23
 msgid ""
 msgid ""
 "Makes user with this role Private Threads moderator capable of closing, "
 "Makes user with this role Private Threads moderator capable of closing, "
 "deleting and editing all private threads he participates in at will."
 "deleting and editing all private threads he participates in at will."
@@ -244,47 +209,78 @@ msgstr ""
 "Czyni użytkownika moderatorem prywatnych dyskusji. Moderator może zamykać, "
 "Czyni użytkownika moderatorem prywatnych dyskusji. Moderator może zamykać, "
 "modyfikować i edytować wszystkie prywatne dyskusje, w których uczestniczy."
 "modyfikować i edytować wszystkie prywatne dyskusje, w których uczestniczy."
 
 
-#: acl/permissions/privatethreads.py:33 acl/permissions/threads.py:139
+#: acl/permissions/privatethreads.py:25 acl/permissions/threads.py:107
 msgid "Can delete checkpoints"
 msgid "Can delete checkpoints"
 msgstr "Może usuwać etykiety zdarzeń"
 msgstr "Może usuwać etykiety zdarzeń"
 
 
-#: acl/permissions/reports.py:20
-msgid "Reporting Content"
-msgstr "Zgłaszanie treści do moderacji"
+#: acl/permissions/privatethreads.py:27 acl/permissions/reports.py:18
+#: acl/permissions/threads.py:12 acl/permissions/threads.py:18
+#: acl/permissions/threads.py:28 acl/permissions/threads.py:42
+#: acl/permissions/threads.py:74 acl/permissions/threads.py:89
+#: acl/permissions/threads.py:95 acl/permissions/threads.py:101
+#: acl/permissions/threads.py:109
+msgid "No"
+msgstr "Nie"
 
 
-#: acl/permissions/reports.py:22
+#: acl/permissions/privatethreads.py:28 acl/permissions/reports.py:19
+#: acl/permissions/threads.py:90 acl/permissions/threads.py:96
+#: acl/permissions/threads.py:102 acl/permissions/threads.py:110
+msgid "Yes, soft-delete"
+msgstr "Tak, z możliwością przywrócenia"
+
+#: acl/permissions/privatethreads.py:29 acl/permissions/reports.py:20
+#: acl/permissions/threads.py:91 acl/permissions/threads.py:97
+#: acl/permissions/threads.py:103 acl/permissions/threads.py:111
+msgid "Yes, hard-delete"
+msgstr "Tak, z możliwością kompletnego usunięcia"
+
+#: acl/permissions/privatethreads.py:33 fixtures/privatethreadssettings.py:14
+#: models/forummodel.py:215 templates/cranefly/layout.html:31
+#: templates/cranefly/layout.html.py:100
+#: templates/cranefly/private_threads/changelog.html:7
+#: templates/cranefly/private_threads/changelog_diff.html:7
+#: templates/cranefly/private_threads/details.html:7
+#: templates/cranefly/private_threads/list.html:8
+#: templates/cranefly/private_threads/list.html:18
+#: templates/cranefly/private_threads/posting.html:13
+#: templates/cranefly/private_threads/posting.html:25
+#: templates/cranefly/private_threads/thread.html:9
+msgid "Private Threads"
+msgstr "Twoje prywatne dyskusje"
+
+#: acl/permissions/reports.py:10
 msgid "Can report content"
 msgid "Can report content"
 msgstr "Może zgłaszać treści do moderacji"
 msgstr "Może zgłaszać treści do moderacji"
 
 
-#: acl/permissions/reports.py:23
+#: acl/permissions/reports.py:12
 msgid "Can handle reports"
 msgid "Can handle reports"
 msgstr "Może obsługiwać zgłoszone do moderacji posty"
 msgstr "Może obsługiwać zgłoszone do moderacji posty"
 
 
-#: acl/permissions/reports.py:24
+#: acl/permissions/reports.py:14
 msgid "Can moderate reports discussions"
 msgid "Can moderate reports discussions"
 msgstr "Może moderować dyskusje o zgłoszonych postach"
 msgstr "Może moderować dyskusje o zgłoszonych postach"
 
 
-#: acl/permissions/reports.py:25
+#: acl/permissions/reports.py:16
 msgid "Can delete reports"
 msgid "Can delete reports"
 msgstr "Może usuwać zgłoszenia postów"
 msgstr "Może usuwać zgłoszenia postów"
 
 
-#: acl/permissions/reports.py:36
+#: acl/permissions/reports.py:24
+msgid "Reporting Content"
+msgstr "Zgłaszanie treści do moderacji"
+
+#: acl/permissions/reports.py:35
 msgid "You don't have permission to report posts."
 msgid "You don't have permission to report posts."
 msgstr "Nie masz uprawnień do zgłaszania postów do moderacji."
 msgstr "Nie masz uprawnień do zgłaszania postów do moderacji."
 
 
-#: acl/permissions/search.py:9
-msgid "Searching"
-msgstr "Wyszukiwanie"
-
-#: acl/permissions/search.py:11
+#: acl/permissions/search.py:7
 msgid "Can search community"
 msgid "Can search community"
 msgstr "Może przeszukiwać forum"
 msgstr "Może przeszukiwać forum"
 
 
-#: acl/permissions/search.py:12
+#: acl/permissions/search.py:9
 msgid "Minimum delay between searches"
 msgid "Minimum delay between searches"
 msgstr "Minimalny odstęp czasowy pomiędzy wyszukiwaniami"
 msgstr "Minimalny odstęp czasowy pomiędzy wyszukiwaniami"
 
 
-#: acl/permissions/search.py:12
+#: acl/permissions/search.py:10
 msgid ""
 msgid ""
 "Forum search can be resources intensive operation, and so its usually good "
 "Forum search can be resources intensive operation, and so its usually good "
 "idea to limit frequency of searches by requiring members to wait certain "
 "idea to limit frequency of searches by requiring members to wait certain "
@@ -296,15 +292,15 @@ msgstr ""
 "sekund, które musi poczekać użytkownik pomiędzy kolejnymi wyszukiwaniami. "
 "sekund, które musi poczekać użytkownik pomiędzy kolejnymi wyszukiwaniami. "
 "Wprowadź 0, aby wyłączyć to ograniczenie."
 "Wprowadź 0, aby wyłączyć to ograniczenie."
 
 
-#: acl/permissions/special.py:10
-msgid "Special Access"
-msgstr "Specjalny dostęp"
+#: acl/permissions/search.py:14
+msgid "Searching"
+msgstr "Wyszukiwanie"
 
 
-#: acl/permissions/special.py:12
+#: acl/permissions/special.py:8
 msgid "Can use Moderator Control Panel"
 msgid "Can use Moderator Control Panel"
 msgstr "Może używać panelu moderatora (MCP)"
 msgstr "Może używać panelu moderatora (MCP)"
 
 
-#: acl/permissions/special.py:12
+#: acl/permissions/special.py:9
 msgid ""
 msgid ""
 "Change this permission to yes to grant access to Mod CP for users with this "
 "Change this permission to yes to grant access to Mod CP for users with this "
 "role."
 "role."
@@ -312,217 +308,221 @@ msgstr ""
 "Ustawienie tej opcji na Tak, umożliwia użytkownikom z daną rolą dostęp do "
 "Ustawienie tej opcji na Tak, umożliwia użytkownikom z daną rolą dostęp do "
 "panelu moderatora (Mod CP)."
 "panelu moderatora (Mod CP)."
 
 
-#: acl/permissions/special.py:13
+#: acl/permissions/special.py:11
 msgid "Can use Admin Control Panel"
 msgid "Can use Admin Control Panel"
 msgstr "Ma dostęp do panelu administratora (ACP)"
 msgstr "Ma dostęp do panelu administratora (ACP)"
 
 
-#: acl/permissions/special.py:13
+#: acl/permissions/special.py:12
 msgid ""
 msgid ""
 "Change this permission to yes to grant admin access for users with this role."
 "Change this permission to yes to grant admin access for users with this role."
 msgstr ""
 msgstr ""
 "Ustawienie tej opcji na Tak, mianuje użytkowników z daną rolą "
 "Ustawienie tej opcji na Tak, mianuje użytkowników z daną rolą "
 "administratorami tego forum."
 "administratorami tego forum."
 
 
-#: acl/permissions/threads.py:12
+#: acl/permissions/special.py:16
+msgid "Special Access"
+msgstr "Specjalny dostęp"
+
+#: acl/permissions/threads.py:10
+msgid "Can read threads"
+msgstr "Może czytać tematy"
+
+#: acl/permissions/threads.py:13
 msgid "Yes, owned"
 msgid "Yes, owned"
 msgstr "Tak, własne"
 msgstr "Tak, własne"
 
 
-#: acl/permissions/threads.py:13
+#: acl/permissions/threads.py:14
 msgid "Yes, all"
 msgid "Yes, all"
 msgstr "Tak, wszystkie"
 msgstr "Tak, wszystkie"
 
 
-#: acl/permissions/threads.py:17 acl/permissions/threads.py:24
+#: acl/permissions/threads.py:16
+msgid "Can start new threads"
+msgstr "Może otwierać nowe tematy"
+
+#: acl/permissions/threads.py:19 acl/permissions/threads.py:29
 msgid "Yes, with moderation"
 msgid "Yes, with moderation"
 msgstr "Tak, z wymogiem akceptacji przez moderatora"
 msgstr "Tak, z wymogiem akceptacji przez moderatora"
 
 
-#: acl/permissions/threads.py:18 acl/permissions/threads.py:25
+#: acl/permissions/threads.py:20 acl/permissions/threads.py:30
 msgid "Yes"
 msgid "Yes"
 msgstr "Tak"
 msgstr "Tak"
 
 
-#: acl/permissions/threads.py:33
-msgid "Yes, final score"
-msgstr "Tak, tylko końcowy wynik"
-
-#: acl/permissions/threads.py:34
-msgid "Yes, both up and down-votes"
-msgstr "Tak, zarówno głosy w dół i w górę"
-
-#: acl/permissions/threads.py:50
-msgid "Yes, to stickies"
-msgstr "Tak, dla przyklejonych tematów"
-
-#: acl/permissions/threads.py:51
-msgid "Yes, to announcements"
-msgstr "Tak, dla ogłoszeń"
-
-#: acl/permissions/threads.py:81 apps/profiles/threads/profile.py:4
-#: fixtures/threadssettings.py:15 templates/admin/index.html:49
-#: templates/cranefly/category.html:83 templates/cranefly/index.html:75
-#: templates/cranefly/index.html.py:143
-#: templates/cranefly/threads/list.html:89
-msgid "Threads"
-msgstr "Tematy"
-
-#: acl/permissions/threads.py:83
-msgid "Can read threads"
-msgstr "Może czytać tematy"
-
-#: acl/permissions/threads.py:84
-msgid "Can start new threads"
-msgstr "Może otwierać nowe tematy"
-
-#: acl/permissions/threads.py:85
+#: acl/permissions/threads.py:22
 msgid "Can edit own threads"
 msgid "Can edit own threads"
 msgstr "Może modyfikować swoje tematy"
 msgstr "Może modyfikować swoje tematy"
 
 
-#: acl/permissions/threads.py:86
+#: acl/permissions/threads.py:24
 msgid "Can soft-delete own threads"
 msgid "Can soft-delete own threads"
 msgstr "Może usuwać swoje tematy (nie na trwałe)"
 msgstr "Może usuwać swoje tematy (nie na trwałe)"
 
 
-#: acl/permissions/threads.py:90 apps/profiles/posts/profile.py:4
-#: fixtures/threadssettings.py:88 templates/admin/index.html:45
-#: templates/cranefly/category.html:82 templates/cranefly/index.html:74
-#: templates/cranefly/index.html.py:140
-#: templates/cranefly/threads/list.html:88
-msgid "Posts"
-msgstr "Posty"
-
-#: acl/permissions/threads.py:92
+#: acl/permissions/threads.py:26
 msgid "Can write posts"
 msgid "Can write posts"
 msgstr "Może publikować posty"
 msgstr "Może publikować posty"
 
 
-#: acl/permissions/threads.py:93
+#: acl/permissions/threads.py:32
 msgid "Can edit own posts"
 msgid "Can edit own posts"
 msgstr "Może edytować swoje posty"
 msgstr "Może edytować swoje posty"
 
 
-#: acl/permissions/threads.py:94
+#: acl/permissions/threads.py:34
 msgid "Can soft-delete own posts"
 msgid "Can soft-delete own posts"
 msgstr "Może usuwać swoje posty (nie na trwałe)"
 msgstr "Może usuwać swoje posty (nie na trwałe)"
 
 
-#: acl/permissions/threads.py:98
-msgid "Karma"
-msgstr "Ocenianie postów"
-
-#: acl/permissions/threads.py:100
+#: acl/permissions/threads.py:36
 msgid "Can upvote posts"
 msgid "Can upvote posts"
 msgstr "Może głosować za"
 msgstr "Może głosować za"
 
 
-#: acl/permissions/threads.py:101
+#: acl/permissions/threads.py:38
 msgid "Can downvote posts"
 msgid "Can downvote posts"
 msgstr "Może głosować przeciw"
 msgstr "Może głosować przeciw"
 
 
-#: acl/permissions/threads.py:102
+#: acl/permissions/threads.py:40
 msgid "Can see post score"
 msgid "Can see post score"
 msgstr "Może zobaczyć ocenę posta"
 msgstr "Może zobaczyć ocenę posta"
 
 
-#: acl/permissions/threads.py:103
+#: acl/permissions/threads.py:43
+msgid "Yes, final score"
+msgstr "Tak, tylko końcowy wynik"
+
+#: acl/permissions/threads.py:44
+msgid "Yes, both up and down-votes"
+msgstr "Tak, zarówno głosy w dół i w górę"
+
+#: acl/permissions/threads.py:46
 msgid "Can see who voted on post"
 msgid "Can see who voted on post"
 msgstr "Może zobaczyć, kto głosował na dany post"
 msgstr "Może zobaczyć, kto głosował na dany post"
 
 
-#: acl/permissions/threads.py:107
-msgid "Polls"
-msgstr "Ankiety"
-
-#: acl/permissions/threads.py:109
+#: acl/permissions/threads.py:48
 msgid "Can make polls"
 msgid "Can make polls"
 msgstr "Może tworzyć ankiety"
 msgstr "Może tworzyć ankiety"
 
 
-#: acl/permissions/threads.py:110
+#: acl/permissions/threads.py:50
 msgid "Can vote in polls"
 msgid "Can vote in polls"
 msgstr "Może głosować w ankietach"
 msgstr "Może głosować w ankietach"
 
 
-#: acl/permissions/threads.py:111
+#: acl/permissions/threads.py:52
 msgid "Can see who voted in poll"
 msgid "Can see who voted in poll"
 msgstr "Może zobaczyć kto głosował w ankiecie"
 msgstr "Może zobaczyć kto głosował w ankiecie"
 
 
-#: acl/permissions/threads.py:115 apps/admin/sections/forums.py:76
-msgid "Attachments"
-msgstr "Załączniki"
-
-#: acl/permissions/threads.py:117
+#: acl/permissions/threads.py:54
 msgid "Can see attachments"
 msgid "Can see attachments"
 msgstr "Może zobaczyć załączniki"
 msgstr "Może zobaczyć załączniki"
 
 
-#: acl/permissions/threads.py:118
+#: acl/permissions/threads.py:56
 msgid "Can upload attachments"
 msgid "Can upload attachments"
 msgstr "Może umieszczać załaczniki"
 msgstr "Może umieszczać załaczniki"
 
 
-#: acl/permissions/threads.py:119
+#: acl/permissions/threads.py:58
 msgid "Can download attachments"
 msgid "Can download attachments"
 msgstr "Może pobierać załączniki"
 msgstr "Może pobierać załączniki"
 
 
-#: acl/permissions/threads.py:120
+#: acl/permissions/threads.py:60
 msgid "Max size of single attachment (in Kb)"
 msgid "Max size of single attachment (in Kb)"
 msgstr "Maksymalny rozmiar pojedynczego załacznika (w KB)"
 msgstr "Maksymalny rozmiar pojedynczego załacznika (w KB)"
 
 
-#: acl/permissions/threads.py:120 acl/permissions/threads.py:121
+#: acl/permissions/threads.py:61 acl/permissions/threads.py:64
 msgid "Enter zero for no limit."
 msgid "Enter zero for no limit."
 msgstr "Wpisz 0, aby wyłączyć limit."
 msgstr "Wpisz 0, aby wyłączyć limit."
 
 
-#: acl/permissions/threads.py:121
+#: acl/permissions/threads.py:63
 msgid "Max number of attachments per post"
 msgid "Max number of attachments per post"
 msgstr "Maksymalna liczba załączników na post."
 msgstr "Maksymalna liczba załączników na post."
 
 
-#: acl/permissions/threads.py:125
-msgid "Moderation"
-msgstr "Moderacja"
-
-#: acl/permissions/threads.py:127
+#: acl/permissions/threads.py:66
 msgid "Can accept threads and posts"
 msgid "Can accept threads and posts"
 msgstr "Może zatwierdzać tematy i posty"
 msgstr "Może zatwierdzać tematy i posty"
 
 
-#: acl/permissions/threads.py:128
+#: acl/permissions/threads.py:68
 msgid "Can edit thread labels"
 msgid "Can edit thread labels"
 msgstr "Może modyfikować etykiety tematów"
 msgstr "Może modyfikować etykiety tematów"
 
 
-#: acl/permissions/threads.py:129
+#: acl/permissions/threads.py:70
 msgid "Can see edits history"
 msgid "Can see edits history"
 msgstr "Może zobaczyć historię edycji"
 msgstr "Może zobaczyć historię edycji"
 
 
-#: acl/permissions/threads.py:130
+#: acl/permissions/threads.py:72
 msgid "Can change threads weight"
 msgid "Can change threads weight"
 msgstr "Może przekształcać tematy (w ogłoszenie, w przypięty i zwykły temat)"
 msgstr "Może przekształcać tematy (w ogłoszenie, w przypięty i zwykły temat)"
 
 
-#: acl/permissions/threads.py:131
+#: acl/permissions/threads.py:75
+msgid "Yes, to stickies"
+msgstr "Tak, dla przyklejonych tematów"
+
+#: acl/permissions/threads.py:76
+msgid "Yes, to announcements"
+msgstr "Tak, dla ogłoszeń"
+
+#: acl/permissions/threads.py:78
 msgid "Can edit threads and posts"
 msgid "Can edit threads and posts"
 msgstr "Może modyfikować tematy i posty"
 msgstr "Może modyfikować tematy i posty"
 
 
-#: acl/permissions/threads.py:132
+#: acl/permissions/threads.py:80
 msgid "Can move, merge and split threads and posts"
 msgid "Can move, merge and split threads and posts"
 msgstr "Może przenosić, łączyć i rozdzielać tematy i posty"
 msgstr "Może przenosić, łączyć i rozdzielać tematy i posty"
 
 
-#: acl/permissions/threads.py:133
+#: acl/permissions/threads.py:82
 msgid "Can close threads"
 msgid "Can close threads"
 msgstr "Może zamykać tematy"
 msgstr "Może zamykać tematy"
 
 
-#: acl/permissions/threads.py:134
+#: acl/permissions/threads.py:84
 msgid "Can protect posts"
 msgid "Can protect posts"
 msgstr "Może zabezpieczać posty"
 msgstr "Może zabezpieczać posty"
 
 
-#: acl/permissions/threads.py:134
+#: acl/permissions/threads.py:85
 msgid "Protected posts cannot be changed by their owners."
 msgid "Protected posts cannot be changed by their owners."
 msgstr "Zabezpieczone posty nie mogą być zmodyfikowane przez ich właścicieli."
 msgstr "Zabezpieczone posty nie mogą być zmodyfikowane przez ich właścicieli."
 
 
-#: acl/permissions/threads.py:135
+#: acl/permissions/threads.py:87
 msgid "Can delete threads"
 msgid "Can delete threads"
 msgstr "Może usuwać tematy"
 msgstr "Może usuwać tematy"
 
 
-#: acl/permissions/threads.py:136
+#: acl/permissions/threads.py:93
 msgid "Can delete posts"
 msgid "Can delete posts"
 msgstr "Może usuwać posty"
 msgstr "Może usuwać posty"
 
 
-#: acl/permissions/threads.py:137
+#: acl/permissions/threads.py:99
 msgid "Can delete polls"
 msgid "Can delete polls"
 msgstr "Może usuwać ankiety"
 msgstr "Może usuwać ankiety"
 
 
-#: acl/permissions/threads.py:138
+#: acl/permissions/threads.py:105
 msgid "Can delete attachments"
 msgid "Can delete attachments"
 msgstr "Może usuwać załączniki"
 msgstr "Może usuwać załączniki"
 
 
-#: acl/permissions/threads.py:140
+#: acl/permissions/threads.py:113
 msgid "Can see deleted checkpoints"
 msgid "Can see deleted checkpoints"
 msgstr "Może zobaczyć usunięte etykiety zdarzeń"
 msgstr "Może zobaczyć usunięte etykiety zdarzeń"
 
 
+#: acl/permissions/threads.py:117 apps/profiles/threads/profile.py:4
+#: fixtures/threadssettings.py:15 templates/admin/index.html:49
+#: templates/cranefly/category.html:83 templates/cranefly/index.html:75
+#: templates/cranefly/index.html.py:151
+#: templates/cranefly/threads/list.html:89
+msgid "Threads"
+msgstr "Tematy"
+
+#: acl/permissions/threads.py:121 apps/profiles/posts/profile.py:4
+#: fixtures/threadssettings.py:96 templates/admin/index.html:45
+#: templates/cranefly/category.html:82 templates/cranefly/index.html:74
+#: templates/cranefly/index.html.py:148
+#: templates/cranefly/threads/list.html:88
+msgid "Posts"
+msgstr "Posty"
+
+#: acl/permissions/threads.py:125
+msgid "Karma"
+msgstr "Ocenianie postów"
+
+#: acl/permissions/threads.py:129
+msgid "Polls"
+msgstr "Ankiety"
+
+#: acl/permissions/threads.py:133 apps/admin/sections/forums.py:76
+msgid "Attachments"
+msgstr "Załączniki"
+
+#: acl/permissions/threads.py:138
+msgid "Moderation"
+msgstr "Moderacja"
+
 #: acl/permissions/threads.py:159 acl/permissions/threads.py:167
 #: acl/permissions/threads.py:159 acl/permissions/threads.py:167
 msgid "You don't have permission to read threads in this forum."
 msgid "You don't have permission to read threads in this forum."
 msgstr "Nie posiadasz uprawnień do czytania tematów na tym forum."
 msgstr "Nie posiadasz uprawnień do czytania tematów na tym forum."
@@ -677,24 +677,20 @@ msgstr "Nie mozesz usuwać etykiet zdarzeń!"
 msgid "You cannot show checkpoints!"
 msgid "You cannot show checkpoints!"
 msgstr "Nie możesz odkrywać etykiet zdarzeń!"
 msgstr "Nie możesz odkrywać etykiet zdarzeń!"
 
 
-#: acl/permissions/usercp.py:16
-msgid "Profile Settings"
-msgstr "Ustawienia profilu"
-
-#: acl/permissions/usercp.py:18
+#: acl/permissions/usercp.py:10
 msgid "Allowed Username changes number"
 msgid "Allowed Username changes number"
 msgstr "Liczba dozwolonych zmian nazwy użytkownika."
 msgstr "Liczba dozwolonych zmian nazwy użytkownika."
 
 
-#: acl/permissions/usercp.py:18
+#: acl/permissions/usercp.py:11
 msgid "Enter zero to don't allow users with this role to change their names."
 msgid "Enter zero to don't allow users with this role to change their names."
 msgstr ""
 msgstr ""
 "Wpisz 0, aby zabronić użytkownikom z tą rolą jakichkolwiek zmian nazwy."
 "Wpisz 0, aby zabronić użytkownikom z tą rolą jakichkolwiek zmian nazwy."
 
 
-#: acl/permissions/usercp.py:19
+#: acl/permissions/usercp.py:13
 msgid "Don't count username changes older than"
 msgid "Don't count username changes older than"
 msgstr "Nie wliczaj zmian nazwy starszych niż"
 msgstr "Nie wliczaj zmian nazwy starszych niż"
 
 
-#: acl/permissions/usercp.py:19
+#: acl/permissions/usercp.py:14
 msgid ""
 msgid ""
 "Number of days since name change that makes that change no longer count to "
 "Number of days since name change that makes that change no longer count to "
 "limit. For example, if you enter 7 days and set changes limit 3, users with "
 "limit. For example, if you enter 7 days and set changes limit 3, users with "
@@ -707,38 +703,42 @@ msgstr ""
 "więcej niż 3 razy, w ciągu 7 dni. Wpisz 0, aby uwzględniać każdą zmianę "
 "więcej niż 3 razy, w ciągu 7 dni. Wpisz 0, aby uwzględniać każdą zmianę "
 "nazwy, od rejestracji użytkownika."
 "nazwy, od rejestracji użytkownika."
 
 
-#: acl/permissions/usercp.py:20
+#: acl/permissions/usercp.py:16
 msgid "Can have signature"
 msgid "Can have signature"
 msgstr "Może posiadać sygnaturkę"
 msgstr "Może posiadać sygnaturkę"
 
 
-#: acl/permissions/usercp.py:21
+#: acl/permissions/usercp.py:18
 msgid "Can put links in signature"
 msgid "Can put links in signature"
 msgstr "Może umieszczać linki w sygnaturce"
 msgstr "Może umieszczać linki w sygnaturce"
 
 
-#: acl/permissions/usercp.py:22
+#: acl/permissions/usercp.py:20
 msgid "Can put images in signature"
 msgid "Can put images in signature"
 msgstr "Może umieszczać obrazki w sygnaturce"
 msgstr "Może umieszczać obrazki w sygnaturce"
 
 
-#: acl/permissions/users.py:14
-msgid "User Profiles"
-msgstr "Profile użytkowników"
+#: acl/permissions/usercp.py:24
+msgid "Profile Settings"
+msgstr "Ustawienia profilu"
 
 
-#: acl/permissions/users.py:16
+#: acl/permissions/users.py:8
 msgid "Can search user profiles"
 msgid "Can search user profiles"
 msgstr "Może wyszukiwać profile użytkowników"
 msgstr "Może wyszukiwać profile użytkowników"
 
 
-#: acl/permissions/users.py:17
+#: acl/permissions/users.py:10
 msgid "Can see members e-mail's"
 msgid "Can see members e-mail's"
 msgstr "Może zobaczyć adresy e-mail użytkowników"
 msgstr "Może zobaczyć adresy e-mail użytkowników"
 
 
-#: acl/permissions/users.py:18
+#: acl/permissions/users.py:12
 msgid "Can see members ip's and user-agents"
 msgid "Can see members ip's and user-agents"
 msgstr "Może zobaczyć adresy IP oraz user-agenty użytkowników"
 msgstr "Może zobaczyć adresy IP oraz user-agenty użytkowników"
 
 
-#: acl/permissions/users.py:19
+#: acl/permissions/users.py:14
 msgid "Can see mebers that hide their presence"
 msgid "Can see mebers that hide their presence"
 msgstr "Może zobaczyć aktywność ukrywających ją użytkowników"
 msgstr "Może zobaczyć aktywność ukrywających ją użytkowników"
 
 
+#: acl/permissions/users.py:18
+msgid "User Profiles"
+msgstr "Profile użytkowników"
+
 #: apps/category.py:13
 #: apps/category.py:13
 msgid "You don't have permission to browse this category."
 msgid "You don't have permission to browse this category."
 msgstr "Nie posiadasz uprawnień do przeglądania tej kategorii."
 msgstr "Nie posiadasz uprawnień do przeglądania tej kategorii."
@@ -763,11 +763,11 @@ msgstr "Wszystkie fora zostały oznaczone jako przeczytane."
 msgid "You don't have permission to follow this redirect."
 msgid "You don't have permission to follow this redirect."
 msgstr "Nie posiadasz uprawnień do podążania za tym przekierowaniem."
 msgstr "Nie posiadasz uprawnień do podążania za tym przekierowaniem."
 
 
-#: apps/activation/forms.py:17 apps/resetpswd/forms.py:17
+#: apps/activation/forms.py:9 apps/resetpswd/forms.py:9
 msgid "Your E-mail Address"
 msgid "Your E-mail Address"
 msgstr "Twój adres e-mail"
 msgstr "Twój adres e-mail"
 
 
-#: apps/activation/forms.py:17
+#: apps/activation/forms.py:10
 msgid ""
 msgid ""
 "Enter email address send activation e-mail to. It must be valid e-mail you "
 "Enter email address send activation e-mail to. It must be valid e-mail you "
 "used to register on forums."
 "used to register on forums."
@@ -775,11 +775,7 @@ msgstr ""
 "Wpisz adres e-mail, na który zostanie wysłany link aktywacyjny. Musi to być "
 "Wpisz adres e-mail, na który zostanie wysłany link aktywacyjny. Musi to być "
 "poprawny adres e-mail, którego użyłeś do rejestracji."
 "poprawny adres e-mail, którego użyłeś do rejestracji."
 
 
-#: apps/activation/forms.py:17 apps/resetpswd/forms.py:17
-msgid "Enter your e-mail address."
-msgstr "Wpisz swój adres e-mail."
-
-#: apps/activation/forms.py:31 apps/resetpswd/forms.py:31
+#: apps/activation/forms.py:22 apps/resetpswd/forms.py:22
 msgid "There is no user with such e-mail address."
 msgid "There is no user with such e-mail address."
 msgstr "Nie ma żadnego użytkownika z takim adresem e-mail."
 msgstr "Nie ma żadnego użytkownika z takim adresem e-mail."
 
 
@@ -793,7 +789,7 @@ msgstr "%(username)s, Twoje konto jest już aktywne."
 msgid "%(username)s, only board administrator can activate your account."
 msgid "%(username)s, only board administrator can activate your account."
 msgstr "%(username)s, tylko administrator forum może aktywować Twoje konto."
 msgstr "%(username)s, tylko administrator forum może aktywować Twoje konto."
 
 
-#: apps/activation/views.py:36 apps/admin/users/views.py:126
+#: apps/activation/views.py:36 apps/admin/users/views.py:127
 msgid "Account Activation"
 msgid "Account Activation"
 msgstr "Aktywacja konta"
 msgstr "Aktywacja konta"
 
 
@@ -835,11 +831,11 @@ msgstr ""
 msgid "Team Member"
 msgid "Team Member"
 msgstr "Członek zespołu forum"
 msgstr "Członek zespołu forum"
 
 
-#: apps/admin/widgets.py:98 templates/admin/admin/list.html:67
+#: apps/admin/widgets.py:99 templates/admin/admin/list.html:67
 #: templates/cranefly/private_threads/list.html:105
 #: templates/cranefly/private_threads/list.html:105
 #: templates/cranefly/private_threads/thread.html:378
 #: templates/cranefly/private_threads/thread.html:378
 #: templates/cranefly/private_threads/thread.html:386
 #: templates/cranefly/private_threads/thread.html:386
-#: templates/cranefly/reports/list.html:109
+#: templates/cranefly/reports/list.html:108
 #: templates/cranefly/reports/thread.html:331
 #: templates/cranefly/reports/thread.html:331
 #: templates/cranefly/reports/thread.html:338
 #: templates/cranefly/reports/thread.html:338
 #: templates/cranefly/threads/list.html:181
 #: templates/cranefly/threads/list.html:181
@@ -848,72 +844,52 @@ msgstr "Członek zespołu forum"
 msgid "Go"
 msgid "Go"
 msgstr "Idź"
 msgstr "Idź"
 
 
-#: apps/admin/widgets.py:99
+#: apps/admin/widgets.py:100
 msgid "There are no items to display"
 msgid "There are no items to display"
 msgstr "Nie ma żadnych elementów do wyświetlenia"
 msgstr "Nie ma żadnych elementów do wyświetlenia"
 
 
-#: apps/admin/widgets.py:100
+#: apps/admin/widgets.py:101
 msgid "Search has returned no items"
 msgid "Search has returned no items"
 msgstr "Wyszukiwanie nie zwróciło żadnych wyników"
 msgstr "Wyszukiwanie nie zwróciło żadnych wyników"
 
 
-#: apps/admin/widgets.py:101
+#: apps/admin/widgets.py:102
 msgid "You have to select at least one item."
 msgid "You have to select at least one item."
 msgstr "Musisz wybrać przynajmniej jeden element."
 msgstr "Musisz wybrać przynajmniej jeden element."
 
 
-#: apps/admin/widgets.py:287
+#: apps/admin/widgets.py:288
 msgid "No search criteria have been defined."
 msgid "No search criteria have been defined."
 msgstr "Nie zdefiniowano żadnych kryteriów wyszukiwania."
 msgstr "Nie zdefiniowano żadnych kryteriów wyszukiwania."
 
 
-#: apps/admin/widgets.py:292
+#: apps/admin/widgets.py:293
 msgid "Search form contains errors."
 msgid "Search form contains errors."
 msgstr "Formularz wyszukiwania zawiera błędy."
 msgstr "Formularz wyszukiwania zawiera błędy."
 
 
-#: apps/admin/widgets.py:300
+#: apps/admin/widgets.py:301
 msgid "Search criteria have been cleared."
 msgid "Search criteria have been cleared."
 msgstr "Kryteria wyszukiwania zostały wyczyszczone."
 msgstr "Kryteria wyszukiwania zostały wyczyszczone."
 
 
-#: apps/admin/widgets.py:338 apps/admin/widgets.py:343
-#: apps/threadtype/list/views.py:85 apps/threadtype/thread/views.py:123
-#: apps/threadtype/thread/views.py:170
+#: apps/admin/widgets.py:339 apps/admin/widgets.py:344
+#: apps/threadtype/list/views.py:86 apps/threadtype/thread/views.py:128
+#: apps/threadtype/thread/views.py:175
 msgid "Requested action is incorrect."
 msgid "Requested action is incorrect."
 msgstr "Żądana akcja jest niepoprawna."
 msgstr "Żądana akcja jest niepoprawna."
 
 
-#: apps/admin/widgets.py:382
+#: apps/admin/widgets.py:383
 #: templates/cranefly/private_threads/posting.html:174
 #: templates/cranefly/private_threads/posting.html:174
 #: templates/cranefly/reports/posting.html:170
 #: templates/cranefly/reports/posting.html:170
-#: templates/cranefly/threads/posting.html:181
+#: templates/cranefly/threads/posting.html:188
 msgid "Save Changes"
 msgid "Save Changes"
 msgstr "Zapisz zmiany"
 msgstr "Zapisz zmiany"
 
 
-#: apps/admin/widgets.py:504
+#: apps/admin/widgets.py:505
 msgid "Action authorization is invalid."
 msgid "Action authorization is invalid."
 msgstr "Autoryzacja dla żądanej akcji jest niepoprawna."
 msgstr "Autoryzacja dla żądanej akcji jest niepoprawna."
 
 
-#: apps/admin/bans/forms.py:10
-msgid "Ban Username and e-mail"
-msgstr "Zablokuj nazwę użytkownika oraz e-mail"
-
-#: apps/admin/bans/forms.py:11
-msgid "Ban Username"
-msgstr "Zablokuj nazwę użytkownika"
-
-#: apps/admin/bans/forms.py:12
-msgid "Ban E-mail address"
-msgstr "Zablokuj adres e-mail"
-
-#: apps/admin/bans/forms.py:13
-msgid "Ban IP Address"
-msgstr "Zablokuj adres IP"
-
-#: apps/admin/bans/forms.py:21
-msgid "Ban Details"
-msgstr "Szczegóły bana"
-
-#: apps/admin/bans/forms.py:23
+#: apps/admin/bans/forms.py:9
 msgid "Ban Rule"
 msgid "Ban Rule"
 msgstr "Reguła banowania"
 msgstr "Reguła banowania"
 
 
-#: apps/admin/bans/forms.py:23
+#: apps/admin/bans/forms.py:10
 msgid ""
 msgid ""
 "Select ban type from list and define rule by entering it in text field. If "
 "Select ban type from list and define rule by entering it in text field. If "
 "you want to ban specific user, enter here either his Username or E-mail "
 "you want to ban specific user, enter here either his Username or E-mail "
@@ -928,323 +904,302 @@ msgstr ""
 "używania nazwy sugerującej bycie administratorem, z listy możesz wybrać "
 "używania nazwy sugerującej bycie administratorem, z listy możesz wybrać "
 "nazwę użytkownika, a w pole wpisać \"Admin*\"."
 "nazwę użytkownika, a w pole wpisać \"Admin*\"."
 
 
-#: apps/admin/bans/forms.py:25
-msgid "Ban Expiration"
-msgstr "Ban wygasa"
+#: apps/admin/bans/forms.py:12
+msgid "Ban Username and e-mail"
+msgstr "Zablokuj nazwę użytkownika oraz e-mail"
 
 
-#: apps/admin/bans/forms.py:25
-msgid ""
-"If you want to, you can set this ban's expiration date by entering it here "
-"using YYYY-MM-DD format. Otherwhise you can leave this field empty making "
-"this ban permanent."
-msgstr ""
-"Możesz tu wpisać datę wygaśniecia bana w formacie YYYY-MM-DD (rok-miesiąc-"
-"dzień). Pozostaw to pole puste, aby ustawić dożywotniego bana."
+#: apps/admin/bans/forms.py:13
+msgid "Ban Username"
+msgstr "Zablokuj nazwę użytkownika"
 
 
-#: apps/admin/bans/forms.py:29
-msgid "Ban Message"
-msgstr "Uzasadnienie blokady"
+#: apps/admin/bans/forms.py:14
+msgid "Ban E-mail address"
+msgstr "Zablokuj adres e-mail"
 
 
-#: apps/admin/bans/forms.py:31
+#: apps/admin/bans/forms.py:15
+msgid "Ban IP Address"
+msgstr "Zablokuj adres IP"
+
+#: apps/admin/bans/forms.py:17
 msgid "User-visible Ban Message"
 msgid "User-visible Ban Message"
 msgstr "Wiadomość dla użytkownika"
 msgstr "Wiadomość dla użytkownika"
 
 
-#: apps/admin/bans/forms.py:31
+#: apps/admin/bans/forms.py:18
 msgid "Optional Ban message that will be displayed to banned members."
 msgid "Optional Ban message that will be displayed to banned members."
 msgstr ""
 msgstr ""
 "Opcjonalna. Powód blokady, który zobaczy zablokowany użytkownik po wejściu "
 "Opcjonalna. Powód blokady, który zobaczy zablokowany użytkownik po wejściu "
 "na forum."
 "na forum."
 
 
-#: apps/admin/bans/forms.py:32
+#: apps/admin/bans/forms.py:20
 msgid "Team-visible Ban Message"
 msgid "Team-visible Ban Message"
 msgstr "Opis bana dla członków zespołu forum"
 msgstr "Opis bana dla członków zespołu forum"
 
 
-#: apps/admin/bans/forms.py:32
+#: apps/admin/bans/forms.py:21
 msgid "Optional Ban message that will be displayed to forum team members."
 msgid "Optional Ban message that will be displayed to forum team members."
 msgstr "Opcjonalny. Powód blokady, który wyświetli się członkom zespołu forum."
 msgstr "Opcjonalny. Powód blokady, który wyświetli się członkom zespołu forum."
 
 
-#: apps/admin/bans/forms.py:42
-msgid "Username and e-mail"
-msgstr "Nazwa użytkownika i e-mail"
-
-#: apps/admin/bans/forms.py:43 apps/admin/online/forms.py:21
-#: apps/admin/users/forms.py:36 apps/admin/users/forms.py:133
-#: apps/admin/users/forms.py:200 apps/register/forms.py:32
-#: templates/_email/users/activation/none.html:9
-#: templates/_email/users/activation/none.txt:10
-#: templates/admin/bans/list.html:6
-msgid "Username"
-msgstr "Nazwa użytkownika"
+#: apps/admin/bans/forms.py:24
+msgid "Ban Expiration"
+msgstr "Ban wygasa"
 
 
-#: apps/admin/bans/forms.py:44 apps/register/forms.py:36
-msgid "E-mail address"
-msgstr "Adres e-mail"
-
-#: apps/admin/bans/forms.py:45 apps/admin/online/forms.py:20
-#: templates/admin/bans/list.html:8
-#: templates/cranefly/private_threads/details.html:30
-#: templates/cranefly/profiles/details.html:189
-#: templates/cranefly/profiles/details.html:220
-#: templates/cranefly/reports/details.html:30
-#: templates/cranefly/threads/details.html:30
-msgid "IP Address"
-msgstr "Adres IP"
-
-#: apps/admin/bans/forms.py:49
-msgid "Search Bans"
-msgstr "Wyszukiwanie banów"
+#: apps/admin/bans/forms.py:25
+msgid ""
+"If you want to, you can set this ban's expiration date by entering it here "
+"using YYYY-MM-DD format. Otherwhise you can leave this field empty making "
+"this ban permanent."
+msgstr ""
+"Możesz tu wpisać datę wygaśniecia bana w formacie YYYY-MM-DD (rok-miesiąc-"
+"dzień). Pozostaw to pole puste, aby ustawić dożywotniego bana."
 
 
-#: apps/admin/bans/forms.py:51 apps/admin/bans/views.py:28
+#: apps/admin/bans/forms.py:30 apps/admin/bans/views.py:29
 msgid "Ban"
 msgid "Ban"
 msgstr "Ban"
 msgstr "Ban"
 
 
-#: apps/admin/bans/forms.py:51
-msgid "Ban contains..."
-msgstr "Ban zawiera..."
-
-#: apps/admin/bans/forms.py:52
+#: apps/admin/bans/forms.py:31
 msgid "Messages"
 msgid "Messages"
 msgstr "Uzasadnienie"
 msgstr "Uzasadnienie"
 
 
-#: apps/admin/bans/forms.py:52
-msgid "User or Team message contains..."
-msgstr "Uzasadnienie zawiera..."
-
-#: apps/admin/bans/forms.py:53
+#: apps/admin/bans/forms.py:32
 msgid "Type"
 msgid "Type"
 msgstr "Kryteria bana"
 msgstr "Kryteria bana"
 
 
-#: apps/admin/bans/views.py:29
+#: apps/admin/bans/forms.py:36
+msgid "Username and e-mail"
+msgstr "Nazwa użytkownika i e-mail"
+
+#: apps/admin/bans/forms.py:37 apps/admin/online/forms.py:7
+#: apps/admin/users/forms.py:11 apps/admin/users/forms.py:114
+#: apps/admin/users/forms.py:172 apps/register/forms.py:11
+#: templates/_email/users/activation/none.html:9
+#: templates/_email/users/activation/none.txt:10
+#: templates/admin/bans/list.html:7
+msgid "Username"
+msgstr "Nazwa użytkownika"
+
+#: apps/admin/bans/forms.py:38 apps/register/forms.py:14
+msgid "E-mail address"
+msgstr "Adres e-mail"
+
+#: apps/admin/bans/forms.py:39 apps/admin/online/forms.py:8
+#: templates/admin/bans/list.html:9
+#: templates/cranefly/private_threads/details.html:30
+#: templates/cranefly/profiles/details.html:188
+#: templates/cranefly/profiles/details.html:219
+#: templates/cranefly/reports/details.html:30
+#: templates/cranefly/threads/details.html:30
+msgid "IP Address"
+msgstr "Adres IP"
+
+#: apps/admin/bans/views.py:30
 msgid "Expires"
 msgid "Expires"
 msgstr "Wygasa"
 msgstr "Wygasa"
 
 
-#: apps/admin/bans/views.py:38
+#: apps/admin/bans/views.py:39
 msgid "No bans are currently set."
 msgid "No bans are currently set."
 msgstr "Aktualnie nie ma nałożonych żadnych banów."
 msgstr "Aktualnie nie ma nałożonych żadnych banów."
 
 
-#: apps/admin/bans/views.py:39
+#: apps/admin/bans/views.py:40
 msgid "No bans have been found."
 msgid "No bans have been found."
 msgstr "Nie odnaleziono żadnych banów."
 msgstr "Nie odnaleziono żadnych banów."
 
 
-#: apps/admin/bans/views.py:40
+#: apps/admin/bans/views.py:41
 msgid "You have to check at least one ban."
 msgid "You have to check at least one ban."
 msgstr "Musisz zaznaczyć przynajmniej jednego bana."
 msgstr "Musisz zaznaczyć przynajmniej jednego bana."
 
 
-#: apps/admin/bans/views.py:42
+#: apps/admin/bans/views.py:43
 msgid "Lift selected bans"
 msgid "Lift selected bans"
 msgstr "Zdejmij zaznaczone bany."
 msgstr "Zdejmij zaznaczone bany."
 
 
-#: apps/admin/bans/views.py:42
+#: apps/admin/bans/views.py:43
 msgid "Are you sure you want to lift selected bans?"
 msgid "Are you sure you want to lift selected bans?"
 msgstr "Czy aby na pewno chcesz zdjąć zaznaczone bany?"
 msgstr "Czy aby na pewno chcesz zdjąć zaznaczone bany?"
 
 
-#: apps/admin/bans/views.py:56 apps/admin/bans/views.py:103
+#: apps/admin/bans/views.py:57 apps/admin/bans/views.py:104
 msgid "Edit Ban"
 msgid "Edit Ban"
 msgstr "Edytuj bana"
 msgstr "Edytuj bana"
 
 
-#: apps/admin/bans/views.py:57
+#: apps/admin/bans/views.py:58
 msgid "Lift Ban"
 msgid "Lift Ban"
 msgstr "Zdejmij bana"
 msgstr "Zdejmij bana"
 
 
-#: apps/admin/bans/views.py:57
+#: apps/admin/bans/views.py:58
 msgid "Are you sure you want to lift this ban?"
 msgid "Are you sure you want to lift this ban?"
 msgstr "Czy aby na pewno chcesz zdjąć tego bana?"
 msgstr "Czy aby na pewno chcesz zdjąć tego bana?"
 
 
-#: apps/admin/bans/views.py:64
+#: apps/admin/bans/views.py:65
 msgid "Selected bans have been lifted successfully."
 msgid "Selected bans have been lifted successfully."
 msgstr "Zaznaczone bany zostały pomyślnie zdjęte."
 msgstr "Zaznaczone bany zostały pomyślnie zdjęte."
 
 
-#: apps/admin/bans/views.py:75 apps/admin/sections/users.py:83
+#: apps/admin/bans/views.py:76 apps/admin/sections/users.py:83
 msgid "Set Ban"
 msgid "Set Ban"
 msgstr "Nałóż bana"
 msgstr "Nałóż bana"
 
 
-#: apps/admin/bans/views.py:94
+#: apps/admin/bans/views.py:95
 msgid "New Ban has been set."
 msgid "New Ban has been set."
 msgstr "Nowy ban został nałożony."
 msgstr "Nowy ban został nałożony."
 
 
-#: apps/admin/bans/views.py:107 apps/admin/bans/views.py:144
+#: apps/admin/bans/views.py:108 apps/admin/bans/views.py:145
 msgid "Requested Ban could not be found."
 msgid "Requested Ban could not be found."
 msgstr "Nie odnaleziono żądanego bana."
 msgstr "Nie odnaleziono żądanego bana."
 
 
-#: apps/admin/bans/views.py:134
+#: apps/admin/bans/views.py:135
 msgid "Changes in ban have been saved."
 msgid "Changes in ban have been saved."
 msgstr "Zmiany w banie zostały wprowadzone."
 msgstr "Zmiany w banie zostały wprowadzone."
 
 
-#: apps/admin/bans/views.py:151
+#: apps/admin/bans/views.py:152
 #, python-format
 #, python-format
 msgid "E-mail and username Ban \"%(ban)s\" has been lifted."
 msgid "E-mail and username Ban \"%(ban)s\" has been lifted."
 msgstr "Ban na nazwę użytkownika i adres e-mail \"%(ban)s\" został zdjęty."
 msgstr "Ban na nazwę użytkownika i adres e-mail \"%(ban)s\" został zdjęty."
 
 
-#: apps/admin/bans/views.py:153
+#: apps/admin/bans/views.py:154
 #, python-format
 #, python-format
 msgid "Username Ban \"%(ban)s\" has been lifted."
 msgid "Username Ban \"%(ban)s\" has been lifted."
 msgstr "Ban na nazwę użytkownika \"%(ban)s\" został zdjęty."
 msgstr "Ban na nazwę użytkownika \"%(ban)s\" został zdjęty."
 
 
-#: apps/admin/bans/views.py:155
+#: apps/admin/bans/views.py:156
 #, python-format
 #, python-format
 msgid "E-mail Ban \"%(ban)s\" has been lifted."
 msgid "E-mail Ban \"%(ban)s\" has been lifted."
 msgstr "Ban na adres e-mail \"%(ban)s\" został zdjęty."
 msgstr "Ban na adres e-mail \"%(ban)s\" został zdjęty."
 
 
-#: apps/admin/bans/views.py:157
+#: apps/admin/bans/views.py:158
 #, python-format
 #, python-format
 msgid "IP Ban \"%(ban)s\" has been lifted."
 msgid "IP Ban \"%(ban)s\" has been lifted."
 msgstr "Ban na adres IP \"%(ban)s\" został zdjęty."
 msgstr "Ban na adres IP \"%(ban)s\" został zdjęty."
 
 
-#: apps/admin/forumroles/forms.py:8 apps/admin/roles/forms.py:8
-msgid "Role name must contain alphanumeric characters."
-msgstr "Nazwa roli nie może zawierać wyłącznie znaków specjalnych."
-
-#: apps/admin/forumroles/forms.py:9 apps/admin/roles/forms.py:9
-msgid "Role name is too long."
-msgstr "Nazwa roli jest zbyt długa."
-
-#: apps/admin/forumroles/forms.py:15 apps/admin/roles/forms.py:16
-msgid "Basic Role Options"
-msgstr "Podstawowe opcje roli"
-
-#: apps/admin/forumroles/forms.py:17 apps/admin/roles/forms.py:18
+#: apps/admin/forumroles/forms.py:7 apps/admin/roles/forms.py:7
 msgid "Role Name"
 msgid "Role Name"
 msgstr "Nazwa roli"
 msgstr "Nazwa roli"
 
 
-#: apps/admin/forumroles/forms.py:17 apps/admin/roles/forms.py:18
+#: apps/admin/forumroles/forms.py:8 apps/admin/roles/forms.py:8
 msgid "Role Name is used to identify this role in Admin Control Panel."
 msgid "Role Name is used to identify this role in Admin Control Panel."
 msgstr ""
 msgstr ""
 "Nazwa roli służy do zidentyfikowania jej w panelu administratora (ACP)."
 "Nazwa roli służy do zidentyfikowania jej w panelu administratora (ACP)."
 
 
-#: apps/admin/forumroles/views.py:26 apps/admin/roles/views.py:27
+#: apps/admin/forumroles/forms.py:10 apps/admin/roles/forms.py:10
+msgid "Role name must contain alphanumeric characters."
+msgstr "Nazwa roli nie może zawierać wyłącznie znaków specjalnych."
+
+#: apps/admin/forumroles/forms.py:11 apps/admin/roles/forms.py:11
+msgid "Role name is too long."
+msgstr "Nazwa roli jest zbyt długa."
+
+#: apps/admin/forumroles/views.py:27 apps/admin/roles/views.py:28
 #: templates/admin/roles/forums.html:9
 #: templates/admin/roles/forums.html:9
 msgid "Role"
 msgid "Role"
 msgstr "Rola"
 msgstr "Rola"
 
 
-#: apps/admin/forumroles/views.py:28 apps/admin/roles/views.py:29
+#: apps/admin/forumroles/views.py:29 apps/admin/roles/views.py:30
 msgid "You have to check at least one role."
 msgid "You have to check at least one role."
 msgstr "Musisz zaznaczyć przynajmiej jedną rolę."
 msgstr "Musisz zaznaczyć przynajmiej jedną rolę."
 
 
-#: apps/admin/forumroles/views.py:30
+#: apps/admin/forumroles/views.py:31
 msgid "Delete selected forum roles"
 msgid "Delete selected forum roles"
 msgstr "Usuń zaznaczone role"
 msgstr "Usuń zaznaczone role"
 
 
-#: apps/admin/forumroles/views.py:30 apps/admin/roles/views.py:31
+#: apps/admin/forumroles/views.py:31 apps/admin/roles/views.py:32
 msgid "Are you sure you want to delete selected roles?"
 msgid "Are you sure you want to delete selected roles?"
 msgstr "Czy na pewno chcesz usunąć zaznaczone role?"
 msgstr "Czy na pewno chcesz usunąć zaznaczone role?"
 
 
-#: apps/admin/forumroles/views.py:38 apps/admin/roles/views.py:40
+#: apps/admin/forumroles/views.py:39 apps/admin/roles/views.py:41
 msgid "Role Permissions"
 msgid "Role Permissions"
 msgstr "Uprawnienia roli"
 msgstr "Uprawnienia roli"
 
 
-#: apps/admin/forumroles/views.py:39 apps/admin/roles/views.py:41
-#: apps/admin/roles/views.py:83
+#: apps/admin/forumroles/views.py:40 apps/admin/roles/views.py:42
+#: apps/admin/roles/views.py:82
 msgid "Edit Role"
 msgid "Edit Role"
 msgstr "Edytuj rolę"
 msgstr "Edytuj rolę"
 
 
-#: apps/admin/forumroles/views.py:40 apps/admin/roles/views.py:42
+#: apps/admin/forumroles/views.py:41 apps/admin/roles/views.py:43
 msgid "Delete Role"
 msgid "Delete Role"
 msgstr "Usuń rolę"
 msgstr "Usuń rolę"
 
 
-#: apps/admin/forumroles/views.py:40 apps/admin/roles/views.py:42
+#: apps/admin/forumroles/views.py:41 apps/admin/roles/views.py:43
 msgid "Are you sure you want to delete this role?"
 msgid "Are you sure you want to delete this role?"
 msgstr "Czy aby na pewno chcesz usunąć tę rolę?"
 msgstr "Czy aby na pewno chcesz usunąć tę rolę?"
 
 
-#: apps/admin/forumroles/views.py:47
+#: apps/admin/forumroles/views.py:48
 msgid "Selected forum roles have been deleted successfully."
 msgid "Selected forum roles have been deleted successfully."
 msgstr "Zaznaczone role zostały pomyślnie usunięte."
 msgstr "Zaznaczone role zostały pomyślnie usunięte."
 
 
-#: apps/admin/forumroles/views.py:55 apps/admin/roles/views.py:64
+#: apps/admin/forumroles/views.py:56 apps/admin/roles/views.py:65
 msgid "Save Role"
 msgid "Save Role"
 msgstr "Zachowaj rolę"
 msgstr "Zachowaj rolę"
 
 
-#: apps/admin/forumroles/views.py:68
+#: apps/admin/forumroles/views.py:69
 msgid "New Forum Role has been created."
 msgid "New Forum Role has been created."
 msgstr "Nowa rola na forum została dodana."
 msgstr "Nowa rola na forum została dodana."
 
 
-#: apps/admin/forumroles/views.py:74
+#: apps/admin/forumroles/views.py:75
 msgid "Edit Forum Role"
 msgid "Edit Forum Role"
 msgstr "Modfikacja roli"
 msgstr "Modfikacja roli"
 
 
-#: apps/admin/forumroles/views.py:78 apps/admin/forumroles/views.py:104
-#: apps/admin/forumroles/views.py:142
+#: apps/admin/forumroles/views.py:79 apps/admin/forumroles/views.py:105
+#: apps/admin/forumroles/views.py:143
 msgid "Requested Forum Role could not be found."
 msgid "Requested Forum Role could not be found."
 msgstr "Żądana rola na forum nie została odnaleziona."
 msgstr "Żądana rola na forum nie została odnaleziona."
 
 
-#: apps/admin/forumroles/views.py:95
+#: apps/admin/forumroles/views.py:96
 #, python-format
 #, python-format
 msgid "Changes in forum role \"%(name)s\" have been saved."
 msgid "Changes in forum role \"%(name)s\" have been saved."
 msgstr "Zmiany w roli \"%(name)s\" zostały zachowane."
 msgstr "Zmiany w roli \"%(name)s\" zostały zachowane."
 
 
-#: apps/admin/forumroles/views.py:101
+#: apps/admin/forumroles/views.py:102
 msgid "Change Forum Role Permissions"
 msgid "Change Forum Role Permissions"
 msgstr "Zmień uprawnienia roli użytkownika"
 msgstr "Zmień uprawnienia roli użytkownika"
 
 
-#: apps/admin/forumroles/views.py:135
+#: apps/admin/forumroles/views.py:136
 #, python-format
 #, python-format
 msgid "Forum Role \"%(name)s\" permissions have been changed."
 msgid "Forum Role \"%(name)s\" permissions have been changed."
 msgstr "Uprawnienia roli \"%(name)s\" zostały zmienione."
 msgstr "Uprawnienia roli \"%(name)s\" zostały zmienione."
 
 
-#: apps/admin/forumroles/views.py:148
+#: apps/admin/forumroles/views.py:149
 #, python-format
 #, python-format
 msgid "Forum Role \"%(name)s\" has been deleted."
 msgid "Forum Role \"%(name)s\" has been deleted."
 msgstr "Rola \"%(name)s\" została usunięta."
 msgstr "Rola \"%(name)s\" została usunięta."
 
 
-#: apps/admin/forums/forms.py:23
+#: apps/admin/forums/forms.py:22 apps/admin/forums/forms.py:57
+msgid "Node Type"
+msgstr "Typ węzła"
+
+#: apps/admin/forums/forms.py:23 apps/admin/forums/forms.py:57
+msgid ""
+"Each Node has specific role in forums tree. This role cannot be changed "
+"after node is created."
+msgstr ""
+"Każdy węzeł ma swoją konkretną rolę w drzewie forów. Rola nie może zostać "
+"zmieniona po utworzeniu węzła."
+
+#: apps/admin/forums/forms.py:25
 msgid "Category"
 msgid "Category"
 msgstr "Kategoria"
 msgstr "Kategoria"
 
 
-#: apps/admin/forums/forms.py:24 apps/admin/forums/views.py:30
+#: apps/admin/forums/forms.py:26 apps/admin/forums/views.py:32
 #: templates/admin/roles/forums.html:8
 #: templates/admin/roles/forums.html:8
 msgid "Forum"
 msgid "Forum"
 msgstr "Forum"
 msgstr "Forum"
 
 
-#: apps/admin/forums/forms.py:25
+#: apps/admin/forums/forms.py:27
 msgid "Redirection"
 msgid "Redirection"
 msgstr "Przekierowanie"
 msgstr "Przekierowanie"
 
 
-#: apps/admin/forums/forms.py:28 apps/admin/forums/forms.py:82
+#: apps/admin/forums/forms.py:29 apps/admin/forums/forms.py:58
+msgid "Node Name"
+msgstr "Nazwa węzła"
+
+#: apps/admin/forums/forms.py:31 apps/admin/forums/forms.py:97
 msgid "Category name must contain alphanumeric characters."
 msgid "Category name must contain alphanumeric characters."
 msgstr "Nazwa kategorii nie może zawierać samych znaków specjalnych."
 msgstr "Nazwa kategorii nie może zawierać samych znaków specjalnych."
 
 
-#: apps/admin/forums/forms.py:29 apps/admin/forums/forms.py:83
+#: apps/admin/forums/forms.py:32 apps/admin/forums/forms.py:98
 msgid "Category name is too long."
 msgid "Category name is too long."
 msgstr "Nazwa kategorii jest zbyt długa."
 msgstr "Nazwa kategorii jest zbyt długa."
 
 
-#: apps/admin/forums/forms.py:40 apps/admin/forums/forms.py:93
-#: apps/admin/forums/forms.py:134 apps/admin/forums/forms.py:185
-msgid "Basic Options"
-msgstr "Opcje podstawowe"
-
-#: apps/admin/forums/forms.py:42
-msgid "Node Parent"
-msgstr "Rodzic węzła"
-
-#: apps/admin/forums/forms.py:43 apps/admin/forums/forms.py:96
-#: apps/admin/forums/forms.py:137 apps/admin/forums/forms.py:188
-msgid "Copy Permissions from"
-msgstr "Skopiuj uprawnienia z"
-
-#: apps/admin/forums/forms.py:44
-msgid "Node Type"
-msgstr "Typ węzła"
-
-#: apps/admin/forums/forms.py:44
-msgid ""
-"Each Node has specific role in forums tree. This role cannot be changed "
-"after node is created."
-msgstr ""
-"Każdy węzeł ma swoją konkretną rolę w drzewie forów. Rola nie może zostać "
-"zmieniona po utworzeniu węzła."
-
-#: apps/admin/forums/forms.py:45
-msgid "Node Name"
-msgstr "Nazwa węzła"
-
-#: apps/admin/forums/forms.py:46
-msgid "Node Description"
-msgstr "Opis węzła"
-
-#: apps/admin/forums/forms.py:47 apps/admin/forums/forms.py:190
+#: apps/admin/forums/forms.py:34 apps/admin/forums/forms.py:60
+#: apps/admin/forums/forms.py:230
 msgid "Redirect URL"
 msgid "Redirect URL"
 msgstr "Adres URL przekierowania"
 msgstr "Adres URL przekierowania"
 
 
-#: apps/admin/forums/forms.py:47
+#: apps/admin/forums/forms.py:35 apps/admin/forums/forms.py:60
 msgid ""
 msgid ""
 "Redirection nodes require you to specify URL they will redirect users to "
 "Redirection nodes require you to specify URL they will redirect users to "
 "upon click."
 "upon click."
@@ -1252,20 +1207,56 @@ msgstr ""
 "Węzeł przekierowujący wymaga podania adres URL, do którego po kliknięciu "
 "Węzeł przekierowujący wymaga podania adres URL, do którego po kliknięciu "
 "będzie przekierowywał użytkowników."
 "będzie przekierowywał użytkowników."
 
 
-#: apps/admin/forums/forms.py:48
+#: apps/admin/forums/forms.py:37 apps/admin/forums/forms.py:59
+msgid "Node Description"
+msgstr "Opis węzła"
+
+#: apps/admin/forums/forms.py:39 apps/admin/forums/forms.py:61
 msgid "Closed Node"
 msgid "Closed Node"
 msgstr "Zamknięty węzeł"
 msgstr "Zamknięty węzeł"
 
 
-#: apps/admin/forums/forms.py:52 apps/admin/forums/forms.py:103
-#: apps/admin/forums/forms.py:152 apps/admin/forums/forms.py:195
+#: apps/admin/forums/forms.py:41 apps/admin/forums/forms.py:44
+#: apps/admin/forums/forms.py:47 apps/admin/forums/forms.py:69
+msgid "Node Style"
+msgstr "Styl węzła"
+
+#: apps/admin/forums/forms.py:42 apps/admin/forums/forms.py:45
+#: apps/admin/forums/forms.py:48 apps/admin/forums/forms.py:69
+msgid ""
+"You can add custom CSS classess to this node, to change way it looks on "
+"board index."
+msgstr ""
+"Możesz zdefiniować specjalne klasy CSS, które zmienią wygląd tego węzła na "
+"stronie głównej forum."
+
+#: apps/admin/forums/forms.py:53 apps/admin/forums/forms.py:116
+#: apps/admin/forums/forms.py:171 apps/admin/forums/forms.py:225
+#: templates/admin/forums/form.html:6
+msgid "Basic Options"
+msgstr "Opcje podstawowe"
+
+#: apps/admin/forums/forms.py:55 apps/admin/forums/forms.py:75
+msgid "Node Parent"
+msgstr "Rodzic węzła"
+
+#: apps/admin/forums/forms.py:56 apps/admin/forums/forms.py:77
+#: apps/admin/forums/forms.py:119 apps/admin/forums/forms.py:136
+#: apps/admin/forums/forms.py:174 apps/admin/forums/forms.py:199
+#: apps/admin/forums/forms.py:228 apps/admin/forums/forms.py:244
+msgid "Copy Permissions from"
+msgstr "Skopiuj uprawnienia z"
+
+#: apps/admin/forums/forms.py:65 apps/admin/forums/forms.py:126
+#: apps/admin/forums/forms.py:189 apps/admin/forums/forms.py:235
+#: templates/admin/forums/form.html:30
 msgid "Display Options"
 msgid "Display Options"
 msgstr "Opcje wyświetlania"
 msgstr "Opcje wyświetlania"
 
 
-#: apps/admin/forums/forms.py:54
+#: apps/admin/forums/forms.py:67
 msgid "Node Attributes"
 msgid "Node Attributes"
 msgstr "Atrybuty węzła"
 msgstr "Atrybuty węzła"
 
 
-#: apps/admin/forums/forms.py:54
+#: apps/admin/forums/forms.py:67
 msgid ""
 msgid ""
 "Custom templates can check nodes for predefined attributes that will change "
 "Custom templates can check nodes for predefined attributes that will change "
 "way they are rendered."
 "way they are rendered."
@@ -1273,12 +1264,13 @@ msgstr ""
 "Specjalne szablony, mogą różnie wyświetlać węzły, w zależności od "
 "Specjalne szablony, mogą różnie wyświetlać węzły, w zależności od "
 "zdefiniowanych atrybutów."
 "zdefiniowanych atrybutów."
 
 
-#: apps/admin/forums/forms.py:55 apps/admin/forums/forms.py:106
-#: apps/admin/forums/forms.py:155
+#: apps/admin/forums/forms.py:68 apps/admin/forums/forms.py:110
+#: apps/admin/forums/forms.py:129 apps/admin/forums/forms.py:165
+#: apps/admin/forums/forms.py:192
 msgid "Show Subforums Details"
 msgid "Show Subforums Details"
 msgstr "Pokaż szczegóły podforów"
 msgstr "Pokaż szczegóły podforów"
 
 
-#: apps/admin/forums/forms.py:55
+#: apps/admin/forums/forms.py:68
 msgid ""
 msgid ""
 "Allows you to prevent this node subforums from displaying statistics, last "
 "Allows you to prevent this node subforums from displaying statistics, last "
 "post data, etc. ect. on forums lists."
 "post data, etc. ect. on forums lists."
@@ -1286,52 +1278,48 @@ msgstr ""
 "Umożliwia wyłączenie wyświetlania statystyk (np. informacji o ostatnim "
 "Umożliwia wyłączenie wyświetlania statystyk (np. informacji o ostatnim "
 "poście) dla podforów danego węzła."
 "poście) dla podforów danego węzła."
 
 
-#: apps/admin/forums/forms.py:56
-msgid "Node Style"
-msgstr "Styl węzła"
-
-#: apps/admin/forums/forms.py:56
-msgid ""
-"You can add custom CSS classess to this node, to change way it looks on "
-"board index."
-msgstr ""
-"Możesz zdefiniować specjalne klasy CSS, które zmienią wygląd tego węzła na "
-"stronie głównej forum."
-
-#: apps/admin/forums/forms.py:63 apps/admin/forums/forms.py:113
-#: apps/admin/forums/forms.py:162 apps/admin/forums/forms.py:204
+#: apps/admin/forums/forms.py:78 apps/admin/forums/forms.py:137
+#: apps/admin/forums/forms.py:200 apps/admin/forums/forms.py:245
 msgid "Don't copy permissions"
 msgid "Don't copy permissions"
 msgstr "Nie kopiuj uprawnień"
 msgstr "Nie kopiuj uprawnień"
 
 
-#: apps/admin/forums/forms.py:70
+#: apps/admin/forums/forms.py:85
 msgid "Only categories can use Root Category as their parent."
 msgid "Only categories can use Root Category as their parent."
 msgstr "Tylko kategorie mogą mieć główny korzeń jako rodzica."
 msgstr "Tylko kategorie mogą mieć główny korzeń jako rodzica."
 
 
-#: apps/admin/forums/forms.py:72
+#: apps/admin/forums/forms.py:87
 msgid "You have to define redirection URL"
 msgid "You have to define redirection URL"
 msgstr "Musisz zdefiniować adres URL przekierowania"
 msgstr "Musisz zdefiniować adres URL przekierowania"
 
 
-#: apps/admin/forums/forms.py:95
-msgid "Category Parent"
-msgstr "Rodzic kategorii"
-
-#: apps/admin/forums/forms.py:97
+#: apps/admin/forums/forms.py:95 apps/admin/forums/forms.py:120
 msgid "Category Name"
 msgid "Category Name"
 msgstr "Nazwa kategorii"
 msgstr "Nazwa kategorii"
 
 
-#: apps/admin/forums/forms.py:98
+#: apps/admin/forums/forms.py:100 apps/admin/forums/forms.py:121
 msgid "Category Description"
 msgid "Category Description"
 msgstr "Opis kategorii"
 msgstr "Opis kategorii"
 
 
-#: apps/admin/forums/forms.py:99
+#: apps/admin/forums/forms.py:102 apps/admin/forums/forms.py:122
 msgid "Closed Category"
 msgid "Closed Category"
 msgstr "Kategoria zamknięta"
 msgstr "Kategoria zamknięta"
 
 
-#: apps/admin/forums/forms.py:105
+#: apps/admin/forums/forms.py:104 apps/admin/forums/forms.py:130
+msgid "Category Style"
+msgstr "Styl kategorii"
+
+#: apps/admin/forums/forms.py:105 apps/admin/forums/forms.py:130
+msgid ""
+"You can add custom CSS classess to this category, to change way it looks on "
+"board index."
+msgstr ""
+"Możesz zdefiniować specjalne klasy CSS, które zmienią wygląd kategorii w na "
+"stronie głównej forum."
+
+#: apps/admin/forums/forms.py:107 apps/admin/forums/forms.py:128
 msgid "Category Attributes"
 msgid "Category Attributes"
 msgstr "Atrybuty kategorii"
 msgstr "Atrybuty kategorii"
 
 
-#: apps/admin/forums/forms.py:105
+#: apps/admin/forums/forms.py:108 apps/admin/forums/forms.py:128
 msgid ""
 msgid ""
 "Custom templates can check categories for predefined attributes that will "
 "Custom templates can check categories for predefined attributes that will "
 "change way they are rendered."
 "change way they are rendered."
@@ -1339,7 +1327,7 @@ msgstr ""
 "Specjalne szablony, mogą różnie wyświetlać kategorie, w zależności od "
 "Specjalne szablony, mogą różnie wyświetlać kategorie, w zależności od "
 "zdefiniowanych atrybutów."
 "zdefiniowanych atrybutów."
 
 
-#: apps/admin/forums/forms.py:106
+#: apps/admin/forums/forms.py:111 apps/admin/forums/forms.py:129
 msgid ""
 msgid ""
 "Allows you to prevent this category subforums from displaying statistics, "
 "Allows you to prevent this category subforums from displaying statistics, "
 "last post data, etc. ect. on forums lists."
 "last post data, etc. ect. on forums lists."
@@ -1347,51 +1335,46 @@ msgstr ""
 "Umożliwia wyłączenie wyświetlania statystyk (np. informacji o ostatnim "
 "Umożliwia wyłączenie wyświetlania statystyk (np. informacji o ostatnim "
 "poście) dla podforów danej kategorii."
 "poście) dla podforów danej kategorii."
 
 
-#: apps/admin/forums/forms.py:107
-msgid "Category Style"
-msgstr "Styl kategorii"
+#: apps/admin/forums/forms.py:118 apps/admin/forums/views.py:267
+msgid "Category Parent"
+msgstr "Rodzic kategorii"
 
 
-#: apps/admin/forums/forms.py:107
-msgid ""
-"You can add custom CSS classess to this category, to change way it looks on "
-"board index."
-msgstr ""
-"Możesz zdefiniować specjalne klasy CSS, które zmienią wygląd kategorii w na "
-"stronie głównej forum."
+#: apps/admin/forums/forms.py:144 apps/admin/forums/forms.py:175
+msgid "Forum Name"
+msgstr "Nazwa forum"
 
 
-#: apps/admin/forums/forms.py:121
+#: apps/admin/forums/forms.py:146
 msgid "Forum name must contain alphanumeric characters."
 msgid "Forum name must contain alphanumeric characters."
 msgstr "Nazwa forum nie może składać się wyłącznie ze znaków specjlanych."
 msgstr "Nazwa forum nie może składać się wyłącznie ze znaków specjlanych."
 
 
-#: apps/admin/forums/forms.py:122
+#: apps/admin/forums/forms.py:147
 msgid "Forum name is too long."
 msgid "Forum name is too long."
 msgstr "Nazwa forum jest zbyt długa."
 msgstr "Nazwa forum jest zbyt długa."
 
 
-#: apps/admin/forums/forms.py:136
-msgid "Forum Parent"
-msgstr "Rodzic forum"
-
-#: apps/admin/forums/forms.py:138
-msgid "Forum Name"
-msgstr "Nazwa forum"
-
-#: apps/admin/forums/forms.py:139
+#: apps/admin/forums/forms.py:149 apps/admin/forums/forms.py:176
 msgid "Forum Description"
 msgid "Forum Description"
 msgstr "Opis forum"
 msgstr "Opis forum"
 
 
-#: apps/admin/forums/forms.py:140
+#: apps/admin/forums/forms.py:151 apps/admin/forums/forms.py:177
 msgid "Closed Forum"
 msgid "Closed Forum"
 msgstr "Zamknięte forum"
 msgstr "Zamknięte forum"
 
 
-#: apps/admin/forums/forms.py:144
-msgid "Prune Forum"
-msgstr "Automatyczne czyszczenie forum"
+#: apps/admin/forums/forms.py:153 apps/admin/forums/forms.py:193
+msgid "Forum Style"
+msgstr "Styl forum"
 
 
-#: apps/admin/forums/forms.py:146
+#: apps/admin/forums/forms.py:154 apps/admin/forums/forms.py:193
+msgid ""
+"You can add custom CSS classess to this forum to change way it looks on "
+"forums lists."
+msgstr ""
+"Możesz dodać własne klasy CSS, aby zmienić wygląd tego forum na liście forów."
+
+#: apps/admin/forums/forms.py:156 apps/admin/forums/forms.py:183
 msgid "Delete threads with first post older than"
 msgid "Delete threads with first post older than"
 msgstr "Usuń tematy, których pierwszy post jest starszy niż"
 msgstr "Usuń tematy, których pierwszy post jest starszy niż"
 
 
-#: apps/admin/forums/forms.py:146
+#: apps/admin/forums/forms.py:157 apps/admin/forums/forms.py:183
 msgid ""
 msgid ""
 "Enter number of days since thread start after which thread will be deleted "
 "Enter number of days since thread start after which thread will be deleted "
 "or zero to don't delete threads."
 "or zero to don't delete threads."
@@ -1399,11 +1382,11 @@ msgstr ""
 "Podaj ilość dni od rozpoczęcia tematu, po których zostanie on usunięty. "
 "Podaj ilość dni od rozpoczęcia tematu, po których zostanie on usunięty. "
 "Wpisz 0, aby wyłączyć usuwanie na podstawie tego kryterium."
 "Wpisz 0, aby wyłączyć usuwanie na podstawie tego kryterium."
 
 
-#: apps/admin/forums/forms.py:147
+#: apps/admin/forums/forms.py:159 apps/admin/forums/forms.py:184
 msgid "Delete threads with last post older than"
 msgid "Delete threads with last post older than"
 msgstr "Usuń tematy, których ostatni post jest starszy niż"
 msgstr "Usuń tematy, których ostatni post jest starszy niż"
 
 
-#: apps/admin/forums/forms.py:147
+#: apps/admin/forums/forms.py:160 apps/admin/forums/forms.py:184
 msgid ""
 msgid ""
 "Enter number of days since since last reply in thread after which thread "
 "Enter number of days since since last reply in thread after which thread "
 "will be deleted or zero to don't delete threads."
 "will be deleted or zero to don't delete threads."
@@ -1411,23 +1394,13 @@ msgstr ""
 "Podaj ilość dni od ostatniej odpowiedzi w temacie, po których zostanie on "
 "Podaj ilość dni od ostatniej odpowiedzi w temacie, po których zostanie on "
 "usunięty. Wpisz 0, aby wyłączyć usuwanie na podstawie tego kryterium."
 "usunięty. Wpisz 0, aby wyłączyć usuwanie na podstawie tego kryterium."
 
 
-#: apps/admin/forums/forms.py:148
-msgid "Archive pruned threads?"
-msgstr "Czy archiwizować automatycznie usuwane tematy?"
-
-#: apps/admin/forums/forms.py:148
-msgid ""
-"If you want, you can archive pruned threads in other forum instead of "
-"deleting them."
-msgstr ""
-"Jeżeli chcesz, możesz zamiast usuwać, archiwizować stare tematy, podczas "
-"automatycznego czyszczenia forum."
-
-#: apps/admin/forums/forms.py:154 apps/admin/forums/forms.py:197
+#: apps/admin/forums/forms.py:162 apps/admin/forums/forms.py:191
+#: apps/admin/forums/forms.py:237
 msgid "Forum Attributes"
 msgid "Forum Attributes"
 msgstr "Atrybuty forum"
 msgstr "Atrybuty forum"
 
 
-#: apps/admin/forums/forms.py:154 apps/admin/forums/forms.py:197
+#: apps/admin/forums/forms.py:163 apps/admin/forums/forms.py:191
+#: apps/admin/forums/forms.py:237
 msgid ""
 msgid ""
 "Custom templates can check forums for predefined attributes that will change "
 "Custom templates can check forums for predefined attributes that will change "
 "way subforums lists are rendered."
 "way subforums lists are rendered."
@@ -1435,7 +1408,7 @@ msgstr ""
 "Niestandardowe szablony moga szukać w forach predefiniowanych atrybutów i na "
 "Niestandardowe szablony moga szukać w forach predefiniowanych atrybutów i na "
 "ich podstawie zmieniać wygląd listy subforów."
 "ich podstawie zmieniać wygląd listy subforów."
 
 
-#: apps/admin/forums/forms.py:155
+#: apps/admin/forums/forms.py:166 apps/admin/forums/forms.py:192
 msgid ""
 msgid ""
 "Allows you to prevent this forum's subforums from displaying statistics, "
 "Allows you to prevent this forum's subforums from displaying statistics, "
 "last post data, etc. ect. on subforums list."
 "last post data, etc. ect. on subforums list."
@@ -1443,50 +1416,59 @@ msgstr ""
 "Umożliwia wyłączenie wyświetlania statystyk i danych (typu ostatni post) na "
 "Umożliwia wyłączenie wyświetlania statystyk i danych (typu ostatni post) na "
 "liście subforów tego forum."
 "liście subforów tego forum."
 
 
-#: apps/admin/forums/forms.py:156
-msgid "Forum Style"
-msgstr "Styl forum"
+#: apps/admin/forums/forms.py:173 apps/admin/forums/views.py:269
+msgid "Forum Parent"
+msgstr "Rodzic forum"
+
+#: apps/admin/forums/forms.py:181
+msgid "Prune Forum"
+msgstr "Automatyczne czyszczenie forum"
+
+#: apps/admin/forums/forms.py:185 apps/admin/forums/forms.py:201
+msgid "Archive pruned threads?"
+msgstr "Czy archiwizować automatycznie usuwane tematy?"
 
 
-#: apps/admin/forums/forms.py:156
+#: apps/admin/forums/forms.py:185 apps/admin/forums/forms.py:202
 msgid ""
 msgid ""
-"You can add custom CSS classess to this forum to change way it looks on "
-"forums lists."
+"If you want, you can archive pruned threads in other forum instead of "
+"deleting them."
 msgstr ""
 msgstr ""
-"Możesz dodać własne klasy CSS, aby zmienić wygląd tego forum na liście forów."
+"Jeżeli chcesz, możesz zamiast usuwać, archiwizować stare tematy, podczas "
+"automatycznego czyszczenia forum."
 
 
-#: apps/admin/forums/forms.py:163
+#: apps/admin/forums/forms.py:203
 msgid "Don't archive pruned threads"
 msgid "Don't archive pruned threads"
 msgstr "Nie archiwizuj automatycznie usuwanych tematów."
 msgstr "Nie archiwizuj automatycznie usuwanych tematów."
 
 
-#: apps/admin/forums/forms.py:168
+#: apps/admin/forums/forms.py:208
 msgid "Forum cannot be its own archive."
 msgid "Forum cannot be its own archive."
 msgstr "Forum nie może stanowić swojego własnego archiwum."
 msgstr "Forum nie może stanowić swojego własnego archiwum."
 
 
-#: apps/admin/forums/forms.py:176
+#: apps/admin/forums/forms.py:216
 msgid "Redirect name must contain alphanumeric characters."
 msgid "Redirect name must contain alphanumeric characters."
 msgstr "Nazwa przekierowania nie może się składać tylko ze znaków specjalnych."
 msgstr "Nazwa przekierowania nie może się składać tylko ze znaków specjalnych."
 
 
-#: apps/admin/forums/forms.py:177
+#: apps/admin/forums/forms.py:217
 msgid "Redirect name is too long."
 msgid "Redirect name is too long."
 msgstr "Nazwa przekierowania jest zbyt długa."
 msgstr "Nazwa przekierowania jest zbyt długa."
 
 
-#: apps/admin/forums/forms.py:187
+#: apps/admin/forums/forms.py:227 apps/admin/forums/views.py:271
 msgid "Redirect Parent"
 msgid "Redirect Parent"
 msgstr "Rodzic przekierowania"
 msgstr "Rodzic przekierowania"
 
 
-#: apps/admin/forums/forms.py:189
+#: apps/admin/forums/forms.py:229
 msgid "Redirect Name"
 msgid "Redirect Name"
 msgstr "Nazwa przekierowania"
 msgstr "Nazwa przekierowania"
 
 
-#: apps/admin/forums/forms.py:191
+#: apps/admin/forums/forms.py:231
 msgid "Redirect Description"
 msgid "Redirect Description"
 msgstr "Opis przekierowania"
 msgstr "Opis przekierowania"
 
 
-#: apps/admin/forums/forms.py:198
+#: apps/admin/forums/forms.py:238
 msgid "Redirect Style"
 msgid "Redirect Style"
 msgstr "Styl przekierowania"
 msgstr "Styl przekierowania"
 
 
-#: apps/admin/forums/forms.py:198
+#: apps/admin/forums/forms.py:238
 msgid ""
 msgid ""
 "You can add custom CSS classess to this redirect to change way it looks on "
 "You can add custom CSS classess to this redirect to change way it looks on "
 "forums lists."
 "forums lists."
@@ -1494,32 +1476,28 @@ msgstr ""
 "Do przekierowania możesz przypisać specjalną klasę CSS, aby zmienić jego "
 "Do przekierowania możesz przypisać specjalną klasę CSS, aby zmienić jego "
 "wygląd na liście forów."
 "wygląd na liście forów."
 
 
-#: apps/admin/forums/forms.py:210
-msgid "Delete Options"
-msgstr "Opcje usuwania"
-
-#: apps/admin/forums/forms.py:212
+#: apps/admin/forums/forms.py:254
 msgid "Move threads to"
 msgid "Move threads to"
 msgstr "Przenieś tematy do"
 msgstr "Przenieś tematy do"
 
 
-#: apps/admin/forums/forms.py:213
-msgid "Move subforums to"
-msgstr "Przenieś subfora do"
-
-#: apps/admin/forums/forms.py:223 apps/admin/forums/forms.py:224
-#: apps/admin/forums/views.py:358
+#: apps/admin/forums/forms.py:255 apps/admin/forums/forms.py:257
+#: apps/admin/forums/views.py:366
 msgid "Remove with forum"
 msgid "Remove with forum"
 msgstr "Usuń razem z forum"
 msgstr "Usuń razem z forum"
 
 
-#: apps/admin/forums/forms.py:230
+#: apps/admin/forums/forms.py:256 apps/admin/forums/views.py:365
+msgid "Move subforums to"
+msgstr "Przenieś subfora do"
+
+#: apps/admin/forums/forms.py:263
 msgid "Categories cannot contain threads."
 msgid "Categories cannot contain threads."
 msgstr "Kategorie nie mogą zawierać tematów."
 msgstr "Kategorie nie mogą zawierać tematów."
 
 
-#: apps/admin/forums/forms.py:232
+#: apps/admin/forums/forms.py:265
 msgid "Redirects cannot contain threads."
 msgid "Redirects cannot contain threads."
 msgstr "Przekierowania nie mogą zawierać tematów."
 msgstr "Przekierowania nie mogą zawierać tematów."
 
 
-#: apps/admin/forums/forms.py:238
+#: apps/admin/forums/forms.py:271
 msgid ""
 msgid ""
 "Destination you want to move this forum's threads to will be deleted with "
 "Destination you want to move this forum's threads to will be deleted with "
 "this forum."
 "this forum."
@@ -1527,97 +1505,97 @@ msgstr ""
 "Nowe miejsce do, którego miałyby zostać przeniesione tematy, zostałoby "
 "Nowe miejsce do, którego miałyby zostać przeniesione tematy, zostałoby "
 "usunięte wraz z usuwanym forum."
 "usunięte wraz z usuwanym forum."
 
 
-#: apps/admin/forums/views.py:32
+#: apps/admin/forums/views.py:34
 msgid "You have to select at least one forum."
 msgid "You have to select at least one forum."
 msgstr "Musisz zaznaczyć przynajmniej jedno forum."
 msgstr "Musisz zaznaczyć przynajmniej jedno forum."
 
 
-#: apps/admin/forums/views.py:34
+#: apps/admin/forums/views.py:36
 msgid "Resynchronize forums (fast)"
 msgid "Resynchronize forums (fast)"
 msgstr "Zsynchronizuj fora (szybko)"
 msgstr "Zsynchronizuj fora (szybko)"
 
 
-#: apps/admin/forums/views.py:35
+#: apps/admin/forums/views.py:37
 msgid "Resynchronize forums"
 msgid "Resynchronize forums"
 msgstr "Zsynchronizuj fora"
 msgstr "Zsynchronizuj fora"
 
 
-#: apps/admin/forums/views.py:37 apps/admin/roles/views.py:125
+#: apps/admin/forums/views.py:39 apps/admin/roles/views.py:124
 msgid "No forums are currently defined."
 msgid "No forums are currently defined."
 msgstr "Nie zdefiniowano jeszcze żadnych forów."
 msgstr "Nie zdefiniowano jeszcze żadnych forów."
 
 
-#: apps/admin/forums/views.py:48
+#: apps/admin/forums/views.py:50
 msgid "Move Category Up"
 msgid "Move Category Up"
 msgstr "Przesuń kategorię w górę"
 msgstr "Przesuń kategorię w górę"
 
 
-#: apps/admin/forums/views.py:49
+#: apps/admin/forums/views.py:51
 msgid "Move Category Down"
 msgid "Move Category Down"
 msgstr "Przesuń kategorię w dół"
 msgstr "Przesuń kategorię w dół"
 
 
-#: apps/admin/forums/views.py:50 apps/admin/forums/views.py:256
+#: apps/admin/forums/views.py:52 apps/admin/forums/views.py:256
 msgid "Edit Category"
 msgid "Edit Category"
 msgstr "Zmodyfikuj kategorię"
 msgstr "Zmodyfikuj kategorię"
 
 
-#: apps/admin/forums/views.py:51 apps/admin/forums/views.py:345
+#: apps/admin/forums/views.py:53 apps/admin/forums/views.py:352
 msgid "Delete Category"
 msgid "Delete Category"
 msgstr "Usuń kategorię"
 msgstr "Usuń kategorię"
 
 
-#: apps/admin/forums/views.py:56
+#: apps/admin/forums/views.py:58
 msgid "Move Forum Up"
 msgid "Move Forum Up"
 msgstr "Przesuń forum w górę"
 msgstr "Przesuń forum w górę"
 
 
-#: apps/admin/forums/views.py:57
+#: apps/admin/forums/views.py:59
 msgid "Move Forum Down"
 msgid "Move Forum Down"
 msgstr "Przesuń forum w dół"
 msgstr "Przesuń forum w dół"
 
 
-#: apps/admin/forums/views.py:58 apps/admin/forums/views.py:241
+#: apps/admin/forums/views.py:60 apps/admin/forums/views.py:241
 msgid "Edit Forum"
 msgid "Edit Forum"
 msgstr "Zmodyfikuj forum"
 msgstr "Zmodyfikuj forum"
 
 
-#: apps/admin/forums/views.py:59 apps/admin/forums/views.py:332
-#: templates/admin/forums/delete.html:4
+#: apps/admin/forums/views.py:61 apps/admin/forums/views.py:339
+#: templates/admin/forums/delete.html:10
 msgid "Delete Forum"
 msgid "Delete Forum"
 msgstr "Usuń forum"
 msgstr "Usuń forum"
 
 
-#: apps/admin/forums/views.py:63
+#: apps/admin/forums/views.py:65
 msgid "Move Redirect Up"
 msgid "Move Redirect Up"
 msgstr "Przesuń przekierowanie w górę"
 msgstr "Przesuń przekierowanie w górę"
 
 
-#: apps/admin/forums/views.py:64
+#: apps/admin/forums/views.py:66
 msgid "Move Redirect Down"
 msgid "Move Redirect Down"
 msgstr "Przesuń przekierowanie w doł"
 msgstr "Przesuń przekierowanie w doł"
 
 
-#: apps/admin/forums/views.py:65 apps/admin/forums/views.py:259
+#: apps/admin/forums/views.py:67 apps/admin/forums/views.py:259
 msgid "Edit Redirect"
 msgid "Edit Redirect"
 msgstr "Zmodyfikuj przekierowanie"
 msgstr "Zmodyfikuj przekierowanie"
 
 
-#: apps/admin/forums/views.py:66 apps/admin/forums/views.py:347
+#: apps/admin/forums/views.py:68 apps/admin/forums/views.py:354
 msgid "Delete Redirect"
 msgid "Delete Redirect"
 msgstr "Usuń przekierowanie"
 msgstr "Usuń przekierowanie"
 
 
-#: apps/admin/forums/views.py:74
+#: apps/admin/forums/views.py:76
 msgid "Selected forums have been resynchronized successfully."
 msgid "Selected forums have been resynchronized successfully."
 msgstr "Zaznaczone fora zostały pomyślnie zsynchronizowane."
 msgstr "Zaznaczone fora zostały pomyślnie zsynchronizowane."
 
 
-#: apps/admin/forums/views.py:82
+#: apps/admin/forums/views.py:84
 msgid "Only forums can be resynchronized."
 msgid "Only forums can be resynchronized."
 msgstr "Zsynchronizowane mogą zostać jedynie fora."
 msgstr "Zsynchronizowane mogą zostać jedynie fora."
 
 
-#: apps/admin/forums/views.py:91
+#: apps/admin/forums/views.py:93
 msgid "No forums to resynchronize."
 msgid "No forums to resynchronize."
 msgstr "Nie zdefiniowano forów do synchronizacji."
 msgstr "Nie zdefiniowano forów do synchronizacji."
 
 
-#: apps/admin/forums/views.py:99
+#: apps/admin/forums/views.py:101
 msgid "Forum for resynchronization does not exist."
 msgid "Forum for resynchronization does not exist."
 msgstr "Wskazane forum do zsynchronizowania nie istnieje."
 msgstr "Wskazane forum do zsynchronizowania nie istnieje."
 
 
-#: apps/admin/forums/views.py:115
+#: apps/admin/forums/views.py:117
 msgid "Resynchronizing Forums"
 msgid "Resynchronizing Forums"
 msgstr "Synchronizowanie forów"
 msgstr "Synchronizowanie forów"
 
 
-#: apps/admin/forums/views.py:117
+#: apps/admin/forums/views.py:119
 #, python-format
 #, python-format
 msgid "Resynchronized %(progress)s from %(total)s threads"
 msgid "Resynchronized %(progress)s from %(total)s threads"
 msgstr "Zsynchronizowano %(progress)s z %(total)s tematów"
 msgstr "Zsynchronizowano %(progress)s z %(total)s tematów"
 
 
-#: apps/admin/forums/views.py:138
+#: apps/admin/forums/views.py:140
 msgid "Save Node"
 msgid "Save Node"
 msgstr "Zapisz węzeł"
 msgstr "Zapisz węzeł"
 
 
@@ -1634,7 +1612,7 @@ msgid "New Redirect has been created."
 msgstr "Pomyślnie utworzono nowe przekierowanie."
 msgstr "Pomyślnie utworzono nowe przekierowanie."
 
 
 #: apps/admin/forums/views.py:214 apps/admin/forums/views.py:228
 #: apps/admin/forums/views.py:214 apps/admin/forums/views.py:228
-#: apps/admin/forums/views.py:245 apps/admin/forums/views.py:337
+#: apps/admin/forums/views.py:245 apps/admin/forums/views.py:344
 msgid "Requested Forum could not be found."
 msgid "Requested Forum could not be found."
 msgstr "Żądane forum nie zostało odnalezione."
 msgstr "Żądane forum nie zostało odnalezione."
 
 
@@ -1664,44 +1642,40 @@ msgstr ""
 "Forum \"%(name)s\" jest ostatnie na tym poziomie i odgałęzieniu. Nie może "
 "Forum \"%(name)s\" jest ostatnie na tym poziomie i odgałęzieniu. Nie może "
 "być przesunięte niżej."
 "być przesunięte niżej."
 
 
-#: apps/admin/forums/views.py:326
+#: apps/admin/forums/views.py:333
 #, python-format
 #, python-format
 msgid "Changes in forum \"%(name)s\" have been saved."
 msgid "Changes in forum \"%(name)s\" have been saved."
 msgstr "Pomyślnie zachowano zmiany w forum \"%(name)s\"."
 msgstr "Pomyślnie zachowano zmiany w forum \"%(name)s\"."
 
 
-#: apps/admin/forums/views.py:381
+#: apps/admin/forums/views.py:389
 #, python-format
 #, python-format
 msgid "Forum \"%(name)s\" has been deleted."
 msgid "Forum \"%(name)s\" has been deleted."
 msgstr "Forum \"%(name)s\" zostało usunięte."
 msgstr "Forum \"%(name)s\" zostało usunięte."
 
 
-#: apps/admin/newsletters/forms.py:10
-msgid "Newsletter name must contain alphanumeric characters."
-msgstr "Nazwa newslettera nie może składać się tylko ze znaków specjalnych."
-
-#: apps/admin/newsletters/forms.py:11
-msgid "Newsletter name is too long."
-msgstr "Nazwa newslettera jest zbyt długa."
-
-#: apps/admin/newsletters/forms.py:21
-msgid "Newsletter Options"
-msgstr "Opcje newslettera"
-
-#: apps/admin/newsletters/forms.py:23 apps/admin/newsletters/forms.py:49
+#: apps/admin/newsletters/forms.py:9 apps/admin/newsletters/forms.py:33
 msgid "Newsletter Name"
 msgid "Newsletter Name"
 msgstr "Nazwa newslettera"
 msgstr "Nazwa newslettera"
 
 
-#: apps/admin/newsletters/forms.py:23
+#: apps/admin/newsletters/forms.py:10
 msgid ""
 msgid ""
 "Newsletter name will be used as message subject in e-mails sent to members."
 "Newsletter name will be used as message subject in e-mails sent to members."
 msgstr ""
 msgstr ""
 "Nazwa newslettera zostanie użyta jako temat wiadomości e-mail wysłanych do "
 "Nazwa newslettera zostanie użyta jako temat wiadomości e-mail wysłanych do "
 "członków forum."
 "członków forum."
 
 
-#: apps/admin/newsletters/forms.py:24
+#: apps/admin/newsletters/forms.py:12
+msgid "Newsletter name must contain alphanumeric characters."
+msgstr "Nazwa newslettera nie może składać się tylko ze znaków specjalnych."
+
+#: apps/admin/newsletters/forms.py:13
+msgid "Newsletter name is too long."
+msgstr "Nazwa newslettera jest zbyt długa."
+
+#: apps/admin/newsletters/forms.py:15
 msgid "Step Size"
 msgid "Step Size"
 msgstr "Użytkowników na jeden krok wysyłania"
 msgstr "Użytkowników na jeden krok wysyłania"
 
 
-#: apps/admin/newsletters/forms.py:24
+#: apps/admin/newsletters/forms.py:16
 msgid ""
 msgid ""
 "Number of users that message will be sent to before forum refreshes page "
 "Number of users that message will be sent to before forum refreshes page "
 "displaying sending progress."
 "displaying sending progress."
@@ -1711,51 +1685,21 @@ msgstr ""
 "wysyłanie. Zbyt duża liczba uniemożliwi Ci kontrolowanie procesu i może "
 "wysyłanie. Zbyt duża liczba uniemożliwi Ci kontrolowanie procesu i może "
 "zbytnio obciążyć serwer."
 "zbytnio obciążyć serwer."
 
 
-#: apps/admin/newsletters/forms.py:25
-msgid "Limit to roles"
-msgstr "Roześlij tylko do posiadaczy rangi"
-
-#: apps/admin/newsletters/forms.py:25
-msgid ""
-"You can limit this newsletter only to members who have specific ranks. If "
-"you dont set any ranks, this newsletter will be sent to every user."
-msgstr ""
-"Możesz przeznaczyć ten newsletter tylko dla posiadaczy wybranych rang. "
-"Jeżeli nie zaznaczysz żadnych rangi, newsletter zostanie wysłany do "
-"wszystkich użytkowników."
-
-#: apps/admin/newsletters/forms.py:26
-msgid "Ignore members preferences"
-msgstr "Ignoruj preferencje użytkowników"
-
-#: apps/admin/newsletters/forms.py:26
-msgid ""
-"Change this option to yes if you want to send this newsletter to members "
-"that don't want to receive newsletters. This is good for emergencies."
-msgstr ""
-"Ustaw tę opcję na \"Tak\", w celu rozesłania newslettera nawet do członków, "
-"którzy nie wyrazili chęci otrzymywania newsletterów. Opcja przydatna w "
-"sytuacjach krytycznych."
-
-#: apps/admin/newsletters/forms.py:30
-msgid "Message"
-msgstr "Wiadomość"
-
-#: apps/admin/newsletters/forms.py:32
+#: apps/admin/newsletters/forms.py:18
 msgid "HTML Message"
 msgid "HTML Message"
 msgstr "Wiadomość w formacie HTML"
 msgstr "Wiadomość w formacie HTML"
 
 
-#: apps/admin/newsletters/forms.py:32
+#: apps/admin/newsletters/forms.py:19
 msgid "HTML message visible to members who can read HTML e-mails."
 msgid "HTML message visible to members who can read HTML e-mails."
 msgstr ""
 msgstr ""
 "Wiadomość w formacie HTML dla członków z klientami pocztowymi "
 "Wiadomość w formacie HTML dla członków z klientami pocztowymi "
 "wyświetlającymi HTML."
 "wyświetlającymi HTML."
 
 
-#: apps/admin/newsletters/forms.py:33
+#: apps/admin/newsletters/forms.py:21
 msgid "Plain Text Message"
 msgid "Plain Text Message"
 msgstr "Wiadomość w czystym tekście"
 msgstr "Wiadomość w czystym tekście"
 
 
-#: apps/admin/newsletters/forms.py:33
+#: apps/admin/newsletters/forms.py:22
 msgid ""
 msgid ""
 "Alternative plain text message that will be visible to members that can't or "
 "Alternative plain text message that will be visible to members that can't or "
 "dont want to read HTML e-mails."
 "dont want to read HTML e-mails."
@@ -1763,159 +1707,161 @@ msgstr ""
 "Alternatywna forma wiadomości - czysty tekst, który będzie wyświetlany w "
 "Alternatywna forma wiadomości - czysty tekst, który będzie wyświetlany w "
 "przypadku programu pocztowego z brakiem obsługi HTML."
 "przypadku programu pocztowego z brakiem obsługi HTML."
 
 
-#: apps/admin/newsletters/forms.py:42
-msgid "Only to subscribers"
-msgstr "Tylko dla zapisanych do newslettera"
+#: apps/admin/newsletters/forms.py:24
+msgid "Ignore members preferences"
+msgstr "Ignoruj preferencje użytkowników"
 
 
-#: apps/admin/newsletters/forms.py:42
-msgid "To every member"
-msgstr "Dla każdego użytkownika"
+#: apps/admin/newsletters/forms.py:25
+msgid ""
+"Change this option to yes if you want to send this newsletter to members "
+"that don't want to receive newsletters. This is good for emergencies."
+msgstr ""
+"Ustaw tę opcję na \"Tak\", w celu rozesłania newslettera nawet do członków, "
+"którzy nie wyrazili chęci otrzymywania newsletterów. Opcja przydatna w "
+"sytuacjach krytycznych."
 
 
-#: apps/admin/newsletters/forms.py:47
-msgid "Search Newsletters"
-msgstr "Wyszukiwanie newsletterów"
+#: apps/admin/newsletters/forms.py:27
+msgid "Limit to roles"
+msgstr "Roześlij tylko do posiadaczy rangi"
 
 
-#: apps/admin/newsletters/forms.py:49
-msgid "Name contains..."
-msgstr "Nazwa zawiera..."
+#: apps/admin/newsletters/forms.py:28
+msgid ""
+"You can limit this newsletter only to members who have specific ranks. If "
+"you dont set any ranks, this newsletter will be sent to every user."
+msgstr ""
+"Możesz przeznaczyć ten newsletter tylko dla posiadaczy wybranych rang. "
+"Jeżeli nie zaznaczysz żadnych rangi, newsletter zostanie wysłany do "
+"wszystkich użytkowników."
 
 
-#: apps/admin/newsletters/forms.py:50
+#: apps/admin/newsletters/forms.py:35
 msgid "Message Contents"
 msgid "Message Contents"
 msgstr "Wiadomość zawiera"
 msgstr "Wiadomość zawiera"
 
 
-#: apps/admin/newsletters/forms.py:50
-msgid "Message contains..."
-msgstr "Wiadomość zawiera..."
-
-#: apps/admin/newsletters/forms.py:51
+#: apps/admin/newsletters/forms.py:37
 msgid "Newsletter Type"
 msgid "Newsletter Type"
 msgstr "Typ newslettera"
 msgstr "Typ newslettera"
 
 
-#: apps/admin/newsletters/forms.py:52
+#: apps/admin/newsletters/forms.py:38
+msgid "Only to subscribers"
+msgstr "Tylko dla zapisanych do newslettera"
+
+#: apps/admin/newsletters/forms.py:38
+msgid "To every member"
+msgstr "Dla każdego użytkownika"
+
+#: apps/admin/newsletters/forms.py:39
 msgid "Recipient Rank"
 msgid "Recipient Rank"
 msgstr "Przeznaczony dla rangi"
 msgstr "Przeznaczony dla rangi"
 
 
-#: apps/admin/newsletters/views.py:28
+#: apps/admin/newsletters/views.py:29
 msgid "Newsletter"
 msgid "Newsletter"
 msgstr "Newsletter"
 msgstr "Newsletter"
 
 
-#: apps/admin/newsletters/views.py:30
+#: apps/admin/newsletters/views.py:31
 msgid "You have to check at least one newsletter."
 msgid "You have to check at least one newsletter."
 msgstr "Musisz zaznaczyć przynajmniej jeden newsletter."
 msgstr "Musisz zaznaczyć przynajmniej jeden newsletter."
 
 
-#: apps/admin/newsletters/views.py:32
+#: apps/admin/newsletters/views.py:33
 msgid "Delete selected newsletters"
 msgid "Delete selected newsletters"
 msgstr "Usuń zaznaczone newslettery"
 msgstr "Usuń zaznaczone newslettery"
 
 
-#: apps/admin/newsletters/views.py:32
+#: apps/admin/newsletters/views.py:33
 msgid "Are you sure you want to delete selected newsletters?"
 msgid "Are you sure you want to delete selected newsletters?"
 msgstr "Czy aby na pewno chcesz usunąć zaznaczone newslettery?"
 msgstr "Czy aby na pewno chcesz usunąć zaznaczone newslettery?"
 
 
-#: apps/admin/newsletters/views.py:53
+#: apps/admin/newsletters/views.py:54
 msgid "Send Newsletter"
 msgid "Send Newsletter"
 msgstr "Wyślij newsletter"
 msgstr "Wyślij newsletter"
 
 
-#: apps/admin/newsletters/views.py:54 apps/admin/newsletters/views.py:97
+#: apps/admin/newsletters/views.py:55 apps/admin/newsletters/views.py:98
 msgid "Edit Newsletter"
 msgid "Edit Newsletter"
 msgstr "Zmodyfikuj newsletter"
 msgstr "Zmodyfikuj newsletter"
 
 
-#: apps/admin/newsletters/views.py:55
+#: apps/admin/newsletters/views.py:56
 msgid "Delete Newsletter"
 msgid "Delete Newsletter"
 msgstr "Usuń newsletter"
 msgstr "Usuń newsletter"
 
 
-#: apps/admin/newsletters/views.py:55
+#: apps/admin/newsletters/views.py:56
 msgid "Are you sure you want to delete this newsletter?"
 msgid "Are you sure you want to delete this newsletter?"
 msgstr "Czy na pewno chcesz usunąć ten newsletter?"
 msgstr "Czy na pewno chcesz usunąć ten newsletter?"
 
 
-#: apps/admin/newsletters/views.py:60
+#: apps/admin/newsletters/views.py:61
 msgid "Selected newsletters have been deleted successfully."
 msgid "Selected newsletters have been deleted successfully."
 msgstr "Zaznaczone newslettery zostały pomyślnie usunięte."
 msgstr "Zaznaczone newslettery zostały pomyślnie usunięte."
 
 
-#: apps/admin/newsletters/views.py:68
+#: apps/admin/newsletters/views.py:69
 msgid "Save Newsletter"
 msgid "Save Newsletter"
 msgstr "Zapisz newsletter"
 msgstr "Zapisz newsletter"
 
 
-#: apps/admin/newsletters/views.py:91
+#: apps/admin/newsletters/views.py:92
 msgid "New Newsletter has been created."
 msgid "New Newsletter has been created."
 msgstr "Nowy newsletter został utworzony."
 msgstr "Nowy newsletter został utworzony."
 
 
-#: apps/admin/newsletters/views.py:101 apps/admin/newsletters/views.py:201
+#: apps/admin/newsletters/views.py:102 apps/admin/newsletters/views.py:202
 msgid "Requested Newsletter could not be found."
 msgid "Requested Newsletter could not be found."
 msgstr "Żądany newsletter nie został odnaleziony."
 msgstr "Żądany newsletter nie został odnaleziony."
 
 
-#: apps/admin/newsletters/views.py:134
+#: apps/admin/newsletters/views.py:135
 #, python-format
 #, python-format
 msgid "Changes in newsletter \"%(name)s\" have been saved."
 msgid "Changes in newsletter \"%(name)s\" have been saved."
 msgstr "Zmiany w newsletterze \"%(name)s\" zostały zachowane."
 msgstr "Zmiany w newsletterze \"%(name)s\" zostały zachowane."
 
 
-#: apps/admin/newsletters/views.py:141
+#: apps/admin/newsletters/views.py:142
 msgid "Requested newsletter could not be found."
 msgid "Requested newsletter could not be found."
 msgstr "Żądany newsletter nie został odnaleziony."
 msgstr "Żądany newsletter nie został odnaleziony."
 
 
-#: apps/admin/newsletters/views.py:145
+#: apps/admin/newsletters/views.py:146
 #, python-format
 #, python-format
 msgid "Newsletter \"%(name)s\"\" has been deleted."
 msgid "Newsletter \"%(name)s\"\" has been deleted."
 msgstr "Newsletter \"%(name)s\" został usunięty."
 msgstr "Newsletter \"%(name)s\" został usunięty."
 
 
-#: apps/admin/newsletters/views.py:161
+#: apps/admin/newsletters/views.py:162
 #, python-format
 #, python-format
 msgid "No recipients for newsletter \"%(newsletter)s\" could be found."
 msgid "No recipients for newsletter \"%(newsletter)s\" could be found."
 msgstr "Nie odnaleziono żadnych odbiorców newslettera \"%(newsletter)s\"."
 msgstr "Nie odnaleziono żadnych odbiorców newslettera \"%(newsletter)s\"."
 
 
-#: apps/admin/newsletters/views.py:185
+#: apps/admin/newsletters/views.py:186
 #, python-format
 #, python-format
 msgid "Newsletter \"%(newsletter)s\" has been sent."
 msgid "Newsletter \"%(newsletter)s\" has been sent."
 msgstr "Newsletter \"%(newsletter)s\" został rozesłany."
 msgstr "Newsletter \"%(newsletter)s\" został rozesłany."
 
 
-#: apps/admin/newsletters/views.py:191
+#: apps/admin/newsletters/views.py:192
 msgid "Sending Newsletter"
 msgid "Sending Newsletter"
 msgstr "Rozsyłanie newslettera"
 msgstr "Rozsyłanie newslettera"
 
 
-#: apps/admin/newsletters/views.py:193
+#: apps/admin/newsletters/views.py:194
 #, python-format
 #, python-format
 msgid "Sent to %(progress)s from %(total)s users"
 msgid "Sent to %(progress)s from %(total)s users"
 msgstr "Wysłano do %(progress)s z %(total)s użytkowników"
 msgstr "Wysłano do %(progress)s z %(total)s użytkowników"
 
 
+#: apps/admin/online/forms.py:6
+msgid "Search Sessions"
+msgstr "Wyszukiwanie sesji"
+
+#: apps/admin/online/forms.py:9
+msgid "User Agent"
+msgstr "User Agent"
+
 #: apps/admin/online/forms.py:10
 #: apps/admin/online/forms.py:10
+msgid "Session Type"
+msgstr "Typ sesji"
+
+#: apps/admin/online/forms.py:12
 msgid "All types"
 msgid "All types"
 msgstr "Wszystkie typy"
 msgstr "Wszystkie typy"
 
 
-#: apps/admin/online/forms.py:11
+#: apps/admin/online/forms.py:13
 msgid "Registered Members Sessions"
 msgid "Registered Members Sessions"
 msgstr "Sesje zarejestrowanych użytkowników"
 msgstr "Sesje zarejestrowanych użytkowników"
 
 
-#: apps/admin/online/forms.py:12
+#: apps/admin/online/forms.py:14
 msgid "Guests Sessions"
 msgid "Guests Sessions"
 msgstr "Sesje gości"
 msgstr "Sesje gości"
 
 
-#: apps/admin/online/forms.py:13
+#: apps/admin/online/forms.py:15
 msgid "Crawler Sessions"
 msgid "Crawler Sessions"
 msgstr "Sesje botów wyszukiwarek"
 msgstr "Sesje botów wyszukiwarek"
 
 
-#: apps/admin/online/forms.py:18
-msgid "Search Sessions"
-msgstr "Wyszukiwanie sesji"
-
-#: apps/admin/online/forms.py:20
-msgid "IP begins with..."
-msgstr "Adres IP zaczyna się na..."
-
-#: apps/admin/online/forms.py:21
-msgid "Username begings with..."
-msgstr "Nazwa użytkownika zaczyna się na..."
-
-#: apps/admin/online/forms.py:22
-msgid "User Agent"
-msgstr "User Agent"
-
-#: apps/admin/online/forms.py:22
-msgid "User Agent contains..."
-msgstr "User Agent zaczyna się na..."
-
-#: apps/admin/online/forms.py:23
-msgid "Session Type"
-msgstr "Typ sesji"
-
 #: apps/admin/online/views.py:10
 #: apps/admin/online/views.py:10
 msgid "Session Owner"
 msgid "Session Owner"
 msgstr "Właściciel sesji"
 msgstr "Właściciel sesji"
@@ -1932,35 +1878,27 @@ msgstr "Ostatnie kliknięcie"
 msgid "Looks like nobody is currently online on forums."
 msgid "Looks like nobody is currently online on forums."
 msgstr "Wygląda na to, że w danej chwili nikt nie jest zalogowany."
 msgstr "Wygląda na to, że w danej chwili nikt nie jest zalogowany."
 
 
-#: apps/admin/pruneusers/forms.py:8
-msgid "Policy name must contain alphanumeric characters."
-msgstr "Nazwa reguły musi zawierać alfanumeryczne znaki."
-
-#: apps/admin/pruneusers/forms.py:9
-msgid "Policy name is too long."
-msgstr "Nazwa reguły jest zbyt długa."
-
-#: apps/admin/pruneusers/forms.py:18
-msgid "Basic Policy Options"
-msgstr "Podstawowe opcje reguły"
-
-#: apps/admin/pruneusers/forms.py:20
+#: apps/admin/pruneusers/forms.py:7 apps/admin/pruneusers/forms.py:30
 msgid "Policy Name"
 msgid "Policy Name"
 msgstr "Nazwa reguły"
 msgstr "Nazwa reguły"
 
 
-#: apps/admin/pruneusers/forms.py:20
+#: apps/admin/pruneusers/forms.py:8 apps/admin/pruneusers/forms.py:30
 msgid "Short, descriptive name of this pruning policy."
 msgid "Short, descriptive name of this pruning policy."
 msgstr "Krótka nazwa opisująca tę regułę usuwania użytkowników."
 msgstr "Krótka nazwa opisująca tę regułę usuwania użytkowników."
 
 
-#: apps/admin/pruneusers/forms.py:24
-msgid "Pruning Policy Criteria"
-msgstr "Kryteria tej reguły usuwania"
+#: apps/admin/pruneusers/forms.py:10
+msgid "Policy name must contain alphanumeric characters."
+msgstr "Nazwa reguły musi zawierać alfanumeryczne znaki."
+
+#: apps/admin/pruneusers/forms.py:11
+msgid "Policy name is too long."
+msgstr "Nazwa reguły jest zbyt długa."
 
 
-#: apps/admin/pruneusers/forms.py:26
+#: apps/admin/pruneusers/forms.py:13 apps/admin/pruneusers/forms.py:36
 msgid "Member E-mail Address ends with"
 msgid "Member E-mail Address ends with"
 msgstr "Adres e-mail użytkownika kończy się na"
 msgstr "Adres e-mail użytkownika kończy się na"
 
 
-#: apps/admin/pruneusers/forms.py:26
+#: apps/admin/pruneusers/forms.py:14 apps/admin/pruneusers/forms.py:36
 msgid ""
 msgid ""
 "If you want to, you can enter more than one e-mail suffix by separating them "
 "If you want to, you can enter more than one e-mail suffix by separating them "
 "with comma."
 "with comma."
@@ -1968,11 +1906,11 @@ msgstr ""
 "Jeżeli chcesz, możesz zdefiniować więcej końcówek adresów e-mail, "
 "Jeżeli chcesz, możesz zdefiniować więcej końcówek adresów e-mail, "
 "oddzielając je przecinkiem."
 "oddzielając je przecinkiem."
 
 
-#: apps/admin/pruneusers/forms.py:27
+#: apps/admin/pruneusers/forms.py:16 apps/admin/pruneusers/forms.py:37
 msgid "Member has no more posts than"
 msgid "Member has no more posts than"
 msgstr "Użytkownik ma nie więcej postów niż"
 msgstr "Użytkownik ma nie więcej postów niż"
 
 
-#: apps/admin/pruneusers/forms.py:27
+#: apps/admin/pruneusers/forms.py:17 apps/admin/pruneusers/forms.py:37
 msgid ""
 msgid ""
 "Maximum number of posts member is allowed to have to fall under policy. For "
 "Maximum number of posts member is allowed to have to fall under policy. For "
 "example if you enter in 10 posts and make this only criteria, every user "
 "example if you enter in 10 posts and make this only criteria, every user "
@@ -1984,11 +1922,11 @@ msgstr ""
 "kryterium usuwania, profile użytkowników posiadających mniej niż 10 postów "
 "kryterium usuwania, profile użytkowników posiadających mniej niż 10 postów "
 "zostaną usunięte.  Wpisz zero, aby nie używać tego kryterium."
 "zostaną usunięte.  Wpisz zero, aby nie używać tego kryterium."
 
 
-#: apps/admin/pruneusers/forms.py:28
+#: apps/admin/pruneusers/forms.py:19 apps/admin/pruneusers/forms.py:38
 msgid "User is member for no more than"
 msgid "User is member for no more than"
 msgstr "Użytkownik jest członkiem forum nie dłużej niż"
 msgstr "Użytkownik jest członkiem forum nie dłużej niż"
 
 
-#: apps/admin/pruneusers/forms.py:28
+#: apps/admin/pruneusers/forms.py:20 apps/admin/pruneusers/forms.py:38
 msgid ""
 msgid ""
 "Maximal number of days user is member for. For exmaple if you enter in 15 "
 "Maximal number of days user is member for. For exmaple if you enter in 15 "
 "days and make this only criteria, every user who is member for less than 15 "
 "days and make this only criteria, every user who is member for less than 15 "
@@ -1999,11 +1937,11 @@ msgstr ""
 "użytkownika, który zarejestrował się wcześniej niż 15 dni temu zostanie "
 "użytkownika, który zarejestrował się wcześniej niż 15 dni temu zostanie "
 "usunięty. Wpisz zero, aby nie używać tego kryterium."
 "usunięty. Wpisz zero, aby nie używać tego kryterium."
 
 
-#: apps/admin/pruneusers/forms.py:29
+#: apps/admin/pruneusers/forms.py:22 apps/admin/pruneusers/forms.py:39
 msgid "User last visit was before"
 msgid "User last visit was before"
 msgstr "Ostatnia wizyta użytkownika była przed"
 msgstr "Ostatnia wizyta użytkownika była przed"
 
 
-#: apps/admin/pruneusers/forms.py:29
+#: apps/admin/pruneusers/forms.py:23 apps/admin/pruneusers/forms.py:39
 msgid ""
 msgid ""
 "Maximal allowed inactivity period in days. For example if you enter in 300 "
 "Maximal allowed inactivity period in days. For example if you enter in 300 "
 "days and make this only criteria for deleting users, every member who did "
 "days and make this only criteria for deleting users, every member who did "
@@ -2015,103 +1953,111 @@ msgstr ""
 "profil każdego użytkownika, który nie logował się przez ostatnie 300 dni "
 "profil każdego użytkownika, który nie logował się przez ostatnie 300 dni "
 "zostanie usunięty. Wpisz zero, aby nie używać tego kryterium."
 "zostanie usunięty. Wpisz zero, aby nie używać tego kryterium."
 
 
-#: apps/admin/pruneusers/views.py:24
+#: apps/admin/pruneusers/forms.py:28 templates/admin/prune_users/form.html:6
+msgid "Basic Policy Options"
+msgstr "Podstawowe opcje reguły"
+
+#: apps/admin/pruneusers/forms.py:34 templates/admin/prune_users/form.html:10
+msgid "Pruning Policy Criteria"
+msgstr "Kryteria tej reguły usuwania"
+
+#: apps/admin/pruneusers/views.py:26
 msgid "Pruning Policy"
 msgid "Pruning Policy"
 msgstr "Reguła usuwania"
 msgstr "Reguła usuwania"
 
 
-#: apps/admin/pruneusers/views.py:26
+#: apps/admin/pruneusers/views.py:28
 msgid "You have to check at least one policy."
 msgid "You have to check at least one policy."
 msgstr "Musisz zaznaczyć przynajmniej jedną regułę usuwania użytkowników."
 msgstr "Musisz zaznaczyć przynajmniej jedną regułę usuwania użytkowników."
 
 
-#: apps/admin/pruneusers/views.py:28
+#: apps/admin/pruneusers/views.py:30
 msgid "Delete selected policies"
 msgid "Delete selected policies"
 msgstr "Usuń zaznaczone reguły"
 msgstr "Usuń zaznaczone reguły"
 
 
-#: apps/admin/pruneusers/views.py:28
+#: apps/admin/pruneusers/views.py:30
 msgid "Are you sure you want to delete selected policies?"
 msgid "Are you sure you want to delete selected policies?"
 msgstr ""
 msgstr ""
 "Czy aby na pewno chcesz usunąć zaznaczone reguły usuwania użytkowników?"
 "Czy aby na pewno chcesz usunąć zaznaczone reguły usuwania użytkowników?"
 
 
-#: apps/admin/pruneusers/views.py:36 templates/admin/prune/apply.html:10
+#: apps/admin/pruneusers/views.py:38 templates/admin/prune_users/apply.html:10
 msgid "Apply Policy"
 msgid "Apply Policy"
 msgstr "Zastosuj regułę"
 msgstr "Zastosuj regułę"
 
 
-#: apps/admin/pruneusers/views.py:37
+#: apps/admin/pruneusers/views.py:39
 msgid "Edit Policy"
 msgid "Edit Policy"
 msgstr "Edytuj regułę"
 msgstr "Edytuj regułę"
 
 
-#: apps/admin/pruneusers/views.py:38
+#: apps/admin/pruneusers/views.py:40
 msgid "Delete Policy"
 msgid "Delete Policy"
 msgstr "Usuń regułę"
 msgstr "Usuń regułę"
 
 
-#: apps/admin/pruneusers/views.py:38
+#: apps/admin/pruneusers/views.py:40
 msgid "Are you sure you want to delete this policy?"
 msgid "Are you sure you want to delete this policy?"
 msgstr "Czy aby na pewno chcesz usunąć tę regułę?"
 msgstr "Czy aby na pewno chcesz usunąć tę regułę?"
 
 
-#: apps/admin/pruneusers/views.py:43 apps/admin/pruneusers/views.py:135
+#: apps/admin/pruneusers/views.py:45 apps/admin/pruneusers/views.py:137
 msgid "Only system administrators can delete pruning policies."
 msgid "Only system administrators can delete pruning policies."
 msgstr ""
 msgstr ""
 "Tylko administratorzy systemowi mogą usuwać reguły wycinania profili "
 "Tylko administratorzy systemowi mogą usuwać reguły wycinania profili "
 "użytkowników."
 "użytkowników."
 
 
-#: apps/admin/pruneusers/views.py:46
+#: apps/admin/pruneusers/views.py:48
 msgid "Selected pruning policies have been deleted successfully."
 msgid "Selected pruning policies have been deleted successfully."
 msgstr "Zaznaczone reguły zostały pomyślnie usunięte."
 msgstr "Zaznaczone reguły zostały pomyślnie usunięte."
 
 
-#: apps/admin/pruneusers/views.py:54
+#: apps/admin/pruneusers/views.py:56
 msgid "Save Policy"
 msgid "Save Policy"
 msgstr "Zapisz regułę"
 msgstr "Zapisz regułę"
 
 
-#: apps/admin/pruneusers/views.py:73
+#: apps/admin/pruneusers/views.py:75
 msgid "New Pruning Policy has been created."
 msgid "New Pruning Policy has been created."
 msgstr "Nowa reguła usuwania użytkowników została utworzona."
 msgstr "Nowa reguła usuwania użytkowników została utworzona."
 
 
-#: apps/admin/pruneusers/views.py:77
+#: apps/admin/pruneusers/views.py:79
 msgid "Only system administrators can set new pruning policies."
 msgid "Only system administrators can set new pruning policies."
 msgstr ""
 msgstr ""
 "Tylko administratorzy systemowi mogą dodawać nowe reguły usuwania "
 "Tylko administratorzy systemowi mogą dodawać nowe reguły usuwania "
 "użytkowników."
 "użytkowników."
 
 
-#: apps/admin/pruneusers/views.py:86
+#: apps/admin/pruneusers/views.py:88
 msgid "Edit Pruning Policy"
 msgid "Edit Pruning Policy"
 msgstr "Edycja reguły usuwania użytkowników"
 msgstr "Edycja reguły usuwania użytkowników"
 
 
-#: apps/admin/pruneusers/views.py:90 apps/admin/pruneusers/views.py:131
-#: apps/admin/pruneusers/views.py:148
+#: apps/admin/pruneusers/views.py:92 apps/admin/pruneusers/views.py:133
+#: apps/admin/pruneusers/views.py:150
 msgid "Requested pruning policy could not be found."
 msgid "Requested pruning policy could not be found."
 msgstr "Żądana reguła nie została odnaleziona."
 msgstr "Żądana reguła nie została odnaleziona."
 
 
-#: apps/admin/pruneusers/views.py:117
+#: apps/admin/pruneusers/views.py:119
 #, python-format
 #, python-format
 msgid "Changes in policy \"%(name)s\" have been saved."
 msgid "Changes in policy \"%(name)s\" have been saved."
 msgstr "Zmiany w regule \"%(name)s\" zostały zachowane."
 msgstr "Zmiany w regule \"%(name)s\" zostały zachowane."
 
 
-#: apps/admin/pruneusers/views.py:121
+#: apps/admin/pruneusers/views.py:123
 msgid "Only system administrators can edit pruning policies."
 msgid "Only system administrators can edit pruning policies."
 msgstr ""
 msgstr ""
 "Tylko administratorzy systemowi mogą modyfikować reguły usuwania "
 "Tylko administratorzy systemowi mogą modyfikować reguły usuwania "
 "użytkowników."
 "użytkowników."
 
 
-#: apps/admin/pruneusers/views.py:138
+#: apps/admin/pruneusers/views.py:140
 #, python-format
 #, python-format
 msgid "Pruning policy \"%(name)s\" has been deleted."
 msgid "Pruning policy \"%(name)s\" has been deleted."
 msgstr "Reguła \"%(name)s\" została usunięta."
 msgstr "Reguła \"%(name)s\" została usunięta."
 
 
-#: apps/admin/pruneusers/views.py:144
+#: apps/admin/pruneusers/views.py:146
 msgid "Apply Pruning Policy"
 msgid "Apply Pruning Policy"
 msgstr "Zastosuj regułę usuwania użytkowników"
 msgstr "Zastosuj regułę usuwania użytkowników"
 
 
-#: apps/admin/pruneusers/views.py:173
+#: apps/admin/pruneusers/views.py:175
 #, python-format
 #, python-format
 msgid "Policy \"%(name)s\" does not apply to any users."
 msgid "Policy \"%(name)s\" does not apply to any users."
 msgstr "Reguła \"%(name)s\" nie odnosi się do żadnych aktualnych użytkowników."
 msgstr "Reguła \"%(name)s\" nie odnosi się do żadnych aktualnych użytkowników."
 
 
-#: apps/admin/pruneusers/views.py:182
+#: apps/admin/pruneusers/views.py:184
 #, python-format
 #, python-format
 msgid "User \"%(name)s\" is protected and was not deleted."
 msgid "User \"%(name)s\" is protected and was not deleted."
 msgstr "Użytkownik \"%(name)s\" jest chroniony i nie został usunięty."
 msgstr "Użytkownik \"%(name)s\" jest chroniony i nie został usunięty."
 
 
-#: apps/admin/pruneusers/views.py:188
+#: apps/admin/pruneusers/views.py:190
 #, python-format
 #, python-format
 msgid "One user has been deleted."
 msgid "One user has been deleted."
 msgid_plural "%(deleted)d users have been deleted."
 msgid_plural "%(deleted)d users have been deleted."
@@ -2119,36 +2065,20 @@ msgstr[0] "Usunięto jednego użytkownika."
 msgstr[1] "Usunięto %(deleted)d użytkowników."
 msgstr[1] "Usunięto %(deleted)d użytkowników."
 msgstr[2] "Usunięto %(deleted)d użytkowników."
 msgstr[2] "Usunięto %(deleted)d użytkowników."
 
 
-#: apps/admin/pruneusers/views.py:194
+#: apps/admin/pruneusers/views.py:196
 msgid "No users have been deleted."
 msgid "No users have been deleted."
 msgstr "Nie usunięto żadnych użytkowników."
 msgstr "Nie usunięto żadnych użytkowników."
 
 
-#: apps/admin/pruneusers/views.py:197 forms/forms.py:152
+#: apps/admin/pruneusers/views.py:199 forms/forms.py:162
 msgid "Request authorization is invalid. Please resubmit your form."
 msgid "Request authorization is invalid. Please resubmit your form."
 msgstr ""
 msgstr ""
 "Autoryzacja żądania jest niepoprawna. Spróbuj ponownie wysłać formularz."
 "Autoryzacja żądania jest niepoprawna. Spróbuj ponownie wysłać formularz."
 
 
-#: apps/admin/ranks/forms.py:10
-msgid "Rank name must contain alphanumeric characters."
-msgstr "Nazwa rangi nie może składać się tylko ze znaków specjalnych."
-
-#: apps/admin/ranks/forms.py:11
-msgid "Rank name is too long."
-msgstr "Nazwa rangi jest zbyt długa."
-
-#: apps/admin/ranks/forms.py:19
-msgid "This is incorrect rank match rule."
-msgstr "Niepoprawne kryteria przyznania rangi."
-
-#: apps/admin/ranks/forms.py:24
-msgid "Basic Rank Options"
-msgstr "Podstawowe ustawienia rangi"
-
-#: apps/admin/ranks/forms.py:26
+#: apps/admin/ranks/forms.py:9
 msgid "Rank Name"
 msgid "Rank Name"
 msgstr "Nazwa rangi"
 msgstr "Nazwa rangi"
 
 
-#: apps/admin/ranks/forms.py:26
+#: apps/admin/ranks/forms.py:10
 msgid ""
 msgid ""
 "Rank Name is used to identify rank in Admin Control Panel and is used as "
 "Rank Name is used to identify rank in Admin Control Panel and is used as "
 "page and tab title if you decide to make this rank act as tab on users list."
 "page and tab title if you decide to make this rank act as tab on users list."
@@ -2156,11 +2086,19 @@ msgstr ""
 "Nazwa rangi jest używana do jej identyfikacji w panelu administracyjnym ACP. "
 "Nazwa rangi jest używana do jej identyfikacji w panelu administracyjnym ACP. "
 "Stanowi też treść karty przy wyświetlaniu rangi w module użytkowników."
 "Stanowi też treść karty przy wyświetlaniu rangi w module użytkowników."
 
 
-#: apps/admin/ranks/forms.py:27
+#: apps/admin/ranks/forms.py:12
+msgid "Rank name must contain alphanumeric characters."
+msgstr "Nazwa rangi nie może składać się tylko ze znaków specjalnych."
+
+#: apps/admin/ranks/forms.py:13
+msgid "Rank name is too long."
+msgstr "Nazwa rangi jest zbyt długa."
+
+#: apps/admin/ranks/forms.py:15
 msgid "Rank Description"
 msgid "Rank Description"
 msgstr "Opis rangi"
 msgstr "Opis rangi"
 
 
-#: apps/admin/ranks/forms.py:27
+#: apps/admin/ranks/forms.py:16
 msgid ""
 msgid ""
 "If this rank acts as tab on users list, here you can enter optional "
 "If this rank acts as tab on users list, here you can enter optional "
 "description that will be displayed above list of users with this rank."
 "description that will be displayed above list of users with this rank."
@@ -2168,59 +2106,19 @@ msgstr ""
 "Jeżeli ranga ma włączoną kartę w module użytkowników, możesz tutaj wpisać "
 "Jeżeli ranga ma włączoną kartę w module użytkowników, możesz tutaj wpisać "
 "opis, który będzie wyświetlany nad listą posiadających ją członków forum."
 "opis, który będzie wyświetlany nad listą posiadających ją członków forum."
 
 
-#: apps/admin/ranks/forms.py:28
-msgid "As Tab on Users List"
-msgstr "Jako karta w module użytkowników"
-
-#: apps/admin/ranks/forms.py:28
-msgid ""
-"Should this rank have its own page on users list, containing rank's "
-"description and list of users that have it? This is good option for rank "
-"used by forum team members or members that should be visible and easily "
-"reachable."
-msgstr ""
-"Ustala, czy ranga posiada swoją kartę w module użytkowników, na której "
-"znajduje się lista jej posiadaczy. Dobrym pomysłem jest włączenie tej opcji "
-"tylko dla najbardziej wartościowych rang, jak np. ekipa forum, moderatorzy, "
-"przyjaciele forum itp."
-
-#: apps/admin/ranks/forms.py:29
-msgid "Display members online"
-msgstr "Wyświetlaj użytkowników online"
-
-#: apps/admin/ranks/forms.py:29
-msgid "Should users online with this rank be displayed on board index?"
-msgstr "Czy wyrózniać zalogowanych użytkowników z tą rangą na stronie głównej?"
-
-#: apps/admin/ranks/forms.py:33 apps/admin/ranks/forms.py:35
-msgid "Rank Roles"
-msgstr "Role rang"
-
-#: apps/admin/ranks/forms.py:35
-msgid ""
-"You can grant users with this rank extra roles to serve either as rewards or "
-"signs of trust to active members."
-msgstr ""
-"Możesz przyznać specjalne role posiadaczom tej rangi, jako nagrodę, bądź "
-"oznakę zaufania dla aktywnych użytkowników."
-
-#: apps/admin/ranks/forms.py:39
-msgid "Rank Looks"
-msgstr "Wygląd rangi"
-
-#: apps/admin/ranks/forms.py:41
+#: apps/admin/ranks/forms.py:18
 msgid "Rank Title"
 msgid "Rank Title"
 msgstr "Tytuł rangi"
 msgstr "Tytuł rangi"
 
 
-#: apps/admin/ranks/forms.py:41
+#: apps/admin/ranks/forms.py:19
 msgid "Short description of rank's bearer role in your community."
 msgid "Short description of rank's bearer role in your community."
 msgstr "Najkrótszy mozliwy opis dowolnego posiadacza tej rangi na Twoim forum."
 msgstr "Najkrótszy mozliwy opis dowolnego posiadacza tej rangi na Twoim forum."
 
 
-#: apps/admin/ranks/forms.py:42
+#: apps/admin/ranks/forms.py:21
 msgid "Rank CSS Class"
 msgid "Rank CSS Class"
 msgstr "Klasa CSS rangi"
 msgstr "Klasa CSS rangi"
 
 
-#: apps/admin/ranks/forms.py:42
+#: apps/admin/ranks/forms.py:22
 msgid ""
 msgid ""
 "Optional CSS class that will be added to different elements displaying "
 "Optional CSS class that will be added to different elements displaying "
 "rank's owner or his content, allowing you to make them stand out from other "
 "rank's owner or his content, allowing you to make them stand out from other "
@@ -2230,27 +2128,47 @@ msgstr ""
 "każdego elementu związanego z jej członkami (profile, posty, tematy), "
 "każdego elementu związanego z jej członkami (profile, posty, tematy), "
 "umożliwiając ich wyróżnienie."
 "umożliwiając ich wyróżnienie."
 
 
-#: apps/admin/ranks/forms.py:46
-msgid "Rank Attainability"
-msgstr "Dosięgalność rangi"
+#: apps/admin/ranks/forms.py:24
+msgid "Special Rank"
+msgstr "Ranga specjalna"
+
+#: apps/admin/ranks/forms.py:25
+msgid ""
+"Special ranks are ignored during updates of user ranking, making them "
+"unattainable without admin ingerention."
+msgstr ""
+"Specjalne rangi są ignorowane przy aktualizacjach rankingu użytkowników, co "
+"czyni je niezmiennymi bez ingerencji administratora."
+
+#: apps/admin/ranks/forms.py:27
+msgid "As Tab on Users List"
+msgstr "Jako karta w module użytkowników"
+
+#: apps/admin/ranks/forms.py:28
+msgid ""
+"Should this rank have its own page on users list, containing rank's "
+"description and list of users that have it? This is good option for rank "
+"used by forum team members or members that should be visible and easily "
+"reachable."
+msgstr ""
+"Ustala, czy ranga posiada swoją kartę w module użytkowników, na której "
+"znajduje się lista jej posiadaczy. Dobrym pomysłem jest włączenie tej opcji "
+"tylko dla najbardziej wartościowych rang, jak np. ekipa forum, moderatorzy, "
+"przyjaciele forum itp."
 
 
-#: apps/admin/ranks/forms.py:48
-msgid "Special Rank"
-msgstr "Ranga specjalna"
+#: apps/admin/ranks/forms.py:30
+msgid "Display members online"
+msgstr "Wyświetlaj użytkowników online"
 
 
-#: apps/admin/ranks/forms.py:48
-msgid ""
-"Special ranks are ignored during updates of user ranking, making them "
-"unattainable without admin ingerention."
-msgstr ""
-"Specjalne rangi są ignorowane przy aktualizacjach rankingu użytkowników, co "
-"czyni je niezmiennymi bez ingerencji administratora."
+#: apps/admin/ranks/forms.py:31
+msgid "Should users online with this rank be displayed on board index?"
+msgstr "Czy wyrózniać zalogowanych użytkowników z tą rangą na stronie głównej?"
 
 
-#: apps/admin/ranks/forms.py:49
+#: apps/admin/ranks/forms.py:33
 msgid "Rank Criteria"
 msgid "Rank Criteria"
 msgstr "Kryteria przyznania rangi"
 msgstr "Kryteria przyznania rangi"
 
 
-#: apps/admin/ranks/forms.py:49
+#: apps/admin/ranks/forms.py:34
 msgid ""
 msgid ""
 "This setting allows you to limit number of users that can attain this rank. "
 "This setting allows you to limit number of users that can attain this rank. "
 "Enter 0 to assign this rank to all members (good for default rank). To give "
 "Enter 0 to assign this rank to all members (good for default rank). To give "
@@ -2265,156 +2183,173 @@ msgstr ""
 "najbardziej aktywnym użytkownikom, wprowadź \"10\". To ustawienie jest "
 "najbardziej aktywnym użytkownikom, wprowadź \"10\". To ustawienie jest "
 "ignorowane dla rank specjalnych (nie są one aktualizowane automatycznie)."
 "ignorowane dla rank specjalnych (nie są one aktualizowane automatycznie)."
 
 
-#: apps/admin/ranks/views.py:24 templates/cranefly/profiles/details.html:104
+#: apps/admin/ranks/forms.py:35
+msgid "This is incorrect rank match rule."
+msgstr "Niepoprawne kryteria przyznania rangi."
+
+#: apps/admin/ranks/forms.py:40 apps/admin/ranks/forms.py:44
+#: templates/admin/ranks/form.html:13
+msgid "Rank Roles"
+msgstr "Role rang"
+
+#: apps/admin/ranks/forms.py:41 apps/admin/ranks/forms.py:45
+msgid ""
+"You can grant users with this rank extra roles to serve either as rewards or "
+"signs of trust to active members."
+msgstr ""
+"Możesz przyznać specjalne role posiadaczom tej rangi, jako nagrodę, bądź "
+"oznakę zaufania dla aktywnych użytkowników."
+
+#: apps/admin/ranks/views.py:25 templates/cranefly/profiles/details.html:103
 msgid "Rank"
 msgid "Rank"
 msgstr "Ranga"
 msgstr "Ranga"
 
 
-#: apps/admin/ranks/views.py:26
+#: apps/admin/ranks/views.py:27
 msgid "Reorder Ranks"
 msgid "Reorder Ranks"
 msgstr "Zmień istotność rang"
 msgstr "Zmień istotność rang"
 
 
-#: apps/admin/ranks/views.py:27
+#: apps/admin/ranks/views.py:28
 msgid "You have to check at least one rank."
 msgid "You have to check at least one rank."
 msgstr "Musisz zaznaczyć przynajmniej jedną rangę."
 msgstr "Musisz zaznaczyć przynajmniej jedną rangę."
 
 
-#: apps/admin/ranks/views.py:29
+#: apps/admin/ranks/views.py:30
 msgid "Delete selected ranks"
 msgid "Delete selected ranks"
 msgstr "Usuń zaznaczone rangi"
 msgstr "Usuń zaznaczone rangi"
 
 
-#: apps/admin/ranks/views.py:29
+#: apps/admin/ranks/views.py:30
 msgid "Are you sure you want to delete selected ranks?"
 msgid "Are you sure you want to delete selected ranks?"
 msgstr "Czy aby na pewno chcesz usunąć zaznaczone rangi?"
 msgstr "Czy aby na pewno chcesz usunąć zaznaczone rangi?"
 
 
-#: apps/admin/ranks/views.py:53
+#: apps/admin/ranks/views.py:54
 msgid "Ranks order has been changed"
 msgid "Ranks order has been changed"
 msgstr "Istotność rang została zmieniona."
 msgstr "Istotność rang została zmieniona."
 
 
-#: apps/admin/ranks/views.py:60 apps/admin/ranks/views.py:106
+#: apps/admin/ranks/views.py:61 apps/admin/ranks/views.py:107
 msgid "Edit Rank"
 msgid "Edit Rank"
 msgstr "Zmodyfikuj rangę"
 msgstr "Zmodyfikuj rangę"
 
 
-#: apps/admin/ranks/views.py:61
+#: apps/admin/ranks/views.py:62
 msgid "Delete Rank"
 msgid "Delete Rank"
 msgstr "Usuń rangę"
 msgstr "Usuń rangę"
 
 
-#: apps/admin/ranks/views.py:61
+#: apps/admin/ranks/views.py:62
 msgid "Are you sure you want to delete this rank?"
 msgid "Are you sure you want to delete this rank?"
 msgstr "Czy aby na pewno chcesz usunąć tę rangę?"
 msgstr "Czy aby na pewno chcesz usunąć tę rangę?"
 
 
-#: apps/admin/ranks/views.py:66
+#: apps/admin/ranks/views.py:67
 msgid "Selected ranks have been deleted successfully."
 msgid "Selected ranks have been deleted successfully."
 msgstr "Zaznaczone rangi zostały pomyślnie usunięte."
 msgstr "Zaznaczone rangi zostały pomyślnie usunięte."
 
 
-#: apps/admin/ranks/views.py:74
+#: apps/admin/ranks/views.py:75
 msgid "Save Rank"
 msgid "Save Rank"
 msgstr "Zapisz rangę"
 msgstr "Zapisz rangę"
 
 
-#: apps/admin/ranks/views.py:100
+#: apps/admin/ranks/views.py:101
 msgid "New Rank has been created."
 msgid "New Rank has been created."
 msgstr "Nowa ranga została utworzona."
 msgstr "Nowa ranga została utworzona."
 
 
-#: apps/admin/ranks/views.py:110 apps/admin/ranks/views.py:161
+#: apps/admin/ranks/views.py:111 apps/admin/ranks/views.py:162
 msgid "Requested Rank could not be found."
 msgid "Requested Rank could not be found."
 msgstr "Żądana ranga nie mogła zostać odnaleziona."
 msgstr "Żądana ranga nie mogła zostać odnaleziona."
 
 
-#: apps/admin/ranks/views.py:154
+#: apps/admin/ranks/views.py:155
 #, python-format
 #, python-format
 msgid "Changes in rank \"%(name)s\" have been saved."
 msgid "Changes in rank \"%(name)s\" have been saved."
 msgstr "Zmiany w randze \"%(name)s\" zostały zachowane."
 msgstr "Zmiany w randze \"%(name)s\" zostały zachowane."
 
 
-#: apps/admin/ranks/views.py:165
+#: apps/admin/ranks/views.py:166
 #, python-format
 #, python-format
 msgid "Rank \"%(name)s\" has been deleted."
 msgid "Rank \"%(name)s\" has been deleted."
 msgstr "Ranga \"%(name)s\" została usunięta."
 msgstr "Ranga \"%(name)s\" została usunięta."
 
 
-#: apps/admin/roles/forms.py:19
+#: apps/admin/roles/forms.py:13
 msgid "Protect this Role"
 msgid "Protect this Role"
 msgstr "Zabezpiecz tę rolę"
 msgstr "Zabezpiecz tę rolę"
 
 
-#: apps/admin/roles/forms.py:19
+#: apps/admin/roles/forms.py:14
 msgid "Only system administrators can edit or assign protected roles."
 msgid "Only system administrators can edit or assign protected roles."
 msgstr ""
 msgstr ""
 "Tylko systemowi administratorzy mogą modyfikować, bądź przypisywać chronione "
 "Tylko systemowi administratorzy mogą modyfikować, bądź przypisywać chronione "
 "role."
 "role."
 
 
-#: apps/admin/roles/views.py:31
+#: apps/admin/roles/views.py:32
 msgid "Delete selected roles"
 msgid "Delete selected roles"
 msgstr "Usuń zaznaczone role"
 msgstr "Usuń zaznaczone role"
 
 
-#: apps/admin/roles/views.py:49 apps/admin/roles/views.py:245
+#: apps/admin/roles/views.py:50 apps/admin/roles/views.py:244
 msgid "You cannot delete system roles."
 msgid "You cannot delete system roles."
 msgstr "Nie możesz usuwać systemowych ról."
 msgstr "Nie możesz usuwać systemowych ról."
 
 
-#: apps/admin/roles/views.py:51
+#: apps/admin/roles/views.py:52
 msgid "You cannot delete protected roles."
 msgid "You cannot delete protected roles."
 msgstr "Nie możesz usuwać chronionych ról."
 msgstr "Nie możesz usuwać chronionych ról."
 
 
-#: apps/admin/roles/views.py:53
+#: apps/admin/roles/views.py:54
 msgid "You cannot delete roles that are assigned to users."
 msgid "You cannot delete roles that are assigned to users."
 msgstr "Nie możesz usuwać ról aktualnie przypisanych do użytkowników."
 msgstr "Nie możesz usuwać ról aktualnie przypisanych do użytkowników."
 
 
-#: apps/admin/roles/views.py:56
+#: apps/admin/roles/views.py:57
 msgid "Selected roles have been deleted successfully."
 msgid "Selected roles have been deleted successfully."
 msgstr "Wybrane role zostały pomyślnie usunięte."
 msgstr "Wybrane role zostały pomyślnie usunięte."
 
 
-#: apps/admin/roles/views.py:77
+#: apps/admin/roles/views.py:76
 msgid "New Role has been created."
 msgid "New Role has been created."
 msgstr "Pomyślnie utworzono nową rolę."
 msgstr "Pomyślnie utworzono nową rolę."
 
 
-#: apps/admin/roles/views.py:88 apps/admin/roles/views.py:180
-#: apps/admin/roles/views.py:196 apps/admin/roles/views.py:241
+#: apps/admin/roles/views.py:87 apps/admin/roles/views.py:179
+#: apps/admin/roles/views.py:195 apps/admin/roles/views.py:240
 msgid "Requested Role could not be found."
 msgid "Requested Role could not be found."
 msgstr "Żądana rola nie mogła zostać odnaleziona."
 msgstr "Żądana rola nie mogła zostać odnaleziona."
 
 
-#: apps/admin/roles/views.py:105 apps/admin/roles/views.py:177
-#: apps/admin/roles/views.py:221
+#: apps/admin/roles/views.py:104 apps/admin/roles/views.py:176
+#: apps/admin/roles/views.py:220
 #, python-format
 #, python-format
 msgid "Role \"%(name)s\" is protected, you cannot edit it."
 msgid "Role \"%(name)s\" is protected, you cannot edit it."
 msgstr "Rola \"%(name)s\" jest chroniona, nie możesz jej zmodyfikować."
 msgstr "Rola \"%(name)s\" jest chroniona, nie możesz jej zmodyfikować."
 
 
-#: apps/admin/roles/views.py:116
+#: apps/admin/roles/views.py:115
 #, python-format
 #, python-format
 msgid "Changes in role \"%(name)s\" have been saved."
 msgid "Changes in role \"%(name)s\" have been saved."
 msgstr "Zmiany w roli \"%(name)s\" zostały zapisane."
 msgstr "Zmiany w roli \"%(name)s\" zostały zapisane."
 
 
-#: apps/admin/roles/views.py:123
+#: apps/admin/roles/views.py:122
 msgid "Role Forums Permissions"
 msgid "Role Forums Permissions"
 msgstr "Uprawnienia roli do forów"
 msgstr "Uprawnienia roli do forów"
 
 
-#: apps/admin/roles/views.py:124
+#: apps/admin/roles/views.py:123
 msgid "Change Permissions"
 msgid "Change Permissions"
 msgstr "Zatwierdź zmianę uprawnień"
 msgstr "Zatwierdź zmianę uprawnień"
 
 
-#: apps/admin/roles/views.py:151
+#: apps/admin/roles/views.py:150
 msgid "No Access"
 msgid "No Access"
 msgstr "Brak dostępu"
 msgstr "Brak dostępu"
 
 
-#: apps/admin/roles/views.py:170
+#: apps/admin/roles/views.py:169
 msgid "Forum permissions have been saved."
 msgid "Forum permissions have been saved."
 msgstr "Uprawnienia roli do forów zostały zapisane."
 msgstr "Uprawnienia roli do forów zostały zapisane."
 
 
-#: apps/admin/roles/views.py:184
+#: apps/admin/roles/views.py:183
 msgid "No forum roles are currently set."
 msgid "No forum roles are currently set."
 msgstr "Nie zdefiniowano żadnych roli na forum."
 msgstr "Nie zdefiniowano żadnych roli na forum."
 
 
-#: apps/admin/roles/views.py:192
+#: apps/admin/roles/views.py:191
 msgid "Change Role Permissions"
 msgid "Change Role Permissions"
 msgstr "Zmiana uprawnień roli"
 msgstr "Zmiana uprawnień roli"
 
 
-#: apps/admin/roles/views.py:234
+#: apps/admin/roles/views.py:233
 #, python-format
 #, python-format
 msgid "Role \"%(name)s\" permissions have been changed."
 msgid "Role \"%(name)s\" permissions have been changed."
 msgstr "Uprawnienia roli  \"%(name)s\" zostały zmienione."
 msgstr "Uprawnienia roli  \"%(name)s\" zostały zmienione."
 
 
-#: apps/admin/roles/views.py:247
+#: apps/admin/roles/views.py:246
 msgid "This role is protected."
 msgid "This role is protected."
 msgstr "Ta rola jest chroniona."
 msgstr "Ta rola jest chroniona."
 
 
-#: apps/admin/roles/views.py:249
+#: apps/admin/roles/views.py:248
 msgid "This role is assigned to one or more users."
 msgid "This role is assigned to one or more users."
 msgstr "Ta rola jest przypisana do przynajmniej jednego użytkownika."
 msgstr "Ta rola jest przypisana do przynajmniej jednego użytkownika."
 
 
-#: apps/admin/roles/views.py:252
+#: apps/admin/roles/views.py:251
 #, python-format
 #, python-format
 msgid "Role \"%(name)s\" has been deleted."
 msgid "Role \"%(name)s\" has been deleted."
 msgstr "Rola \"%(name)s\" została usunięta."
 msgstr "Rola \"%(name)s\" została usunięta."
@@ -2503,7 +2438,7 @@ msgstr "Statystyki"
 msgid "Create Statistics Reports"
 msgid "Create Statistics Reports"
 msgstr "Generowanie raportów statystycznych"
 msgstr "Generowanie raportów statystycznych"
 
 
-#: apps/admin/sections/overview.py:33 templates/cranefly/index.html:150
+#: apps/admin/sections/overview.py:33 templates/cranefly/index.html:158
 #: templates/cranefly/profiles/profile.html:24
 #: templates/cranefly/profiles/profile.html:24
 msgid "Online"
 msgid "Online"
 msgstr "Online"
 msgstr "Online"
@@ -2533,8 +2468,9 @@ msgstr "Lista członków zespołu forum"
 msgid "Forum Team Members"
 msgid "Forum Team Members"
 msgstr "Członkowie zaspołu forum"
 msgstr "Członkowie zaspołu forum"
 
 
-#: apps/admin/sections/perms.py:10 apps/admin/users/forms.py:39
-#: apps/admin/users/forms.py:136
+#: apps/admin/sections/perms.py:10 apps/admin/users/forms.py:60
+#: apps/admin/users/forms.py:64 apps/admin/users/forms.py:133
+#: apps/admin/users/forms.py:137
 msgid "User Roles"
 msgid "User Roles"
 msgstr "Role użytkowników"
 msgstr "Role użytkowników"
 
 
@@ -2659,7 +2595,7 @@ msgstr "Ustal nową regułę"
 msgid "Set new pruning policy"
 msgid "Set new pruning policy"
 msgstr "Utwórz nową regułę usuwania użytkowników"
 msgstr "Utwórz nową regułę usuwania użytkowników"
 
 
-#: apps/admin/sections/users.py:130 apps/usercp/options/forms.py:43
+#: apps/admin/sections/users.py:130 apps/usercp/options/forms.py:7
 msgid "Newsletters"
 msgid "Newsletters"
 msgstr "Newslettery"
 msgstr "Newslettery"
 
 
@@ -2683,15 +2619,15 @@ msgstr "Nowy newsletter"
 msgid "Create new Newsletter"
 msgid "Create new Newsletter"
 msgstr "Utwórz nowy newsletter"
 msgstr "Utwórz nowy newsletter"
 
 
-#: apps/admin/settings/views.py:28
+#: apps/admin/settings/views.py:29
 msgid "Requested settings group could not be found."
 msgid "Requested settings group could not be found."
 msgstr "Ządana grupa ustawień nie została odnaleziona."
 msgstr "Ządana grupa ustawień nie została odnaleziona."
 
 
-#: apps/admin/settings/views.py:53
+#: apps/admin/settings/views.py:54
 msgid "Configuration has been changed."
 msgid "Configuration has been changed."
 msgstr "Konfiguracja została zmodyfikowana."
 msgstr "Konfiguracja została zmodyfikowana."
 
 
-#: apps/admin/settings/views.py:97
+#: apps/admin/settings/views.py:98
 #, python-format
 #, python-format
 msgid "One setting that matches search criteria has been found."
 msgid "One setting that matches search criteria has been found."
 msgid_plural "%(count)d settings that match search criteria have been found."
 msgid_plural "%(count)d settings that match search criteria have been found."
@@ -2699,43 +2635,27 @@ msgstr[0] "Odnaleziono jedno ustawienie spełniające podane kryteria."
 msgstr[1] "Odnaleziono %(count)d ustawienia spełniające podane kryteria."
 msgstr[1] "Odnaleziono %(count)d ustawienia spełniające podane kryteria."
 msgstr[2] "Odnaleziono %(count)d ustawień spełniających podane kryteria."
 msgstr[2] "Odnaleziono %(count)d ustawień spełniających podane kryteria."
 
 
-#: apps/admin/settings/views.py:103
+#: apps/admin/settings/views.py:104
 msgid "No settings that match search criteria have been found."
 msgid "No settings that match search criteria have been found."
 msgstr "Nie odnaleziono żadnej opcji spełniającej podane kryteria."
 msgstr "Nie odnaleziono żadnej opcji spełniającej podane kryteria."
 
 
-#: apps/admin/settings/views.py:105
+#: apps/admin/settings/views.py:106
 msgid "Search query is empty."
 msgid "Search query is empty."
 msgstr "Wyszukiwane hasło jest puste."
 msgstr "Wyszukiwane hasło jest puste."
 
 
-#: apps/admin/stats/forms.py:11
-msgid "For each day"
-msgstr "Dla każdego dnia"
-
-#: apps/admin/stats/forms.py:11
-msgid "For each week"
-msgstr "Dla każdego tygodnia"
-
-#: apps/admin/stats/forms.py:11
-msgid "For each month"
-msgstr "Dla każdego miesiąca"
-
-#: apps/admin/stats/forms.py:11
-msgid "For each year"
-msgstr "Dla każdego roku"
-
-#: apps/admin/stats/forms.py:15
+#: apps/admin/stats/forms.py:8
 msgid "Report Type"
 msgid "Report Type"
 msgstr "Typ raportu"
 msgstr "Typ raportu"
 
 
-#: apps/admin/stats/forms.py:15
+#: apps/admin/stats/forms.py:9
 msgid "Select statistics provider."
 msgid "Select statistics provider."
 msgstr "Wybierz źródło statystyk."
 msgstr "Wybierz źródło statystyk."
 
 
-#: apps/admin/stats/forms.py:17
-msgid "Time"
-msgstr "Czas"
+#: apps/admin/stats/forms.py:10
+msgid "Time Period"
+msgstr "Okres czasu"
 
 
-#: apps/admin/stats/forms.py:17
+#: apps/admin/stats/forms.py:11
 msgid ""
 msgid ""
 "Enter start and end date for time period you want to take data from to use "
 "Enter start and end date for time period you want to take data from to use "
 "in graph."
 "in graph."
@@ -2743,43 +2663,43 @@ msgstr ""
 "Wprowadź przedział czasu (datę startową i końcową), dla którego zostanie "
 "Wprowadź przedział czasu (datę startową i końcową), dla którego zostanie "
 "wygenerowany wykres."
 "wygenerowany wykres."
 
 
-#: apps/admin/stats/forms.py:17
-msgid "Start Date: YYYY-MM-DD"
-msgstr "Data startowa: YYYY-MM-DD (rok, miesiąc, dzień)"
-
-#: apps/admin/stats/forms.py:18
-msgid "End Date: YYYY-MM-DD"
-msgstr "Data końcowa: YYYY-MM-DD (rok, miesiąc, dzień)"
-
-#: apps/admin/stats/forms.py:20
+#: apps/admin/stats/forms.py:14
 msgid "Graph Precision"
 msgid "Graph Precision"
 msgstr "Precyzja wykresu"
 msgstr "Precyzja wykresu"
 
 
-#: apps/admin/stats/views.py:50
+#: apps/admin/stats/forms.py:15
+msgid "For each day"
+msgstr "Dla każdego dnia"
+
+#: apps/admin/stats/forms.py:15
+msgid "For each week"
+msgstr "Dla każdego tygodnia"
+
+#: apps/admin/stats/forms.py:15
+msgid "For each month"
+msgstr "Dla każdego miesiąca"
+
+#: apps/admin/stats/forms.py:15
+msgid "For each year"
+msgstr "Dla każdego roku"
+
+#: apps/admin/stats/views.py:49
 msgid "Start and end date are same"
 msgid "Start and end date are same"
 msgstr "Data startowa i początkowa nie może być taka sama."
 msgstr "Data startowa i początkowa nie może być taka sama."
 
 
-#: apps/admin/stats/views.py:54
+#: apps/admin/stats/views.py:53
 msgid "Statistical report has been created."
 msgid "Statistical report has been created."
 msgstr "Raport statystyczny został wygenerowany."
 msgstr "Raport statystyczny został wygenerowany."
 
 
-#: apps/admin/stats/views.py:128
+#: apps/admin/stats/views.py:127
 msgid "Too many many items to display on graph."
 msgid "Too many many items to display on graph."
 msgstr "Na wykresie jest zbyt wiele elementów do wyświetlenia."
 msgstr "Na wykresie jest zbyt wiele elementów do wyświetlenia."
 
 
-#: apps/admin/stats/views.py:133
+#: apps/admin/stats/views.py:132
 msgid "Too few items to display on graph"
 msgid "Too few items to display on graph"
 msgstr "Na wykresie jest zbyt mało elementów do wyświetlenia."
 msgstr "Na wykresie jest zbyt mało elementów do wyświetlenia."
 
 
-#: apps/admin/users/forms.py:13 apps/admin/users/forms.py:124
-msgid "No rank assigned"
-msgstr "Brak przypisanej rangi"
-
-#: apps/admin/users/forms.py:34 apps/admin/users/forms.py:131
-msgid "Basic Account Settings"
-msgstr "Podstawowe ustawienia konta"
-
-#: apps/admin/users/forms.py:36 apps/admin/users/forms.py:133
+#: apps/admin/users/forms.py:12 apps/admin/users/forms.py:115
 msgid ""
 msgid ""
 "Username is name under which user is known to other users. Between 3 and 15 "
 "Username is name under which user is known to other users. Between 3 and 15 "
 "characters, only letters and digits are allowed."
 "characters, only letters and digits are allowed."
@@ -2787,44 +2707,40 @@ msgstr ""
 "Nazwa użytkownika, pod którą jest on znany dla innych członków. Długość w "
 "Nazwa użytkownika, pod którą jest on znany dla innych członków. Długość w "
 "przedziale 3 - 15 znaków, dozwolone tylko litery i cyfry."
 "przedziale 3 - 15 znaków, dozwolone tylko litery i cyfry."
 
 
-#: apps/admin/users/forms.py:37 apps/admin/users/forms.py:134
+#: apps/admin/users/forms.py:14 apps/admin/users/forms.py:117
 msgid "User Title"
 msgid "User Title"
 msgstr "Tytuł użytkownika"
 msgstr "Tytuł użytkownika"
 
 
-#: apps/admin/users/forms.py:37 apps/admin/users/forms.py:134
+#: apps/admin/users/forms.py:15 apps/admin/users/forms.py:118
 msgid "To override user title with custom one, enter it here."
 msgid "To override user title with custom one, enter it here."
 msgstr "Możesz zastąpić rangę użytkownika niestandardowym tytułem."
 msgstr "Możesz zastąpić rangę użytkownika niestandardowym tytułem."
 
 
-#: apps/admin/users/forms.py:38 apps/admin/users/forms.py:135
+#: apps/admin/users/forms.py:17 apps/admin/users/forms.py:120
 msgid "User Rank"
 msgid "User Rank"
 msgstr "Ranga użytkownika"
 msgstr "Ranga użytkownika"
 
 
-#: apps/admin/users/forms.py:38 apps/admin/users/forms.py:135
+#: apps/admin/users/forms.py:18 apps/admin/users/forms.py:121
 msgid "This user rank."
 msgid "This user rank."
 msgstr "Ranga tego użytkownika."
 msgstr "Ranga tego użytkownika."
 
 
-#: apps/admin/users/forms.py:39 apps/admin/users/forms.py:136
-msgid "This user roles. Roles are sets of user permissions"
-msgstr "Role tego użytkownika. Role to zbiory uprawnień."
-
-#: apps/admin/users/forms.py:43 apps/admin/users/forms.py:140
-msgid "Sign-in Credentials"
-msgstr "Dane do logowania"
+#: apps/admin/users/forms.py:19 apps/admin/users/forms.py:122
+msgid "No rank assigned"
+msgstr "Brak przypisanej rangi"
 
 
-#: apps/admin/users/forms.py:45 apps/admin/users/forms.py:142
-#: apps/admin/users/forms.py:201 templates/cranefly/profiles/details.html:24
+#: apps/admin/users/forms.py:21 apps/admin/users/forms.py:124
+#: apps/admin/users/forms.py:173 templates/cranefly/profiles/details.html:23
 msgid "E-mail Address"
 msgid "E-mail Address"
 msgstr "Adres e-mail"
 msgstr "Adres e-mail"
 
 
-#: apps/admin/users/forms.py:45 apps/admin/users/forms.py:142
+#: apps/admin/users/forms.py:22 apps/admin/users/forms.py:125
 msgid "Member e-mail address."
 msgid "Member e-mail address."
 msgstr "Adres e-mail użytkownika."
 msgstr "Adres e-mail użytkownika."
 
 
-#: apps/admin/users/forms.py:46
+#: apps/admin/users/forms.py:24
 msgid "Change User Password"
 msgid "Change User Password"
 msgstr "Zmień hasło użytkownika"
 msgstr "Zmień hasło użytkownika"
 
 
-#: apps/admin/users/forms.py:46
+#: apps/admin/users/forms.py:25
 msgid ""
 msgid ""
 "If you wish to change user password, enter here new password. Otherwhise "
 "If you wish to change user password, enter here new password. Otherwhise "
 "leave this field blank."
 "leave this field blank."
@@ -2832,15 +2748,11 @@ msgstr ""
 "Jeżeli chcesz zmienić hasło użytkownika, wpisz tutaj nowe. W przeciwnym "
 "Jeżeli chcesz zmienić hasło użytkownika, wpisz tutaj nowe. W przeciwnym "
 "wypadku, pozostaw to pole puste."
 "wypadku, pozostaw to pole puste."
 
 
-#: apps/admin/users/forms.py:50
-msgid "User Avatar"
-msgstr "Awatar użytkownika"
-
-#: apps/admin/users/forms.py:52
+#: apps/admin/users/forms.py:27
 msgid "Set Non-Standard Avatar"
 msgid "Set Non-Standard Avatar"
 msgstr "Ustaw niestandardowy awatar"
 msgstr "Ustaw niestandardowy awatar"
 
 
-#: apps/admin/users/forms.py:52
+#: apps/admin/users/forms.py:28
 msgid ""
 msgid ""
 "You can make this member use special avatar by entering name of image file "
 "You can make this member use special avatar by entering name of image file "
 "located in avatars directory here."
 "located in avatars directory here."
@@ -2848,11 +2760,11 @@ msgstr ""
 "Możesz ustawić temu użytkownikowi specjalny awatar, wprowadzając tu nazwę "
 "Możesz ustawić temu użytkownikowi specjalny awatar, wprowadzając tu nazwę "
 "pliku obrazka umieszczonego w katalogu awatarów."
 "pliku obrazka umieszczonego w katalogu awatarów."
 
 
-#: apps/admin/users/forms.py:53
+#: apps/admin/users/forms.py:30
 msgid "Lock Member's Avatar"
 msgid "Lock Member's Avatar"
 msgstr "Zablokuj awatar użytkownika"
 msgstr "Zablokuj awatar użytkownika"
 
 
-#: apps/admin/users/forms.py:53
+#: apps/admin/users/forms.py:31
 msgid ""
 msgid ""
 "If you set this field to yes, this member's avatar will be deleted and "
 "If you set this field to yes, this member's avatar will be deleted and "
 "replaced with random one selected from _removed gallery and member will not "
 "replaced with random one selected from _removed gallery and member will not "
@@ -2862,11 +2774,11 @@ msgstr ""
 "zastąpiony losowym z galerii \"_removed\", a sam użytkownik pozbawiony "
 "zastąpiony losowym z galerii \"_removed\", a sam użytkownik pozbawiony "
 "możliwości dalszych zmian awatara."
 "możliwości dalszych zmian awatara."
 
 
-#: apps/admin/users/forms.py:54 apps/admin/users/forms.py:63
+#: apps/admin/users/forms.py:33 apps/admin/users/forms.py:45
 msgid "User-visible reason for lock"
 msgid "User-visible reason for lock"
 msgstr "Uzasadnienie blokady awatara dla użytkownika"
 msgstr "Uzasadnienie blokady awatara dla użytkownika"
 
 
-#: apps/admin/users/forms.py:54
+#: apps/admin/users/forms.py:34
 msgid ""
 msgid ""
 "You can leave message to member explaining why he or she is unable to change "
 "You can leave message to member explaining why he or she is unable to change "
 "his avatar anymore. This message will be displayed to member in his control "
 "his avatar anymore. This message will be displayed to member in his control "
@@ -2875,11 +2787,11 @@ msgstr ""
 "Możesz tutaj pozostawić wiadomość, którą zobaczy użytkownik jako "
 "Możesz tutaj pozostawić wiadomość, którą zobaczy użytkownik jako "
 "uzasadnienie braku możliwości dalszych zmian awatara."
 "uzasadnienie braku możliwości dalszych zmian awatara."
 
 
-#: apps/admin/users/forms.py:55 apps/admin/users/forms.py:64
+#: apps/admin/users/forms.py:36 apps/admin/users/forms.py:48
 msgid "Forum Team-visible reason for lock"
 msgid "Forum Team-visible reason for lock"
 msgstr "Uzasadnienie dla ekipy forum"
 msgstr "Uzasadnienie dla ekipy forum"
 
 
-#: apps/admin/users/forms.py:55
+#: apps/admin/users/forms.py:37
 msgid ""
 msgid ""
 "You can leave message to other forum team members exmplaining why this "
 "You can leave message to other forum team members exmplaining why this "
 "member's avatar has been locked."
 "member's avatar has been locked."
@@ -2887,29 +2799,25 @@ msgstr ""
 "Możesz tu wpisać uzasadnienie blokady awatara użytkownika dla innych "
 "Możesz tu wpisać uzasadnienie blokady awatara użytkownika dla innych "
 "członków ekipy forum."
 "członków ekipy forum."
 
 
-#: apps/admin/users/forms.py:59
-msgid "User Signature"
-msgstr "Sygnaturka użytkownika"
-
-#: apps/admin/users/forms.py:61
+#: apps/admin/users/forms.py:39
 msgid "Signature"
 msgid "Signature"
 msgstr "Sygnaturka"
 msgstr "Sygnaturka"
 
 
-#: apps/admin/users/forms.py:61
+#: apps/admin/users/forms.py:40
 msgid "Signature is short message attached at end of member's messages."
 msgid "Signature is short message attached at end of member's messages."
 msgstr "Sygnaturka to krótka wiadomość dołączana do postów użytkownika."
 msgstr "Sygnaturka to krótka wiadomość dołączana do postów użytkownika."
 
 
-#: apps/admin/users/forms.py:62
+#: apps/admin/users/forms.py:42
 msgid "Lock Member's Signature"
 msgid "Lock Member's Signature"
 msgstr "Zablokuj sygnaturkę użytkownika"
 msgstr "Zablokuj sygnaturkę użytkownika"
 
 
-#: apps/admin/users/forms.py:62
+#: apps/admin/users/forms.py:43
 msgid ""
 msgid ""
 "If you set this field to yes, this member will not be able to change his "
 "If you set this field to yes, this member will not be able to change his "
 "signature."
 "signature."
 msgstr "Ustawione na tak, uniemożliwia użytkownikowi zmiany swojej sygnaturki."
 msgstr "Ustawione na tak, uniemożliwia użytkownikowi zmiany swojej sygnaturki."
 
 
-#: apps/admin/users/forms.py:63
+#: apps/admin/users/forms.py:46
 msgid ""
 msgid ""
 "You can leave message to member explaining why he or she is unable to edit "
 "You can leave message to member explaining why he or she is unable to edit "
 "his signature anymore. This message will be displayed to member in his "
 "his signature anymore. This message will be displayed to member in his "
@@ -2919,7 +2827,7 @@ msgstr ""
 "ponownie zmieniać swojej sygnaturki. Będzie wyświetlona podczas próby jej "
 "ponownie zmieniać swojej sygnaturki. Będzie wyświetlona podczas próby jej "
 "zmiany."
 "zmiany."
 
 
-#: apps/admin/users/forms.py:64
+#: apps/admin/users/forms.py:49
 msgid ""
 msgid ""
 "You can leave message to other forum team members exmplaining why this "
 "You can leave message to other forum team members exmplaining why this "
 "member's signature has been locked."
 "member's signature has been locked."
@@ -2927,83 +2835,76 @@ msgstr ""
 "Możesz pozostawić uzasadnienie zablokowania sygnaturki tego użytkownika dla "
 "Możesz pozostawić uzasadnienie zablokowania sygnaturki tego użytkownika dla "
 "innych członków ekipy forum."
 "innych członków ekipy forum."
 
 
-#: apps/admin/users/forms.py:71 apps/admin/users/forms.py:153
+#: apps/admin/users/forms.py:61 apps/admin/users/forms.py:65
+#: apps/admin/users/forms.py:134 apps/admin/users/forms.py:138
+msgid "This user roles. Roles are sets of user permissions"
+msgstr "Role tego użytkownika. Role to zbiory uprawnień."
+
+#: apps/admin/users/forms.py:62 apps/admin/users/forms.py:135
 msgid "User must have at least one role assigned."
 msgid "User must have at least one role assigned."
 msgstr "Użytkownik musi mieć przypisaną przynamniej jedną rolę."
 msgstr "Użytkownik musi mieć przypisaną przynamniej jedną rolę."
 
 
-#: apps/admin/users/forms.py:116
+#: apps/admin/users/forms.py:108
 msgid "Avatar does not exist or is not image file."
 msgid "Avatar does not exist or is not image file."
 msgstr "Awatar nie istnieje, lub nie jest obrazkiem."
 msgstr "Awatar nie istnieje, lub nie jest obrazkiem."
 
 
-#: apps/admin/users/forms.py:143
+#: apps/admin/users/forms.py:127
 msgid "User Password"
 msgid "User Password"
 msgstr "Hasło użytkownika."
 msgstr "Hasło użytkownika."
 
 
-#: apps/admin/users/forms.py:143
+#: apps/admin/users/forms.py:128
 msgid "Member password."
 msgid "Member password."
 msgstr "Hasło członka tego forum."
 msgstr "Hasło członka tego forum."
 
 
-#: apps/admin/users/forms.py:192
+#: apps/admin/users/forms.py:174
+msgid "Activation Requirement"
+msgstr "Oczekuje na aktywację"
+
+#: apps/admin/users/forms.py:174
 msgid "Already Active"
 msgid "Already Active"
 msgstr "Już aktywowany"
 msgstr "Już aktywowany"
 
 
-#: apps/admin/users/forms.py:192
+#: apps/admin/users/forms.py:174
 msgid "By User"
 msgid "By User"
 msgstr "Przez użytkownika"
 msgstr "Przez użytkownika"
 
 
-#: apps/admin/users/forms.py:192
+#: apps/admin/users/forms.py:174
 msgid "By Administrator"
 msgid "By Administrator"
 msgstr "Przez administratora"
 msgstr "Przez administratora"
 
 
-#: apps/admin/users/forms.py:198 templates/cranefly/profiles/list.html:38
-msgid "Search Users"
-msgstr "Wyszukiwanie użytkowników"
-
-#: apps/admin/users/forms.py:200
-msgid "Username contains..."
-msgstr "Nazwa użytkownika zawiera..."
-
-#: apps/admin/users/forms.py:201
-msgid "E-mail address contains..."
-msgstr "Adres e-mail zawiera..."
-
-#: apps/admin/users/forms.py:202
-msgid "Activation Requirement"
-msgstr "Oczekuje na aktywację"
-
-#: apps/admin/users/forms.py:203
+#: apps/admin/users/forms.py:175
 msgid "Rank is"
 msgid "Rank is"
 msgstr "Ranga to"
 msgstr "Ranga to"
 
 
-#: apps/admin/users/forms.py:204
+#: apps/admin/users/forms.py:176
 msgid "Has Role"
 msgid "Has Role"
 msgstr "Posiada rolę"
 msgstr "Posiada rolę"
 
 
-#: apps/admin/users/views.py:27
+#: apps/admin/users/views.py:28
 msgid "User Name"
 msgid "User Name"
 msgstr "Nazwa użytkownika"
 msgstr "Nazwa użytkownika"
 
 
-#: apps/admin/users/views.py:28
+#: apps/admin/users/views.py:29
 msgid "Join Date"
 msgid "Join Date"
 msgstr "Data dołączenia"
 msgstr "Data dołączenia"
 
 
-#: apps/admin/users/views.py:37
+#: apps/admin/users/views.py:38
 msgid "You have to check at least one user."
 msgid "You have to check at least one user."
 msgstr "Musisz zaznaczyć przynajmniej jednego użytkownika."
 msgstr "Musisz zaznaczyć przynajmniej jednego użytkownika."
 
 
-#: apps/admin/users/views.py:39
+#: apps/admin/users/views.py:40
 msgid "Activate users"
 msgid "Activate users"
 msgstr "Aktywacja użytkowników"
 msgstr "Aktywacja użytkowników"
 
 
-#: apps/admin/users/views.py:39
+#: apps/admin/users/views.py:40
 msgid "Are you sure you want to activate selected members?"
 msgid "Are you sure you want to activate selected members?"
 msgstr "Czy aby na pewno chcesz aktywować zaznaczonych użytkowników?"
 msgstr "Czy aby na pewno chcesz aktywować zaznaczonych użytkowników?"
 
 
-#: apps/admin/users/views.py:40
+#: apps/admin/users/views.py:41
 msgid "Request e-mail validation"
 msgid "Request e-mail validation"
 msgstr "Zażądaj walidacji adresu e-mail"
 msgstr "Zażądaj walidacji adresu e-mail"
 
 
-#: apps/admin/users/views.py:40
+#: apps/admin/users/views.py:41
 msgid ""
 msgid ""
 "Are you sure you want to deactivate selected members and request them to "
 "Are you sure you want to deactivate selected members and request them to "
 "revalidate their e-mail addresses?"
 "revalidate their e-mail addresses?"
@@ -3011,11 +2912,11 @@ msgstr ""
 "Czy aby na pewno chcesz zdezaktywować zaznaczonych użytkowników i zażądać "
 "Czy aby na pewno chcesz zdezaktywować zaznaczonych użytkowników i zażądać "
 "rewalidacji ich adresu e-mail?"
 "rewalidacji ich adresu e-mail?"
 
 
-#: apps/admin/users/views.py:41
+#: apps/admin/users/views.py:42
 msgid "Remove and lock avatars"
 msgid "Remove and lock avatars"
 msgstr "Usuń i zablokuj avataty"
 msgstr "Usuń i zablokuj avataty"
 
 
-#: apps/admin/users/views.py:41
+#: apps/admin/users/views.py:42
 msgid ""
 msgid ""
 "Are you sure you want to remove selected members avatars and their ability "
 "Are you sure you want to remove selected members avatars and their ability "
 "to change them?"
 "to change them?"
@@ -3023,11 +2924,11 @@ msgstr ""
 "Czy aby na pewno chcesz usunąć awatary zaznaczonych użytkowników i odebrać "
 "Czy aby na pewno chcesz usunąć awatary zaznaczonych użytkowników i odebrać "
 "im możliwość ich ustawiania?"
 "im możliwość ich ustawiania?"
 
 
-#: apps/admin/users/views.py:42
+#: apps/admin/users/views.py:43
 msgid "Remove and lock signatures"
 msgid "Remove and lock signatures"
 msgstr "Usuń i zablokuj sygnaturki"
 msgstr "Usuń i zablokuj sygnaturki"
 
 
-#: apps/admin/users/views.py:42
+#: apps/admin/users/views.py:43
 msgid ""
 msgid ""
 "Are you sure you want to remove selected members signatures and their "
 "Are you sure you want to remove selected members signatures and their "
 "ability to edit them?"
 "ability to edit them?"
@@ -3035,11 +2936,11 @@ msgstr ""
 "Czy aby na pewno chcesz usunąć sygnaturki zaznaczonych użytkowników i "
 "Czy aby na pewno chcesz usunąć sygnaturki zaznaczonych użytkowników i "
 "odebrać im możliwość ich edycji?"
 "odebrać im możliwość ich edycji?"
 
 
-#: apps/admin/users/views.py:43
+#: apps/admin/users/views.py:44
 msgid "Remove locks from avatars and signatures"
 msgid "Remove locks from avatars and signatures"
 msgstr "Usuń blokadę modyfikacji awatarów i sygnaturek"
 msgstr "Usuń blokadę modyfikacji awatarów i sygnaturek"
 
 
-#: apps/admin/users/views.py:43
+#: apps/admin/users/views.py:44
 msgid ""
 msgid ""
 "Are you sure you want to remove locks from selected members avatars and "
 "Are you sure you want to remove locks from selected members avatars and "
 "signatures?"
 "signatures?"
@@ -3047,57 +2948,57 @@ msgstr ""
 "Czy aby na pewno chcesz przywrócić możliwość modyfikacji awatarów i "
 "Czy aby na pewno chcesz przywrócić możliwość modyfikacji awatarów i "
 "sygnaturek dla zaznaczonych użytkowników?"
 "sygnaturek dla zaznaczonych użytkowników?"
 
 
-#: apps/admin/users/views.py:44
+#: apps/admin/users/views.py:45
 msgid "Reset passwords"
 msgid "Reset passwords"
 msgstr "Reset haseł"
 msgstr "Reset haseł"
 
 
-#: apps/admin/users/views.py:44
+#: apps/admin/users/views.py:45
 msgid "Are you sure you want to reset selected members passwords?"
 msgid "Are you sure you want to reset selected members passwords?"
 msgstr "Czy aby na pewno chcesz zresetować hasła zaznaczonych użytkowników?"
 msgstr "Czy aby na pewno chcesz zresetować hasła zaznaczonych użytkowników?"
 
 
-#: apps/admin/users/views.py:45
+#: apps/admin/users/views.py:46
 msgid "Delete users with content"
 msgid "Delete users with content"
 msgstr "Usuń użytkowników wraz z postami"
 msgstr "Usuń użytkowników wraz z postami"
 
 
-#: apps/admin/users/views.py:45
+#: apps/admin/users/views.py:46
 msgid "Are you sure you want to delete selected users and their content?"
 msgid "Are you sure you want to delete selected users and their content?"
 msgstr ""
 msgstr ""
 "Czy aby na pewno chcesz usunąć zaznaczonych użytkowników wraz z całą ich "
 "Czy aby na pewno chcesz usunąć zaznaczonych użytkowników wraz z całą ich "
 "aktywnością?"
 "aktywnością?"
 
 
-#: apps/admin/users/views.py:46
+#: apps/admin/users/views.py:47
 msgid "Delete users"
 msgid "Delete users"
 msgstr "Usuń użytkowników"
 msgstr "Usuń użytkowników"
 
 
-#: apps/admin/users/views.py:46
+#: apps/admin/users/views.py:47
 msgid "Are you sure you want to delete selected users?"
 msgid "Are you sure you want to delete selected users?"
 msgstr "Czy aby na pewno chcesz usunąć zaznaczonych użytkowników?"
 msgstr "Czy aby na pewno chcesz usunąć zaznaczonych użytkowników?"
 
 
-#: apps/admin/users/views.py:91
+#: apps/admin/users/views.py:92
 msgid "Edit User Details"
 msgid "Edit User Details"
 msgstr "Modyfikacja szczegółów użytkownika"
 msgstr "Modyfikacja szczegółów użytkownika"
 
 
-#: apps/admin/users/views.py:92
+#: apps/admin/users/views.py:93
 msgid "Delete User"
 msgid "Delete User"
 msgstr "Usuń użytkownika"
 msgstr "Usuń użytkownika"
 
 
-#: apps/admin/users/views.py:92
+#: apps/admin/users/views.py:93
 msgid "Are you sure you want to delete this user account?"
 msgid "Are you sure you want to delete this user account?"
 msgstr "Czy aby na pewno chcesz usunąć profil tego użytkownika?"
 msgstr "Czy aby na pewno chcesz usunąć profil tego użytkownika?"
 
 
-#: apps/admin/users/views.py:105
+#: apps/admin/users/views.py:106
 msgid "Your Account has been activated"
 msgid "Your Account has been activated"
 msgstr "Twoje konto zostało aktywowane"
 msgstr "Twoje konto zostało aktywowane"
 
 
-#: apps/admin/users/views.py:108
+#: apps/admin/users/views.py:109
 msgid "Selected users accounts have been activated."
 msgid "Selected users accounts have been activated."
 msgstr "Konta zaznaczonych użytkowników zostały aktywowane."
 msgstr "Konta zaznaczonych użytkowników zostały aktywowane."
 
 
-#: apps/admin/users/views.py:115
+#: apps/admin/users/views.py:116
 msgid "You cannot force validation of protected members e-mails."
 msgid "You cannot force validation of protected members e-mails."
 msgstr "Nie możesz wymusić walidacji e-maili chronionych użytkowników."
 msgstr "Nie możesz wymusić walidacji e-maili chronionych użytkowników."
 
 
-#: apps/admin/users/views.py:129
+#: apps/admin/users/views.py:130
 msgid ""
 msgid ""
 "Selected users accounts have been deactivated and new activation links have "
 "Selected users accounts have been deactivated and new activation links have "
 "been sent to them."
 "been sent to them."
@@ -3105,90 +3006,90 @@ msgstr ""
 "Konta zaznaczonych użytkowników zostały tymczasowo zdezaktywowane. Rozesłano "
 "Konta zaznaczonych użytkowników zostały tymczasowo zdezaktywowane. Rozesłano "
 "do nich nowe e-maile aktywacyjne."
 "do nich nowe e-maile aktywacyjne."
 
 
-#: apps/admin/users/views.py:136
+#: apps/admin/users/views.py:137
 msgid "You cannot remove and block protected members avatars."
 msgid "You cannot remove and block protected members avatars."
 msgstr ""
 msgstr ""
 "Nie możesz usunąć, ani zablokować możliwości zmiany awatara u chronionych "
 "Nie możesz usunąć, ani zablokować możliwości zmiany awatara u chronionych "
 "użytkowników."
 "użytkowników."
 
 
-#: apps/admin/users/views.py:144
+#: apps/admin/users/views.py:145
 msgid "Selected users avatars were deleted and locked."
 msgid "Selected users avatars were deleted and locked."
 msgstr "Awatary zaznaczonych użytkowników zostały usunięte i zablokowane."
 msgstr "Awatary zaznaczonych użytkowników zostały usunięte i zablokowane."
 
 
-#: apps/admin/users/views.py:151
+#: apps/admin/users/views.py:152
 msgid "You cannot remove and block protected members signatures."
 msgid "You cannot remove and block protected members signatures."
 msgstr ""
 msgstr ""
 "Nie możesz usunąć, ani zablokować możliwości zmiany sygnaturki u chronionych "
 "Nie możesz usunąć, ani zablokować możliwości zmiany sygnaturki u chronionych "
 "użytkowników."
 "użytkowników."
 
 
-#: apps/admin/users/views.py:161
+#: apps/admin/users/views.py:162
 msgid "Selected users signatures were deleted and locked."
 msgid "Selected users signatures were deleted and locked."
 msgstr "Sygnaturki zaznaczonych użytkowników zostały usunięte i zablokowane."
 msgstr "Sygnaturki zaznaczonych użytkowników zostały usunięte i zablokowane."
 
 
-#: apps/admin/users/views.py:171
+#: apps/admin/users/views.py:172
 msgid "Selected users can now edit their avatars and signatures."
 msgid "Selected users can now edit their avatars and signatures."
 msgstr ""
 msgstr ""
 "Zaznaczeniu użytkownicy mogą ponownie modyfikować swoje awatary i sygnaturki."
 "Zaznaczeniu użytkownicy mogą ponownie modyfikować swoje awatary i sygnaturki."
 
 
-#: apps/admin/users/views.py:178
+#: apps/admin/users/views.py:179
 msgid "You cannot reset protected members passwords."
 msgid "You cannot reset protected members passwords."
 msgstr "Nie możesz zrestartować hasła u chronionych użytkowników."
 msgstr "Nie możesz zrestartować hasła u chronionych użytkowników."
 
 
-#: apps/admin/users/views.py:189 apps/resetpswd/views.py:84
+#: apps/admin/users/views.py:190 apps/resetpswd/views.py:82
 msgid "Your New Password"
 msgid "Your New Password"
 msgstr "Twoje nowe hasło"
 msgstr "Twoje nowe hasło"
 
 
-#: apps/admin/users/views.py:195
+#: apps/admin/users/views.py:196
 msgid "Selected users passwords have been reset successfully."
 msgid "Selected users passwords have been reset successfully."
 msgstr "Hasła zaznaczonych użytkowników zostały pomyślnie zrestartowane."
 msgstr "Hasła zaznaczonych użytkowników zostały pomyślnie zrestartowane."
 
 
-#: apps/admin/users/views.py:201 apps/admin/users/views.py:221
-#: apps/admin/users/views.py:362
+#: apps/admin/users/views.py:202 apps/admin/users/views.py:222
+#: apps/admin/users/views.py:363
 msgid "You cannot delete yourself."
 msgid "You cannot delete yourself."
 msgstr "Nie możesz usunąć swojego profilu."
 msgstr "Nie możesz usunąć swojego profilu."
 
 
-#: apps/admin/users/views.py:203 apps/admin/users/views.py:223
+#: apps/admin/users/views.py:204 apps/admin/users/views.py:224
 msgid "You cannot delete protected members."
 msgid "You cannot delete protected members."
 msgstr "Nie możesz usunąć chronionych użytkowników."
 msgstr "Nie możesz usunąć chronionych użytkowników."
 
 
-#: apps/admin/users/views.py:215
+#: apps/admin/users/views.py:216
 msgid "Selected users and their content have been deleted successfully."
 msgid "Selected users and their content have been deleted successfully."
 msgstr "Zaznaczeni użytkownicy i ich posty zostały pomyślnie usunięte."
 msgstr "Zaznaczeni użytkownicy i ich posty zostały pomyślnie usunięte."
 
 
-#: apps/admin/users/views.py:230
+#: apps/admin/users/views.py:231
 msgid "Selected users have been deleted successfully."
 msgid "Selected users have been deleted successfully."
 msgstr "Pomyślnie usunięto zaznaczonych użytkowników."
 msgstr "Pomyślnie usunięto zaznaczonych użytkowników."
 
 
-#: apps/admin/users/views.py:238
+#: apps/admin/users/views.py:240
 msgid "Save User"
 msgid "Save User"
 msgstr "Zapisz użytkownika"
 msgstr "Zapisz użytkownika"
 
 
-#: apps/admin/users/views.py:264
+#: apps/admin/users/views.py:266
 msgid "New User has been created."
 msgid "New User has been created."
 msgstr "Nowy użytkownik został dodany."
 msgstr "Nowy użytkownik został dodany."
 
 
-#: apps/admin/users/views.py:270
+#: apps/admin/users/views.py:272
 msgid "Edit User"
 msgid "Edit User"
 msgstr "Zmodyfikuj użytkownika"
 msgstr "Zmodyfikuj użytkownika"
 
 
-#: apps/admin/users/views.py:275
+#: apps/admin/users/views.py:276
 msgid "Requested User could not be found."
 msgid "Requested User could not be found."
 msgstr "Nie odnaleziono żądanego użytkownika."
 msgstr "Nie odnaleziono żądanego użytkownika."
 
 
-#: apps/admin/users/views.py:351
+#: apps/admin/users/views.py:352
 #, python-format
 #, python-format
 msgid "Changes in user's \"%(name)s\" account have been saved."
 msgid "Changes in user's \"%(name)s\" account have been saved."
 msgstr "Zmiany w profilu użytkownika \"%(name)s\" zostały zachowane."
 msgstr "Zmiany w profilu użytkownika \"%(name)s\" zostały zachowane."
 
 
-#: apps/admin/users/views.py:358
+#: apps/admin/users/views.py:359
 msgid "Requested User account could not be found."
 msgid "Requested User account could not be found."
 msgstr "Żądane konto użytkownika nie zostało odnalezione."
 msgstr "Żądane konto użytkownika nie zostało odnalezione."
 
 
-#: apps/admin/users/views.py:364
+#: apps/admin/users/views.py:365
 msgid "You cannot delete protected member."
 msgid "You cannot delete protected member."
 msgstr "Nie możesz usunąć chronionego użytkownika."
 msgstr "Nie możesz usunąć chronionego użytkownika."
 
 
-#: apps/admin/users/views.py:367
+#: apps/admin/users/views.py:368
 #, python-format
 #, python-format
 msgid "User \"%(name)s\" has been deleted."
 msgid "User \"%(name)s\" has been deleted."
 msgstr "Użytkownik \"%(name)s\" został usunięty."
 msgstr "Użytkownik \"%(name)s\" został usunięty."
@@ -3197,27 +3098,23 @@ msgstr "Użytkownik \"%(name)s\" został usunięty."
 msgid "Invite members to thread"
 msgid "Invite members to thread"
 msgstr "Zaproś użytkowników do dyskusji"
 msgstr "Zaproś użytkowników do dyskusji"
 
 
-#: apps/privatethreads/forms.py:13
-msgid "user1, user2, user3..."
-msgstr "Użytkownik1, użytkownik2, użytkownik3..."
-
-#: apps/privatethreads/forms.py:29 apps/privatethreads/jumps.py:67
+#: apps/privatethreads/forms.py:30 apps/privatethreads/jumps.py:68
 #, python-format
 #, python-format
 msgid "%(user)s cannot participate in private threads."
 msgid "%(user)s cannot participate in private threads."
 msgstr "%(user)s nie może uczestniczyć w prywatnych dyskusjach."
 msgstr "%(user)s nie może uczestniczyć w prywatnych dyskusjach."
 
 
-#: apps/privatethreads/forms.py:32 apps/privatethreads/jumps.py:70
+#: apps/privatethreads/forms.py:33 apps/privatethreads/jumps.py:71
 #: apps/privatethreads/posting.py:27
 #: apps/privatethreads/posting.py:27
 #, python-format
 #, python-format
 msgid "%(user)s restricts who can invite him to private threads."
 msgid "%(user)s restricts who can invite him to private threads."
 msgstr "%(user)s nie pozwala Ci zaprosić go do dyskusji."
 msgstr "%(user)s nie pozwala Ci zaprosić go do dyskusji."
 
 
-#: apps/privatethreads/forms.py:35
+#: apps/privatethreads/forms.py:36
 #, python-format
 #, python-format
 msgid "User \"%(username)s\" could not be found."
 msgid "User \"%(username)s\" could not be found."
 msgstr "Użytkownik \"%(username)s\" nie został odnaleziony."
 msgstr "Użytkownik \"%(username)s\" nie został odnaleziony."
 
 
-#: apps/privatethreads/forms.py:37
+#: apps/privatethreads/forms.py:38
 msgid ""
 msgid ""
 "You cannot invite more than 8 members at single time. Post thread and then "
 "You cannot invite more than 8 members at single time. Post thread and then "
 "invite additional members."
 "invite additional members."
@@ -3225,52 +3122,52 @@ msgstr ""
 "Nie możesz zaprosić więcej niż 8 osób na raz. Utwórz temat i wtedy zaproś "
 "Nie możesz zaprosić więcej niż 8 osób na raz. Utwórz temat i wtedy zaproś "
 "pozostałych członków."
 "pozostałych członków."
 
 
-#: apps/privatethreads/jumps.py:56
+#: apps/privatethreads/jumps.py:57
 msgid "You have to enter name of user you want to invite to thread."
 msgid "You have to enter name of user you want to invite to thread."
 msgstr ""
 msgstr ""
 "Musisz wprowadzić nazwę użytkownika, którego chcesz zaprosić do dyskusji."
 "Musisz wprowadzić nazwę użytkownika, którego chcesz zaprosić do dyskusji."
 
 
-#: apps/privatethreads/jumps.py:63
+#: apps/privatethreads/jumps.py:64
 msgid "You cannot add yourself to this thread."
 msgid "You cannot add yourself to this thread."
 msgstr "Nie możesz zaprosić tutaj sam siebie."
 msgstr "Nie możesz zaprosić tutaj sam siebie."
 
 
-#: apps/privatethreads/jumps.py:65
+#: apps/privatethreads/jumps.py:66
 #, python-format
 #, python-format
 msgid "%(user)s is already participating in this thread."
 msgid "%(user)s is already participating in this thread."
 msgstr "%(user)s już uczestniczy w tej dyskusji."
 msgstr "%(user)s już uczestniczy w tej dyskusji."
 
 
-#: apps/privatethreads/jumps.py:75 apps/privatethreads/mixins.py:26
+#: apps/privatethreads/jumps.py:76 apps/privatethreads/mixins.py:26
 #, python-format
 #, python-format
 msgid "You've been invited to private thread \"%(thread)s\" by %(user)s"
 msgid "You've been invited to private thread \"%(thread)s\" by %(user)s"
 msgstr "%(user)s zaprosił Cię do prywatnej dyskusji \"%(thread)s\""
 msgstr "%(user)s zaprosił Cię do prywatnej dyskusji \"%(thread)s\""
 
 
-#: apps/privatethreads/jumps.py:77
+#: apps/privatethreads/jumps.py:78
 #, python-format
 #, python-format
 msgid "%(user)s has been added to this thread."
 msgid "%(user)s has been added to this thread."
 msgstr "%(user)s został dodany do dyskusji."
 msgstr "%(user)s został dodany do dyskusji."
 
 
-#: apps/privatethreads/jumps.py:79
+#: apps/privatethreads/jumps.py:80
 msgid "User with requested username could not be found."
 msgid "User with requested username could not be found."
 msgstr "Użytkownik o podanej nazwie nie został odnaleziony."
 msgstr "Użytkownik o podanej nazwie nie został odnaleziony."
 
 
-#: apps/privatethreads/jumps.py:89
+#: apps/privatethreads/jumps.py:90
 msgid "You don't have permission to remove discussion participants."
 msgid "You don't have permission to remove discussion participants."
 msgstr "Nie posiadasz uprawnień do usuwania członków dyskusji."
 msgstr "Nie posiadasz uprawnień do usuwania członków dyskusji."
 
 
-#: apps/privatethreads/jumps.py:100
+#: apps/privatethreads/jumps.py:101
 msgid "Thread has been deleted because last participant left it."
 msgid "Thread has been deleted because last participant left it."
 msgstr "Temat został usunięty, ponieważ opuścił go ostatni uczestnik."
 msgstr "Temat został usunięty, ponieważ opuścił go ostatni uczestnik."
 
 
-#: apps/privatethreads/jumps.py:105
+#: apps/privatethreads/jumps.py:106
 #, python-format
 #, python-format
 msgid "You have left the \"%(thread)s\" thread."
 msgid "You have left the \"%(thread)s\" thread."
 msgstr "Opuściłeś temat \"%(thread)s\"."
 msgstr "Opuściłeś temat \"%(thread)s\"."
 
 
-#: apps/privatethreads/jumps.py:111
+#: apps/privatethreads/jumps.py:112
 msgid "Selected participant was removed from thread."
 msgid "Selected participant was removed from thread."
 msgstr "Zaznaczony członek został wykluczony z dyskusji."
 msgstr "Zaznaczony członek został wykluczony z dyskusji."
 
 
-#: apps/privatethreads/jumps.py:114
+#: apps/privatethreads/jumps.py:115
 msgid "Requested thread participant does not exist."
 msgid "Requested thread participant does not exist."
 msgstr "Nie odnaleziono żądanego członka dyskusji."
 msgstr "Nie odnaleziono żądanego członka dyskusji."
 
 
@@ -3319,54 +3216,54 @@ msgstr "Twoja odpowiedź została zapisana."
 msgid "Your reply has been changed."
 msgid "Your reply has been changed."
 msgstr "Twoja odpowiedź została zmodyfikowana."
 msgstr "Twoja odpowiedź została zmodyfikowana."
 
 
-#: apps/privatethreads/thread.py:14 apps/threads/thread.py:14
+#: apps/privatethreads/thread.py:13 apps/threads/thread.py:14
 msgid "Merge posts into one"
 msgid "Merge posts into one"
 msgstr "Połącz posty w jeden"
 msgstr "Połącz posty w jeden"
 
 
-#: apps/privatethreads/thread.py:16 apps/threads/thread.py:18
+#: apps/privatethreads/thread.py:15 apps/threads/thread.py:18
 msgid "Protect posts"
 msgid "Protect posts"
 msgstr "Zabezpiecz posty"
 msgstr "Zabezpiecz posty"
 
 
-#: apps/privatethreads/thread.py:17 apps/threads/thread.py:19
+#: apps/privatethreads/thread.py:16 apps/threads/thread.py:19
 msgid "Remove posts protection"
 msgid "Remove posts protection"
 msgstr "Zdejmij ochronę postów"
 msgstr "Zdejmij ochronę postów"
 
 
-#: apps/privatethreads/thread.py:20 apps/reports/thread.py:19
+#: apps/privatethreads/thread.py:19 apps/reports/thread.py:19
 #: apps/threads/thread.py:22
 #: apps/threads/thread.py:22
 msgid "Restore posts"
 msgid "Restore posts"
 msgstr "Przywróć posty"
 msgstr "Przywróć posty"
 
 
-#: apps/privatethreads/thread.py:21 apps/reports/thread.py:20
+#: apps/privatethreads/thread.py:20 apps/reports/thread.py:20
 #: apps/threads/thread.py:23
 #: apps/threads/thread.py:23
 msgid "Hide posts"
 msgid "Hide posts"
 msgstr "Ukryj posty"
 msgstr "Ukryj posty"
 
 
-#: apps/privatethreads/thread.py:23 apps/reports/thread.py:22
+#: apps/privatethreads/thread.py:22 apps/reports/thread.py:22
 #: apps/threads/thread.py:25
 #: apps/threads/thread.py:25
 msgid "Delete posts"
 msgid "Delete posts"
 msgstr "Usuń posty"
 msgstr "Usuń posty"
 
 
-#: apps/privatethreads/thread.py:34 apps/threads/thread.py:49
+#: apps/privatethreads/thread.py:33 apps/threads/thread.py:49
 msgid "Open this thread"
 msgid "Open this thread"
 msgstr "Otwórz ten temat"
 msgstr "Otwórz ten temat"
 
 
-#: apps/privatethreads/thread.py:36 apps/threads/thread.py:51
+#: apps/privatethreads/thread.py:35 apps/threads/thread.py:51
 msgid "Close this thread"
 msgid "Close this thread"
 msgstr "Zamknij ten temat"
 msgstr "Zamknij ten temat"
 
 
-#: apps/privatethreads/thread.py:39 apps/threads/thread.py:54
+#: apps/privatethreads/thread.py:38 apps/threads/thread.py:54
 msgid "Restore this thread"
 msgid "Restore this thread"
 msgstr "Przywróć ten temat"
 msgstr "Przywróć ten temat"
 
 
-#: apps/privatethreads/thread.py:41 apps/threads/thread.py:56
+#: apps/privatethreads/thread.py:40 apps/threads/thread.py:56
 msgid "Hide this thread"
 msgid "Hide this thread"
 msgstr "Ukryj ten temat"
 msgstr "Ukryj ten temat"
 
 
-#: apps/privatethreads/thread.py:43 apps/threads/thread.py:58
+#: apps/privatethreads/thread.py:42 apps/threads/thread.py:58
 msgid "Delete this thread"
 msgid "Delete this thread"
 msgstr "Usuń ten temat"
 msgstr "Usuń ten temat"
 
 
-#: apps/profiles/views.py:75
+#: apps/profiles/views.py:74
 msgid "To search users you have to enter username in search field."
 msgid "To search users you have to enter username in search field."
 msgstr "Aby szukać, wprowadź nazwę użytkownika w polu wyszukiwania."
 msgstr "Aby szukać, wprowadź nazwę użytkownika w polu wyszukiwania."
 
 
@@ -3375,7 +3272,7 @@ msgid "Profile Details"
 msgstr "Szczegóły"
 msgstr "Szczegóły"
 
 
 #: apps/profiles/followers/profile.py:4
 #: apps/profiles/followers/profile.py:4
-#: templates/cranefly/profiles/details.html:153
+#: templates/cranefly/profiles/details.html:152
 msgid "Followers"
 msgid "Followers"
 msgstr "Obserwatorzy"
 msgstr "Obserwatorzy"
 
 
@@ -3383,19 +3280,7 @@ msgstr "Obserwatorzy"
 msgid "Follows"
 msgid "Follows"
 msgstr "Obserwuje"
 msgstr "Obserwuje"
 
 
-#: apps/register/forms.py:18
-msgid "Acceptation of board ToS is mandatory for membership."
-msgstr "Akceptacja regulaminu forum jest obowiązkowa do członkowstwa."
-
-#: apps/register/forms.py:22
-msgid "Entered addresses do not match."
-msgstr "Wprowadzone adresy e-mail nie pasują do siebie."
-
-#: apps/register/forms.py:25
-msgid "Entered passwords do not match."
-msgstr "Wprowadzone hasła nie pasują do siebie."
-
-#: apps/register/forms.py:32
+#: apps/register/forms.py:12
 #, python-format
 #, python-format
 msgid ""
 msgid ""
 "Your displayed username. Between %(min)s and %(max)s characters, only "
 "Your displayed username. Between %(min)s and %(max)s characters, only "
@@ -3404,61 +3289,53 @@ msgstr ""
 "Twoja wyświetlana nazwa. Pomiędzy %(min)s a %(max)s znaków, dozwolone są "
 "Twoja wyświetlana nazwa. Pomiędzy %(min)s a %(max)s znaków, dozwolone są "
 "tylko litery i cyfry."
 "tylko litery i cyfry."
 
 
-#: apps/register/forms.py:32
-msgid "Enter your desired username"
-msgstr "Wprowadź pożądaną nazwę użytkownika"
-
-#: apps/register/forms.py:36
+#: apps/register/forms.py:15
 msgid ""
 msgid ""
 "Working e-mail inbox is required to maintain control over your forum account."
 "Working e-mail inbox is required to maintain control over your forum account."
 msgstr ""
 msgstr ""
 "Aby utrzymać kontrolę nad kontem użytkownika, potrzebny jest działający "
 "Aby utrzymać kontrolę nad kontem użytkownika, potrzebny jest działający "
 "adres e-mail."
 "adres e-mail."
 
 
-#: apps/register/forms.py:36 apps/signin/forms.py:14
-msgid "Enter your e-mail"
-msgstr "Wprowadź swój adres e-mail"
-
-#: apps/register/forms.py:36
-msgid "Repeat your e-mail"
-msgstr "Powtórz swój adres e-mail"
-
-#: apps/register/forms.py:37 templates/_email/users/activation/none.html:11
+#: apps/register/forms.py:18 templates/_email/users/activation/none.html:11
 #: templates/_email/users/activation/none.txt:12
 #: templates/_email/users/activation/none.txt:12
 msgid "Password"
 msgid "Password"
 msgstr "Hasło"
 msgstr "Hasło"
 
 
-#: apps/register/forms.py:37
+#: apps/register/forms.py:19
 msgid ""
 msgid ""
 "Password you will be using to sign in to your account. Make sure it's strong."
 "Password you will be using to sign in to your account. Make sure it's strong."
 msgstr ""
 msgstr ""
 "Hasło będzie potrzebne do zalogowania się na Twoje konto. Upewnij się, że "
 "Hasło będzie potrzebne do zalogowania się na Twoje konto. Upewnij się, że "
 "jest silne."
 "jest silne."
 
 
-#: apps/register/forms.py:37 apps/signin/forms.py:15
-msgid "Enter your password"
-msgstr "Wprowadź swoje hasło"
-
-#: apps/register/forms.py:37
-msgid "Repeat your password"
-msgstr "Powtórz swoje hasło"
-
-#: apps/register/forms.py:45 fixtures/tossettings.py:7
+#: apps/register/forms.py:24 fixtures/tossettings.py:7
 #: templates/cranefly/layout.html:71
 #: templates/cranefly/layout.html:71
 msgid "Forum Terms of Service"
 msgid "Forum Terms of Service"
 msgstr "Regulamin forum"
 msgstr "Regulamin forum"
 
 
-#: apps/register/views.py:22
+#: apps/register/forms.py:26
+msgid "Acceptation of board ToS is mandatory for membership."
+msgstr "Akceptacja regulaminu forum jest obowiązkowa do członkowstwa."
+
+#: apps/register/forms.py:30
+msgid "Entered addresses do not match."
+msgstr "Wprowadzone adresy e-mail nie pasują do siebie."
+
+#: apps/register/forms.py:33
+msgid "Entered passwords do not match."
+msgstr "Wprowadzone hasła nie pasują do siebie."
+
+#: apps/register/views.py:21
 msgid "We are sorry but we don't allow new members registrations at this time."
 msgid "We are sorry but we don't allow new members registrations at this time."
 msgstr "Przepraszamy, ale w danej chwili nie akceptujemy nowych rejestracji."
 msgstr "Przepraszamy, ale w danej chwili nie akceptujemy nowych rejestracji."
 
 
-#: apps/register/views.py:47
+#: apps/register/views.py:46
 #, python-format
 #, python-format
 msgid ""
 msgid ""
 "Welcome aboard, %(username)s! Your account has been registered successfully."
 "Welcome aboard, %(username)s! Your account has been registered successfully."
 msgstr "Twoje konto zostało pomyślnie zarejestrowane. Witaj, %(username)s!"
 msgstr "Twoje konto zostało pomyślnie zarejestrowane. Witaj, %(username)s!"
 
 
-#: apps/register/views.py:51
+#: apps/register/views.py:50
 #, python-format
 #, python-format
 msgid ""
 msgid ""
 "%(username)s, your account has been registered, but you will have to "
 "%(username)s, your account has been registered, but you will have to "
@@ -3469,12 +3346,12 @@ msgstr ""
 "się musisz je aktywować. Wysłaliśmy Ci wiadomość e-mail z linkiem "
 "się musisz je aktywować. Wysłaliśmy Ci wiadomość e-mail z linkiem "
 "aktywacyjnym."
 "aktywacyjnym."
 
 
-#: apps/register/views.py:55 apps/register/views.py:64
+#: apps/register/views.py:54 apps/register/views.py:63
 #, python-format
 #, python-format
 msgid "Welcome aboard, %(username)s!"
 msgid "Welcome aboard, %(username)s!"
 msgstr "Witaj na forum, %(username)s!"
 msgstr "Witaj na forum, %(username)s!"
 
 
-#: apps/register/views.py:60
+#: apps/register/views.py:59
 #, python-format
 #, python-format
 msgid ""
 msgid ""
 "%(username)s, Your account has been registered, but you won't be able to "
 "%(username)s, Your account has been registered, but you won't be able to "
@@ -3598,7 +3475,7 @@ msgstr "Zgłoszenie zostało ukryte."
 msgid "Report \"%(thread)s\" has been deleted."
 msgid "Report \"%(thread)s\" has been deleted."
 msgstr "Raport \"%(thread)s\" został usunięty."
 msgstr "Raport \"%(thread)s\" został usunięty."
 
 
-#: apps/resetpswd/forms.py:17
+#: apps/resetpswd/forms.py:10
 msgid ""
 msgid ""
 "Enter email address password reset confirmation e-mail will be sent to. It "
 "Enter email address password reset confirmation e-mail will be sent to. It "
 "must be valid e-mail you used to register on forums."
 "must be valid e-mail you used to register on forums."
@@ -3606,7 +3483,7 @@ msgstr ""
 "Wprowadź adres e-mail, na który zostanie wysłane potwierdzenie zmiany hasła. "
 "Wprowadź adres e-mail, na który zostanie wysłane potwierdzenie zmiany hasła. "
 "Musi być to poprawny adres e-mail, podany podczas rejestracji na forum."
 "Musi być to poprawny adres e-mail, podany podczas rejestracji na forum."
 
 
-#: apps/resetpswd/views.py:30 apps/resetpswd/views.py:66
+#: apps/resetpswd/views.py:28 apps/resetpswd/views.py:64
 #, python-format
 #, python-format
 msgid ""
 msgid ""
 "%(username)s, your account has to be activated in order for you to be able "
 "%(username)s, your account has to be activated in order for you to be able "
@@ -3614,11 +3491,11 @@ msgid ""
 msgstr ""
 msgstr ""
 "%(username)s, Twoje konto musi być aktywne, abyś mógł zażądać nowego hasła."
 "%(username)s, Twoje konto musi być aktywne, abyś mógł zażądać nowego hasła."
 
 
-#: apps/resetpswd/views.py:37
+#: apps/resetpswd/views.py:35
 msgid "Confirm New Password Request"
 msgid "Confirm New Password Request"
 msgstr "Potwierdź żądanie nowego hasła"
 msgstr "Potwierdź żądanie nowego hasła"
 
 
-#: apps/resetpswd/views.py:40
+#: apps/resetpswd/views.py:38
 #, python-format
 #, python-format
 msgid ""
 msgid ""
 "%(username)s, new password request confirmation has been sent to %(email)s."
 "%(username)s, new password request confirmation has been sent to %(email)s."
@@ -3626,7 +3503,7 @@ msgstr ""
 "%(username)s, żądanie potwierdzenia zmiany hasła zostało wysłane na "
 "%(username)s, żądanie potwierdzenia zmiany hasła zostało wysłane na "
 "%(email)s."
 "%(email)s."
 
 
-#: apps/resetpswd/views.py:69
+#: apps/resetpswd/views.py:67
 #, python-format
 #, python-format
 msgid ""
 msgid ""
 "%(username)s, request confirmation link is invalid. Please request new "
 "%(username)s, request confirmation link is invalid. Please request new "
@@ -3635,7 +3512,7 @@ msgstr ""
 "%(username)s, link potwierdzający jest niepoprawny. Spróbuj powtórzyć całą "
 "%(username)s, link potwierdzający jest niepoprawny. Spróbuj powtórzyć całą "
 "procedurę."
 "procedurę."
 
 
-#: apps/resetpswd/views.py:88
+#: apps/resetpswd/views.py:86
 #, python-format
 #, python-format
 msgid ""
 msgid ""
 "%(username)s, your password has been changed with new one that was sent to "
 "%(username)s, your password has been changed with new one that was sent to "
@@ -3700,25 +3577,25 @@ msgstr ""
 "Wyszukiwanie wymaga włączonej obsługi ciasteczek (cookies) przez "
 "Wyszukiwanie wymaga włączonej obsługi ciasteczek (cookies) przez "
 "przeglądarkę."
 "przeglądarkę."
 
 
-#: apps/search/views.py:63 apps/search/views.py:70
+#: apps/search/views.py:62 apps/search/views.py:69
 msgid "You cannot search any forums."
 msgid "You cannot search any forums."
 msgstr "Nie możesz przeszukiwać żadnych forów."
 msgstr "Nie możesz przeszukiwać żadnych forów."
 
 
-#: apps/search/views.py:102
+#: apps/search/views.py:101
 msgid "You don't have permission to search community."
 msgid "You don't have permission to search community."
 msgstr "Nie posiadasz uprawnień do przeszukiwania forum."
 msgstr "Nie posiadasz uprawnień do przeszukiwania forum."
 
 
-#: apps/search/views.py:129
+#: apps/search/views.py:128
 #, python-format
 #, python-format
 msgid "Forum \"%(forum)s\" could not be found."
 msgid "Forum \"%(forum)s\" could not be found."
 msgstr "Forum \"%(forum)s\" nie zostało odnalezione."
 msgstr "Forum \"%(forum)s\" nie zostało odnalezione."
 
 
-#: apps/search/views.py:144
+#: apps/search/views.py:143
 msgid "Search returned no results. Change search query and try again."
 msgid "Search returned no results. Change search query and try again."
 msgstr ""
 msgstr ""
 "Niestety nic nie znaleziono. Zmień treść wyszukiwania i spróbuj ponownie."
 "Niestety nic nie znaleziono. Zmień treść wyszukiwania i spróbuj ponownie."
 
 
-#: apps/search/views.py:173
+#: apps/search/views.py:172
 msgid "No search results were found."
 msgid "No search results were found."
 msgstr "Niestety nic nie znaleziono."
 msgstr "Niestety nic nie znaleziono."
 
 
@@ -3842,7 +3719,7 @@ msgid "Post has been reverted to state from %(date)s."
 msgstr "Post został przwrócony do stanu z %(date)s."
 msgstr "Post został przwrócony do stanu z %(date)s."
 
 
 #: apps/threadtype/delete.py:65 apps/threadtype/delete.py:91
 #: apps/threadtype/delete.py:65 apps/threadtype/delete.py:91
-#: apps/threadtype/thread/moderation/thread.py:163
+#: apps/threadtype/thread/moderation/thread.py:164
 #, python-format
 #, python-format
 msgid "Thread \"%(thread)s\" has been deleted."
 msgid "Thread \"%(thread)s\" has been deleted."
 msgstr "Temat \"%(thread)s\" został usunięty."
 msgstr "Temat \"%(thread)s\" został usunięty."
@@ -3907,7 +3784,7 @@ msgstr "Ten punkt kontrolny jest już widoczny!"
 msgid "Selected checkpoint has been restored."
 msgid "Selected checkpoint has been restored."
 msgstr "Wybrane etykiety zdarzeń zostały przywrócone."
 msgstr "Wybrane etykiety zdarzeń zostały przywrócone."
 
 
-#: apps/threadtype/jumps.py:105
+#: apps/threadtype/jumps.py:106
 msgid ""
 msgid ""
 "Replies made to this thread by members on your ignore list have been "
 "Replies made to this thread by members on your ignore list have been "
 "revealed."
 "revealed."
@@ -3915,17 +3792,17 @@ msgstr ""
 "Odpowiedzi napisane w tym temacie przez ignorowanych przez Ciebie "
 "Odpowiedzi napisane w tym temacie przez ignorowanych przez Ciebie "
 "użytkowników, zostały odkryte."
 "użytkowników, zostały odkryte."
 
 
-#: apps/threadtype/jumps.py:115
+#: apps/threadtype/jumps.py:116
 msgid "This thread has been added to your watched threads list."
 msgid "This thread has been added to your watched threads list."
 msgstr "Temat został dodany do Twojej listy obserwowanych tematów."
 msgstr "Temat został dodany do Twojej listy obserwowanych tematów."
 
 
-#: apps/threadtype/jumps.py:143
+#: apps/threadtype/jumps.py:144
 msgid ""
 msgid ""
 "You will now receive e-mail with notification when somebody replies to this "
 "You will now receive e-mail with notification when somebody replies to this "
 "thread."
 "thread."
 msgstr "Poinformujemy Cię w wiadomości e-mail, gdy ktoś odpowie w tym temacie."
 msgstr "Poinformujemy Cię w wiadomości e-mail, gdy ktoś odpowie w tym temacie."
 
 
-#: apps/threadtype/jumps.py:145
+#: apps/threadtype/jumps.py:146
 msgid ""
 msgid ""
 "This thread has been added to your watched threads list. You will also "
 "This thread has been added to your watched threads list. You will also "
 "receive e-mail with notification when somebody replies to it."
 "receive e-mail with notification when somebody replies to it."
@@ -3933,7 +3810,7 @@ msgstr ""
 "Temat został dodany do Twojej listy obserwowanych tematów. Poinformujemy Cię "
 "Temat został dodany do Twojej listy obserwowanych tematów. Poinformujemy Cię "
 "też w wiadomości e-mail, gdy ktoś odpowie w nim odpowie."
 "też w wiadomości e-mail, gdy ktoś odpowie w nim odpowie."
 
 
-#: apps/threadtype/jumps.py:153
+#: apps/threadtype/jumps.py:154
 msgid ""
 msgid ""
 "This thread has been removed from your watched threads list. You will no "
 "This thread has been removed from your watched threads list. You will no "
 "longer receive e-mails with notifications when somebody replies to it."
 "longer receive e-mails with notifications when somebody replies to it."
@@ -3941,38 +3818,37 @@ msgstr ""
 "Temat został usunięty z Twojej listy obserwowanych tematów. Nie otrzymasz "
 "Temat został usunięty z Twojej listy obserwowanych tematów. Nie otrzymasz "
 "też więcej powiadomień na e-mail, gdy ktoś w nim odpowie."
 "też więcej powiadomień na e-mail, gdy ktoś w nim odpowie."
 
 
-#: apps/threadtype/jumps.py:155
+#: apps/threadtype/jumps.py:156
 msgid "This thread has been removed from your watched threads list."
 msgid "This thread has been removed from your watched threads list."
 msgstr "Temat został usunięty z Twojej listy obserwowanych tematów."
 msgstr "Temat został usunięty z Twojej listy obserwowanych tematów."
 
 
-#: apps/threadtype/jumps.py:161
+#: apps/threadtype/jumps.py:162
 msgid ""
 msgid ""
 "You will no longer receive e-mails with notifications when somebody replies "
 "You will no longer receive e-mails with notifications when somebody replies "
 "to this thread."
 "to this thread."
 msgstr ""
 msgstr ""
 "Nie otrzymasz więcej powiadomień na e-mail, gdy ktoś odpowie w tym temacie."
 "Nie otrzymasz więcej powiadomień na e-mail, gdy ktoś odpowie w tym temacie."
 
 
-#: apps/threadtype/jumps.py:234
+#: apps/threadtype/jumps.py:235
 msgid "Your vote has been saved."
 msgid "Your vote has been saved."
 msgstr "Twój głos został zapisany."
 msgstr "Twój głos został zapisany."
 
 
-#: apps/threadtype/jumps.py:279
+#: apps/threadtype/jumps.py:280
 #, python-format
 #, python-format
 msgid ""
 msgid ""
-"\r\n"
-"Member @%(reporter)s has reported following post by @%(reported)s:\r\n"
-"\r\n"
-"%(quote)s\r\n"
-"**Post link:** <%(post)s>\r\n"
+"\n"
+"Member @%(reporter)s has reported following post by @%(reported)s:\n"
+"\n"
+"%(quote)s\n"
+"**Post link:** <%(post)s>\n"
 msgstr ""
 msgstr ""
-"\r\n"
-"Użytkownik @%(reporter)s zgłosił następujący post autorstwa @%(reported)s:"
-"\r\n"
-"\r\n"
-"%(quote)s\r\n"
-"**Link do posta:** <%(post)s>\r\n"
+"\n"
+"Użytkownik @%(reporter)s zgłosił następujący post autorstwa @%(reported)s:\n"
+"\n"
+"%(quote)s\n"
+"**Link do posta:** <%(post)s>\n"
 
 
-#: apps/threadtype/jumps.py:344 apps/threadtype/jumps.py:345
+#: apps/threadtype/jumps.py:345 apps/threadtype/jumps.py:346
 msgid ""
 msgid ""
 "Selected post has been reported and will receive moderator attention. Thank "
 "Selected post has been reported and will receive moderator attention. Thank "
 "you."
 "you."
@@ -3980,7 +3856,7 @@ msgstr ""
 "Wybrany post został zgłoszony i zostanie sprawdzony przez moderatora. "
 "Wybrany post został zgłoszony i zostanie sprawdzony przez moderatora. "
 "Dziękujemy."
 "Dziękujemy."
 
 
-#: apps/threadtype/jumps.py:348 apps/threadtype/jumps.py:349
+#: apps/threadtype/jumps.py:349 apps/threadtype/jumps.py:350
 msgid ""
 msgid ""
 "You have already reported this post. One of moderators will handle it as "
 "You have already reported this post. One of moderators will handle it as "
 "soon as it is possible. Thank you for your patience."
 "soon as it is possible. Thank you for your patience."
@@ -3988,14 +3864,14 @@ msgstr ""
 "Już zgłosiłeś tego posta. Nasz moderator zajmie się nim tak szybko, jak to "
 "Już zgłosiłeś tego posta. Nasz moderator zajmie się nim tak szybko, jak to "
 "tylko możliwe. Dziękujemy za cierpliwość."
 "tylko możliwe. Dziękujemy za cierpliwość."
 
 
-#: apps/threadtype/mixins.py:17
+#: apps/threadtype/mixins.py:16
 msgid ""
 msgid ""
 "You can't post one message so quickly after another. Please wait a moment "
 "You can't post one message so quickly after another. Please wait a moment "
 "and try again."
 "and try again."
 msgstr ""
 msgstr ""
 "Nie możesz tak szybko wysłać kolejnej wiadomości. Spróbuj ponownie za chwilę."
 "Nie możesz tak szybko wysłać kolejnej wiadomości. Spróbuj ponownie za chwilę."
 
 
-#: apps/threadtype/mixins.py:20
+#: apps/threadtype/mixins.py:19
 #, python-format
 #, python-format
 msgid ""
 msgid ""
 "You can't post one message so quickly after another. Please wait %(seconds)d "
 "You can't post one message so quickly after another. Please wait %(seconds)d "
@@ -4013,9 +3889,9 @@ msgstr[2] ""
 "Nie możesz tak szybko wysłać kolejnej wiadomości. Spróbuj ponownie za "
 "Nie możesz tak szybko wysłać kolejnej wiadomości. Spróbuj ponownie za "
 "%(seconds)d sekund."
 "%(seconds)d sekund."
 
 
-#: apps/threadtype/mixins.py:34 apps/threadtype/list/forms.py:48
-#: apps/threadtype/posting/forms.py:81
-#: apps/threadtype/thread/moderation/forms.py:24
+#: apps/threadtype/mixins.py:33 apps/threadtype/list/forms.py:46
+#: apps/threadtype/posting/forms.py:67
+#: apps/threadtype/thread/moderation/forms.py:15
 #, python-format
 #, python-format
 msgid "Thread name must contain at least one alpha-numeric character."
 msgid "Thread name must contain at least one alpha-numeric character."
 msgid_plural ""
 msgid_plural ""
@@ -4026,7 +3902,7 @@ msgstr[1] ""
 msgstr[2] ""
 msgstr[2] ""
 "Nazwa tematu musi zawierać przynajmniej %(count)d alfanumerycznych znaków."
 "Nazwa tematu musi zawierać przynajmniej %(count)d alfanumerycznych znaków."
 
 
-#: apps/threadtype/mixins.py:40
+#: apps/threadtype/mixins.py:39
 #, python-format
 #, python-format
 msgid "Thread name cannot be longer than %(count)d character."
 msgid "Thread name cannot be longer than %(count)d character."
 msgid_plural "Thread name cannot be longer than %(count)d characters."
 msgid_plural "Thread name cannot be longer than %(count)d characters."
@@ -4034,7 +3910,7 @@ msgstr[0] "Nazwa tematu nie może być dłuższa niż %(count)d znak."
 msgstr[1] "Nazwa tematu nie może być dłuższa niż %(count)d znaki."
 msgstr[1] "Nazwa tematu nie może być dłuższa niż %(count)d znaki."
 msgstr[2] "Nazwa tematu nie może być dłuższa niż %(count)d znaków."
 msgstr[2] "Nazwa tematu nie może być dłuższa niż %(count)d znaków."
 
 
-#: apps/threadtype/mixins.py:52
+#: apps/threadtype/mixins.py:51
 #, python-format
 #, python-format
 msgid "Post content cannot be empty."
 msgid "Post content cannot be empty."
 msgid_plural "Post content cannot be shorter than %(count)d characters."
 msgid_plural "Post content cannot be shorter than %(count)d characters."
@@ -4042,42 +3918,42 @@ msgstr[0] "Treść posta nie może być pusta."
 msgstr[1] "Treść posta nie może być krótsza niż %(count)d znaki."
 msgstr[1] "Treść posta nie może być krótsza niż %(count)d znaki."
 msgstr[2] "Treść posta nie może być krótsza niż %(count)d znaków."
 msgstr[2] "Treść posta nie może być krótsza niż %(count)d znaków."
 
 
-#: apps/threadtype/list/forms.py:22
+#: apps/threadtype/list/forms.py:17
 msgid "Move Threads to"
 msgid "Move Threads to"
 msgstr "Przenieś tematy do"
 msgstr "Przenieś tematy do"
 
 
-#: apps/threadtype/list/forms.py:22
+#: apps/threadtype/list/forms.py:18
 msgid "Select forum you want to move threads to."
 msgid "Select forum you want to move threads to."
 msgstr "Wskaż forum, do którego chcesz przenieś zaznaczone tematy."
 msgstr "Wskaż forum, do którego chcesz przenieś zaznaczone tematy."
 
 
-#: apps/threadtype/list/forms.py:31 apps/threadtype/list/forms.py:65
+#: apps/threadtype/list/forms.py:25 apps/threadtype/list/forms.py:53
 msgid "This is not forum."
 msgid "This is not forum."
 msgstr "To nie jest forum."
 msgstr "To nie jest forum."
 
 
-#: apps/threadtype/list/forms.py:33
+#: apps/threadtype/list/forms.py:27
 msgid "New forum is same as current one."
 msgid "New forum is same as current one."
 msgstr "Wskazane forum jest aktualnym forum tych tematów."
 msgstr "Wskazane forum jest aktualnym forum tych tematów."
 
 
-#: apps/threadtype/list/forms.py:49 apps/threadtype/posting/forms.py:82
-#: apps/threadtype/thread/moderation/forms.py:25
-msgid "Thread name is too long. Try shorter name."
-msgstr "Nazwa tematu jest zbyt długa. Spróbuj ją skrócić."
+#: apps/threadtype/list/forms.py:37
+msgid "Thread Forum"
+msgstr "Forum dla tematu"
+
+#: apps/threadtype/list/forms.py:38
+msgid "Select forum you want to put new thread in."
+msgstr "Wybierz forum, w którym ma zostać umieszczony wynikowy temat."
 
 
-#: apps/threadtype/list/forms.py:56 apps/threadtype/posting/forms.py:79
+#: apps/threadtype/list/forms.py:41 apps/threadtype/posting/forms.py:65
 msgid "Thread Name"
 msgid "Thread Name"
 msgstr "Nazwa tematu"
 msgstr "Nazwa tematu"
 
 
-#: apps/threadtype/list/forms.py:56
+#: apps/threadtype/list/forms.py:42
 msgid "Name of new thread that will be created as result of merge."
 msgid "Name of new thread that will be created as result of merge."
 msgstr "Nazwa nowego tematu, który powstanie w wyniku połączenia zaznaczonych."
 msgstr "Nazwa nowego tematu, który powstanie w wyniku połączenia zaznaczonych."
 
 
-#: apps/threadtype/list/forms.py:57
-msgid "Thread Forum"
-msgstr "Forum dla tematu"
-
-#: apps/threadtype/list/forms.py:57
-msgid "Select forum you want to put new thread in."
-msgstr "Wybierz forum, w którym ma zostać umieszczony wynikowy temat."
+#: apps/threadtype/list/forms.py:47 apps/threadtype/posting/forms.py:68
+#: apps/threadtype/thread/moderation/forms.py:16
+msgid "Thread name is too long. Try shorter name."
+msgstr "Nazwa tematu jest zbyt długa. Spróbuj ją skrócić."
 
 
 #: apps/threadtype/list/moderation.py:16
 #: apps/threadtype/list/moderation.py:16
 msgid ""
 msgid ""
@@ -4177,9 +4053,9 @@ msgstr "Zaznaczone tematy zostały usunięte."
 msgid "No threads were deleted."
 msgid "No threads were deleted."
 msgstr "Nie usunięto żadnych tematów."
 msgstr "Nie usunięto żadnych tematów."
 
 
-#: apps/threadtype/list/views.py:82
+#: apps/threadtype/list/views.py:83
 #: templates/cranefly/private_threads/list.html:151
 #: templates/cranefly/private_threads/list.html:151
-#: templates/cranefly/reports/list.html:165
+#: templates/cranefly/reports/list.html:164
 #: templates/cranefly/threads/list.html:259
 #: templates/cranefly/threads/list.html:259
 msgid "You have to select at least one thread."
 msgid "You have to select at least one thread."
 msgstr "Musisz zaznaczyć przynajmniej jeden temat."
 msgstr "Musisz zaznaczyć przynajmniej jeden temat."
@@ -4189,67 +4065,55 @@ msgstr "Musisz zaznaczyć przynajmniej jeden temat."
 msgid "%(username)s has replied to your post in thread %(thread)s"
 msgid "%(username)s has replied to your post in thread %(thread)s"
 msgstr "%(username)s odpowiedział na twój post w temacie %(thread)s"
 msgstr "%(username)s odpowiedział na twój post w temacie %(thread)s"
 
 
-#: apps/threadtype/posting/forms.py:26
+#: apps/threadtype/posting/forms.py:14
 #: templates/cranefly/private_threads/posting.html:69
 #: templates/cranefly/private_threads/posting.html:69
 #: templates/cranefly/reports/posting.html:65
 #: templates/cranefly/reports/posting.html:65
 #: templates/cranefly/threads/posting.html:65
 #: templates/cranefly/threads/posting.html:65
 msgid "Message Body"
 msgid "Message Body"
 msgstr "Treść wiadomości"
 msgstr "Treść wiadomości"
 
 
-#: apps/threadtype/posting/forms.py:36
+#: apps/threadtype/posting/forms.py:27
 msgid "Announcement"
 msgid "Announcement"
 msgstr "Ogłoszenie"
 msgstr "Ogłoszenie"
 
 
-#: apps/threadtype/posting/forms.py:37
+#: apps/threadtype/posting/forms.py:28
 msgid "Sticky"
 msgid "Sticky"
 msgstr "Przypięty"
 msgstr "Przypięty"
 
 
-#: apps/threadtype/posting/forms.py:38
+#: apps/threadtype/posting/forms.py:29
 msgid "Standard"
 msgid "Standard"
 msgstr "Standardowy"
 msgstr "Standardowy"
 
 
-#: apps/threadtype/posting/forms.py:40
-msgid "Thread Importance"
-msgstr "Istotnośc tematu"
-
-#: apps/threadtype/posting/forms.py:55
-msgid "Open Thread"
-msgstr "Otwórz temat"
-
-#: apps/threadtype/posting/forms.py:57
-msgid "Close Thread"
-msgstr "Zamknij temat"
+#: apps/threadtype/posting/forms.py:74 apps/threadtype/posting/forms.py:87
+msgid "Edit Reason"
+msgstr "Powód edycji"
 
 
-#: apps/threadtype/posting/forms.py:88
+#: apps/threadtype/posting/forms.py:75
 msgid "Optional reason for editing this thread."
 msgid "Optional reason for editing this thread."
 msgstr "Opcjonalny powód edycji tego tematu."
 msgstr "Opcjonalny powód edycji tego tematu."
 
 
-#: apps/threadtype/posting/forms.py:89 apps/threadtype/posting/forms.py:100
-msgid "Edit Reason"
-msgstr "Powód edycji"
-
-#: apps/threadtype/posting/forms.py:99
+#: apps/threadtype/posting/forms.py:88
 msgid "Optional reason for editing this reply."
 msgid "Optional reason for editing this reply."
 msgstr "Opcjonalny powód edycji tej odpowiedzi."
 msgstr "Opcjonalny powód edycji tej odpowiedzi."
 
 
-#: apps/threadtype/posting/newreply.py:132
+#: apps/threadtype/posting/newreply.py:133
 #, python-format
 #, python-format
 msgid "%(username)s has replied to your thread %(thread)s"
 msgid "%(username)s has replied to your thread %(thread)s"
 msgstr "%(username)s odpowiedział w Twoim temacie %(thread)s"
 msgstr "%(username)s odpowiedział w Twoim temacie %(thread)s"
 
 
-#: apps/threadtype/posting/newreply.py:134
+#: apps/threadtype/posting/newreply.py:135
 #, python-format
 #, python-format
 msgid "%(username)s has replied to thread %(thread)s that you are watching"
 msgid "%(username)s has replied to thread %(thread)s that you are watching"
 msgstr ""
 msgstr ""
 "%(username)s odpowiedział w obserwowanym przez Ciebie temacie %(thread)s"
 "%(username)s odpowiedział w obserwowanym przez Ciebie temacie %(thread)s"
 
 
-#: apps/threadtype/thread/views.py:167
+#: apps/threadtype/thread/views.py:172
 #: templates/cranefly/private_threads/thread.html:485
 #: templates/cranefly/private_threads/thread.html:485
 #: templates/cranefly/threads/thread.html:455
 #: templates/cranefly/threads/thread.html:455
 msgid "You have to select at least one post."
 msgid "You have to select at least one post."
 msgstr "Musisz zaznaczyć przynajmniej jednego posta."
 msgstr "Musisz zaznaczyć przynajmniej jednego posta."
 
 
-#: apps/threadtype/thread/moderation/forms.py:17
+#: apps/threadtype/thread/moderation/forms.py:13
 msgid "New Thread Name"
 msgid "New Thread Name"
 msgstr "Nowa nazwa tematu"
 msgstr "Nowa nazwa tematu"
 
 
@@ -4257,29 +4121,29 @@ msgstr "Nowa nazwa tematu"
 msgid "New Thread Forum"
 msgid "New Thread Forum"
 msgstr "Nowe forum tematu"
 msgstr "Nowe forum tematu"
 
 
-#: apps/threadtype/thread/moderation/forms.py:33
+#: apps/threadtype/thread/moderation/forms.py:25
 msgid "This is not a forum."
 msgid "This is not a forum."
 msgstr "To nie jest forum."
 msgstr "To nie jest forum."
 
 
-#: apps/threadtype/thread/moderation/forms.py:49
+#: apps/threadtype/thread/moderation/forms.py:37
 msgid "New Thread Link"
 msgid "New Thread Link"
 msgstr "Link do nowego tematu"
 msgstr "Link do nowego tematu"
 
 
-#: apps/threadtype/thread/moderation/forms.py:49
+#: apps/threadtype/thread/moderation/forms.py:38
 msgid "To select new thread, simply copy and paste here its link."
 msgid "To select new thread, simply copy and paste here its link."
 msgstr ""
 msgstr ""
 "Aby wskazać nowy temat, po prostu skopiuj i wklej tutaj jego URL (adres)."
 "Aby wskazać nowy temat, po prostu skopiuj i wklej tutaj jego URL (adres)."
 
 
-#: apps/threadtype/thread/moderation/forms.py:64
-#: apps/threadtype/thread/moderation/forms.py:71
+#: apps/threadtype/thread/moderation/forms.py:48
+#: apps/threadtype/thread/moderation/forms.py:55
 msgid "This is not a correct thread URL."
 msgid "This is not a correct thread URL."
 msgstr "To nie jest poprawny URL do tematu."
 msgstr "To nie jest poprawny URL do tematu."
 
 
-#: apps/threadtype/thread/moderation/forms.py:68
+#: apps/threadtype/thread/moderation/forms.py:52
 msgid "New thread is same as current one."
 msgid "New thread is same as current one."
 msgstr "Temat do którego chcesz przenieść posty, jest taki sam jak obecny."
 msgstr "Temat do którego chcesz przenieść posty, jest taki sam jak obecny."
 
 
-#: apps/threadtype/thread/moderation/forms.py:73
+#: apps/threadtype/thread/moderation/forms.py:57
 msgid "Thread could not be found."
 msgid "Thread could not be found."
 msgstr "Temat nie został odnaleziony."
 msgstr "Temat nie został odnaleziony."
 
 
@@ -4371,42 +4235,42 @@ msgstr "Zaznaczone posty zostały usunięte."
 msgid "No posts were deleted."
 msgid "No posts were deleted."
 msgstr "Nie usunięto żadnych postów."
 msgstr "Nie usunięto żadnych postów."
 
 
-#: apps/threadtype/thread/moderation/thread.py:34
+#: apps/threadtype/thread/moderation/thread.py:35
 msgid "Thread has been marked as reviewed and made visible to other members."
 msgid "Thread has been marked as reviewed and made visible to other members."
 msgstr ""
 msgstr ""
 "Temat został oznaczony jako przejrzany. Inni użytkownicy mogą już go "
 "Temat został oznaczony jako przejrzany. Inni użytkownicy mogą już go "
 "zobaczyć."
 "zobaczyć."
 
 
-#: apps/threadtype/thread/moderation/thread.py:42
+#: apps/threadtype/thread/moderation/thread.py:43
 msgid "Thread has been turned into announcement."
 msgid "Thread has been turned into announcement."
 msgstr "Temat został przekształcony w ogłoszenie."
 msgstr "Temat został przekształcony w ogłoszenie."
 
 
-#: apps/threadtype/thread/moderation/thread.py:50
+#: apps/threadtype/thread/moderation/thread.py:51
 msgid "Thread has been turned into sticky."
 msgid "Thread has been turned into sticky."
 msgstr "Temat został przypięty."
 msgstr "Temat został przypięty."
 
 
-#: apps/threadtype/thread/moderation/thread.py:58
+#: apps/threadtype/thread/moderation/thread.py:59
 msgid "Thread weight has been changed to normal."
 msgid "Thread weight has been changed to normal."
 msgstr "Pomyślnie przekształcono w zwykły temat."
 msgstr "Pomyślnie przekształcono w zwykły temat."
 
 
-#: apps/threadtype/thread/moderation/thread.py:73
+#: apps/threadtype/thread/moderation/thread.py:74
 #, python-format
 #, python-format
 msgid "Thread has been moved to \"%(forum)s\"."
 msgid "Thread has been moved to \"%(forum)s\"."
 msgstr "Temat został przeniesiony do \"%(forum)s\"."
 msgstr "Temat został przeniesiony do \"%(forum)s\"."
 
 
-#: apps/threadtype/thread/moderation/thread.py:96
+#: apps/threadtype/thread/moderation/thread.py:97
 msgid "Thread has been opened."
 msgid "Thread has been opened."
 msgstr "Temat został otwarty."
 msgstr "Temat został otwarty."
 
 
-#: apps/threadtype/thread/moderation/thread.py:105
+#: apps/threadtype/thread/moderation/thread.py:106
 msgid "Thread has been closed."
 msgid "Thread has been closed."
 msgstr "Temat został zamknięty."
 msgstr "Temat został zamknięty."
 
 
-#: apps/threadtype/thread/moderation/thread.py:126
+#: apps/threadtype/thread/moderation/thread.py:127
 msgid "Thread has been restored."
 msgid "Thread has been restored."
 msgstr "Temat został przywrócony."
 msgstr "Temat został przywrócony."
 
 
-#: apps/threadtype/thread/moderation/thread.py:147
+#: apps/threadtype/thread/moderation/thread.py:148
 msgid "Thread has been hidden."
 msgid "Thread has been hidden."
 msgstr "Temat został ukryty."
 msgstr "Temat został ukryty."
 
 
@@ -4436,14 +4300,10 @@ msgid "You have stopped ignoring %(username)s"
 msgstr "Przestałeś ignorować użytkownika %(username)s"
 msgstr "Przestałeś ignorować użytkownika %(username)s"
 
 
 #: apps/usercp/avatar/forms.py:9
 #: apps/usercp/avatar/forms.py:9
-msgid "Uploaded file is not correct image."
-msgstr "Przesłany plik nie jest poprawnym obrazkiem."
-
-#: apps/usercp/avatar/forms.py:16
 msgid "Upload Image File"
 msgid "Upload Image File"
 msgstr "Prześlij obrazek z komptera"
 msgstr "Prześlij obrazek z komptera"
 
 
-#: apps/usercp/avatar/forms.py:16
+#: apps/usercp/avatar/forms.py:10
 msgid ""
 msgid ""
 "Select image file on your computer you wish to use as forum avatar. You will "
 "Select image file on your computer you wish to use as forum avatar. You will "
 "be able to crop image after upload. Animations will be stripped."
 "be able to crop image after upload. Animations will be stripped."
@@ -4451,12 +4311,16 @@ msgstr ""
 "Wskaż plik obrazka, którego chciałbyś użyć jako awatara. Będziesz mógł go "
 "Wskaż plik obrazka, którego chciałbyś użyć jako awatara. Będziesz mógł go "
 "przyciąć po przesłaniu. Ewentualna animacja zostanie usunięta."
 "przyciąć po przesłaniu. Ewentualna animacja zostanie usunięta."
 
 
-#: apps/usercp/avatar/forms.py:29
+#: apps/usercp/avatar/forms.py:11
+msgid "Uploaded file is not correct image."
+msgstr "Przesłany plik nie jest poprawnym obrazkiem."
+
+#: apps/usercp/avatar/forms.py:22
 #, python-format
 #, python-format
 msgid "Avatar image cannot be larger than %(limit)s."
 msgid "Avatar image cannot be larger than %(limit)s."
 msgstr "Obrazek awatara nie może być większy niż %(limit)s."
 msgstr "Obrazek awatara nie może być większy niż %(limit)s."
 
 
-#: apps/usercp/avatar/forms.py:31
+#: apps/usercp/avatar/forms.py:24
 msgid "Couldn't read uploaded image"
 msgid "Couldn't read uploaded image"
 msgstr "Nie udało się odczytać przesłanego obrazka"
 msgstr "Nie udało się odczytać przesłanego obrazka"
 
 
@@ -4505,15 +4369,15 @@ msgstr ""
 msgid "Your avatar has been cropped."
 msgid "Your avatar has been cropped."
 msgstr "Twój awatar został przycięty."
 msgstr "Twój awatar został przycięty."
 
 
-#: apps/usercp/avatar/views.py:218 forms/forms.py:159
+#: apps/usercp/avatar/views.py:218 forms/forms.py:169
 msgid "Form contains errors."
 msgid "Form contains errors."
 msgstr "Formularz zawiera błędy."
 msgstr "Formularz zawiera błędy."
 
 
-#: apps/usercp/credentials/forms.py:18
+#: apps/usercp/credentials/forms.py:10
 msgid "New E-mail"
 msgid "New E-mail"
 msgstr "Nowy adres e-mail"
 msgstr "Nowy adres e-mail"
 
 
-#: apps/usercp/credentials/forms.py:18
+#: apps/usercp/credentials/forms.py:11
 msgid ""
 msgid ""
 "Enter new e-mail address or leave this field empty if you want only to "
 "Enter new e-mail address or leave this field empty if you want only to "
 "change your password."
 "change your password."
@@ -4521,11 +4385,11 @@ msgstr ""
 "Wprowadź swój nowy adres e-mail, lub pozostaw to pole puste, aby zmienić "
 "Wprowadź swój nowy adres e-mail, lub pozostaw to pole puste, aby zmienić "
 "tylko hasło."
 "tylko hasło."
 
 
-#: apps/usercp/credentials/forms.py:19
+#: apps/usercp/credentials/forms.py:13
 msgid "New Password"
 msgid "New Password"
 msgstr "Nowe hasło"
 msgstr "Nowe hasło"
 
 
-#: apps/usercp/credentials/forms.py:19
+#: apps/usercp/credentials/forms.py:14
 msgid ""
 msgid ""
 "Enter new password or leave this empty if you only want to change your e-"
 "Enter new password or leave this empty if you only want to change your e-"
 "mail address."
 "mail address."
@@ -4533,27 +4397,27 @@ msgstr ""
 "Wprowadź swoje nowe hasło, lub pozostaw to pole puste, aby zmienić tylko "
 "Wprowadź swoje nowe hasło, lub pozostaw to pole puste, aby zmienić tylko "
 "adres e-mail."
 "adres e-mail."
 
 
-#: apps/usercp/credentials/forms.py:20
+#: apps/usercp/credentials/forms.py:16
 msgid "Current Password"
 msgid "Current Password"
 msgstr "Obecne hasło"
 msgstr "Obecne hasło"
 
 
-#: apps/usercp/credentials/forms.py:20
+#: apps/usercp/credentials/forms.py:17
 msgid "Confirm changes by entering your current password."
 msgid "Confirm changes by entering your current password."
 msgstr "Potwierdź zmiany, wpisując swoje aktualne hasło."
 msgstr "Potwierdź zmiany, wpisując swoje aktualne hasło."
 
 
-#: apps/usercp/credentials/forms.py:29
+#: apps/usercp/credentials/forms.py:24
 msgid "New e-mail is same as your current e-mail."
 msgid "New e-mail is same as your current e-mail."
 msgstr "Nowy adres e-mail jest taki sam jak obecny."
 msgstr "Nowy adres e-mail jest taki sam jak obecny."
 
 
-#: apps/usercp/credentials/forms.py:32
+#: apps/usercp/credentials/forms.py:27
 msgid "New e-mail address is already in use by other member."
 msgid "New e-mail address is already in use by other member."
 msgstr "Podany nowy adres e-mail jest już używany przez innego użytkownika."
 msgstr "Podany nowy adres e-mail jest już używany przez innego użytkownika."
 
 
-#: apps/usercp/credentials/forms.py:45
+#: apps/usercp/credentials/forms.py:40
 msgid "You have entered wrong password."
 msgid "You have entered wrong password."
 msgstr "Wprowadzono błędne hasło."
 msgstr "Wprowadzono błędne hasło."
 
 
-#: apps/usercp/credentials/forms.py:51
+#: apps/usercp/credentials/forms.py:46
 msgid "You have to enter either new e-mail address or new password."
 msgid "You have to enter either new e-mail address or new password."
 msgstr ""
 msgstr ""
 "Nie podano ani nowego hasła, ani nowego adresu e-mail. Przynajmniej jedno z "
 "Nie podano ani nowego hasła, ani nowego adresu e-mail. Przynajmniej jedno z "
@@ -4600,70 +4464,78 @@ msgstr ""
 "Niestety, nowe dane logowania już wygasły. Prosimy powtórzyć cała procedurę "
 "Niestety, nowe dane logowania już wygasły. Prosimy powtórzyć cała procedurę "
 "ich zmiany - unikając tym razem przerwania sesji."
 "ich zmiany - unikając tym razem przerwania sesji."
 
 
+#: apps/usercp/options/forms.py:8
+msgid ""
+"On occasion board administrator may want to send e-mail message to multiple "
+"members."
+msgstr ""
+"Czasami administrator forum może chcieć rozesłać wiadomość e-mail do "
+"członków forum."
+
 #: apps/usercp/options/forms.py:10
 #: apps/usercp/options/forms.py:10
+msgid "Your Current Timezone"
+msgstr "Twoja strefa czasowa"
+
+#: apps/usercp/options/forms.py:11
+msgid ""
+"If dates and hours displayed by forums are inaccurate, you can fix it by "
+"adjusting timezone setting."
+msgstr ""
+"Jeżeli daty i godziny na forum nie są wyświetlane poprawnie, możesz to "
+"poprawić, poprzez dostosowanie ustawień strefy czasowej."
+
+#: apps/usercp/options/forms.py:13
+msgid "Your Visibility"
+msgstr "Twoja widoczność"
+
+#: apps/usercp/options/forms.py:14
+msgid ""
+"If you want to, you can limit other members ability to track your presence "
+"on forums."
+msgstr ""
+"Jeżeli chcesz, możesz ukryć swoją obecność przed zwykłymi użytkownikami tego "
+"forum."
+
+#: apps/usercp/options/forms.py:16
 msgid "Show my presence to everyone"
 msgid "Show my presence to everyone"
 msgstr "Pokazuj każdemu moją obecność"
 msgstr "Pokazuj każdemu moją obecność"
 
 
-#: apps/usercp/options/forms.py:11
+#: apps/usercp/options/forms.py:17
 msgid "Show my presence to people I follow"
 msgid "Show my presence to people I follow"
 msgstr "Pokazuj obecność tylko osobom, które obserwuję"
 msgstr "Pokazuj obecność tylko osobom, które obserwuję"
 
 
-#: apps/usercp/options/forms.py:12
+#: apps/usercp/options/forms.py:18
 msgid "Show my presence to nobody"
 msgid "Show my presence to nobody"
 msgstr "Nie pokazuj nikomu mojej obecności"
 msgstr "Nie pokazuj nikomu mojej obecności"
 
 
-#: apps/usercp/options/forms.py:15 apps/usercp/options/forms.py:20
+#: apps/usercp/options/forms.py:20
+msgid "Threads I start"
+msgstr "Tematy rozpoczęte przeze mnie"
+
+#: apps/usercp/options/forms.py:22 apps/usercp/options/forms.py:28
 #: fixtures/accountssetings.py:75 fixtures/accountssetings.py:86
 #: fixtures/accountssetings.py:75 fixtures/accountssetings.py:86
 msgid "Don't watch"
 msgid "Don't watch"
-msgstr "Nie obserwuj"
-
-#: apps/usercp/options/forms.py:16 apps/usercp/options/forms.py:21
-#: fixtures/accountssetings.py:76 fixtures/accountssetings.py:87
-msgid "Put on watched threads list"
-msgstr "Umieść na liście obserwowanych tematów"
-
-#: apps/usercp/options/forms.py:17 apps/usercp/options/forms.py:22
-msgid "Put on watched threads list and e-mail me when somebody replies"
-msgstr ""
-"Umieść na liście obserwowanych tematów i wyślij mi e-mail, gdy ktoś odpisze"
-
-#: apps/usercp/options/forms.py:25
-msgid "From everyone"
-msgstr "Od każdego"
-
-#: apps/usercp/options/forms.py:26
-msgid "From everyone but not members I ignore"
-msgstr "Od każdego oprócz użytkowników których ignoruję"
-
-#: apps/usercp/options/forms.py:27
-msgid "From members I follow"
-msgstr "Od każdego, kogo obserwuję"
-
-#: apps/usercp/options/forms.py:28
-msgid "From nobody"
-msgstr "Od nikogo"
-
-#: apps/usercp/options/forms.py:33
-msgid "Privacy"
-msgstr "Prywatność"
-
-#: apps/usercp/options/forms.py:35
-msgid "Your Visibility"
-msgstr "Twoja widoczność"
+msgstr "Nie obserwuj"
 
 
-#: apps/usercp/options/forms.py:35
-msgid ""
-"If you want to, you can limit other members ability to track your presence "
-"on forums."
+#: apps/usercp/options/forms.py:23 apps/usercp/options/forms.py:29
+#: fixtures/accountssetings.py:76 fixtures/accountssetings.py:87
+msgid "Put on watched threads list"
+msgstr "Umieść na liście obserwowanych tematów"
+
+#: apps/usercp/options/forms.py:24 apps/usercp/options/forms.py:30
+msgid "Put on watched threads list and e-mail me when somebody replies"
 msgstr ""
 msgstr ""
-"Jeżeli chcesz, możesz ukryć swoją obecność przed zwykłymi użytkownikami tego "
-"forum."
+"Umieść na liście obserwowanych tematów i wyślij mi e-mail, gdy ktoś odpisze"
 
 
-#: apps/usercp/options/forms.py:36
+#: apps/usercp/options/forms.py:26
+msgid "Threads I reply to"
+msgstr "Tematy, na które odpowiedziałem"
+
+#: apps/usercp/options/forms.py:32
 msgid "Allow Private Threads Invitations"
 msgid "Allow Private Threads Invitations"
 msgstr "Pozwalaj na zaproszenia do prywatnych dyskusji"
 msgstr "Pozwalaj na zaproszenia do prywatnych dyskusji"
 
 
-#: apps/usercp/options/forms.py:36
+#: apps/usercp/options/forms.py:33
 msgid ""
 msgid ""
 "If you wish, you can restrict who can invite you to private threads. Keep in "
 "If you wish, you can restrict who can invite you to private threads. Keep in "
 "mind some groups or members may be allowed to override this preference."
 "mind some groups or members may be allowed to override this preference."
@@ -4672,54 +4544,30 @@ msgstr ""
 "Cię do prywatnych dyskusji. Miej na uwadzę, ograniczenie może nie dotyczyć "
 "Cię do prywatnych dyskusji. Miej na uwadzę, ograniczenie może nie dotyczyć "
 "niektórych grup (np. administratorów)."
 "niektórych grup (np. administratorów)."
 
 
-#: apps/usercp/options/forms.py:40 apps/usercp/options/usercp.py:4
-msgid "Forum Options"
-msgstr "Opcje forum"
-
-#: apps/usercp/options/forms.py:42
-msgid "Your Current Timezone"
-msgstr "Twoja strefa czasowa"
-
-#: apps/usercp/options/forms.py:42
-msgid ""
-"If dates and hours displayed by forums are inaccurate, you can fix it by "
-"adjusting timezone setting."
-msgstr ""
-"Jeżeli daty i godziny na forum nie są wyświetlane poprawnie, możesz to "
-"poprawić, poprzez dostosowanie ustawień strefy czasowej."
-
-#: apps/usercp/options/forms.py:43
-msgid ""
-"On occasion board administrator may want to send e-mail message to multiple "
-"members."
-msgstr ""
-"Czasami administrator forum może chcieć rozesłać wiadomość e-mail do "
-"członków forum."
+#: apps/usercp/options/forms.py:35
+msgid "From everyone"
+msgstr "Od każdego"
 
 
-#: apps/usercp/options/forms.py:43
-msgid "Yes, I want to subscribe forum newsletter"
-msgstr "Tak, chcę subskrybować biuletyn tego forum"
+#: apps/usercp/options/forms.py:36
+msgid "From everyone but not members I ignore"
+msgstr "Od każdego oprócz użytkowników których ignoruję"
 
 
-#: apps/usercp/options/forms.py:47
-msgid "Watching Threads"
-msgstr "Obserwowanie tematów"
+#: apps/usercp/options/forms.py:37
+msgid "From members I follow"
+msgstr "Od każdego, kogo obserwuję"
 
 
-#: apps/usercp/options/forms.py:49
-msgid "Threads I start"
-msgstr "Tematy rozpoczęte przeze mnie"
+#: apps/usercp/options/forms.py:38
+msgid "From nobody"
+msgstr "Od nikogo"
 
 
-#: apps/usercp/options/forms.py:50
-msgid "Threads I reply to"
-msgstr "Tematy, na które odpowiedziałem"
+#: apps/usercp/options/usercp.py:4 templates/cranefly/usercp/options.html:29
+msgid "Forum Options"
+msgstr "Opcje forum"
 
 
 #: apps/usercp/options/views.py:24
 #: apps/usercp/options/views.py:24
 msgid "Forum options have been changed."
 msgid "Forum options have been changed."
 msgstr "Ustawienia forum zostały zmienione."
 msgstr "Ustawienia forum zostały zmienione."
 
 
-#: apps/usercp/signature/forms.py:13
-msgid "Your Signature"
-msgstr "Twoja sygnaturka"
-
 #: apps/usercp/signature/usercp.py:5
 #: apps/usercp/signature/usercp.py:5
 msgid "Edit Signature"
 msgid "Edit Signature"
 msgstr "Modyfikacja sygnaturki"
 msgstr "Modyfikacja sygnaturki"
@@ -4728,15 +4576,15 @@ msgstr "Modyfikacja sygnaturki"
 msgid "Your signature has been changed."
 msgid "Your signature has been changed."
 msgstr "Twoja sygnaturka została zmieniona."
 msgstr "Twoja sygnaturka została zmieniona."
 
 
-#: apps/usercp/username/forms.py:15
+#: apps/usercp/username/forms.py:8
 msgid "Change Username to"
 msgid "Change Username to"
 msgstr "Zmień nazwę użytkownika na"
 msgstr "Zmień nazwę użytkownika na"
 
 
-#: apps/usercp/username/forms.py:15
+#: apps/usercp/username/forms.py:9
 msgid "Enter new desired username."
 msgid "Enter new desired username."
 msgstr "Wprowadź pożądaną nazwę użytkownika."
 msgstr "Wprowadź pożądaną nazwę użytkownika."
 
 
-#: apps/usercp/username/forms.py:23
+#: apps/usercp/username/forms.py:16
 msgid "Your new username is same as current one."
 msgid "Your new username is same as current one."
 msgstr "Wprowadzona nowa nazwa użytkownika jest taka sama jak obecna."
 msgstr "Wprowadzona nowa nazwa użytkownika jest taka sama jak obecna."
 
 
@@ -4744,7 +4592,7 @@ msgstr "Wprowadzona nowa nazwa użytkownika jest taka sama jak obecna."
 msgid "Change Username"
 msgid "Change Username"
 msgstr "Zmień nazwę użytkownika"
 msgstr "Zmień nazwę użytkownika"
 
 
-#: apps/usercp/username/views.py:33 templates/cranefly/usercp/username.html:34
+#: apps/usercp/username/views.py:33 templates/cranefly/usercp/username.html:36
 msgid "You have exceeded the maximum number of name changes."
 msgid "You have exceeded the maximum number of name changes."
 msgstr "Przekroczyłeś maksymalną liczbę zmian nazwy użytkownika."
 msgstr "Przekroczyłeś maksymalną liczbę zmian nazwy użytkownika."
 
 
@@ -4761,7 +4609,7 @@ msgstr ""
 "Użytkownik którego obserwujesz, %(username)s, zmienił swoja nazwę na "
 "Użytkownik którego obserwujesz, %(username)s, zmienił swoja nazwę na "
 "%(newname)s"
 "%(newname)s"
 
 
-#: apps/watchedthreads/views.py:24
+#: apps/watchedthreads/views.py:21
 msgid "%(username), you cannot read any forums."
 msgid "%(username), you cannot read any forums."
 msgstr "%(username)s, nie możesz czytać żadnych forów."
 msgstr "%(username)s, nie możesz czytać żadnych forów."
 
 
@@ -4789,7 +4637,7 @@ msgstr "Aktywacja przez administratora"
 msgid "Dont allow new registrations"
 msgid "Dont allow new registrations"
 msgstr "Nie pozwalaj na nowe rejestracje"
 msgstr "Nie pozwalaj na nowe rejestracje"
 
 
-#: fixtures/accountssetings.py:15 models/usermodel.py:179
+#: fixtures/accountssetings.py:15 models/usermodel.py:183
 msgid "Users Registrations"
 msgid "Users Registrations"
 msgstr "Rejestracje użytkowników"
 msgstr "Rejestracje użytkowników"
 
 
@@ -5361,7 +5209,7 @@ msgstr "Przyjaciel forum"
 msgid "Top Posters"
 msgid "Top Posters"
 msgstr "Najaktywniejsi"
 msgstr "Najaktywniejsi"
 
 
-#: fixtures/ranks.py:37 templates/cranefly/index.html:146
+#: fixtures/ranks.py:37 templates/cranefly/index.html:154
 msgid "Members"
 msgid "Members"
 msgstr "Członkowie"
 msgstr "Członkowie"
 
 
@@ -5530,27 +5378,54 @@ msgstr ""
 "pamięci podręcznej. Włączenie tej opcji może minimalnie przedłużyć czas "
 "pamięci podręcznej. Włączenie tej opcji może minimalnie przedłużyć czas "
 "generowania listy tematów. "
 "generowania listy tematów. "
 
 
+#: fixtures/threadssettings.py:46
+msgid "Disabled"
+msgstr "Wyłączona"
+
+#: fixtures/threadssettings.py:46
+msgid "Popularity"
+msgstr "Popularność"
+
+#: fixtures/threadssettings.py:46
+msgid "Last Reply"
+msgstr "Ostatnia odpowiedź"
+
+#: fixtures/threadssettings.py:46
+msgid "Start Date"
+msgstr "Data rozpoczęcia"
+
 #: fixtures/threadssettings.py:47
 #: fixtures/threadssettings.py:47
-msgid "Thread Popularity Ranking"
-msgstr "Ranking popularności tematów"
+msgid "Thread List on Board Index"
+msgstr "Lista tematów na stronie głównej forum"
 
 
 #: fixtures/threadssettings.py:48
 #: fixtures/threadssettings.py:48
-msgid "Threads on \"Popular Threads\" list"
-msgstr "Tematy na liście \"Popularnych tematów\""
+msgid "List Type"
+msgstr "Typ listy"
 
 
 #: fixtures/threadssettings.py:49
 #: fixtures/threadssettings.py:49
 msgid ""
 msgid ""
-"Enter number of threads to be displayed on \"Popular Threads\" list on board "
-"index or 0 to don't display any threads there."
+"Different types are useful by different boards. If your board is extremly "
+"active, use \"Popularity\", otherwhise select either \"Last Reply\" or "
+"\"Start Date\""
 msgstr ""
 msgstr ""
-"Wprowadź liczbę tematów wyświetlanych na liście \"popularnych tematów\" na "
-"stronie głównej forum, lub wprowadź 0 aby wyłączyć tę listę."
+"Różne typy listy są użyteczne na róznych forach. Jeżeli aktywność na Twoim "
+"forum jest bardzo duża, użyj typu \"Popularność\". W przeciwnym wypadku, "
+"najlepszymi opcjami będą \"Ostatnia odpowiedź\", bądź \"Data rozpoczęcia\"."
 
 
 #: fixtures/threadssettings.py:56
 #: fixtures/threadssettings.py:56
+msgid "Number of threads on list"
+msgstr "Liczba tematów na liście"
+
+#: fixtures/threadssettings.py:57
+msgid "Enter number of threads to be displayed on threads list on board index."
+msgstr ""
+"Wprowadź liczbę tematów wyświetlanych na liście tematów na stronie głównej."
+
+#: fixtures/threadssettings.py:64
 msgid "Ranking Update Frequency"
 msgid "Ranking Update Frequency"
 msgstr "Częstotliwość aktualizacji rankingu"
 msgstr "Częstotliwość aktualizacji rankingu"
 
 
-#: fixtures/threadssettings.py:57
+#: fixtures/threadssettings.py:65
 msgid ""
 msgid ""
 "Enter minimum of number of minutes between ranking updates or zero to update "
 "Enter minimum of number of minutes between ranking updates or zero to update "
 "ranking on every request - strongly discouraged for active forums."
 "ranking on every request - strongly discouraged for active forums."
@@ -5559,31 +5434,31 @@ msgstr ""
 "Wpisanie zera spowoduje aktualizowanie rankingu co każde odświeżenie strony "
 "Wpisanie zera spowoduje aktualizowanie rankingu co każde odświeżenie strony "
 "- wysoce niezalecane dla aktywnych forów."
 "- wysoce niezalecane dla aktywnych forów."
 
 
-#: fixtures/threadssettings.py:64
+#: fixtures/threadssettings.py:72
 msgid "Initial Thread Score"
 msgid "Initial Thread Score"
 msgstr "Początkowe punkty tematu"
 msgstr "Początkowe punkty tematu"
 
 
-#: fixtures/threadssettings.py:65
+#: fixtures/threadssettings.py:73
 msgid "Initial Thread Score helps new threads overtake old threads in ranking."
 msgid "Initial Thread Score helps new threads overtake old threads in ranking."
 msgstr ""
 msgstr ""
 "\"Początkowe punkty tematu\" pomagją nowym tematom wybić sie ponad stare w "
 "\"Początkowe punkty tematu\" pomagją nowym tematom wybić sie ponad stare w "
 "rankingu."
 "rankingu."
 
 
-#: fixtures/threadssettings.py:72
+#: fixtures/threadssettings.py:80
 msgid "New Reply Score"
 msgid "New Reply Score"
 msgstr "Punkty dla nowej odpowiedzi"
 msgstr "Punkty dla nowej odpowiedzi"
 
 
-#: fixtures/threadssettings.py:73
+#: fixtures/threadssettings.py:81
 msgid "Only replies visible to all members increase thread inflation."
 msgid "Only replies visible to all members increase thread inflation."
 msgstr ""
 msgstr ""
 "Tylko odpowiedzi widoczne dla wszystkich użytkowników zwiększaja punkty "
 "Tylko odpowiedzi widoczne dla wszystkich użytkowników zwiększaja punkty "
 "tematu."
 "tematu."
 
 
-#: fixtures/threadssettings.py:80
+#: fixtures/threadssettings.py:88
 msgid "Score inflation"
 msgid "Score inflation"
 msgstr "Stopniowa utrata punktów"
 msgstr "Stopniowa utrata punktów"
 
 
-#: fixtures/threadssettings.py:81
+#: fixtures/threadssettings.py:89
 #, python-format
 #, python-format
 msgid ""
 msgid ""
 "Thread popularity system requires inflation to be defined in order to be "
 "Thread popularity system requires inflation to be defined in order to be "
@@ -5596,19 +5471,19 @@ msgstr ""
 "jeżeli wpiszesz tutaj 5, co każdą aktualizację, każdy temat utraci 5%% "
 "jeżeli wpiszesz tutaj 5, co każdą aktualizację, każdy temat utraci 5%% "
 "swoich punktów. Wpisanie zera wyłącza utratę punktów."
 "swoich punktów. Wpisanie zera wyłącza utratę punktów."
 
 
-#: fixtures/threadssettings.py:89
+#: fixtures/threadssettings.py:97
 msgid "Min. Post Length"
 msgid "Min. Post Length"
 msgstr "Minimalna długość posta"
 msgstr "Minimalna długość posta"
 
 
-#: fixtures/threadssettings.py:90
+#: fixtures/threadssettings.py:98
 msgid "Minimal allowed post length."
 msgid "Minimal allowed post length."
 msgstr "Minimalna dozwolona długość posta"
 msgstr "Minimalna dozwolona długość posta"
 
 
-#: fixtures/threadssettings.py:97
+#: fixtures/threadssettings.py:105
 msgid "Automatic Post Merge timespan"
 msgid "Automatic Post Merge timespan"
 msgstr "Graniczny czas dla automatycznego łączenia postów"
 msgstr "Graniczny czas dla automatycznego łączenia postów"
 
 
-#: fixtures/threadssettings.py:98
+#: fixtures/threadssettings.py:106
 msgid ""
 msgid ""
 "Forum can automatically merge member posts if interval between postings is "
 "Forum can automatically merge member posts if interval between postings is "
 "shorter than specified number of minutes."
 "shorter than specified number of minutes."
@@ -5616,19 +5491,19 @@ msgstr ""
 "Forum może automatycznie łaczyć posty użytkownika, jeżeli czas pomiędzy ich "
 "Forum może automatycznie łaczyć posty użytkownika, jeżeli czas pomiędzy ich "
 "napisaniem jest krótszy niż podana wartość w minutach."
 "napisaniem jest krótszy niż podana wartość w minutach."
 
 
-#: fixtures/threadssettings.py:105
+#: fixtures/threadssettings.py:113
 msgid "Posts per page"
 msgid "Posts per page"
 msgstr "Postów na stronę"
 msgstr "Postów na stronę"
 
 
-#: fixtures/threadssettings.py:106
+#: fixtures/threadssettings.py:114
 msgid "Number of posts per page in thread view."
 msgid "Number of posts per page in thread view."
 msgstr "Liczba postów na stronie w widoku tematu."
 msgstr "Liczba postów na stronie w widoku tematu."
 
 
-#: fixtures/threadssettings.py:113
+#: fixtures/threadssettings.py:121
 msgid "Thread Length Limit"
 msgid "Thread Length Limit"
 msgstr "Limit długości tematu"
 msgstr "Limit długości tematu"
 
 
-#: fixtures/threadssettings.py:114
+#: fixtures/threadssettings.py:122
 msgid ""
 msgid ""
 "Long threads are hard to follow and search. You can force users to create "
 "Long threads are hard to follow and search. You can force users to create "
 "few shorter threads instead of one long by setting thread lenght limits. "
 "few shorter threads instead of one long by setting thread lenght limits. "
@@ -5694,40 +5569,44 @@ msgstr "Zarejestrowany"
 msgid "Guest"
 msgid "Guest"
 msgstr "Gość"
 msgstr "Gość"
 
 
-#: forms/fields.py:24
+#: forms/fields.py:27
 msgid "Verification Code"
 msgid "Verification Code"
 msgstr "Kod weryfikacji"
 msgstr "Kod weryfikacji"
 
 
-#: forms/forms.py:98
+#: forms/fields.py:28
+msgid "Enter the code from image into the text field."
+msgstr "Przepisz kod z obrazka w pole tekstowe."
+
+#: forms/forms.py:108
 msgid "Entered words are incorrect. Please try again."
 msgid "Entered words are incorrect. Please try again."
 msgstr "Wprowadzone słowa nie sa poprawne. Spróbuj ponownie."
 msgstr "Wprowadzone słowa nie sa poprawne. Spróbuj ponownie."
 
 
-#: forms/forms.py:108
+#: forms/forms.py:118
 msgid "The answer you entered is incorrect."
 msgid "The answer you entered is incorrect."
 msgstr "Odpowiedź na pytanie nie jest poprawna."
 msgstr "Odpowiedź na pytanie nie jest poprawna."
 
 
-#: forms/forms.py:132
+#: forms/forms.py:142
 msgid "You have to fill in both fields."
 msgid "You have to fill in both fields."
 msgstr "Musisz uzupełnić oba pola."
 msgstr "Musisz uzupełnić oba pola."
 
 
-#: forms/forms.py:134
+#: forms/forms.py:144
 msgid "You have to fill in all fields."
 msgid "You have to fill in all fields."
 msgstr "Musisz uzupełnić wszystkie pola."
 msgstr "Musisz uzupełnić wszystkie pola."
 
 
-#: forms/forms.py:145
+#: forms/forms.py:155
 msgid "Entered values differ from each other."
 msgid "Entered values differ from each other."
 msgstr "Wprowadzone wartości różnią się."
 msgstr "Wprowadzone wartości różnią się."
 
 
-#: markdown/factory.py:85
+#: markdown/factory.py:84
 #, python-format
 #, python-format
 msgid "Posted by %(user)s"
 msgid "Posted by %(user)s"
 msgstr "%(user)s napisał/a"
 msgstr "%(user)s napisał/a"
 
 
-#: markdown/factory.py:87
+#: markdown/factory.py:86
 msgid "Quote"
 msgid "Quote"
 msgstr "Cytat"
 msgstr "Cytat"
 
 
-#: markdown/factory.py:88
+#: markdown/factory.py:87
 msgid "Posted image"
 msgid "Posted image"
 msgstr "Załączony obrazek"
 msgstr "Załączony obrazek"
 
 
@@ -5740,12 +5619,12 @@ msgstr ""
 "Witaj ponownie, %(username)s! Dla Twojej wygody, zalogowaliśmy Cię "
 "Witaj ponownie, %(username)s! Dla Twojej wygody, zalogowaliśmy Cię "
 "automatycznie."
 "automatycznie."
 
 
-#: models/forummodel.py:216 templates/cranefly/layout.html:34
-#: templates/cranefly/layout.html.py:115
+#: models/forummodel.py:217 templates/cranefly/layout.html:34
+#: templates/cranefly/layout.html.py:114
 msgid "Reports"
 msgid "Reports"
 msgstr "Zgłoszenia postów"
 msgstr "Zgłoszenia postów"
 
 
-#: models/forummodel.py:218
+#: models/forummodel.py:219
 msgid "Root Category"
 msgid "Root Category"
 msgstr "Główny korzeń"
 msgstr "Główny korzeń"
 
 
@@ -5753,7 +5632,7 @@ msgstr "Główny korzeń"
 msgid "New Posts"
 msgid "New Posts"
 msgstr "Nowe posty"
 msgstr "Nowe posty"
 
 
-#: models/postmodel.py:102
+#: models/postmodel.py:105
 #, python-format
 #, python-format
 msgid "%(username)s has mentioned you in his reply in thread %(thread)s"
 msgid "%(username)s has mentioned you in his reply in thread %(thread)s"
 msgstr "%(username)s zwrócił się do Ciebie w odpowiedzi w temacie %(thread)s"
 msgstr "%(username)s zwrócił się do Ciebie w odpowiedzi w temacie %(thread)s"
@@ -5769,25 +5648,25 @@ msgstr ""
 msgid "New Threads"
 msgid "New Threads"
 msgstr "Nowe tematy"
 msgstr "Nowe tematy"
 
 
-#: models/threadmodel.py:217
+#: models/threadmodel.py:224
 #, python-format
 #, python-format
 msgid "New reply in thread \"%(thread)s\""
 msgid "New reply in thread \"%(thread)s\""
 msgstr "Nowa odpowiedź w temacie \"%(thread)s\""
 msgstr "Nowa odpowiedź w temacie \"%(thread)s\""
 
 
-#: models/usermodel.py:114
+#: models/usermodel.py:117
 msgid "This user name is already in use by another user."
 msgid "This user name is already in use by another user."
 msgstr "Ta nazwa jest już zajęta przez innego użytkownika."
 msgstr "Ta nazwa jest już zajęta przez innego użytkownika."
 
 
-#: models/usermodel.py:117
+#: models/usermodel.py:120
 msgid "This email address is already in use by another user."
 msgid "This email address is already in use by another user."
 msgstr "Ten adres e-mail jest już używany przez innego użytkownika."
 msgstr "Ten adres e-mail jest już używany przez innego użytkownika."
 
 
-#: templates/_forms.html:114
+#: templates/forms.html:76
 #, python-format
 #, python-format
 msgid "I have read and accept this forums %(forum_tos)s."
 msgid "I have read and accept this forums %(forum_tos)s."
 msgstr "Przeczytałem i akceptuję %(forum_tos)s."
 msgstr "Przeczytałem i akceptuję %(forum_tos)s."
 
 
-#: templates/_forms.html:118 templates/cranefly/forum_tos.html:17
+#: templates/forms.html:80 templates/cranefly/forum_tos.html:17
 msgid "Terms of Service"
 msgid "Terms of Service"
 msgstr "Regulamin"
 msgstr "Regulamin"
 
 
@@ -5946,8 +5825,8 @@ msgstr ""
 #: templates/_email/users/activation/admin_done.html:7
 #: templates/_email/users/activation/admin_done.html:7
 #: templates/_email/users/password/new.html:12
 #: templates/_email/users/password/new.html:12
 #: templates/_email/users/password/new_admin.html:10
 #: templates/_email/users/password/new_admin.html:10
-#: templates/admin/signin.html:21 templates/cranefly/layout.html:131
-#: templates/cranefly/signin.html:42
+#: templates/admin/signin.html:23 templates/cranefly/layout.html:131
+#: templates/cranefly/signin.html:47
 msgid "Sign In"
 msgid "Sign In"
 msgstr "Logowanie"
 msgstr "Logowanie"
 
 
@@ -5998,7 +5877,7 @@ msgstr ""
 
 
 #: templates/_email/users/activation/none.html:10
 #: templates/_email/users/activation/none.html:10
 #: templates/_email/users/activation/none.txt:11
 #: templates/_email/users/activation/none.txt:11
-#: templates/admin/bans/list.html:7
+#: templates/admin/bans/list.html:8
 msgid "E-mail"
 msgid "E-mail"
 msgstr "E-mail"
 msgstr "E-mail"
 
 
@@ -6203,7 +6082,7 @@ msgstr "%(page)s strona"
 msgid "Misago Admin"
 msgid "Misago Admin"
 msgstr "Administracja Misago"
 msgstr "Administracja Misago"
 
 
-#: templates/admin/processing.html:19
+#: templates/admin/processing.html:18
 msgid "Cancel Task"
 msgid "Cancel Task"
 msgstr "Anuluj zadanie"
 msgstr "Anuluj zadanie"
 
 
@@ -6211,7 +6090,7 @@ msgstr "Anuluj zadanie"
 msgid "Board Administration"
 msgid "Board Administration"
 msgstr "Administracja forum"
 msgstr "Administracja forum"
 
 
-#: templates/admin/signin.html:22
+#: templates/admin/signin.html:24
 msgid "Return to Forums"
 msgid "Return to Forums"
 msgstr "Powrót do forum"
 msgstr "Powrót do forum"
 
 
@@ -6234,24 +6113,24 @@ msgstr ""
 msgid "Permission"
 msgid "Permission"
 msgstr "Zezwolenie"
 msgstr "Zezwolenie"
 
 
-#: templates/admin/admin/acl_form.html:35 templates/admin/admin/form.html:30
+#: templates/admin/admin/acl_form.html:35 templates/admin/admin/form.html:14
 msgid "Save and Edit"
 msgid "Save and Edit"
 msgstr "Zapisz i modyfikuj"
 msgstr "Zapisz i modyfikuj"
 
 
-#: templates/admin/admin/acl_form.html:38 templates/admin/admin/form.html:33
+#: templates/admin/admin/acl_form.html:38 templates/admin/admin/form.html:17
 msgid "Save and Add Another"
 msgid "Save and Add Another"
 msgstr "Zapisz i dodaj kolejne"
 msgstr "Zapisz i dodaj kolejne"
 
 
-#: templates/admin/admin/acl_form.html:40 templates/admin/admin/form.html:35
-#: templates/admin/prune/apply.html:11
-#: templates/cranefly/threads/merge.html:55
-#: templates/cranefly/threads/move_posts.html:51
-#: templates/cranefly/threads/move_thread.html:52
-#: templates/cranefly/threads/move_threads.html:50
-#: templates/cranefly/threads/split.html:51
-#: templates/cranefly/usercp/avatar_crop.html:17
-#: templates/cranefly/usercp/avatar_upload.html:25
-#: templates/cranefly/usercp/options.html:26
+#: templates/admin/admin/acl_form.html:40 templates/admin/admin/form.html:19
+#: templates/admin/prune_users/apply.html:11
+#: templates/cranefly/threads/merge.html:57
+#: templates/cranefly/threads/move_posts.html:52
+#: templates/cranefly/threads/move_thread.html:55
+#: templates/cranefly/threads/move_threads.html:51
+#: templates/cranefly/threads/split.html:53
+#: templates/cranefly/usercp/avatar_crop.html:16
+#: templates/cranefly/usercp/avatar_upload.html:26
+#: templates/cranefly/usercp/options.html:41
 msgid "Cancel"
 msgid "Cancel"
 msgstr "Anuluj"
 msgstr "Anuluj"
 
 
@@ -6265,8 +6144,8 @@ msgstr "Niedostępne"
 
 
 #: templates/admin/admin/list.html:59 templates/cranefly/new_threads.html:95
 #: templates/admin/admin/list.html:59 templates/cranefly/new_threads.html:95
 #: templates/cranefly/popular_threads.html:95
 #: templates/cranefly/popular_threads.html:95
-#: templates/cranefly/profiles/followers.html:49
-#: templates/cranefly/profiles/follows.html:49
+#: templates/cranefly/profiles/followers.html:48
+#: templates/cranefly/profiles/follows.html:48
 #: templates/cranefly/profiles/list.html:97
 #: templates/cranefly/profiles/list.html:97
 #: templates/cranefly/profiles/list.html:103
 #: templates/cranefly/profiles/list.html:103
 msgid "Previous Page"
 msgid "Previous Page"
@@ -6274,8 +6153,8 @@ msgstr "Poprzednia strona"
 
 
 #: templates/admin/admin/list.html:59 templates/cranefly/new_threads.html:95
 #: templates/admin/admin/list.html:59 templates/cranefly/new_threads.html:95
 #: templates/cranefly/popular_threads.html:95
 #: templates/cranefly/popular_threads.html:95
-#: templates/cranefly/profiles/followers.html:49
-#: templates/cranefly/profiles/follows.html:49
+#: templates/cranefly/profiles/followers.html:48
+#: templates/cranefly/profiles/follows.html:48
 #: templates/cranefly/profiles/list.html:97
 #: templates/cranefly/profiles/list.html:97
 #: templates/cranefly/profiles/list.html:103
 #: templates/cranefly/profiles/list.html:103
 msgid "Next Page"
 msgid "Next Page"
@@ -6298,14 +6177,34 @@ msgstr[2] "Wyświetlanie %(shown)s z %(total)s elementów"
 msgid "Search Items"
 msgid "Search Items"
 msgstr "Wyszukiwanie elementów"
 msgstr "Wyszukiwanie elementów"
 
 
-#: templates/admin/bans/list.html:5
+#: templates/admin/bans/form.html:6
+msgid "Ban Details"
+msgstr "Szczegóły bana"
+
+#: templates/admin/bans/form.html:16
+msgid "Ban Message"
+msgstr "Uzasadnienie blokady"
+
+#: templates/admin/bans/list.html:6
 msgid "Username and E-mail"
 msgid "Username and E-mail"
 msgstr "Nazwa użytkownika oraz e-mail"
 msgstr "Nazwa użytkownika oraz e-mail"
 
 
-#: templates/admin/bans/list.html:12
+#: templates/admin/bans/list.html:13
 msgid "Permanent"
 msgid "Permanent"
 msgstr "Permanentny"
 msgstr "Permanentny"
 
 
+#: templates/admin/forums/form.html:23
+msgid "Prune Forums"
+msgstr "Automatyczne czyszczenie forum"
+
+#: templates/admin/newsletters/form.html:6
+msgid "Newsletter Options"
+msgstr "Opcje newslettera"
+
+#: templates/admin/newsletters/form.html:13
+msgid "Message"
+msgstr "Wiadomość"
+
 #: templates/admin/newsletters/list.html:6
 #: templates/admin/newsletters/list.html:6
 msgid "Ignoring Subscriptions"
 msgid "Ignoring Subscriptions"
 msgstr "Ignorowanie subskrypcji"
 msgstr "Ignorowanie subskrypcji"
@@ -6315,7 +6214,7 @@ msgid "Registered Member"
 msgstr "Zarejestrowany"
 msgstr "Zarejestrowany"
 
 
 #: templates/admin/online/list.html:12
 #: templates/admin/online/list.html:12
-#: templates/cranefly/profiles/details.html:47
+#: templates/cranefly/profiles/details.html:46
 msgid "Hidden"
 msgid "Hidden"
 msgstr "Ukryty"
 msgstr "Ukryty"
 
 
@@ -6323,10 +6222,22 @@ msgstr "Ukryty"
 msgid "Crawler"
 msgid "Crawler"
 msgstr "Bot wyszukiwarki"
 msgstr "Bot wyszukiwarki"
 
 
-#: templates/admin/prune/apply.html:7
+#: templates/admin/prune_users/apply.html:7
 msgid "Users to be deleted"
 msgid "Users to be deleted"
 msgstr "Użytkownicy do usunięcia"
 msgstr "Użytkownicy do usunięcia"
 
 
+#: templates/admin/ranks/form.html:6
+msgid "Basic Rank Options"
+msgstr "Podstawowe ustawienia rangi"
+
+#: templates/admin/ranks/form.html:17
+msgid "Rank Looks"
+msgstr "Wygląd rangi"
+
+#: templates/admin/ranks/form.html:22
+msgid "Rank Attainability"
+msgstr "Dosięgalność rangi"
+
 #: templates/admin/ranks/list.html:6
 #: templates/admin/ranks/list.html:6
 msgid "Order"
 msgid "Order"
 msgstr "Istotność"
 msgstr "Istotność"
@@ -6367,11 +6278,11 @@ msgstr "Wyszukiwanie ustawień"
 msgid "Settings Groups"
 msgid "Settings Groups"
 msgstr "Grupy ustawień"
 msgstr "Grupy ustawień"
 
 
-#: templates/admin/settings/settings.html:34
+#: templates/admin/settings/settings.html:49
 msgid "Change Settings"
 msgid "Change Settings"
 msgstr "Zatwierdź zmiany"
 msgstr "Zatwierdź zmiany"
 
 
-#: templates/admin/settings/settings.html:42
+#: templates/admin/settings/settings.html:58
 msgid "Search Settings..."
 msgid "Search Settings..."
 msgstr "Szukanie ustawień..."
 msgstr "Szukanie ustawień..."
 
 
@@ -6379,11 +6290,11 @@ msgstr "Szukanie ustawień..."
 msgid "New Report"
 msgid "New Report"
 msgstr "Nowy raport"
 msgstr "Nowy raport"
 
 
-#: templates/admin/stats/form.html:12
+#: templates/admin/stats/form.html:20
 msgid "Generate Report"
 msgid "Generate Report"
 msgstr "Wygeneruj raport"
 msgstr "Wygeneruj raport"
 
 
-#: templates/admin/stats/graph.html:9
+#: templates/admin/stats/graph.html:8
 #, python-format
 #, python-format
 msgid "One item found"
 msgid "One item found"
 msgid_plural "%(total)s items found"
 msgid_plural "%(total)s items found"
@@ -6408,6 +6319,22 @@ msgid ""
 "Some of Misago models provide statistics so you should never see this page."
 "Some of Misago models provide statistics so you should never see this page."
 msgstr "W gruncie rzeczy nigdy nie powinieneś zobaczyć tej strony..."
 msgstr "W gruncie rzeczy nigdy nie powinieneś zobaczyć tej strony..."
 
 
+#: templates/admin/users/form.html:6 templates/admin/users/new.html:6
+msgid "Basic Account Settings"
+msgstr "Podstawowe ustawienia konta"
+
+#: templates/admin/users/form.html:13 templates/admin/users/new.html:13
+msgid "Sign-in Credentials"
+msgstr "Dane do logowania"
+
+#: templates/admin/users/form.html:18
+msgid "User Avatar"
+msgstr "Awatar użytkownika"
+
+#: templates/admin/users/form.html:25
+msgid "User Signature"
+msgstr "Sygnaturka użytkownika"
+
 #: templates/admin/users/list.html:23
 #: templates/admin/users/list.html:23
 msgid "This user has not yet validated his e-mail address."
 msgid "This user has not yet validated his e-mail address."
 msgstr "Ten użytkownik nie potwierdził jeszcze swojego adresu e-mail."
 msgstr "Ten użytkownik nie potwierdził jeszcze swojego adresu e-mail."
@@ -6421,7 +6348,7 @@ msgid "Inactive"
 msgstr "Nieaktywny"
 msgstr "Nieaktywny"
 
 
 #: templates/cranefly/alerts.html:14 templates/cranefly/alerts.html.py:16
 #: templates/cranefly/alerts.html:14 templates/cranefly/alerts.html.py:16
-#: templates/cranefly/alerts.html:39 templates/cranefly/layout.html:113
+#: templates/cranefly/alerts.html:39 templates/cranefly/layout.html:116
 msgid "Your Notifications"
 msgid "Your Notifications"
 msgstr "Powiadomienia"
 msgstr "Powiadomienia"
 
 
@@ -6437,35 +6364,35 @@ msgstr[0] "Masz jedno nowe powiadomienie"
 msgstr[1] "Masz %(alerts)s nowe powiadomienia"
 msgstr[1] "Masz %(alerts)s nowe powiadomienia"
 msgstr[2] "Masz %(alerts)s nowych powiadomień"
 msgstr[2] "Masz %(alerts)s nowych powiadomień"
 
 
-#: templates/cranefly/alerts.html:54
+#: templates/cranefly/alerts.html:56
 msgid "New notification"
 msgid "New notification"
 msgstr "Nowe powiadomienie"
 msgstr "Nowe powiadomienie"
 
 
-#: templates/cranefly/alerts.html:54
+#: templates/cranefly/alerts.html:58
 msgid "Old notification"
 msgid "Old notification"
 msgstr "Stare powiadomienie"
 msgstr "Stare powiadomienie"
 
 
-#: templates/cranefly/alerts.html:64
+#: templates/cranefly/alerts.html:70
 msgid "Today Notifications"
 msgid "Today Notifications"
 msgstr "Dzisiejsze powiadomienia"
 msgstr "Dzisiejsze powiadomienia"
 
 
-#: templates/cranefly/alerts.html:65
+#: templates/cranefly/alerts.html:71
 msgid "Yesterday Notifications"
 msgid "Yesterday Notifications"
 msgstr "Wczorajsze powiadomienia"
 msgstr "Wczorajsze powiadomienia"
 
 
-#: templates/cranefly/alerts.html:66
+#: templates/cranefly/alerts.html:72
 msgid "This Week"
 msgid "This Week"
 msgstr "Z tego tygodnia"
 msgstr "Z tego tygodnia"
 
 
-#: templates/cranefly/alerts.html:67
+#: templates/cranefly/alerts.html:73
 msgid "This Month"
 msgid "This Month"
 msgstr "Z tego miesiąca"
 msgstr "Z tego miesiąca"
 
 
-#: templates/cranefly/alerts.html:68
+#: templates/cranefly/alerts.html:74
 msgid "Older Notifications"
 msgid "Older Notifications"
 msgstr "Starsze powiadomienia"
 msgstr "Starsze powiadomienia"
 
 
-#: templates/cranefly/base.html:17
+#: templates/cranefly/base.html:20
 msgid "Image could not be loaded."
 msgid "Image could not be loaded."
 msgstr "Nie udało się wczytać obrazka."
 msgstr "Nie udało się wczytać obrazka."
 
 
@@ -6508,39 +6435,43 @@ msgid "Looks like there are no forums to display in this category."
 msgstr ""
 msgstr ""
 "Wygląda na to, że w tej kategorii nie ma żadnych forów do wyświetlenia."
 "Wygląda na to, że w tej kategorii nie ma żadnych forów do wyświetlenia."
 
 
-#: templates/cranefly/editor.html:17
+#: templates/cranefly/editor.html:18
 msgid "Bold"
 msgid "Bold"
 msgstr "Pogrubienie"
 msgstr "Pogrubienie"
 
 
-#: templates/cranefly/editor.html:18
+#: templates/cranefly/editor.html:19
 msgid "Emphasis"
 msgid "Emphasis"
 msgstr "Akcent"
 msgstr "Akcent"
 
 
-#: templates/cranefly/editor.html:19
+#: templates/cranefly/editor.html:20
 msgid "Insert Link"
 msgid "Insert Link"
 msgstr "Wstaw link"
 msgstr "Wstaw link"
 
 
-#: templates/cranefly/editor.html:20
+#: templates/cranefly/editor.html:21
 msgid "Insert Image"
 msgid "Insert Image"
 msgstr "Wstaw obrazek"
 msgstr "Wstaw obrazek"
 
 
-#: templates/cranefly/editor.html:21
+#: templates/cranefly/editor.html:22
 msgid "Insert Horizontal Line"
 msgid "Insert Horizontal Line"
 msgstr "Wstaw poziomą linię"
 msgstr "Wstaw poziomą linię"
 
 
-#: templates/cranefly/editor.html:32
+#: templates/cranefly/editor.html:24
+msgid "Formatting Help"
+msgstr "Jak formatować tekst? (w budowie)"
+
+#: templates/cranefly/editor.html:34
 msgid "Enter link address"
 msgid "Enter link address"
 msgstr "Wprowadź adres odnośnika"
 msgstr "Wprowadź adres odnośnika"
 
 
-#: templates/cranefly/editor.html:33
+#: templates/cranefly/editor.html:35
 msgid "Enter link label (optional)"
 msgid "Enter link label (optional)"
 msgstr "Wprowadź opis odnośnika (opcjonalne)"
 msgstr "Wprowadź opis odnośnika (opcjonalne)"
 
 
-#: templates/cranefly/editor.html:34
+#: templates/cranefly/editor.html:36
 msgid "Enter image address"
 msgid "Enter image address"
 msgstr "Wprowadź adres do obrazka"
 msgstr "Wprowadź adres do obrazka"
 
 
-#: templates/cranefly/editor.html:35
+#: templates/cranefly/editor.html:37
 msgid "Enter image label"
 msgid "Enter image label"
 msgstr "Wprowadź opis obrazka"
 msgstr "Wprowadź opis obrazka"
 
 
@@ -6605,17 +6536,70 @@ msgstr "Mapa forum"
 msgid "Looks like no forums exist that you have permission to see."
 msgid "Looks like no forums exist that you have permission to see."
 msgstr "Wygląda na to, że nie istnieje żadne forum, które możesz zobaczyć."
 msgstr "Wygląda na to, że nie istnieje żadne forum, które możesz zobaczyć."
 
 
+#: templates/cranefly/help_md.html:10
+msgid "Misago Flavored Markdown"
+msgstr ""
+
+#: templates/cranefly/help_md.html:15
+msgid ""
+"Your message is composed of blocks like paragraphs, headers, lists or code "
+"listings. All blocks with exception of code blocks may contain in-line "
+"elements like links, images, movies, underlining and bolding."
+msgstr ""
+
+#: templates/cranefly/help_md.html:17
+msgid "Block level elements"
+msgstr ""
+
+#: templates/cranefly/help_md.html:18
+msgid "Lorem ipsum dolor met."
+msgstr ""
+
+#: templates/cranefly/help_md.html:20
+msgid "Paragraphs"
+msgstr ""
+
+#: templates/cranefly/help_md.html:21
+msgid "Paragraphs are blocks of text separated by empty lines."
+msgstr ""
+
+#: templates/cranefly/help_md.html:28
+msgid "Input above becomes two paragraphs:"
+msgstr ""
+
+#: templates/cranefly/help_md.html:37
+#, fuzzy
+msgid "Headers"
+msgstr "Nagłówek forum"
+
+#: templates/cranefly/help_md.html:38
+msgid ""
+"You can use headers to title sections of your message. Each header block "
+"level element which means"
+msgstr ""
+
 #: templates/cranefly/index.html:98
 #: templates/cranefly/index.html:98
 #, python-format
 #, python-format
 msgid "%(rank_name)s Online"
 msgid "%(rank_name)s Online"
 msgstr "%(rank_name)s Online"
 msgstr "%(rank_name)s Online"
 
 
-#: templates/cranefly/index.html:123 templates/cranefly/layout.html:65
+#: templates/cranefly/index.html:125 templates/cranefly/layout.html:65
 #: templates/cranefly/popular_threads.html:10
 #: templates/cranefly/popular_threads.html:10
 msgid "Popular Threads"
 msgid "Popular Threads"
 msgstr "Popularne tematy"
 msgstr "Popularne tematy"
 
 
-#: templates/cranefly/index.html:161
+#: templates/cranefly/index.html:127
+msgid "Latest Replies"
+msgstr "Ostatnie odpowiedzi"
+
+#: templates/cranefly/index.html:129
+#: templates/cranefly/private_threads/list.html:139
+#: templates/cranefly/reports/list.html:142
+#: templates/cranefly/threads/list.html:237
+msgid "Newest Threads"
+msgstr "Nowsze tematy"
+
+#: templates/cranefly/index.html:169
 msgid "Mark forums read"
 msgid "Mark forums read"
 msgstr "Oznacz wszystkie fora jako przeczytane"
 msgstr "Oznacz wszystkie fora jako przeczytane"
 
 
@@ -6660,11 +6644,11 @@ msgstr "Strona główna forum"
 msgid "Search Forums"
 msgid "Search Forums"
 msgstr "Wyszukiwanie"
 msgstr "Wyszukiwanie"
 
 
-#: templates/cranefly/layout.html:79 templates/cranefly/layout.html.py:115
+#: templates/cranefly/layout.html:79 templates/cranefly/layout.html.py:114
 msgid "There are unresolved reports!"
 msgid "There are unresolved reports!"
 msgstr "Mamy nierozwiązane zgłoszenia!"
 msgstr "Mamy nierozwiązane zgłoszenia!"
 
 
-#: templates/cranefly/layout.html:82 templates/cranefly/layout.html.py:113
+#: templates/cranefly/layout.html:82 templates/cranefly/layout.html.py:116
 msgid "You have new notifications!"
 msgid "You have new notifications!"
 msgstr "Masz nowe powiadomienia!"
 msgstr "Masz nowe powiadomienia!"
 
 
@@ -6831,7 +6815,7 @@ msgstr "W ciągu ostatnich 48 godzin nie rozpoczęto żadnych nowych tematów."
 #: templates/cranefly/popular_threads.html:75
 #: templates/cranefly/popular_threads.html:75
 #: templates/cranefly/watched.html:157
 #: templates/cranefly/watched.html:157
 #: templates/cranefly/private_threads/list.html:123
 #: templates/cranefly/private_threads/list.html:123
-#: templates/cranefly/reports/list.html:123
+#: templates/cranefly/reports/list.html:122
 #: templates/cranefly/threads/list.html:221
 #: templates/cranefly/threads/list.html:221
 #, python-format
 #, python-format
 msgid "%(replies)s reply"
 msgid "%(replies)s reply"
@@ -6867,7 +6851,7 @@ msgstr ""
 msgid "Looks like there are no popular threads... yet!"
 msgid "Looks like there are no popular threads... yet!"
 msgstr "Wygląda na to, że nie ma jeszcze żadnych popularnych tematów."
 msgstr "Wygląda na to, że nie ma jeszcze żadnych popularnych tematów."
 
 
-#: templates/cranefly/register.html:27
+#: templates/cranefly/register.html:56
 msgid "Register account"
 msgid "Register account"
 msgstr "Rejestracja nowego konta"
 msgstr "Rejestracja nowego konta"
 
 
@@ -6875,7 +6859,7 @@ msgstr "Rejestracja nowego konta"
 msgid "Request new Activation E-mail"
 msgid "Request new Activation E-mail"
 msgstr "Ponowne wysyłanie e-maila aktywacyjnego"
 msgstr "Ponowne wysyłanie e-maila aktywacyjnego"
 
 
-#: templates/cranefly/resend_activation.html:27
+#: templates/cranefly/resend_activation.html:29
 msgid "Request new E-mail"
 msgid "Request new E-mail"
 msgstr "Wyślij e-mail jeszcze raz"
 msgstr "Wyślij e-mail jeszcze raz"
 
 
@@ -6883,7 +6867,7 @@ msgstr "Wyślij e-mail jeszcze raz"
 msgid "Request New Password"
 msgid "Request New Password"
 msgstr "Operacja zmiany hasła"
 msgstr "Operacja zmiany hasła"
 
 
-#: templates/cranefly/reset_password.html:27
+#: templates/cranefly/reset_password.html:29
 msgid "Reset Password"
 msgid "Reset Password"
 msgstr "Zresetuj hasło"
 msgstr "Zresetuj hasło"
 
 
@@ -6895,19 +6879,19 @@ msgstr "Kliknij tutaj, jeżeli zapomniałeś danych do swojego konta."
 msgid "Click here if you didn't receive activation e-mail."
 msgid "Click here if you didn't receive activation e-mail."
 msgstr "Kliknij tutaj, jeżeli nie otrzymałeś e-maila aktywacyjnego."
 msgstr "Kliknij tutaj, jeżeli nie otrzymałeś e-maila aktywacyjnego."
 
 
-#: templates/cranefly/signin.html:45
+#: templates/cranefly/signin.html:50
 msgid "Problems Signing In?"
 msgid "Problems Signing In?"
 msgstr "Problemy z logowaniem?"
 msgstr "Problemy z logowaniem?"
 
 
-#: templates/cranefly/signin.html:47
+#: templates/cranefly/signin.html:52
 msgid "I don't remember my password"
 msgid "I don't remember my password"
 msgstr "Nie pamiętam swojego hasła"
 msgstr "Nie pamiętam swojego hasła"
 
 
-#: templates/cranefly/signin.html:48
+#: templates/cranefly/signin.html:53
 msgid "I haven't received activation e-mail"
 msgid "I haven't received activation e-mail"
 msgstr "Nie odebrałem e-maila aktywacyjnego"
 msgstr "Nie odebrałem e-maila aktywacyjnego"
 
 
-#: templates/cranefly/signin.html:50
+#: templates/cranefly/signin.html:55
 msgid "I don't have account"
 msgid "I don't have account"
 msgstr "Nie posiadam jeszcze konta"
 msgstr "Nie posiadam jeszcze konta"
 
 
@@ -6949,8 +6933,8 @@ msgid "Latest Threads"
 msgstr "Ostatnie tematy"
 msgstr "Ostatnie tematy"
 
 
 #: templates/cranefly/watched.html:178 templates/cranefly/watched.html:179
 #: templates/cranefly/watched.html:178 templates/cranefly/watched.html:179
-#: templates/cranefly/profiles/posts.html:42
-#: templates/cranefly/profiles/threads.html:38
+#: templates/cranefly/profiles/posts.html:47
+#: templates/cranefly/profiles/threads.html:43
 msgid "Latest"
 msgid "Latest"
 msgstr "Ostatnie"
 msgstr "Ostatnie"
 
 
@@ -6960,7 +6944,7 @@ msgstr "Nowsze tematy"
 
 
 #: templates/cranefly/watched.html:178 templates/cranefly/watched.html:179
 #: templates/cranefly/watched.html:178 templates/cranefly/watched.html:179
 #: templates/cranefly/private_threads/list.html:139
 #: templates/cranefly/private_threads/list.html:139
-#: templates/cranefly/reports/list.html:143
+#: templates/cranefly/reports/list.html:142
 #: templates/cranefly/threads/list.html:237
 #: templates/cranefly/threads/list.html:237
 msgid "Older Threads"
 msgid "Older Threads"
 msgstr "Starsze tematy"
 msgstr "Starsze tematy"
@@ -6997,7 +6981,7 @@ msgstr "Historia zmian posta #%(post)s"
 #: templates/cranefly/reports/thread.html:140
 #: templates/cranefly/reports/thread.html:140
 #: templates/cranefly/threads/changelog.html:23
 #: templates/cranefly/threads/changelog.html:23
 #: templates/cranefly/threads/details.html:23
 #: templates/cranefly/threads/details.html:23
-#: templates/cranefly/threads/posting.html:153
+#: templates/cranefly/threads/posting.html:160
 #: templates/cranefly/threads/thread.html:93
 #: templates/cranefly/threads/thread.html:93
 #: templates/cranefly/threads/thread.html:95
 #: templates/cranefly/threads/thread.html:95
 #: templates/cranefly/threads/thread.html:162
 #: templates/cranefly/threads/thread.html:162
@@ -7143,26 +7127,20 @@ msgid "You are not participating in any private discussions."
 msgstr "Aktualnie nie uczestniczysz w żadnej prywatnej dyskusji."
 msgstr "Aktualnie nie uczestniczysz w żadnej prywatnej dyskusji."
 
 
 #: templates/cranefly/private_threads/list.html:139
 #: templates/cranefly/private_threads/list.html:139
-#: templates/cranefly/reports/list.html:143
+#: templates/cranefly/reports/list.html:142
 #: templates/cranefly/threads/list.html:237
 #: templates/cranefly/threads/list.html:237
 msgid "First Page"
 msgid "First Page"
 msgstr "Pierwsza strona"
 msgstr "Pierwsza strona"
 
 
 #: templates/cranefly/private_threads/list.html:139
 #: templates/cranefly/private_threads/list.html:139
 #: templates/cranefly/private_threads/thread.html:532
 #: templates/cranefly/private_threads/thread.html:532
-#: templates/cranefly/reports/list.html:143
+#: templates/cranefly/reports/list.html:142
 #: templates/cranefly/reports/thread.html:418
 #: templates/cranefly/reports/thread.html:418
 #: templates/cranefly/threads/list.html:237
 #: templates/cranefly/threads/list.html:237
 #: templates/cranefly/threads/thread.html:503
 #: templates/cranefly/threads/thread.html:503
 msgid "First"
 msgid "First"
 msgstr "Pierwszy"
 msgstr "Pierwszy"
 
 
-#: templates/cranefly/private_threads/list.html:139
-#: templates/cranefly/reports/list.html:143
-#: templates/cranefly/threads/list.html:237
-msgid "Newest Threads"
-msgstr "Nowsze tematy"
-
 #: templates/cranefly/private_threads/list.html:155
 #: templates/cranefly/private_threads/list.html:155
 #: templates/cranefly/threads/list.html:263
 #: templates/cranefly/threads/list.html:263
 msgid ""
 msgid ""
@@ -7176,49 +7154,49 @@ msgstr ""
 #: templates/cranefly/private_threads/posting.html:180
 #: templates/cranefly/private_threads/posting.html:180
 #: templates/cranefly/reports/posting.html:85
 #: templates/cranefly/reports/posting.html:85
 #: templates/cranefly/reports/posting.html:176
 #: templates/cranefly/reports/posting.html:176
-#: templates/cranefly/threads/posting.html:90
-#: templates/cranefly/threads/posting.html:187
+#: templates/cranefly/threads/posting.html:97
+#: templates/cranefly/threads/posting.html:194
 msgid "Preview"
 msgid "Preview"
 msgstr "Podgląd"
 msgstr "Podgląd"
 
 
 #: templates/cranefly/private_threads/posting.html:129
 #: templates/cranefly/private_threads/posting.html:129
-#: templates/cranefly/threads/posting.html:136
+#: templates/cranefly/threads/posting.html:143
 msgid "Post New Thread"
 msgid "Post New Thread"
 msgstr "Nowy temat"
 msgstr "Nowy temat"
 
 
 #: templates/cranefly/private_threads/posting.html:131
 #: templates/cranefly/private_threads/posting.html:131
-#: templates/cranefly/threads/posting.html:138
+#: templates/cranefly/threads/posting.html:145
 msgid "Edit Thread"
 msgid "Edit Thread"
 msgstr "Modyfikacja tematu"
 msgstr "Modyfikacja tematu"
 
 
 #: templates/cranefly/private_threads/posting.html:133
 #: templates/cranefly/private_threads/posting.html:133
-#: templates/cranefly/threads/posting.html:140
+#: templates/cranefly/threads/posting.html:147
 msgid "Post New Reply"
 msgid "Post New Reply"
 msgstr "Nowa odpowiedź"
 msgstr "Nowa odpowiedź"
 
 
 #: templates/cranefly/private_threads/posting.html:135
 #: templates/cranefly/private_threads/posting.html:135
-#: templates/cranefly/threads/posting.html:142
+#: templates/cranefly/threads/posting.html:149
 msgid "Edit Reply"
 msgid "Edit Reply"
 msgstr "Edycja odpowiedzi"
 msgstr "Edycja odpowiedzi"
 
 
 #: templates/cranefly/private_threads/posting.html:142
 #: templates/cranefly/private_threads/posting.html:142
 #: templates/cranefly/private_threads/posting.html:151
 #: templates/cranefly/private_threads/posting.html:151
 #: templates/cranefly/private_threads/thread.html:22
 #: templates/cranefly/private_threads/thread.html:22
-#: templates/cranefly/threads/posting.html:149
-#: templates/cranefly/threads/posting.html:158
+#: templates/cranefly/threads/posting.html:156
+#: templates/cranefly/threads/posting.html:165
 #: templates/cranefly/threads/thread.html:22
 #: templates/cranefly/threads/thread.html:22
 msgid "Not Reviewed"
 msgid "Not Reviewed"
 msgstr "Oczekuje na akceptację"
 msgstr "Oczekuje na akceptację"
 
 
 #: templates/cranefly/private_threads/posting.html:148
 #: templates/cranefly/private_threads/posting.html:148
 #: templates/cranefly/reports/posting.html:147
 #: templates/cranefly/reports/posting.html:147
-#: templates/cranefly/threads/posting.html:155
+#: templates/cranefly/threads/posting.html:162
 msgid "First edit"
 msgid "First edit"
 msgstr "Pierwsza edycja"
 msgstr "Pierwsza edycja"
 
 
 #: templates/cranefly/private_threads/posting.html:159
 #: templates/cranefly/private_threads/posting.html:159
 #: templates/cranefly/private_threads/thread.html:26
 #: templates/cranefly/private_threads/thread.html:26
-#: templates/cranefly/threads/posting.html:166
+#: templates/cranefly/threads/posting.html:173
 #: templates/cranefly/threads/thread.html:26
 #: templates/cranefly/threads/thread.html:26
 #, python-format
 #, python-format
 msgid "One reply"
 msgid "One reply"
@@ -7229,7 +7207,7 @@ msgstr[2] "%(replies)s odpowiedzi"
 
 
 #: templates/cranefly/private_threads/posting.html:161
 #: templates/cranefly/private_threads/posting.html:161
 #: templates/cranefly/private_threads/thread.html:28
 #: templates/cranefly/private_threads/thread.html:28
-#: templates/cranefly/threads/posting.html:168
+#: templates/cranefly/threads/posting.html:175
 #: templates/cranefly/threads/thread.html:28
 #: templates/cranefly/threads/thread.html:28
 msgid "No replies"
 msgid "No replies"
 msgstr "Brak odpowiedzi"
 msgstr "Brak odpowiedzi"
@@ -7237,18 +7215,18 @@ msgstr "Brak odpowiedzi"
 #: templates/cranefly/private_threads/posting.html:164
 #: templates/cranefly/private_threads/posting.html:164
 #: templates/cranefly/private_threads/thread.html:30
 #: templates/cranefly/private_threads/thread.html:30
 #: templates/cranefly/reports/posting.html:162
 #: templates/cranefly/reports/posting.html:162
-#: templates/cranefly/threads/posting.html:171
+#: templates/cranefly/threads/posting.html:178
 #: templates/cranefly/threads/thread.html:30
 #: templates/cranefly/threads/thread.html:30
 msgid "Locked"
 msgid "Locked"
 msgstr "Zamknięty"
 msgstr "Zamknięty"
 
 
 #: templates/cranefly/private_threads/posting.html:170
 #: templates/cranefly/private_threads/posting.html:170
-#: templates/cranefly/threads/posting.html:177
+#: templates/cranefly/threads/posting.html:184
 msgid "Post Thread"
 msgid "Post Thread"
 msgstr "Załóż temat"
 msgstr "Załóż temat"
 
 
 #: templates/cranefly/private_threads/posting.html:172
 #: templates/cranefly/private_threads/posting.html:172
-#: templates/cranefly/threads/posting.html:179
+#: templates/cranefly/threads/posting.html:186
 msgid "Post Reply"
 msgid "Post Reply"
 msgstr "Wyślij odpowiedź"
 msgstr "Wyślij odpowiedź"
 
 
@@ -7646,8 +7624,8 @@ msgid "Go to first page"
 msgstr "Idź do pierwszej strony"
 msgstr "Idź do pierwszej strony"
 
 
 #: templates/cranefly/private_threads/thread.html:532
 #: templates/cranefly/private_threads/thread.html:532
-#: templates/cranefly/profiles/posts.html:42
-#: templates/cranefly/profiles/threads.html:38
+#: templates/cranefly/profiles/posts.html:47
+#: templates/cranefly/profiles/threads.html:43
 #: templates/cranefly/reports/thread.html:418
 #: templates/cranefly/reports/thread.html:418
 #: templates/cranefly/search/results.html:52
 #: templates/cranefly/search/results.html:52
 #: templates/cranefly/threads/thread.html:503
 #: templates/cranefly/threads/thread.html:503
@@ -7704,89 +7682,89 @@ msgstr "Pełny edytor"
 msgid "User to invite..."
 msgid "User to invite..."
 msgstr "Nazwa użytkownika..."
 msgstr "Nazwa użytkownika..."
 
 
-#: templates/cranefly/profiles/details.html:16
+#: templates/cranefly/profiles/details.html:15
 msgid "Account Details"
 msgid "Account Details"
 msgstr "Szczegóły profilu"
 msgstr "Szczegóły profilu"
 
 
-#: templates/cranefly/profiles/details.html:33
+#: templates/cranefly/profiles/details.html:32
 msgid "Member Since"
 msgid "Member Since"
 msgstr "Dołączył"
 msgstr "Dołączył"
 
 
-#: templates/cranefly/profiles/details.html:41
+#: templates/cranefly/profiles/details.html:40
 msgid "Last Seen"
 msgid "Last Seen"
 msgstr "Ostatnio widziany"
 msgstr "Ostatnio widziany"
 
 
-#: templates/cranefly/profiles/details.html:58
+#: templates/cranefly/profiles/details.html:57
 msgid "Forums Activity"
 msgid "Forums Activity"
 msgstr "Aktywność na forum"
 msgstr "Aktywność na forum"
 
 
-#: templates/cranefly/profiles/details.html:65
+#: templates/cranefly/profiles/details.html:64
 msgid "Posts Written"
 msgid "Posts Written"
 msgstr "Napisanych postów"
 msgstr "Napisanych postów"
 
 
-#: templates/cranefly/profiles/details.html:73
+#: templates/cranefly/profiles/details.html:72
 msgid "Threads Started"
 msgid "Threads Started"
 msgstr "Rozpoczętych tematów"
 msgstr "Rozpoczętych tematów"
 
 
-#: templates/cranefly/profiles/details.html:81
+#: templates/cranefly/profiles/details.html:80
 msgid "Votes Cast"
 msgid "Votes Cast"
 msgstr "Głosów w ankietach"
 msgstr "Głosów w ankietach"
 
 
-#: templates/cranefly/profiles/details.html:97
+#: templates/cranefly/profiles/details.html:96
 msgid "Ranking Performance"
 msgid "Ranking Performance"
 msgstr "Ranking"
 msgstr "Ranking"
 
 
-#: templates/cranefly/profiles/details.html:107
+#: templates/cranefly/profiles/details.html:106
 msgid "Not Ranked"
 msgid "Not Ranked"
 msgstr "Nie dotyczy"
 msgstr "Nie dotyczy"
 
 
-#: templates/cranefly/profiles/details.html:113
+#: templates/cranefly/profiles/details.html:112
 msgid "Ranking Position"
 msgid "Ranking Position"
 msgstr "Pozycja w rankingu"
 msgstr "Pozycja w rankingu"
 
 
-#: templates/cranefly/profiles/details.html:113
+#: templates/cranefly/profiles/details.html:112
 msgid "Score"
 msgid "Score"
 msgstr "Wynik"
 msgstr "Wynik"
 
 
-#: templates/cranefly/profiles/details.html:125
+#: templates/cranefly/profiles/details.html:124
 msgid "Karma Received"
 msgid "Karma Received"
 msgstr "Otrzymane głosy"
 msgstr "Otrzymane głosy"
 
 
-#: templates/cranefly/profiles/details.html:133
+#: templates/cranefly/profiles/details.html:132
 msgid "Karma Given"
 msgid "Karma Given"
 msgstr "Oddane głosy"
 msgstr "Oddane głosy"
 
 
-#: templates/cranefly/profiles/details.html:146
+#: templates/cranefly/profiles/details.html:145
 msgid "Interactions"
 msgid "Interactions"
 msgstr "Interakcje"
 msgstr "Interakcje"
 
 
-#: templates/cranefly/profiles/details.html:161
+#: templates/cranefly/profiles/details.html:160
 msgid "Following"
 msgid "Following"
 msgstr "Obserwowany"
 msgstr "Obserwowany"
 
 
-#: templates/cranefly/profiles/details.html:182
+#: templates/cranefly/profiles/details.html:181
 msgid "Registration Details"
 msgid "Registration Details"
 msgstr "Zarejestrowany z"
 msgstr "Zarejestrowany z"
 
 
-#: templates/cranefly/profiles/details.html:197
-#: templates/cranefly/profiles/details.html:228
+#: templates/cranefly/profiles/details.html:196
+#: templates/cranefly/profiles/details.html:227
 msgid "UserAgent String"
 msgid "UserAgent String"
 msgstr "UserAgent przeglądarki"
 msgstr "UserAgent przeglądarki"
 
 
-#: templates/cranefly/profiles/details.html:200
-#: templates/cranefly/profiles/details.html:231
+#: templates/cranefly/profiles/details.html:199
+#: templates/cranefly/profiles/details.html:230
 msgid "Created from console"
 msgid "Created from console"
 msgstr "Utworzony spod konsoli"
 msgstr "Utworzony spod konsoli"
 
 
-#: templates/cranefly/profiles/details.html:213
+#: templates/cranefly/profiles/details.html:212
 msgid "Last Visit Details"
 msgid "Last Visit Details"
 msgstr "Ostatnia wizyta z"
 msgstr "Ostatnia wizyta z"
 
 
-#: templates/cranefly/profiles/details.html:244
+#: templates/cranefly/profiles/details.html:243
 msgid "Member Details"
 msgid "Member Details"
 msgstr "Szczegóły o użytkowniku"
 msgstr "Szczegóły o użytkowniku"
 
 
-#: templates/cranefly/profiles/followers.html:9
+#: templates/cranefly/profiles/followers.html:8
 #, python-format
 #, python-format
 msgid "%(username)s is followed by one member"
 msgid "%(username)s is followed by one member"
 msgid_plural "%(username)s is followed by %(total)s members"
 msgid_plural "%(username)s is followed by %(total)s members"
@@ -7794,17 +7772,17 @@ msgstr[0] "%(username)s jest obserwowany przez jednego użytkownika"
 msgstr[1] "%(username)s jest obserwowany przez %(total)s użytkowników"
 msgstr[1] "%(username)s jest obserwowany przez %(total)s użytkowników"
 msgstr[2] "%(username)s jest obserwowany przez %(total)s użytkowników"
 msgstr[2] "%(username)s jest obserwowany przez %(total)s użytkowników"
 
 
-#: templates/cranefly/profiles/followers.html:11
+#: templates/cranefly/profiles/followers.html:10
 #, python-format
 #, python-format
 msgid "%(username)s has no followers"
 msgid "%(username)s has no followers"
 msgstr "%(username)s nie jest obserwowany przez nikogo"
 msgstr "%(username)s nie jest obserwowany przez nikogo"
 
 
-#: templates/cranefly/profiles/followers.html:19
+#: templates/cranefly/profiles/followers.html:18
 #, python-format
 #, python-format
 msgid "Users that are following %(username)s"
 msgid "Users that are following %(username)s"
 msgstr "Użytkownicy, którzy obserwują %(username)s"
 msgstr "Użytkownicy, którzy obserwują %(username)s"
 
 
-#: templates/cranefly/profiles/follows.html:9
+#: templates/cranefly/profiles/follows.html:8
 #, python-format
 #, python-format
 msgid "%(username)s is following one member"
 msgid "%(username)s is following one member"
 msgid_plural "%(username)s is following %(total)s members"
 msgid_plural "%(username)s is following %(total)s members"
@@ -7812,12 +7790,12 @@ msgstr[0] "%(username)s obserwuje jednego użytkownika"
 msgstr[1] "%(username)s obserwuje %(total)s użytkowników"
 msgstr[1] "%(username)s obserwuje %(total)s użytkowników"
 msgstr[2] "%(username)s obserwuje %(total)s użytkowników"
 msgstr[2] "%(username)s obserwuje %(total)s użytkowników"
 
 
-#: templates/cranefly/profiles/follows.html:11
+#: templates/cranefly/profiles/follows.html:10
 #, python-format
 #, python-format
 msgid "%(username)s is not following anybody"
 msgid "%(username)s is not following anybody"
 msgstr "%(username)s nie obserwuje nikogo"
 msgstr "%(username)s nie obserwuje nikogo"
 
 
-#: templates/cranefly/profiles/follows.html:19
+#: templates/cranefly/profiles/follows.html:18
 #, python-format
 #, python-format
 msgid "Users %(username)s is following"
 msgid "Users %(username)s is following"
 msgstr "Użytkownicy, których obserwuje %(username)s"
 msgstr "Użytkownicy, których obserwuje %(username)s"
@@ -7826,6 +7804,10 @@ msgstr "Użytkownicy, których obserwuje %(username)s"
 msgid "Browse notable user groups or find specific user"
 msgid "Browse notable user groups or find specific user"
 msgstr "Najważniejsze rangi i wyszukiwanie użytkowników"
 msgstr "Najważniejsze rangi i wyszukiwanie użytkowników"
 
 
+#: templates/cranefly/profiles/list.html:38
+msgid "Search Users"
+msgstr "Wyszukiwanie użytkowników"
+
 #: templates/cranefly/profiles/list.html:47
 #: templates/cranefly/profiles/list.html:47
 msgid ""
 msgid ""
 "We couldn't find a member with name you entered, so we present you with some "
 "We couldn't find a member with name you entered, so we present you with some "
@@ -7859,35 +7841,42 @@ msgstr "Wyszukaj użytkownika..."
 
 
 #: templates/cranefly/profiles/posts.html:9
 #: templates/cranefly/profiles/posts.html:9
 #, python-format
 #, python-format
+msgid "Graph presents %(user)s's posting activity from last 100 days."
+msgstr ""
+"Wykres prezentuje liczbę napisanych wiadomości przez użytkownika %(user)s w "
+"ciągu ostatnich 100 dni."
+
+#: templates/cranefly/profiles/posts.html:13
+#, python-format
 msgid "%(username)s has one post"
 msgid "%(username)s has one post"
 msgid_plural "%(username)s has %(total)s posts"
 msgid_plural "%(username)s has %(total)s posts"
 msgstr[0] "%(username)s napisał jeden post"
 msgstr[0] "%(username)s napisał jeden post"
 msgstr[1] "%(username)s napisał %(total)s posty"
 msgstr[1] "%(username)s napisał %(total)s posty"
 msgstr[2] "%(username)s napisał %(total)s postów"
 msgstr[2] "%(username)s napisał %(total)s postów"
 
 
-#: templates/cranefly/profiles/posts.html:11
+#: templates/cranefly/profiles/posts.html:15
 #, python-format
 #, python-format
 msgid "%(username)s has no posts"
 msgid "%(username)s has no posts"
 msgstr "%(username)s nie napisał dotychczas żadnych postów"
 msgstr "%(username)s nie napisał dotychczas żadnych postów"
 
 
-#: templates/cranefly/profiles/posts.html:24
-#: templates/cranefly/profiles/threads.html:23
+#: templates/cranefly/profiles/posts.html:29
+#: templates/cranefly/profiles/threads.html:28
 #, python-format
 #, python-format
 msgid "Thread %(thread)s posted in %(forum)s %(date)s"
 msgid "Thread %(thread)s posted in %(forum)s %(date)s"
 msgstr "Temat %(thread)s utworzony w %(forum)s %(date)s"
 msgstr "Temat %(thread)s utworzony w %(forum)s %(date)s"
 
 
-#: templates/cranefly/profiles/posts.html:26
+#: templates/cranefly/profiles/posts.html:31
 #, python-format
 #, python-format
 msgid "Reply to %(thread)s posted in %(forum)s %(date)s"
 msgid "Reply to %(thread)s posted in %(forum)s %(date)s"
 msgstr "Odpowiedź do %(thread)s w %(forum)s %(date)s"
 msgstr "Odpowiedź do %(thread)s w %(forum)s %(date)s"
 
 
-#: templates/cranefly/profiles/posts.html:42
-#: templates/cranefly/profiles/threads.html:38
+#: templates/cranefly/profiles/posts.html:47
+#: templates/cranefly/profiles/threads.html:43
 msgid "Lastest Posts"
 msgid "Lastest Posts"
 msgstr "Ostatnie posty"
 msgstr "Ostatnie posty"
 
 
-#: templates/cranefly/profiles/posts.html:42
-#: templates/cranefly/profiles/threads.html:38
+#: templates/cranefly/profiles/posts.html:47
+#: templates/cranefly/profiles/threads.html:43
 #: templates/cranefly/search/results.html:52
 #: templates/cranefly/search/results.html:52
 msgid "Newer Posts"
 msgid "Newer Posts"
 msgstr "Nowsze posty"
 msgstr "Nowsze posty"
@@ -7949,13 +7938,20 @@ msgstr "Rozpocznij prywatną dyskusję z %(user)s"
 
 
 #: templates/cranefly/profiles/threads.html:9
 #: templates/cranefly/profiles/threads.html:9
 #, python-format
 #, python-format
+msgid "Graph presents threads started by %(user)s's during last 100 days."
+msgstr ""
+"Wykres prezentuje liczbę tematów rozpoczętych przez użytkownika %(user)s w "
+"ciągu ostatnich 100 dni."
+
+#: templates/cranefly/profiles/threads.html:13
+#, python-format
 msgid "%(username)s started one thread"
 msgid "%(username)s started one thread"
 msgid_plural "%(username)s started %(total)s threads"
 msgid_plural "%(username)s started %(total)s threads"
 msgstr[0] "%(username)s rozpoczął jeden temat"
 msgstr[0] "%(username)s rozpoczął jeden temat"
 msgstr[1] "%(username)s rozpoczął %(total)s tematy"
 msgstr[1] "%(username)s rozpoczął %(total)s tematy"
 msgstr[2] "%(username)s rozpoczął %(total)s tematów"
 msgstr[2] "%(username)s rozpoczął %(total)s tematów"
 
 
-#: templates/cranefly/profiles/threads.html:11
+#: templates/cranefly/profiles/threads.html:15
 #, python-format
 #, python-format
 msgid "%(username)s started no threads"
 msgid "%(username)s started no threads"
 msgstr "%(username)s nie rozpoczął żadnych tematów"
 msgstr "%(username)s nie rozpoczął żadnych tematów"
@@ -7988,7 +7984,7 @@ msgstr "Usunięty post zgłoszony przez %(user)s %(start)s"
 msgid "There are no reports currently. Whef!"
 msgid "There are no reports currently. Whef!"
 msgstr "Aktualnie nie mamy żadnych zgłoszeń do moderacji. Uff!"
 msgstr "Aktualnie nie mamy żadnych zgłoszeń do moderacji. Uff!"
 
 
-#: templates/cranefly/reports/list.html:169
+#: templates/cranefly/reports/list.html:168
 msgid ""
 msgid ""
 "Are you sure you want to delete selected reports? This action is not "
 "Are you sure you want to delete selected reports? This action is not "
 "reversible!"
 "reversible!"
@@ -8136,7 +8132,7 @@ msgstr ""
 msgid "Post #%(post)s Votes"
 msgid "Post #%(post)s Votes"
 msgstr "Głosy posta #%(post)s "
 msgstr "Głosy posta #%(post)s "
 
 
-#: templates/cranefly/threads/karmas.html:32
+#: templates/cranefly/threads/karmas.html:33
 #, python-format
 #, python-format
 msgid "One like"
 msgid "One like"
 msgid_plural "%(votes)s likes"
 msgid_plural "%(votes)s likes"
@@ -8148,7 +8144,7 @@ msgstr[2] "%(votes)s osób poubiło ten post"
 msgid "Nobody liked this post."
 msgid "Nobody liked this post."
 msgstr "Nikt nie polubił tego posta."
 msgstr "Nikt nie polubił tego posta."
 
 
-#: templates/cranefly/threads/karmas.html:59
+#: templates/cranefly/threads/karmas.html:60
 #, python-format
 #, python-format
 msgid "One dislike"
 msgid "One dislike"
 msgid_plural "%(votes)s dislikes"
 msgid_plural "%(votes)s dislikes"
@@ -8209,36 +8205,28 @@ msgstr[2] "%(redirects)s kliknięć"
 #: templates/cranefly/threads/merge.html:10
 #: templates/cranefly/threads/merge.html:10
 #: templates/cranefly/threads/merge.html:20
 #: templates/cranefly/threads/merge.html:20
 #: templates/cranefly/threads/merge.html:30
 #: templates/cranefly/threads/merge.html:30
-#: templates/cranefly/threads/merge.html:54
+#: templates/cranefly/threads/merge.html:56
 msgid "Merge Threads"
 msgid "Merge Threads"
 msgstr "Połącz tematy"
 msgstr "Połącz tematy"
 
 
 #: templates/cranefly/threads/move_posts.html:10
 #: templates/cranefly/threads/move_posts.html:10
 #: templates/cranefly/threads/move_posts.html:20
 #: templates/cranefly/threads/move_posts.html:20
 #: templates/cranefly/threads/move_posts.html:30
 #: templates/cranefly/threads/move_posts.html:30
-#: templates/cranefly/threads/move_posts.html:50
+#: templates/cranefly/threads/move_posts.html:51
 msgid "Move Posts"
 msgid "Move Posts"
 msgstr "Przenieś posty"
 msgstr "Przenieś posty"
 
 
 #: templates/cranefly/threads/move_thread.html:10
 #: templates/cranefly/threads/move_thread.html:10
 #: templates/cranefly/threads/move_thread.html:20
 #: templates/cranefly/threads/move_thread.html:20
 #: templates/cranefly/threads/move_thread.html:30
 #: templates/cranefly/threads/move_thread.html:30
-#: templates/cranefly/threads/move_thread.html:51
+#: templates/cranefly/threads/move_thread.html:54
 msgid "Move Thread"
 msgid "Move Thread"
 msgstr "Przenieś temat"
 msgstr "Przenieś temat"
 
 
-#: templates/cranefly/threads/move_thread.html:47
-msgid "Move Thread To"
-msgstr "Przenieś temat do"
-
-#: templates/cranefly/threads/move_thread.html:47
-msgid "Select forum you want to move this thread to."
-msgstr "Wskaż forum, do którego chcesz przenieść ten temat."
-
 #: templates/cranefly/threads/move_threads.html:10
 #: templates/cranefly/threads/move_threads.html:10
 #: templates/cranefly/threads/move_threads.html:20
 #: templates/cranefly/threads/move_threads.html:20
 #: templates/cranefly/threads/move_threads.html:30
 #: templates/cranefly/threads/move_threads.html:30
-#: templates/cranefly/threads/move_threads.html:49
+#: templates/cranefly/threads/move_threads.html:50
 msgid "Move Threads"
 msgid "Move Threads"
 msgstr "Przenieś tematy"
 msgstr "Przenieś tematy"
 
 
@@ -8246,10 +8234,18 @@ msgstr "Przenieś tematy"
 msgid "Thread Status"
 msgid "Thread Status"
 msgstr "Typ tematu"
 msgstr "Typ tematu"
 
 
+#: templates/cranefly/threads/posting.html:85
+msgid "Open thread"
+msgstr "Otwórz temat"
+
+#: templates/cranefly/threads/posting.html:87
+msgid "Close thread"
+msgstr "Zamknij temat"
+
 #: templates/cranefly/threads/split.html:10
 #: templates/cranefly/threads/split.html:10
 #: templates/cranefly/threads/split.html:20
 #: templates/cranefly/threads/split.html:20
 #: templates/cranefly/threads/split.html:30
 #: templates/cranefly/threads/split.html:30
-#: templates/cranefly/threads/split.html:50
+#: templates/cranefly/threads/split.html:52
 msgid "Split Thread"
 msgid "Split Thread"
 msgstr "Podziel temat"
 msgstr "Podziel temat"
 
 
@@ -8310,12 +8306,12 @@ msgstr "Przytnij swój awatar"
 
 
 #: templates/cranefly/usercp/avatar.html:33
 #: templates/cranefly/usercp/avatar.html:33
 #: templates/cranefly/usercp/avatar_upload.html:11
 #: templates/cranefly/usercp/avatar_upload.html:11
-#: templates/cranefly/usercp/avatar_upload.html:24
+#: templates/cranefly/usercp/avatar_upload.html:25
 msgid "Upload Avatar"
 msgid "Upload Avatar"
 msgstr "Prześlij awatar"
 msgstr "Prześlij awatar"
 
 
 #: templates/cranefly/usercp/avatar_banned.html:10
 #: templates/cranefly/usercp/avatar_banned.html:10
-#: templates/cranefly/usercp/avatar_crop.html:16
+#: templates/cranefly/usercp/avatar_crop.html:15
 #: templates/cranefly/usercp/avatar_gallery.html:10
 #: templates/cranefly/usercp/avatar_gallery.html:10
 #: templates/cranefly/usercp/avatar_upload.html:11
 #: templates/cranefly/usercp/avatar_upload.html:11
 msgid "Change your Avatar"
 msgid "Change your Avatar"
@@ -8333,16 +8329,16 @@ msgstr "%(username)s, nie możesz już zmienić awatara z następującego powodu
 msgid "%(username)s, your ability to change your avatar has been removed."
 msgid "%(username)s, your ability to change your avatar has been removed."
 msgstr "%(username)s, administrator odebrał Ci możliwość zmiany awatara."
 msgstr "%(username)s, administrator odebrał Ci możliwość zmiany awatara."
 
 
-#: templates/cranefly/usercp/avatar_crop.html:14
+#: templates/cranefly/usercp/avatar_crop.html:13
 msgid "Avatar Preview"
 msgid "Avatar Preview"
 msgstr "Podgląd awatara"
 msgstr "Podgląd awatara"
 
 
-#: templates/cranefly/usercp/avatar_crop.html:16
-#: templates/cranefly/usercp/avatar_crop.html:18
+#: templates/cranefly/usercp/avatar_crop.html:15
+#: templates/cranefly/usercp/avatar_crop.html:17
 msgid "Crop Avatar"
 msgid "Crop Avatar"
 msgstr "Przycinanie awatara"
 msgstr "Przycinanie awatara"
 
 
-#: templates/cranefly/usercp/avatar_crop.html:33
+#: templates/cranefly/usercp/avatar_crop.html:32
 msgid "Uploaded Image"
 msgid "Uploaded Image"
 msgstr "Przesłany obrazek"
 msgstr "Przesłany obrazek"
 
 
@@ -8350,7 +8346,7 @@ msgstr "Przesłany obrazek"
 msgid "Change Sign-In Credentials"
 msgid "Change Sign-In Credentials"
 msgstr "Zmień dane logowania"
 msgstr "Zmień dane logowania"
 
 
-#: templates/cranefly/usercp/credentials.html:25
+#: templates/cranefly/usercp/credentials.html:28
 msgid "Change Credentials"
 msgid "Change Credentials"
 msgstr "Zmień dane"
 msgstr "Zmień dane"
 
 
@@ -8362,11 +8358,23 @@ msgstr "Opcje Twojego profilu"
 msgid "Change Forum Options"
 msgid "Change Forum Options"
 msgstr "Zmień opcje forum"
 msgstr "Zmień opcje forum"
 
 
-#: templates/cranefly/usercp/options.html:25
+#: templates/cranefly/usercp/options.html:24
+msgid "Privacy"
+msgstr "Prywatność"
+
+#: templates/cranefly/usercp/options.html:34
+msgid "Watching Threads"
+msgstr "Obserwowanie tematów"
+
+#: templates/cranefly/usercp/options.html:40
 msgid "Change Options"
 msgid "Change Options"
 msgstr "Zmień opcje"
 msgstr "Zmień opcje"
 
 
-#: templates/cranefly/usercp/signature.html:12
+#: templates/cranefly/usercp/options.html:49
+msgid "Yes, I want to subscribe forum newsletter."
+msgstr "Tak, chcę subskrybować newsletter tego forum."
+
+#: templates/cranefly/usercp/signature.html:11
 #: templates/cranefly/usercp/signature_banned.html:10
 #: templates/cranefly/usercp/signature_banned.html:10
 msgid "Edit your Signature"
 msgid "Edit your Signature"
 msgstr "Zmodyfikuj swoją sygnaturkę"
 msgstr "Zmodyfikuj swoją sygnaturkę"
@@ -8388,11 +8396,11 @@ msgstr "%(username)s, administrator odebrał Ci możliwość zmiany sygnaturki."
 msgid "Change your Username"
 msgid "Change your Username"
 msgstr "Zmień swoją nazwę"
 msgstr "Zmień swoją nazwę"
 
 
-#: templates/cranefly/usercp/username.html:28
+#: templates/cranefly/usercp/username.html:30
 msgid "Change Name"
 msgid "Change Name"
 msgstr "Zmień nazwę"
 msgstr "Zmień nazwę"
 
 
-#: templates/cranefly/usercp/username.html:30
+#: templates/cranefly/usercp/username.html:32
 #, python-format
 #, python-format
 msgid "You can change your username one more time."
 msgid "You can change your username one more time."
 msgid_plural "You can change your username %(changes)s more times."
 msgid_plural "You can change your username %(changes)s more times."
@@ -8400,7 +8408,7 @@ msgstr[0] "Możesz zmienić swoją nazwę użytkownika jeszcze jeden raz."
 msgstr[1] "Możesz zmienić swoją nazwę użytkownika jeszcze %(changes)s razy."
 msgstr[1] "Możesz zmienić swoją nazwę użytkownika jeszcze %(changes)s razy."
 msgstr[2] "Możesz zmienić swoją nazwę użytkownika jeszcze %(changes)s razy."
 msgstr[2] "Możesz zmienić swoją nazwę użytkownika jeszcze %(changes)s razy."
 
 
-#: templates/cranefly/usercp/username.html:32
+#: templates/cranefly/usercp/username.html:34
 #, python-format
 #, python-format
 msgid "You will be able to change your username on %(next_change)s"
 msgid "You will be able to change your username on %(next_change)s"
 msgstr "Będziesz mógł zmienić swoją nazwę użytkownika %(next_change)s"
 msgstr "Będziesz mógł zmienić swoją nazwę użytkownika %(next_change)s"
@@ -8830,6 +8838,96 @@ msgstr ""
 msgid "(UTC+14:00) Nuku'alofa"
 msgid "(UTC+14:00) Nuku'alofa"
 msgstr ""
 msgstr ""
 
 
+#~ msgid "Enter your e-mail address."
+#~ msgstr "Wpisz swój adres e-mail."
+
+#~ msgid "Search Bans"
+#~ msgstr "Wyszukiwanie banów"
+
+#~ msgid "Ban contains..."
+#~ msgstr "Ban zawiera..."
+
+#~ msgid "User or Team message contains..."
+#~ msgstr "Uzasadnienie zawiera..."
+
+#~ msgid "Basic Role Options"
+#~ msgstr "Podstawowe opcje roli"
+
+#~ msgid "Delete Options"
+#~ msgstr "Opcje usuwania"
+
+#~ msgid "Search Newsletters"
+#~ msgstr "Wyszukiwanie newsletterów"
+
+#~ msgid "Name contains..."
+#~ msgstr "Nazwa zawiera..."
+
+#~ msgid "Message contains..."
+#~ msgstr "Wiadomość zawiera..."
+
+#~ msgid "IP begins with..."
+#~ msgstr "Adres IP zaczyna się na..."
+
+#~ msgid "Username begings with..."
+#~ msgstr "Nazwa użytkownika zaczyna się na..."
+
+#~ msgid "User Agent contains..."
+#~ msgstr "User Agent zaczyna się na..."
+
+#~ msgid "Time"
+#~ msgstr "Czas"
+
+#~ msgid "End Date: YYYY-MM-DD"
+#~ msgstr "Data końcowa: YYYY-MM-DD (rok, miesiąc, dzień)"
+
+#~ msgid "Username contains..."
+#~ msgstr "Nazwa użytkownika zawiera..."
+
+#~ msgid "E-mail address contains..."
+#~ msgstr "Adres e-mail zawiera..."
+
+#~ msgid "user1, user2, user3..."
+#~ msgstr "Użytkownik1, użytkownik2, użytkownik3..."
+
+#~ msgid "Enter your desired username"
+#~ msgstr "Wprowadź pożądaną nazwę użytkownika"
+
+#~ msgid "Enter your e-mail"
+#~ msgstr "Wprowadź swój adres e-mail"
+
+#~ msgid "Repeat your e-mail"
+#~ msgstr "Powtórz swój adres e-mail"
+
+#~ msgid "Enter your password"
+#~ msgstr "Wprowadź swoje hasło"
+
+#~ msgid "Repeat your password"
+#~ msgstr "Powtórz swoje hasło"
+
+#~ msgid "Thread Importance"
+#~ msgstr "Istotnośc tematu"
+
+#~ msgid "Open Thread"
+#~ msgstr "Otwórz temat"
+
+#~ msgid "Close Thread"
+#~ msgstr "Zamknij temat"
+
+#~ msgid "Your Signature"
+#~ msgstr "Twoja sygnaturka"
+
+#~ msgid "Thread Popularity Ranking"
+#~ msgstr "Ranking popularności tematów"
+
+#~ msgid "Threads on \"Popular Threads\" list"
+#~ msgstr "Tematy na liście \"Popularnych tematów\""
+
+#~ msgid "Move Thread To"
+#~ msgstr "Przenieś temat do"
+
+#~ msgid "Select forum you want to move this thread to."
+#~ msgstr "Wskaż forum, do którego chcesz przenieść ten temat."
+
 #~ msgid "%(hours)s hours and %(minutes)s minutes ago"
 #~ msgid "%(hours)s hours and %(minutes)s minutes ago"
 #~ msgstr "%(hours)s godzin i %(minutes)s minut temu"
 #~ msgstr "%(hours)s godzin i %(minutes)s minut temu"
 
 

+ 69 - 58
misago/markdown/extensions/quotes.py

@@ -1,58 +1,69 @@
-import re
-import markdown
-from markdown.util import etree
-
-# Global vars
-QUOTE_AUTHOR_RE = re.compile(r'^(?P<arrows>(>|\s)+)?@(?P<username>(\w|\d)+)$')
-
-class QuoteTitlesExtension(markdown.Extension):
-    def extendMarkdown(self, md):
-        md.registerExtension(self)
-        md.preprocessors.add('mi_quote_title',
-                             QuoteTitlesPreprocessor(md),
-                             '>fenced_code_block')
-        md.postprocessors.add('mi_quote_title',
-                              QuoteTitlesPostprocessor(md),
-                              '_end')
-
-
-class QuoteTitlesPreprocessor(markdown.preprocessors.Preprocessor):
-    def __init__(self, md):
-        markdown.preprocessors.Preprocessor.__init__(self, md)
-
-    def run(self, lines):
-        clean = []
-        for l, line in enumerate(lines):
-            try:
-                if line.strip():
-                    at_match = QUOTE_AUTHOR_RE.match(line.strip())
-                    if at_match and lines[l + 1].strip()[0] == '>':
-                        username = '<%(token)s:quotetitle>@%(name)s</%(token)s:quotetitle>' % {'token': self.markdown.mi_token, 'name': at_match.group('username')}
-                        if at_match.group('arrows'):
-                            clean.append('> %s%s' % (at_match.group('arrows'), username))
-                        else:
-                            clean.append('> %s' % username)
-                    else:
-                        clean.append(line)
-                else:
-                    clean.append(line)
-            except IndexError:
-                clean.append(line)
-        return clean
-
-
-class QuoteTitlesPostprocessor(markdown.postprocessors.Postprocessor):
-    def run(self, text):
-        text = text.replace('&lt;%s:quotetitle&gt;' % self.markdown.mi_token, '<h3><quotetitle>')
-        text = text.replace('&lt;/%s:quotetitle&gt;' % self.markdown.mi_token, '</quotetitle></h3>')
-        lines = text.splitlines()
-        clean = []
-        for l, line in enumerate(lines):
-            clean.append(line)
-            try:
-                if line == '<blockquote>':
-                    if lines[l + 1][0:7] != '<p><h3>':
-                        clean.append('<h3><quotesingletitle></h3>')
-            except IndexError:
-                pass
-        return '\r\n'.join(clean)
+import re
+import markdown
+from markdown.util import etree
+
+# Global vars
+QUOTE_AUTHOR_RE = re.compile(r'^(?P<arrows>(>|\s)+)?@(?P<username>(\w|\d)+)$')
+
+class QuoteTitlesExtension(markdown.Extension):
+    def extendMarkdown(self, md):
+        md.registerExtension(self)
+        md.preprocessors.add('mi_quote_title',
+                             QuoteTitlesPreprocessor(md),
+                             '>fenced_code_block')
+        md.postprocessors.add('mi_quote_title',
+                              QuoteTitlesPostprocessor(md),
+                              '_end')
+
+
+class QuoteTitlesPreprocessor(markdown.preprocessors.Preprocessor):
+    def __init__(self, md):
+        markdown.preprocessors.Preprocessor.__init__(self, md)
+
+    def run(self, lines):
+        clean = []
+        for l, line in enumerate(lines):
+            try:
+                if line.strip():
+                    at_match = QUOTE_AUTHOR_RE.match(line.strip())
+                    if at_match and lines[l + 1].strip()[0] == '>':
+                        username = '<%(token)s:quotetitle>@%(name)s</%(token)s:quotetitle>' % {'token': self.markdown.mi_token, 'name': at_match.group('username')}
+                        if at_match.group('arrows'):
+                            clean.append('> %s%s' % (at_match.group('arrows'), username))
+                        else:
+                            clean.append('> %s' % username)
+                    else:
+                        clean.append(line)
+                else:
+                    clean.append(line)
+            except IndexError:
+                clean.append(line)
+        return clean
+
+
+class QuoteTitlesPostprocessor(markdown.postprocessors.Postprocessor):
+    def run(self, text):
+        text = text.replace('&lt;%s:quotetitle&gt;' % self.markdown.mi_token, '<quotetitle>')
+        text = text.replace('&lt;/%s:quotetitle&gt;' % self.markdown.mi_token, '</quotetitle>')
+        lines = text.splitlines()
+        clean = []
+        for l, line in enumerate(lines):
+            clean.append(line)
+            try:
+                if line == '<blockquote>':
+                    if lines[l + 1][0:15] != '<p><quotetitle>':
+                        clean.append('<header><quotesingletitle></header>')
+                        clean.append('<article>')
+                if line == '</blockquote>':
+                    clean[-1] = '</article>'
+                    clean.append('</blockquote>')
+                if line.strip()[0:15] == '<p><quotetitle>':
+                    line = line.strip()
+                    header = line[3:-4]
+                    clean[-1] = '<header>%s</header>' % header
+                    clean.append('<article>')
+                    if line[-4:] != '</p>':
+                        clean.append('<p>')
+            except IndexError:
+                pass
+        return '\r\n'.join(clean).replace('<p>\r\n', '<p>')

+ 1 - 4
misago/markdown/factory.py

@@ -48,7 +48,7 @@ def signature_markdown(acl, text):
     del md.parser.blockprocessors['hr']
     del md.parser.blockprocessors['hr']
     del md.parser.blockprocessors['olist']
     del md.parser.blockprocessors['olist']
     del md.parser.blockprocessors['ulist']
     del md.parser.blockprocessors['ulist']
-    
+
     return md.convert(text)
     return md.convert(text)
 
 
 
 
@@ -72,9 +72,6 @@ def post_markdown(text):
 
 
 
 
 def tidy_markdown(md, text):
 def tidy_markdown(md, text):
-    text = text.replace('<p><h3><quotetitle>', '<article><header><quotetitle>')
-    text = text.replace('</quotetitle></h3></p>', '</quotetitle></header></article>')
-    text = text.replace('</quotetitle></h3><br>\r\n', '</quotetitle></header></article>\r\n<p>')
     text = text.replace('\r\n<p></p>', '')
     text = text.replace('\r\n<p></p>', '')
     return md, text
     return md, text
 
 

+ 2 - 2
misago/utils/timezones.py

@@ -41,8 +41,8 @@ raw_tz = (
     ('Europe/Athens', _('(UTC+02:00) Eastern European Time'), _('(UTC+03:00) Eastern European Summer Time')),
     ('Europe/Athens', _('(UTC+02:00) Eastern European Time'), _('(UTC+03:00) Eastern European Summer Time')),
     ('Asia/Qatar', _('(UTC+03:00) East Africa Time')),
     ('Asia/Qatar', _('(UTC+03:00) East Africa Time')),
     ('Europe/Minsk', _('(UTC+03:00) Further-eastern European Time')),
     ('Europe/Minsk', _('(UTC+03:00) Further-eastern European Time')),
-    ('Asia/Tehran', _('(UTC+3:30) Iran Time'), _('(UTC+4:30) Iran Time')),
-    ('Europe/Moscow', _('(UTC+4:00) Moscow Standard Time, Georgian Time')),
+    ('Asia/Tehran', _('(UTC+03:30) Iran Time'), _('(UTC+04:30) Iran Time')),
+    ('Europe/Moscow', _('(UTC+04:00) Moscow Standard Time, Georgia Standard Time')),
     ('Asia/Dubai', _('(UTC+04:00) United Arab Emirates Standard Time')),
     ('Asia/Dubai', _('(UTC+04:00) United Arab Emirates Standard Time')),
     ('Asia/Baku', _('(UTC+05:00) Baku, Yerevan'), _('(UTC+06:00) Baku, Yerevan')),
     ('Asia/Baku', _('(UTC+05:00) Baku, Yerevan'), _('(UTC+06:00) Baku, Yerevan')),
     ('Asia/Kabul', _('(UTC+04:30) Afghanistan Standard Time')),
     ('Asia/Kabul', _('(UTC+04:30) Afghanistan Standard Time')),

+ 7 - 7
static/cranefly/css/cranefly.css

@@ -800,8 +800,8 @@ textarea{resize:vertical}
 .btn.btn-warning{background-color:#e59119;border-color:#ce8217;color:rgba(255,255,255,0.85);text-shadow:0 1px 0 #ad6704}.btn.btn-warning:hover,.btn.btn-warning:active{color:#fff}.btn.btn-warning:hover:enabled,.btn.btn-warning:active:enabled{background-color:#f89406;border-color:#df8505}
 .btn.btn-warning{background-color:#e59119;border-color:#ce8217;color:rgba(255,255,255,0.85);text-shadow:0 1px 0 #ad6704}.btn.btn-warning:hover,.btn.btn-warning:active{color:#fff}.btn.btn-warning:hover:enabled,.btn.btn-warning:active:enabled{background-color:#f89406;border-color:#df8505}
 .btn.btn-danger{background-color:#cf402e;border-color:#ba3a29;color:rgba(255,255,255,0.85);text-shadow:0 1px 0 #902d20}.btn.btn-danger:hover,.btn.btn-danger:active{color:#fff}.btn.btn-danger:hover:enabled,.btn.btn-danger:active:enabled{background-color:#e82c15;border-color:#d12813}
 .btn.btn-danger{background-color:#cf402e;border-color:#ba3a29;color:rgba(255,255,255,0.85);text-shadow:0 1px 0 #902d20}.btn.btn-danger:hover,.btn.btn-danger:active{color:#fff}.btn.btn-danger:hover:enabled,.btn.btn-danger:active:enabled{background-color:#e82c15;border-color:#d12813}
 .btn.btn-inverse{background-color:#333;border-color:#262626;color:rgba(255,255,255,0.85);text-shadow:0 1px 0 #0d0d0d}.btn.btn-inverse:hover,.btn.btn-inverse:active{color:#fff}.btn.btn-inverse:hover:enabled,.btn.btn-inverse:active:enabled{background-color:#262626;border-color:#1a1a1a}
 .btn.btn-inverse{background-color:#333;border-color:#262626;color:rgba(255,255,255,0.85);text-shadow:0 1px 0 #0d0d0d}.btn.btn-inverse:hover,.btn.btn-inverse:active{color:#fff}.btn.btn-inverse:hover:enabled,.btn.btn-inverse:active:enabled{background-color:#262626;border-color:#1a1a1a}
-.btn.btn-link{background:none;border:none;opacity:.7;filter:alpha(opacity=70);color:#333}.btn.btn-link:hover,.btn.btn-link:active,.btn.btn-link:focus{opacity:1;filter:alpha(opacity=100)}.btn.btn-link:hover:enabled,.btn.btn-link:active:enabled,.btn.btn-link:focus:enabled{text-decoration:none}
-a.btn-link:hover,a.btn-link:active,a.btn-link:focus{opacity:.9;filter:alpha(opacity=90);color:#333;text-decoration:none}
+.btn.btn-link{background:none;border:none;color:#999}.btn.btn-link:hover,.btn.btn-link:active,.btn.btn-link:focus{color:#333}.btn.btn-link:hover:enabled,.btn.btn-link:active:enabled,.btn.btn-link:focus:enabled{text-decoration:none}
+a.btn-link:hover,a.btn-link:active,a.btn-link:focus{color:#333;text-decoration:none}
 .pagination{margin:0;padding:0}.pagination .count{margin-right:10.5px;padding:4px 0;color:#999}
 .pagination{margin:0;padding:0}.pagination .count{margin-right:10.5px;padding:4px 0;color:#999}
 .pagination ul{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.pagination ul li{float:left;margin:0;margin-right:4.666666666666667px;padding:0}.pagination ul li a:link,.pagination ul li a:visited{background-color:#fff;border:1px solid #f0f0f0;border-radius:3px;padding:3px 7px;color:#999}.pagination ul li a:link i,.pagination ul li a:visited i{opacity:.55;filter:alpha(opacity=55)}
 .pagination ul{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.pagination ul li{float:left;margin:0;margin-right:4.666666666666667px;padding:0}.pagination ul li a:link,.pagination ul li a:visited{background-color:#fff;border:1px solid #f0f0f0;border-radius:3px;padding:3px 7px;color:#999}.pagination ul li a:link i,.pagination ul li a:visited i{opacity:.55;filter:alpha(opacity=55)}
 .pagination ul li a:active,.pagination ul li a:hover{border:1px solid #999;color:#555}.pagination ul li a:active i,.pagination ul li a:hover i{opacity:1;filter:alpha(opacity=100)}
 .pagination ul li a:active,.pagination ul li a:hover{border:1px solid #999;color:#555}.pagination ul li a:active i,.pagination ul li a:hover i{opacity:1;filter:alpha(opacity=100)}
@@ -824,14 +824,14 @@ a.btn-link:hover,a.btn-link:active,a.btn-link:focus{opacity:.9;filter:alpha(opac
 .markdown h3,.markdown article h3{font-size:16.8px}
 .markdown h3,.markdown article h3{font-size:16.8px}
 .markdown h4,.markdown article h4{font-size:14px}
 .markdown h4,.markdown article h4{font-size:14px}
 .markdown hr,.markdown article hr{border:none;border-top:1px solid #eee;margin:20px 0}
 .markdown hr,.markdown article hr{border:none;border-top:1px solid #eee;margin:20px 0}
-.markdown blockquote,.markdown article blockquote{border-left-color:#e1e1e1;padding:4.666666666666667px 14px}.markdown blockquote header,.markdown article blockquote header{padding-bottom:10px;font-size:15.400000000000002px;font-weight:bold;line-height:20px}
+.markdown blockquote,.markdown article blockquote{border-left-color:#e1e1e1;padding:4.666666666666667px 14px;margin:10px}.markdown blockquote header,.markdown article blockquote header{padding-bottom:10px;font-size:15.400000000000002px;font-weight:bold;line-height:20px}
 .markdown blockquote p,.markdown article blockquote p{margin:0 0 10px;font-size:14px}
 .markdown blockquote p,.markdown article blockquote p{margin:0 0 10px;font-size:14px}
 .markdown blockquote blockquote,.markdown article blockquote blockquote{opacity:.85;filter:alpha(opacity=85)}
 .markdown blockquote blockquote,.markdown article blockquote blockquote{opacity:.85;filter:alpha(opacity=85)}
-.markdown code,.markdown article code{background-color:#333;border:none;color:#eee;font-size:14px}
+.markdown code,.markdown article code{background-color:#333;border-color:#000;color:#eee;text-shadow:0 1px 0 #000}
 .markdown pre,.markdown article pre{background-color:#222;padding:7px 14px}.markdown pre code,.markdown article pre code{background:none;border:none;color:#eee;font-size:11.9px}
 .markdown pre,.markdown article pre{background-color:#222;padding:7px 14px}.markdown pre code,.markdown article pre code{background:none;border:none;color:#eee;font-size:11.9px}
 .markdown img,.markdown article img{background-color:#fff;border-radius:3px;margin:10px 0}
 .markdown img,.markdown article img{background-color:#fff;border-radius:3px;margin:10px 0}
-.markdown pre,.markdown article pre,.markdown blockquote,.markdown article blockquote,.markdown iframe,.markdown article iframe{margin-top:20px;margin-bottom:20px}.markdown pre>:first-child,.markdown article pre>:first-child,.markdown blockquote>:first-child,.markdown article blockquote>:first-child,.markdown iframe>:first-child,.markdown article iframe>:first-child{margin-top:0}
-.markdown pre>:last-child,.markdown article pre>:last-child,.markdown blockquote>:last-child,.markdown article blockquote>:last-child,.markdown iframe>:last-child,.markdown article iframe>:last-child{margin-bottom:0}
+.markdown pre,.markdown article pre,.markdown blockquote,.markdown article blockquote,.markdown iframe,.markdown article iframe{margin-top:20px;margin-bottom:20px}.markdown pre article>:first-child,.markdown article pre article>:first-child,.markdown blockquote article>:first-child,.markdown article blockquote article>:first-child,.markdown iframe article>:first-child,.markdown article iframe article>:first-child{margin-top:0}
+.markdown pre article>:last-child,.markdown article pre article>:last-child,.markdown blockquote article>:last-child,.markdown article blockquote article>:last-child,.markdown iframe article>:last-child,.markdown article iframe article>:last-child{margin-bottom:0}
 .markdown .emoji,.markdown article .emoji{background:none;border-radius:0;margin:0;vertical-align:middle}
 .markdown .emoji,.markdown article .emoji{background:none;border-radius:0;margin:0;vertical-align:middle}
 .markdown h1 .emoji,.markdown article h1 .emoji{width:27.8px;height:27.8px}
 .markdown h1 .emoji,.markdown article h1 .emoji{width:27.8px;height:27.8px}
 .markdown h2 .emoji,.markdown article h2 .emoji{width:25px;height:25px}
 .markdown h2 .emoji,.markdown article h2 .emoji{width:25px;height:25px}
@@ -933,7 +933,7 @@ a.btn-link:hover,a.btn-link:active,a.btn-link:focus{opacity:.9;filter:alpha(opac
 .user-profile .user-profile-header .header-side{margin-left:94px}.user-profile .user-profile-header .header-side h1{margin-left:6.666666666666667px}
 .user-profile .user-profile-header .header-side{margin-left:94px}.user-profile .user-profile-header .header-side h1{margin-left:6.666666666666667px}
 .user-profile hr{border:none;border-top:1px solid #eee;margin:14px 0}
 .user-profile hr{border:none;border-top:1px solid #eee;margin:14px 0}
 .user-profile .stat-header{border-bottom:1px solid #e2e2e2;margin-bottom:14px}.user-profile .stat-header .user-graph{height:40px;overflow:hidden}.user-profile .stat-header .user-graph svg{position:relative;left:1px;height:40px;width:100%}
 .user-profile .stat-header{border-bottom:1px solid #e2e2e2;margin-bottom:14px}.user-profile .stat-header .user-graph{height:40px;overflow:hidden}.user-profile .stat-header .user-graph svg{position:relative;left:1px;height:40px;width:100%}
-.user-profile .stat-header .help-text{float:right;margin-bottom:-20px;position:relative;top:47.9px;color:#999;font-size:11.9px}
+.user-profile .stat-header .help-text{float:right;margin-bottom:-20px;position:relative;top:43.9px;color:#999;font-size:11.9px}
 .user-profile .stat-header h2{margin-top:-54px;position:relative;top:4px;text-shadow:0 0 3px #fbfbfb}
 .user-profile .stat-header h2{margin-top:-54px;position:relative;top:4px;text-shadow:0 0 3px #fbfbfb}
 .user-profile .user-details .label{font-size:14px}
 .user-profile .user-details .label{font-size:14px}
 .user-profile .user-list .user-cell{overflow:auto}.user-profile .user-list .user-cell .user-avatar{float:left}.user-profile .user-list .user-cell .user-avatar img{border-radius:3px;width:36px;height:36px}
 .user-profile .user-list .user-cell{overflow:auto}.user-profile .user-list .user-cell .user-avatar{float:left}.user-profile .user-list .user-cell .user-avatar img{border-radius:3px;width:36px;height:36px}

+ 2 - 6
static/cranefly/css/cranefly/buttons.less

@@ -120,15 +120,13 @@
   &.btn-link {
   &.btn-link {
     background: none;
     background: none;
     border: none;
     border: none;
-    .opacity(70);
 
 
-    color: @textColor;
+    color: @grayLight;
 
 
     &:hover, &:active, &:focus {
     &:hover, &:active, &:focus {
-      .opacity(100);
+    	color: @textColor;
 
 
       &:enabled {
       &:enabled {
-
         text-decoration: none;
         text-decoration: none;
       }
       }
     }
     }
@@ -137,8 +135,6 @@
 
 
 a.btn-link {
 a.btn-link {
   &:hover, &:active, &:focus {
   &:hover, &:active, &:focus {
-    .opacity(90);
-
     color: @textColor;
     color: @textColor;
     text-decoration: none;
     text-decoration: none;
   }
   }

+ 10 - 7
static/cranefly/css/cranefly/markdown.less

@@ -42,6 +42,7 @@
   blockquote {
   blockquote {
     border-left-color: darken(@grayLighter, 5%);
     border-left-color: darken(@grayLighter, 5%);
     padding: (@baseFontSize / 3) @baseFontSize;
     padding: (@baseFontSize / 3) @baseFontSize;
+    margin: @baseLineHeight / 2;
 
 
     header {
     header {
       padding-bottom: (@baseLineHeight / 2);
       padding-bottom: (@baseLineHeight / 2);
@@ -64,10 +65,10 @@
 
 
   code {
   code {
     background-color: @grayDark;
     background-color: @grayDark;
-    border: none;
+    border-color: @black;
 
 
     color: @grayLighter;
     color: @grayLighter;
-    font-size: @baseFontSize;
+    text-shadow: 0px 1px 0px @black;
   }
   }
 
 
   pre {
   pre {
@@ -94,12 +95,14 @@
     margin-top: @baseLineHeight;
     margin-top: @baseLineHeight;
     margin-bottom: @baseLineHeight;
     margin-bottom: @baseLineHeight;
 
 
-    &>:first-child {
-      margin-top: 0px;
-    }
+    article{
+      &>:first-child {
+        margin-top: 0px;
+      }
 
 
-    &>:last-child {
-      margin-bottom: 0px;
+      &>:last-child {
+        margin-bottom: 0px;
+      }
     }
     }
   }
   }
 
 

+ 1 - 1
static/cranefly/css/cranefly/profiles.less

@@ -74,7 +74,7 @@
       float: right;
       float: right;
       margin-bottom: @baseLineHeight * -1;
       margin-bottom: @baseLineHeight * -1;
       position: relative;
       position: relative;
-      top: 40px + @fontSizeSmall - 4px;
+      top: 40px + @fontSizeSmall - 8px;
 
 
       color: @grayLight;
       color: @grayLight;
       font-size: @fontSizeSmall;
       font-size: @fontSizeSmall;

+ 12 - 12
static/cranefly/js/cranefly.js

@@ -4,7 +4,7 @@ $(function () {
   $('.tooltip-bottom').tooltip({placement: 'bottom', container: 'body'})
   $('.tooltip-bottom').tooltip({placement: 'bottom', container: 'body'})
   $('.tooltip-left').tooltip({placement: 'left', container: 'body'})
   $('.tooltip-left').tooltip({placement: 'left', container: 'body'})
   $('.tooltip-right').tooltip({placement: 'right', container: 'body'})
   $('.tooltip-right').tooltip({placement: 'right', container: 'body'})
-  
+
   // Register popovers
   // Register popovers
   $('.popover-top').popover({placement: 'top'})
   $('.popover-top').popover({placement: 'top'})
   $('.popover-bottom').popover({placement: 'bottom'})
   $('.popover-bottom').popover({placement: 'bottom'})
@@ -17,10 +17,10 @@ $(function () {
       e.preventDefault();
       e.preventDefault();
     }
     }
   });
   });
-  
+
   // Start all dropdowns
   // Start all dropdowns
   $('.dropdown-toggle').dropdown()
   $('.dropdown-toggle').dropdown()
-  
+
   // Dont hide clickable dropdowns
   // Dont hide clickable dropdowns
   $('.dropdown-clickable').on('click', function (e) {
   $('.dropdown-clickable').on('click', function (e) {
     e.stopPropagation()
     e.stopPropagation()
@@ -42,7 +42,7 @@ $(function () {
   nav_search_form.click(function(event) {
   nav_search_form.click(function(event) {
     event.stopPropagation();
     event.stopPropagation();
   });
   });
-  
+
   // Checkbox Group Master
   // Checkbox Group Master
   $('input.checkbox-master').live('click', function(){
   $('input.checkbox-master').live('click', function(){
     if($(this).is(':checked')){
     if($(this).is(':checked')){
@@ -53,27 +53,27 @@ $(function () {
       $('input.checkbox-member').removeAttr('checked');
       $('input.checkbox-member').removeAttr('checked');
     }
     }
   });
   });
-  
+
   // Checkbox Group Member
   // Checkbox Group Member
   $('input.checkbox-member').live('click', function(){
   $('input.checkbox-member').live('click', function(){
     if(!$(this).is(':checked')){
     if(!$(this).is(':checked')){
       $('input.checkbox-master').removeAttr('checked');
       $('input.checkbox-master').removeAttr('checked');
     }
     }
   });
   });
-  
+
   // Check Confirmation on links
   // Check Confirmation on links
   $('a.confirm').live('click', function(){
   $('a.confirm').live('click', function(){
     var decision = confirm(jQuery.data(this, 'jsconfirm'));
     var decision = confirm(jQuery.data(this, 'jsconfirm'));
     return decision
     return decision
   });
   });
-  
+
   // Check Confirmation on forms
   // Check Confirmation on forms
   $('form.confirm').live('submit', function(){
   $('form.confirm').live('submit', function(){
     data = $(this).data();
     data = $(this).data();
     var decision = confirm(data.jsconfirm);
     var decision = confirm(data.jsconfirm);
     return decision
     return decision
   });
   });
-  
+
   // Show go back link?
   // Show go back link?
   if (document.referrer
   if (document.referrer
       && document.referrer.indexOf(location.protocol + "//" + location.host) === 0
       && document.referrer.indexOf(location.protocol + "//" + location.host) === 0
@@ -142,9 +142,9 @@ function link2player(link_href) {
     if (media_seconds) { media_url[2] += (media_seconds[1] - 0); }
     if (media_seconds) { media_url[2] += (media_seconds[1] - 0); }
     return '<iframe width="480" height="360" src="http://www.youtube.com/embed/' + media_url[1] + '?start=' + media_url[2] + '" frameborder="0" allowfullscreen></iframe>';
     return '<iframe width="480" height="360" src="http://www.youtube.com/embed/' + media_url[1] + '?start=' + media_url[2] + '" frameborder="0" allowfullscreen></iframe>';
   }
   }
-  
+
   // Youtube embed
   // Youtube embed
-  var re = /youtu.be\/((\w|-)+)/;
+  var re = /youtu.be\/(([A-Za-z0-9]|-)+)/;
   if (re.test(link_href)) {
   if (re.test(link_href)) {
     media_url = link_href.match(re);
     media_url = link_href.match(re);
     return '<iframe width="480" height="360" src="http://www.youtube.com/embed/' + media_url[1] + '" frameborder="0" allowfullscreen></iframe>';
     return '<iframe width="480" height="360" src="http://www.youtube.com/embed/' + media_url[1] + '" frameborder="0" allowfullscreen></iframe>';
@@ -175,7 +175,7 @@ $(function() {
           $(action_parent).find('.post-score-total').addClass('post-score-good');
           $(action_parent).find('.post-score-total').addClass('post-score-good');
         } else if (data.score_total < 0) {
         } else if (data.score_total < 0) {
           $(action_parent).find('.post-score-total').addClass('post-score-bad');
           $(action_parent).find('.post-score-total').addClass('post-score-bad');
-        } 
+        }
         if (data.score_upvotes > 0) {
         if (data.score_upvotes > 0) {
           $(action_parent).find('.post-score-upvotes').addClass('post-score-good');
           $(action_parent).find('.post-score-upvotes').addClass('post-score-good');
         }
         }
@@ -213,7 +213,7 @@ $(function() {
     var button = $(this).find('button');
     var button = $(this).find('button');
     $(this).submit(function() {
     $(this).submit(function() {
       var form = this;
       var form = this;
-      $.post(form.action, {'_csrf_token': csrf_token}, "json").done(function(data, textStatus, jqXHR) {        
+      $.post(form.action, {'_csrf_token': csrf_token}, "json").done(function(data, textStatus, jqXHR) {
         $(button).text(l_post_reported);
         $(button).text(l_post_reported);
         $(button).tooltip('destroy');
         $(button).tooltip('destroy');
         $(button).attr("title", data.message);
         $(button).attr("title", data.message);

+ 2 - 2
templates/cranefly/private_threads/posting.html

@@ -167,7 +167,7 @@
 
 
 {% macro get_button() -%}
 {% macro get_button() -%}
 {% if action == 'new_thread' -%}
 {% if action == 'new_thread' -%}
-{% trans %}Post Thread{% endtrans %}
+{% trans %}Start Thread{% endtrans %}
 {%- elif action == 'new_reply' -%}
 {%- elif action == 'new_reply' -%}
 {% trans %}Post Reply{% endtrans %}
 {% trans %}Post Reply{% endtrans %}
 {%- else -%}
 {%- else -%}
@@ -178,4 +178,4 @@
 
 
 {% macro get_extra() %}
 {% macro get_extra() %}
   <button id="editor-preview" name="preview" type="submit" class="btn pull-right">{% trans %}Preview{% endtrans %}</button>
   <button id="editor-preview" name="preview" type="submit" class="btn pull-right">{% trans %}Preview{% endtrans %}</button>
-{% endmacro %}
+{% endmacro %}

+ 2 - 2
templates/cranefly/threads/posting.html

@@ -181,7 +181,7 @@
 
 
 {% macro get_button() -%}
 {% macro get_button() -%}
 {% if action == 'new_thread' -%}
 {% if action == 'new_thread' -%}
-{% trans %}Post Thread{% endtrans %}
+{% trans %}Start Thread{% endtrans %}
 {%- elif action == 'new_reply' -%}
 {%- elif action == 'new_reply' -%}
 {% trans %}Post Reply{% endtrans %}
 {% trans %}Post Reply{% endtrans %}
 {%- else -%}
 {%- else -%}
@@ -192,4 +192,4 @@
 
 
 {% macro get_extra() %}
 {% macro get_extra() %}
   <button id="editor-preview" name="preview" type="submit" class="btn pull-right">{% trans %}Preview{% endtrans %}</button>
   <button id="editor-preview" name="preview" type="submit" class="btn pull-right">{% trans %}Preview{% endtrans %}</button>
-{% endmacro %}
+{% endmacro %}